Apa yang kita pelajari?
1. Sejarah Go (Review)
2. Bahasa pemrograman Go
3. Kebutuhan sistem
4. Lingkungan variabel Go
5. Seting Go (Linux dan Windows)
6. Struktur dasar dan aplikasi pertama pada Go
7. Go Command
8. Kompilasi aplikasi Go untuk sistem operasi berbeda.
Tujuan pembelajaran
Poin - poin yang kita harap dapatkan pada pembelajaran ini :
Pengetahuan
• Sejarah Go.
• Bahasa pemrograman Go.
• Kebutuhan sistem untuk menjalankan Go.
• Struktur dasar aplikasi Go
Kemampuan
• Mengetahui environment variabel Go dan cara melakukan seting.
• Mengetahui dan dapat melakukan kompilasi aplikasi Go, serta untuk sistem operasi yang berbeda.
1. Sejarah bahasa Go
• GoLang (atau biasa disebut Go) adalah bahasa pemrograman yang dikembangkan oleh Robert
Griesemer (perancang Java HotSpot), Robert Pike (perancang Plan 9 di laboratorium Bell), Ken
Thompson (pengembang bahasa pemrograman B dan perancang UTF-8).
• Bahasa pemrograman Go dipelopori oleh Google, tepatnya dimulai pada tanggal 21 September
2007.
• Lebih dari 250 kontributor yang bergabung dalam Go project.
• Versi 1.0 diliris pada bulan Maret 2012
2. Bahasa pemrograman Go
• General Purpose Programming Language
• Compiled
• Statically typed
• Concurrent
• Simple
• Productive
3. Kebutuhan Sistem
Operating System Architectures
FreeBSD 8-STABLE or later amd64
Linux 2.6.23 or later with glibc amd64, 386, arm
Mac OS X 10.7 or later amd64
Windows XP or later amd64, 386
sumber : https://golang.org/doc/install
4. Variabel lingkungan pada Go
• GOROOT
• GOBIN
• GOOS
• GOARCH
• GOPATH
GOROOT (wajib)
• GOROOT adalah path dimana Go SDK disimpan. Lokasi default berada
di /usr/local/go. Jika kita ingin menginstall / ekstrak Go SDK pada
folder selain /usr/local/go, maka pastikan nilai $GOROOT diset ke
path yang dipilih.
GOBIN (mandatory)
• GOBIN adalah path dimana file binari atau executable file (hasil
kompilasi menggunakan go install) disimpan. Nilai default adalah
$GOPATH/bin, set nilai GOBIN jika kita menggunakan path selain dari
nilai default.
GOOS (tidak wajib)
• GOOS digunakan untuk menspesifikasikan sistem operasi yang
digunakan. Nilai GOOS bersifat optional, jika tidak diisi maka nilai
GOOS akan mengikuti SDK yang digunakan / diunduh.
List golang architure and os
GOARCH (tidak wajib)
• GOARCH digunakan untuk menspesifikasikan prosesor arsitektur.
Parameter ini bersifat opsional, jika tidak diisi maka nilai GOARCH
akan mengikuti SDK yang digunakan / diunduh.
List golang architure and os
GOPATH (wajib)
• GOPATH berisi arah ke direktori tempat projek golang. Parameter ini
wajib diisi dan tidak ada nilai default.
Struktur GOPATH
• Setelah $GOPATH diset (pada linux dengan menambahkan sintak export
GOPATH="/path_ke/folder/workspace" didalam file .bashrc), kita harus
memastikan bahwa direktori tempat projek golang mempunyai struktur
sebagai berikut :
• bin/ berisi file executable hasil build.
• pkg/ berisi file hasil kompilasi. Menjalankan perintah "go get" juga akan
menempatkan paket folder tersebut.
• src/ adalah path dimana proyek golang disimpan.
bin/
pkg/
src/
5. Seting GoLang (Linux)
• Unduh Go SDK pada link (sesuaikan dengan tipe OS dan arsitektur yang digunakan) https://golang.org/dl/
• Extract file arsip.
• Edit .profile atau .bashrc, lalu tambahkan variabel PATH, GOPATH dan GOBIN
• Untuk PATH, arahkan ke folder bin tempat SDK di extract (eg : /usr/local/go/bin)
• Untuk GOPATH, set Go PATH ke folder tempat projek-projek Go disimpan
• Untuk GOBIN, arahkan ke folder binari (hasil kompilasi Go). (eg : $GOPATH/bin)
tar -C /usr/local -xzf go1.X.X.platform-arch.tar.gz
export PATH=$PATH:/usr/local/go/bin
export GOPATH=/home/<user>/GoWorkspace
export GOBIN=$GOPATH/bin
Seting Golang (Linux)
• Check apakah Go sudah bisa diakses dari luar folder.
$ go version
Seting Golang (Windows)
• Download terlebih dahulu installer-nya (untuk windows sudah disediakan file .msi) pada Link
https://golang.org/dl/ Pilih sesuai jenis bit prosesor yang digunakan.
• Setelah ter-download, jalankan installer, klik next sampai proses instalasi selesai. Default-nya
Golang akan terinstal di c:gobin. Path tersebut akan secara otomatis terdaftar di path variable.+
• Buka Command Prompt / CMD, eksekusi perintah berikut untuk cek apakah Golang sudah
terinstal dengan benar.
c:> go version
6. Hello Go! (Aplikasi pertama dengan Go)
• Set variabel GOPATH
• Tambahkan path folder "src/" kedalam GOPATH
• Tambahkan namespace didalam folder "src/"
• Buat file ".go" yang berisi code Go didalam namespace (contoh: first.go).
export GOPATH="/home/dimas/go_code"
mkdir $GOPATH/src
cd $GOPATH/src && mkdir github.com/FirstApp
package main
import "fmt"
func main() {
/* Aplikasi pertama menggunakan bahasa Go */
fmt.Println("Hello Go..!!")
}
package main
import "fmt"
func main() {
/* Aplikasi pertama menggunakan bahasa Go */
fmt.Println("Hello Go..!!")
}
Struktur kode
Sebuah program Go pada dasarnya terdiri dari bagian berikut:
• Deklarasi Paket
• Import paket
• Fungsi
• Variable
• Statements & Expressions
• Komentar
7. Go Command
Perintah Penjelasan
build Melakukan kompilasi paket dan dependensi
clean Menghapus file-file object atau file executable
doc Menampilkan dokumentasi paket atau simbol
env Menampilkan setingan Go
fix Menjalankan perintah untuk melakukan perbaikan pada paket
fmt Menjalankan perintah untuk melakukan format code
generate Menghasilkan file-file Go melalui source
get Download dan install paket serta dependensinya
install Kompilasi dan install paket serta dependensinya
list Menampilkan list paket
run Kompilasi dan menjalankan aplikasi Go (non-library).
test Melakukan testing paket-paket Go
tool Menjalankan perintah spesifik pada go tool
version Menampilkan versi Go
vet Static analyzer yang berfungsi untuk mencari potensi error pada kode.
• Menjalankan aplikasi dengan perintah "go run".
• Menjalankan aplikasi melalui hasil kompilasi dengan perintah "go build".
• Menjalankan aplikasi melalui hasil kompilasi dengan perintah "go install".
[dimas@localhost FirstApp]$ go run first.go
[dimas@localhost FirstApp]$ go build
[dimas@localhost FirstApp]$ firstApp
[dimas@localhost FirstApp]$ go install
[dimas@localhost FirstApp]$ cd $GOPATH/bin
[dimas@localhost FirstApp]$ firstApp
8.Kompilasi untuk sistem operasi lain.
Kompilasi untuk sistem operasi berbeda atau yang biasa disebut "Cross compiling" adalah cara
untuk membuat aplikasi Go agar bisa dijalankan pada sistem operasi yang berbeda dari sistem
operasi tempat dimana aplikasi tersebut dibuat.
Untuk melakukan "cross compile" aplikasi Go, langkah-langkahnya sebagai berikut :
1. Set GOOS dan GOARCH, disesuaikan dengan target sistem operasi dan arsitektur yang akan
dibuat.
2. Jalankan perintah go build -v YOURPACKAGE
contoh :
$ env GOOS=windows GOARCH=amd64 go build -v github.com/FirstApp

