Pendahuluan
GoLang, atau sering disebut Go, adalah bahasa pemrograman yang semakin populer di kalangan developer. Salah satu alasannya adalah kemampuannya dalam membangun aplikasi server-side yang efisien dan berskala. Dalam artikel ini, kita akan membahas langkah-langkah dasar dalam membuat server sederhana dengan GoLang.
Memasang GoLang
Pertama, kita perlu memastikan GoLang sudah terpasang di komputer kita. Kunjungi website resmi GoLang (https://golang.org/) dan unduh installer yang sesuai dengan sistem operasi kita. Setelah terpasang, kita bisa melakukan verifikasi dengan mengetikkan go version
di terminal.
Membuat Project Baru
Setelah GoLang terpasang, kita bisa membuat direktori baru untuk project kita. Di dalam direktori ini, kita akan membuat file main.go
. File ini akan menjadi tempat kita menulis kode server.
Membuat Server HTTP
Berikut contoh kode dasar untuk membuat server HTTP sederhana dengan GoLang:
package main
import (
"fmt"
"net/http"
)
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Halo, dunia!")
}
func main() {
http.HandleFunc("/", handler)
fmt.Println("Server berjalan di localhost:8080")
http.ListenAndServe(":8080", nil)
}
Kode ini akan menjalankan server HTTP yang mendengarkan port 8080. Ketika ada permintaan ke alamat localhost:8080
, server akan merespon dengan pesan "Halo, dunia!".
Penjelasan Kode
1. package main
: Deklarasi paket utama, yang berisi fungsi main
yang akan dijalankan saat program dijalankan.
2. import ( ... )
: Import paket-paket yang dibutuhkan, seperti fmt
untuk formatting dan net/http
untuk membuat server HTTP.
3. func handler(w http.ResponseWriter, r *http.Request) { ... }
: Fungsi handler untuk menangani permintaan HTTP. Parameter w
adalah writer yang digunakan untuk merespon client, dan r
adalah objek yang menyimpan informasi tentang permintaan.
4. http.HandleFunc("/", handler)
: Menentukan handler untuk URL /
. Ini artinya, setiap permintaan ke URL /
akan diproses oleh fungsi handler
.
5. fmt.Println("Server berjalan di localhost:8080")
: Mencetak pesan ke terminal bahwa server sedang berjalan di port 8080.
6. http.ListenAndServe(":8080", nil)
: Menjalankan server HTTP di port 8080. Parameter kedua nil
berarti tidak menggunakan handler khusus untuk permintaan yang tidak dipetakan.
Menjalankan Server
Untuk menjalankan server, buka terminal dan navigasikan ke direktori project. Kemudian, ketik go run main.go
. Server akan mulai berjalan dan Anda dapat mengaksesnya di browser dengan alamat http://localhost:8080
.
Menangani Permintaan
Kode server di atas hanya merespon dengan pesan statis. Untuk server yang lebih dinamis, kita perlu menangani permintaan yang berbeda dengan fungsi handler yang berbeda. Berikut contoh penanganan beberapa jenis permintaan:
package main
import (
"fmt"
"net/http"
)
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Halo, dunia!")
}
func handler2(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Ini halaman kedua!")
}
func main() {
http.HandleFunc("/", handler)
http.HandleFunc("/halaman2", handler2)
fmt.Println("Server berjalan di localhost:8080")
http.ListenAndServe(":8080", nil)
}
Kode ini menambahkan handler baru untuk URL /halaman2
. Sekarang, permintaan ke URL /halaman2
akan diproses oleh fungsi handler2
, yang merespon dengan pesan "Ini halaman kedua!".
Menerima Data dari Client
Server juga dapat menerima data dari client, misalnya melalui query parameter atau body request. Berikut contoh penerimaan data dari query parameter:
package main
import (
"fmt"
"net/http"
)
func handler(w http.ResponseWriter, r *http.Request) {
nama := r.URL.Query().Get("nama")
fmt.Fprintf(w, "Halo, %s!", nama)
}
func main() {
http.HandleFunc("/", handler)
fmt.Println("Server berjalan di localhost:8080")
http.ListenAndServe(":8080", nil)
}
Kode ini mengambil nilai dari query parameter nama
dan menampilkannya di respon. Misalnya, jika URL yang diakses adalah http://localhost:8080/?nama=John
, maka server akan merespon dengan "Halo, John!".
Kesimpulan
Membuat server dengan GoLang cukup mudah. Dengan menggunakan paket net/http
, kita dapat membuat server yang dapat menangani berbagai jenis permintaan dan merespon dengan data yang dinamis. Dengan kemampuannya dalam membangun aplikasi server-side yang efisien dan berskala, GoLang menjadi pilihan yang menarik untuk berbagai project pengembangan aplikasi.