Jenis-Jenis Package Manager untuk Web Development

Ketika membuat website, kita memerlukan berbagai teknologi, seperti bahasa pemrograman, library, atau framework.
Jika teknologi-teknologi tersebut belum tersedia di komputer kita, kita perlu mengunduh dan menginstalnya terlebih dahulu. Namun, beberapa teknologi bisa cukup rumit untuk diinstal secara manual.
Bagaimana solusinya? Di sinilah peran package manager. Package manager membantu mempermudah kerja kita sebagai web developer. Tapi, apa itu package manager, bagaimana cara kerjanya, dan apa saja package manager yang diperlukan? Mari kita bahas lebih lanjut.
Apa itu Package Manager dan Mengapa Kita Memerlukannya?
Sebuah package manager merupakan alat yang berguna untuk memudahkan instalasi perangkat lunak dan bahasa pemrograman yang diperlukan dalam proses pengembangan, baik itu dalam pembuatan situs web, aplikasi seluler, aplikasi web, dan lain sebagainya. Dengan menggunakan package manager, kita tidak perlu melakukan instalasi secara manual.
Namun, mengapa package manager begitu penting?
- Untuk menginstal perangkat lunak.
- Mengelola dependensi.
- Melakukan update.
- Menghapus instalasi perangkat lunak atau bahasa pemrograman yang yang sudah terpasang di komputer kita.
- Berfungsi sebagai repositori online atau tempat penyimpanan packages.
Bagi yang belum familiar dengan istilah dependensi, secara sederhana dependensi adalah teknologi yang diperlukan oleh suatu program atau perangkat lunak agar dapat berfungsi dengan baik. Dependensi ini dapat berupa perangkat lunak tambahan, library, atau komponen lain yang harus ada atau tersedia agar program tersebut dapat berjalan dengan lancar. Jika dependensi tidak terpenuhi, program mungkin tidak dapat berjalan atau mengalami masalah.
Cara Kerja Package Manager
Misalnya begini, kita akan membuat sebuah website menggunakan Laravel (PHP framework). Kita memang sudah punya PHP di komputer, tetapi tak punya Laravel, maka kita harus menginstal Laravel terlebih dahulu. Selain Laravel atau framework utama, kita juga perlu CSS framework untuk mengatur tampilan. Katakanlah kita akan menggunakan Tailwind.
Bagaimana cara menginstal Laravel, membuat project baru, dan menginstal semua teknologi yang diperlukan? Kita tidak mungkin menginstalnya satu per satu secara manual, bukan? Maka di sinilah sebuah package manager diperlukan.
Kita akan mengetikkan perintah di Command Line Interface (CLI) seperti ini:
# Perintah untuk menginstal Laravel secara global
composer global require laravel/installer
# Membuat proyek Laravel baru
laravel new example-app
# Masuk ke direktori proyek
cd example-app
# Menginstal Tailwind CSS menggunakan npm
npm install -D tailwindcss
# Membuat file konfigurasi Tailwind CSS
npx tailwindcss init
Saat kita mengetikkan perintah menggunakan composer
, kita memerintahkan Composer sebagai package manger untuk mencarikan package Laravel di dalam repositori mereka dan menginstalnya di komputer kita. Begitu juga ketika kita menggunakan npm
, artinya kita memerintahkan package manager npm untuk mengunduh dan menginstal Tailwind di proyek yang baru kita buat.

Agar dapat menggunakan package manager, kita perlu menginstalnya terlebih dahulu di komputer kita.
Jenis-Jenis Package Manager
Setiap bahasa pemrograman memiliki package manager masing-masing. Ada pula package manager yang khusus untuk OS tertentu. Agar lebih jelas, berikut ini beberapa package manager yang paling umum digunakan dalam pengembangan web.
1. Node Package Manager (npm)
- OS: Windows, macOS, Linux
- Bahasa: JavaScript dan Node.js

Node Package Manager atau npm adalah package manager untuk bahasa pemrograman JavaScript dan Node.js runtime environment. Selain itu npm juga berfungsi sebagai repositori online untuk packages yang menggunakan Node.js. Repositori npm disebut npm registry.
Contoh command line:
# Menginstal package baru
npm install <nama-package>
npm i <nama-package>
# Membuat package.json baru
npm init
# Contoh penggunaan
npm
npm i bootstrap@5.3.2
Setelah melihat contoh di atas, barangkali Anda bertanya-tanya, mengapa Bootstrap bisa diunduh via npm padahal Bootstrap adalah CSS framework? Itu karena Bootstrap adalah CSS framework yang mencakup beberapa komponen, di antaranya JavaScript. Dan seperti yang saya jelaskan dalam bab sebelumnya, npm dan package manager lainnya juga berfungsi sebagai repositori.
Apabila Anda menggunakan Node.js, npm akan terinstal bersamaan dengan Node.js.
2. Node Package Runner (npx)
Node Package Runner bukanlah package manager, tetapi saya sebutkan di sini karena relevan dengan npm. NPX adalah alat untuk menjalankan paket Node.js yang diinstal melalui npm.
Contoh command line:
# Membuat project React baru
npx create-react-app my-app
# Membuat project Next.js baru
npx create-next-app@latest
3. Composer
- OS: Windows, macOS, Linux
- Bahasa: PHP

Composer adalah package manager untuk bahasa pemrograman PHP dan turunannya. Ini termasuk framework Laravel dan CodeIgniter (CI). Contoh lain, SSG Jigsaw juga diinstalnya menggunakan composer. Repositori utama untuk Composer adalah Packagist yang berfungsi sebagai tempat penyimpanan paket PHP.
Contoh command line:
# Menginstal dependensi yang didefinisikan dalam file composer.json
composer install
# Memperbarui dependensi ke versi terbaru yang kompatibel
composer update
4. Performant Node Package Manager (pnpm)
- OS: Windows, macOS, Linux
- Bahasa: JavaScript dan Node.js

