Saya termasuk developer yang kurang melek literatur dan tidak well educated. Saya kuliah di sekolah kedinasan berjenjang D3, bukan perguruan tinggi ternama. Semua itu tentu ada sebabnya. Tapi bukan sebab itu yang ingin saya bahas kali ini, justru akibatnya. Jika saya lulusan ITB, UI atau Binus, mungkin konsep ini telah saya dapatkan di bangku kuliah. Sayangnya tidak. Justru saya mendapatkan pelajaran ini dari pengalaman pahit, dalam sebuah interview untuk suatu pekerjaan (yang gagal saya dapatkan).
Jika Anda memiliki latar belakang seperti saya, mungkin Anda belum paham dengan konsep Singleton.
1. Konsep
Singleton adalah konsep membatasi instansiasi sebuah class hanya untuk satu object saja. Mengapa kita membutuhkan konsep ini? Berikut ini beberapa kondisi yang membutuhkan implementasi Singleton.
- Hanya dibutuhkan satu object untuk mengkoordinasikan aksi-aksi yang berlaku untuk keseluruhan sistem aplikasi.
- Sistem hanya akan berjalan baik jika hanya ada beberapa instance object yang, misalnya hanya ada 4 instance objek koneksi ke network (lebih dari itu akan membuat aplikasi menjadi berat). Jangan perhatikan angka-nya, ini hanya contoh.
2. Implementasi
package com.durianapp.tutorial;
/** * @author amrishodiq */public class SingletonClass { // inilah variable yang menyimpan satu-satunya instance class SingletonClass private static SingletonClass instance; public static synchronized SingletonClass getInstance() { // langkah ini memastikan hanya ada satu instance yang akan dibuat if (instance == null) instance = new SingletonClass(); return instance; } /** * * Constructor class ini dibuat private untuk mencegah class ini dibuat * instance-nya oleh class lain. private akan mencegak baris seperti * berikut: * * SingletonClass x = new SingletonClass(); * */ private SingletonClass() { }}
3. Gunakanlah Singleton
Anda tidak harus menggunakan design pattern ini, tapi jika Anda baru bisa digolongkan menjadi Rockstar Programmer jika Anda mengerti konsep ini. Meskipun Anda mengaku Anda sudah pernah membangun 18 aplikasi Blackberry, 11 iPhone dan 9 Android dan semuanya berjalan lancar tidak pernah menampilkan jam pasir atau “Force Close“, seorang interviewer tetap akan menganggap Anda beginner hingga Anda bisa menjelaskan konsep Singleton.
Mereka tidak akan peduli bahwa Anda kuliah sastra Jepang dan kemudian terpaksa bekerja sebagai programmer karena tuntutan kebutuhan. Maka pahami dan amalkanlah Singleton, atau paling tidak Anda bisa menjelaskannya.
October 5, 2011
5 responses to Design Pattern: Singleton
very inspiring sekali mas amri, telaahan dari pengalaman pribadi memang lebih kena di hati. Keep original, keep positive.
Wah, kunjungan dari teman lama. Terima kasih.
semoga ilmu yang diberikan akan selalu memberikan manfaat bagi yang lain.
salam buat keluarga yo!
Amiin. Terima kasih Mas Timbul, ini kunjungan dari luar negeri nih rupanya.
seperti kata pepatah “ikatlah ilmu dengan menulisnya” sehingga dapat ter share untuk orang lain, Bravo mas Amri tutorial2 nya