Cara Instalasi Perkakas Kompilator Go


Bahasa pemrograman Go mulai diperkenalkan pada tahun 2009 oleh Google. Ken Thompson, pencipta bahasa C, merupakan salah seorang perancang bahasa Go. Sebagai bahasa pemrograman relatif baru, bahasa ini memanfaatkan berbagai citarasa dari pendahulunya yang dianggap baik. Beberapa bahasa pemrograman yang memberikan pengaruh pada Go adalah C, Pascal, Python, dan sedikit banyak Java.

Go merupakan bahasa pemrograman umum (bukan spesifik untuk kebutuhan aplikasi tertentu atau untuk perangkat tertentu), dan tersedia untuk berbagai parangkat Linux, Windows, Mac, dlsb.

Go Logo

Catatan ini berisi informasi singkat untuk meng-instal perkakas kompilator Go pada sistem Linux dan Microsoft Windows.

Perangkat lunak Go untuk berbagai perangkat dapat diunduh dari di situs resmi Go, Pilih dan unduh distribusi yang sesuai dengan jenis perangkat keras yang dimiliki (Intel 32 Bit atau AMD 64 Bit) dan sistem operasi yang digunakan (Linux atau Microsoft).

Instalasi pada sistem Linux

  1. Unduh distribusi go1.8.3.linux-amd64.tar.gz  untuk Linux 64 bit (AMD). Untuk perangkat lain atau versi yang lebih baru, kunjungi langsung situsnya disini. Beberapa distro linux sudah menyediakan paket go, tetapi versi yang tersedia agak lama, sehingga lebih baik mengambil langsung dari situs resminya.
  2. Perangkat lunak tersebut dapat di-instal di /usr/local (atau ditempat lain, sesuai dengan kebiasaan instalasi perangkat lunak pada sistem tersebut.) Instalasi di /usr/local dan di folder lain diluar home-directory mungkin membutuhkan otoritas root, menggunakan perkakas sudo.
     sudo tar -C /usr/local -xzf go1.8.3.linux-amd64.tar.gz

    Gambar 1. Membongkar file distribusi Go
  3. Tambahkan folder command untuk Go kedalam path eksekusi. Paling mudah dan aman adalah menambahkan path tersebut untuk masing-masing userid dengan mengedit file ~/.bashrc. Bagi pengguna shell lain, seperti tcsh, silakan melihat dokumentasi untuk tcsh untuk manambahkan path baru.
     vi ~/.bashrc

    Gambar 2. Setting PATH untuk perintah Go
  4. Ada dua variabel environment yang perlu diperhatikan (dan diisi atau diubah jika perlu), yaitu GOROOT dan GOPATH
    • $GOROOT adalah lokasi dari distribusi Go, default adalah di /usr/local/go
    • $GOPATH adalah lokasi folder untuk development dengan Go, default adalah di home directory, ~/go
    • Jika salah satu atau kedua variabel tersebut tidak terdefinisi, maka nilai default diatas yang digunakan.
    • Pengisian variabel tersebut dapat dilakukan dengan menyunting file .bashrc seperti diatas.

Instalasi pada sistem Microsoft

  1. Unduh installer go1.8.3.windows-386.msi atau go1.8.3.windows-amd64.msi, sesuai dengan perangkat ygn dimiliki. Tersedia juga dalam bentuk arsip .zip jika tidak ingin menggunakan installer Windows.
  2. Buka file .msi tersebut dan ikuti arahan instalasi yang diberikan. Default lokasi distribusi perkakas Go adalah di C:\Go
  3. Installer juga akan otomatis menaruh C:\Go\bin kedalam variabel environment PATH. Semua command prompt, shell, cmd.exe, dlsb harus di-restart (di-close dan kemudian dipanggil lagi) agar isi variabel %PATH% yang baru dapat dikenali, dan perkakas GO dapat dipanggil dengan mudah.
  4. Dua variabel environment Go, yaitu GOROOT dan GOPATH juga perlu diperhatikan. Untuk melihat dan mengubah buka panel kontrol “System” atau klik ikon PC di Desktop dan pilih “Properties”, kemudian pilih tab “Advanced” atau opsi “Advanced System Settings”, dan klik tombol “Environment Variables”. Kedua variabel ini ada atau dapat ditambahkan pada list variabel environment tersebut.
    • %GOROOT% adalah lokasi perkakas GO, defaultnya sesuai lokasi waktu install, yaitu C:\Go
    • %GOPATH% adalah lokasi folder untuk development dengan GO, defaultnya adalah %USERPROFILE%\go. Jika login dengan userid=jimmyt, maka %GOPATH% mempunyai nilai default C:\Users\jimmyt\go.
    • Jika salah satu atau kedua variabel environment tersebut tidak terdefinisi, maka nilai default yang disebutkan itu yang digunakan.

