MAKALAH
PEMROGRAMAN BERORIENTASI OBJEK
Oleh :
KELAS B
SALMA : 91001067
YUSNIAR : 91001066
SITTI MARYAM : 91001075
AKADEMIK MANAJEMEN INFORMATIKA DAN KOMPUTER
MILAN DHARMA
BAU-BAU
2011
KATA PENGANTAR
Puji syukur kehadirat Allah SWT, rahmat, hidayah serta hidayahnya, kami dapat menyelesaikan makalah ” PENGENALAN BAHASA PEMROGRAMAN JAVA
(OOP)”
Sholawat serta semoga akan selalu tercurahkan kepada Rasulullah SAW, yang telah membawa kita dari jalan kegelapan menuju jalan yang terang benderang, dan yang kita nantikan syafa’atnya di dunia dan akhirat.
Kami sadar bahwa dirinya hanyalah manusia biasanya yang pastinya mempunyai banyak kesalahan, tentunya dalam makalah ini terdapat banyak kesalahan. Untuk itu kami mengharap kritik dan saran yang membangun demi kesempurnaan pengembangan berikutnya.
Semoga makalah ini dapat bermanfaat bagi mahasiswa Teknik Informatika khususnya dan untuk mata kuliah PEMROGRAMAN BERORIENTASI OBJEK.
BauBau, 16 Agustus 2011
Penyusun
BAB I
PENDAHULUAN
A. Latar Belakang Masalah
Latar Belakang Kami menulis Makalah ini, karena untuk memperdalam pengetahuan mahasiswa dan mahasiswi tentang bagaimana Bahasa Pemrograman Dalam Java .
B. Tujuan
Makalah ini membahas tentang Bahasa Pemrograman dalam Java, adapun tujuan dari Makalah ini yaitu:
Mengetahui tentang bahasa pemrograman Java yang terdiri dari Objek Java dan Pengorganisasian Class dan Objek serta mengetahui bagian-bagian yang terdapat didalamnya.
C. Metode Pengumpulan Data
Makalah ini dapat tersusun dengan cara mengumpulkan data-data atau Informasi-informasi baru (update) pada internet.
BAB II
PEMBAHASAN
Pengenalan Bahasa Pemrograman Java
Pemrograman berorientasi objek diciptakan untuk mempermudah pengembangan program dengan cara mengikuti model yang telah ada dalam kehidupan nyata. Dalam paradigma ini, sesuai dengan model kehidupan nyata, segala bagian (entiti) dari suatu permasalahan adalah objek. Objek-objek ini kemudian juga dapat berupa gabungan dari beberapa objek yang lebih kecil. Sebagai contoh, tengoklah sebuah mobil. Mobil adalah sebuah objek dalam kehidupan nyata. Namun mobil sendiri terbentuk dari beberapa objek yang lebih kecil seperti roda ban, mesin, jok, dll. Mobil sebagai objek yang merupakan gabungan dari objek yang lebih kecil dibentuk dengan membentuk hubungan antara objek-objek penyusunnya. Begitu juga dengan sebuah program. Objek besar dapat dibentuk dengan menggabungkan beberapa objek-objek dalam bahasa pemrograman. Objek-objek tersebut berkomunikasi dengan saling mengirim pesan kepada objek lain.
Konsep-konsep pemrograman berorientasi objek dalam Java secara umum sama dengan yang digunakan oleh bahasa-bahasa lain. Jadi kebanyakan konsep yang kita bahas juga terdapat dalam bahasa selain Java. Namun, terkadang terdapat perbedaan-perbedaan kecil antara penerapan konsep-konsep tersebut dalam masing-masing bahasa. Perbedaan-perbedaan ini juga akan dijelaskan seiring penjelasan masing-masing konsep.
Bahasa Pemrograman Java terdiri dari :
I. Objek Java
Dalam penjelasan mengenai analogi, kita sudah menyinggung mengenai objek, sebuah objek memiliki dua karakteristik, yaitu state dan behaviour. State adalah keadaan dari sebuah objek, seperti mobil memiliki state warna, model, tahun pembuatan, kondisi, dll. Sedang behaviour adalah kelakuan dari objek tersebut, seperti mobil dapat melaju, membelok, membunyikan klakson, dll. Objek menyimpan statenya dalam satu atau lebih variabel, dan mengimplementasikan behaviournya dengan metode. dapat disimpulkan bahwa objek adalah bagian software yang dibentuk dengan variabel-variabel dan metode-metode yang berhubungan dengan variabel tersebut.dan instance dari class. Jika class secara umum merespresentasikan (template) sebuah object, sebuah instance adala representance nyata dari class itu sendiri.
Pada prinsipnya objek adalah sebuah pointer. Selama tidak bersifat static, programmer dapat melakukan sesuatu hanya terhadap objek tertentu dari kelas.
v Siklus Hidup Objek
Suatu objek di java, terlebih dahulu harus dideklarasikan. Setelah itu mengalami pembuatan, penggunaan, kemudian penghancuran.
v Deklarasi dan Pembuatan/Instansiasi Objek Ilustrasi :
Ilustrasi :
Itentukan variable MC dengan type My Class, dalam Mc masih berupa pointer dan belum menunjukkan alokasi memori. Keyword new diperlukan untuk membentuk objek tersebut sekaligus memanggil constructor. Mc = new My Class.
v Penggunaan Objek
Penggunaan objek sebenarnya untuk memanggil method yang merupakan sifat objek tersebut.
Bentuk umum :
Namaobjek.nama_method([daftar_nilai_parameter]);
Namaobjek.namaAtribute;
v Penghancuran Objek
Teknik yang digunakan java untuk menangani objek yang sudah tidak diperlukan lagi disebut garbage collection. Objek yang sudah tidak diperlukan lagi akan terdeteksi oleh JVM, sehingga secara otomatis dihancurkan oleh garbage collector (bukan oleh programmer).
A. Class
Kelas adalah semacam cetakan, atau template, untuk membuat objek. Ibaratkan sebuah rancangan rumah yang digunakan untuk membangun ratusan rumah. Rumah yang dibangun tersebut adalah objek dari kelas rancangan rumah. Hal ini dapat dilakukan karena semua objek rumah yang dibangun memiliki karakteristik yang sama, sehingga dapat dibuatkan semacam blueprintnya. Tetapi objek-objek yang dibangun tetap akan memiliki bentuk fisik tertentu sendiri-sendiri, seperti variabel dalam sebuah program, atau pintu sebuah objek rumah. Maka kelas dapat didefinisikan kembali menjadi sebuah blueprint, atau prototipe, yang mendefinisikan variabel dan metode yang sama untuk semua objek sejenis.
B. Konstruktor
Pada prinsipnya constructor adalah method yang tidak memiliki return value (secara implisit adalah instant dari kelasnya), hanya saja namanya sama dengan nama kelas, dan dapat diberi modifier akses (public, protected, default, private). Bentuk umum pendefinisian constructor : [modifier] namaConstructor(tipe namaparameter) { constructorBody;
Tujuan constructor dibuat adalah untuk melakukan inisialisasi yang diperlukan objek baru.
C. Objek
Object adalah instance dari class. Jika class secara umum merepresentasikan (template) sebuah object, sebuah instance adalah representasi nyata dari class itu sendiri. Contoh : Dari class Fruit kita dapat membuat object Mangga, Pisang, Apel dan lainlain.
Membuat object
Untuk membuat object, kita menggunakan perintah new dengan sebuah nama class yang akan dibuat sebagai instance dari class tersebut.
String str = new String();
Random r = new Random();
Pegawai p2 = new PEgawai();
Date hari = new Date();
hari adalah object reference dari class Date yang akan digunakanuntuk mengakses class Date. Sedangkan operator new adalah operator yang akan menghasilkan hari sebagai reference ke instance dari class Date().
D. Field ( Atribut )
Attributes merupakan nilai data yang terdapat pada suatu object yang berasal dari class. Attributes merepresentasikan karakteristik dari suatu object.
Contoh : pada Class Fruit terdapat attribute : warna, berat pada object mangga :
warna berisi kuning dan berat misalkan 0.25 kg pada object apel : warna berisi merah dan berat misalkan 0,30 kg.
E. Metode ( Behavior )
Methode merupakan tingkah laku dari suatu objek atau kelas, jika bersifat static berarti tingkah laku semua objek dalam kelas tersebut. Method diletakkan di dalam classbody (sebaiknya tidak diletakkan dalam method lain).
Bentuk umum method :
[modifier] tipe_returnvalue namaMethod(tipe parameter) {methodbody;}
Modifier boleh lebih dari satu (dipisah oleh spasi). Pasangan tipe dan parameter dapat lebih dari satu (dipisah oleh koma).
Bentuk umum method main() sebagai berikut :
[modifier] tipe_return_value main(String args[]) { methodbody}
v Ada tiga sintaks pemanggilan suatu method :
namaMethod([nilaiParamater]namaObjek.namaMethod([nilaiParamater]);
namaKelas.namaMethod([nilaiParamater]);
idak semua member (class, attribute, dan method) dapat diakses method.
Method dasar ada dua jenis yaitu getter() dan setter().
Contoh :
public class Dog
{ private int weight; // information hiding public int getWeight() { //getter retur weight;}public void setWeight(int newWeight) { //setter weight = newWeight;}}
public class TesDog
{public static void main(String[] args) {Dog d = new Dog(); // membuat objek dd.setWeight(42); // input System.out.println(Dog ds weight is +d.getWeight())}
v Overloading terhadap Methode
Maksud overloading disini bukan overloading terhadap operator sebagaimana C++. Overloading disini adalah mendefinisikan dua ata lebih method di dalam kelas yang sama, dengan nama yang sama, namun dengan deklarasi parameter yang berbeda.
Java interpreter mampu membedakan method mana yang dieksekusi dengan mengenali tipe parameter yang dilewatkan ke method, serta mengenali return valuenya. Tugas dari method-method yang dioverloading tersebut berbeda.
II. Pengorganisasian Class dan Objek
A. Hierarki Class
1. Hierarki Class
Langkah awal dalam permodelan sistem adalah memikirkan bagaimana hierarki class yang kita buat. Pembuatan hierarki yang tidak tepat sasaran dapat membuat program tidak efisien dan susah untuk dikembangkan lagi. Dalam java hierarki class dibuat dengan mekanisme pewarisan (inheritance). Class yang mewarisi sifat dari class lain disebut dengan subclass. Sedangkan class yang mewariskan sifat pada class lian disebut dengan superclass. Sifat yang diwariskan adalah field dan method. Jadi semau subclass mempunyai field dan metode yang ada pada superclass masing-masing.
Satu class hanya dapat mempunyai sebuah superclass saja (single inheritance), tetapi dapat mempunyai banyak subclass. Java tidak mengizinkan adanya pewarisan sifat lebih dari satu class atau (multiple inheritance) dengan alasan dapat membingungkan. Namun, hubungan superclass dan subclass dapat terjadi sbb :
Contoh multiple inheritance. Tidak diperkenankan dalam java
Dengan adanya pewarisan, tidak perlu dilakukan definisi ulang kode untuk field dan methode dalam subclass. Dengan, demikian kode program lebih ringkas dan mudah dikerjakan dengan mengedit field dan methode pada superclass, seluruh subclass juga akan mengikuti.
Penentuan hierarki class perlu dipikirkan dengan masak. Jika tidak tepat, dapat menimbulkan kesulitan-kesulitan dimasa mendatang. Kesulitan dapat terjadi jika ada kondisi lapangan yang berubah atau karena program harus dikembangkan lagi untuk mengakomodasi fasilitas baru.
Untuk membuat hierarki class yang baik perlu dipikirkan kategori yang berpotensi menjadi class. Setelah itu dicari hubungan antar class yang merupakan “hubungan adalah” atau “The Is a Relationship”. Misal :
· Karyawan tetap adalah karyawan. Dengan demikian karyawan tetap berpotensi menjadi subclass dari karyawan
· Karyawan tetap bukanlah karyawan lepas. Dengan demikian karyawan tetap dan karyawan lepas tidak dapat mempunyai hubungan subclass/superclass
B. Package ( Paket )
a. Pengertian Package
Package adalah sarana/cara pengelompokkan dan pengorganisasian kelas-kelas dan interface yang sekelompok menjadi suatu unit tunggal dalam library.Package juga mempengaruhi mekanisme hak akses ke kelas-kelas di dalamnya
b. Pengaruh Package terhadap Method main()
Kelas yang mengandung method main() memilki syarat tidak berada dalam suatu package, dan hirarki posisi foldernya di atas package yang diimport.
c. Membuat Package
Ada tiga langkah untuk membuat package :
1. Mendeklarasikan dan memberi nama package.
2. Membuat struktur dan nama direktori yang sesuai dengan struktur dan nama package.
3. Mengkompilasi kelas-kelas sesuai denga packagenya masing-masing.
d. Mendeklarasikan dan Memberi Nama Package
Deklarasi package harus diletakkan pada bagian paling awal (sebelum deklarasi import) dari source code setiap kelas yang dibungkus package tersebut.
Bentuk umum deklarasi package : package namaPackage;
Deklarasi tersebut akan memberitahukan kompilator,
ke library manakah suatu kelas dikompilasi dan dirujuk. Syarat nama package :
1. Diawali huruf kecil
2. Menggambarkan kelas-kelas yang dibungkusnya
3. Harus unik (berbeda dengan nama package standard)
4. Merepresentasikan path dari package tersebut.
5. Harus sama dengan nama direktorinya.
Contoh package standard : java.lang (berisi kelas-kelas fundamental yang sering
digunakan). java.awt dan javax.swing (berisi kelas-kelas untuk membangun aplikasi GUI)
java.io (berisi kelas-kelas untuk proses input output).
e. Membuat Struktur Direktori
Pada langkah ini, buatlah direktori menggunakan file manager (di windows menggunakan explorer) sesuai struktur package dari langkah sebelumnya. Kemudian tempatkan kelas-kelas tersebut ke direktori yang bersesuaian (mirip seperti menyimpan file-file ke dalam folder). Package dapat bersarang di package lain, sehingga dapat dibuat hirarki package.
Bentuk umum pernyataan package multilevel :
package namaPackage1[.namaPackage2[.namaPackage3]];
Contoh hirarki package di JDK :
package java.awt.image;
f. Menggunakan Package
Ada dua cara menggunakan suatu package yaitu :
1. Kelas yang menggunakan berada dalam direktori (package) yang sama dengan kelas-kelas yang digunakan. Maka tidak diperlukan import.
2. Kelas yang menggunakan berada dalam direktori (package) yang berbeda dengan kelas-kelas yang digunakan. Maka pada awal source code di kelas pengguna harus mencantumkan : import namaPackage.NamaKelas; atau import namaPackage.*;
Contoh : import java.text.DecimalFormat; import javax.swing.*;
g. Setting Classpath
.Path hirarki package, didaftarkan sebagai salah satu nilai variabel lingkungan yang bernama Classpath. Classpath diset dengan aturan : berawal dari drive (C:\ atau D:\) sampai dengan satu tingkat sebelum kita mendeklarasikan package.
C. Polimerfisme
Polymorphism artinya bersifat poly morphy (memiliki banyak bentuk). Polimorfisme (polymorphism) erat kaitannya dengan Pewarisan. Polimorfisme adalah pemikiran bahwa objek dinamis suatu kelas dasar dapat berperilaku seperti kelas turunan. Ketika objek tersebut menunjuk kelas dasar, objek tersebut berperilaku seperti kelas dasar, tetapi ketika objek tersebut menunjuk kelas turunan, objek tersebut berperilaku seperti kelas turunan. Dalam hal ini objek dapat memiliki beberapa bentuk, tergantung pada saat itu kelas mana yang ditunjuk. Yang perlu menjadi catatan, bahwa perubahan perilaku ini dari kelas dasar kepada kelas turunan, tidak dapat objek kelas turunan menunjuk kelas dasar.
Polimorfisme dimungkinkan karena adanya mekanisme ikatan dinamis (dynamic binding). Ikatan dinamis adalah ikatan yang terjadi pada saat program dijalankan (run-time). Ikatan yang terjadi pada saat kompile disebut ikatan statis. Ikatan dinamis hanya dapat terjadi antara suatu objek dinamis dengan metode yang dinamis juga, dalam hal ini metode virtualnya (maya).
D. Interface
interface adalah kelas yang paling abstract, yang berisi daftar deklarasi method (seluruh method belum memiliki implementasi).
Arti harfiah dari interface adalah antarmuka, yaitu suatu alat untuk digunakan benda-benda yang tidak terhubung secara langsung untuk berinteraksi. Dalam bahasa pemrograman, interface digunakan oleh berbagai objek yang tidak terhubung untuk saling berinteraksi. Jadi dalam bahasa pemrograman, interface dapat didefinisikan sebagai koleksi definisi metode-metode dan variabel-variabel konstan, namun tanpa implementasi. Implementasi akan dilakukan oleh kelas-kelas yang mengimplements interface ini. Hal ini membuat desain program lebih rapi dan teratur, sehingga dapat mengurangi kompleksitas program. Namun, terkadang hal ini dapat menjadi suatu halangan yang tidak menyenangkan, yaitu saat kita membutuhkan suatu kelas yang memiliki sifat-sifat dari dua atau lebih kelas lain. Pada masalah seperti ini, interface dapat memberikan alternatif jalan keluar.
Dengan adanya interface maka beberapa kelas akan dapat menangani interaksi yang sama namun dengan behaviour yang bisa berbeda. Misalnya beberapa kelas mengimplementasi sebuah interface yang sama, maka kelas-kelas tersebut dapat menangani interaksi sesuai interface tersebut, namun tiap kelas dapat memiliki implementasi yang berbeda-beda.
Begitu juga bila sebuah kelas mengimplementasi banyak interface, maka kelas tersebut akan dapat menangani interaksi-interaksi sesuai salah satu interface yang diimplement oleh kelas tersebut. Namun, kelas tersebut harus mengimplementasi sendiri behaviournya. Di sinilah letak perbedaan penggunaan interface dengan multiple inheritance. Dalam multiple inheritance, layaknya single inheritance, subkelas tidak harus mengimplementasikan sendiri behaviournya karena secara default kelas tersebut akan mengikuti behaviour superkelasnya.
E. Hubungan Antara Objek
Antara objek yang satu dengan yang lain dapat mempunyai hubungan (relationship). Hubungan ini akan terlihat dari metode-metode objek itu sendiri. Misalnya, metode pada class A bisa jadi menggunakan objek dari class B sebagai masukan atau hasil metode dari class A digunakan sebagai masukan pada metode class B.
Dalam hubungan antar objek, dikenal istilah association (asosiasi) dan link (tautan)
· Association (asosiasi) merupakan hubungan potensial yang dapat terjadi antara objek yang satu dengan objek yang lainnya. Jadi, hubungan ini belum terjadi, namun bisa terjadi sewaktu-waktu.
· Link (tautan) merupakan hubungan yang sedang berlangsung antar objek.
Sedangkan jika dilihat dari jumlahnya, hubungan antar objek dapat dibagi menjadi :
· One to One, terjadi jika objek X hanya bisa mempunyai sebuah hubungan dengan objek Y
Contoh : hubungan antar objek mahasiswa dan objek nilai transkrip. Satu orang mahasiswa hanya bisa mempunyai satu nilai transkrip.
· One ot Many, terjadi jika objek X dapat memiliki hubungan dengan beberapa objek Y.
Contoh : hubungan antar objek mahasiswa dan objek jurusan satu orang mahasiswa hanya bisa menjadi bagian dari satu jurusan saja. Namun, satu jurusan bisa terdiri atas banyak mahasiswa.
· Many to Many, terjadi jika objek X dapat memiliki hubungan dengan beberapa objek Y dan sebaliknya.
Contoh : hubungan antar objek mahasiswa dan objek dosen, dosen dapat mengajar pada satu mahasiswa atau lebih. Demikian juga sebaliknya, mahasiswa dapat diajar oleh satu dosen atau lebih.
MAKALAH
PEMROGRAMAN BERORIENTASI OBJEK
Oleh :
KELAS B
SALMA : 91001067
YUSNIAR : 91001066
SITTI MARYAM : 91001075
AKADEMIK MANAJEMEN INFORMATIKA DAN KOMPUTER
MILAN DHARMA
BAU-BAU
2011
KATA PENGANTAR
Puji syukur kehadirat Allah SWT, rahmat, hidayah serta hidayahnya, kami dapat menyelesaikan makalah ” PENGENALAN BAHASA PEMROGRAMAN JAVA
(OOP)”
Sholawat serta semoga akan selalu tercurahkan kepada Rasulullah SAW, yang telah membawa kita dari jalan kegelapan menuju jalan yang terang benderang, dan yang kita nantikan syafa’atnya di dunia dan akhirat.
Kami sadar bahwa dirinya hanyalah manusia biasanya yang pastinya mempunyai banyak kesalahan, tentunya dalam makalah ini terdapat banyak kesalahan. Untuk itu kami mengharap kritik dan saran yang membangun demi kesempurnaan pengembangan berikutnya.
Semoga makalah ini dapat bermanfaat bagi mahasiswa Teknik Informatika khususnya dan untuk mata kuliah PEMROGRAMAN BERORIENTASI OBJEK.
BauBau, 16 Agustus 2011
Penyusun
BAB I
PENDAHULUAN
A. Latar Belakang Masalah
Latar Belakang Kami menulis Makalah ini, karena untuk memperdalam pengetahuan mahasiswa dan mahasiswi tentang bagaimana Bahasa Pemrograman Dalam Java .
B. Tujuan
Makalah ini membahas tentang Bahasa Pemrograman dalam Java, adapun tujuan dari Makalah ini yaitu:
Mengetahui tentang bahasa pemrograman Java yang terdiri dari Objek Java dan Pengorganisasian Class dan Objek serta mengetahui bagian-bagian yang terdapat didalamnya.
C. Metode Pengumpulan Data
Makalah ini dapat tersusun dengan cara mengumpulkan data-data atau Informasi-informasi baru (update) pada internet.
BAB II
PEMBAHASAN
Pengenalan Bahasa Pemrograman Java
Pemrograman berorientasi objek diciptakan untuk mempermudah pengembangan program dengan cara mengikuti model yang telah ada dalam kehidupan nyata. Dalam paradigma ini, sesuai dengan model kehidupan nyata, segala bagian (entiti) dari suatu permasalahan adalah objek. Objek-objek ini kemudian juga dapat berupa gabungan dari beberapa objek yang lebih kecil. Sebagai contoh, tengoklah sebuah mobil. Mobil adalah sebuah objek dalam kehidupan nyata. Namun mobil sendiri terbentuk dari beberapa objek yang lebih kecil seperti roda ban, mesin, jok, dll. Mobil sebagai objek yang merupakan gabungan dari objek yang lebih kecil dibentuk dengan membentuk hubungan antara objek-objek penyusunnya. Begitu juga dengan sebuah program. Objek besar dapat dibentuk dengan menggabungkan beberapa objek-objek dalam bahasa pemrograman. Objek-objek tersebut berkomunikasi dengan saling mengirim pesan kepada objek lain.
Konsep-konsep pemrograman berorientasi objek dalam Java secara umum sama dengan yang digunakan oleh bahasa-bahasa lain. Jadi kebanyakan konsep yang kita bahas juga terdapat dalam bahasa selain Java. Namun, terkadang terdapat perbedaan-perbedaan kecil antara penerapan konsep-konsep tersebut dalam masing-masing bahasa. Perbedaan-perbedaan ini juga akan dijelaskan seiring penjelasan masing-masing konsep.
Bahasa Pemrograman Java terdiri dari :
I. Objek Java
Dalam penjelasan mengenai analogi, kita sudah menyinggung mengenai objek, sebuah objek memiliki dua karakteristik, yaitu state dan behaviour. State adalah keadaan dari sebuah objek, seperti mobil memiliki state warna, model, tahun pembuatan, kondisi, dll. Sedang behaviour adalah kelakuan dari objek tersebut, seperti mobil dapat melaju, membelok, membunyikan klakson, dll. Objek menyimpan statenya dalam satu atau lebih variabel, dan mengimplementasikan behaviournya dengan metode. dapat disimpulkan bahwa objek adalah bagian software yang dibentuk dengan variabel-variabel dan metode-metode yang berhubungan dengan variabel tersebut.dan instance dari class. Jika class secara umum merespresentasikan (template) sebuah object, sebuah instance adala representance nyata dari class itu sendiri.
Pada prinsipnya objek adalah sebuah pointer. Selama tidak bersifat static, programmer dapat melakukan sesuatu hanya terhadap objek tertentu dari kelas.
v Siklus Hidup Objek
Suatu objek di java, terlebih dahulu harus dideklarasikan. Setelah itu mengalami pembuatan, penggunaan, kemudian penghancuran.
v Deklarasi dan Pembuatan/Instansiasi Objek Ilustrasi :
Ilustrasi :
Itentukan variable MC dengan type My Class, dalam Mc masih berupa pointer dan belum menunjukkan alokasi memori. Keyword new diperlukan untuk membentuk objek tersebut sekaligus memanggil constructor. Mc = new My Class.
v Penggunaan Objek
Penggunaan objek sebenarnya untuk memanggil method yang merupakan sifat objek tersebut.
Bentuk umum :
Namaobjek.nama_method([daftar_nilai_parameter]);
Namaobjek.namaAtribute;
v Penghancuran Objek
Teknik yang digunakan java untuk menangani objek yang sudah tidak diperlukan lagi disebut garbage collection. Objek yang sudah tidak diperlukan lagi akan terdeteksi oleh JVM, sehingga secara otomatis dihancurkan oleh garbage collector (bukan oleh programmer).
A. Class
Kelas adalah semacam cetakan, atau template, untuk membuat objek. Ibaratkan sebuah rancangan rumah yang digunakan untuk membangun ratusan rumah. Rumah yang dibangun tersebut adalah objek dari kelas rancangan rumah. Hal ini dapat dilakukan karena semua objek rumah yang dibangun memiliki karakteristik yang sama, sehingga dapat dibuatkan semacam blueprintnya. Tetapi objek-objek yang dibangun tetap akan memiliki bentuk fisik tertentu sendiri-sendiri, seperti variabel dalam sebuah program, atau pintu sebuah objek rumah. Maka kelas dapat didefinisikan kembali menjadi sebuah blueprint, atau prototipe, yang mendefinisikan variabel dan metode yang sama untuk semua objek sejenis.
B. Konstruktor
Pada prinsipnya constructor adalah method yang tidak memiliki return value (secara implisit adalah instant dari kelasnya), hanya saja namanya sama dengan nama kelas, dan dapat diberi modifier akses (public, protected, default, private). Bentuk umum pendefinisian constructor : [modifier] namaConstructor(tipe namaparameter) { constructorBody;
Tujuan constructor dibuat adalah untuk melakukan inisialisasi yang diperlukan objek baru.
C. Objek
Object adalah instance dari class. Jika class secara umum merepresentasikan (template) sebuah object, sebuah instance adalah representasi nyata dari class itu sendiri. Contoh : Dari class Fruit kita dapat membuat object Mangga, Pisang, Apel dan lainlain.
Membuat object
Untuk membuat object, kita menggunakan perintah new dengan sebuah nama class yang akan dibuat sebagai instance dari class tersebut.
String str = new String();
Random r = new Random();
Pegawai p2 = new PEgawai();
Date hari = new Date();
hari adalah object reference dari class Date yang akan digunakanuntuk mengakses class Date. Sedangkan operator new adalah operator yang akan menghasilkan hari sebagai reference ke instance dari class Date().
D. Field ( Atribut )
Attributes merupakan nilai data yang terdapat pada suatu object yang berasal dari class. Attributes merepresentasikan karakteristik dari suatu object.
Contoh : pada Class Fruit terdapat attribute : warna, berat pada object mangga :
warna berisi kuning dan berat misalkan 0.25 kg pada object apel : warna berisi merah dan berat misalkan 0,30 kg.
E. Metode ( Behavior )
Methode merupakan tingkah laku dari suatu objek atau kelas, jika bersifat static berarti tingkah laku semua objek dalam kelas tersebut. Method diletakkan di dalam classbody (sebaiknya tidak diletakkan dalam method lain).
Bentuk umum method :
[modifier] tipe_returnvalue namaMethod(tipe parameter) {methodbody;}
Modifier boleh lebih dari satu (dipisah oleh spasi). Pasangan tipe dan parameter dapat lebih dari satu (dipisah oleh koma).
Bentuk umum method main() sebagai berikut :
[modifier] tipe_return_value main(String args[]) { methodbody}
v Ada tiga sintaks pemanggilan suatu method :
namaMethod([nilaiParamater]namaObjek.namaMethod([nilaiParamater]);
namaKelas.namaMethod([nilaiParamater]);
idak semua member (class, attribute, dan method) dapat diakses method.
Method dasar ada dua jenis yaitu getter() dan setter().
Contoh :
public class Dog
{ private int weight; // information hiding public int getWeight() { //getter retur weight;}public void setWeight(int newWeight) { //setter weight = newWeight;}}
public class TesDog
{public static void main(String[] args) {Dog d = new Dog(); // membuat objek dd.setWeight(42); // input System.out.println(Dog ds weight is +d.getWeight())}
v Overloading terhadap Methode
Maksud overloading disini bukan overloading terhadap operator sebagaimana C++. Overloading disini adalah mendefinisikan dua ata lebih method di dalam kelas yang sama, dengan nama yang sama, namun dengan deklarasi parameter yang berbeda.
Java interpreter mampu membedakan method mana yang dieksekusi dengan mengenali tipe parameter yang dilewatkan ke method, serta mengenali return valuenya. Tugas dari method-method yang dioverloading tersebut berbeda.
II. Pengorganisasian Class dan Objek
A. Hierarki Class
1. Hierarki Class
Langkah awal dalam permodelan sistem adalah memikirkan bagaimana hierarki class yang kita buat. Pembuatan hierarki yang tidak tepat sasaran dapat membuat program tidak efisien dan susah untuk dikembangkan lagi. Dalam java hierarki class dibuat dengan mekanisme pewarisan (inheritance). Class yang mewarisi sifat dari class lain disebut dengan subclass. Sedangkan class yang mewariskan sifat pada class lian disebut dengan superclass. Sifat yang diwariskan adalah field dan method. Jadi semau subclass mempunyai field dan metode yang ada pada superclass masing-masing.
Satu class hanya dapat mempunyai sebuah superclass saja (single inheritance), tetapi dapat mempunyai banyak subclass. Java tidak mengizinkan adanya pewarisan sifat lebih dari satu class atau (multiple inheritance) dengan alasan dapat membingungkan. Namun, hubungan superclass dan subclass dapat terjadi sbb :
Contoh multiple inheritance. Tidak diperkenankan dalam java
Dengan adanya pewarisan, tidak perlu dilakukan definisi ulang kode untuk field dan methode dalam subclass. Dengan, demikian kode program lebih ringkas dan mudah dikerjakan dengan mengedit field dan methode pada superclass, seluruh subclass juga akan mengikuti.
Penentuan hierarki class perlu dipikirkan dengan masak. Jika tidak tepat, dapat menimbulkan kesulitan-kesulitan dimasa mendatang. Kesulitan dapat terjadi jika ada kondisi lapangan yang berubah atau karena program harus dikembangkan lagi untuk mengakomodasi fasilitas baru.
Untuk membuat hierarki class yang baik perlu dipikirkan kategori yang berpotensi menjadi class. Setelah itu dicari hubungan antar class yang merupakan “hubungan adalah” atau “The Is a Relationship”. Misal :
· Karyawan tetap adalah karyawan. Dengan demikian karyawan tetap berpotensi menjadi subclass dari karyawan
· Karyawan tetap bukanlah karyawan lepas. Dengan demikian karyawan tetap dan karyawan lepas tidak dapat mempunyai hubungan subclass/superclass
B. Package ( Paket )
a. Pengertian Package
Package adalah sarana/cara pengelompokkan dan pengorganisasian kelas-kelas dan interface yang sekelompok menjadi suatu unit tunggal dalam library.Package juga mempengaruhi mekanisme hak akses ke kelas-kelas di dalamnya
b. Pengaruh Package terhadap Method main()
Kelas yang mengandung method main() memilki syarat tidak berada dalam suatu package, dan hirarki posisi foldernya di atas package yang diimport.
c. Membuat Package
Ada tiga langkah untuk membuat package :
1. Mendeklarasikan dan memberi nama package.
2. Membuat struktur dan nama direktori yang sesuai dengan struktur dan nama package.
3. Mengkompilasi kelas-kelas sesuai denga packagenya masing-masing.
d. Mendeklarasikan dan Memberi Nama Package
Deklarasi package harus diletakkan pada bagian paling awal (sebelum deklarasi import) dari source code setiap kelas yang dibungkus package tersebut.
Bentuk umum deklarasi package : package namaPackage;
Deklarasi tersebut akan memberitahukan kompilator,
ke library manakah suatu kelas dikompilasi dan dirujuk. Syarat nama package :
1. Diawali huruf kecil
2. Menggambarkan kelas-kelas yang dibungkusnya
3. Harus unik (berbeda dengan nama package standard)
4. Merepresentasikan path dari package tersebut.
5. Harus sama dengan nama direktorinya.
Contoh package standard : java.lang (berisi kelas-kelas fundamental yang sering
digunakan). java.awt dan javax.swing (berisi kelas-kelas untuk membangun aplikasi GUI)
java.io (berisi kelas-kelas untuk proses input output).
e. Membuat Struktur Direktori
Pada langkah ini, buatlah direktori menggunakan file manager (di windows menggunakan explorer) sesuai struktur package dari langkah sebelumnya. Kemudian tempatkan kelas-kelas tersebut ke direktori yang bersesuaian (mirip seperti menyimpan file-file ke dalam folder). Package dapat bersarang di package lain, sehingga dapat dibuat hirarki package.
Bentuk umum pernyataan package multilevel :
package namaPackage1[.namaPackage2[.namaPackage3]];
Contoh hirarki package di JDK :
package java.awt.image;
f. Menggunakan Package
Ada dua cara menggunakan suatu package yaitu :
1. Kelas yang menggunakan berada dalam direktori (package) yang sama dengan kelas-kelas yang digunakan. Maka tidak diperlukan import.
2. Kelas yang menggunakan berada dalam direktori (package) yang berbeda dengan kelas-kelas yang digunakan. Maka pada awal source code di kelas pengguna harus mencantumkan : import namaPackage.NamaKelas; atau import namaPackage.*;
Contoh : import java.text.DecimalFormat; import javax.swing.*;
g. Setting Classpath
.Path hirarki package, didaftarkan sebagai salah satu nilai variabel lingkungan yang bernama Classpath. Classpath diset dengan aturan : berawal dari drive (C:\ atau D:\) sampai dengan satu tingkat sebelum kita mendeklarasikan package.
C. Polimerfisme
Polymorphism artinya bersifat poly morphy (memiliki banyak bentuk). Polimorfisme (polymorphism) erat kaitannya dengan Pewarisan. Polimorfisme adalah pemikiran bahwa objek dinamis suatu kelas dasar dapat berperilaku seperti kelas turunan. Ketika objek tersebut menunjuk kelas dasar, objek tersebut berperilaku seperti kelas dasar, tetapi ketika objek tersebut menunjuk kelas turunan, objek tersebut berperilaku seperti kelas turunan. Dalam hal ini objek dapat memiliki beberapa bentuk, tergantung pada saat itu kelas mana yang ditunjuk. Yang perlu menjadi catatan, bahwa perubahan perilaku ini dari kelas dasar kepada kelas turunan, tidak dapat objek kelas turunan menunjuk kelas dasar.
Polimorfisme dimungkinkan karena adanya mekanisme ikatan dinamis (dynamic binding). Ikatan dinamis adalah ikatan yang terjadi pada saat program dijalankan (run-time). Ikatan yang terjadi pada saat kompile disebut ikatan statis. Ikatan dinamis hanya dapat terjadi antara suatu objek dinamis dengan metode yang dinamis juga, dalam hal ini metode virtualnya (maya).
D. Interface
interface adalah kelas yang paling abstract, yang berisi daftar deklarasi method (seluruh method belum memiliki implementasi).
Arti harfiah dari interface adalah antarmuka, yaitu suatu alat untuk digunakan benda-benda yang tidak terhubung secara langsung untuk berinteraksi. Dalam bahasa pemrograman, interface digunakan oleh berbagai objek yang tidak terhubung untuk saling berinteraksi. Jadi dalam bahasa pemrograman, interface dapat didefinisikan sebagai koleksi definisi metode-metode dan variabel-variabel konstan, namun tanpa implementasi. Implementasi akan dilakukan oleh kelas-kelas yang mengimplements interface ini. Hal ini membuat desain program lebih rapi dan teratur, sehingga dapat mengurangi kompleksitas program. Namun, terkadang hal ini dapat menjadi suatu halangan yang tidak menyenangkan, yaitu saat kita membutuhkan suatu kelas yang memiliki sifat-sifat dari dua atau lebih kelas lain. Pada masalah seperti ini, interface dapat memberikan alternatif jalan keluar.
Dengan adanya interface maka beberapa kelas akan dapat menangani interaksi yang sama namun dengan behaviour yang bisa berbeda. Misalnya beberapa kelas mengimplementasi sebuah interface yang sama, maka kelas-kelas tersebut dapat menangani interaksi sesuai interface tersebut, namun tiap kelas dapat memiliki implementasi yang berbeda-beda.
Begitu juga bila sebuah kelas mengimplementasi banyak interface, maka kelas tersebut akan dapat menangani interaksi-interaksi sesuai salah satu interface yang diimplement oleh kelas tersebut. Namun, kelas tersebut harus mengimplementasi sendiri behaviournya. Di sinilah letak perbedaan penggunaan interface dengan multiple inheritance. Dalam multiple inheritance, layaknya single inheritance, subkelas tidak harus mengimplementasikan sendiri behaviournya karena secara default kelas tersebut akan mengikuti behaviour superkelasnya.
E. Hubungan Antara Objek
Antara objek yang satu dengan yang lain dapat mempunyai hubungan (relationship). Hubungan ini akan terlihat dari metode-metode objek itu sendiri. Misalnya, metode pada class A bisa jadi menggunakan objek dari class B sebagai masukan atau hasil metode dari class A digunakan sebagai masukan pada metode class B.
Dalam hubungan antar objek, dikenal istilah association (asosiasi) dan link (tautan)
· Association (asosiasi) merupakan hubungan potensial yang dapat terjadi antara objek yang satu dengan objek yang lainnya. Jadi, hubungan ini belum terjadi, namun bisa terjadi sewaktu-waktu.
· Link (tautan) merupakan hubungan yang sedang berlangsung antar objek.
Sedangkan jika dilihat dari jumlahnya, hubungan antar objek dapat dibagi menjadi :
· One to One, terjadi jika objek X hanya bisa mempunyai sebuah hubungan dengan objek Y
Contoh : hubungan antar objek mahasiswa dan objek nilai transkrip. Satu orang mahasiswa hanya bisa mempunyai satu nilai transkrip.
· One ot Many, terjadi jika objek X dapat memiliki hubungan dengan beberapa objek Y.
Contoh : hubungan antar objek mahasiswa dan objek jurusan satu orang mahasiswa hanya bisa menjadi bagian dari satu jurusan saja. Namun, satu jurusan bisa terdiri atas banyak mahasiswa.
· Many to Many, terjadi jika objek X dapat memiliki hubungan dengan beberapa objek Y dan sebaliknya.
Contoh : hubungan antar objek mahasiswa dan objek dosen, dosen dapat mengajar pada satu mahasiswa atau lebih. Demikian juga sebaliknya, mahasiswa dapat diajar oleh satu dosen atau lebih.
Posting Komentar