Bahasa Pemprograman GO


Pasti banyak yang bertanya-tanya apa sih GO LANG? Go lang adalah singkatan dari Google Language. Yaitu sebuah bahasa pemograman yang diperkenalkan oleh google sejak 2009.

Go adalah bahasa pemrograman yang mudah, sederhana, handal, efisien, dan tentu saja open source. Sebuah bahasa pemrograman yang dibutuhkan oleh dunia modern saat ini. Tidak seperti bahasa python an lain-lainnya yang memang sudah digunakan google sejak lama, Golang bukan bahasa scripting yg ditulis dan diinterpret tetapi dapat dicompile menjadi object binary dan langsung bisa dieksekusi. Tujuan bahasa pemrograman Go adalah:

  1. Aman (type-safe dan memory-safe),
  2. Baik dalam dukungan konkurensi dan komunikasi,
  3. Cepat dalam kompilasi,
  4. Efisien (mendekati kinerja bahasa pemrograman C dalam hal pembagian tugas CPU),
  5. Dirancang untuk perangkat keras modern (multicore, jaringan, dll),
  6. Perangkat lunak yang powerfull (seperti untuk sebuah web server),
  7. Menjadi sebuah bahasa pemrograman yang umum dipakai dalam pembuatan aplikasi.


Kelebihan bahasa pemrograman Go adalah open source. Inilah yang menjadi nilai lebih dari bahasa pemrograman Go, semua pengembangan bersifat terbuka dan banyak kontributor-kontributor dari seluruh dunia untuk kemajuan bahasa pemrograman Go ini. Google telah merilis versi pertama dari bahasa pemrograman Go. Go 1 tersedia untuk sistem operasi Linux, FreeBSD, Mac OS X, dan Windows. Karena yang bersifat open source, developer bebas untuk mengembangkannya sesuai dengan kebutuhan pasar. Karena dengan adanya kontribusi dari pihak luar, bahasa pemograman ini akan semakin baik di mata publik, dan dengan alasan ini juga Go dapat dikenal luas dan digunakan pastinya.

Lalu dibuat sefleksibel mungkin terutama untuk menangani penggunaan stack, bisa dibilang sih seperti stackless, artinya gak akan menemui masalah dengan “Stack overflow”. Golang diklaim dapat menghandle pointer dan memory dengan aman.


CARA MENGINSTAL 

Saya menggunakan Linux (Go hanya mendukung Linux dan Mac OSX). Shell yang saya gunakan adalah Bash.

Setting environment variable
Tambahkan baris-baris berikut di $HOME/.bashrc dan login ulang supaya variabel lingkungan berikut terbaca:
export GOROOT=/home/bpdp/software/go
export GOARCH=386
export GOOS=linux
export GOBIN=$GOROOT/bin
export PATH=$PATH:$GOBIN
 
