OOP Praktis – Class dan Object (Java)
- OOP Praktis – Class dan Object (Java)
- OOP Praktis – Constructor (Java)
- OOP Praktis – Instance Method (Java)
- OOP Praktis – Encapsulation (Java)
- OOP Praktis – Inheritance (Java)
Perhatian, artikel berikut menekankan pada sisi praktis. Beberapa hal yang secara konseptual dibutuhkan untuk memahami paradigma Object Oriented Programming (OOP), disajikan dalam bentuk yang disederhanakan.
Tipe data primitif dan tipe data object
Dalam bahasa pemrograman Java, dikenal dua kelompok tipe data. Tipe pertama adalah tipe data primitif, yakni tipe data bool,byte,short,char,int,long,float,double. Tipe data kedua adalah tipe data object, contohnya tipe data String, Integer, Double, Date, dan lainnya (lihat link ini untuk lebih detailnya).
Berbeda dengan tipe data primitif yang jenisnya sudah pasti (fixed) dan tidak bisa ditambah lagi, tipe data object dapat dibuat sesuai dengan kebutuhan program yang kita susun. Kita dapat menciptakan tipe data baru misalnya Buku, Mahasiswa, MataKuliah, Motor, Kucing, Resep, dst sesuai dengan benda di dunia nyata maupun entitas abstrak yang ingin kita representasikan dalam program. Singkatnya, kita dapat mendefinisikan sendiri tipe data yang kita butuhkan dalam bentuk tipe data object.
Class dan Object
Lantas bagaimana cara membuat sebuah tipe data baru? Caranya adalah dengan menyiapkan kerangka atau template bagi tipe data tersebut dalam sebuah class. Perhatikan contoh class Buku (disederhanakan), dan cara pemakaiannya pada class Main seperti ditunjukkan kode berikut ini. Anda juga dapat melihat hasil eksekusinya dengan menjalankan kode pada alamat repl.it berikut.
Buku.java
public class Buku { String judul; int tahunTerbit; String pengarang; }
Main.java
class Main { public static void main(String[] args) { Buku lp = new Buku(); lp.judul = "Laskar Pelangi"; lp.pengarang = "Andrea Hirata"; lp.tahunTerbit = 2005; System.out.println(lp.judul +" ditulis oleh "+lp.pengarang+" pada tahun "+ lp.tahunTerbit); } }
Perhatikan kedua file di atas. pada Java nama file harus sama dengan nama class yang ada di dalamnya, sehingga file Main.java berisi class Main, sedangkan file Buku.java berisi class Buku. Perhatikan juga bahwa nama class harus dimulai dengan huruf besar, jika nama class terdiri atas dua kata atau lebih, setiap kata baru harus dimulai dengan huruf besar (cth: MataKuliah, JadwalPertandinganLiga, BahanResep, CalonJemaahHaji, dst).
Fields
Pada file Buku.java, dideklarasikan class Buku yang memiliki tiga fields yakni judul, pengarang, dan tahunTerbit. Fields pada dasarnya adalah variabel pada class. Sebagai sebuah variabel tentunya ia memiliki tipe data tertentu sesuai nilai yang dikandungnya.
Object
Pada file berikutnya, Main.java terdapat class Main dengan sebuah method main().
Dalam method main() baris ke-3 terdapat deklarasi variabel lp dengan tipe data Buku. Variabel lp sendiri, disebut object. Sebuah object adalah variabel yang dibuat dari sebuah class, jadi pada kode tersebut lp merupakan object bertipe Buku.
Agar dapat berisi nilai, sebuah object harus diinisialisasi dari class-nya. Proses ini dilakukan dengan kata kunci new seperti ditunjukkan pada baris yang sama. Object yang belum diinisialisasi akan berisi null. Proses ini akan dijelaskan lebih detail saat pembahasan berikutnya tentang class constructor.
Operator titik (dot operator)
Perhatikan kembali class Main pada baris 4,5, dan 6. Pada baris tersebut terdapat tanda titik (dot operator) setelah object lp, diikuti dengan nama field yang ada pada class Buku.
Jika misalnya kita ambil baris ke-4 (lp.judul = "Laskar Pelangi";
) , yang terjadi adalah pemberian nilai (assignment) pada field object bersangkutan yakni judul. Field judul yang bertipe String, diisi dengan nilai teks “Laskar Pelangi”. Setelah proses ini, maka lp.judul akan berisi nilai “Laskar Pelangi.
Hal yang sama berlaku untuk baris ke-5 dan ke-6, dimana terjadi pemberian nilai pada field pengarang dan tahunTerbit.
Perhatikan hasil output pada console yang dihasilkan oleh baris ke-7 saat program dijalankan. Console akan menampilkan kalimat dengan nilai yang berasal dari isi dari ketiga field tersebut, yakni: Laskar Pelangi ditulis oleh Andrea Hirata pada tahun 2005
.
Latihan Soal
Untuk lebih memahami class dan object, buatlah class sederhana untuk beberapa item berikut, kemudian gunakan class tersebut dalam kode seperti contoh. Bandingkan jawaban anda dengan contoh alternatif penyelesaian yang ada.
- Mahasiswa : lihat contoh penyelesaian
- SepedaMotor: lihat contoh penyelesaian
- Menu pada sebuah restoran: lihat contoh penyelesaian
- Titik dan Garis pada koordinat cartesian: lihat contoh penyelesaian (perhatikan bahwa setiap garis lurus dibentuk dengan menghubungkan dua titik): lihat contoh penyelesaian
“tipe data primitif yang jenisnya sudah pasti dan tidak bisa ditambah lagi”, pak, ini maksudnya gimana ya?
apanya yang tidak bisa ditambah?
Pertanyaan bagus. Maksudnya jenisnya sudah tetap/fixed cuma ada 8 seperti yang disebutkan pada artikel. Bacaan lebih lanjut bisa diakses di: https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html