Pengertian NPM Adalah: Panduan & Penggunaannya untuk Pemula

Profile
Prasatya

17 Juni 2025

Pengertian NPM Adalah: Panduan & Penggunaannya untuk Pemula

NPM (Node Package Manager) adalah sistem manajemen paket yang sangat penting bagi pengembangan aplikasi JavaScript. NPM berfungsi sebagai alat standar untuk mengelola dan berbagi pustaka (package) JavaScript dengan mudah. Menurut Hostinger, “NPM adalah salah satu registri software terbesar saat ini yang digunakan oleh para developer untuk saling berbagi kode package JavaScript”, sekaligus merupakan singkatan dari Node Package Manager. Dengan NPM, kita dapat menginstal kode pihak ketiga tanpa harus menulis ulang fungsinya dari awal, sehingga mempercepat proses pengembangan. Singkatnya, NPM adalah alat esensial dalam ekosistem Node.js yang memudahkan developer mengelola dependensi dan paket proyek JavaScript.

Sejarah Singkat NPM dan Peranannya dalam Ekosistem JavaScript

Image

Sejarah NPM dimulai pada tahun 2010 ketika Isaac Z. Schlueter menciptakan NPM untuk mengatasi tantangan manajemen dependensi pada aplikasi Node.js. Perilisan pertama NPM terjadi beberapa bulan setelah Node.js hadir, tepatnya pada Januari 2010. Seiring adopsi Node.js yang semakin meningkat, NPM dengan cepat diterima oleh komunitas karena kemudahannya dalam mengunduh dan mempublikasikan modul. Ribuan pustaka JavaScript mulai tersedia di registri NPM, sehingga developer dapat dengan mudah menemukan “alat” siap pakai untuk berbagai kebutuhan pengembangan. Dengan demikian, NPM memainkan peran kunci dalam ekosistem JavaScript modern sebagai pusat distribusi modul dan package manager utama bagi aplikasi berbasis Node.js.

Fungsi Utama NPM (Registri, CLI, dan Package Manager)

Secara umum, NPM memiliki tiga fungsi utama dalam ekosistem JavaScript:

  • Repositori Publik (Registry): NPM menyediakan registri publik di npmjs.com tempat developer dapat memublikasikan dan berbagi paket open-source. Misalnya, pustaka populer seperti Angular, React, dan jQuery tersedia di repositori NPM. Sebagai repositori, NPM memungkinkan Anda mencari dan mengunduh paket yang dibutuhkan proyek.
  • Command-Line Interface (CLI): NPM dilengkapi antarmuka baris perintah (CLI) yang dapat dijalankan dari terminal. Dengan npm, kita bisa melakukan instalasi paket, menghapus paket, atau mengelola versi dependensi melalui berbagai perintah. Misalnya, perintah npm install <package> akan mengunduh paket dari registry NPM dan menambahkannya ke proyek.
  • Package Manager: Selain repositori dan CLI, NPM juga berfungsi sebagai package manager yang mengelola dependensi proyek. Setiap kali kita menginstal paket, NPM memperbarui file package.json dan package-lock.json agar mencerminkan struktur dependensi proyek. NPM menjaga konsistensi versi paket dan memudahkan kolaborasi tim dengan memastikan semua anggota proyek menggunakan versi pustaka yang sama.

Dengan ketiga fungsi tersebut (registri publik, CLI, dan manajemen paket), NPM memberikan ekosistem lengkap untuk pengembangan JavaScript yang efisien.

Baca Juga: Mengenal Pengertian DOM Adalah: Fungsi & Cara Kerjanya!

Panduan Penggunaan NPM

Instalasi Node.js dan NPM

Sebelum menggunakan NPM, pastikan Anda sudah menginstal Node.js di komputer. Node.js menyediakan runtime JavaScript di luar browser dan secara otomatis sudah menyertakan NPM. Langkah-langkahnya sederhana:

  1. Kunjungi situs resmi Node.js di nodejs.org.
  2. Unduh installer versi LTS (Long-Term Support) sesuai sistem operasi Anda (Windows, macOS, atau Linux).
  3. Jalankan installer dan ikuti petunjuk instalasi.

Setelah instalasi selesai, periksa versi Node.js dan NPM dengan perintah di terminal:

node -v npm -v

Jika terinstal dengan benar, perintah tersebut akan menampilkan nomor versi masing-masing. Dengan Node.js terpasang, NPM sudah siap digunakan secara otomatis.

Memulai Proyek Baru dengan NPM

Untuk memulai proyek JavaScript baru menggunakan NPM, kita perlu membuat file package.json. File ini berisi metadata proyek, seperti nama, versi, dependensi, dan skrip build. Jalankan perintah berikut di direktori proyek:

npm init

