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
READ MORE - Negara - Negara yang Sholat Id 30 Agustus 2011 Read more...

Penetapan 1 Syawal Indonesia Ditertawakan Negara-negara Islam

Senyum indah dipagi hari. Suasana sejuk menemani matahari keluar dari peraduannya. Kegiatan di pagi hari, sebagai ganti konsumsi koran untuk menimba informasi kami peroleh dari dunia maya, ada judul artikel yang menggelitik di www.voa-islam.com. "Penetapan 1 Syawal Indonesia Ditertawakan Negara-negara Islam". Berikut isi artikel tersebut :  

VOA-ISLAM.COM – Keputusan sidang itsbat Pemerintah RI yang menetapkan 1 Syawal jatuh pada hari Rabu 31 Agustus 2011, ditertawakan dunia karena nyeleneh dan menyelisihi keputusan negara-negara Arab yang berlebaran hari Selasa 30 Agustus 2011. 

Hal itu diungkapkan oleh H. Djoko Susilo, Dutabesar RI untuk Switzerland dan Liechtenstein. Tanpa bermaksud mempersoalkan hasil sidang itsbat penetepan 1 Syawal 1432 H yang dilakukan Kemenag RI, Djoko mengatakan dirinya kesulitan menjawab pertanyaan dari para koleganya, dutabesar negara-negara anggota Organisasi Konferensi Islam (OKI). “Sekarang kita ditertawaakan dunia. Saya susah sekali menjawab pertanyaan teman-teman sejawat dubes negara-negara OKI. Kita kok nyeleneh sendiri (melaksanakan Idul Fitri pada hari Rabu, ed.),” ujar Djoko kepada RMOL, Selasa, (30/8/2011). 

Berbeda dengan Indonesia, hampir semua negara di kawasan Eropa dan Timur Tengah menggelar shalat Idul Fitri pada hari Selasa. Umumnya mereka menggunakan metode hisab atau perhitungan yang diperkuat dengan metode rukyat atau pengamatan kemunculan hilal. Penggabungan kedua metode ini membuat perhitungan mengenai awal bulan Syawal menjadi lebih akurat. Untuk memuaskan si penanya, Djoko mengatakan bahwa penentuan tanggal 1 Syawal itu untuk Indonesia. Adapun masyarakat Indonesia yang berada di luar negeri diminta taat dan patuh pada keputusan Islamic Center setempat. Djoko khawatir banyak pihak di Indonesia yang terjebak pada pendekatan kuno di masa lalu. Sementara di Eropa, masyarakat umumnya percaya pada kemampuan teknologi. Toh, bukankah manusia sudah sampai ke bulan? 

Mantan anggota DPR RI dari Partai Amanat Nasional (PAN) itu mengingatkan bahwa Islam terkait erat dengan iman, ilmu dan amal. Islam adalah agama yang mengagungkan ilmu pengetahuan sebagai bagian dari keyakinan akan ketauhidan Tuhan Yang Maha Kuasa. “Jadi kalau sekarang sudah ada teknologi tinggi mestinya soal mengintip hilal ya pakai teknologi,” ujarnya lagi. Di masa depan, Djoko berharap agar pemerintah melalui Kementerian Agama bersikap netral dalam penentuan 1 Syawal ini. Posisi pemerintah idealnya, menurut dia, adalah sebagai fasilitator yang tak perlu ikut campur tangan, apalagi memberikan stempel berupa keputusan. “Sebaiknya hal seperti ini biar diurus MUI dan ormas Islam saja tanpa dicampuri birokrat. Ndak bagus kesannya,” pungkas Djoko. 

Sebagaimana diberitakan voa-islam.com sebelumnya, terjadi perbedaan pendapat dalam penetapan 1 Syawal 1432 Hijriyah di tanah air, setelah Pemerintah dalam sidang itsbatnya menganulir hasil rukyat dan memutuskan Idul Fitri 1 Syawal jatuh pada hari Rabu (31/8/2011). Tim rukyat Kementerian Agama (Kemenag) di Pantai Kartini Jepara dan Cakung Jakrta Timur, dalam kesakaian di bawah sumpah, menyatakan sudah melihat hilal pada Senin sore (29/8/2011), yang berarti Selasa sudah masuk 1 Syawal. Hasil pantauan Tim Rukyat itu sesuai dengan pantauan Tim Rukyat di negara-negara Arab. Arab Saudi memastikan Hari Raya Idul Fitri atau 1 Syawal 1432 Hijriah jatuh pada hari Selasa, 30 Agustus 2011, karena pada Senin, (29/8/2011), hilal sudah terlihat. Setelah Arab Saudi mengumumkan jatuhnya 1 Syawal 1432 Hijriah, negara-negara yang lain pun mengikutinya, di antaranya: Mesir, Uni Emirat Arab, dan Qatar. Beberapa negara tetangga seperti Malaysia, Singapura dan Brunei Darussalam juga berlebaran Selasa. 

Sebagian umat Islam di tanah air belebaran Selasa karena mengikuti hasil rukyat –baik rukyat lokal maupun global– dan hisab. Kaum Muslimin yang berlebaran hari Selasa ini berbarengan dengan Arab Saudi dan dunia Arab lainnya. Beberapa kalangan yang berlebaran Selasa antara lain: Muhammadiyah, Dewan Dakwah Islamiyah Indonesia (DDII), Jama'ah Anshorut Tauhid (JAT), Front Pembela Islam (FPI), Majelis Mujahidin Indonesia (MMI), Jum'iyat An-Najat, Hizbut Tahrir Indonesia (HTI), Pesantren Gontor, dan sebagian warga Nahdlatul Ulama (NU) yang mengakui rukyat. Sementara kalangan yang berlebaran Rabu 31 Agustus 2011 mengikuti keputusan pemerintah, antara lain Nahdlatul Ulama, PERSIS, Ahmadiyah, Lembaga Dakwah Islam Indonesia (LDII), dan lain sebagainya. [ahana/rmo] artikel2 yang lain bisa dikunjungi situsnya :) http://www.voa-islam.com

