Last Updated on April 26, 2023 by
Dalam dunia pengembangan perangkat lunak, terutama pengembangan Android, mengoptimalkan penggunaan memori dan waktu eksekusi sangatlah penting. Salah satu cara untuk mencapai hal ini adalah dengan memahami dan menerapkan pola dari Singleton Object dalam bahasa pemrograman yang digunakan.
Dalam dalam seri belajar Kotlin kali ini, kita akan membahas Singleton Object dalam Kotlin, bagaimana cara membuat dan menggunakannya, serta manfaat yang bisa didapatkan oleh pengembang Android dalam aplikasi mereka. Selain itu, kita akan melihat beberapa contoh penggunaannya dalam aplikasi Android. Yuk langsung saja simak ulasannya dibawah ini!
Table of Contents
Kelas Singleton Object pada Kotlin
Kelas Singleton dalam Kotlin dikenal juga sebagai Singleton Object pada Kotlin. Kelas Singleton adalah kelas yang dirancang sedemikian rupa sehingga hanya satu instance dari kelas tersebut yang dapat dibuat dan digunakan di mana-mana. Faktanya, kita sering kali membuat dua objek berbeda dari kelas yang sama, tetapi dengan membuat dua objek berbeda maka diperlukan alokasi dua memori yang berbeda untuk kedua objek tersebut. Maka dari itu, membuat satu objek dan menggunakannya berulang kali adalh solusi terbaik. Berikut adalah contoh sIntaks kode Program Kotlin dengan menggunakan class.
fun main(args: Array<String>) { val obj1 = GFG() val obj2 = GFG() println(obj1.toString()) println(obj2.toString()) } class GFG { }
Output:
GFG@5451c3a8 GFG@76ed5528
Pada contoh sintaks di atas, kedua objek memiliki tersebut alamat yang berbeda satu sama lain sehingga dapat menyebabkan pemborosan memori untuk penyimpanan kedua objek tersebut. Dalam contoh sintaks di bawah ini, kami melakukan hal yang sama dengan contoh pertama, namun dengan menggunakan Singleton Object. Berikut contoh kode program Kotlin dengan objek Singleton.
fun main(args: Array<String>) { println(GFG.toString()) println(GFG.toString()) } // GFG adalah kelas Singleton di sini object GFG { }
Output:
GFG@5451c3a8 GFG@5451c3a8
Saat mengubah class menjadi object, Kotlin akan langsung menggunakan Singleton Object dan hanya mengalokasikan satu memori. Pada bahasa pemrograman Java, kelas Singleton dibuat dengan membuat kelas bernama Singleton. Namun pada Kotlin, kita perlu mengubah class menjadi object. Kelas objek dapat memiliki fungsi, properti, dan metode init namun metode konstruktor tidak diizinkan dalam objek.
Metode init dapat digunakan jika diperlukan inisialisasi dan objek dapat didefinisikan di dalam kelas. Pemanggilan metode dan variabel anggota yang ada dalam kelas Singleton dapat dilakukan dengan menggunakan nama kelas. Berikut adalah contoh sintaks untuk pemanggilan metode dan variabel anggota yang ada dalam kelas Singleton.
fun main(args: Array<String>) { println(GFG.name) println("Hasil penjumlahan adalah ${GFG.add(3,2)}") println("Hasil penjumlahan adalah ${GFG.add(10,15)}") } object GFG { init { println("Kelas Singleton dipanggil.") } var name = "GFG Is Best" fun add(num1:Int,num2:Int):Int { return num1.plus(num2) } }
Output:
Single class invoked. GFG Is Best The answer of addition is 5 The answer of addition is 25
Properti Kelas Singleton Object
Kelas Singleton atau Singleton Object memiliki beberapa properti penting yang menjadi ciri khas dan menjadi identitas dari kelas ini. Berikut adalah properti dari kelas Singleton yang khas:
- Hanya satu instance: Kelas Singleton hanya memiliki satu instance, dan ini dilakukan dengan menyediakan instance dari kelas tersebut, dalam kelas itu sendiri.
- Dapat diakses secara global: Instance dari kelas Singleton harus dapat diakses secara global sehingga setiap kelas dapat menggunakannya.
- Konstruktor tidak diizinkan: Kita dapat menggunakan metode init untuk menginisialisasi variabel anggota kita.
Pentingnya Singleton Object di Android
Berikut adalah beberapa poin yang menjelaskan pentingnya Singleton Object dalam Android, beserta beberapa contoh, dimana harus digunakan, dan alasan mengapa pengembang Android harus mempelajari objek singleton:
- Seperti yang kita ketahui, jika kita ingin satu instance dari objek tertentu digunakan di seluruh aplikasi, maka kita akan menggunakan Singleton. Contoh umum penggunaan Singleton adalah ketika menggunakan Retrofit untuk setiap permintaan yang kita buat dalam aplikasi. Dalam situasi ini, kita hanya memerlukan satu instance Retrofit, karena instance tersebut memiliki beberapa properti melekat seperti Gson Converter (untuk mengonversi respons JSON ke Objek Java) dan Moshy Converter. Menggunakan kembali instance yang ada daripada membuat instance baru berulang kali akan menghemat ruang memori. Oleh karena itu, objek Singleton menjadi pilihan terbaik.
- Pertimbangkan situasi di mana Anda bekerja dengan repositori dalam arsitektur MVVM. Dalam konteks ini, Anda sebaiknya hanya membuat satu instance repositori, karena repositori itu sendiri tidak akan berubah. Membuat beberapa instance yang berbeda akan menyebabkan pemborosan pada memori.
- Bayangkan Anda memiliki aplikasi dimana pengguna dapat masuk setelah melalui proses otentikasi. Jika ada dua pengguna dengan nama pengguna dan kata sandi yang sama yang mencoba masuk secara bersamaan, aplikasi seharusnya tidak mengizinkan hal tersebut demi alasan keamanan. Dalam hal ini, objek Singleton dapat membantu untuk hanya membuat satu instance dari objek pengguna, sehingga login berganda dapat dihindari.
Contoh Program Android yang Menunjukkan Penggunaan Singleton Object
Berikut adalah contoh sintaks program Android yang menggunakan Singleton Object.
// contoh program aplikasi android dalam kotlin // menunjukkan penggunaan objek singleton package com.example.retrofitexample import retrofit2.Call import retrofit2.Retrofit import retrofit2.converter.gson.GsonConverterFactory import retrofit2.http.GET import retrofit2.http.Query const val BASE_URL = "https://newsapi.org/" const val API_KEY = "ff30357667f94aca9793cc35b9e447c1" interface NewsInterface { @GET("v2/top-headlines?apiKey=$API_KEY") fun getheadlines(@Query("country")country:String,@Query("page")page:Int):Call<News> // fungsi yang digunakan untuk mendapatkan judul berita negara // menurut query yang ditulis oleh pengembang } // NewsService adalah instance dari retrofit yang dibuat dengan menggunakan objek Singleton object NewsService { val newsInstance:NewsInterface init { val retrofit=Retrofit.Builder() .baseUrl(BASE_URL) .addConverterFactory(GsonConverterFactory.create()) .build() newsInstance=retrofit.create(NewsInterface::class.java) } }
Dalam contoh program Android di atas, objek Singleton digunakan untuk membuat instance Retrofit yang akan digunakan di seluruh aplikasi. Dengan ini, pembuatan instance berulang yang akan menghabiskan waktu dan memori dapat dihindari sehingga dapat meningkatkan kinerja aplikasi dan menjadikannya lebih optimal.
Kesimpulan
Setelah membahas secara lengkap tentang kelas Singleton Object pada Kotlin, dapat disimpulkan bahwa kelas Singleton dalam Kotlin sangat bermanfaat bagi pengembang Android. Dengan menggunakan pola kode objek Singleton, pengembang dapat mengurangi penggunaan memori yang tidak perlu dan meningkatkan efisiensi aplikasi mereka. Oleh karena itu, sangat dianjurkan untuk memahami dan menerapkan kelas Singleton dalam proyek Android Anda untuk menciptakan aplikasi yang lebih efisien dan hemat memori. Semoga seri belajar kali ini bermanfaat!
Temukan lebih banyak artikel seri belajar Kotlin maupun bahasa pemrograman lainnya hanya di CODEKEY. Klik https://codekey.id/ sekarang juga untuk langsung belajar gratis dan tak ketinggalan tutorial pemrograman menarik lainnya. Sampai bertemu lagi!
Jasa Pembuatan Aplikasi, Website dan Internet Marketing | PT APPKEY
PT APPKEY adalah perusahaan IT yang khusus membuat aplikasi Android, iOS dan mengembangkan sistem website. Kami juga memiliki pengetahuan dan wawasan dalam menjalankan pemasaran online sehingga diharapkan dapat membantu menyelesaikan permasalahan Anda.