7 Trik Beralih ke Pemrograman Golang di Tahun 2021

muslim
Hyperjump Tech
Published in
4 min readJan 1, 2021
GO 2021 (credit)

Tidak banyak terdengar bunyi trompet atau kembang api yang menandakan keramaian di pergantian Tahun Baru 2021. Adanya pandemi Corona di hampir sepanjang tahun 2020 banyak membatasi langkah gerak kita. Namun datangnya tahun yang baru ini semoga kembali mengobarkan semangat dan harapan kita akan perubahan.

Di awal perubahan tahun ini, kita beranikan lagi untuk mencoba berbagai hal baru. Di antaranya adalah untuk mencoba beralih bahasa pemrograman. Golang bukanlah bahasa pemrograman yang baru namun bagi sebagian orang masih ada yang belum berani untuk mencobanya. Terutama karena masih bingung dan belum terbiasa dengan istilah dan paradigma pemrograman yang dapat diterapkan di dalam Golang.

Berikut ini saya rangkum 7 trik untuk mulai beralih ke pemrograman Golang di awal tahun 2021 agar Anda dapat segera menguasainya.

Mengatur struktur folder secara modular

Golang merupakan sebuah bahasa pemrograman yang mengelompokkan sumber kode berdasarkan package. Penamaan package pada golang mengikuti nama folder dimana file itu berada. Dengan mengatur struktur folder berdasarkan modular, itu artinya mengelompokkan fungsionalitas dan memusatkan inti logika yang sama berdasarkan package. mis. gambar di bawah mengelompokkan logika berdasarkan jenis tipe kendaraan dan fungsionalitas yang dapat digunakan oleh pengguna.

.
├── kendaraan
│ ├── mobil.go
│ └── motor.go
├── pengguna
│ ├── daftar.go
│ ├── login.go
│ └── user.go
└── main.go

Membuat objek dengan Struct

Golang bukanlah bahasa pemrograman yang menitikberatkan pada objek, namun bukan berarti tidak dapat diatur berdasarkan paradigma objek. Hal ini dapat dilakukan menggunakan struct. Struct adalah tipe data yang berisi kumpulan field dengan tipe data lainnya. Seperti halnya class pada bahasa pemrograman java, struct juga selain memiliki variable dapat memiliki fungsi.

Gambar 1. Contoh Struct

Menggunakan Fungsi Constructor

Constructor adalah sebuah fungsi yang digunakan untuk menginstansiasi suatu objek berdasarkan tipe data yang diinginkan. Penggunaan constructor ini dilakukan agar kode sumber dapat dibentuk secara lebih teratur dan mudah dipahami.

Gambar 2. Contoh Fungsi Constructor NewService

Polymorphism dengan Interface

Polymorphism di dalam golang adalah kemampuan dimana suatu fungsi yang diatur dalam interface dapat memiliki beberapa bentuk penerapan fungsi yang berbeda berdasarkan objek struct. Seperti hal nya di dalam java, interface membuat aturan agar objek struct mengimplementasikan sejumlah fungsi yang sama. Namun implementasi logika di dalam fungsi dapat dibuat berbeda tergantung objek yang mengimplementasikannya. Sehingga pemanggilan fungsi dari interface yang sama dapat mengeluarkan hasil yang berbeda tergantung objek yang ditugaskan.

Gambar 3. Contoh polymorphism

Parameter Generik

Dengan kemampuan interface sebagai tipe data yang dinamis, maka interface juga dapat digunakan sebagai parameter yang generik. Parameter generik adalah parameter yang dapat menerima berbagai jenis tipe data yang berbeda. Dengan mengganti parameter menggunakan tipe data pointer, maka kita juga dapat menerjemahkan byte array menjadi pointer objek yang kita berikan tadi.

Gambar 4. contoh generic parameter

Membuat Fungsi Umum

Hampir seluruh aplikasi yang kompleks membutuhkan fungsi yang dapat digunakan di seluruh bagian aplikasi, melewati batas-batas pengelompokan fungsi dan inti logika yang sama. Untuk ini golang dapat dengan mudah membuat library yang sangat sederhana dan berukuran kecil. Tidak seperti java, fungsi pada golang dapat berdiri sendiri dan terikat hanya dengan package tidak harus melulu menggunakan struct sehingga dapat dengan mudah membuat fungsi umum di dalam sebuah aplikasi. Mis. fungsi untuk mendapatkan data dari cache GetCache dan fungsi untuk merubah format waktu agar lebih seragam di seluruh aplikasi.

Gambar 5. Contoh library

Implementasi Clean Architecture menggunakan Objek

Clean Architecture adalah paradigma pemrograman yang menitikberatkan pada separation of concerns dan menghilangkan adanya keterikatan yang erat (tight coupling) pada kode sumber yang kita buat. Secara dasar kode sumber yang kita buat harus lah mandiri terhadap lapisan kode sumber lainnya. Dengan membuat objek untuk setiap lapisan, maka kita akan lebih mudah mengatur dan mengimplementasikan pembuatan kode sumber kita. Pada contoh kali ini dibagi menjadi 3 lapisan seperti berikut:

Entities
Entity merupakan layer deskripsi model dari objek yang bersangkutan.

Services
Service merupakan layer yang berisi logika dari pemrograman kita.

Clients/Data
Client/Data merupakan layer yang berhubungan dengan darimana data mengenai objek tersebut diambil. Client digunakan untuk mendapatkan data dari service eksternal, yang kali ini dicontohkan dengan cara pemanggilan menggunakan REST HTTP Client.

Fungsi Main
Berikut adalah contoh penggunaan dari instansiasi objek yang dipanggil dari fungsi main. Fungsi utama dari golang yang pertama kali dipanggil pada saat project dijalankan.

Gambar 6. Contoh implementasi clean code menggunakan objek

Dengan mencoba 7 trik di atas, diharapkan akan lebih memudahkan proses penggunaan bahasa pemrograman golang dan menghilangkan keragu-raguan lagi untuk memulainya. Untuk lebih melancarkan lagi pemrograman dalam golang, saya sarankan untuk mengikuti beberapa contoh yang ada di https://gobyexample.com dan mencobanya di https://tour.golang.org/list.

Hyperjump is an open-source-first company providing engineering excellence service. We aim to build and commercialize open-source tools to help companies streamline, simplify, and secure the most important aspects of its modern DevOps practices.

--

--