READ MORE - Penetapan 1 Syawal Indonesia Ditertawakan Negara-negara Islam Read more...

Belajar java untuk pemula

Belajar java untuk pemula

Tahap 1>>menampilan SelamatDatang

    Program komputer yaitu rangkaian instruksi yang diberikan agar komputer
dapat bekerja. Bahasa pemrograman berbeda dengan bahasa manusia, karena komputer
membutuhkan aturan yang lebih baku (sintaks bahasa). Sintaks bahasa yaitu aturan-
aturan yang diperbolehkan ataupun tidak didalam penulisan bahasa pemrograman.
Sintaks bahasa pemrograman ditentukan berdasarkan apa yang bisa dilakukan oleh
perangkat komputer, misalnya loop (perulangan), cabang (branch), ataupun fungsi.
Hanya program dengan sintaks yang benar yang dapat dikompilasi atau diinterpretasi
yang pada akhirnya bisa dijalankan di komputer. Kompiler akan memberikan pesan
kesalahan apabila ada kesalahan dalam sintaks sehingga kita bisa memperbaikinya.
  
    Jika kita ingin program yang kita buat berjalan sesuai dengan yang kita
inginkan. Artinya program tersebut harus benar secara logika. Program yang benar
secara logika disebut memiliki semantik yang benar. Disitus ini kita mencoba
menghadirkan tentang pembelajaran pendekatan sintaks dan semantik dari setiap bahasa
pemrograman Java. Sintaks mudah dihafal, tetapi semantik lebih seperti perasaan.

   1. Melihat lebih dekat "SelamatDatang"
      Aplikasi selamatDatang memiliki 4 komponen, yaitu:
          # definisi paket (package)
          # komentar
          # definisi kelas (class)
          # metode main

         contoh program:
      
            package selamatdatang;

            public class SelamatDatang {

                /**
                 * @param args
                 */
                public static void main(String[] args) {
                    // TODO Auto-generated method stub
                    System.out.println("Selamat Datang!");
                }

            }


    Mari kita bahas satu persatu;
       # Definisi paket (package)
      
        package selamatdatang;


          Package dalam Java merupakan kumpulan dari berbagai kode yang terangkum
              dalam satu paket. Untuk memudahkan penulisan dan pembagian logika suatu
              program, satu paket terbagi menjadi beberapa berkas (file) dimana setiap
              file memiliki fungsi atau tugas yang sangat khusus, misalnya satu file
          berfungsi untuk mendeklarasikan konstanta dan kelas, sementara file yang
              lain berisi implementasi kelas dan prosedurnya.

              Pada contoh aplikasi SelamatDatang diatas, paket ini hanya berisi satu buah
              file yang isinya terdiri dari satu kelas dan satu metode. Definisi paket
              tidak selalu diperlukan, tetapi hal ini merupakan kebiasaan baik untuk
              melatih kita berfikir secara logis dan sistematis.

       # Komentar

            /**
         * @param args
         */
            // TODO Auto-generated method stub

       
         Komentar tidak akan diproses oleh kompiler tetapi berguna bagi programmer
             lain. Bahasa Java memiliki 3 jenis komentar:
                 1) /* text */ — Compiler akan mengabaikan kata kata antara /* dan */
         2) /** documentation */ — Ini merupakan komentar yang dipergunakan
            khusus untuk dokumentasi. Kompiler akan mengabaikan komentar dari
            /* hingga */. Alat bantu javadoc akan memproses komentar dokumentasi
            untuk membuat dokumentasi secara otomatis dari sumber program.
         3) // text — Kompiler akan mengabaikan segala sesuatu dari // hingga akhir baris


       # Definisi Kelas
        public class SelamatDatang {
                ...
        }
      
         Kelas merupakan bagian integral dari bahasa Java karena Java merupakan
         bahasa berorientasi obyek. Setiap aplikasi harus terdiri dari satu kelas.
         Disini kita definisikan kelas SelamatDatang sebagai kelas utama.

  
       # Metode Main
         Dalam bahasa pemrograman Java, setiap aplikasi harus memiliki satu buah
             metode main yang bentuknya seperti berikut:
  
                 public static void main(String[] args) {
                ...
            }        
       
             Metode main mirip dengan fungsi main pada bahasa C/C++ yang berfungsi
         sebagai pintu gerbang dimulanya suatu program. Metode main dapat dipanggil
             dengan menyertakan variabel, baik hanya satu variabel, banyak variabel atau
             bahkan tidak ada sama sekali.

       
    Tahapan terakhir adalah perintah untuk menampilkan Selamat Datang.

        System.out.println("Selamat Datang!")

    Perintah tersebut menggunakan pustaka inti Java, yaitu kelas Sistem.





Daftar Pustaka:
     http://java.lyracc.com/belajar/java-untuk-pemula/melihat-lebih-dekat-“selamatdatang
READ MORE - Belajar java untuk pemula Read more...

  ©Template by Blogger. Design By Tips dan Trik Blog