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

Rabu, 24 Agustus 2011

Komunikasi Data & Keamanan Serta Pengendalian Dalam Sistem Informasi

Selasa, 23 November 2010
Komunikasi Data & Keamanan Serta Pengendalian Dalam Sistem Informasi

Pendahuluan
Ketika skala operasi bisnis berkembang, timbul kebutuhan untuk mengumpulkan data dan menyebarkan keputusan di area geografis yang tersebar luas. Komunikasi data memungkinkan komputer melaksanakan tugasnya. Model dasar yang menggambarkan komunikasi antara manusia juga dapat berfungsi sebagai model untuk komunikasi data. Kemampuan untuk mengakses dan menyediakan informasi secara cepat dan akurat menjadi sangat esensial bagi sebuah organisasi, baik yang berupa organisasi komersial (perusahaan), perguruan tinggi, lembaga pemerintahan, maupun individual (pribadi). Semakin kompleksnya sistem yang digunakan, seperti semakin besarnya program (source code) yang digunakan sehingga semakin besar probabilitas terjadinya lubang keamanan. Semakin banyak perusahaan yang menghubungkan sistem informasinya dengan jaringan komputer yang global seperti Internet. Potensi sistem informasi yang dapat dijebol menjadi lebih besar.

Tinjauan Pustaka
Survey Information Week (USA), 1271 system or network manager, hanya 22% yang menganggap keamanan sistem informasi sebagai komponen penting.
G.J. Simons, keamanan informasi adalah bagaimana kita dapat mencegah penipuan (cheating) atau, paling tidak, mendeteksi adanya penipuan di sebuah sistem yang berbasis informasi, dimana informasinya sendiri tidak memiliki arti fisik.

Pembahasaan
Komunikasi Data (Datacom)
Komunikasi data adalah transmisi atau proses pengiriman dan penerimaan data dari dua atau lebih device (sumber), melalui beberapa media. Media tersebut dapat berupa kabel koaksial, fiber optic (serat optic), microware dan sebagainya. Data berarti informasi yang disajikan oleh isyarat digital.

Komponen Komunikasi Data:
Pengirim, adalah piranti yang mengirimkan data.
Penerima, adalah piranti yang menerima data.
Data, adalah informasi yang akan dipindahkan.
Media pengiriman, adalah media atau saluran yang digunakan untuk mengirimkan data.
Protokol, adalah aturan-aturan yang berfungsi untuk menyelaraskan hubungan.
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIpvso4TpmFF3wFYXxm-1uPlbGMw4qfY4BSiJs5dw5O7ZUL-5uGweMTElQVxzgx0sWHmFGW-2fOhCqa12vQibpV_rwfr1WqjxusobWBPXoRa8OhAmjj8GgYvaVnRoUd1FRx02KWG-9A3q3/s320/+Komunikasi+data.png

Jenis-Jenis Komunikasi Data
Jenis komunikasi data dibagi menjadi dua macam yaitu :
  1. Infrastructure terrestrial
Aksesnya dengan menggunakan media kabel dan nirkabel. Untuk membangun infrakstuktur terrestrial ini membutuhkan biaya yang tinggi, kapasitas bandwitch yang terbatas, biaya yang tinggi dikarenakan dengan menggunakan kabel tidak diprngaruhi oleh factor cuaca jadi sinyal yang digunakan cukup kuat.
2.      Melalui satelit
Aksesnya menggunakan satelit. Wilayah yang dicakup akses satelit lebih luas sehingga mampu menjangkau sebuah lokasi yang tidak bisa dijangkau. Oleh infrastruktur terrestrial namun membuthkan waktu yang lama untuk berlangsung prosesnya komunikasi. Karena adanya gangguan karena radiasi gelombang matahari (sun outage) yang terjadi paling parahnya setiap 11 tahun sekali.