Folder development/Tempat kerja

Folder development sesuai yang ditunjuk oleh GOPATH variabel.

  • GOPATH/src berisi kode program yang mau dikembangkan dalam bahasa Go. Mirip program Java, program Go terdiri dari paket dan tersusun dalam hirarki folder. Ilustrasi paket untel/jmt/hello/hello.go akan disimpan dalam folder di mesin yang berbeda:
    • Sistem Linux: /home/jimmyt/go/src/untel/jmt/hello/hello.go
    • Sstem Windows: C:\Users\jimmyt\go\src\untel\jmt\hello\hello.go
  • GOPATH/bin berisi hasil kompilasi yang siap eksekusi. Untuk kemudahan pemanggilan folder bin ini boleh juga ditambahkan ke variabel PATH=$PATH:~/go/bin
  • GOPATH/pkg berisi paket (package) hasil kompilasi yang dapat diimpor pada paket/program lain. Dalam folder pkg tersebut, hasil kompilasi akan dipilah sesuai target perangkat yang digunakan. Misalnya untuk perangkat berbasis Linux pada mesin AMD64 akan disimpan dalam folder $GOPATH/pkg/linux_amd64/
Gambar 3, Uji instalasi perkakas kompilator Go

Penyuntingan teks program

Program source Go merupakan file teks dengan ekstensi .go pada nama filenya. Karena itu program Go dapat dibuat dan diedit menggunakan penyunting teks apa saja, seperti notepad dan wordpad pada sistem Windows atau vim, emacs, dan gedit pada sistem Linux. Program source tidak boleh diedit menggunakan pemroses dokumen. Karena itu hindari mengedit program menggunakan Microsoft word atau OpenOffice!

Sebagai contoh program source hello.go berikut ini menggunakan gedit untuk disimpan di ~/go/src/untel/jmt/hello/hello.go

Gambar 4. Contoh program sumber “hello world”

Seseorang yang sudah terbiasa menggunakan IDE eclipse dapat juga memasang plugin goclipse.

Perkakas Go

Perintah “go” merupakan utiliti yang dapat dipanggil melalui shell. Untuk sistem Linux dapat diperoleh dengan membuka terminal shell Bash. Pada sistem Windows dapat menggunakan cmd.exe (tekan tombol Window dan kunci X atau klik Start dan pilih Window System) lalu pilih command prompt.

Jika semua lancar, perintah go dapat langsung dipanggil. Coba dengan memanggil “go version” atau “go” saja. (Lihat gambar 3 diatas) Dibawah beberapa manfaat pemanggilan perkakas go

  • go atau go help : Menampilkan pesan umum menggunakan perkakas Go
  • go version: Menampilan versi perkakas Go, misalnya “go version go1.8.3 linux/amd64
  • go run hello.go: Dari dalam direktori GOPATH/untel/jmt/hello, dan jika tidak ada kesalahan sintak, akan memberikan output “Hello World!” (Lihat gambar 3 diatas)

go run

Program sumber utama Go, program dengan “package main” dan memiliki “func main()” dapat panggil langsung. Artinya setelah dikompilasi langsung dieksekusi dan hasil kompilasinya tidak disimpan.

  • Masuk ke folder dimana program utama tersebut berada. Misal dalam folder hello, dimana file hello.go berada.
  • Panggil go run hello.go untuk eksekusi
Gambar 5. Kompilasi dan eksekusi “hello world”

go install

Apabila semua sudah komplit, benar, dan teruji, keseluruhan program dapat di-install dengan perintah “go install”. Seperti yang sebelumnya, go install dipanggil pada direktori dimana file.go pada disana dan di seluruh folder yang ada dibawahnya juga akan diproses.

Program utama, menjadi executable, dan disimpan dalam folder GOPATH/bin.Contoh program hello.go di folder hello akan menjadi executable dengan nama hello (atau hello.exe untuk sistem Windows) yang tersimpan di folder GOPATH/bin. Nama hello diperoleh dari folder hello, bukan dari nama file hello.go (Lihat gambar 5 diatas)

Gambar 6. Program “hello world” dengan paket pustaka sendiri
Gambar 7. Paket pustaka sendiri untuk “hello world”

Pustaka paket akan disimpan dibawah folder GOPATH/pkg/<arch>/. Dimana <arch disesuaikan dengan target arsitekturnya. Misalnya untuk sistem Linux pada prosesor Intel 32 bit <arch> adalah linux_386. Contoh paket hiworld akan tersimpan di GOPATH/pkg/linux_386/untel/jmt/hello2/hiworld.a