Perintah npm init akan memandu Anda membuat package.json baru dengan serangkaian pertanyaan (nama proyek, versi, deskripsi, entry point, dll.). Jika ingin melewati prompt dan menggunakan nilai default, Anda bisa menjalankan npm init --yes. Setelah package.json dibuat, proyek sudah siap menerima paket-paket NPM. NPM akan secara otomatis menambahkan paket yang Anda instal ke dalam berkas ini.

Menggunakan File package.json

File package.json adalah manifest proyek yang sangat penting. Semua proyek NPM memiliki file ini di direktori root. Di dalamnya, package.json menyimpan informasi seperti nama proyek, versi, deskripsi, main file, skrip, lisensi, hingga daftar dependensi. Misalnya, bagian "dependencies" mencantumkan semua paket yang dibutuhkan agar proyek berjalan, sementara "devDependencies" mencantumkan paket yang hanya diperlukan saat pengembangan. File ini memudahkan proses pengelolaan paket karena siapa saja yang mengkloning proyek dapat menjalankan npm install untuk mengunduh semua dependensi yang tercantum.

Contoh struktur package.json sederhana:

{ "name": "contoh-proyek", "version": "1.0.0", "description": "Proyek demo NPM", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "dependencies": { "express": "^4.17.1" }, "devDependencies": { "eslint": "^7.32.0" }, "author": "Nama Anda", "license": "MIT" }

Kolom scripts di atas bisa diisi dengan perintah khusus (misalnya build, test, start) yang nantinya dapat dijalankan dengan npm run <nama_skrip>. Dengan adanya package.json, tim pengembang lain dapat mereproduksi lingkungan yang sama dengan mudah hanya dari file ini saja.

Instalasi Paket dan Dependensi

Untuk menambah library ke proyek Anda, gunakan perintah npm install. Perintah ini mengunduh paket dari registri NPM dan menyimpannya di folder node_modules proyek. Contohnya, jika Anda ingin menggunakan Express (framework web populer), jalankan:

npm install express

Perintah di atas akan membuat folder node_modules (jika belum ada) dan mengunduh express. Setelah selesai, package.json akan otomatis mencantumkan express pada bagian dependencies. Anda kemudian bisa memanggil paket tersebut di kode, misalnya:

const express = require('express');

Secara default, paket yang diinstal tanpa flag tersimpan sebagai dependency biasa (dibutuhkan saat aplikasi berjalan). Jika Anda ingin menginstal paket sebagai development dependency (hanya diperlukan saat pengembangan), tambahkan flag --save-dev (atau -D):

npm install <nama_paket> --save-dev

Perbedaan antara dependency dan devDependency adalah paket dev tidak disertakan saat aplikasi berjalan di production. Contohnya, alat pengujian atau bundler sering diinstal sebagai devDependencies. Di package.json, keduanya akan muncul di kolom masing-masing, tetapi paket devDependencies tidak akan di-download saat Anda menjalankan npm install --production.

Instalasi Paket Secara Global

Beberapa tools NPM dirancang untuk digunakan dari baris perintah di mana saja di sistem Anda (misalnya CLI generator, utility global). Untuk menginstal paket global, gunakan flag -g atau --global:

npm install <nama_paket> --global # atau npm i <nama_paket> -g

Misalnya, untuk memasang create-react-app secara global:

npm install create-react-app --global

Setelah itu, perintah create-react-app dapat dijalankan dari direktori mana pun tanpa harus menginstalnya ulang di tiap proyek. Berhati-hatilah dengan instalasi global: tidak semua paket memerlukan penginstalan global, dan perbedaan izin akses (administrator/root) mungkin diperlukan tergantung sistem operasi.

Perintah Dasar dan Lanjutan NPM

NPM memiliki banyak perintah penting untuk manajemen proyek. Beberapa perintah dasar yang sering digunakan antara lain:

  • npm -v atau npm --version: menampilkan versi NPM terpasang.
  • node -v: menampilkan versi Node.js.
  • npm init: membuat file package.json baru (dengan wizard interaktif).
  • npm install <paket> (atau npm i <paket>): menginstal paket dan menambahkannya ke dependencies.
  • npm install <paket> --save-dev (atau npm i <paket> -D): menginstal paket sebagai development dependency.
  • npm install <paket> --global (atau npm i <paket> -g): menginstal paket secara global.
  • npm update: memperbarui semua paket di proyek ke versi terbaru sesuai aturan semver.
  • npm update <nama_paket>: memperbarui satu paket tertentu.
  • npm uninstall <paket> (atau npm remove <paket>): menghapus paket dari proyek dan package.json.
  • npm run <script>: menjalankan skrip yang didefinisikan di package.json (misalnya npm run test).
  • npm publish: menerbitkan paket ke registri NPM (kurang umum digunakan kecuali Anda membuat library).
  • npm audit: memeriksa kerentanan keamanan pada dependensi.