Jenis-jenis Jaringan
Peralatan datacom yang saling berhubungan antara peralatan atau komputer satu dengan lainnya disebut sebagai jaringan(network). Peralatan dibuat menjadi jaringan untuk mendapatkan komunikasi. Jaringan datacom dapat berupa Jaringan Luas(Wide Area Network atau WAN) Jaringan Setempat(Local Area Network atau LAN) dan Jaringan Metropolitan (Metropolitan Area Network atau MAN).
·         Jaringan Luas(Wide Area Network atau WAN), meliputi area geografis yang luas dengan beragam fasilitas komunikasi, seperti jasa telepon jarak jauh, transmisi satelit, kabel bawah laut. Contoh dari WAN seperti jaringan perbankan antardaerah dan sistem pemesanana penrbangan.
·         Jaringan Setempat(Local Area Network atau LAN), LAN mencangkup area yang terbatas. Umumnya LAN umumnya menggabungakn hingga ratusan komputer yang semuanya berlokasi di area yang lebih kecil atau terbatas, seperti satu gedung yang berdekatan atau sebuah komplek perumahan yang memiliki jaringan LAN yang servernya bertempat di satu tumah tertentu.
·         Jaringan Metropolitan (Metropolitan Area Network atau MAN),  adalah jaringan yang meliputi jaringan suatu kota. Jaringan model MAN adalah sebuah jaringan yang merupakan gabungan dari beberapa jaringan LAN. Artinya jaringan ini adalah merupakan pengembangan dari model jaringan LAN. Media yang diperlukan cukup banyak, karena merupakan pengembangan dari jaringan LAN yaitu kabel jenis UTP, konektor RJ45, modem, Swicth atau hub.

Manfaat Jaringan Komunikasi Data
-         Memungkinkan beberapa sistem komputer saling berbagi (sharing) sumber daya secara bersama, sehingga bersifat ekonomis.
-         Menambah manfaat komputer. Karena jaringan memperluas kegunaan dan daya guna sistem komputer yang saling dihubungkan dengan jaringan, sehingga terminal dengan terminal dapat berkomunikasi, tukar menukar data, dan dapat menggantikan fungsi surat menyurat.
-         Memungkinkan berbagai macam merek komputer saling berhubungan.
-         Memungkinkan pengembangan sistem komputer menjadi lebih fleksibel.
-         Pengolahan terdistribusi, sehingga dapat mencegah ketergantungan kepada pusat atau central processor atau tidak tergantung pada satu sistem komputer saja.

Keamanan Sistem
Perlindungan piranti keras, piranti lunak, data, fasilitas komputer dan personel disebut keamanan sistem atau system security. Keamanan informasi atau security Information dapat di definisikan sebagai perlindungan peralatan komputer, nonkomputer dan informasi dari pihak penyalahgunaan pihak-pihak yang tidak berwenang.

Pengendalian Keamanan Sistem Informasi
Berkaitan dengan keamanan system informasi, diperlukan tindakan berupa pengendalian terhadap sistem informasi. Kontrol-kontrol untuk pengamanan sistem informasi antara lain:
  • Kontrol Administrative, dimaksudkan untuk menjamin bahwa seluruh kerangka control dilaksanakan sepenuhnya dalam organisasi berdasarkan prosedur-prosedur yang jelas.
  • Kontrol Pengembangan dan Pemeliharaan Sistem, Untuk melindungi kontrol ini, peran auditor sangat sistem informasi sangatlah penting. Auditor system informasi harus dilibatkan dari masa pengembangan hingga pemeliharaan system, untuk memastikan bahwa system benar-benar terkendali, termasuk dalam hal otorisasi pemakai system. Aplikasi dilengkapi dengan audit trail sehingga kronologi transaksi mudah untuk ditelusuri.
  • Kontrol Operasi, merupakan ystem beroperasi sesuai dengan yang diharapkan. Seperti Pembatasan akan akses terhadap data, Kontrol terhadap personel pengoperasi, Kontrol terhadap peralatan, Kontrol terhadap penyimpanan arsip dan Pengendalian terhadap virus.
  • Proteksi Fisik terhadap Pusat Data, Untuk menjaga hal-hal yangtidak diinginkan terhadap pusat data, factor lingkungan yang menyangkut suhu, kebersihan, kelembaban udara, bahaya banjir, dan keamanan fisik ruangan perlu diperhatikan dengan benar. Peralatan-peralatan yang berhubungan dengan faktor-faktor tersebut perlu dipantau dengan baik.
Tujuan keamana informasi untuk mencapai kerahasiaan, ketersedian dan integritas.

