Belajar Golang #30 : Memahami penggunan Defer dan Exit

Tutorial Golang ke – 30 kali ini kita akan belajar mengenai defer dan exit. Mulai dari pengertian defer dan exit, cara menggunakan defer dan exit.

Apa Itu Defer ?

Defer adalah suatu mekanisme yang digunakan untuk mendakan bahwa proses tersebut akan selesai di akhir.

Defer di jalankan pada proses terakhir suatu fungsi.

Analoginya defer seperti ini , tedapat loker bioskop dimana banyak orang mengantri secara berurutan, anggap aja ada 5 oarang dengan nama A sampai Z. Jika kita perhatikan urutan antri tiket di mulai dari depan sampai belakang dan yang mendapatkan tiket pertama yaitu si A dan yang terakhir si Z. Nah ketika menggunakan defer maka kita dapat membuat si A menjadi antrian paling akhir dan di mulai orang dengan nama B.

Baca Juga : Cara menggunakan Goroutine – Concurrency

Apa Itu Exit ?

Berbeda dengan defer, exit adalah mekanisme menghentikan kode program secara paksa.

Sedangkan untuk exit biasanya menggunakan perintah return atau os.Exit(), Jika di lihat dari analogi mengenai defer seperti ini : Jika kita memberikan sintaks untuk memaksa berhenti maka proses selanjutnya akan di batalkan. Dalam contoh antrian beli tiket bioskop di atas misalnya kita memberikan exit si A maka si B sampai dengan Z tidak akan di proses.

Cara menggunakan Defer

Sekarang mari kita buat contoh program kode golangnya mulai dari contoh yang sangat sederhana dengan tujuan membuat kita mengerti.

main.go

Sekarang kita tebak hasilnya, Jika di lihat urutan kode di atas pasti yang jalan pertama dengan teks “Belajar Javascript” dan yang terakhir “Belajar Golang”. Namun pada kenyataan nya tidak.

Kita lihat hasilnya :

Belajar Golang #30 : Memahami penggunan Defer dan Exit

Terlihat jelas sesuai dengan definisi pengertian defer, bahwa kode yang yang di beri defer akan di jalankan terakhir dalam blok fungsi.

Latihan menggunakan Defer

Sebenarnya tanpa kita sadari kita sudah menggunakan defer ketika belajar mengenai WaitGroup di Golang.

Mari kita buat contoh penerapan defer dengan WaitGroup.

main.go

Hasilnya :

Belajar Golang #30 : Memahami penggunan Defer dan Exit

Yuk kita ulas lagi dengan waitGroup, sintaks Done() digunakan untuk memberi tanda bahwa goroutine sudah selesai. Nah dengan menambah defer maka posisi urutan sintaks seperti apapun tetap di jalankan pada proses akhir suatu fungsi, baik di jadikan goroutine maupun tidak.

Cukup mudah bukan ? Saya rasa sangatlah mudah.

Kita lanjut ke penggunaan exit.

Contoh Latihan Penggunaan Exit

Kita akan modifikasi kode penggunaan defer di atas.

main.go

Hasilnya :

Belajar Golang #30 : Memahami penggunan Defer dan Exit

Perhatikan kode di atas, saya memberikan perintah yang berguna untuk mencetak string “Halo semuanya…” di bawah nya saya berikan sintaks os.Exit(1), gunanya untuk mengentikan paksa program ke kode berikutnya.

Angka 1 merupakan kode status, apabila anda ingin tidak terlihat keterangan keluarnya anda bisa memberikan nilai 0.

Perlu di ketahui walaupun kita memberikan defer tetap tidak akan di eksekusi.

Penggunaan Exit di Golang akan sangat errar kaitannya dengan error handling, hal umum yang kita temui untuk melakukan menghentikan program ketika error. Nanti kita lihat di dalam seri tutorial golang mengenai error handling.

Sekian tutorial golang yang membahas Defer dan Exit. Terima Kasih.

Leave a Reply