Hostinger dan CodePolitan juga merangkum perintah-perintah penting lainnya dalam daftar singkat. Misalnya, perintah untuk memperbarui NPM ke versi terbaru sendiri adalah npm install npm@latest -g.

Memperbarui NPM dan Paket

Agar proyek selalu aman dan menggunakan fitur terbaru, rutinlah memperbarui paket yang digunakan. Gunakan perintah npm outdated untuk memeriksa paket mana yang usang. Kemudian, jalankan npm update untuk memperbarui semua paket sesuai versi tertinggi yang diizinkan di package.json.

Jika ada paket tertentu yang perlu diperbarui, gunakan npm update <nama_paket>. Untuk paket yang diinstal secara global, tambahkan flag -g: npm update -g <nama_paket>.

Sedangkan untuk memperbarui NPM itu sendiri ke versi terbaru, jalankan:

npm install npm@latest -g

Setelah itu, NPM akan ter-update secara global. Dengan rutin memeriksa dan memperbarui dependensi, kita menjaga proyek tetap kompatibel dengan perbaikan bug dan patch keamanan terbaru.

Perbandingan Singkat dengan Package Manager Lain (Yarn, dll)

Selain NPM, ada beberapa package manager lain di ekosistem JavaScript, seperti Yarn dan PNPM. Yarn, yang dikembangkan oleh Facebook, diperkenalkan untuk meningkatkan performa dan keamanan pengelolaan paket. Keunggulan utama Yarn antara lain:

  • Instalasi Paralel: Yarn mengunduh banyak paket secara bersamaan (paralel), sehingga proses instalasi cenderung lebih cepat daripada NPM versi lama.
  • Lockfile (yarn.lock): Yarn menggunakan file yarn.lock untuk mengunci versi pasti dari tiap paket, menjamin konsistensi instalasi di berbagai lingkungan.
  • Resolusi Dependensi: Yarn memiliki algoritma resolusi dependensi yang canggih untuk menghindari konflik versi ganda antar paket.

Dalam perbandingan umum, NPM adalah alat standar bawaan Node.js untuk mengelola paket, sedangkan Yarn menawarkan optimasi kecepatan dan penanganan dependensi yang lebih ketat. Pilihan antara NPM atau Yarn biasanya tergantung kebutuhan proyek dan preferensi tim. (Perlu dicatat bahwa NPM versi terbaru juga telah meningkatkan kecepatan dan menambahkan file package-lock.json untuk tujuan serupa.) Namun, baik NPM maupun Yarn sama-sama digunakan luas di industri JavaScript.

Baca Juga: 4 Fungsi JavaScript dalam Pemrograman. Yuk, Bahas!

Manfaat NPM dalam Proyek Berskala Besar dan Tim Development

Pada proyek yang kompleks atau dikerjakan bersama tim, NPM menawarkan berbagai keuntungan penting:

  • Manajemen Ketergantungan: NPM memudahkan kita mengelola banyak pustaka pihak ketiga sekaligus. Alih-alih mendownload manual, NPM secara otomatis mengambil dan mencatat pustaka yang dibutuhkan proyek.
  • Kolaborasi Tim: Dengan file package.json dan package-lock.json, NPM memastikan semua anggota tim menggunakan versi pustaka yang sama. Ini menghindari konflik versi yang bisa menyebabkan bug aneh yang sulit dilacak.
  • Kemudahan Pembaruan: NPM juga mempermudah proses update pustaka. Dengan satu perintah (npm update), kita dapat memperbarui semua dependensi sesuai versi terbaru yang kompatibel. Hal ini penting untuk menjaga keamanan dan kompatibilitas proyek.
  • Pengelolaan Versi: Fitur semver NPM memungkinkan kita menentukan rentang versi yang diizinkan, sehingga kita bisa mengunci proyek pada versi tertentu atau membiarkan NPM memilih versi terbaru yang masih sesuai.

Singkatnya, NPM mengatur seluruh siklus hidup paket dalam proyek JavaScript. Tanpa NPM, tim harus mereplikasi sendiri proses download dan update library – yang akan sangat merepotkan dan rentan kesalahan. NPM menyederhanakan semuanya secara otomatis, mendukung skalabilitas proyek besar.

Cara Membuat dan Mempublikasikan Paket Sendiri ke Registri NPM