Sama seperti npm, pnpm juga package manager untuk bahasa pemrograman JavaScript. Bedanya, pnpm lebih hemat penyimpanan karena tidak menggandakan file yang sama di setiap proyek. Sebagai gantinya, pnpm menggunakan cara berbagi file di satu tempat sehingga instalasinya jadi lebih cepat dan efisien. Pnpm tidak memiliki repositori sendiri, mereka mengunduh package dari npm registry.
Contoh command line
# Menginstal dependensi yang telah telah didefinisikan dalam file package.json
pnpm install
# Menginstal package baru
pnpm add package-name
5. Python Package Installer (pip)
- OS: Windows, macOS, Linux
- Bahasa: Python

Sesuai namanya, Python Package Installer (pip) merupakan package manager untuk bahasa pemrograman Python, termasuk untuk menginstal framework Python seperti Django. Repositori utamanya disebut Python Package Index (PyPI).
# Menginstal package baru
pip install <nama-package>
pip i <nama-package>
# Mengupdate paket ke versi terbaru
pip install --upgrade <nama-paket>
# Contoh penggunaan
pip install Django==4.2.7
6. Homebrew
- OS: macOS, Linux, WSL
- Bahasa: semua

Berbeda dengan package manager lain yang khusus untuk bahasa pemrograman tertentu, Homebrew bisa digunakan untuk berbagai bahasa, termasuk untuk menginstal static-site generator seperti Hugo. Yang terpenting adalah kita menggunakan sistem operasi macOS atau Linux. Homebrew tidak bisa digunakan di Windows kecuali jika Anda menggunakan Windows Subsystem for Linux (WSL).
# Menginstal package baru
brew install <package-name>
# Uninstal package
brew uninstall <package-name>
#
brew list
7. Chocolatey
- OS: Windows
- Bahasa: semua

Sama seperti Homebrew, Chocolatey atau Choco juga dapat digunakan untuk menginstal berbagai bahasa. Bedanya, Chocolatey hanya untuk sistem operasi Windows. Repositori utamanya disebut Chocolatey Community Repository (CCR).
Contoh command line
# Instal Hugo yang menggunakan bahasa pemrograman Go
choco install hugo-extended
8. Yarn
- OS: Windows, macOS, Linux
- Bahasa: JavaScript

Yarn adalah package manager untuk bahasa pemrograman JavaScript, sering disebut-sebut sebagai alternatif dari npm. Apa bedanya dengan npm? Yarn dikenal karena kecepatannya saat menginstal atau mengunduh, juga tersedia packages versi offline sehingga kita bisa mengunduh dan menginstal package meski tanpa koneksi internet.
Sama seperti pnpm, Yarn juga tidak memiliki repositori sendiri. Mereka menggunakan npm registry sebagai repositori.
Contoh command line:
# Menginstal package
yarn add <nama-package>
# Menghapus package
yarn remove <nama-package>
# Contoh penggunaan: menginstal lodash
yarn add lodash
FAQs
Apakah package manager memerlukan internet?
Ya, saat instalasi, package manager memerlukan akses internet. Namun, setelah semua dependensi diinstal di komputer, kita bisa menjalankan website yang sedang dikembangkan meskipun tanpa jaringan internet.
Sebagai tambahan, pnpm dan npm dapat digunakan untuk menginstal package dari cache yang sudah ada jika paket tersebut sebelumnya sudah diunduh. Yarn juga memiliki fitur offline mode yang memungkinkan penginstalan package tanpa koneksi internet.
Apakah kita perlu menginstal semua package manager di komputer kita?
Tentu tidak. Sangat tergantung pada jenis website yang sedang kita kembangkan dan bahasa pemrograman yang kita gunakan.
Untuk web developer pemula, package manager apa saja yang perlu ada?
Composer dan npm.
Apakah pnpm dan npm bisa digunakan secara bersamaan?
Ya, tapi tidak disarankan. Pilihlah salah satu agar manajemen dependensi lebih konsisten.
Apa perbedaan utama antara npm dan Yarn?
Yarn dikenal karena kecepatannya saat menginstal atau mengunduh, juga tersedia packages versi offline sehingga kita bisa mengunduh dan menginstal package meski tanpa koneksi internet. npm adalah package manager default untuk Node.js dan memiliki komunitas yang lebih besar.
Apakah composer dan npm dapat digunakan secara bersamaan di dalam satu proyek?
Ya. Tetapi untuk menjalankan server, tetap harus menggunakan perintah yang sesuai dengan bahasa pemrograman yang kita gunakan.
Selain beberapa package manager yang telah disebutkan, ada juga Deno dan Bun yang merupakan JavaScript runtime seperti Node.js. Namun, karena masih relatif baru, ekosistemnya belum cukup matang, dan keberadaan package manager di Bun dan Deno masih dalam tahap pengembangan. Saya akan membahasnya lebih lanjut di artikel terpisah.
Kemudian, ada juga WinGet atau Windows Package Manager yang dibuat oleh Microsoft. Versi stabilnya baru dirilis pada Agustus 2024. Tidak saya masukkan dalam daftar karena merupakan package manager untuk berbagai jenis perangkat lunak, ekosistem dan repositorinya juga belum sepenuhnya matang.
Karena artikel ini sudah cukup panjang, saya akhiri sampai di sini. Semoga bermanfaat dan sampai jumpa di artikel berikutnya. (eL)