GoLang_1

  • 2.
    Apa yang kitapelajari? 1. Sejarah Go (Review) 2. Bahasa pemrograman Go 3. Kebutuhan sistem 4. Lingkungan variabel Go 5. Seting Go (Linux dan Windows) 6. Struktur dasar dan aplikasi pertama pada Go 7. Go Command 8. Kompilasi aplikasi Go untuk sistem operasi berbeda.
  • 3.
    Tujuan pembelajaran Poin -poin yang kita harap dapatkan pada pembelajaran ini : Pengetahuan • Sejarah Go. • Bahasa pemrograman Go. • Kebutuhan sistem untuk menjalankan Go. • Struktur dasar aplikasi Go Kemampuan • Mengetahui environment variabel Go dan cara melakukan seting. • Mengetahui dan dapat melakukan kompilasi aplikasi Go, serta untuk sistem operasi yang berbeda.
  • 4.
    1. Sejarah bahasaGo • GoLang (atau biasa disebut Go) adalah bahasa pemrograman yang dikembangkan oleh Robert Griesemer (perancang Java HotSpot), Robert Pike (perancang Plan 9 di laboratorium Bell), Ken Thompson (pengembang bahasa pemrograman B dan perancang UTF-8). • Bahasa pemrograman Go dipelopori oleh Google, tepatnya dimulai pada tanggal 21 September 2007. • Lebih dari 250 kontributor yang bergabung dalam Go project. • Versi 1.0 diliris pada bulan Maret 2012
  • 5.
    2. Bahasa pemrogramanGo • General Purpose Programming Language • Compiled • Statically typed • Concurrent • Simple • Productive
  • 6.
    3. Kebutuhan Sistem OperatingSystem Architectures FreeBSD 8-STABLE or later amd64 Linux 2.6.23 or later with glibc amd64, 386, arm Mac OS X 10.7 or later amd64 Windows XP or later amd64, 386 sumber : https://golang.org/doc/install
  • 7.
    4. Variabel lingkunganpada Go • GOROOT • GOBIN • GOOS • GOARCH • GOPATH
  • 8.
    GOROOT (wajib) • GOROOTadalah path dimana Go SDK disimpan. Lokasi default berada di /usr/local/go. Jika kita ingin menginstall / ekstrak Go SDK pada folder selain /usr/local/go, maka pastikan nilai $GOROOT diset ke path yang dipilih.
  • 9.
    GOBIN (mandatory) • GOBINadalah path dimana file binari atau executable file (hasil kompilasi menggunakan go install) disimpan. Nilai default adalah $GOPATH/bin, set nilai GOBIN jika kita menggunakan path selain dari nilai default.
  • 10.
    GOOS (tidak wajib) •GOOS digunakan untuk menspesifikasikan sistem operasi yang digunakan. Nilai GOOS bersifat optional, jika tidak diisi maka nilai GOOS akan mengikuti SDK yang digunakan / diunduh. List golang architure and os
  • 11.
    GOARCH (tidak wajib) •GOARCH digunakan untuk menspesifikasikan prosesor arsitektur. Parameter ini bersifat opsional, jika tidak diisi maka nilai GOARCH akan mengikuti SDK yang digunakan / diunduh. List golang architure and os
  • 12.
    GOPATH (wajib) • GOPATHberisi arah ke direktori tempat projek golang. Parameter ini wajib diisi dan tidak ada nilai default.
  • 13.
    Struktur GOPATH • Setelah$GOPATH diset (pada linux dengan menambahkan sintak export GOPATH="/path_ke/folder/workspace" didalam file .bashrc), kita harus memastikan bahwa direktori tempat projek golang mempunyai struktur sebagai berikut : • bin/ berisi file executable hasil build. • pkg/ berisi file hasil kompilasi. Menjalankan perintah "go get" juga akan menempatkan paket folder tersebut. • src/ adalah path dimana proyek golang disimpan. bin/ pkg/ src/
  • 14.
    5. Seting GoLang(Linux) • Unduh Go SDK pada link (sesuaikan dengan tipe OS dan arsitektur yang digunakan) https://golang.org/dl/ • Extract file arsip. • Edit .profile atau .bashrc, lalu tambahkan variabel PATH, GOPATH dan GOBIN • Untuk PATH, arahkan ke folder bin tempat SDK di extract (eg : /usr/local/go/bin) • Untuk GOPATH, set Go PATH ke folder tempat projek-projek Go disimpan • Untuk GOBIN, arahkan ke folder binari (hasil kompilasi Go). (eg : $GOPATH/bin) tar -C /usr/local -xzf go1.X.X.platform-arch.tar.gz export PATH=$PATH:/usr/local/go/bin export GOPATH=/home/<user>/GoWorkspace export GOBIN=$GOPATH/bin
  • 15.
    Seting Golang (Linux) •Check apakah Go sudah bisa diakses dari luar folder. $ go version
  • 16.
    Seting Golang (Windows) •Download terlebih dahulu installer-nya (untuk windows sudah disediakan file .msi) pada Link https://golang.org/dl/ Pilih sesuai jenis bit prosesor yang digunakan. • Setelah ter-download, jalankan installer, klik next sampai proses instalasi selesai. Default-nya Golang akan terinstal di c:gobin. Path tersebut akan secara otomatis terdaftar di path variable.+ • Buka Command Prompt / CMD, eksekusi perintah berikut untuk cek apakah Golang sudah terinstal dengan benar. c:> go version
  • 17.
    6. Hello Go!(Aplikasi pertama dengan Go) • Set variabel GOPATH • Tambahkan path folder "src/" kedalam GOPATH • Tambahkan namespace didalam folder "src/" • Buat file ".go" yang berisi code Go didalam namespace (contoh: first.go). export GOPATH="/home/dimas/go_code" mkdir $GOPATH/src cd $GOPATH/src && mkdir github.com/FirstApp package main import "fmt" func main() { /* Aplikasi pertama menggunakan bahasa Go */ fmt.Println("Hello Go..!!") }
  • 18.
    package main import "fmt" funcmain() { /* Aplikasi pertama menggunakan bahasa Go */ fmt.Println("Hello Go..!!") }
  • 19.
    Struktur kode Sebuah programGo pada dasarnya terdiri dari bagian berikut: • Deklarasi Paket • Import paket • Fungsi • Variable • Statements & Expressions • Komentar
  • 20.
    7. Go Command PerintahPenjelasan build Melakukan kompilasi paket dan dependensi clean Menghapus file-file object atau file executable doc Menampilkan dokumentasi paket atau simbol env Menampilkan setingan Go fix Menjalankan perintah untuk melakukan perbaikan pada paket fmt Menjalankan perintah untuk melakukan format code generate Menghasilkan file-file Go melalui source get Download dan install paket serta dependensinya install Kompilasi dan install paket serta dependensinya list Menampilkan list paket run Kompilasi dan menjalankan aplikasi Go (non-library). test Melakukan testing paket-paket Go tool Menjalankan perintah spesifik pada go tool version Menampilkan versi Go vet Static analyzer yang berfungsi untuk mencari potensi error pada kode.
  • 21.
    • Menjalankan aplikasidengan perintah "go run". • Menjalankan aplikasi melalui hasil kompilasi dengan perintah "go build". • Menjalankan aplikasi melalui hasil kompilasi dengan perintah "go install". [dimas@localhost FirstApp]$ go run first.go [dimas@localhost FirstApp]$ go build [dimas@localhost FirstApp]$ firstApp [dimas@localhost FirstApp]$ go install [dimas@localhost FirstApp]$ cd $GOPATH/bin [dimas@localhost FirstApp]$ firstApp
  • 22.
    8.Kompilasi untuk sistemoperasi lain. Kompilasi untuk sistem operasi berbeda atau yang biasa disebut "Cross compiling" adalah cara untuk membuat aplikasi Go agar bisa dijalankan pada sistem operasi yang berbeda dari sistem operasi tempat dimana aplikasi tersebut dibuat. Untuk melakukan "cross compile" aplikasi Go, langkah-langkahnya sebagai berikut : 1. Set GOOS dan GOARCH, disesuaikan dengan target sistem operasi dan arsitektur yang akan dibuat. 2. Jalankan perintah go build -v YOURPACKAGE contoh : $ env GOOS=windows GOARCH=amd64 go build -v github.com/FirstApp