Paket Manajer Nimble
Nim punya paket manajer bernama Nimble, paket manager membantu kita untuk membuat pustaka sendiri dan mengatur projek berisi kode yang kita tulis (disebut codebase). Bagian ini akan membahas bagaimana membuat proyek kode dengan Nimble.
Pustaka (Library) adalah kumpulan kode yang dibuat untuk digunakan oleh program atau proyek lain, sedangkan Proyek adalah kumpulan kode kita yang diatur ke dalam bentuk proyek untuk mudah menjalankan kumpulan kode sumber sekaligus.
Cara memakai Nimble
Nimble tersedia langsung saat kita menginstall Nim, untuk mengecek nimbel dapat mengetikan nimble
di terminal (kalau di Windows, Command Prompt). Nimble punya banyak perintah dan flags untuk
pemakaianya, maka tabel berikut berisi cheetsheet untuk mengenali penggunaan nimble :
Perintah | Contoh | Keterangan |
---|---|---|
init | nimble init | Membuat pustaka dan proyek dengan Nimble akan muncul dialog teks interaktif untuk prosesnya |
build | nimble build | Memgompile proyek Nimble |
run | nimble run | Menjalan entrypoint proyek yang dibuat dengan Nimble |
install | nimbel install <nama pustaka> , nimble install jester | Memasang pustaka global, jadi pustaka ini bisa dipakai oleh program tunggal, proyek dan pustaka |
uninstall | nimble uninstall <nama pustaka> ,nimble uninstall jester | Menghapus pustaka yang terinstall di lokal installasi Nim |
search | nimble search <nama pustaka> ,nimble search jester | Mencari pustaka didalam installasi Nim |
Peringatan : perintah
run
danbuild
hanya bisa dijalan di dalam folder proyek Nimble. Caranya masukan terminal ke folder proyek nimble dan jalankan perintah ini.
Membuat Proyek/Pustaka dengan Nimble
Buat folder nim
bebas dimana (boleh di drive D:
atau /home/user/
) untuk praktik kali ini kemudian buka terminal dan masuk ke folder nim
. Berikut langkah untuk membuat projek/pustaka sederhana dengan Nimble:
-
Buat folder dengan nama projek/pustaka yang kamu inginkan, lalu masuk kedalamnya (contoh
april
). Karena nimble akan mengunakan nama folder itu sebagai nama projek/pustaka yang akan kita buat. -
Jalankan perintah
nimble init
maka akan muncul berbagai pertanyaan- Akan terdapat opsi
library
(pustaka),binary
atauhybrid
. Pilihbinary
(untuk membuat proyek) dengan memencetTab
di keyboard dan tekanenter
untuk lanjut. - Nimble akan menanyakan versi (ini untuk memantau perkembangan proyek/pustaka kamu), sementara ini masukan
0.0.1
. - Setelah ini nimble menanyakan deskripsi proyek, langsung tekan
enter
saja kalau belum ada. - Kemudian keterangan lisensi proyek/pustaka, bagian ini
enter
saja (kecuali kamu sudah paham lisensi yang mau dipakai) - Terakhir, versi nim terendah untuk proyek/pustaka yang dibuat, untuk ini
enter
saja.
- Akan terdapat opsi
Setelah membuat proyek dengan Nimble, sekarang didalam folder kita ada ada berkas dengan nama <nama proyek>.nimble
yang berisi kurang lebih seperti ini:
# Package
version = "0.0.1"
author = "Y"
description = "A new awesome nimble package"
license = "MIT"
srcDir = "src"
bin = @["april"]
# Dependencies
requires "nim >= 1.6.2"
Berkas .nimble
diatas adalah deskripsi dari proyek atau pusatka yang kita buat. Fungsi requires
dalam .nimble
berguna untuk mendefinisikan kalau proyek/pustaka kita perlu pustaka ini (contoh
nim >= 1.6.2
, perlu pustaka nim
dengan versi sama atau lebih tinggi dari 1.6.2
).
Kode dari pustaka yang didefiniskan lewat .nimble
bisa digunakan didalam proyek/pustaka kita,
karena tidak semua kode yang kita tulis murni dari kita sendiri, akan ada saatnya membutuhan pustaka orang lain untuk memenuhi kebutuhan kita tanpa harus kita yang menulisnya sendiri.
Pada bagian Pemrograman Modular
akan membahas penggunaan kode dari file lain dan pustaka orang lain.
Mengenali struktur proyek
Contoh ini kita menggunakan proyek dari template binary
, template ini diperuntuhkan membuat proyek kecil (karena kita tidak perlu testing sejauh ini). Setelah membuat projek selain .nimble
kita juga punya folder bernama src
.
Seperti ini bentuknya bila kita lihat dari file eksplorer:
+-[src]
|-- april.nim
+- april.nimble
Nama proyek yang saya gunakan : april
, maka akan menghasilkan april.nimble
dan src/april.nim
yang menjadi entrypoint dari proyek. Entrypoint adalah bagian proyek yang akan dijalankan ketika nimble run
, ditentukan didalam april.nimble
pada bagian bin = @["april"]
(definisi entrypoint).
Berikut isi dari src/april.nim
:
# This is just an example to get you started. A typical binary package
# uses this file as the main entry point of the application.
when isMainModule:
echo("Hello, World!")
Kode didalam baris when isMainModule
akan menamplikan Hello World
, ini yang akan terjadi jika
kita menjalankan nimble run
. Sekarang jalankan nimble run
.
Pro-tip: Untuk membuat proyek yang membutuhkan testing, saat pembuatan proyek gunakan template
hybrid
ketimbangbinary
, karena sebagian kode kita akan berperan sebagai pelengkap entrypoint yakni menjadi pustaka yang perlu pengujian terpisah.