Monday, June 22, 2015

Tutorial Go Programming Part 2

Pembahasan kali ini masih berkisar tentang pengenalan di bahasa pemrograman go. Dan tutorial kita ini melanjutkan tutorial kita sebelumnya, dimana yang akan kita bahas adalah :
  1. Create your library.
  2. Create a testing.
Tanpa berlama-lama mari kita mulai dengan :

Create your library
Yuk, kita buat library reverse word. Membalikkan kalimat dari kanan ke kiri.
Contoh : Ayunda Buwana menjadi anawuB adnuyA

Langkah-langkah yang harus di lakukan adalah :
  • Buat folder stringutil
$ mkdir $GOPATH/src/yukibuwana.com/demo/stringutil
  • Buat file dengan nama reverse.go
$ vi $GOPATH/src/yukibuwana.com/demo/stringutil/reverse.go
  • Untuk code nya adalah
// Package stringutil contains utility functions for working with strings.
package stringutil

// Reverse returns its argument string reversed rune-wise left to right.
func Reverse(s string) string {
 r := []rune(s)
        for i, j := 0, len(r)-1; i < len(r)/2; i, j = i+1, j-1 {
  r[i], r[j] = r[j], r[i]
 } 
        return string(r)
}
  • Simpan file tersebut dan compile dengan cara
$ go install $GOPATH/src/yukibuwana.com/demo/stringutil
  • Ubah filenya menjadi hello.go menjadi
package main

import (
 "fmt"
 "yukibuwana.com/demo/stringutil"
)

func main() {
 s := "Ayunda Buwana"
 fmt.Println(stringutil.Reverse(s))
}
  • Untuk menjalankannya dengan cara
$ go install $GOPATH/src/yukibuwana.com/yuki/hello.go
  • Dan hasilnya adalah
$ anawuB adnuyA

Testing

Go menyediakan framework untuk testing dengan menggunakan go test.
Sebelumnya ada kondisi yang harus di perhatikan, yaitu :
  1. Nama file harus di akhir _test.go
  2. Nama fungsi harus di awali dengan TestXXX
Tanpa berlama-lama lagi mari kita coba langkah-langkah berikut :
  • Tambahkan file reverse_test.go
$ vi $GOPATH/src/yukibuwana.com/demo/stringutil/reverse_test.go
  • Untuk code nya adalah 
package stringutil

import "testing"

func TestReverse(t *testing.T) {
 cases := []struct {
  in, want string
 }{
  {"Hello, world", "dlrow ,olleH"},
  {"Hello, 世界", "界世 ,olleH"},
  {"", ""},
 }
 for _, c := range cases {
  got := Reverse(c.in)
  if got != c.want {
   t.Errorf("Reverse(%q) == %q, want %q", c.in, got, c.want)
  }
 }
}
  • Sedangkan cara menjalankannya adalah
$ go test $GOPATH/src/yukibuwana.com/demo/stringutil
ok   yukibuwana.com/demo/stringutil 0.004s
Lihat, begitu mudahnya menggunakan Go. Dan hebatnya sendiri Go sudah build up dengan testing framework. Testing sangat di perlukan dalam proses Development.

Nantikan blog saya selanjutnya tentang go.


Thanks.

Referensi : http://golang.org/doc/code.html

No comments:

Post a Comment