Mengenal Package Manager Dalam Pemrograman

Ahmad Oriza 22 September 2014

Mengenal Package Manager Dalam Pemrograman

Dalam pemrograman jarang sekali kita mengerjakan project kita dari nol. Karena ada saja beberapa library/package "siap pakai" bukan "buatan kita" yang di integrasikan dalam project. Bisa jadi karena kita tidak mampu membuat library tersebut atau alasannya kita hanya ingin fokus bangun product, akhirnya menghemat waktu kerja dengan "memanfaatkan library buatan tetangga" yang telah berbagi dengan kita. Sebenernya dengan memanfaatkan apa yang sudah orang lain buat bisa menghemat waktu development. Dengan itu kita juga menghindari "reinventing the wheel".

Menyambung pembicaraan tentang library. Mari kita mengenal package manager (bisa juga kita panggil package management system). Package manager yang dimaksud disini adalah aplication-level package manager (dalam programming). Karena package manager pun ada untuk Operating System (Seperti msi, tgz, rpm, homebrew dll). Package manager peran besarnya adalah mengatur library dalam project kita. Package manager juga menyediakan fitur auto consume, dia mendownload library dari repository, menaruh library (yang sudah ter-download) ke path yang sudah ditentukan kemudian menghubungkannya dengan project kita (biasanya dengan konsep autoload), dan memecahkan masalah dependencies (yaitu ketergantungan, coba tengok http://tutorials.jenkov.com/ood/understanding-dependencies.html). Maka dari itu package manager sering juga disebut dependencies manager.

Apapun bahasa pemrogramannya, package manager selalu mempunyai dua bagian, yaitu :

  1. Repository dari source code. Repository source code ini berbasis version control (git/svn/hg) yang disimpan di suatu server. (Tempat dimana programmer baik hati mengupload hasil karyanya :p).
  2. Program client. Program ini bertugas untuk berkomunikasi dengan repository, dan mengerjakan pekerjaan client side. Biasanya bentuknya Command Line Tool (Dijalankan dalam Command Line Interface).

Baca juga: Mengapa Web Developer Harus Belajar Vagrant?

Cara pakai package manager di masing-masing bahasa pemrograman mirip. Sebagian besar cara kerja kita adalah menentukan library yang dibutuhkan (dependency) di suatu file (membawa format masing-masing bahasa atau dalam format file JSON) . File tersebut lantas di simpan dalam root folder project kita. Selanjutnya kita menjalankan Command Line Tool, mengetik perintah install / update (dengan aturan Command Line Tool masing-masing bahasa) ..tara.. file fisik library sudah ada di folder project kita, dengan kata lain sudah terintegrasi dengan project kita.

[caption id="attachment_1912" align="aligncenter" width="426"]npm Contoh men-define library dalam package manager[/caption]

Dalam ekosistem package manager pun kita tidak hanya bisa memanfaatkan tapi juga bisa berbagi. Jika kita punya library yang bagus, kita bisa submit ke package manager host.  Menurut saya salah satu bagian penting dari produk package manager sebenarnya adalah kontributor itu sendiri. Karena kontributor lah yang meramaikan konten repository.

Mari kita simak beberapa bahasa pemrograman yang memiliki package manager. Juga saya sertakan link homepage masing-masing package manager tersebut :

dst.

Demikianlah penjelasan singkat mengenai package manager. Tertarik untuk mencoba?

 

Sumber :

http://blog.versioneye.com/2014/01/15/which-programming-language-has-the-best-package-manager/ http://en.wikipedia.org/wiki/List_of_software_package_management_systems http://id.wikipedia.org/wiki/Package_manager http://en.wikipedia.org/wiki/Package_management_system http://spectrum.ieee.org/computing/software/top-10-programming-languages