Object Oriented Programming (OOP) untuk Android Development
Materi singkat OOP pada java untuk keperluan android development.
Pendahuluan
Pada pemrograman dasar, kita mengenal yang namanya primitive variable seperti int, double, dan lain-lain. Variabel tersebut dipakai untuk menyimpan satu nilai saja. Nah, kalau object variable sama seperti variable primitif, bedanya object variable dapat menyimpan lebih dari satu nilai. Untuk menyimpan nilai-nilai itu, object mempunyai beberapa variable primitive untuk menyimpan nilai-nilai tersebut. Bukan hanya variable primitive saja lho yang bisa dimiliki si object, dia juga bisa menyimpan variable object yang di dalamnya terdapat lebih dari satu nilai juga. Nah, secara sederhana kita bisa memandang object seperti demikian. Di bawah ini adalah gambar ilustrasinya.
Apakah karena object dapat memiliki lebih dari satu nilai itu artinya object lebih baik daripada variable primitif atau variabel primitif itu tak lagi diperlukan ? Variabel primitif itu tetap diperlukan si object lho yaa. 😃
Object di dunia nyata
Apakah object itu sebatas menyimpan nilai ? Object tidak hanya sebatas menyimpan nilai saja. Object juga mempunyai yang namanya method.
Pada pemrograman dasar java kita udah tahu apa itu method. Method adalah semacam suatu fungsi yang dapat digunakan untuk melakukan suatu perintah. Ada dua tipe method, yaitu method yang melakukan suatu perintah dengan mengembalikan nilai atau dengan tanpa mengembalikan nilai.
Object pada OOP bisa digambarkan seperti objek di dunia nyata. Objek di dunia nyata itu memiliki sifat dan perilaku. Sama seperti Object pada OOP, istilah tersebut juga dapat digunakan untuk object, yaitu memiliki sifat dan perilaku. Atribut itu adalah variable (ingat variabel pada object yang dijelaskan sebelumnya) dan perilaku adalah methodnya. Contoh objek di dunia nyata, yaitu MakhlukHidup. Makhluk hidup punya sifat (atribut) yaitu warnaRambut, warnaKulit, usia, dll. Makhluk hidup juga punya perilaku seperti berjalan, berlari, makan, tidur, dll. Nah, dalam OOP, untuk merepresentasikan sifat-sifat seperti warnaRambut kita gunakan variabel yang berfungsi untuk menyimpan nilainya pada object. Dan perilaku makan atau tidur kita gunakan method, yang instruksinya disesuaikan dengan keinginan kita untuk makan atau tidur itu mau seperti apa di dalam methodnya.
Contoh : Manusia
Sifat → Warna rambut (biru) & warna kulit (cokelat)
Perilaku → Berjalan, berlari, dan makan
Class dan Object
Di OOP itu ada istilah class dan object. Class dan object itu berbeda. Bedanya kalau class itu adalah sebagai blueprint, template, atau juga bisa disebut sebagai cetakan untuk membuat object, sedangkan object adalah instansi yang dibuat dari class tersebut yang siap digunakan untuk menyimpan nilai atau melakukan suatu perintah. Object itu dibuat dengan menggunakan classnya. Memory digunakan saat object dibuat. Sedangkan definisi/penambahan class tidak menggunakan memory.
Membuat Class dan Object di Netbeans
Buka Netbeans, gunakan project atau buat project baru. Kemudian tambahkan kelas OOP.
Berikut merupakan potongan kode program kelas Manusia (jangan copy/paste dulu, lanjutkan baca selanjutnya) :
Berikut merupakan cara menginstansiasi (membuat) object dari kelas yang telah didefinisikan (ditambahkan) dan memanggil method pada object :
Berikut versi lengkap kode program di atas, copy/paste ke dalam file java OOP.java yang kita buat tadi :
Jika kode program di atas dijalankan maka akan menghasilkan output berikut :
Warna Kulit : cokelat terang
Warna Rambut : hitam
Pada kode program di atas, Anda menemukan keyword this
. Keyword tersebut digunakan untuk mengacu ke variabel object itu sendiri. Kenapa pakai this
di kode program di atas? itu digunakan untuk membedakan variabel yang ada di object dengan variabel yang dilewatkan di parameternya. Coba perhatikan, nama variabelnya sama.
Konsep OOP
Untuk belajar materi beginner Android, kita tidak perlu memahami materi bagian ini secara mendetail. Kita tahu konsepnya saja itu sudah cukup. Jika Anda ingin/mau mempelajarinya lebih detail justru akan lebih baik 😃. Beberapa konsep pada OOP, yaitu : Encapsulation, Inheritance, Polymorphism, dan Abstraction.
Konsep yang paling penting untuk kita ketahui yaitu Encapsulation, Inheritance, dan Polymorphism untuk belajar materi beginner Android.
Namun di post ini materi polymorphism dan abstraction tidak dijelaskan. Anda dapat mempelajarinya lebih detail pada link yang saya berikan di bagian bawah nanti.
1. Inheritance
- Merupakan pewarisan atau penurunan sifat (variabel) atau perilaku (method) dari class parent ke class child. Agar child dapat mewarisi atau menurunkan sifat atau perilaku parent maka di kelas child kita menggunakan keyword
extends
.
Berikut contoh penerapan inheritance :
- Seperti yang kita lihat pada gambar di atas, Mahasiswa mewarisi Orang.
Di sini Orang sebagaiparent class
dan Mahasiswa sebagaichild class
. Perhatikan, pada kelas Orang, variabel nama dan usia bersifat private, yang artinya kedua variabel private tersebut tidak bisa diturunkan ke kelas childnya. Namun method getNama dan getUsia bersifat public, yang artinya adalah method tersebut diturunkan ke childnya (Mahasiswa) sehingga bisa digunakan di dalam kelas Mahasiswa.
Perhatikan potongan kode berikut :
- Jika kode di atas dijalankan maka akan menghasilkan output seperti berikut :
Nama : Reinhard
Usia : 19
NIM : 12345
2. Encapsulation
Merupakan penyembunyian informasi/data pada object sehingga tidak bisa diakses dari luar object. Maksudnya adalah kita tidak bisa mengakses variabel atau method pada object yang diberi access modifier private
.
Berikut contoh penerapan encapsulation :
Jika kode di atas dijalankan maka akan menghasilkan output berikut :
NAMA : Reinhard
NAMA : Reinhard
USERNAME : reinhard
Untuk materi polymorphism dan abstraction dapat Anda pelajari melalui link berikut :