Artikel ini adalah bagian pertama dari seri tutorial yang memperkenalkan
beberapa fitur fundamental dari bahasa Go.
Jika Anda baru saja memulai belajar Go, pastikan membaca
Tutorial: Go dari awal
terlebih dahulu,
yang secara singkat mengenalkan perintah go
, modul Go, dan kode Go.
Dalam tutorial ini kita akan membuat dua modul. Modul yang pertama adalah sebuah pustaka yang mana nanti akan di-impor oleh pustaka atau aplikasi yang lain. Modul yang kedua adalah aplikasi yang akan menggunakan modul yang pertama.
Seri tutorial ini mengikutkan tujuh topik yang tiap-tiapnya memaparkan bagian berbeda dari bahasa Go.
-
Membuat sebuah modul — Menulis sebuah modul yang fungsi-fungsinya dapat dipanggil dari modul lain.
-
Memanggil kode dari modul lain — Impor dan gunakan modul yang baru.
-
Mengembalikan dan menangani eror — Menambahkan penanganan eror sederhana.
-
Mengembalikan salam acak — Penanganan data dalam slice (array dengan ukuran dinamis pada Go).
-
Mengembalikan salam untuk beberapa orang — Menyimpan pasangan kunci-nilai dalam sebuah
map
. -
Membuat sebuah tes — Penggunaan fitur unit tes Go untuk menguji kode kita.
-
Mengompilasi dan memasang aplikasi — Mengompilasi dan memasang kode kita secara lokal.
Note
|
Untuk tutorial lainnya, lihat Tutorial. |
Kebutuhan
-
Pengalaman memrogram kode. Kode yang dicontohkan di sini cukup sederhana, namun akan lebih membantu bila pembaca paham tentang fungsi, pengulangan, dan array.
-
Alat untuk menyunting kode. Penyunting teks apa pun dapat digunakan. Kebanyakan penyunting teks memiliki dukungan untuk Go. Yang paling terkenal yaitu VSCode (gratis), GoLand (berbayar), dan Vim (gratis).
-
Terminal. Go bekerja dengan baik menggunakan terminal apa pun di Linux dan Mac, dan PowerShell atau
cmd
di Windows.
Membuat modul yang bisa digunakan orang lain
Memulai dengan membuat sebuah Go modul. Dalam sebuah modul, kita mengumpulkan satu atau lebih paket untuk sekumpulan fungsi yang diskret dan berguna. Contohnya, kita bisa membuat sebuah modul untuk paket-paket yang memiliki fungsi-fungsi yang melakukan analisis finansial sehingga orang lain yang membuat aplikasi finansial dapat menggunakan karya kita. Untuk informasi lebih lanjut tentang pengembangan dengan modul, lihat Membangun dan menerbitkan modul.
Kode Go dikelompokkan ke dalam paket-paket, dan paket-paket dikelompokkan ke dalam modul. Modul menspesifikasikan dependensi yang dibutuhkan untuk menjalankan semua kode dalam paket-paket, termasuk versi Go dan sekumpulan modul lain yang dibutuhkan.
Saat kita menambahkan atau memperbaiki fungsionalitas dalam modul, kita menerbitkan versi terbaru dari modul. Pengembang lain yang memanggil fungsi dalam modul kita dapat meng-impor paket-paket yang diperbarui dari modul kita dan mengujinya dengan versi yang terbaru sebelum menggunakan untuk production.
-
Buka terminal dan pindah (
cd
) ke direktori home.Di Linux atau Mac:
cd
Di Windows:
cd %HOMEPATH%
-
Buat direktori "greetings" untuk menyimpan sumber kode Go.
Contohnya, dari dalam direktori home jalankan perintah berikut:
mkdir greetings cd greetings
-
Buatlah Go modul menggunakan perintah
go mod init
Jalankan perintah “go mod init”, dengan memberikan parameter path modul — pada contoh ini, gunakan “example.com/greeting”. Jika Anda ingin menerbitkan modul, path modul ini haruslah path yang bisa diunduh oleh perkakas Go, yaitu repositori kode Anda.
$ go mod init example.com/greetings go: creating new go.mod: module example.com/greetings
Perintah “go mod init” membuat sebuah berkas
go.mod
untuk melacak dependensi dari kode Anda. Sejauh ini, berkas tersebut mengikutkan hanya nama dari modul dan versi Go yang didukung oleh kode Anda. Namun, saat Anda menambahkan dependensi, berkas go.mod tersebut akan berisi daftar modul orang lain berikut versinya yang kode Anda butuhkan. Hal ini membuat pembangunan dari kode Anda dapat direka-ulang dan memberikan Anda kontrol penuh terhadap versi modul yang digunakan. -
Dalam direktori "greetings" tersebut, buatlah sebuah berkas untuk menyimpan kode Go dengan nama "greetings.go".
-
Salin lah kode berikut ke dalam berkas "greetings.go" dan simpan.
package greetings import "fmt" // Hello mengembalikan sebuah salam untuk nama orang tertentu. func Hello(name string) string { // Kembalikan sebuah salam yang berisi `name` dalam sebuah pesan. message := fmt.Sprintf("Hi, %v. Welcome!", name) return message }
Ini adalah kode pertama Anda dalam modul. Ia berisi sebuah fungsi
Hello
yang mengembalikan sebuah salam untuk setiap pemanggilan. Kita akan menulis kode yang memanggil fungsi tersebut di langkah selanjutnya.Dalam kode ini, kita:
-
Mendeklarasikan sebuah paket bernama “greetings” yang berisi fungsi-fungsi yang berkaitan dengan salam.
-
Mengimplementasikan sebuah fungsi
Hello
yang mengembalikan sebuah pesan salaman.Fungsi ini menerima sebuah parameter
name
bertipe string. Fungsi ini mengembalikan sebuah string. Dalam Go, sebuah fungsi yang namanya diawali dengan huruf kapital dapat dipanggil oleh fungsi dari paket yang berbeda. Dalam Go hal ini dikenal dengan nama yang diekspor. Untuk lebih lanjut tentang nama-nama yang diekspor, lihat Nama-nama yang diekspor dalam tur Go. -
Mendeklarasikan sebuah variabel
message
yang menyimpan salam.Dalam Go, operator
:=
adalah cara singkat untuk mendeklarasikan dan menginisiasi sebuah variabel dalam satu baris (Go menggunakan nilai pada sebelah kanan untuk menentukan tipe dari variabel). Cara panjangnya, bisa ditulis seperti berikut:var message string message = fmt.Sprintf("Hi, %v. Welcome!", name)
-
Menggunakan fungsi Sprintf dari paket
fmt
untuk membuat pesan salaman yang disimpan dalammessage
. Argumen yang pertama dari fungsi tersebut yaitu format dari string, danSprintf
akan mengganti format “%v” dengan nilai dari parametername
. -
Mengembalikan teks salam yang telah di-format ke pemanggil.
-
Pada langkah selanjutnya, kita akan memanggil fungsi ini dari modul yang lain.
Lanjut: Memanggil kode dari modul lain.