Mengambil Source Code
Source code di googlecode.com disimpan dengan menggunakan Mercurial, sehingga jika belum mempunyai Mercurial, install-lah Mercurial terlebih dahulu. Mercurial bisa diperoleh di http://mercurial.selenic.com/.
[bpdp@bpdp-arch go]$ hg clone -r release https://go.googlecode.com/hg/ $GOROOT
destination directory: /home/bpdp/sofware/go
requesting all changes
adding changesets
adding manifests
adding file changes
added 4016 changesets with 16888 changes to 2931 files
updating working directory
1640 files updated, 0 files merged, 0 files removed, 0 files unresolved
[bpdp@bpdp-arch go]$
[bpdp@bpdp-arch go]$ ls -la 
total 68
drwxr-xr-x 10 bpdp users 4096 2009-11-13 12:52 .
drwxr-xr-x  3 bpdp users 4096 2009-11-13 12:49 ..
drwxr-xr-x  3 bpdp users 4096 2009-11-13 12:52 .hg
-rw-r--r--  1 bpdp users  392 2009-11-13 12:52 .hgignore
-rw-r--r--  1 bpdp users  231 2009-11-13 12:52 .hgtags
-rw-r--r--  1 bpdp users  333 2009-11-13 12:52 AUTHORS
-rw-r--r--  1 bpdp users 1894 2009-11-13 12:52 CONTRIBUTORS
-rw-r--r--  1 bpdp users 1557 2009-11-13 12:52 LICENSE
-rw-r--r--  1 bpdp users  468 2009-11-13 12:52 README
drwxr-xr-x  4 bpdp users 4096 2009-11-13 12:52 doc
-rw-r--r--  1 bpdp users  785 2009-11-13 12:52 favicon.ico
drwxr-xr-x  2 bpdp users 4096 2009-11-13 12:52 include
drwxr-xr-x  4 bpdp users 4096 2009-11-13 12:52 lib
drwxr-xr-x  6 bpdp users 4096 2009-11-13 12:52 misc
drwxr-xr-x  2 bpdp users 4096 2009-11-13 12:52 pkg
drwxr-xr-x  8 bpdp users 4096 2009-11-13 12:52 src
drwxr-xr-x  9 bpdp users 4096 2009-11-13 12:52 test
[bpdp@bpdp-arch go]$ 
Instalasi
$ cd src
$ ./all.bash
Hasil
[bpdp@bpdp-arch src]$ ls -la ../bin/
total 10156
drwxr-xr-x  2 bpdp users    4096 2009-11-13 13:10 .
drwxr-xr-x 11 bpdp users    4096 2009-11-13 13:09 ..
-rwxr-xr-x  1 bpdp users  359231 2009-11-13 13:10 6cov
-rwxr-xr-x  1 bpdp users  238753 2009-11-13 13:10 6nm
-rwxr-xr-x  1 bpdp users  352749 2009-11-13 13:10 6prof
-rwxr-xr-x  1 bpdp users  183043 2009-11-13 13:10 8a
-rwxr-xr-x  1 bpdp users  665089 2009-11-13 13:10 8c
-rwxr-xr-x  1 bpdp users  865086 2009-11-13 13:10 8g
-rwxr-xr-x  1 bpdp users  331907 2009-11-13 13:10 8l
-rwxr-xr-x  1 bpdp users 1511881 2009-11-13 13:10 cgo
-rwxr-xr-x  1 bpdp users  734112 2009-11-13 13:10 ebnflint
-rwxr-xr-x  1 bpdp users  143203 2009-11-13 13:10 godefs
-rwxr-xr-x  1 bpdp users 1889871 2009-11-13 13:10 godoc
-rwxr-xr-x  1 bpdp users 1100450 2009-11-13 13:10 gofmt
-rwxr-xr-x  1 bpdp users  212301 2009-11-13 13:10 gopack
-rwxr-xr-x  1 bpdp users    3272 2009-11-13 13:10 gotest
-rwxr-xr-x  1 bpdp users  821616 2009-11-13 13:10 goyacc
-rwxr-xr-x  1 bpdp users  880240 2009-11-13 13:10 hgpatch
-rwxr-xr-x  1 bpdp users    1484 2009-11-13 13:09 quietgcc
[bpdp@bpdp-arch src]$
Untuk arsitektur 386, compiler dari go adalah 8g (amd64: 9g), sedangkan linker dari go adalah 8l (amd64: 9l). Untuk mencoba, buatlah source code (hello.go) berikut:
package main

import "fmt"

func main() {
  fmt.Printf("hello, world\n")
}
 
Kompilasi dan run
[bpdp@bpdp-arch go]$ 8g hello.go 
[bpdp@bpdp-arch go]$ ls -la
...
...
-rw-r--r--  1 bpdp users  1912 2009-11-13 13:23 _cgo_.o
-rw-r--r--  1 bpdp users  5168 2009-11-13 13:25 hello.8
-rw-r--r--  1 bpdp users    76 2009-11-13 13:21 hello.go
[bpdp@bpdp-arch go]$ 8l hello.8 
[bpdp@bpdp-arch go]$ ls -la
...
...
-rwxr-xr-x  1 bpdp users 581745 2009-11-13 13:25 8.out
-rw-r--r--  1 bpdp users   1912 2009-11-13 13:23 _cgo_.o
-rw-r--r--  1 bpdp users   5168 2009-11-13 13:25 hello.8
-rw-r--r--  1 bpdp users     76 2009-11-13 13:21 hello.go
[bpdp@bpdp-arch go]$ ./8.out 
hello, world
[bpdp@bpdp-arch go]$
 
 
 CONTOH 
 

Hello world

Here is a Hello world program in Go:
package main
 
import "fmt"
 
func main() {
    fmt.Println("Hello, World") 
}
                                                                                      

Echo

This imitates the Unix echo command in Go:
package main
 
import (
    "flag"
    "fmt"
    "strings"
)
 
func main() {
    var omitNewline bool
    flag.BoolVar(&omitNewline, "n", false, "don't print final newline")
    flag.Parse() // Scans the arg list and sets up flags.
 
    str := strings.Join(flag.Args(), " ")
    if omitNewline {
        fmt.Print(str)
    } else {
        fmt.Println(str)
    }
} 
 
 
                                                                                    
 
 
 Untuk lebih mengenal apa itu bahasa pemrograman Go, dapat dilihat pada website resminya di http://golang.org.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
SUMBER :
http://mercurial.selenic.com/
http://en.wikipedia.org/wiki/Go_%28programming_language%29
 

 

Komentar

Postingan populer dari blog ini

Contoh SCM (Supply Chain Management) Pada Sepatu Adidas

Struktur atau Skema Organisasi

CONTOH STRUKTUR ORGANISASI BANK BCA CARD CENTRE CABANG SURABAYA