Gambar 1. Pengenalan Modul Node.JS.
Modul dalam Node.js bisa disamakan dengan library yang berisi kumpulan fungsi-fungsi siap pakai yang dapat digunakan dalam aplikasi. Dengan menggunakan modul, kita tidak perlu membangun fungsi-fungsi tersebut dari awal, melainkan dapat memanfaatkan fungsi-fungsi yang sudah ada di dalam modul tersebut.
Gambar 2. Node.JS module.
Bayangkan modul sebagai kotak alat yang berisi berbagai peralatan atau instrumen yang sudah siap digunakan. Misalnya, jika kita ingin membangun sebuah aplikasi web, kita dapat menggunakan modul seperti Express.js. Modul ini berisi berbagai fungsi dan fitur yang sudah dikembangkan sebelumnya oleh pengembang lain. Kita dapat memanggil fungsi-fungsi ini untuk membuat server, menangani rute-rute URL, atau melakukan tugas-tugas lain yang terkait dengan pengembangan aplikasi web.
Dengan menggunakan modul, kita dapat menghemat waktu dan usaha dalam pengembangan aplikasi. Kita tidak perlu mengembangkan ulang fungsi-fungsi yang sudah ada di dalam modul, karena kita dapat memanfaatkannya secara langsung. Kita tinggal mengimpor modul ke dalam aplikasi kita dan menggunakan fungsi-fungsi yang diberikan.
Dalam konteks ini, modul sebenarnya mirip dengan perpustakaan atau koleksi buku yang berisi pengetahuan dan informasi yang telah dikumpulkan. Sebagai seorang pengembang, kita dapat memilih modul-modul yang sesuai dengan kebutuhan kita dan menggunakannya untuk memperluas fungsionalitas aplikasi kita.
Jadi, dengan menggunakan modul dalam Node.js, kita bisa mendapatkan akses ke fungsi-fungsi yang sudah jadi tanpa perlu membangun semuanya dari awal. Ini memudahkan dan mempercepat proses pengembangan aplikasi kita.
Modul Built-in
Node.js memiliki banyak modul bawaan yang dapat kita manfaatkan ketika membuat aplikasi. Modul-modul ini sudah disertakan secara default saat kita menginstal Node.js, jadi kita tidak perlu menginstalnya menggunakan NPM. Contoh beberapa modul bawaan tersebut antara lain:
Modul ini digunakan untuk melakukan permintaan HTTP dan membuat server HTTP. Kita dapat menggunakan modul ini untuk berkomunikasi dengan server lain atau untuk membuat server kita sendiri.
Modul ini memungkinkan kita untuk bekerja dengan sistem file. Kita dapat membaca, menulis, dan mengedit file menggunakan fungsi-fungsi yang disediakan oleh modul ini.
Modul ini digunakan untuk mem-parsing string URL. Kita dapat mengambil informasi seperti hostname, path, atau parameter dari URL menggunakan modul ini.
Modul ini berguna untuk bekerja dengan string query. Kita dapat mengonversi query string menjadi objek JavaScript, atau sebaliknya, menggunakan fungsi-fungsi dari modul ini.
Modul ini memberikan informasi tentang sistem operasi yang sedang digunakan. Kita dapat mengakses informasi seperti nama host, arsitektur sistem, atau versi sistem operasi menggunakan modul ini.
Cara mengimpor modul built-in ke dalam aplikasi adalah dengan menggunakan fungsi 'require'. Contohnya, jika kita ingin menggunakan modul 'http', kita dapat menulis kode berikut:
Gambar 3. Cara mengimpor modul built-in.
Setelah itu, kita dapat menggunakan variabel 'http' untuk mengakses fungsi-fungsi yang disediakan oleh modul 'http'. Dengan menggunakan modul-modul bawaan ini, kita dapat menghemat waktu dan usaha dalam mengembangkan aplikasi, karena kita tidak perlu menulis kode dari nol untuk tugas-tugas umum seperti membuat server HTTP atau berinteraksi dengan sistem file. Berikut adalah contoh penggunaan modul built-in http:
Gambar 5. Contoh penggunaan modul built-in.
Pada program di gambar 5, kita bisa mengimpor modul 'http' menggunakan fungsi 'require( )'. Kemudian, kita bisa menggunakan fungsi 'createServer()' dari modul 'http' untuk membuat server HTTP sederhana. Fungsi 'createServer()' menerima sebuah fungsi callback yang akan dipanggil setiap kali ada permintaan dari client. Pada program di gambar 5, fungsi callback ditandai dengan parameter 'req' (permintaan dari client) dan 'res' (respons yang akan dikirimkan kembali ke client).
Pada fungsi callback, kami mengatur status kode respons menjadi 200, mengatur header 'Content-Type' menjadi 'text/plain', dan mengirimkan teks "Halo, dunia!" sebagai isi respons menggunakan fungsi 'end'. Kemudian, kami menggunakan metode 'listen()' pada object server untuk mendengarkan koneksi pada port yang ditentukan (dalam contoh ini, port 3000). Ketika server sudah berjalan, akan mencetak pesan di konsol.
Dengan menjalankan kode di gambar 5, kalian dapat menjalankan server HTTP sederhana yang akan merespons dengan teks "Halo, dunia!" setiap kali ada permintaan dari client yang terhubung ke http://localhost:3000/.
Modul Pihak Ketiga
Modul Node.js pihak ketiga adalah modul yang dikembangkan oleh pengembang di luar inti Node.js. Modul-modul ini tidak disertakan secara langsung dalam instalasi Node.js, tetapi dapat diunduh dan diinstal menggunakan manajer paket seperti npm (Node Package Manager) atau Yarn.
Modul pihak ketiga ini dikembangkan oleh komunitas pengembang yang luas dan menawarkan berbagai fitur dan fungsionalitas tambahan yang tidak ada dalam modul bawaan Node.js. Mereka dapat digunakan untuk memperluas fungsionalitas aplikasi, mempermudah pengembangan, atau mengintegrasikan dengan layanan atau teknologi tertentu. Beberapa contoh modul pihak ketiga populer dalam ekosistem Node.js termasuk:
Modul ini adalah framework web yang kuat dan populer untuk membangun aplikasi web dengan Node.js. Express.js menyediakan alat-alat yang efisien dan ekspresif untuk mengelola rute, permintaan HTTP, middleware, dan banyak lagi.
Modul ini adalah pustaka real-time yang digunakan untuk memungkinkan komunikasi antara server dan klien melalui WebSockets. Socket.IO memudahkan implementasi fitur seperti pemutaran waktu nyata, obrolan, dan pembaruan data real-time dalam aplikasi web.
Modul ini adalah ODM (Object Data Modeling) yang digunakan untuk berinteraksi dengan database MongoDB dalam aplikasi Node.js. Mongoose menyederhanakan penggunaan MongoDB dengan menyediakan fitur validasi data, pengelolaan relasi, middleware, dan banyak lagi.
Modul ini adalah utilitas JavaScript yang kaya yang menyediakan banyak fungsi bantu dan metode utilitas untuk memanipulasi dan mengelola data. Lodash mempermudah pekerjaan dengan array, object, string, dan banyak lagi dalam kode JavaScript.
Modul ini adalah klien HTTP yang populer dan sederhana untuk Node.js dan browser. Axios memungkinkan kita untuk membuat permintaan HTTP ke server, mengirim dan menerima data, mengelola respons, dan banyak lagi.
Ada banyak modul pihak ketiga lainnya yang dapat kalian temukan di registry npm atau repositori modul-modul Node.js. Kalian dapat menggunakan manajer paket seperti npm atau Yarn untuk menginstal modul-modul ini dalam proyek kalian dengan mudah. Berikut ini adalah contoh penggunaan modul Express.js dalam Node.js:
Sebelum menggunakan Express.js, kalian perlu menginstalnya terlebih dahulu. Kalian dapat melakukannya dengan menjalankan perintah berikut menggunakan npm:
Gambar 6. Instalasi express.js.
Berikut ini adalah contoh sederhana penggunaan Express.js untuk membuat server web dengan satu rute:
Gambar 7. Contoh penggunaan express.js.
Pada program di gambar 7, kita bisa mengimpor modul Express.js menggunakan fungsi require() dan membuat object aplikasi Express dengan express. Kemudian, kita bisa menetapkan nomor port yang akan digunakan oleh server.
Kemudian, kita bisa mendefinisikan rute beranda menggunakan metode get. Ketika ada permintaan GET ke rute beranda ('/'), fungsi callback akan dipanggil. Pada program di gambar 7, fungsi callback mengirimkan teks 'Selamat datang di halaman beranda!' sebagai respons. Terakhir, kita bisa menggunakan metode listen pada object aplikasi Express untuk menjalankan server dan mendengarkan koneksi pada port yang ditentukan (dalam contoh ini, port 3000). Ketika server sudah berjalan, akan mencetak pesan di konsol.
Dengan menjalankan kode di atas, kalian dapat menjalankan server Express.js yang akan merespons dengan teks 'Selamat datang di halaman beranda!' setiap kali ada permintaan GET ke http://localhost:3000/.
Dengan menggunakan modul pihak ketiga, kalian dapat memanfaatkan kode yang sudah dikembangkan oleh pengembang lain, menghemat waktu dan usaha dalam pengembangan, dan memperluas fungsionalitas aplikasi Anda dengan fitur-fitur yang sudah ada.
Gambar 8. Penjelasan package.json.
File package.json adalah file metadata dalam proyek Node.js yang berisi informasi tentang proyek tersebut, termasuk daftar dependensi dan dev-dependensi. Dependensi adalah paket-paket yang diperlukan agar aplikasi dapat berjalan, sedangkan dev-dependensi adalah paket-paket yang diperlukan dalam proses pengembangan aplikasi.
Pengelolaan dependensi dan dev-dependensi dilakukan dengan menggunakan NPM (Node Package Manager). Berikut adalah penjelasan tentang konsep dependencies dan devDependencies dalam file package.json, serta bagaimana cara mengelolanya dengan NPM:
Dependencies adalah modul atau paket yang diperlukan oleh aplikasi kalian agar dapat berjalan dengan baik. Ini mencakup modul pihak ketiga atau bahkan modul internal yang kalian buat sendiri. Misalnya, jika kalian menggunakan modul Express.js dalam aplikasi kalian, Express.js adalah salah satu dependensi dari aplikasi tersebut. Dependensi ini diperlukan untuk menjalankan dan mengoperasikan aplikasi dengan benar. Dependencies biasanya mencakup versi modul yang diperlukan. Versi ini mendefinisikan rentang versi yang kompatibel dengan aplikasi kalian. Misalnya, kalian dapat menentukan bahwa aplikasi kalian membutuhkan modul Express.js dengan versi minimal 4.x.x. Dependencies ditentukan dalam bagian "dependencies" dari file package.json. Setiap dependensi dinyatakan sebagai pasangan "nama_modul: versi". Misalnya:
Gambar 9. Contoh dependensi.
Pada program di gambar 9, kita menambahkan paket express sebagai dependencies dengan versi ^4.17.1. Cara menginstall dependensi menggunakan NPM adalah sebagai berikut:
Gambar 10. Cara menginstal dependensi.
devDependencies adalah modul atau paket yang diperlukan selama pengembangan aplikasi, tetapi tidak diperlukan saat aplikasi sudah berjalan di produksi. Ini bisa mencakup alat pengujian, alat pengembangan, atau pustaka bantuan yang digunakan saat membangun aplikasi. Contohnya adalah Jest, Mocha, atau Babel. Contoh cara menambahkan dev-dependencies pada file package.json:
Gambar 11. Contoh devDependencies.
Pada program di gambar 11, kita menambahkan paket mocha dan chai sebagai dev-dependencies. Cara menginstal dev-dependencies menggunakan NPM:
Gambar 12. Contoh menginstal devDependencies.
NPM menyediakan banyak perintah yang dapat digunakan untuk mengelola dependensi dan dev-dependensi dalam proyek Node.js, seperti install, uninstall, update, dan list. Berikut adalah beberapa contoh penggunaan perintah-perintah tersebut:
a. Menginstal dependencies yang terdaftar dalam package.json
Gambar 13. Menginstal dependencies.
b. Menginstal dependencies secara manual
Gambar 14. Menginstal dependecies secara manual.
c. Menginstal dev-dependencies yang terdaftar dalam package.json
Gambar 14. Menginstal devDependencies.
d. Menginstal dev-dependencies secara manual
Gambar 15. Menginstal devDependencies secara manual.
e. Menghapus dependencies
Gambar 16. Menghapus dependencies.
f. Melihat daftar dependencies yang terpasang
Gambar 17. Melihat daftar dependecies.
g. Memperbarui dependencies
Gambar 18. Memperbarui dependecies.
Referensi
Belajar Nodejs #03: Cara Menggunakan Modul dalam Aplikasi Nodejs (petanikode.com)
Perbedaan Dependencies dan DevDependencies Package.json - Teziger Blog