Selasa, Mei 14, 2019

Kenapa Java Bukanlah Pemrograman Berorientasi Objek Murni?

Object oriented programming atau pemrograman berorientasi objek murni adalah bahasa pemrograman yang mendukung atau memiliki fitur yang memperlakukan segala yang ada dalam program sebagai sebuah object. Bahasa tersebut tidak mendukung tipe data primitif (seperti int, char, float, bool, dan lain sebagainya). Ada beberapa persyaratan yang harus dipenuhi agar sebuah bahasa pemrograman menjadi OOP murni. Yaitu:

1. Enkapsulasi atau data hiding
2. Inheritance
3. Polymorphism
4. Abstraksi
5. Semua tipe data predefinisi adalah object
6. Semupa tipe definisi user adalah object
7. Semua operasi yang ditampilkan dalam object harus melalui method yang diekspos pada object

Contoh: Smalltalk

Kenapa Java tidak murni bahasa pemrograman berorientasi objek?
Karena Java hanya mendukung beberapa persyaratan yaitu syarat 1, 2, 3, 4, dan 6 tetapi tidak mendukung syarat 5 dan 7 seperti yang telah dijelaskan sebelumnya. Bahasa Java juga tidak murni bahasa pemrograman berorientasi objek karena mengandung beberapa hal berikut ini:

satu, Tipe data primitif seperti int, long, bool, float, char, dan lain sebagainya adalah object. Smalltalk adalah OOP murni tidak seperti Java dan C++ yang tidak memiliki perbedaan antara nilai object dan nilai tipe data primitif. Pada Smalltalk, nilai primitif seperti integer, boolean, dan character adalah berupa object.

Pada Java, dimiliki tipe predefinisi yang berupa non-object (tipe primitif).
int a = 5;
System.out.print(a);

dua, keyword static: Ketika mendeklarasikan sebuah class sebagai static maka class tersebut dapat digunakan tanpa object pada Java. Jika digunakan fungsi static atau variabel static maka hal tersebut tidak bisa disebut sebagai fungsi atau variabel yang menggunakan dot (.) atau object class yang mendefinisikan fitur berorientasi object.

tiga, Wrapper class: class wrapper menyediakan mekanisme untuk mengkonversi tipe data primitif menjadi object dan sebaliknya. Pada Java, dapat digunakan Integer, Float, dan lain sebagainya sebagai pengganti dari int, float, dan lain sebagainya. Dapat juga dilakukan komunikasi dengan object tanpa pemanggilan method-nya. contoh, penggunaan operator aritmatik.

String s1 = "ABC" + "A" ;

Bahkan dengan menggunakan wrapper class tidak akan membuat Java menjadi bahasa pemrograman yang murni OOP, secara internal dapat digunakan operasi seperti Unboxing dan Autoboxing.

Pada code program sebelumnya, terdapat dua permasalahan dimana Java gagal bekerja secara murni OOP.
satu, Ketika menciptakan class Integer yang menggunakan tipe data primitif "int" yaitu angka 10, dan 20.
dua, Ketika melakukan penambahan, Java menggunakan tipe data "int".





Tidak ada komentar:

Posting Komentar

Respon komentar 7 x 24 jam, so please be patient :D

Footer Adsense