ANCAMAN (Threats)
Ancaman adalah aksi yang terjadi baik dari dalam sistem maupun dari luar sistem yang dapat mengganggu keseimbangan sistem informasi.  Ancaman yang mungkin timbul dari kegiatan pengolahan informasi berasal dari 3 hal utama, yaitu :
  1. Ancaman Alam, ancaman tersebut memeliki kategori seperti : Ancaman air, tanah dan ancaman lainnya (kebakaran hutan, petir, tornado dsb).
  2. Ancaman Manusia, ancaman tersebut memeliki kategori seperti : Malicious code , Virus, Logic bombs, Trojan horse, Worm, active contents, Countermeasures, Social engineering, Hacking, cracking, akses ke sistem oleh orang yang tidak berhak, DDOS, backdoor, Kriminal, Pencurian, penipuan, penyuapan, pengkopian tanpa ijin, perusakan, Teroris, Peledakan, Surat kaleng, perang informasi, perusakan.
  3. Ancaman Lingkungan, ancaman tersebut memeliki kategori seperti: Penurunan tegangan listrik atau kenaikan tegangan listrik secara tiba-tiba dan dalam jangka waktu yang cukup lama, Polusi, Efek bahan kimia seperti semprotan obat pembunuh serangga, semprotan anti api, Kebocoran seperti A/C, atap bocor saat hujan.

Besar kecilnya suatu ancaman dari sumber ancaman yang teridentifikasi atau belum teridentifikasi dengan jelas tersebut, perlu di klasifikasikan secara matriks ancaman sehingga kemungkinan yang timbul dari ancaman tersebut dapat di minimalisir dengan pasti.  Setiap ancaman tersebut memiliki probabilitas serangan yang beragam baik dapat terprediksi maupun tidak dapat terprediksikan seperti terjadinya gempa bumi yang mengakibatkan sistem informasi mengalami mall function. 

KELEMAHAN (Vulnerability)
Adalah cacat atau kelemahan dari suatu sistem yang mungkin timbul pada saat mendesain, menetapkan prosedur, mengimplementasikan maupun kelemahan atas sistem kontrol yang ada sehingga memicu tindakan pelanggaran oleh pelaku yang mencoba menyusup terhadap sistem tersebut. Cacat sistem bisa terjadi pada prosedur, peralatan, maupun perangkat lunak yang dimiliki, contoh yang mungkin terjadi seperti : Seting firewall yang membuka telnet sehingga dapat diakses dari luar, atau Seting VPN yang tidak di ikuti oleh penerapan kerberos atau NAT.
Suatu pendekatan keamanan sistem informasi minimal menggunakan 3 pendekatan, yaitu :
1. Pendekatan preventif yang bersifat mencegah dari kemungkinan terjadikan ancaman dan kelemahan
2. Pendekatan detective yang bersifat mendeteksi dari adanya penyusupan dan proses yang mengubah sistem dari keadaan normal menjadi keadaan abnormal
3. Pendekatan Corrective yang bersifat mengkoreksi keadaan sistem yang sudah tidak seimbang untuk dikembalikan dalam keadaan normal
Tindakan tersebutlah menjadikan bahwa keamanan sistem informasi tidak dilihat hanya dari kaca mata timbulnya serangan dari virus, mallware, spy ware dan masalah lain, akan tetapi dilihat dari berbagai segi sesuai dengan domain keamanan sistem itu sendiri.


Penutup
Kesimpulan
Komunikasi data adalah transmisi atau proses pengiriman dan penerimaan data dari dua atau lebih device (sumber), melalui beberapa media. Media tersebut dapat berupa kabel koaksial, fiber optic (serat optic) , microware dan sebagainya. Jenis berdasarkan medianya ada komunikasi data terreistrial yaitu komunikasi data dengan menggunakan media kabel tembaga dan nirkabel, sementara jenis lainnya yaitu komunikasi data melalui satelit, contohnya komunikasi data dalam dengan media wifi, internet,dll. Keamanan sistem informasi tidak dilihat hanya dari kaca mata timbulnya serangan dari virus, mallware, spy ware dan masalah lain, akan tetapi dilihat dari berbagai segi sesuai dengan domain keamanan sistem itu sendiri. Berkaitan dengan keamanan system informasi, diperlukan tindakan berupa pengendalian terhadap sistem informasi. Kontrol-kontrol untuk pengamanan sistem informasi antara lain Kontrol Administratif, Kontrol Pengembangan dan Pemeliharaan Sistem, Kontrol Operasi dan Proteksi Fisik terhadap Pusat Data.
Saran

0 komentar:

Posting Komentar

  ©Template by Blogger. Design By Tips dan Trik Blog