Defer pada Golang adalah sebuah statement dimana fungsinya adalah untuk menjalankan suatu fungsi tertentu di akhir operasi. Misal terdapat dua buah fungsi dalam program, katakanlah fungsi A dan B, ceritanya kamu ingin menjalankan fungsi B terlebih dahulu, kemudian A akan di jalankan di akhir program. Kamu dapat melakukannya dengan menambahkan defer pada A.
Untuk lebih dapat mencerna fungsi dari defer, mari kita buat defer di dalam perulangan, perhatikan kode dibawah ini
contoh :

Pada kode diatas, fmt.Println akan dijalankan dan i tercetak jika program telah selesai melakukan looping. Tepatnya setelah done tercetak.

Gambar di atas adalah hasil dari operasi defer yang kita lakukan sebelumnya. Terlihat bahwa nilai i menjadi dari besar terkecil.
Sebenarnya operasi yang dilakukan adalah dari kecil ke terbesar. Namun, karena menggunakan defer maka operasi akan diurutkan berdasarkan defer pertama yang terakhir di eksekusi.
Defer pada Real Project Golang
Karena statement defer selalu dipanggil di akhir proses, defer biasanya digunakan untuk :
- Menutup koneksi database setelah selesai melakukan operasi query
- Menutup file setelah di update dari kode
- Menghapus file tertentu dari hardisk atau database
- dll
Defer menggunakan konsep LIFO yaitu Last In First Out, dengan kata lain defer yang terakhir di buat akan di eksekusi terlebih dulu
Mungkin cukup sekian penjelasan mengenai defer pada Mengenal Defer dan fungsinya dalam golang. Apabila ada yang perlu di tanyakan, boleh ditanyakan di kolom komentar. Materi selanjutnya kita akan membahas mengenai Array pada bahasa pemrograman Golang.