java

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 blueprint­nya. 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 d􀂶s 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 :

Karyawan Kontrak

Karyawan Keuangan


Akuntan Kontrak


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 blueprint­nya. 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 d􀂶s 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 :

Karyawan Kontrak

Karyawan Keuangan


Akuntan Kontrak


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.

java

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 blueprint­nya. 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 d􀂶s 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 :

Karyawan Kontrak

Karyawan Keuangan


Akuntan Kontrak


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 blueprint­nya. 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 d􀂶s 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 :

Karyawan Kontrak

Karyawan Keuangan


Akuntan Kontrak


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.

java

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 blueprint­nya. 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 d􀂶s 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 :

Karyawan Kontrak

Karyawan Keuangan


Akuntan Kontrak


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 blueprint­nya. 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 d􀂶s 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 :

Karyawan Kontrak

Karyawan Keuangan


Akuntan Kontrak


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.

java

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 blueprint­nya. 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 d􀂶s 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 :

Karyawan Kontrak

Karyawan Keuangan


Akuntan Kontrak


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 blueprint­nya. 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 d􀂶s 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 :

Karyawan Kontrak

Karyawan Keuangan


Akuntan Kontrak


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.

lucu

lucu
ambe
Diberdayakan oleh Blogger.

Kontributor

Pengikut

Selasa, 13 September 2011

Negara - Negara yang Sholat Id 30 Agustus 2011

Yogyakarta- Dalam materi yang diberikan wakil ketua Majelis Tarjih dan Tajdid PP Muhammadiyah Oman Faturrahman, beberapa negara yang menetapkan 1 Syawal 1432 H pada tanggal 30 Agustus 2011 telah dapat diprediksi sebelumnya. Dalam perhitungan hisab wujudul hilal yang dianut Muhammadiyah, Negara-negara seperti Malaysia, Thailand, Australia, Arab Saudi, Mesir, sebenarnya hilal telah wujud pada tanggal 29 Agustus 2011, untuk itu apabila menggunakan metode yang tidak jauh dari metode wujudul hilal, maka 1 syawal dipastikam esoknya 30 Agustus 2011. Hanya untuk kasus Arab Saudi ada sedikit perbedaan, pada garis yang membatasi wujudnya hilal, membelah antara kota mekah dan madinah, “Untuk Mekah menurut garis tersebut Hilal sudah wujud, dan sebaliknya untuk kota Madinah Hilal malah belum wujud, dan hal tersebut memang dikarenakan garis bulan tersebut memang tidak berbentuk lurus vertical,” jelasnya.

Berikut beberapa negara yang telah menetapkan 1 Syawal 1432 H pada tanggal 30 Agustus 2011; Arab Saudi, Malaysia, Thailand, Jepang, New York, California, Hawaii, London, Belanda, Mesir, Qatar, Uni Emirat Arab, Bahrain, Australia, Yordania, Rusia, Turki, Irlandia, Hong Kong. (Muhammadiyah.Or.Id) 

by:donker

0 komentar:

Posting Komentar

  ©Template by Blogger. Design By Tips dan Trik Blog