Master Backend Web Development: Golang, Postgres, dan Kubernetes

Kuasi pengembangan backend web dengan Golang, Postgres, dan Kubernetes. Temukan strategi canggih dan tips praktis untuk membangun aplikasi yang tangguh dan scalabel. Bergabunglah sekarang!

By WGS INDONESIA
4.9/4.9
Indonesia
Rp 43,750.00 GRATIS
E-COURSE banner with text and icons representing Artificial Intelligence and video learning

Detail Pembelajaran

Master Backend Web Development: Golang, Postgres, dan Kubernetes
  • Pengembangan Web, Backend Development, Golang, Postgres, Kubernetes

Baca Online

Master Backend Web Development: Golang, Postgres, dan Kubernetes

Daftar Isi

  1. Pendahuluan
  2. Belajar Golang (Go)
  3. Database dengan Postgres
  4. Mengenal Kubernetes
  5. Source Code dan Channel Pembelajaran

Pendahuluan

Backend Web Development adalah bagian penting dalam membangun aplikasi web yang scalable, cepat, dan aman. Dalam ebook ini, Anda akan mempelajari tiga teknologi utama yang sangat populer dan powerful: Golang sebagai bahasa pemrograman backend, Postgres sebagai database relasional, dan Kubernetes sebagai platform orkestrasi container.

Ebook ini disusun secara step-by-step agar Anda dapat mengikuti pembelajaran dengan mudah, mulai dari dasar hingga penerapan nyata. Setiap bab dilengkapi dengan contoh source code dan referensi channel pembelajaran untuk memperdalam materi.

Ilustrasi pengembangan backend web dengan laptop, kode, dan server

Belajar Golang (Go)

1. Pengenalan Golang

Golang adalah bahasa pemrograman open-source yang dikembangkan oleh Google. Golang terkenal dengan performa tinggi, sintaks yang sederhana, dan dukungan concurrency yang kuat.

Langkah awal: Instalasi Go di komputer Anda dari https://golang.org/dl/ .

Logo Golang dan contoh kode sederhana Hello World

2. Membuat Program Pertama

Berikut contoh program sederhana "Hello, World!" menggunakan Golang:

package main

import "fmt"

func main() {
    fmt.Println("Hello, World!")
}
        

Simpan kode di atas dengan nama main.go , lalu jalankan perintah go run main.go di terminal.

3. Struktur Data dan Fungsi

Golang memiliki tipe data dasar seperti int, string, bool, dan juga mendukung struct untuk membuat tipe data kompleks.

package main

import "fmt"

type User struct {
    ID    int
    Name  string
    Email string
}

func greet(user User) string {
    return "Hello, " + user.Name
}

func main() {
    u := User{ID: 1, Name: "Budi", Email: "budi@example.com"}
    fmt.Println(greet(u))
}
        

4. Concurrency dengan Goroutines

Salah satu keunggulan Golang adalah kemudahan membuat program concurrent menggunakan goroutines.

package main

import (
    "fmt"
    "time"
)

func say(s string) {
    for i := 0; i < 5; i++ {
        time.Sleep(100 * time.Millisecond)
        fmt.Println(s)
    }
}

func main() {
    go say("world")
    say("hello")
}
        

Jalankan program di atas dan perhatikan output yang berjalan secara bersamaan.

5. Membuat REST API Sederhana

Kita akan membuat REST API sederhana menggunakan package net/http .

package main

import (
    "encoding/json"
    "net/http"
)

type Message struct {
    Text string `json:"text"`
}

func helloHandler(w http.ResponseWriter, r *http.Request) {
    msg := Message{Text: "Hello from Golang API"}
    w.Header().Set("Content-Type", "application/json")
    json.NewEncoder(w).Encode(msg)
}

func main() {
    http.HandleFunc("/hello", helloHandler)
    http.ListenAndServe(":8080", nil)
}
        

Jalankan program dan akses http://localhost:8080/hello di browser atau Postman.

Database dengan Postgres

1. Pengenalan PostgreSQL

PostgreSQL adalah database relasional open-source yang powerful dan banyak digunakan di industri. Mendukung fitur-fitur canggih seperti JSONB, indexing, dan transaksi.

Instalasi PostgreSQL dapat dilakukan melalui https://www.postgresql.org/download/ .

Logo PostgreSQL dan diagram arsitektur database

2. Membuat Database dan Tabel

Setelah instalasi, buat database dan tabel menggunakan psql CLI:

CREATE DATABASE backenddb;

\c backenddb

CREATE TABLE users (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100),
    email VARCHAR(100) UNIQUE NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
        

3. Koneksi Golang ke Postgres

Gunakan package github.com/lib/pq untuk koneksi Golang ke Postgres.

package main

import (
    "database/sql"
    "fmt"
    _ "github.com/lib/pq"
)

func main() {
    connStr := "user=postgres password=yourpassword dbname=backenddb sslmode=disable"
    db, err := sql.Open("postgres", connStr)
    if err != nil {
        panic(err)
    }
    defer db.Close()

    err = db.Ping()
    if err != nil {
        panic(err)
    }

    fmt.Println("Berhasil terkoneksi ke Postgres!")
}
        

Ganti yourpassword dengan password Postgres Anda.

4. CRUD Data User

Contoh fungsi untuk menambah dan mengambil data user:

package main

import (
    "database/sql"
    "fmt"
    _ "github.com/lib/pq"
)

type User struct {
    ID    int
    Name  string
    Email string
}

func insertUser(db *sql.DB, name, email string) error {
    query := `INSERT INTO users (name, email) VALUES ($1, $2)`
    _, err := db.Exec(query, name, email)
    return err
}

func getUsers(db *sql.DB) ([]User, error) {
    rows, err := db.Query("SELECT id, name, email FROM users")
    if err != nil {
        return nil, err
    }
    defer rows.Close()

    var users []User
    for rows.Next() {
        var u User
        err := rows.Scan(&u.ID, &u.Name, &u.Email)
        if err != nil {
            return nil, err
        }
        users = append(users, u)
    }
    return users, nil
}

func main() {
    connStr := "user=postgres password=yourpassword dbname=backenddb sslmode=disable"
    db, err := sql.Open("postgres", connStr)
    if err != nil {
        panic(err)
    }
    defer db.Close()

    err = insertUser(db, "Andi", "andi@example.com")
    if err != nil {
        panic(err)
    }

    users, err := getUsers(db)
    if err != nil {
        panic(err)
    }

    for _, u := range users {
        fmt.Printf("ID: %d, Name: %s, Email: %s\n", u.ID, u.Name, u.Email)
    }
}
        

Mengenal Kubernetes

1. Apa itu Kubernetes?

Kubernetes adalah platform open-source untuk mengelola container aplikasi secara otomatis, termasuk deployment, scaling, dan manajemen lifecycle container.

Diagram arsitektur cluster Kubernetes dengan node dan pod

2. Instalasi Minikube untuk Local Cluster

Untuk belajar Kubernetes, Anda bisa menggunakan Minikube yang menjalankan cluster Kubernetes lokal.

Instalasi Minikube: https://minikube.sigs.k8s.io/docs/start/

minikube start
kubectl get nodes
        

3. Membuat Deployment dan Service

Contoh file deployment YAML untuk aplikasi Golang:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: golang-backend
spec:
  replicas: 2
  selector:
    matchLabels:
      app: golang-backend
  template:
    metadata:
      labels:
        app: golang-backend
    spec:
      containers:
      - name: golang-backend
        image: yourdockerhubusername/golang-backend:latest
        ports:
        - containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
  name: golang-backend-service
spec:
  type: NodePort
  selector:
    app: golang-backend
  ports:
  - protocol: TCP
    port: 80
    targetPort: 8080
        

Terapkan dengan perintah:

kubectl apply -f deployment.yaml
kubectl get pods
kubectl get svc
        

4. Scaling dan Update Aplikasi

Scaling deployment:

kubectl scale deployment golang-backend --replicas=4
kubectl get pods
        

Update image aplikasi:

kubectl set image deployment/golang-backend golang-backend=yourdockerhubusername/golang-backend:v2
kubectl rollout status deployment/golang-backend
        

Source Code dan Channel Pembelajaran

Edukasi Terkait