Mastering Golang
  • Tentang Go
  • Instalasi Go
  • Membuat Project Go
  • Go Run & Go Build
  • Apa itu Package pada Go
  • Imports dan Exports
  • Variabel
  • Tipe Data
  • Konstanta dan Komentar
  • Operator
  • Type Conversion
  • Kondisional - IF
  • Kondisional - Switch Case
  • Looping
  • Array
  • Array - Looping
  • Slices
  • Pointer
  • Map
  • Fungsi
  • Struct
  • Method
  • Interface
  • Interface Kosong
  • Concurrency
  • Concurrency - Goroutines
  • Channel
  • Buffered Channel
  • Channel - Close and Range
  • Channel - Direction
  • Channel - Select
  • Concurrency - WaitGroup
  • Concurrency - Mutex
  • JSON Data
  • SQL
  • URL Parsing
  • GO Vendor
  • Unit Testing
  • Go Basic for Web Development
    • Aplikasi Web pada Go - Hello World
    • Root Routing
    • Query String
    • Web Service API Server
    • HTTP Basic Auth
    • RESTFul API dengan Gin dan Gorm
Powered by GitBook
On this page

Was this helpful?

  1. Go Basic for Web Development

Aplikasi Web pada Go - Hello World

PreviousUnit TestingNextRoot Routing

Last updated 4 years ago

Was this helpful?

Untuk mendukung pengembangan aplikasi Web, pada Go kita dapat memanfaatkan dari Go yaitu net/http .

Untuk membuat sebuah Routing, kita dapat menggunakan fungsi http.HandleFunc dimana membutuhkan 2 parameter. Parameter pertama adalah alamat dari route dan parameter kedua adalah handler atau response.

http.HandleFunc("/about", handlerIndex)
// "/about" : alamat routing pada aplikasi
// handlerIndex : handler atau response yang terjadi jika mengakses routing "/about" 

handlerIndex sendiri adalah berupa fungsi yang dapat kita buat. Jadi jika ada beberapa routing, maka akan ada beberapa fungsi juga.

func handlerIndex(w http.ResponseWriter, r *http.Request) {
	data := "Welcome to Web Applications written by GO"
	w.Write([]byte(data))
}

data pada kode di atas adalah string yang menjadi response dan ingin kita tampilkan. Lalu w.Write adalah fungsi untuk menampilkan teks string pada variabel data. Namun karena data bertipe string , kita harus melakukan casting/konversi tipe data ke dalam []byte .

Tentu saja kita membutuhkan alamat port yang akan kita gunakan untuk menjalankan aplikasi kita. Kita dapat membuat port dengan cara seperti berikut ini:

port := "localhost:3030"

cukup mudah bukan? kita bisa mengganti alamat port sesuai dengan yang kita inginkan. Misalnya menjadi localhost:9090 .

Sebagai developer tentu kita wajib mengetahui setiap log pada aplikasi kita. Pada kasus ini kita ingin menjalankan log untuk mengetahui bahwa aplikasi web kita sudah berjalan. Kita dapat memanfaatkan internal Go yaitu log .

log.Println("Server started at", port)

Terakhir untuk menjalankan server, kita dapat menggunakan fungsi http.ListenandServe yang membutuhkan 2 parameter yaitu port dan handler . Untuk parameter kedua, saat ini kita isi saja dengan nil .

http.ListenAndServe(port, nil)

Fungsi di atas memiliki balikan data error yang dapat kita manfaatkan untuk membuat dan mengecek kondisi jika program atau server tidak bisa dijalankan maka kita akan mengoutputkan error.

package main

import (
	"fmt"
	"log"
	"net/http"
)

func handlerIndex(w http.ResponseWriter, r *http.Request) {
	data := "Welcome to Web Applications written by GO"
	w.Write([]byte(data))
}

func handlerAuthor(w http.ResponseWriter, r *http.Request) {
	data := "David Winalda"
	w.Write([]byte(data))
}

func main() {
	http.HandleFunc("/", handlerIndex)
	http.HandleFunc("/author", handlerAuthor)

	port := "localhost:3030"

	log.Println("Server started at", port)

	err := http.ListenAndServe(port, nil)

	if err != nil {
		fmt.Println(err.Error())
	}
}

Mari kita jalankan program Go pada terminal.

Mari kita menjalankan routing yang kedua yaitu /author , maka akan terlihat tampilan berikut ini:

package internal
package
Log menampilkan status server sudah berjalan
Aplikasi Web telah berjalan menggunakan Go
Tampilan pada routing yang berbeda