Apa itu Go (Golang)?
Go, atau lebih dikenal dengan nama Golang, adalah bahasa pemrograman yang dikembangkan oleh Google pada tahun 2007 dan dirilis secara publik pada tahun 2009. Go dirancang untuk menjadi bahasa yang sederhana, cepat, dan terkorelasi dengan sistem besar dan terdistribusi. Go memiliki fitur seperti penanganan concurrency yang sangat baik, menjadikannya pilihan populer untuk pengembangan aplikasi server, mikro-layanan, dan sistem cloud.
Fitur Utama Go:
-
Kinerja Tinggi: Go adalah bahasa yang dikompilasi ke kode mesin, membuatnya sangat cepat, bahkan untuk aplikasi besar.
-
Concurrency yang Efisien: Go mendukung goroutines yang memungkinkan eksekusi simultan yang efisien dan mudah digunakan.
-
Sederhana dan Mudah Dibaca: Go memiliki sintaksis yang minimalis dan bersih, meminimalkan kompleksitas kode.
-
Pengelolaan Memori: Go memiliki garbage collector untuk pengelolaan memori otomatis, memudahkan pengembang untuk menangani memori.
-
Kompatibilitas yang Baik: Go mudah diintegrasikan dengan sistem lain dan banyak digunakan dalam pengembangan aplikasi cloud dan server.
Dasar-Dasar Go
1. Struktur Program Go
Seperti bahasa pemrograman lainnya, program Go dimulai dengan fungsi main(). Berikut adalah contoh program Go yang sangat sederhana.
Contoh Program Go Sederhana:
-
package main: Menunjukkan bahwa file ini adalah program utama dan akan dijalankan. -
import "fmt": Mengimpor paketfmtyang digunakan untuk input-output. -
func main(): Fungsi utama tempat eksekusi program dimulai. -
fmt.Println(): Digunakan untuk mencetak teks ke konsol.
2. Variabel dan Tipe Data
Go memiliki tipe data yang statis, yang berarti kamu harus mendeklarasikan tipe data variabel saat mendeklarasikannya.
Contoh Variabel dan Tipe Data:
-
var: Digunakan untuk mendeklarasikan variabel dengan tipe data eksplisit. -
:=: Operator untuk mendeklarasikan dan menginisialisasi variabel secara otomatis dengan tipe yang sesuai. -
Tipe Data di Go: Beberapa tipe data dasar di Go adalah
int,float32,float64,bool,string.
3. Fungsi (Functions)
Fungsi di Go didefinisikan dengan kata kunci func.
Contoh Fungsi di Go:
-
func: Kata kunci untuk mendefinisikan fungsi. -
int: Tipe data parameter dan nilai yang dikembalikan.
4. Struktur Kontrol (Conditional Statements)
Go mendukung struktur kontrol seperti if-else dan switch.
Contoh If-Else di Go:
Contoh Switch di Go:
5. Looping (Perulangan)
Go mendukung for loop, yang adalah satu-satunya jenis loop yang tersedia. While loop bisa dibuat dengan for loop.
Contoh For Loop:
Contoh While Loop dengan For:
6. Array dan Slice
Di Go, array adalah tipe data yang memiliki ukuran tetap, sedangkan slice adalah versi yang lebih fleksibel dan sering digunakan.
Contoh Array dan Slice:
7. Struct dan Interface
Struct di Go adalah cara untuk mendefinisikan tipe data kustom yang terdiri dari beberapa elemen. Interface adalah tipe data yang mendefinisikan set metode.
Contoh Struct dan Interface:
-
type: Digunakan untuk mendefinisikan tipe baru. -
method: Metode yang didefinisikan untuk struct.
8. Concurrency dengan Goroutines
Go memiliki goroutines untuk menjalankan fungsi secara paralel, yang memungkinkan aplikasi untuk menjalankan banyak tugas secara bersamaan.
Contoh Goroutine:
-
go: Menandakan bahwa fungsi dijalankan sebagai goroutine (dalam paralel). -
time.Sleep(): Menghentikan eksekusi main goroutine untuk memberi waktu goroutine lainnya untuk dieksekusi.
Kesimpulan
Go (Golang) adalah bahasa pemrograman yang modern, sederhana, dan efisien. Dengan fitur seperti concurrency yang kuat, garbage collection, dan interoperabilitas dengan bahasa lain (terutama C), Go sangat cocok untuk pengembangan aplikasi server yang membutuhkan kinerja tinggi dan skalabilitas.
Poin penting dalam Go:
-
Sintaksis sederhana dan jelas.
-
Deklarasi variabel dengan
vardan:=. -
Fungsi yang mendukung pengembalian nilai dan parameter.
-
Struktur kontrol alur seperti
if,switch, danfor. -
Array dan Slice untuk koleksi data.
-
Struct dan Interface untuk pemrograman berorientasi objek.
-
Concurrency dengan Goroutines untuk pemrograman paralel.
Go adalah pilihan yang sangat baik untuk pengembangan microservices, aplikasi jaringan, dan aplikasi yang membutuhkan kecepatan tinggi.