Tanpa angin tanpa badai, mendadak ada tulisan Routing File di Go Lang Web Server, tapi belum dibahas cara untuk membangun web server dengan Go. Ha, gimana?

Apa itu Go? Go adalah bahasa pemrograman structural yang dikembangkan di Google, bahasa pemrograman yang mirip dengan C. Kenapa Go? Go menjanjikan kecepatan dan beban yang ringan ketika digunakan.

Persiapan 1 - Install Go

Untuk pengguna sistem GNU/Linux dan kerabatnya, termasuk Mac OS X dan BSD, gunakan perintah ini di terminal untuk menginstall go.
$ tar -C /usr/local -xzf go$VERSION.$OS-$ARCH.tar.gz
Setelah selesai, export directory go sebagai PATH dan tentukan juga GOPATH sebagai berkas kerja.

$ export PATH=$PATH:/usr/local/go/bin
$ export GOPATH=$HOME/WORKING_DIRECTORY

Persiapan 2 - Berkas Kerja

Sebelum mulai kecebur basah-basahan coding, siapkan dulu berkas kerja (working directory) untuk aplikasi pertama, format berkas kerja untuk go seperti ini: $GOPATH/src/domain/username/projectname

Misal /home/sendy/Documents/project/go adalah $GOPATH saya, jadi berkas kerja untuk proyek saya sekarang adalah /home/sendy/Documents/project/go/src/sendy.pw/sendy/webserver. Contoh lain jika nanti proyeknya akan disimpan di github, bisa menggunakan domain github dan username github seperti ini /home/sendy/Documents/project/go/src/github.com/sendz/webserver.

Persiapan 3 - Install Gin HTTP Framework

Apa itu Gin? Gin adalah HTTP Framework yang memudahkan pengembangan web server berbasis go.

$ go get github.com/gin-gonic/gin

Coding

Buatlah satu file dengan ekstensi .go dengan nama yang sama dengan nama project di berkas kerja yang sudah ditentukan, misal webserver.go.
[codeflask language="go" title="webserver.go"]package main

import (
"github.com/gin-gonic/gin" // import package gin
"net/http" // import package http
)

func PageAbout(c *gin.Context) {
c.String(http.StatusOK, "Ini adalah halaman About")
}

func main() {
router := gin.Default() // deklarasi variable router sebagai gin default

router.GET("/", func (c *gin.Context) { // bentuk routing dengan inline function
c.String(http.StatusOK, "Selamat Datang di GO Server")
})
router.GET("/about", PageAbout) // bentuk routing dengan memanggil fungsi

router.Run(":8080") // menjalankan go server di port 8080
}[/codeflask]

Selesai? jalankan perintah $ go run *.go di berkas kerja via terminal lalu buka http://localhost:8080/ di web browser, lalu akan tampil seperti ini

[caption id="attachment_4104" align="alignnone" width="700"]Tampilan dari web server go Tampilan dari web server go[/caption]

[caption id="attachment_4105" align="alignnone" width="700"]Screen Shot 2015-11-07 at 08.32.04 Halaman About dari webserver go[/caption]

Coba lagi buka http://localhost:8080/about untuk menampilkan halaman About yang telah dibuat, dan akan tampil seperti ini

Selesai? Selamat mengembangkan.

Link kiranya bermanfaat: