Skip to content Skip to sidebar Skip to footer

KONSEP & KARAKTERISTIK ( object-oriented programming ) OOP

KONSEP & KARAKTERISTIK OOP



Pengertian OOP Pada Java: Memahami Pemrograman Berorientasi Objek


Jika Anda tertarik dengan dunia pemrograman, Anda pasti pernah mendengar tentang OOP atau Object Oriented Programming. OOP adalah metode pemrograman yang berorientasi pada objek yang bertujuan untuk mempermudah pengembangan program dengan mengikuti model yang ada dalam kehidupan sehari-hari.

Pada dasarnya, OOP memandang setiap bagian dari suatu permasalahan sebagai objek. Objek sendiri merupakan gabungan dari beberapa objek yang lebih kecil lagi. Sebagai contoh, mari kita lihat sebuah pesawat. Pesawat dapat dianggap sebagai sebuah objek yang terdiri dari beberapa objek yang lebih kecil seperti mesin, roda, baling-baling, kursi, dan sebagainya.

Dalam OOP, objek-objek tersebut saling berhubungan, berinteraksi, berkomunikasi, dan saling mengirim pesan satu sama lain. Sama halnya dengan program, sebuah objek yang besar dapat dibentuk dari beberapa objek yang lebih kecil. Objek-objek tersebut saling berkomunikasi dan berkirim pesan satu sama lain.

Dalam pemrograman Java, OOP digunakan sebagai paradigma dasar. Bahasa pemrograman Java menyediakan dukungan yang kuat untuk OOP. Objek dalam Java terdiri dari data dan perilaku, yang didefinisikan oleh kelas. Kelas dapat dianggap sebagai cetak biru atau blueprint dari objek yang akan dibuat.

Dalam OOP, terdapat empat konsep utama, yaitu enkapsulasi, pewarisan, polimorfisme, dan abstraksi. Enkapsulasi merupakan konsep yang digunakan untuk menyembunyikan detail implementasi suatu objek. Pewarisan digunakan untuk menurunkan sifat-sifat dari kelas induk ke kelas anak. Polimorfisme adalah kemampuan suatu objek untuk memiliki banyak bentuk atau perilaku yang berbeda. Sedangkan abstraksi digunakan untuk menyembunyikan detail yang tidak perlu dari suatu objek.

Dengan menggunakan OOP, pengembangan program menjadi lebih mudah dan terstruktur. Kode program dapat direuse dan mudah dimodifikasi. Selain itu, OOP juga memungkinkan pengembang program untuk membuat program yang lebih kompleks dan lebih mudah dipahami.

Dalam kesimpulannya, OOP adalah metode pemrograman yang berorientasi pada objek, dimana setiap bagian dari suatu permasalahan dianggap sebagai objek. Objek tersebut terdiri dari beberapa objek yang lebih kecil lagi dan saling berkomunikasi dan berinteraksi satu sama lain. 

Dalam pemrograman Java, OOP digunakan sebagai paradigma dasar dengan empat konsep utama yaitu enkapsulasi, pewarisan, polimorfisme, dan abstraksi. Dengan menggunakan OOP, pengembangan program menjadi lebih mudah, terstruktur, dan memungkinkan untuk membuat program yang lebih kompleks dan mudah dipahami.

Dalam pemrograman Java, sebuah objek harus memiliki karakteristik sebagai berikut:


1. Itu harus dibuat menggunakan konstruktor.

2. Itu harus merupakan subkelas dari kelas java.lang.Object.

3. Harus ada kata kunci "publik" sebelumnya.

4. Harus ada kata kunci "statis" sebelumnya.

5. Harus memiliki metode utama.

Apa itu variabel dalam OOP

Dalam OOP, variabel diklasifikasikan sebagai variabel anggota atau variabel lokal. Variabel anggota dideklarasikan di dalam kelas tetapi di luar metode, konstruktor, atau blok apa pun.

Mereka juga dikenal sebagai bidang atau atribut. Variabel anggota terlihat oleh semua metode, konstruktor, dan blok di kelas. Namun, mereka tidak dapat diakses dari luar kelas. Variabel lokal dideklarasikan dalam metode, konstruktor, atau blok. Mereka hanya terlihat oleh metode di mana mereka dideklarasikan.

Pemrograman berorientasi objek


Pemrograman berorientasi objek (Inggris: object-oriented programming disingkat OOP) merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Bandingkan dengan logika pemrograman terstruktur. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya.

Model data berorientasi objek dikatakan dapat memberi fleksibilitas yang lebih, kemudahan mengubah program, dan digunakan luas dalam teknik piranti lunak skala besar. Lebih jauh lagi, pendukung OOP mengklaim bahwa OOP lebih mudah dipelajari bagi pemula dibanding dengan pendekatan sebelumnya, dan pendekatan OOP lebih mudah dikembangkan dan dirawat.

Konsep dasar dari Pemrograman Berorientasi Objek Pemrograman orientasi-objek menekankan konsep berikut :

 

·  Kelas

kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu. Sebagai contoh 'class of dog' adalah suatu unit yang terdiri atas definisi-definisi data dan fungsi-fungsi yang menunjuk pada berbagai macam perilaku/turunan dari anjing. Sebuah class adalah dasar dari modularitas dan struktur dalam pemrograman berorientasi object. Sebuah class secara tipikal sebaiknya dapat dikenali oleh seorang non-programmer sekalipun terkait dengan domain permasalahan yang ada, dan kode yang terdapat dalam sebuah class sebaiknya (relatif) bersifat mandiri dan independen (sebagaimana kode tersebut digunakan jika tidak menggunakan OOP). Dengan modularitas, struktur dari sebuah program akan terkait dengan aspek-aspek dalam masalah yang akan diselesaikan melalui program tersebut. Cara seperti ini akan menyederhanakan pemetaan dari masalah ke sebuah program ataupun sebaliknya.


·         Objek

membungkus data dan fungsi bersama menjadi suatu unit dalam sebuah program komputer; objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek.


·         Abstraksi

Kemampuan sebuah program untuk melewati aspek informasi yang diproses olehnya, yaitu kemampuan untuk memfokus pada inti. Setiap objek dalam sistem melayani sebagai model dari "pelaku" abstrak yang dapat melakukan kerja, laporan dan perubahan keadaannya, dan berkomunikasi dengan objek lainnya dalam sistem, tanpa mengungkapkan bagaimana kelebihan ini diterapkan. Proses, fungsi atau metode dapat juga dibuat abstrak, dan beberapa teknik digunakan untuk mengembangkan sebuah pengabstrakan.


·         Enkapsulasi

Memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam dari sebuah objek dengan cara yang tidak layak; hanya metode dalam objek tersebut yang diberi izin untuk mengakses keadaannya. Setiap objek mengakses interface yang menyebutkan bagaimana objek lainnya dapat berinteraksi dengannya. Objek lainnya tidak akan mengetahui dan tergantung kepada representasi dalam objek tersebut.


·         Polimorfisme

Melalui pengiriman pesan. Tidak bergantung kepada pemanggilan subrutin, bahasa orientasi objek dapat mengirim pesan; metode tertentu yang berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu di mana pesa tersebut dikirim.



Contohnya, bila sebuah burung menerima pesan "gerak cepat", dia akan menggerakan sayapnya dan terbang. Bila seekor singa menerima pesan yang sama, dia akan menggerakkan kakinya dan berlari. Keduanya menjawab sebuah pesan yang sama, namun yang sesuai dengan kemampuan hewan tersebut. 

Ini disebut polimorfisme karena sebuah variabel tungal dalam program dapat memegang berbagai jenis objek yang berbeda selagi program berjalan, dan teks program yang sama dapat memanggil beberapa metode yang berbeda di saat yang berbeda dalam pemanggilan yang sama. Hal ini berlawanan dengan bahasa fungsional yang mencapai polimorfisme melalui penggunaan fungsi kelas-pertama.


Dengan menggunakan konsep OOP maka dalam melakukan pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan masalah tersebut. Sebagai contoh anggap kita memiliki sebuah departemen yang memiliki manager, sekretaris, petugas administrasi data dan lainnya. 

Misal manager tersebut ingin memperoleh data dari bag administrasi maka manager tersebut tidak harus mengambilnya langsung tetapi dapat menyuruh petugas bag administrasi untuk mengambilnya. Pada kasus tersebut seorang manager tidak harus mengetahui bagaimana cara mengambil data tersebut tetapi manager bisa mendapatkan data tersebut melalui objek petugas adminiistrasi. Jadi untuk menyelesaikan suatu masalah dengan kolaborasi antar objek-objek yang ada karena setiap objek memiliki deskripsi tugasnya sendiri.


Karakteristik OOP (object oriented programing)


  • Pembungkusan (Encapsulation)

Pembungkusan (encapsulation) merupakan suatu karakteristik OOP di mana program terbungkus (menjadi satu) data (property/field) dan perilaku(fumgsi/method), artinya lebih memperhatikan aspek internal daripada aspek eksternal.

  • Polymorphisme

Polymorphisme merupakan suatu karakter OOP di mana objek yang berbeda dapat memakai method dengan nama yang sama paa suatu kelas (class)

  • Turunan (Inheritance)

Turunan merupakan suatu karakteristik OOP di mana suatu kelas (parent class/baseclass) dapat diturunkan ke kelas yang lain (child class/derived class), sehingga kelas anak dapat memiliki data atau perilaku kelas orang tuanya.



Dibawah ini adalah contoh untuk membuat class mahasiswa tersebut :


class Mahasiswa {
String nama; // property nama dengan tipe data String
String nim; // property nim dengan tipe data String
String alamat; // property alamat dengan tipe data String
}
class AksesClass {
public static void main(String[] args) { // awal eksekusi (method main)
Mahasiswa mhs = new Mahasiswa(); // membuat objek dari class Mahasiswa 
mhs.nama = “aku”; // mengisikan property nama
mhs.nim = “2004470099”; // mengisikan property nim
mhs.alamat = “Bekasi”; // mengisikan property alamat

System.out.println(“Nama Mahasiswa : “ + mhs.nama); // menampilkan nama

System.out.println(“Nim Mahasiswa : “ + mhs.nim); // menampilkan nim
System.out.println(“Alamat Mahasiswa : “ + mhs.alamat); // menampilkan alamat
}
}


kita bisa membandingkan class berguna dengan sebuah toko yang menyediakan berbagai produk. Setiap produk di toko memiliki atribut seperti nama, harga, dan deskripsi, serta perilaku seperti membeli, memasukkan keranjang, dan membayar. Dalam hal ini, produk di toko bisa dianggap sebagai objek dan toko itu sendiri adalah class berguna.

Begitu juga dengan class berguna dalam pemrograman. Class berguna menyediakan seperangkat atribut dan perilaku yang dapat digunakan untuk membuat objek dalam aplikasi. Atribut dalam class bisa berupa variabel seperti nama, alamat, dan tanggal lahir, sedangkan perilaku bisa berupa method seperti getName(), setAddress(), dan getAge().

Dengan menggunakan class berguna, kita dapat membuat aplikasi yang lebih terstruktur dan terorganisir, dan mempermudah dalam pemeliharaan dan pengembangan aplikasi.

Bentuk Nyata Dari sebuah Class


berupa objek yang dibuat dari class tersebut. Dalam pemrograman berorientasi objek, objek adalah instance dari sebuah class yang memiliki atribut dan perilaku yang sesuai dengan class tersebut.

Misalnya, jika kita memiliki class "Person", kita dapat membuat objek "person1" dan "person2" dari class "Person". Setiap objek "Person" memiliki atribut seperti nama, alamat, dan tanggal lahir, serta metode seperti getName(), setAddress(), dan getAge(). Kita dapat mengatur atribut dan menggunakan metode pada setiap objek secara terpisah.

Jadi, bentuk nyata dari sebuah class adalah objek yang dibuat dari class tersebut, yang memiliki atribut dan perilaku yang sesuai dengan class tersebut. Objek inilah yang membuat aplikasi berfungsi dan membuat class berguna untuk membuat aplikasi lebih terstruktur dan terorganisir.

Polimorfisme


Salah satu konsep dasar dalam pemrograman berorientasi objek (OOP) yang memungkinkan sebuah objek untuk mengambil beberapa bentuk atau memiliki beberapa perilaku.

Method overriding adalah mekanisme di mana sebuah subclass menimpa implementasi method dari superclass-nya. Ini memungkinkan sebuah objek untuk memiliki perilaku yang berbeda dari superclass-nya, tetapi tetap mempertahankan kompatibilitas dengan interface yang ditentukan oleh superclass-nya.

Dan mekanisme di mana sebuah class memiliki beberapa method dengan nama yang sama, tetapi dengan jumlah atau tipe parameter yang berbeda. Ini memungkinkan sebuah class untuk memiliki beberapa implementasi dari method yang sama dengan mengambil masukan yang berbeda.

Kedua mekanisme ini merupakan bagian dari polimorfisme dan digunakan untuk membuat aplikasi yang lebih terstruktur, terorganisir, dan mudah dalam pemeliharaan dan pengembangan.