Jika Anda tertarik berbagi kode hasil karya sendiri, NPM memfasilitasi publikasi paket pribadi Anda ke registri NPM. Langkah dasarnya adalah:

  1. Buat Paket Anda: Tulis kode yang akan dibagikan, lalu di direktori paket tersebut jalankan npm init. Ini akan membuat package.json yang memuat nama paket, versi, deskripsi, titik masuk (main), dan metadata lain yang diperlukan. Pastikan nama paket belum dipakai orang lain di NPM.
  2. Login ke NPM: Sebelum mem-publish, jalankan npm login dari terminal. Anda akan diminta memasukkan username, password, dan email akun NPM Anda. Jika belum punya akun, daftar di https://www.npmjs.com.
  3. Publish ke Registry: Setelah login berhasil, jalankan perintah npm publish untuk menerbitkan paket Anda ke registri publik NPM. Paket tersebut akan tersedia bagi siapa saja yang menjalankan npm install nama-paket-anda.

Setelah dipublikasikan, orang lain dapat mengunduh paket Anda dengan npm install. Proses ini memungkinkan Anda berkontribusi kembali ke komunitas open-source dengan membagikan library atau tool yang Anda buat. (Sebagai catatan, untuk paket yang bersifat privasi atau organisasi, Anda bisa menambahkan opsi seperti npm publish --access public sesuai kebutuhan.)

Tips Best Practice dalam Menggunakan NPM

Untuk memaksimalkan manfaat NPM, berikut beberapa praktik terbaik yang bisa diikuti:

  • Jangan commit folder node_modules: Simpan kode yang Anda tulis dan biarkan NPM menangani folder node_modules. Dalam version control (Git), cukup commit package.json dan package-lock.json. Nanti anggota tim lain dapat merekonstruksi semua dependensi lewat npm install. Folder node_modules biasanya diabaikan (di-.gitignore) karena ukurannya besar dan bisa dibangun ulang.
  • Commit package-lock.json: File package-lock.json mencatat versi persis setiap paket. Dengan meng-commit file ini, Anda memastikan setiap instalasi berikutnya menghasilkan versi paket yang identik, menjamin kestabilan aplikasi.
  • Update Dependensi Secara Berkala: Jadwalkan waktu untuk memeriksa pembaruan paket (misalnya sebulan sekali). Ini membantu menjaga keamanan proyek karena banyak update paket berisikan perbaikan bug atau patch keamanan. Jangan tunda update terlalu lama agar tidak terjadi akumulasi versi usang.
  • Gunakan Skrip NPM: Manfaatkan bagian scripts di package.json untuk automasi tugas (misalnya build, test, linting). Daripada mengetik perintah panjang berulang kali, Anda bisa mendefinisikan alias seperti "start": "node index.js" atau "test": "npm run lint && jest". Kemudian jalankan dengan npm run start atau npm run test. Hal ini mempercepat alur kerja dan mengurangi kesalahan penulisan perintah.
  • Audit Keamanan: Jalankan npm audit secara rutin untuk menemukan kerentanan keamanan di dependensi Anda. Jika ditemukan, perbaiki dengan npm audit fix atau perbarui paket yang rentan.
  • Hati-hati dengan Pemasangan Global: Hanya instal paket global jika perlu. Paket yang hanya digunakan dalam konteks proyek lokal lebih baik dipasang sebagai dependensi biasa. Instalasi global dapat menimbulkan masalah izin atau konflik dengan paket proyek.

Dengan mengikuti praktik terbaik di atas, penggunaan NPM menjadi lebih terorganisir dan profesional, membantu tim bekerja efisien tanpa masalah teknis yang tak perlu.

Kesimpulan

NPM adalah komponen inti dalam pengembangan aplikasi JavaScript modern. Dengan menggunakan NPM, Anda bisa dengan mudah mencari, menginstal, memperbarui, dan berbagi paket JavaScript. Artikel ini telah menjelaskan apa itu NPM, sejarah singkatnya, fungsi utama (sebagai registri, CLI, dan manajer paket), langkah-langkah penggunaan dasar NPM, hingga cara membuat dan mempublikasikan paket Anda sendiri.

Semua topik tersebut diperkuat dengan contoh perintah NPM dan referensi lengkap. Dengan pemahaman menyeluruh tentang NPM, seorang developer pemula yang sudah menguasai JavaScript dapat bekerja lebih cepat dan kolaboratif dalam proyek berskala besar.

Image

Sebagai tambahan, untuk mendalami ilmu pemrograman web secara menyeluruh, CodePolitan menyediakan kelas Fullstack Developer. Anda bisa mengakses materi lengkap pengembangan frontend dan backend di KelasFullstack, platform belajar online yang diselenggarakan oleh CodePolitan. Kelas ini mencakup pembelajaran dari A sampai Z, termasuk praktek membuat proyek nyata dan tips berkarir di dunia web developer. Segera kunjungi situs tersebut untuk informasi lebih lanjut dan mulai perjalanan Anda menjadi Fullstack Developer!

What do you think?

Reactions