Gambar 8. Kompilasi dan eksekusi program dengan paket pustaka sendiri

go test

Suatu fitur yang diadopsi adalah untuk testing, seperti untuk uji regresi atau uji beban. File untuk pengujian dapat disimpan dalam folder paket tersebut dengan akhiran khusus _test.go. File ini tidak akan dipreoses oleh go run atau go install. Hanya go test yang menggunakan file dengan akhiran ini.

File ini berisi deklarasi package yang sama dengan package yang diuji, dan harus mengimpor pustaka “testing”. Ada banyak cara pengujian. Contoh dibawah, hiworld_test.go berisi pengujian operasi dengan menggunakan fungsi dengan prefix Test dan pengujian output dengan menggunakan fungsi dengan prefix Example, seperti pada gambar 9 dibawah.

Gambar 9. Penguji paket pustaka “hello world”

 

Gambar 10. Pengujian paket pustaka

Path, Folder, File, dan Package

Program sumber (source code) dibuat dibawah folder src pada path $GOPATH untuk sistem Linux (atau %GOPATH% sistem Microsoft).

  • Pada sistem Linux, default path $GOPATH adalah $HOME/go. Contohnya pada sistem saya adalah /home/jimmyt/go
  • Pada sistem Microsoft, default path %GOPATH% adalah %HOMEPATH%\go. Contoh pada suatu sistem Windows adalah C:\Users\jimmyt\go

Path dibawah GOPATH/src merupakan path untuk paket. Pada contoh berikut digunakan path GOPATH/src/untel/jmt/. Path ini, yaitu “untel/jmt” menjadi penanda unik dari paket dan program yang akan dibangun.

Folder terakhir diujung path menjadi nama file program atau paket  setelah program atau paket tersebut terinstal. Pada contoh yang telah diberikan sebelumnya, program hello berasal dari nama folder hello pada path untel/jmt saat instalasi, dan paket hiworld berasal dari nama folder hiworld pada path untel/jmt/hello.

Program sumber (source code) disimpan dalam file dengan ekstensi .go didalam folder tekait. Misalnya program hello dibuat dalam file hello.go dalam folder hello, dan paket pustaka hiworld.a dibuat dalam file hiworld.go dalam folder hiworld.

Nama file (.go) merupakan kode sumber yang dibuat dalam bahasa Go. Basis nama file program sumber tidak harus sama dengan nama foldernya. Dibuat sama untuk kemudahan saja. Artinya program hello tidak harus disimpan dalam hello.go. Lihat contoh hello2 diatas disimpan dalam file hello2/hello.go

  • Program utama harus diberi nama “package main” dan mempunyai deklarasi fungsi “func main()”
  • Dalam satu folder tidak boleh ada lebih dari satu file .go yang berisi “package main”.
  • Paket pustaka merupakan paket pendukung yang dapat diimpor. Paket pustaka diberi nama selain “package main” dan tidak mempunyai deklarasi fungsi “func main()”.
  • File dengan ekstensi _test.go merupakan kode testing untuk paket terkait. Paket testing dan paket yang dites dideklarasi menggunakan nama paket yang sama.

Setiap file sumber .go harus berisi kata kunci “package “+ nama paket sebagai penanda paket. Sebaiknya nama paket sama dengan nama foldernya.

Paket pustaka diimpor pada kata kunci impor. Diluar paket yang disediakan Go, nama paket yang diimpor harus dilengkapi dengan path-nya

  • Relatif terhadap folder program sumber tersebut atau paket lokal. Contoh impor paket hiworld dapat ditulis import “./hiworld”.
  • Path lengkap (setelah GOPATH/src) atau paket non-lokal. Contoh yang sama dapat ditulis import “untel/jmt/hello2/hiworld”
  • Untuk mencegah masalah kompiasi dan pengujian, disarankan menggunakan notasi paket non-lokal.
Gambar 11. Struktur file yang digunakan sebagai contoh

Kompilasi Online

Untuk kebutuhan belajar pemrograman Go, tidak harus menginstal perkakas  Go. Dua fasilitas dibawah memberikan cara untuk mencoba berbagai bahasa pemrogram, termasuk Go. Source program akan dikirim ke server mereka untuk dikompilasi dan dieksekusi.

 

Pustaka

  1. The Go Programming Language: Getting Started
  2. Wikipedia: GO (programming language)
  3. A Tour of GO
  4. GO Lang Refcard cheatsheet
,

2 responses to “Cara Instalasi Perkakas Kompilator Go”

Leave a Reply