Politeknik Telkom

Pemrograman Berorientasi Obyek

Pemrograman Berorientasi Obyek

POLITEKNIK TELKOM BANDUNG 2009
Pemrograman Berorientasi Obyek 1

Politeknik Telkom

Pemrograman Berorientasi Obyek

Koordinator & Editor: Dahliar Ananda Tim: Budi Laksono Putro Kurniawan NR Lutce Rasiana

Dilarang menerbitkan kembali, menyebarluaskan atau menyimpan baik sebagian maupun seluruh isi buku dalam bentuk dan dengan cara apapun tanpa izin tertulis dari Politeknik Telkom. Hak cipta dilindungi Telkom 2009 undang-undang @ Politeknik

No part of this document may be copied, reproduced, printed, distributed, modified, removed and amended in any form by
2 Pemrograman Berorientasi Obyek

Politeknik Telkom

Pemrograman Berorientasi Obyek

any means without prior written Polytechnic.

authorization of Telkom

KATA PENGANTAR Assalamu’alaikum Wr. Wb Segala puji bagi Allah SWT karena dengan karunia-Nya courseware ini dapat diselesaikan. Atas nama Politeknik Telkom, kami sangat menghargai dan ingin menyampaikan terima kasih kepada penulis, penerjemah dan penyunting yang telah memberikan tenaga, pikiran, dan waktu sehingga courseware ini dapat tersusun. Tak ada gading yang tak retak, di dunia ini tidak ada yang sempurna, oleh karena itu kami harapkan para pengguna buku ini dapat memberikan masukan perbaikan demi pengembangan selanjutnya. Semoga courseware ini dapat memberikan manfaat dan membantu seluruh Sivitas Akademika Politeknik Telkom dalam memahami dan mengikuti materi perkuliahan di Politeknik Telkom. Amin. Wassalamu’alaikum Wr. Wb. Bandung, Maret 2009

Pemrograman Berorientasi Obyek

3

Politeknik Telkom Pemrograman Berorientasi Obyek Christanto Triwibisono Wakil Direktur I Bidang Akademik & Pengembangan 4 Pemrograman Berorientasi Obyek .

.......................................................................................................1 Sejarah Java......36 3..................................................................1 1......5........................................................................................iv Daftar Gambar.................................3 Bagaimana Java Bekerja?.........4 Kelas dan Obyek...........................8....................3 1........28 2......................................................9 Operator di Java......2 Pemrograman Prosedural........11 2 Pengenalan Java.......................................................7 Keyword di Java...............................................................................................6 Identifier di Java..............6 1..........................................5..............................21 2...............18 2.....................1 Enkapsulasi...35 3.......2 1..10 Percabangan di Java.........iii Daftar Isi....................................................................................................................1 Tipe data sederhana...........................................................7 1..23 2....4 Polimorfisme..............................38 3..........................................................viii 1 Pemrograman Berorientasi Obyek..............................................4 Platform Java.......................22 2....Politeknik Telkom Pemrograman Berorientasi Obyek Daftar Isi KATA PENGANTAR.....................8 Tipe Data di Java.........................4 1....................1 Gambaran Umum tentang Orientasi Obyek..........................................................19 2........8 1......................................4 Membuat Kelas dan Obyek di Java........8...2 Tipe data komposit..............................2 Abstraksi...7 1.........11 Perulangan di Java...........29 3 Kelas dan Obyek..........................2 Karakteristik Bahasa Java...5....38 Pemrograman Berorientasi Obyek 5 ..........2 Kelas dan Obyek........3 Pewarisan..........1 Pendahuluan..27 2....................5..............26 2.........8 1..............................................................5 Fitur Pemrograman Berorientasi Obyek...............16 2..........................................17 2.............24 2.......................................................34 3..23 2.................................................................21 2......3 Komponen Kelas......5 Aplikasi Java................................vii Daftar Tabel...................3 Pemrograman Berorientasi Obyek.....

.........................................1......................................54 4...2 Kelas Abstrak.............9 Praktek..61 4....................5...73 5 Polimorfisme................................1....3..............................................................5...................1........4......3 Interface........3 Hubungan Antar Kelas.............................................2 Access Modifiers......................64 4.....3 Pernyataan instanceof....1..................2.........................................40 3....................90 5.....................84 5.........................86 5...........................................................................................2 Diagram Kelas...............................................3....................................8 Constructor (Konstruktor)..................4 Pewarisan..85 5.....2 Membuat Array...........3 Komposisi........59 4...................................2 Pembuatan Obyek di Java...........58 4..................................................55 4..................................................................1 Mendeklarasikan Array................45 3..................................4 Array Multidimensi...6 Atribut dan Method...2 Agregasi.........87 5......................89 5...............93 6 Pemrograman Berorientasi Obyek .............1 Pembuatan kelas di Java..............62 4.....................6..................1 Mengakses atribut.......................2.................56 4..................................39 3.............53 4......1 Pewarisan di Java....................................1.......................6..........4........................6 Manipulasi Array..............4........................................72 4.......40 3...1 Array......3............Politeknik Telkom Pemrograman Berorientasi Obyek 3....66 4.........54 4..1 Asosiasi...........42 3......2 Overloading.........................1................................5 Access Specifiers dan Access Modifiers..............................3 Menginisialisasi Array.......................46 3............................43 3.....................57 4...............................................................................1.7 Method main()...2 Mengakses Method..1 Access Specifiers.................1 Virtual Method Invocation (VMI)...........................................40 3.....2 Melakukan overloading pada method..........................................43 3...................................................................5 Batasan Array..44 3.....................1....................................60 4...2 Polymorphic arguments...46 4 Hubungan Antar Kelas dan Pewarisan.................................1.........4..................69 4........................85 5...........4.................1 Overloading construktor...................1 Polymorphism.............70 4.............

............3 Statement Finally.....................................................................................................1 Implementasi Byte Stream....103 6......................100 6..............117 7..........Politeknik Telkom Pemrograman Berorientasi Obyek 5...........123 7..................................................................2 Multiple Catch....118 7........................3.......3...................................................................4 Implementasi RandomAccessFile...................3............105 6..........................3.....3............98 6.1 Statement Try dan Catch...................1 Pendahuluan..............109 7 Input/Output....124 7..................3 Mengimplementasikan Exception Handling.3 Overriding.................152 Daftar Pustaka........2 Kelas Exception..........102 6.........4 User defined Exception...............................................95 6 Exception Handling...........................106 6................1 Pendahuluan....................................101 6.........118 7..2 Implementasi Kelas File.......................3 Penggunaan Stream dalam Java....................................................................4 Throwing Exception...........2 Implementasi Character Stream...........139 7......................................................3....160 Daftar Pustaka Pemrograman Berorientasi Obyek 7 ...99 6.........

Politeknik Telkom Pemrograman Berorientasi Obyek 8 Pemrograman Berorientasi Obyek .

...........66 Gambar 4–10 Contoh Pewarisan Kelas.....................................................................11 Gambar 1–8 Multiple Inheritance.....................133 Gambar 7–3 Hirarki Kelas Reader......................................99 Gambar 7–1 Kelas OutputStream..............................................11 Gambar 2–1 Mekanisme Kompilasi dan Eksekusi Program Java ....................................... Run Anywhere pada Java 20 Gambar 2–3 Platform Java....................................................70 Gambar 4–11 Contoh Interface.....................................................................................................................124 Gambar 7–2 Hirarki kelas InputStream.64 Gambar 4–9 Contoh hubungan komposisi.................5 Gambar 1–4 Ilustrasi keuntungan OOP : resilience to change 2 ............................................................140 Gambar 7–4 Hirarki kelas Writer.........................................61 Gambar 4–5 Komposisi.............................................................61 Gambar 4–7 Contoh hubungan asosiasi......................................5 Gambar 1–5 Superclass dan Subclass.56 Gambar 4–2 Simbol Diagram Kelas...........................4 Gambar 1–3 Ilustrasi keuntungan OOP : resilience to change 1 ..............................................................................................................20 Gambar 2–2 Konsep Write Once...........................................................................................44 Gambar 4–1 Representasi Array Primitif dalam Heap Memory ....................38 Gambar 3–2 Mengakses Atribut........3 Gambar 1–2 OOP – Dekomposisi berdasar obyek.........61 Gambar 4–6 Turunan....................10 Gambar 1–7 Single Inheritance....................................21 Gambar 3–1 Kelas.........60 Gambar 4–4 Agregasi..................9 Gambar 1–6 Contoh pewarisan.......74 Gambar 6–1 Kesalahan pengkodean..........................................................60 Gambar 4–3 Asosiasi....145 Gambar 7–4 Hirarki kelas Writer Pemrograman Berorientasi Obyek 9 .................................................................................Politeknik Telkom Pemrograman Berorientasi Obyek Daftar Gambar Gambar 1–1 PP – Dekomposisi berdasar fungsi.......................................................................................................................................................................................62 Gambar 4–8 Contoh hubungan agregasi...............................

......................28 6–1 Contoh Exception............................................................................................................127 7–4 Method dalam kelas BufferedOutputStream...................26 2–5 Operator unary..........................140 7–8 Method dalam kelas Writer.................130 7–5 Method InputStream.........................101 7–1 Method dalam kelas File...145 7–9 Jenis akses pembukaan file.................154 7–10 Method dalam kelas RandomAccessFile 10 Pemrograman Berorientasi Obyek .....119 7–2 Method pada kelas OutputStream.......................................................................124 7–3 Method dalam kelas FileOutputStream......................133 7–6 Method dalam kelas FileInputStream.......136 7–7 Method dalam kelas Reader.......................................153 7–10 Method dalam kelas RandomAccessFile...................27 2–6 Operator aritmatika...............24 2–3 Tipe data Floating Point...............28 2–8 Operator boolean.........................................25 2–4 Karakter Unicode...................Politeknik Telkom Pemrograman Berorientasi Obyek Daftar Tabel Tabel Tabel Tabel Tabel Tabel Tabel Tabel Tabel Tabel Tabel Tabel Tabel Tabel Tabel Tabel Tabel Tabel Tabel Tabel Tabel 2–1 Keyword dalam Java............................27 2–7 Operator relasi...................................................23 2–2 Tipe data Integer..........................................................................

Politeknik Telkom Pemrograman Berorientasi Obyek 1 Pemrograman Berorientasi Obyek Overview Dalam Bab ini akan dibahas tentang pengenalan terhadap pemrograman berorientasi obyek. 2. 4. Mengetahui keuntungan berorientasi obyek. Mengetahui konsep pemrograman berorientasi obyek. Perbandingan pemrograman berorientasi obyek dengan pemrograman prosedural. Mengetahui fitur dari pemrograman berorientasi obyek dari pemrograman Pemrograman Berorientasi Obyek 1 . 5. Mengetahui perbedaan antara pemrograman berorientasi obyek dan pemrograman prosedural. Mengetahui kelas dan obyek. Juga akan dibahas tentang fitur-fitur yang ada dalam pemrograman berorientasi obyek Tujuan 1. 3.

1 Pendahuluan Dalam dunia teknologi informasi saat ini. Salah satu pendekatan pengembangan perangkat lunak sebelum adanya pendekatan berorientasi obyek (Object oriented Programming atau OOP) adalah pemrograman prosedural. Pascal dan BASIC (Beginner’s All Purpose Symbolic Instruction Code). pengembangan sebuah solusi untuk memenuhi kebutuhan yang ada di dunia nyata harus dikembangkan dengan mudah. dimana setiap fungsi terdiri dari serangkaian langkah-langkah pengeksekusian perintah untuk menyelesaikan sebuah aktivitas. Kekurangan dalam pemrograman prosedural membawa kepada munculnya pemrograman berorientasi obyek. namun harus ada jalan agar kompleksitas tersebut tidak menjadi sebuah batasan terhadap fungsionalitas dari perangkat lunak tersebut. Hal ini akan membawa kita kedalam proses pengembangan sebuah perangkat lunak yang sangat kompleks. Pemrograman berorientasi obyek diciptakan untuk mempermudah pengembangan program yang mengikuti Pemrograman Berorientasi Obyek 1 . Salah satu cara untuk mengurangi kompleksitas dari perangkat lunak adalah dengan membaginya berdasarkan hirarki tertentu berdasarkan fungsi-fungsi yang ada. sehingga sulit untuk dipisahkan satu dengan yang lainnya. Fungsi yang saling bergantung ini sulit untuk dapat digunakan (reused) didalam aplikasi lain. Meskipun hal itu tidak bisa dihindari.Politeknik Telkom Pemrograman Berorientasi Obyek 1. Beberapa contoh bahasa pemrograman prosedural adalah COBOL (COmmon Business Oriented Language). yang membagi sebuah aplikasi berdasarkan berbagai macam fungsi yang ada didalamnya. Fungsi-fungsi tersebut bisa dieksekusi dari baris manapun dalam bagian program. cepat dan memenuhi berbagai macam keperluan. dan untuk menggunakannya maka harus dilakukan perubahan terhadap kode yang ada. Fungsi-fungsi didalam program prosedural saling bergantung.

Keuntungannya adalah kemampuannya dalam “reusability of code”. Masing-masing komponen tersebut saling berinteraksi sehingga membentuk sebuah mobil yang akhirnya bisa dikendarai dan berjalan.1 Pemrograman Prosedural Dalam Pemrograman prosedural. kursi penumpang. sebuah program akan dibagi menjadi beberapa subprogram (modul) yang akan melakukan tugas-tugas tertentu. Modul tersebut bisa berupa pernyataan yang ditentukan oleh user ataupun diambil dari library dari program lainnya. Dalam pemrograman berorientasi obyek. sebut saja mesin. Tak jauh beda dengan sebuah program atau aplikasi. spion. obyek bisa ditempatkan kedalam sebuah library. Obyekobyek inilah yang saling berinteraksi dan membentuk sebuah sistem. Kecepatan simulasi perjalanan bisa diperbesar dan diperkecil tenaganya dengan menekan pedal gas. Dalam paradigma ini. terdiri dari banyak obyek-obyek yang saling berinteraksi. sehingga bisa digunakan dan diakses oleh berbagai macam aplikasi lainnya. Spion berinteraksi dengan pengguna dalam bentuk pemilihan sudut pandangan dari kursi pengemudi. Semua komponen mobil akan dimodelkan menjadi obyek sendiri-sendiri yang akan berinteraksi. sehingga apa yang ada dalam dunia nyata bisa dimodelkan dengan tepat dalam sebuah program. Kalau kita perhatikan bahwa sebuah mobil sebenarnya terdiri dari banyak komponen-komponen yang juga merupakan sebuah obyek. dan lain-lain. roda. Mari kita ambil sebuah contoh yaitu sebuah mobil. Mobil adalah sebuah benda yang nyata ada dalam kehidupan. Misal program simulator mobil dari contoh diatas tadi. segala sesuatu entitas yang ada merupakan sebuah obyek. sesuai dengan model kehidupan nyata. Semua obyek tersebut saling berinteraksi. 1. sehingga akan menghemat waktu dan usaha dalam pengembangan program. Dalam sebuah modul bisa terdiri dari satu atau lebih prosedur atau dalam bahasa 2 Pemrograman Berorientasi Obyek . pedal gas dan rem.Politeknik Telkom Pemrograman Berorientasi Obyek model yang telah ada dalam kehidupan nyata.

Berikut adalah contoh dekomposisi sebuah sistem akademik menggunakan paradigm pemrograman prosedural. Tetapi yang menjadi masalah dalam pemrograman procedural adalah bahwa setiap langkah dalam sebuah prosedur yang dieksekusi. rutin. Sistem Akademik Registrasi Penjadwalan Kuliah Gambar 1–1 PP – Dekomposisi berdasar fungsi 1. karena bisa diakses secara bebas dari keseluruhan fungsi. selalu terkait dengan langkah yang sebelumnya. subrutin. Sebuah prosedur adalah sekelompok perintah yang bisa dijalankan secara independen. Dalam hal ini data juga bisa dengan mudah menjadi “rusak”. atau method. Sistem Akademik Dosen Mata Kuliah Pemrograman Berorientasi Obyek Mahasiswa Jadwal 2 . seperti yang telah dijelaskan sebelumnya bahwa pemrograman berorientasi obyek memecah komponen-komponennya menjadi obyek-obyek yang saling berinteraksi. Dunia nyata yang terdiri dari obyek-obyek dapat dengan mudah dimodelkan sehingga program bisa lebih mendekati kondisi yang sebenarnya.2 Pemrograman Berorientasi Obyek Berbeda dengan pemrograman prosedural.Politeknik Telkom Pemrograman Berorientasi Obyek pemrograman juga disebut sebagai fungsi. termasuk dari bagian yang harusnya tidak memiliki hak akses kedalamnya.

dan usaha yang akhirnya akan membawa kepada penghematan biaya pengembangan.Politeknik Telkom Pemrograman Berorientasi Obyek Gambar 1–2 OOP – Dekomposisi berdasar obyek Terdapat beberapa keuntungan pemrograman berorientasi obyek. antara lain: menggunakan • Real world programming Dunia ini disusun atas obyek obyek yang saling berinteraksi. sebisa mungkin menggambarkan kondisi yang ada dalam bentuk yang seakurat mungkin. • Reusability of code Kelas yang telah dibuat dalam pemrograman berorientasi obyek bisa digunakan oleh program lain. Penggunaan komponen yang telah dibuat tidak hanya mengurangi usaha pembuatan komponen tersebut. Keuntungannya adalah penghematan dari segi waktu. Sebuah program yang memodelkan dunia nyata. sebuah program disusun oleh obyek-obyek yang masing-masing memiliki fungsi sesuai dengan peran dan kebutuhan interaksinya. tetapi juga mengurangi kemungkinan kesalahan jika harus mengembangkan lagi dari awal. Pemrograman Berorientasi Obyek 3 . Dalam Pemrograman berorientasi obyek.

Mahasiswa Reguler Continuing Twin Pindahan Gambar 1–4 Ilustrasi keuntungan OOP : resilience to change 2 • Information hiding Informasi dalam sebuah obyek sedapat mungkin disembunyikan dari luar kelas yang ada. perubahan akan selalu terjadi didalamnya. diharapkan juga bisa bersifat dinamis pula. Tanpa harus mengubah keseluruhan aplikasi. Tujuannya adalah mengamankan data agar hanya fungsi yang Pemrograman Berorientasi Obyek 1 . Program atau aplikasi yang memodelkan dunia nyata. Sebagai contoh perhatikan ilustrasi berikut Mahasiswa Reguler Continuing Twin Gambar 1–3 Ilustrasi keuntungan OOP : resilience to change 1 Misal kondisi saat ini jenis mahasiswa yang ada adalah seperti yang terlihat diatas. Sebuah aplikasi harus bisa menangani jika terdapat penambahan jenis mahasiswa baru yang kedepannya bakal ada.Politeknik Telkom Pemrograman Berorientasi Obyek • Resilience to change Dunia nyata adalah sesuatu yang dinamis. maka kebutuhan tersebut harus bisa ditangani.

Akan tetapi jika terjadi perubahan terhadap jumlah mahasiswa (bertambah atau berkurang) yang mengikuti proses perkuliahan. yang berarti bahwa setiap obyek yang dibentuk dikelola secara terpisah dari obyek lainnya meskipun berasal dari sebuah kelas yang sama. hal itu tidak akan mempengaruhi kondisi dosen dalam melakukan pengajaran. mengubah dan memanipulasi data tersebut. Modifikasi terhadap sebuah obyek bisa dilakukan tanpa mempengaruhi fungsionalitas dari obyek yang lainnya. Masing-masing obyek akan saling berinteraksi didalam sebuah perkuliahan yang terjadwal. Konsep penyembunyian informasi ini bertujuan agar pihak luar yang membutuhkan layanan dari kelas tersebut hanya perlu untuk menerima data yang dibutuhkan saja. Kita sebagai pengguna tidak perlu memahami dengan pasti bagaimana cara kerja didalam jam tersebut. • Modularity of code Salah satu keuntungan dari pemrograman berorientasi obyek adalah modularitas. Sebagai contoh pada sebuah jam. Yang perlu diketahui oleh pengguna adalah bahwa jam tangan tersebut menyediakan sebuah penunjuk (yang bisa kita anggap sebagai fungsi) yang menunjukkan bahwa saat ini waktu menunjukkan pukul berapa. Sebagai sebuah contoh adalah dari obyek mahasiswa dan dosen. tanpa perlu mengetahui bagaimana sebenarnya cara kerja di dalam kelas tersebut. menggunakan tenaga baterai atau kinetik. Tetapi tetap disediakan sebuah cara (interface) agar obyek dari luar bisa mengakses dan mengubah data secara tidak langsung.Politeknik Telkom Pemrograman Berorientasi Obyek ada dalam kelas itu saja yang bisa membaca. dan sebagainya. Para pengguna tidak perlu mengetahui sebanyak apa roda giginya. 2 Pemrograman Berorientasi Obyek .

dimiliki dan bisa Sebagai contoh obyek mahasiswa. Obyek merupakan dasar dari pemrograman berorientasi obyek. dan sebagai behaviour-nya yaitu mahasiswa melakukan fungsi registrasi. dan lain-lain. truk. misalkan memiliki jumlah roda.Politeknik Telkom Pemrograman Berorientasi Obyek 1. dll. sepeda motor didefinisikan sebagai sebuah kendaraan bermotor karena memiliki beberapa karakteristik yang sama yaitu memiliki mesin. no kendaraan. Pada saat runtime. mobil.1 Kelas dan Obyek Sebuah kelas menentukan struktur dan behaviour dari sebuah obyek. • • State merupakan atribut yang dimiliki oleh sebuah obyek. dll. Sebagai sebuah contoh. didalam dunia nyata. Nama. perkuliahan. Sedangkan obyek merupakan bentukan (instance) dari sebuah kelas yang dijalankan pada saat runtime. ujian.1 Fitur Pemrograman Berorientasi Obyek Didalam pemrograman berorientasi obyek terdapat beberapa fitur berikut: • Enkapsulasi (Encapsulation) 1 Pemrograman Berorientasi Obyek . Behaviour adalah fungsi yang dijalankan oleh penggunanya. Seorang programmer akan menulis kode-kode untuk masing kelas yang akan digunakan. Kelas merupakan sebuah cetak biru dari obyek. variabel yang ada pada sebuah kelas akan menjadi State pada sebuah obyek. sedangkan method yang dibuat akan menjadi behaviour-nya. bus. Kendaraan bermotor tersebut juga memiliki beberapa atribut yang sama dalam kelasnya. praktikum. nomor rangka mesin. 1. menggunakan bahan bakar minyak untuk pengoperasiannya. setiap obyek yang ada memiliki dua buah karakteristik: State dan behaviour. jumlah kursi penumpang. Setiap mahasiswa memiliki atribut seperti NIM. alamat.

1. Dalam pemrograman berorientasi obyek. kecocokan pin yang dimasukkan. Sebagai contoh adalah pada sebuah mesin ATM. Interface untuk pengaksesan data: suatu method untuk mengambil.1. maka keamanan dari data dan method yang ada didalamnya akan terjaga. Dengan menggunakan enkapsulasi. dimana hal-hal tersebut tidak perlu diketahui oleh pengguna tentang bagaimana cara kerjanya. Saat kartu ATM dimasukkan. 1. maka pengguna akan memasukkan nomor pin.Politeknik Telkom Pemrograman Berorientasi Obyek • • • Abstraksi (Abstraction) Pewarisan (Inheritance) Polimorfisme (Polymorphism) 1. berarti telah terjadi proses pengaksesan data yang akan memberikan nomor pin untuk dikirimkan dan divalidasi pada server dari ATM tersebut. Disini terjadi penyembunyian informasi tentang bagaimana cara kerja pengecekan validitas kartu. Ketika pin dimasukkan.1 Enkapsulasi Enkapsulasi adalah suatu cara untuk menyembunyikan detail implementasi detail dari sebuah kelas. dll. koneksi ke database server. kebutuhan akan enkapsulasi muncul karena adanya proses sharing data antar method.1 Abstraksi Arti abstraksi mengacu kepada atribut dari sebuah obyek yang membedakan antara satu obyek dengan obyek yang lain. Misalnya pada sebuah sistem akademik. Didalam Pemrograman Berorientasi Obyek 1 . Terdapat dua hal mendasar dari enkapsulasi yaitu: • • Information hiding: penyembunyian detil dari atribut dan method pada sebuah kelas. dimana terdapat beberapa komponen misal saja mahasiswa. memberikan atau mengubah suatu nilai. Yang disediakan oleh mesin ATM adalah sebuah layar informasi dan perangkat untuk membaca kartu.

Semua atribut dari obyek didefinisikan dalam sebuah kelas. Sebenarnya kelas tidak memiliki data. tanggal lahir. Sekali sebuah prosedur dibuat. Nama. maka kita bisa menggunakannya berulang kali. tetapi juga dari segi pendesainannya yang secara garis besar jauh lebih baik. alamat. dan sebagainya. Superclass Subclass Gambar 1–5 Superclass dan Subclass Fitur pewarisan mengijinkan sebuah kelas yang dinamakan superclass untuk menurunkan atribut-atribut dan 2 Pemrograman Berorientasi Obyek . Dalam pemrograman berorientasi obyek. dengan cara mengelola kelas-kelas dan faktor kemiripan diantara kelas-kelas tersebut. tetapi sebuah obyeklah yang akan menyimpan data. tetapi kita juga bisa mendefinisikan hubungan antar kelas yang tidak hanya dimanfaatkan untuk code reuse.Politeknik Telkom Pemrograman Berorientasi Obyek obyek tersebut.1.1 Pewarisan Salah satu fitur yang paling kuat dalam pemrograman berorientasi obyek adalah penggunaan kode kembali (code reuse). Tujuan utama dari pewarisan (inheritance) adalah untuk menyediakan fungsionalitas tersebut. 1. karena obyek diciptakan dari sebuah kelas dan oleh sistem operasi akan dialokasikan sejumlah memori kepada obyek tersebut. Dalam pemrograman berorientasi obyek konsep ini berada pada pembuatan sebuah kelas. kemampuan yang dimiliki tidak hanya itu. yaitu NIM. terdapat suatu atribut yang akan saling membedakan antara satu obyek mahasiswa dengan mahasiswa lainnya.

Politeknik Telkom Pemrograman Berorientasi Obyek methodnya kepada yang lainnya. Terdapat beberapa karakteristik dari subclass. yaitu yang disebut subclass atau kelas turunannya. Meskipun didalam kelas Dosen dan Mahasiswa tidak tercantum atribut Nama dan Alamat. tetapi keduanya tetap memiliki kedua atribut tersebut yang Pemrograman Berorientasi Obyek 2 . yaitu Dosen dan Mahasiswa. yaitu: • • • Subclass merupakan superclass bentuk khusus dari sebuah Dalam sebuah subclass dapat memikiki atribut dan method yang diturunkan dari sebuah superclass Subclass bisa memiliki fitur tambahan dan berbeda yang berbeda dari fitur-fitur yang diturunkan dari superclassnya. CivitasAkademik nama alamat Dosen nip mengajar() Mahasiswa nim kuliah() Asisten laboratorium mengajarPraktikum () PesertaUjian ruangUjian ujian() Gambar 1–6 Contoh pewarisan Dari contoh diatas bisa dilihat bahwa terdapat sebuah kelas CivitasAkademik yang memiliki 2 (dua) kelas turunan. Hal ini akan mengijinkan pembuatan kelas baru yang didasarkan dari peng-abstrakan atributatribut dan behaviour yang sama.

Politeknik Telkom Pemrograman Berorientasi Obyek diturunkan dari kelas CivitasAkademik. Hal tersebut tidak hanya berlaku untuk atribut saja. yaitu hanya terdapat satu Multiple inheritance. terdapat beberapa jenis pewarisan. Didalam pemrograman berorientasi obyek. yaitu: • • Single inheritance. Begitu juga untuk kelas Asisten dan PesertaUjian. karena kompleksitas dari konsep tersebut. KendaraanBermotor BerodaDua BerodaEmpat BerodaLebihDariEmpat Gambar 1–7 Single Inheritance MaskapaiPenerbangan PerusahaanJasaAsuransi PenumpangPesawat Gambar 1–8 Multiple Inheritance 2 Pemrograman Berorientasi Obyek . Didalam java bahasa pemrograman java sendiri konsep tentang Multiple inheritance dihapuskan. superclass. yang sebenarnya juga turunan dari kelas CivitasAkademik. Keduanya tetap memiliki atribut Nama dan Alamat yang diturunkan dari kelas Mahasiswa. yaitu terdapat lebih dari satu superclass. tetapi juga method-method yang ada di kelas induknya.

Didalam pemrograman berorientasi obyek. Polimorfisme sendiri berarti sesuatu yang memiliki banyak bentuk. Dari contoh diatas bisa kita lihat bahwa wanita tersebut adalah orang yang sama. Pemrograman Berorientasi Obyek 1 . method.1. beberapa peran yang mungkin dimiliki adalah: • • • • • Bagi suami maka dia berperan sebagai seorang istri.Politeknik Telkom Pemrograman Berorientasi Obyek 1. Di tempat kerja maka dia akan berperan sebagai seorang karyawan. polimorfisme adalah sebuah fitur yang memungkinkan kita untuk memberikan arti atau penggunaan yang berbeda bagi sebuah entitas dalam konteks yang berbeda-beda. Di tempat kuliah berperan sebagai mahasiswi. Buat anak-anak berperan sebagai ibu. Di tempat arisan berperan sebagai ketua arisan. Sebagai contoh adalah sebuah obyek wanita. tetapi memiliki peran yang berbeda bagi orang yang berinteraksi dengannya. Entitas tersebut bisa berupa variabel.1 Polimorfisme Polimorfisme diturunkan dari bahasa latin yaitu poly yang berarti banyak dan morph yang berarti bentuk. Polimorfisme bisa digunakan sebagai kategori umum bagi sebuah entitas dalam tindakan yang berbeda-beda. atau sebuah obyek.

Pemrograman Berorientasi Obyek 1 . Beberapa fitur pemrograman berorientasi obyek. ○ ○ ○ ○ ○ Real world programming Reusability of code Resilience to change Information hiding Modularity of code • • • • • Enkapsulasi adalah penyembunyian detil implementasi dari sebuah obyek. Kelas merupakan kumpulan dari beberapa obyek yang sejenis.Politeknik Telkom Pemrograman Berorientasi Obyek Rangkuman Dalam materi ini kita telah mempelajari tentang: • Beberapa metodologi pengembangan perangkat lunak: ○ ○ • Pemrograman procedural Pemrograman berorientasi obyek Pemrograman prosedural membagi sebuah program menjadi prosedur dan fungsi untuk melakukan tugas khusus. Pemrograman berorientasi obyek membagi sebuah program berdasarkan kelas dan obyek yang saling berinteraksi. Obyek merupakan instantiasi kelas pada saat runtime.

sehingga tidak dapat digunakan untuk aplikasi lain. interdependensi dalam kode sangat kuat. Dalam pemrograman prosedural kode dapat digunakan untuk aplikasi lain. Bahasa mana yang merupakan pemrograman berorientasi obyek? a. Pada konsep pewarisan. Dalam pemrograman prosedural. COBOL d. d. Polimorfisme adalah pemberian arti dan fungsi yang berbeda dalam pengguaan sebuah entitas yang memiliki identitas yang sama sesuai dengan konteksnya. b. Pemrograman prosedural penyembunyian informasi. Manakah yang benar tentang pemrograman prosedural? a.Politeknik Telkom Pemrograman Berorientasi Obyek • Pewarisan adalah pembuatan hirarki dari sebuah kelas dan membantu pendefinisian atribut dan method bagi kelas turunannya. memiliki mendekati fitur apa 3. Java b. manakah yang merupakan Pemrograman Berorientasi Obyek 1 . • Pilihan Ganda 1. Pemrograman prosedural yang ada di dunia nyata. c. BASIC c. Pascal bahasa 2.

a. Konsep pembagian jenis kendaraan. Sebutkan perbedaan antara pemrograman berorientasi obyek dan pemrograman prosedural. b. 3. 2. 1 Pemrograman Berorientasi Obyek . d. Sebutkan dan jelaskan fitur-fitur dari pemrograman berorientasi obyek. Klasifikasi binatang bertulang belakang. Kawin silang antara kuda Australia dan kuda spanyol. c.Politeknik Telkom Pemrograman Berorientasi Obyek konsep Multiple inheritance. Latihan 1. Klasifikasi ras manusia. Berikan contoh bagi masing-masing fitur dari pemrograman berorientasi obyek.

Politeknik Telkom Pemrograman Berorientasi Obyek Pemrograman Berorientasi Obyek 2 .

karakteristik bahasa Java. dan operator pada Java. tipe data. identifier. serta expression dan flow control pada Java. Mengetahui sejarah perkembangan bahasa Java 2. Mengetahui identifier dan tipe data pada Java 5.Politeknik Telkom Pemrograman Berorientasi Obyek 1 Pengenalan Java Overview Bab ini akan menjelaskan tentang dasar-dasar pemrograman menggunakan bahasa Java. Mengetahui menggunakan Java dasar-dasar pemrograman 4. Tujuan 1. Penjelasan tentang sejarah bahasa Java. Mengetahui karakteristik bahasa Java 3. Mengetahui expression dan flow control pada Java Pemrograman Berorientasi Obyek 1 .

Niklaus Wirth. Bersamaan itu Pemrograman Berorientasi Obyek 1 . Pada 1995. Karena perangkat itu tidak mempunyai banyak memori.Politeknik Telkom Pemrograman Berorientasi Obyek 1. Proyek Green menggunakan virtual machine untuk mengatasi isu utama netral terhadap arsitektur mesin. Juga karena manufaktur-manufaktur berbeda memilih pemroses-pemroses yang berbeda. serta mengadopsi orientasi obyek bukan procedural. Karena pasar masih belum tertarik dengan produk consumer cerdas maka proyek Green harus menemukan pasar lain dari teknologi yang diciptakan. Mulanya bahasa yang diciptakan diberi nama “Oak” kemudian diganti “Java” karena telah ada bahasa pemrograman bernama “Oak” Produk pertama proyek Green adalah “*7”. Mesin ini sering disebut Virtual machine. Karena orang-orang di proyek Green berbasis C++ bukan Pascal maka kebanyakan Sintaks diambil dari C++. pencipta bahasa Pascal telah merancang bahasa portable yang menghasilkan kode intermediate untuk mesin hipotetis. Inprise. Setelah itu diikuti oleh IBM. Sun dipimpin Patric Naughton dan James Gosling ingin merancang bahasa computer untuk perangkat consumer seperti cable TV Box. Proyek ini diberi nama kode “Green”. Netscape memutuskan membuat browser yang dilengkapi dengan Java. Kebutuhan untuk kecil. Symantec. maka bahasa harus bebas dari arsitektur manapun.1 Sejarah Java Pada tahun 1991. Setelah itu Java mulai didengar. liat dan kode netral terhadap platform mengatur tim mempelajari implementasi pascal yang pernah dicoba. Kemudian. Dengan strategi terbukanya. Kode antara ini kemudian dapat digunakan disembarang mesin yang memiliki interpreter. sebuah kendali jauh yang sangat cerdas. bahkan Microsoft. bahasa harus berukuran kecil dan menghasilkan kode program yang liat. banyak industri yang meliriknya. penerapan mengarah menjadi teknologi yang berperan di web.

telepon. radio. dan Eropa yang mengubah pengenalan bahasa pemrograman komputer menjadi Java. Virtual machine inilah yang menyebabkan Java mempunyai kemampuan penanganan memori yang lebih baik. Apabila kita hanya ingin menjalankan program Java. Sun meluncurkan J2ME yang kelak menjadi salah satu standar pemrograman di dalam PDA maupun handphone. maka kita cukup memiliki JRE saja. para pembuat Java telah menanamkan visi mereka ke dalam Java untuk small embedded customer device)seperti TV. meninggalkan C++. Tapi seandainya kita ingin mengembangkan perangkat lunak sendiri. Java pertama kali diluncurkan sebagai bahasa pemrograman umum (general purpose programming language) dengan kelebihan dia bisa dijalankan di web browser sebagai applet. dan sebagainya supaya dapat berkomunikasi satu sama lain. Pada tahun 1999 Sun meluncurkan J2EE (Java 2 Enterprise Edition) sebagai framework untuk membuat aplikasi enterprise berskala besar. Pada tahun 2001. JRE saja tidak cukup. 2 Pemrograman Berorientasi Obyek .Politeknik Telkom Pemrograman Berorientasi Obyek disusul berbagai universitas Amerika. Java lebih sederhana dan telah mengakomodasikan hampir seluruh fitur penting bahasa-bahasa pemrograman yang ada semenjak perkembangan komputasi modern. Sun juga meluncurkan SDK (Standard Development Kit) yang berisi kakas dan API untuk membuat program aplikasi berbasis Java. Sejak awal. Langkah pertama yang diambil oleh Sun Microsistem adalah dengan membuat JVM (Java Virtual machine) yang kemudian diimplementasikan dalam bentuk JRE (Java Runtime Environment). Jepang. keamanan yang lebih tinggi serta portabilitas yang besar. JVM adalah lingkungan tempat eksekusi program Java berlangsung dimana para obyek saling berinteraksi satu dengan yang lainnya. Untuk lebih meningkatkan produktivitas pengembang perangkat lunak.

Java gampang untuk dipelajari terutama untuk orang yang sudah mengenal pemrograman tapi belum terlalu terikat pada paradigma pemrograman prosedural. program yang kita buat dapat dijalankan di Windows. scalable. Sangat berorientasi obyek (OOP) dengan implementasi yang sangat baik sehingga kita bukan hanya belajar bagaimana membuat program yang baik (reusable. Ia dapat berada pada smartcard. Menyadari akan hal ini Sun membagi arsitektur Java membagi tiga bagian. Pemrograman Berorientasi Obyek 1 . dan maintanable) tetapi juga kita belajar bagaimana cara berfikir yang baik untuk mengenali struktur masalah yang sedang kita hadapi dan memecahkannya secara sistematis dengan pola-pola tertentu (patterns OpenPlatform. Bukan sekedar bahasa tapi juga platform sekaligus arsitektur. handphone. Penanganan kesalahan juga dipermudah dalam Java dengan konsep Exception. 4. Embedded device (PLC. Solaris. Tentu saja ini berarti bahwa kita harus siap mempelajari salah satu teknologi yang berkembang paling cepat di dunia dalam dua tahun terakhir ini dengan banyak membaca tentunya baik dari buku maupun melalui web. laptop. pc. Linux/Unix. Java adalah juga bahasa yang paling sesuai digunakan bersama dengan XML yang membuat data menjadi portable. Write Once Run Anywhere (WORA). dan Macintosh tanpa perlu diubah maupun di kompilasi ulang. Dalam Java program yang kita buat tidak mudah untuk “hang” karena konflik pada memori biasanya diselesaikan dengan mengumpulkan obyek-obyek yang sudah tak terpakai lagi secara otomatis oleh garbage collector. portable atau multiplatform. Sederhana. Arsitekturnya yang kokoh dan pemrograman yang aman. POS (Point of Service). pager. 2. dan bahkan server).2 Karakteristik Bahasa Java 1. semudah C dan seampuh C++: berlawanan dengan anggapan orang-orang bahwa bahasa Java sulit untuk dipelajari. Java mempunyai portabilitas yang sangat tinggi. TV. 3. micro controller). palm. ini karena kelahiran XML tidak terlepas dari dukungan parser-parser berbahasa Java.Politeknik Telkom Pemrograman Berorientasi Obyek 1. PDA.

Mempunyai automatic garbage collection untuk membersihkan obyek yang tidak terpakai dari memori Mendukung exception penanganan kesalahan sebagai salah satu cara Bagaimana Java Bekerja? Lingkungan pemrograman pada Java menggunakan compiler sekaligus interpreter agar dapat berjalan pada platform yang berbeda.Politeknik Telkom Pemrograman Berorientasi Obyek yaitu: • Enterprise Java (J2EE) untuk aplikasi berbasis web.class) seperti ditunjukkan oleh Gambar 2. dan merupakan fokus kita sekarang.1 Fitur-fitur utama yang lain: Mendukung multithreading. • • • • 1. Java compiler melakukan kompilasi pada source code (. 6. aplikasi sistem tersebar dengan beraneka ragam klien dengan kompleksitas yang tinggi.java) menjadi Java bytecodes (. Micro Java (J2ME) merupakan subset dari J2SE dan salah satu aplikasinya yang banyak dipakai adalah untuk wireless device/mobile device • • 5. Hal ini menyebabkan source code Java yang telah dikompilasi menjadi Java bytecodes dapat dijalankan pada platform yang berbedabeda. ini adalah yang biasa kita kenal sebagai bahasa Java. 2 Pemrograman Berorientasi Obyek . Selalu memeriksa tipe obyek pada saat runtime.1 berikut. Merupakan superset dari Standar Java Standard Java (J2SE). Program Java dijalankan menggunakan interpreter melalui Java Virtual machine (JVM).

sun. Gambar 2–2 Konsep Write Once. "write once.com/docs/books/tutorial/) Pemrograman Berorientasi Obyek 1 . Run Anywhere pada Java (Sumber: http://java.2). program Java hasil kompilasi akan dapat dijalankan pada berbagai platform sistem komputer dengan menggunakan Java Virtual machine (JVM).sun.com/docs/books/tutorial/) Java bytecodes merupakan instruksi mesin yang tidak spesifik terhadap processor.Politeknik Telkom Pemrograman Berorientasi Obyek Gambar 2–1 Mekanisme Kompilasi dan Eksekusi Program Java (Sumber: http://java. JVM disebut juga bytecodes interpreter atau Java runtime interpreter. run anywhere" (lihat Gambar 2. Oleh karena itu.

Politeknik Telkom

Pemrograman Berorientasi Obyek

1.2 Platform Java
Platform dapat diartikan sebagai lingkungan perangkat keras atau perangkat lunak dimana program dijalankan. Umumnya platform dinyatakan berdasarkan nama sistem operasi yang digunakan, misalnya Windows 2000, Linux, Solaris, atau MacOS. Tidak seperti bahasa pemrograman lainnya, platform Java mempunyai dua komponen, yaitu: • Java Virtual machine (Java VM) Merupakan fondasi untuk platform Java yang dapat digunakan di berbagai platform perangkat keras. • Java Application Programming Interface (Java API) Kumpulan komponen-komponen perangkat lunak siap pakai (ready-made software components) untuk berbagai keperluan penulisan program, seperti graphical user interface (GUI). Gambar 2.3. berikut memperlihatkan gambaran program yang berjalan diatas di kedua komponen platform Java.

Gambar 2–3 Platform Java (Sumber: http://java.sun.com/docs/books/tutorial/)

1.1

Aplikasi Java Ada dua tipe aplikasi pada Java yang umumnya sering

Pemrograman Berorientasi Obyek

1

Politeknik Telkom

Pemrograman Berorientasi Obyek

ditulis, yaitu aplikasi stand alone dan applets. Aplikasi stand alone merupakan aplikasi yang dijalankan langsung diatas platform Java. Sedangkan applets adalah aplikasi yang dijalankan melalui web browser ataupun applet viewer. Perbedaan applets dengan Java stand alone adalah: • • • Applets melakukan extends dari class applets. Applets tidak mempunyai fungsi main(). Applets mempunyai beberapa batasan keamanan, seperti tidak diperbolehkan membaca atau menulis file pada sistem komputer. Applets tidak dapat menjalankan program lain pada komputer yang menjalankan applets.

Selain kedua tipe aplikasi tersebut, ada beberapa tipe aplikasi Java yang lain yaitu: • • • Aplikasi berbasis Windows, menggunakan fasilitas Swing. Java Servlet, yaitu aplikasi dijalankan di sisi server. misalnya applets dengan tetapi

seperti

Java Server Pages, yaitu aplikasi di sisi server yang ditulis dalam bahasa script yang melekat pada halaman HTML untuk memberikan efek tampilan pada web browser. Java Beans dan Enterprise Java Beans, yaitu aplikasi untuk program multitiers. Java Micro Edition, yaitu aplikasi yang diperuntukan bagi perangkat genggam (handheld devices), seperti telepon genggam.

• •

1.1 Identifier di Java
Identifier adalah nama yang diberikan kepada variabel, method, kelas, paket, dan interface untuk unik mengidentifikasikan bagi kompilator dan memberikan nama yang berarti bagi pemrogram. Adapun tatacara penamaan
2 Pemrograman Berorientasi Obyek

Politeknik Telkom

Pemrograman Berorientasi Obyek

identifier: 1. 2. 3. Case sensitive, huruf kapital dan kecil dibedakan Identifier yang diberikan oleh pemrogram tidak boleh sama dengan keyword yang ada di Java Dimulai dengan huruf atau underscore (garis bawah) atau tanda ($). Namun sebisa mungkin diawali dengan huruf karena mungkin identifier dengan awalan underscore dan ($) digunakan unruk pemrosesan internal dan file import Karakter berikutnya dapat berupa huruf atau angka 0 sampai 9. Simbol-simbol seperti ‘+’ dan spasi tidak dapat digunakan

4.

1.1 Keyword di Java
Keyword adalah identifier yang digunakan Java untuk suatu tujuan khusus. Daftar keyword Java adalah sebagai berikut: Tabel 2–1 Keyword dalam Java abstract do implements import instanceof int interface long native new null private protected public return short static strictfp super switch this throw throws transient true try void volatile while
2

boolean double break byte case catch char class continue else extend s false final finally float for

Pemrograman Berorientasi Obyek

Tipe ini adalah tipe data primitif. yaitu char –Satu untuk tipe boolean yang berisi nilai logika: true/false 2. Komposit 1. long –Dua untuk tipe angka pecahan (floating point): float.1. Terdapat delapan tipe data primitif di Java: –Empat tipe adalah untuk bilangan bulat: byte.2 Tipe Data di Java Tipe data dalam Java dibagi dalam dua kategori: 1.Politeknik Telkom Pemrograman Berorientasi Obyek default if package synchronized 1. short. Sederhana 2. int. double –Satu untuk tipe karakter. Tipe sederhana tidak diturunkan dari tipe lain.1 Tipe data sederhana Tipe data sederhana merupakan tipe inti.8.1 Tipe data integer Tipe data integer memiliki jangkauan nilai sebagai berikut: Tabel 2–2 Tipe data Integer Panjang Integer 8 bit 16 bit 32 bit 64 bit 1 Tipe data byte short int long Jangkauan Nilai -27 to 27-1 -215 to 215-1 -231 to 231-1 -263 to 263-1 Pemrograman Berorientasi Obyek .1.

2. Java mengimplementasikan standar himpunan tipe dan operator titik mengambang IEEE754. Pemrograman Berorientasi Obyek 2 .2 Tipe data Floating point Tipe data ini digunakan untuk perhitungan yang melibatkan bilangan pecahan.1. digunakan tipe data long.8. Untuk data yang berukuran besar. Tipe short dan byte terutama digunakan untuk aplikasi khusus yang menangani file level rendah. seperti perhitungan kosinus. tipe int paling banyak dipakai. akar persamaan. dan sebagainya.Politeknik Telkom Pemrograman Berorientasi Obyek Pada kebanyakan situasi.

Presisi float kebanyakan tidak memadai untuk banyak aplikasi komputasi.79769e+308 Masing-masing tipe data floating point memiliki kebutuhan memori yang berbeda. Tipe data float memerlukan 32 bit sebagai single-precision.Politeknik Telkom Pemrograman Berorientasi Obyek Keakuratan nilai untuk tipe data floating point adalah sebagai berikut: Tabel 2–3 Tipe data Floating Point Panjang Float Tipe data Nilai terbesar 32 bit 64 bit Float Double 3. 2. Pemrograman Berorientasi Obyek 1 . Angka literal bertipe float berakhiran F. contoh 3. Nama double mengacu pada presisinya yang sebesar dua kali dibandingkan float.14F sedangkan kalau tidak diberi akhiran F akan dipandang sebagai bertipe double. Kode 2 byte memungkinkan 65.536 karakter.40282e+38 1. sedangkan tipe data double memerlukan 64 bit sebagai double precision.1. Literal dari char harus berada diantara single quotes (‘ ‘) Contohnya : ‘a’ ‘\t’ huruf a karakter tab Unicode dirancang untuk menangani semua karakter di dunia dalam kode 2 byte. dimulai dari nilai byte 0 sampai 65.3 Tipe data Char Tipe data char merupakan tipe data yang direpresentasikan dengan 16-bit Unicode character. Himpunan karakter ASCII dipandang sebagai bagian dari Unicode dan ditempatkan sebagai 256 karakter pertama dari Unicode.8.535.

4 Tipe data Boolean Tipe data boolean memiliki 2 literal yaitu : true dan false. Tipe ini dapat berupa array. kelas..1. string. Pemrograman Berorientasi Obyek 1 . contoh: String s=”Saya makan nasi”... Statemen : boolean truth = true. dan interface.”).Politeknik Telkom Pemrograman Berorientasi Obyek Terdapat pula beberapa barisan escape untuk karakter Unicode yang spesial. seperti berikut: Barisan Escape \b \t \n \r \” \’ \\ Tabel 2–4 Karakter Unicode Nama Nilai Unicode Backspace Tab Linefeed Carriage return Petik ganda Petik tunggal Backslash \u008 \u009 \u00a \u00d \u0022 \u0027 \u005c 2. Khusus untuk String pada Java dikenali sebagai kelas. bukan sebagai array of character. mendeklarasikan variabel truth sebagai tipe data boolean dan memberikan nilai true 1..1.8.1 Tipe data komposit Tipe data komposit merupakan tipe data yang disusun dari tipe data sederhana atau tipe komposit lain yang sudah ada. Contoh. String pada Java diapit oleh tanda petik ganda (“.

2 Operator di Java Java memiliki beberapa jenis operator di antaranya: –Operator unary: Tabel 2–5 Operator unary Nama Operator Simbol Definisi Increment Decrement Contoh penggunaan: int x = 5. int y = x++. pada kasus di atas. berbeda kasusnya pada contoh di bawah ini: int x = 5. pada kasus di atas nilai y akan berisi 5 dan nilai x akan berisi 6 karena nilai y akan mengambil nilai x dahulu setelah itu baru nilai x ditambahkan satu. nilai y akan berisi 6 dan x berisi 6 karena nilai x akan ditambahkan satu dahulu baru kemudian dimasukkan ke variabel y. int y = ++x. –Operator aritmatika: Nama Operator Tabel 2–6 Operator aritmatika Simbol Deskripsi + Menambahkan dua buah nilai Pengurangan dua buah nilai 1 ++ -- Akan menambahkan nilai sejumlah satu Akan mengurangi nilai sejumlah satu Penambahan Pengurangan Pemrograman Berorientasi Obyek .Politeknik Telkom Pemrograman Berorientasi Obyek 1.

2 Sintaks if Pemrograman Berorientasi Obyek .Politeknik Telkom Pemrograman Berorientasi Obyek Perkalian Pembagian Sisa bagi –Operator relasi: * / % Perkalian dua buah nilai Pembagian dua buah nilai Sisa pembagian dua buah nilai Tabel 2–7 Operator relasi Simbol Deskripsi < > <= >= == != Kurang dari Lebih dari Kurang dari atau sama dengan Lebih dari atau sama dengan Sama dengan Tidak sama dengan –Operator boolean: Tabel 2–8 Operator boolean Simbol Deskripsi && || ^ ! AND OR XOR NOT 1.1 Percabangan di Java Percabangan di Java menggunakan dua jenis Sintaks: 1.

boolean testexpr. 1.1 Perulangan di Java Perulangan di Java menggunakan 3 jenis Sintaks: 1. Perulangan for Sintaks for sebagai berikut : for (init_expr. } Statements. case constant2 : break. sebagai berikut : if (boolean expression) { Statement or block } else if (boolean expression) { Statement or block } else { Statement or block } 2. Statements. Sintaks switch Sintaks switch sebagai berikut : switch (expression) { case constant1 : break.alter_expr) { Statement or block } Pemrograman Berorientasi Obyek 2 . default : break.Politeknik Telkom Pemrograman Berorientasi Obyek Sintaks if-else. Statements.

i<10.out.println(i). do { Sistem. } 3.println(i). } while (i<10).i++) { Sistem..out. while (i<10) { Sistem.Politeknik Telkom Pemrograman Berorientasi Obyek Contoh : for (int i=0. sebagai berikut Pemrograman Berorientasi Obyek 3 .while Sintaks do/while loop. do { Statement or block } while (boolean testexpr) Contoh : int i = 0.println(i)... Perulangan while Sintaks looping while sebagai berikut : while (boolean testexpr) { Statement or block } Contoh : int i = 0. i++. } 2.out. i++. Perulangan do.

Politeknik Telkom Pemrograman Berorientasi Obyek Pemrograman Berorientasi Obyek 3 .

Exception E.Politeknik Telkom Pemrograman Berorientasi Obyek Latihan A. 1. Pilihan Ganda Yang tidak termasuk fitur Java adalah….. Applets tidak mempunyai fungsi main(). Applets dapat menjalankan program lain pada komputer yang menjalankan applets. Socket Programming 2. A. Fitur Java yang digunakan untuk mendukung pemrosesan parallel adalah…. Multithreading B. Exception E. B. C. Multithreading B.. 3. Socket Programming Fitur Java untuk menangani error disebut…. Feature selection C. Socket Programming Berikut yang tidak termasuk karakteristik applet adalah. Garbage collection D. seperti tidak diperbolehkan membaca atau menulis file pada sistem komputer. A. D. Feature selection C. Garbage collection D. Applets mempunyai beberapa batasan keamanan. Feature selection C. Salah semua Pemrograman Berorientasi Obyek 1 4. A. Multithreading B.. Exception E. Garbage collection D. A. E. Applets melakukan extends dari class applets. .

.. While B. Berikut yang tidak termasuk perulangan di Java adalah. A.while E. Berikut yang tidak termasuk tipe data primitif di Java adalah.. Pemrograman Berorientasi Obyek ..Politeknik Telkom Pemrograman Berorientasi Obyek 5. 9 C.. A. int y = x++. 12 Fungsi main( ) dalam Java adalah... 1_x 1. Do. For C. Berikut identifier yang dapat menjadi nama variabel di Java adalah.... 8 B. _1+2 C. Int E. Char C. Repeat D. A. penanda program yang akan dijalankan oleh Java 3 1. Boolean D. 11 E. 10 D. New D. A.. int z = --y. Perhatikan potongan kode berikut: int x = 10. Semua benar 1. Extends E. Float 1. $x B. berapakah nilai z? A. String B...

Instansiasi obyek Keperluan pewarisan Keperluan pewarisan jamak Output ke layar Pemrograman Berorientasi Obyek 1 . E. D. C.Politeknik Telkom Pemrograman Berorientasi Obyek B.

Politeknik Telkom Pemrograman Berorientasi Obyek 2.. Sebutkan dan jelaskan 3 fitur yang ada pada bahasa pemrograman Java! 2.d. C. 10! Pemrograman Berorientasi Obyek 3 . Essay new( ) dalam Java adalah. Sebutkan dan jelaskan 3 arsitektur bahasa pemrograman Java! 3.d.. 100 4. Buatlah program dengan bahasa pemrograman Java untuk menampilkan bilangan ganjl antara 1 s. Fungsi A. 100! 5. D. E. penanda program yang akan dijalankan oleh Instansiasi obyek Keperluan pewarisan Keperluan pewarisan jamak Output ke layar A. 1. Buatlah program dengan bahasa pemrograman Java untuk menampilkan hasil dari f(x) = x2+2x+1 dengan nilai x 1 s. Buatlah program dengan bahasa pemrograman Java untuk menampilkan bilangan genap antara 1 s.d. Java B..

Penjelasan tentang karakteristik kelas dan obyek.Politeknik Telkom Pemrograman Berorientasi Obyek 1 Kelas dan Obyek Overview Bab ini akan menjelaskan tentang dasar Pemrograman Berorientasi Obyek yaitu Kelas dan Obyek. serta cara pembuatan dan pendeklarasian kelas di dalam Java. Akan dijelaskan juga tentang cara pengaksesan komponen kelas. 4. komponen kelas. Mengetahui Mengetahui Mengetahui Mengetahui Mengetahui Java pengertian kelas dan obyek karakteristik kelas dan obyek fitur Pemrograman Berorientasi Obyek cara menentukan komponen dari kelas cara mendeklarasikan kelas dan obyek di Pemrograman Berorientasi Obyek 1 . 5. 2. 3. Tujuan 1.

1 Gambaran Umum tentang Orientasi Obyek Teknik pemecahan masalah pada object oriented lebih dekat merupakan model tersekat dengan pemecahan masalah sehari-hari oleh manusia. Peminjam memberitahukan kepada Ibu Vika judul buku yang akan dipinjam.Politeknik Telkom Pemrograman Berorientasi Obyek 1. Kita bayangkan bagaimana kita memecahkan permasalahan seharihari: kita ingin menyewa buku dari Perpustakaan Politeknik Telkom Untuk memecahkan masalah ini. peminjam dapat dengan mudah berjalan ke perpustakaan dan bertanya kepada petugas. Sekarang kita kaji mekanisme yang dapat digunakan untuk memecahkan permasalahan : ○ Pertama peminjam menemukan petugas dan memberikan pesan kepada petugas yang berisi sebuah permintaan Merupakan kewajiban dari Ibu Vika untuk melayani permintaan tersebut Ada beberapa metode (sebuah algoritma atau sekumpulan operasi) yang digunakan oleh Ibu Vika Peminjam tidak perlu mengetahui metode yang digunakan untuk menyelesaikan permintaan seperti informasi disembunyikan ○ ○ ○ Pemecahan masalah ini membawa kita ke gambaran konsep pertama pada pemrograman berorientasi obyek : Pemrograman Berorientasi Obyek 1 . misal nama petugas tersebut adalah Ibu Vika.

” Beberapa hal penting disini adalah : ○ Klien mengirim permintaan dan tidak mengetahui cara memenuhi request.Politeknik Telkom Pemrograman Berorientasi Obyek “Sebuah program berorientasi obyek terstruktur atas bersatunya agen-agen yang berinteraksi yang disebut obyek. Hal ini disebut dengan prinsip penyembunyian informasi (information hiding) ○ Prinsip dalam penyampaian pesan adalah mencari obyek lain untuk melakukan pekerjaan ○ Interpretasi dari sebuah pesan dijelaskan oleh penerima dan hal ini akan berbeda antar penerima yang berbeda ○ Tanggung jawab obyek pada pemrograman berorientasi obyek disebut behaviour ○ Obyek mempunyai tanggung jawab dalam memenuhi suatu permintaan Pemrograman Berorientasi Obyek 3 . antara peminjam dan petugas terjadi beberapa interaksi dimana petugas perpustakaan menyediakan sebuah layanan. Untuk merespon pesan. Prinsip penting berikutnya adalah : membuat “Aksi diinisiasi di dalam pemrograman berorientasi obyek dengan mengirimkan sebuah pesan ke suatu agen (obyek) untuk merespon aksi. pihak penerima akan menjalankan metode untuk memenuhi permintaan tersebut. Tiap obyek menyediakan layanan atau menampilkan aksi yang digunakan oleh anggota lain dalam komunitas. pihak ini akan bertanggungjawab untuk menjalankan aksi yang berkaitan. Pesan menkodekan permintaan untuk sebuah aksi dan biasanya ditemani oleh beberapa informasi (argument) yang diperlukan dalam permintaan tersebut. Jika penerima telah menerima pesan. Pihak penerima adalah obyek tujuan dimana pesan akan dikirim. Tiap obyek mempunyai peran.” Dalam permasalahan antara peminjam dengan petugas perpusatakaan. Anggota dari object oriented saling permintaan.

Latihan ○ Pemrograman Berorientasi Obyek 1 . Contoh : Siswa mempunyai State nama. mata kuliah yang diambil. Ibu Vika juga instance dari kategori Petugas Perpustakaan. Behaviour : behaviour (tingkah laku) mengindikasikan bagaimana sebuah obyek beraksi dan bereaksi ketika terjadi perubahan State dan pengiriman pesan (message). pengarang. Metode yang dijalankan oleh sebuah obyek ketika merespon sebuah pesan (message) dibuat oleh kelas yang menerima pesan. Obyek merupakan dasar bangunan pada struktur Pemrograman Berorientasi Obyek. Konsep berorientasi obyek berdasarkan obyek. Contoh : Siswa mempunyai behaviour mengikuti ujian dan masuk kelas. Petugas perpustakaan merepresentasikan sebuah kelas atau kategori untuk semua petugas perpustakaan. jumlah halaman. nim. Di dalam kehidupan yang nyata. Sebuah Obyek merupakan instance dari kelas.Politeknik Telkom Pemrograman Berorientasi Obyek 1.1 Kelas dan Obyek Sebuah Kelas mendefinisikan struktur (structure) dan tingkah laku (behaviour) sebuah obyek atau sekumpulan obyek. Kita berinteraksi dengan instance dari kelas tetapi kelas yang menjelaskan tingkah laku (behaviour) dari sistem. (OOP=Object oriented Programming). Buku mempunyai State judul. Semua obyek dari sebuah kelas mengggunakan metode yang sama untuk merespon pesan yang sama. jenis kelamin. Contoh : kita dapat mengetahui lebih banyak tentang tingkah laku Ibu Vika sebagai petugas perpustakaan dengan mengetahui bagaimana seorang petugas perpustakaan bertindak. obyek mempunyai dua karakteristik : State dan behaviour ○ State : State dari obyek diindikasikan dengan sekumpulan atribut dan nilai dari atribut tersebut.

dan identitas yang tidak akan pernah sama. 1. seorang siswa akan mempunyai nilai yang berbeda untuk nimnya dan akan disimpan di atribut StudentNumber 1 Pemrograman Berorientasi Obyek . identifikasi kelas dan obyek yang add. Dua obyek mungkin memiliki behaviour yang sama. State yang mungkin sama atau mungkin tidak sama. dan juga sebutkan State dan behaviour nya. Obyek perangkat lunak dimodelkan setelah adanya obyek di dunia nyata dimana mereka juga mempunyai State dan behaviour. Method merupakan suatu fungsi yang berasosiasi dengan sebuah obyek. Seperti nim.1 Komponen Kelas Dalam pemrograman berorientasi obyek. Contoh : terdapat banyak obyek siswa.Politeknik Telkom Pemrograman Berorientasi Obyek Dari gambar disamping. Setiap obyek mempunyai identitas yang unik. Identitas sebuah obyek tidak akan berubah pada waktu hidup nya (lifetime). tiap obyek mempunyai instance variabel dan tiap obyek mempunyai nilai yang berbeda yang disimpan dalam instance variabel. Sebuah obyek mengatur State nya dalam satu atau lebih variabel/atribut dan mengimplementasikan behaviour dengan method. Contoh : Siswa mempunyai Nim dimana nim seorang siswa berbeda dengan siswa yang lain. Kita dapat mengakses data dari sebuah kelas dengan menggunakan method. seperti halnya setiap orang mempunyai identitas yang unik. kita membuat obyek perangkat lunak (software) yang memodelkan obyek dunia nyata.

Sebuah obyek merupakan instance dari kelas dan akan mengenkapsulasi method dan atribut pada suatu kelas. Komponen utama dari sebuah kelas adalah atribut dan method. Setelah membuat kelas maka kita dapat membuat obyek dari kelas tersebut. Di dalam kelas terdapat statemen yang didalamnya termasuk deklarasi atribut untuk menyimpan nilai dan method yang didalamnya terdapat kode-kode untuk mengeluarkan nilai yang diharapkan. Sebuah kelas dapat menjadi pabrik untuk membangun obyek.Politeknik Telkom Pemrograman Berorientasi Obyek Gambar 3–1 Kelas Sebuah kelas merupakan cetak biru yang mendefinisikan atribut dan method. Di bawah ini Sintaks untuk mendeklarasikan kelas Pemrograman Berorientasi Obyek 1 . Apilkasi java terdiri dari kelas-kelas dimana terdapat deklarasi atribut dan method. 1. Blok kelas ditandai dengan tanda {}. yang mengindikasikan permulaan dan akhir dari suatu kelas. 1. Semua Statement di dalam Java diakhiri dengan tanda “. Sebuah kelas mendefinisikan obyek dan karakteristiknya.2 Membuat Kelas dan Obyek di Java Struktur dasar pemrograman dengan aplikasi Java adalah kelas dan obyek.2.1 Pembuatan kelas di Java Atribut dan method dideklarasikan di dalam kelas.”. Obyek dapat digunakan sepanjang program.

Kelas merupakan abstraksi dari property umum obyek.2. Berikut adalah contoh pendeklarasian kelas librarian : class Librarian { String librarianName. Librarian Lib1.Politeknik Telkom Pemrograman Berorientasi Obyek class <classname> { //declaration of data member //declaration of methods } Kata class merupakan keyword pada Java yang digunakan untuk mendeklarasikan kelas dan <classname> digunakan untuk memberikan nama kelas. Kelas kosong (Empty class) merupakan kelas yang didalamnya tidak terdapat atribut dan method. // digunakan untuk memberikan komentar dan tidak akan dieksekusi. int librarianID. void getLibrarianName() {}. Deklarasi : mendeklarasikan suatu variabel yang akan menyimpan referensi ke obyek <class name> <object name>. Pemrograman Berorientasi Obyek 1 . } //data member //data member //method 1.2 Pembuatan Obyek di Java Obyek merupakan instance dari class dan mempunyai identitas yang unik. Tanda slash ganda. Langkah-langah pembuatan obyek : 1. Nama kelas akan dibutuhkan ketika pembuatan obyek dari kelas tersebut.

Instansiasi atau pembuatan : Membuat obyek dari kelas yang diinginkan. 1.Politeknik Telkom Pemrograman Berorientasi Obyek 2. Memori belum dialokasikan sehingga tidak dapat dilakukan penyimpanan data obyek. Lib1 = new Librarian(). Penggunaan Access Specifiers merupakan implementasi dari fitur OOP Encapsulation. Access Specifiers di Java adalah : ○ ○ ○ ○ • Public Private Protected Friendly Access Specifiers Public Access Specifiers public membuat kelas dapat diakses dari manapun termasuk dari kelas lain dan kelas-kelas yang berada dalam package yang berbeda. Kedua langkah diatas dapat disatukan menjadi sebuah Statement : Librarian Lib1 = new Librarian().1 Access Specifiers dan Access Modifiers Kelas memungkinkan obyek untuk mengakses atribut atau method dari kelas lain. 1. Operator yang harus digunakan untuk mengalokasikan memori adalah : <object name> = new <class name>(). Java menyediakan Access Specifiers dan Modifiers untuk menentukan bagian dari kelas yang boleh diakses oleh kelas lain dan bagaimana penggunaan atribut dan method tersebut.1 Access Specifiers Access Specifiers mengontrol pengaksesan dari bagian kelas oleh obyek yang lain.1. Keyword public Pemrograman Berorientasi Obyek 1 . Ketika sebuah obyek dideklarasikan.

atribut. protected string librarianName. Bagian yang dideklarasikan sebagai private hanya dapat diakses oleh anggota kelas itu sendiri. public string librarianName. Keyword private digunakan untuk mendeklarasikan Access Specifiers private. • Access Specifiers Friendly Jika kita lupa memberikan atau tidak memberikan suatu Access Specifier pada anggota kelas. karena ini hanya jenis akses level. <data type> <variable name>. Access Specifiers ini mempunyai akses seperti Public tetapi hanya untuk kelas yang berada dalam satu package. int librarianID. maka secara otomatis Access Specifiersnya adalah friendly. • Access Specifiers Protected Access Specifiers protected digunakan jika anggota kelas dapat diakses oleh kelas turunan. maupun kelas. Friendly merupakan default Access Specifiers pada Java. • Access Specifiers Private Access Specifiers Private digunakan untuk menyediakan akses yang sangat terbatas. 2 Pemrograman Berorientasi Obyek . public <data type> <variable name>.Politeknik Telkom Pemrograman Berorientasi Obyek digunakan untuk mendeklarasikan bahwa bagian kelas tersebut public. Access Specifiers ini dapat digunakan baik untuk method. private <data type> <variable name>. Access Apecifiers friendly tidak memerlukan keyword. private int librarianID. Keyword protected digunakan untuk mendeklarasikan anggota sebagai protected protected <data type> <variable name>.

sedangkan Modifiers digunakan untuk mendefinisikan bagaimana suatu method atau atribut dapat dimodifikasi oleh kelas yang lain.1. Modifiers di Java adalah : ○ Static ○ Final ○ Abstract ○ Native ○ Synchronized • Access Modifiers Static Atribut dan method dapat menjadi statik atau tidak statik. Atribut kelas membawa informasi yang dibagi ke semua instance dari kelas. Bagian kelas (atribut dan method) yang tidak statik disebut sebagai atribut instance dan method instance. //non static method Setiap instance dari kelas (object) mendapatkan copy-an atribut instance dan method instance yang didefinisikan di dalam kelas. //static attribute int LibrarianID.1 Access Modifiers Access Modifiers digunakan untuk mendefinisikan bagaimana suatu atribut dan method digunakan oleh kelas dan obyek yang lain.//static methods void getLibrarianName().Politeknik Telkom Pemrograman Berorientasi Obyek 1. Method kelas dapat digunakan secara langsung tanpa harus membuat instance (obyek). //non static attribute static void getLibrarianName(). sedangkan bagian kelas yang statik disebut sebagai atribut kelas dan method kelas yang dimiliki oleh kelas dan bukan instance dari kelas. Perbedaan utama Access Specifiers dan Modifiers adalah. sedangkan jika akan mengakses method instance maka harus membuat instance dari kelas terlebih dahulu (obyek). Access Specifiers mendefinisikan hak akses anggota kelas. static int LibrarianID. • Access Modifiers Final Pemrograman Berorientasi Obyek 1 . jika satu obyek mengubah atribut maka akan mengubah semua obyek yang berasal dari kelas yang sama.

name = “Mary”. atribut. Std1.Politeknik Telkom Pemrograman Berorientasi Obyek Modifiers final mengindikasikan bahwa anggota kelas tidak dapat dimodifikasi. Jika sebuah atribut telah dideklarasikan final maka kita tidak dapat mengubah nilai atribut tersebut.1. • Access Modifiers Synchronized Modifier synchronize digunakan hanya untuk method. Kelas abstrak selalu mempunyai kelas turunan. Keyword final digunakan dalam method. 1. Sintaksnya sebagai berikut <object name>.1 Mengakses atribut Atribut dapat diakses dari luar kelas dengan cara memanggil nama obyek kemudian diikuti tanda titik dan nama dari atribut. Modifier ini digunakan untuk mengontrol akses ke bagian kode ketika sedang menjalankan sistem secara multithread (banyak thread).<attribute name> = <value> Contoh penggunaannya : Std. dimana kelas ini akan menyimpan informasi tentang student 1.1 Atribut dan Method Sebaiknya memberikan nilai ke atribut sebelum obyek digunakan. • Access Modifiers Native Modifier native digunakan hanya untuk method. • Access Modifiers Abstract Kelas abstract digunakan sebagai kelas dasar yang nantinya akan diturunkan ke kelas lainnya. final juga membuat kelas tidak dapat diturunkan (inheritance) karena method yang final tidak dapat dimodifikasi di dalam kelas turunan. dan kelas. seperti C atau C++. Modifier ini digunakan untuk menginformasikan compiler bahwa method tersebut telah dikodekan dengan bahasa pemrograman selain Java. Contoh kelas student.name = “John”. Pemrograman Berorientasi Obyek 3 . Perhatikan contoh dibawah untuk melihat bagaimana kelas dan obyek bekerja.

1. digunakan untuk mengalokasikan memoru ke variabel std dan juga variabel std1.name.name dan Std1. dan karena std2 menunjuk ke memori yang mengalokasikan std1 maka std2.Politeknik Telkom Pemrograman Berorientasi Obyek Jika suatu atribut instance tidak diisi oleh suatu nilai maka atribut akan diisi nilai default.name = “Mary”. dimana disini diberikan nilai 0. digunakan untuk memberikan nilai “Mary” ke atribut std1.name adalah “Mary”. Kode std2 = std1 digunakan untuk mengalamatkan nilai std1 ke std2. 1.2 Mengakses Method Sintaks untuk mendefinisikan method : void <method name> () { // Method body } Pemrograman Berorientasi Obyek 3 . Kode Std. sehingga sebuat obyek baru telah dibuat. Atribut lain yang tidak diberikan nilai akan diberikan nilai default. std2 merupakan sebuah variabel yang menunjuk ke memory dimana dialokasikan. Gambar 3–2 Mengakses Atribut Kode std = new Student(). digunakan untuk memberikan nilai “John: ke atribut std. tidak ada obyek baru yang dibuat.name = “John”.

public double getAverage() { return((test1+test2+test3)/3). Kita dapat membuat beberapa kelas di dalam program Java.println(“Name : “. 1.Politeknik Telkom Pemrograman Berorientasi Obyek Di dalam Sintaks diatas.2 Method main() Sebuah program Java mempunyai method main(). +librarianName) } Pada contoh diatas nama method adalah dan tidak mengambalikan nilai. Compiler Java akan mengcompile semua kelas di dalam program. kata void menspesifikasikan bahwa fungsi tidak mengembalikan nilai. method ini akan memanggil method-method yang dideklarasikan di dalam kelas.out. tetapi untuk menjalankan program tersebut dibutuhkan method main() di dalam program. Sintaks method main() : public static void main(String[] args) { //code for the main method } Header pada method main terdapat 3 keyword yaitu : ○ Public : keyword public mengindikasikan bahwa method dapat diakses dari obyek manapun di dalam program java ○ Static : keyword static digunakan dengan method main(). <method name> menspesifikasikan nama dari method tersebut. Pemrograman Berorientasi Obyek 3 . sehingga tidak perlu membuat obyek untuk memanggil method main() ○ Void : keyword void mengindikasikan bahwa method tersebut tidak mengembalikan nilai. public void getLibrarianName() { sistem. } Pada contoh diatas nama method adalah dan mengembalikan sebuah nilai dengan tipe data double.

Pemrograman Berorientasi Obyek 3 .Politeknik Telkom Pemrograman Berorientasi Obyek Parameter mengindikasikan bahwa method main() akan menerima sebuah argumen dalam bentuk array dengan bertipe String. Method main() dapat dideklarasikan di kelas manapun tetapi nama file dan nama kelas tempat method main() dideklarasikan harus sama.

Sintaks konstruktor adalah : public class <class name> { <constructor name same with class name>(). Untuk mengimplementasikan permasalahan diatas maka dibuatlah program Java.2 Praktek Dibutuhkan untuk menyimpan data mahasiswa dalam Aplikasi akademik. Konstruktor biasanya digunakan untuk memberikan nilai pada atribut ketika obyek dibuat dari kelas. karena mewakili permasalahan nyata yaitu Pemrograman Berorientasi Obyek 1 . nilai UTS dan UAS untuk menghitung nilai akhir. } } 1. Method ini mempunyai nama yang sama dengan nama kelas tempat konstruktor dideklarasikan.1 Constructor (Konstruktor) Konstruktor merupakan method yang akan dieksekusi secara otomatis ketika sebuah obyek dibuat. test3. test2. } Contoh penggunaan konstruktor adalah : public class Student { public String name.//attribute Student(String theName) //Konstruktor { name = theName. Setiap mahasiswa akan disimpan nim.Politeknik Telkom Pemrograman Berorientasi Obyek 1. } public double getAverage() { return((test1+test2+test3)/3). nama.//attribute public double test1. Konstruktor tidak mengembalikan nilai dan tidak dapat dideklarasikan sebagai static.

println(“Total Score : “+getTotalScore()). private int scoreUTS.java class Student { private String studentId. } public setScore(int UAS. private String studentName.Politeknik Telkom Pemrograman Berorientasi Obyek pada suatu institusi pendidikan terdapat banyak obyek mahasiswa.int UTS) { scoreUAS = UAS.println(“Student Name : “+studentName). public Student(String name. } public double getTotalScore() { return((scoreUTS+scoreUAS)/2). studentName = name. scoreUTS = UTS. } public void show() { sistem. Untuk membuat obyek mahasiswa terlebih dahulu dibuat kelas Mahasiswa //creating file MainProgramAkademik.println(“Student ID : “+studentId). String id) { studentId = id.out.out.out. sistem. sistem.scoreUAS. } } public class MainProgramAkademik { public static void main(String[] args) { 2 Pemrograman Berorientasi Obyek .

Politeknik Telkom Pemrograman Berorientasi Obyek Student std Student(“Mary”.setScore(90.80). std. } } //Running in command prompt javac MainProgramAkademik.”R12300123”). std.show().java java MainProgramAkademik = new Pemrograman Berorientasi Obyek 2 .

2 Pemrograman Berorientasi Obyek . 6. 7. Kelas mendefinisikan struktur (structure) dan tingkah laku (behaviour) sebuah obyek atau sekumpulan obyek. Header pada method main terdapat 3 keyword yaitu Public. Konstruktor merupakan method yang akan dieksekusi secara otomatis ketika sebuah obyek dibuat dan mempunyai nama yang sama dengan nama kelas tempat konstruktor dideklarasikan. Static. Obyek merupakan instance dari kelas. dan void. 5. 2. dan dan aksi dan 3. Obyek mempunyai dua karakteristik : State behaviour. State merupakan sekumpulan atribut nilai dari atribut tersebut. Method main() dapat dideklarasikan di kelas manapun tetapi nama file dan nama kelas tempat method main() dideklarasikan harus sama. Java menyediakan Access Specifiers dan Modifiers untuk menentukan bagian dari kelas yang boleh diakses oleh kelas lain dan bagaimana penggunaan atribut dan method tersebut.Politeknik Telkom Pemrograman Berorientasi Obyek Rangkuman 1. 4. Behaviour merupakan dan reaksi obyek ketika terjadi perubahan State pengiriman pesan.

Kelas kosong (Empty class) merupakan kelas yang didalamnya tidak terdapat atribut dan method 4. Jika sebuah atribut telah dideklarasikan final maka kita tidak dapat mengubah nilai atribut tersebut. final juga membuat kelas tidak dapat diturunkan (inheritance) 6. State yang mungkin sama atau mungkin tidak sama.Politeknik Telkom Pemrograman Berorientasi Obyek Kuis Benar Salah 1. Konstruktor akan dieksekusi secara otomatis ketika sebuah obyek dibuat 8. dan identitas yang tidak akan pernah sama 3. Untuk mengakses method main diperlukan pembuatan obyek. Class merupakan instansiasi dari Object 2. 7. Dua obyek mungkin memiliki behaviour yang sama. Access Specifiers protected digunakan jika anggota kelas dapat diakses oleh kelas itu sendiri 5. Nama konstruktor harus sama dengan nama kelas tempat konstruktor tersebut dideklarasikan Pemrograman Berorientasi Obyek 3 .

public addressPegawai. Pada suatu sistem supermarket dibutuhkan untuk menyimpan data pembelian barang-barang yang dibeli oleh konsumen. pabrik yang memproduksi. nama barang. } public static void main (String[] argument) { Pegawai peg1=new Pegawai(). 4 Pemrograman Berorientasi Obyek . harga barang tidak boleh diakses oleh kelas lain meskipun turunannya. Tiap barang yang ada didalam supermarket mempunyai nomor barcode. Perhatikan code di bawah ini 2. hanya boleh diakses oleh kelas barang saja. Pegawai. } public void setIdPegawai(String Id) { idPegawai = Id. public String getIdPegawai() { return idPegawai. public class Pegawai { private String idPegawai. Aplikasikan syarat ini pada kelas Barang Buatlah sebuah main class untuk mengakses kelas barang. 4.setIdPegawai("P23001"). String namePegawai. Buatlah deklarasi kelas untuk class Barang Pada kelas barang. dan harga. 3.Politeknik Telkom Pemrograman Berorientasi Obyek Latihan 1.

sehingga dapat dieksekusi.Politeknik Telkom Pemrograman Berorientasi Obyek } } Terdapat kesalahan Sintaks. koreksi Sintaks diatas Pemrograman Berorientasi Obyek 5 .

Mengetahui konsep interface di Java dan 6 Pemrograman Berorientasi Obyek . komposisi. Mengetahui hubungan antar kelas implementasinya di Java 3. Mengetahui konsep array di Java 2. Mengetahui konsep kelas abstrak di Java 5. Berisi tentang hubungan asosiasi. diawali dengan penjelasan array pada Java. Kemudian dilanjutkan dengan penjelasan tentang pewarisan kelas. kelas abstrak. agregasi.Politeknik Telkom Pemrograman Berorientasi Obyek 1 Hubungan Antar Kelas dan Pewarisan Overview Bab ini akan menjelaskan tentang hubungan antar kelas dan implementasinya pada Java. dan juga interface Tujuan 1. Mengetahui pewarisan kelas di Java 4.

ketika mendeklarasikan Array belum dibentuk sebuah obyek Array. merupakan standar penulisan array dalam C. bahasa Java menggunakan bentuk deklarasi array alternatif dengan menggunakan kurung siku di sebelah kiri seperti dalam contoh berikut : char[] s. Deklarasi Array hanya membuat sebuah referensi yang dapat digunakan untuk mengacu ke sebuah obyek Array. Berikut contoh deklarasi Array : char s[]. tetapi sebaiknya konsisten dalam menggunakan Pemrograman Berorientasi Obyek 7 . Contoh deklarasi array di atas. Array memungkinkan untuk mengacu ke sekumpulan obyek dengan nama yang sama. Oleh karenanya. Array merupakan sebuah obyek meskipun ia terdiri dari elemen yang bertipe data primitif. Seperti halnya kelas yang lain.1 Array 1. Besarnya memori yang digunakan oleh elemen-elemen Array akan dialokasikan secara dinamis dengan menggunakan pernyataan new atau dengan array initializer. // point adalah sebuah kelas Dalam bahasa pemrograman Java.1. Kedua bentuk deklarasi array di atas dapat digunakan. // point adalah sebuah kelas Sebuah deklarasi array dapat ditulis sebagai pendeklarasian tipe array di bagian kiri dan nama variabel di bagian kanan.1 Mendeklarasikan Array Array biasanya digunakan untuk mengelompokkan data atau obyek yang memiliki tipe yang sama.Politeknik Telkom Pemrograman Berorientasi Obyek 1. Format demikian agak sulit untuk dibaca. C++ dan Java. dengan menggunakan kurung siku setelah nama variabel. point p[]. point[] p. Array dapat dideklarasikan dengan tipe apa saja. baik itu yang bertipe data primitif maupun obyek.

Biasanya nilai elemen Array dapat diinisialisasi dengan nilai default sebagaimana ditunjukkan berikut ini : s[0] = ‘A’..Politeknik Telkom Pemrograman Berorientasi Obyek satu bentuk saja. i<26. s = new char[26]. } return s. Perhatikan penggalan kode sebagai berikut : public char[] createArray { char[] s. kurung siku tersebut berlaku bagi semua variabel yang berada di sebelah kanannya. Dalam deklarasi array. i++) { s[i] = (char) ('A' + i). Ketika mendeklarasikan array dengan kurung siku yang berada di sebelah kiri nama variabel.2 Membuat Array Seperti halnya dalam pembuatan obyek. 1. . elemen di dalamnya akan diinisialisasi dengan nilai default (‘\u0000’ untuk data tipe char). Ketika membuat sebuah Array. Contoh di bawah ini membuat sebuah Array dengan tipe primitif char: s = new char[26]. for(int i=0.. s[1] = ‘B’. } Penggalan kode di atas mempunyai dalam heap memory sebagai berikut : representasi 8 Pemrograman Berorientasi Obyek . tidak ditentukan ukuran aktual dari array.1. Array dibuat dengan menggunakan keyword new. Baris di atas membuat sebuah array dengan 26 nilai char.

1). 2). Untuk membuat Array dengan elemen obyek.3 Menginisialisasi Array Ketika membuat sebuah Array. Pada kode di atas. p[1] = new point(1.Politeknik Telkom Pemrograman Berorientasi Obyek Gambar 4–1 Representasi Array Primitif dalam Heap Memory Indeks array dimulai dengan angka 0. dibuat sebuah Array yang masingmasing elemennya merupakan referensi obyek yang bertipe Point. .. Pernyataan tersebut tidak membuat 10 obyek Point. 1.. gunakan cara penulisan berikut : p = new point[10]. Dalam kasus Array char s seperti pada contoh di atas. Apabila program berusaha mengakses array di luar batas yang legal. gunakan pernyataan berikut : p[0] = new point(0. Untuk membuat obyek Point.1. setiap elemen di dalamnya akan diinisialisasi dengan nilai default. setiap elemen dari Pemrograman Berorientasi Obyek 9 . maka akan muncul runtime exception. Batasan legal untuk nilai indeks ini adalah dari nol hingga jumlah elemen array – 1.

names[1] = "Jen".1. new MyDate(1. names[0] = "Georgianna". Dalam kasus Array p seperti juga contoh di atas. "Simon"}. Array dengan 1. 10 Pemrograman Berorientasi Obyek .Politeknik Telkom Pemrograman Berorientasi Obyek Array s diinisialisasi dengan nilai ‘\u0000’. 1964). Setelah proses pengisian p[0] = new Point(). names[2] = "Simon". Contoh berikut ini memperlihatkan cara membuat Array dua dimensi : int twoDim [][] = new int[4][].4 Array Multidimensi Dalam Java. Java juga memiliki cara singkat untuk membuat sebuah obyek Array dengan elemen-elemennya memiliki nilai awal : String names[] = {"Georgianna". new MyDate(22. 2000). Cara singkat ini dapat digunakan untuk berbagai jenis tipe. "Jen". 1964). 1. 7. }. barulah diperoleh elemen pertama dari Array p yang merujuk ke obyek Point. dapat dibuat Array dari Array sehingga dinamai Array multidimensi. setiap elemen diinisialisasi dengan nilai null. 12. yang berarti elemen-elemen array p tersebut belum merujuk ke suatu obyek Point. Kode di atas adalah sama dengan kode berikut ini: String names[]. seperti dalam contoh berikut : MyDate dates[] = { new MyDate(22.

twoDim[3] = new int[8]. Pada baris berikutnya. array dari array yang berbentuk rectangular lebih sering digunakan dibandingkan dengan yang nonrectangular. dibuat sebuah obyek Array yang memiliki empat elemen. Atribut ini dapat digunakan untuk melakukan proses iterasi pada Array seperti dalam contoh berikut : int list[] = new int[10]. 1. index Array dimulai dengan angka nol. diinisialisasi elemen pertama dan kedua dengan obyek Array dari int yang masing-masing berisi lima elemen yang bertipe integer. Array dari Array yang bersifat non-rectangular dapat dibuat seperti dalam contoh berikut : twoDim[0] = new int[2]. cukup merepotkan. twoDim[2] = new int[6].5 Batasan Array Dalam bahasa Java. Untuk membuat Array dari Array yang rectangular dengan cara mudah.1. di mana harus diinsialisasi masing-masing elemennya satu persatu. twoDim[1] = new int[4]. Pada baris pertama.Politeknik Telkom Pemrograman Berorientasi Obyek twoDim[0] = new int[5]. Masing-masing elemen merupakan referensi yang bertipe Array dari int yang bernilai null. Di samping itu. gunakan bentuk berikut ini : int twoDim[][] = new int[4][5]. Pemrograman Berorientasi Obyek 11 . Kode di atas membuat sebuah Array dari empat Array yang masing-masing elemennya berisi lima nilai int. Jumlah elemen di dalam Array disimpan sebagai bagian dari obyek Array di dalam atribut length. Proses pembuatan Array dari Array yang demikian. twoDim[1] = new int[5].

myArray. 0. yaitu dengan menggunakan method arrayCopy() dari kelas Sistem seperti dalam contoh berikut : // array semula int myArray[] = {1. 0.Politeknik Telkom Pemrograman Berorientasi Obyek for(int i = 0. 4.out.arraycopy(myArray. obyek Array yang pertama akan hilang kecuali ada variabel lain yang dibuat untuk merujuk ke obyek Arraytersebut. 7. 2. } Dengan menggunakan atribut length. 9. hold. 5. 3. // array engan elemen yang lebih banyak int hold[] = {10.1.1. 6}. 5.length). 1. pemeliharaan kode program menjadi mudah karena program tidak perlu mengetahui jumlah eleman Array pada saat kompilasi.1. i++) { Sistem. 12 Pemrograman Berorientasi Obyek . 4.1 Mengubah Ukuran Array Setelah membuat obyek Array. 2. Dalam kode program ini.6. 3.length.6. myArray = new int[10]. i < list. 1}.println(list[i]). 6. ukuran Array tersebut tidak dapat diubah.2 Menyalin Array Bahasa Java menyediakan method khusus untuk menyalin Array. namun demikian. //menyalin semua elemen myArray ke hold // dimulai dengan indeks ke 0 Sistem. dapat digunakan variabel referensi yang sama untuk menunjuk ke sebuah obyek Array baru seperti dalam contoh di bawah ini : int myArray[] = new int[6].6 Manipulasi Array 4. 4. 8.

Politeknik Telkom Pemrograman Berorientasi Obyek Setelah proses pengkopian di atas. 5. 3.Untuk public atribut/method . 4. 1. Baris di bawahnya menyatakan atribut-atribut dari kelas tersebut apa saja. Beberapa elemen penting dalam diagram kelas adalah kelas dan relasi antar kelas. Adapun simbol untuk access modifer adalah sebagai berikut: .2 Diagram Kelas Diagram kelas merujpakan sebuah diagram yang digunakan untuk memodelkan kelas-kelas yang digunakan di dalam sistem beserta hubungan antar kelas dalam sistem tersebut. Kelas digambarkan dengan simbol kotak seperti gambar di bawah ini: Gambar 4–2 Simbol Diagram Kelas Baris pertama dari simbol diagram kelas menandakan nama dari kelas yang bersangkutan. 3. 2.Untuk protected diberi simbol # sebelum nama atribut/method Pemrograman Berorientasi Obyek 13 . 1. maka isi dari Array hold adalah 1. 4.Untuk private atribut/method diberi diberi simbol simbol + sebelum sebelum nama nama . dan baris setelahnya menyatakan method-method yang terdapat pada kelas tersebut. 2. 6.

Politeknik Telkom Pemrograman Berorientasi Obyek Sedangkan untuk menggambarkan hubungan antar kelas digunakan simbol garis antara dua kelas yang berelasi. Simbol garis tersebut antara lain: . digambarkan sebagai berikut: Gambar 4–5 Komposisi .Kelas A merupakan turunan dari kekas B. digambarkan sebagai berikut: Gambar 4–6 Turunan 14 Pemrograman Berorientasi Obyek . digambarkan sebagai berikut: Gambar 4–4 Agregasi .Kelas A berasosiasi dengan kelas B.Kelas A dengan kelas B berelasi komposisi.Kelas B merupakan elemen part-of dari kelas A (kelas A berelasi agregasi dengan kelas B). digambarkan sebagai berikut: Gambar 4–3 Asosiasi .

Asosiasi Agregasi Komposisi Generalisasi (terkait dengan pewarisan) Spesialisasi (terkait dengan pewarisan) 1. 5. kelas-kelas yang terbentuk dapat memiliki hubungan satu dengan yang lainnya. sesuai dengan kondisi dari kelas-kelas yang bersangkutan.3 Hubungan Antar Kelas Dalam Obyek Oriented Programming. antara lain: 1. 3.1 Asosiasi Asosiasi merupakan hubungan antara dua kelas di yang merupakan hubungan struktural yang menggambarkan himpunan link antar obyek. Contoh dari hubungan asosiasi ini adalah: Gambar 4–7 Contoh hubungan asosiasi Pada diagram kelas di atas terlihat hubungan bahwa kelas dosen mengajar beberapa mahasiswa. 2.Politeknik Telkom Pemrograman Berorientasi Obyek 1.1. 4. Ada beberapa jenis hubungan yang dapat terjadi antara kelas yang satu dengan kelas yang lainnya. Bentuk implementasi dari diagram kelas tersebut di Java adalah sebagai berikut: Pemrograman Berorientasi Obyek 15 .

private String[] nimMHS. public void setnama (String nama) { this. } public void setnim (String nim) { this. private int JmlMahasiswa.nim.nim = nim.nama = nama.nama.Kddosen = Kddosen. } } //dosen. } public String getnama () { return this.Politeknik Telkom Pemrograman Berorientasi Obyek //mahasiswa. } public void setNimMahasiswa (String nimMhs) { if (JmlMahasiswa<5) { 16 Pemrograman Berorientasi Obyek . public void setKddosen (String Kddosen) { this. private String nama.java public class mahasiswa { private String nim. } public String getnim () { return this.java public class dosen { private String Kddosen.

} } public int getJmlMahasiswa () { return this.Politeknik Telkom Pemrograman Berorientasi Obyek nimMHS[JmlMahasiswa] = nimMhs. hanya ada atribut dari kelas dosen yang serupa dengan atribut dari kelas mahasiswa yang menandakan bahwa kedua kelas itu berasosiasi. } public String getmahasiswa (int i) { return (nimMHS[i]). Agregasi sering juga disebut relasi “part of” atau relasi “whole-part”. JmlMahasiswa++.1. 1.JmlMahasiswa. } public String getKddosen () { return this. yaitu atribut nimMahasiswa pada kelas dosen dan atribut nim pada kelas mahasiswa. Contoh hubungan agregasi ini adalah: Pemrograman Berorientasi Obyek 17 . } } Pada implementasi terlihat bahwa tidak ada relasi yang kuat antara kelas dosen dan kelas mahasiswa.2 Agregasi Agregasi merupakan hubungan antara dua kelas di mana kelas yang satu merupakan bagian dari kelas yang lain namun kedua kelas ini dapat berdiri sendiri-sendiri.Kddosen.

Politeknik Telkom

Pemrograman Berorientasi Obyek

Gambar 4–8 Contoh hubungan agregasi Pada diagram kelas di atas, terlihat hubungan antara kelas Jurusan dengan kelas Mahasiswa. Kelas mahasiswa merupakan bagian dari kelas jurusan, akan tetapi kelas jurusan dan kelas mahasiswa dapat diciptakan sendiri-sendiri. Implementasi dari diagram kelas tersebut dalam Java adalah sebagai berikut: //mahasiswa.java public class mahasiswa { private String NIM, Nama; public mahasiswa(String no, String nm) { this.NIM = no; this.Nama = nm; } public String GetNIM() { return (NIM); } public String GetNama() { return (Nama); } } //jurusan.java public class Jurusan { private String KodeJurusan, NamaJurusan;
18 Pemrograman Berorientasi Obyek

Politeknik Telkom

Pemrograman Berorientasi Obyek

private Mahasiswa[10];

Mahasiswa[]

Daftar

=

new

public Jurusan(String kode, String nama) { this.KodeJurusan = kode; this.NamaJurusan = nama; } private static int JmlMhs = 0; public void AddMahasiswa(Mahasiswa m) { this.Daftar[JmlMhs] = m; this.JmlMhs++; } public void DisplayMahasiswa() { int i; Sistem.out.println("Kode "+this.KodeJurusan); Sistem.out.println("Nama "+this.NamaJurusan); for (i=0;i<JmlMhs;i++) Sistem.out.println(Daftar[i].GetNIM()+" "+Daftar[i].GetNama()); } } Pada implementasi terlihat bahwa kelas jurusan memiliki atribut yang memiliki tipe kelas mahasiswa, sehingga kelas mahasiswa merupakan bagian dari kelas jurusan. Jurusan Jurusan : :

Sistem.out.println("Daftar Mahasiswa :");

Pemrograman Berorientasi Obyek

19

Politeknik Telkom

Pemrograman Berorientasi Obyek

1.1.3 Komposisi Komposisi merupakan bentuk khusus dari agregasi di mana kelas yang menjadi part (bagian) baru dapat diciptakan setelah kelas yang menjadi whole (seluruhnya) dibuat dan ketika kelas yang menjadi whole dimusnahkan, maka kelas yang menjadi part ikut musnah. Contoh hubungan komposisi adalah sebagai berikut:

Gambar 4–9 Contoh hubungan komposisi Dari diagram kelas di atas terlihat bahwa kelas CPU, Monitor, dan Printer semuanya merupakan bagian dari kelas Komputer dan ketika kelas Komputer musnah maka kelas CPU, Monitor, dan Printer akan ikut musnah. Implementasi dari diagram kelas tersebut dalam Java adalah sebagai berikut: //CPU.java public class CPU { private String Merk; private int Kecepatan; public CPU(String m, int k) { this.Merk = m; this.Kecepatan = k; }
20 Pemrograman Berorientasi Obyek

out. } public void DisplaySpecMonitor() { Sistem. } } //Monitor. } public void DisplaySpecPrinter() { this.Type = t.Merk = m.Kecepatan). this.println(this. String t) { this.Type).java public class Monitor { private String Merk. public Monitor(String m) { this. " + Sistem. } } Pemrograman Berorientasi Obyek 21 + ". } } //Printer.Politeknik Telkom Pemrograman Berorientasi Obyek public void DisplaySpecCPU() { Sistem. Type.Merk + ".Merk). public Printer(String m.out.java public class Printer { private String Merk.Merk = m.println(this. " + .Merk this.println(this.out.

: " + = new Printer("Canon BJC-210SP".out. public Komputer(String k. Sistem.Kode). private long Harga. private Monitor Mon. private Printer Prn . private CPU Proc.Harga = h.print("Printer : "). 500).Kode = k. Mon = new Monitor("Sony Multiscan 15sf").DisplaySpecCPU().DisplaySpecPrinter().out. if (k == "PC-01") { Proc = new CPU("Pentium IV". } } public void DisplaySpec() { this. 22 Pemrograman Berorientasi Obyek . this. long h) { this.Politeknik Telkom Pemrograman Berorientasi Obyek //Komputer. Prn "Color").print("Processor: ").java public class Komputer { private String Kode.print("Monitor Mon. Prn. Proc. : "). Sistem.println("Kode Sistem.out.out.DisplaySpecMonitor(). Sistem.

terlihat bahwa kelas CPU.2 Pewarisan Pewarisan adalah kemampuan sebuah kelas untuk mewariskan seluruh atau sebagian atribut dan methodnya ke kelas lain. atau base class sedangkan kelas yang menerima pewarisan disebut kelas anak.1. super class.1 Pewarisan di Java Pewarisan di Java hanya mengenal pewarisan tunggal.out.println("Harga this.Harga). atau subclass. dan Printer merupakan atribut dari kelas Komputer dan baru diciptakan pada saat instansiasi obyek dari kelas Komputer. " + Pada implementasi di atas. Pewarisan dapat dilakukan jika : • Ada beberapa atribut dan method yang sama yang digunakan oleh beberapa kelas berbeda (reduksi penulisan kode) Ada satu atau beberapa kelas yang sudah pernah dibuat yang dibutuhkan oleh aplikasi (reusability) Ada perubahan kebutuhan fungsional atau feature aplikasi dimana sebagian atau seluruh perubahan tersebut tercakup di satu atau beberapa kelas yang sudah ada (extend) • • 1. Monitor. kelas turunan. sehingga atribut dan method tersebut dikenal oleh kelas yang menerima pewarisan tanpa harus menuliskannya.Politeknik Telkom Pemrograman Berorientasi Obyek Sistem. Kelas yang mewariskan disebut kelas induk. Pewarisan ini merupakan implementasi dari hubungan antar kelas generalisasi-spesialisasi. 1. } } : Rp. artinya sebuah kelas hanya mewarisi atribut dan method dari Pemrograman Berorientasi Obyek 23 .

java public class Employee { public String name. Implementasi dari diagram kelas di atas dalam Java adalah sebagai berikut: //Employee. Contoh pewarisan dapat dilihat pada diagram kelas berikut ini: Employee +name : String = "" +salary : double +birthDate : Date +getDetails() : String Manager +departement : String Gambar 4–10 Contoh Pewarisan Kelas Pada diagram kelas di atas. public Date birthDate. kelas Manager merupakan kelas turunan dari kelas Employee sehingga mewarisi semua atribut dan method dari kelas Employee yang bersifat public dan protected. 24 Pemrograman Berorientasi Obyek . Untuk menggunakan pewarisan di Java digunakan keyword extends.Politeknik Telkom Pemrograman Berorientasi Obyek satu kelas induk.

} public double getgaji() { return gaji. dan salary serta method getDetails() diturunkan ke kelas Manager sehingga kelas Manager dapat menggunakan atribut dan method tersebut. terlihat bahwa atribut name. birthDate.java public class Manager extends Employee { public String department. private double gaji.java public class Employee { private String name.} } //Manager.Politeknik Telkom Pemrograman Berorientasi Obyek public double salary. } Dari kode di atas.. public String getDetails() {. Konstruktor dari kelas induk tidak dapat diturunkan kepada kelas turunannya. contoh: //Employee.. Untuk menggunakan method dan konstruktor dari kelas induk pada kelas anak digunakan keyword super. } } //Manager. gaji=g. public Employee (String s.java public class Manager extends Employee { Pemrograman Berorientasi Obyek 25 . double g) { name = s.

private double tunjangan. } } 1.println("Living Thing breathing.2 Kelas Abstrak Kelas abstrak merupakan suatu bentuk khusus dari kelas di mana kelas tersebut tidak dapat diinstansiasi dan digunakan hanya untuk diturunkan ke dalam bentuk kelas konkret atau kelas abstrak berikutnya. Di dalam kelas abstrak dapat dideklarasikan atribut dan method sama seperti kelas konkret. } public void eat(){ 26 Pemrograman Berorientasi Obyek . String s) { super(nama)..Politeknik Telkom Pemrograman Berorientasi Obyek private String alamat. private double bonus. Kelas abstrak dideklarasikan menggunakan keyword abstract. contoh: public abstract class LivingThing { public void breath(){ Sistem. yaitu suatu method yang tidak mempunyai implementasi hanya memiliki deklarasi saja. alamat = s. public Manager(String nama.getgaji()+tunjangan+bonus). } Public double getgaji() { return (super.1.out.."). namun ada juga method abstrak.

Dengan adanya interface. Pemrograman Berorientasi Obyek 27 . Dalam sebuah interface: – – – Semua atribut adalah public. Java menyediakan sebuah fitur untuk keperluan pewarisan jamak (Multiple inheritance). kelas tersebut harus mendefinisikan implementasi dari method abstrak yang ada dalam kelas induknya. static dan final (semua atribut bertindak sebagai konstanta) Semua method adalah abstract dan public Tidak boleh ada deklarasi konstruktor Interface digunakan untuk menyatakan spefisikasi fungsional beberapa kelas secara umum..println("Human walks."). maka kelas tersebut akan menjadi kelas abstrak juga. Jika tidak didefinisikan implementasinya. contoh: public class Human extends LivingThing { //implementasi dari method abstrak walk() public void walk(){ Sistem. } public abstract void walk().out. } } 1..Politeknik Telkom Pemrograman Berorientasi Obyek Sistem.3 Interface Interface adalah prototype kelas yang berisi definisi konstanta dan deklarasi method (hanya nama method tanpa definisi kode programnya)... //merupakan method abstrak } Ketika sebuah kelas mewarisi sebuah kelas abstrak.println("Living Thing eating.out.1.").

private double y2. } //Line. Object b).java public class Line implements Relation { private double x1. private double x2. Object b). private double y1. public boolean isEqual( Object a. 28 Pemrograman Berorientasi Obyek . Object b).Politeknik Telkom Pemrograman Berorientasi Obyek Contoh interface dan kegunaannya: Gambar 4–11 Contoh Interface Untuk membuat interface di Java digunakan keyword interface.java public interface Relation { public boolean isGreater( Object a. Source code untuk diagram kelas di atas dalam Java adalah sebagai berikut: //Relation. public boolean isLess( Object a.

this. } public boolean isGreater( Object a. this.getLength().y2 = y2. Object b){ double aLen = ((Line)a).getLength().Politeknik Telkom Pemrograman Berorientasi Obyek public Line(double x1. this.y1 = y1. return length.sqrt((x2-x1)*(x2-x1) + (y2-y1)* (y2-y1)). double y1. double bLen = ((Line)b).getLength(). double y2){ this. } Pemrograman Berorientasi Obyek 29 . double bLen = ((Line)b). double x2.getLength(). } public boolean isEqual( Object a.getLength(). } public double getLength(){ double length = Math. return (aLen < bLen).x2 = x2.x1 = x1. } public boolean isLess( Object a. return (aLen == bLen).getLength(). Object b){ double aLen = ((Line)a). double bLen = ((Line)b). Object b){ double aLen = ((Line)a). return (aLen > bLen).

.........Politeknik Telkom Pemrograman Berorientasi Obyek } Untuk menggunakan interface dalam keperluan pewarisan jamak.......... 4. .... //beberapa kode disini ............ } Perbedaan abstract class dan interface antara lain: 1..................... 30 Pemrograman Berorientasi Obyek ............. sedangkan abstract class bisa jadi hasil turunan dari abstract class induknya Interface memungkinkan terjadinya pewarisan jamak (Multiple inheritance) sedangkan abstract class tidak 2............ Semua interface method tidak memiliki body sedangkan beberapa abstract class dapat memiliki method dengan implementasi Sebuah interface hanya dapat mendefinisikan constant sedangkan sebuah abstract class tampak seperti class biasa yang dapat mendeklarasikan variabel Interface tidak memiliki hubungan inheritance secara langsung dengan sebuah class tertentu... dapat dilakukan dengan cara mengimplementasikan interface-interface yang bersangkutan... contohnya: public class LivingThing { Person implements PersonInterface.. 3.

Agregasi Interface Generalisasi Spesialisasi Komposisi berikut yang salah mengenai 1. B. E. C. static..... B. E. B.. Inheritance (Generalisasi-Spesialisasi) Komposisi Relasi Agregasi Polimorfisme 31 Pemrograman Berorientasi Obyek . A. E. C. Pernyataan interface adalah. C.Politeknik Telkom Pemrograman Berorientasi Obyek Latihan A. Semua methodnya adalah abstract dan public Dapat memiliki konstruktor yang abstract Semua variabel bersifat public. 2.. D.. Pilihan Ganda 1. D. dan final Tidak diturunkan dari kelas tertentu Semua benar Hubungan antar kelas yang menggunakan prinsip reuseabllity adalah. A... Berikut yang tidak termasuk ke dalam hubungan antar kelas adalah. A.. D.

D. int S) { this. InstanceOf Method New Extends Super code dari Clock. Second. 32 Pemrograman Berorientasi Obyek . Perbedaan adalah.Politeknik Telkom Pemrograman Berorientasi Obyek 3. Berikut source PulseCounter.. D. B.. 4.Hour = H. antara kelas abstrak dan interface Kelas abstrak tidak memiliki konstanta sedangkan interface memiliki konstanta Kelas abstrak memiliki method abstrak sedangkan interface tidak Kelas abstrak dapat memiliki variabel sedangkan interface tidak Kelas abstrak dapat diturunkan dari kelas konkret sedangkan interface tidak Semua salah Keyword yang digunakan untuk mengakses konstruktor dan method dari kelas induk adalah.java dan 5. C. B. A. C. E..Second = S.Minute = M.. Minute.java class Clock { private int Hour. int M. public Clock(int H. this.. A.. this. E.

Politeknik Telkom Pemrograman Berorientasi Obyek } public long Convert2Sec() { long Hasil.. Clock c2) { this.Convert2Sec()c1. Hasil = 3600*this. C.. } public int GetNoKBU() { return (No_KBU). B. } public double GetJmlPulsa() { return (JmlPulsa).Minute + Pemrograman Berorientasi Obyek . this. Agregasi Asosiasi Komposisi 33 + 60*this. private double JmlPulsa. Clock c1.Convert2Sec())/100. return (Hasil). public PulseCounter(int no.No_KBU = no. } } class PulseCounter { private int No_KBU.JmlPulsa=(c2. A.Hour this...Second. } } Hubungan antara kedua kelas di atas disebut.

. A.. mendeklarasikan Digunakan untuk keperluan polimorfisme 34 Pemrograman Berorientasi Obyek .Politeknik Telkom Pemrograman Berorientasi Obyek D.. Generalisasi Spesialisasi 6. Digunakan untuk mendeklarasikan konstanta sebagai untuk template untuk kelas method C. Kelas_A dan kelas_B memiliki kelas induk yang sama 7. D. Kegunaan khusus dari interface yang membedakannya dari kelas induk yang lain adalah. Digunakan turunannya D.. Digunakan abstrak E.. Kelas_B baru akan diinstan setelah kelas_A diinstan C. Kelas_B mewarisi atribut dan method dari kelas_A B. E.. Pernyataan berikut yang benar mengenai hubungan kelas_A dan kelas_B adalah. Kelas_A adalah kelas abstrak Kelas_B adalah kelas abstrak E.. Dapat digunakan untuk keperluan pewarisan jamak B. A.

A. Pemrograman Berorientasi Obyek 35 . B. D. dapat diperoleh kesimpulan.. Kelas RectangularIcon adalah kelas konkret yang mewarisi semua atribut dan method dari kelas Icon Method display() RectangularIcon didefinisikan ulang di kelas Kelas RectangularIcon adalah kelas abstrak Method display() tidak dapat didefinisikan ulang di kelas RectangularIcon Semua salah 9.... E. C.Politeknik Telkom Pemrograman Berorientasi Obyek 8. Dari diagram kelas di atas dengan keterangan bahwa kelas Icon adalah kelas abstrak dan method display() adalah method abstrak.

Politeknik Telkom Pemrograman Berorientasi Obyek Ketika diagram kelas tersebut dibuat codenya dalam Java kemudian dijalankan. E. maka akan terjadi. 2... Essay Keterangan diagram kelas di atas: – – – – – Terdapat konstruktor untuk kelas Pegawai dan kelas Manager Nama bertipe string Gaji bertipe double Karyawan adalah array yang bertipe string. B. C. D.. A. berisi nama-nama dari karyawan yang dimiliki Manager Setkaryawan( ) digunakan karyawan Manager untuk menambahkan jumlah Buatlah code Java untuk diagram kelas di atas! 36 Pemrograman Berorientasi Obyek . 1. Program akan berjalan lancar Kelas Line akan menjadi kelas konkret Akan terjadi error karena method didefinisikan ulang di kelas Line isLess() tidak Akan terjadi error karena interface Relation tidak mendeklarasikan konstanta Salah semua Apa perbedaan interface dan kelas abstrak? A.

Politeknik Telkom Pemrograman Berorientasi Obyek 1. Pemrograman Berorientasi Obyek 37 .

2.d. Ubahlah kode Java pada program nomor 3 dengan relasinya adalah agregasi sebagian (shared aggregation). 7 Buatlah kode Java untuk diagram kelas di atas! 38 Pemrograman Berorientasi Obyek . Keterangan diagram kelas di atas: Golongan seorang employee berkisar dari 1 s.Politeknik Telkom Pemrograman Berorientasi Obyek Keterangan diagram kelas di atas: – – – – – – Terdapat konstruktor untuk kelas Angkatan dan kelas Kelas Tahun bertipe int Kelasdibuka adalah array bertipe Kelas untuk menunjukkan jumlah kelas yang dibuka pada angkatan yang bersangkutan Idkelas bertipe string Kuota bertipe int Setkelasdibuka( ) digunakan untuk menambahkan kelas yang dibuka Buatlah code Java untuk diagram kelas di atas! 1.

Pada Java. Overriding. Memahami dan menerapkan polymorphic arguments dalam pemrograman 5. konsep polymorphism diimplementasikan melalui beberapa cara yaitu overloading. Dengan mengaplikasikan konsep polymorphism. Memahami dan menerapkan konsep polimorfisme dalam pemrograman 3. Memahami proses terjadinya Virtual Method Invocation 4.Politeknik Telkom Pemrograman Berorientasi Obyek 1 Polimorfisme Overview Polymorphism merupakan konsep OOP yang memberikan fleksibilitas kepada programmer dalam menulis program. programmer dapat memperlakukan seluruh object yang berasal dari superclass yang sama seakan-akan mereka adalah object dari superclass. Tujuan 1. Memahami penggunaan instanceof dan cara melakukan Pemrograman Berorientasi Obyek 39 . abstract class dan melalui interface. Dengan praktikum ini mahasiswa diharapkan dapat: 2.

pedal gas dan rem.Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi obyek-obyek apa yang dapat melakukan pemecahan masalah tersebut. Dalam PBO. Mobil yang ada dipasaran terdiri atas berbagai tipe dan berbagai merk. jika ditekan maka kecepatan mobil akan meningkat. Contoh yang konkrit dalam dunia nyata yaitu mobil. seperti: stir. Memahami tentang overloading 7.Politeknik Telkom Pemrograman Berorientasi Obyek casting object 6. tapi bagaiman proses peningkatan kecepatan ini dapat berbedabeda untuk setiap jenis mobil. Dalam konsep yang lebih umum sering kali polymorphism disebut dalam istilah satu interface banyak aksi. Jika seseorang dapat mengemudikan satu jenis mobil saja dari satu merk tertentu. sekretaris.1 Polymorphism Polymorphism berasal dari bahasa Yunani yang berarti banyak bentuk. Misal manager tersebut ingin memperoleh data dari bag administrasi maka manager tersebut tidak harus mengambilnya langsung tetapi dapat menyuruh petugas bag administrasi untuk mengambilnya. Sebagai contoh anggap kita memiliki sebuah departemen yang memiliki manager. tongkat transmisi. namun semuanya memiliki interface kemudi yang sama. Memahami tentang Overriding 8. konsep ini memungkinkan digunakannya suatu interface yang sama untuk memerintah obyek agar melakukan aksi atau tindakan yang mungkin secara prinsip sama namun secara proses berbeda. Memahami aturan tentang overridden 1. Pada kasus tersebut seorang manager tidak harus mengetahui bagaimana cara 40 Pemrograman Berorientasi Obyek . Missal pedal gas. maka orang itu akan dapat mengemudikan hamper semua jenis mobil yang ada. karena semua mobil tersebut menggunakan interface yang sama. petugas administrasi data dan lainnya. Harus diperhatikan disini bahwa interface yang sama tidak berarti cara kerjanya juga sama.

dimana yang seharusnya dipanggil adalah overridden method. Pada saat obyek yang sudah dibuat tersebut memanggil overridden method pada parent class. Berikut contoh terjadinya VMI: Hasil dari running program diatas adalah sebagai berikut: Pemrograman Berorientasi Obyek 41 .1.1 Virtual Method Invocation (VMI) Virtual Method Invocation (VMI) bisa terjadi jika terjadi polimorfisme dan Overriding. kompiler Java akan melakukan invocation (pemanggilan) terhadap Overriding method pada subclass. 1. Jadi untuk menyelesaikan suatu masalah dengan kolaborasi antar obyek-obyek yang ada karena setiap obyek memiliki deskripsi tugasnya sendiri.Politeknik Telkom Pemrograman Berorientasi Obyek mengambil data tersebut tetapi manager bisa mendapatkan data tersebut melalui obyek petugas adminiistrasi.

1. Berikut contoh dari polymorphics arguments: 1.1.2 Polymorphic arguments Polymorphic arguments adalah tipe suatu parameter yang menerima suatu nilai yang bertipe subclass-nya. misalnya dari contoh program sebelumnya.Politeknik Telkom Pemrograman Berorientasi Obyek Nilai x = Ini class Child 5 1. kita sedikit membuat modifikasi pada class Tes 42 Pemrograman Berorientasi Obyek . Untuk lebih jelasnya.3 Pernyataan instanceof Pernyataan instanceof sangat berguna untuk mengetahui tipe asal dari suatu polymorphic arguments.

kita dapat melakukan casting object ke tipe asalnya. Caranya adalah seperti berikut: Pemrograman Berorientasi Obyek 43 . seperti yang tampak dibawah ini: Seringkali pemakaian instanceof diikuti dengan casting object dari tipe parameter ke tipe asal. Misalkan saja program kita sebelumnya. yaitu Manajer.Politeknik Telkom Pemrograman Berorientasi Obyek dan ditambah sebuah class baru Kurir. Pada saat kita sudah melakukan instanceof dari tipe Manajer.

Overloading mempunyai ciri-ciri sebagai berikut: 1. Nama method harus sama 2. untuk menggambar segitiga Gambar(int t1. akan tetapi mempunyai fungsionalitas yang berbeda. Return type boleh sama. untuk menggambar persegi empat Gambar(int t1.int t2.int t4) Overloading ini dapat terjadi pada class yang sama atau pada suatu parent class dan subclass-nya. untuk menggambar garis Gambar(int t1. Daftar parameter harus berbeda 3.int t3.int t3) Parameter titik.int t2.int t2) Parameter titik. juga boleh berbeda 44 Pemrograman Berorientasi Obyek . untuk menggambar titik Gambar(int t1) Parameter titik. Contoh penggunaan overloading dilihat dibawah ini: • • • • Parameter titik.Politeknik Telkom Pemrograman Berorientasi Obyek 1.2 Overloading Overloading adalah suatu keadaan dimana beberapa method sekaligus dapat mempunyai nama yang sama.

private String nama. nama=m. public void setNrp(int n) { nrp=n.1. Konstruktor mempunyai ciri yaitu: o o Mempunyai nama yang sama dengan nama class Tidak mempunyai return type (seperti void.1 Overloading construktor Tulislah listing program berikut ini dan amati yang terjadi pada saat terjadinya overloading pada method. Kita dapat menyembunyikan information dari suatu class sehingga anggota-anggota class tersebut tidak dapat diakses dari luar. double. int. Contoh: private int nrp. Pemrograman Berorientasi Obyek 45 . } } Konstruktor (konstruktor) adalah suatu method yang pertama kali dijalankan pada saat pembuatan suatu obyek.Politeknik Telkom Pemrograman Berorientasi Obyek 1. public Siswa(int n. Contoh: public class Siswa { private int nrp. dan lain-lain) Contoh: public class Siswa { private int nrp. String m) { nrp=n. Adapun caranya adalah cukup dengan memberikan akses kontrol private ketika mendeklarasikan suatu atribut atau method.

Politeknik Telkom

Pemrograman Berorientasi Obyek

} } Suatu class dapat mempunyai lebih dari 1 konstruktor dengan syarat daftar parameternya tidak boleh ada yang sama. Contoh: public class Siswa { private int nrp; private String nama; public Siswa(String m) { } public Siswa(int n, String m) { } } Percobaan Percobaan 1 : Melakukan enkapsulasi pada suatu class nrp=n; nama=m; nrp=0; nama=””;

46

Pemrograman Berorientasi Obyek

Politeknik Telkom

Pemrograman Berorientasi Obyek

Jika enkapsulasi dilakukan pada class diagram diatas, maka akan berubah menjadi:

Percobaan 2 : Melakukan overloading konstruktor

Dari class diagram tersebut, dapat diimplementasikan ke dalam program sebagai berikut: public class Mahasiswa { private int nrp; private String nama; public Mahasiswa() { nrp=0; } nama=””; { nrp=0; }
47

public Mahasiswa(String nama) this.nama=nama;

Pemrograman Berorientasi Obyek

Politeknik Telkom

Pemrograman Berorientasi Obyek

public Mahasiswa(int nrp, String nama) { } 1.1.2 Melakukan overloading pada method Tulislah listing program berikut ini dan amati yang terjadi pada saat terjadinya overloading pada method. this.nrp=nrp; } this.nama=nama;

48

Pemrograman Berorientasi Obyek

Politeknik Telkom Pemrograman Berorientasi Obyek Pemrograman Berorientasi Obyek 49 .

25. 10. akan tampak hasil seperti dibawah ini : Buat segiempat dengan koordinat (25. 60. 20. 50.50) Segiempat: <25.50) Segiempat:<10.10) dan point (20. 3. Nama method harus sama Daftar parameter harus sama Return type harus sama Berikut ini contoh terjadinya Overriding dimana method Info() pada class Child meng-override method Info() pada class parent: 50 Pemrograman Berorientasi Obyek . 2. 10. 20> Buat segiempat dengan 1 point (10.Politeknik Telkom Pemrograman Berorientasi Obyek Ketika program tersebut dijalankan.25) dan (50. 50> Buat segiempat dengan point (10. 60> 1.10). koodinat (50.20): Segiempat: <10.2 Overriding Overriding adalah suatu keadaan dimana method pada subclass menolak method pada parent class-nya. Overriding mempunyai ciri-ciri sebagai berikut : 1.

Politeknik Telkom Pemrograman Berorientasi Obyek Method yang terkena override (overridden method) diharuskan tidak boleh mempunyai modifier yang lebih luas aksesnya dari method yang meng-override (Overriding method). Pemrograman Berorientasi Obyek 51 .

Jelaskan perbedaan antara Overloading Overriding. 4. Jelaskan pengertian dari Overriding. 3. dengan dengan 52 Pemrograman Berorientasi Obyek .Politeknik Telkom Pemrograman Berorientasi Obyek Latihan 1. 2. Jelaskan pengertian dari Overloading. Jelaskan pengertian dari Polimorfisme. Jelaskan perbedaan antara Polimorfisme Inheritance. 5.

Mengetahui Mengetahui Mengetahui menangkap Mengetahui tentang Exception di Java. Serta akan dijelaskan throwing exception dan membuat user define exception. apa yang dimaksud dengan Exception.Politeknik Telkom Pemrograman Berorientasi Obyek 1 Exception Handling Overview Bab ini akan menjelaskan tentang Exception di Java. Tujuan 1. kelas-kelas exception di Java bagaimana Exception muncul dan cara Exception cara melempar Exception 53 Pemrograman Berorientasi Obyek . 4. 2. 3. bagaimana menangkap Exception.

Politeknik Telkom Pemrograman Berorientasi Obyek 5. Mengetahui tentang User Define Exception 54 Pemrograman Berorientasi Obyek .

Untuk mencapai program yang handal adalah dengan mengantisipasi permasalahan yang mungkin muncul dan melakukan testing untuk semua kemungkinan permasalahan yang akan muncul.Politeknik Telkom Pemrograman Berorientasi Obyek 1. Event ini merupakan event abnormal yang muncul selama eksekusi program dan menganggu alur instruksi. Salah satu langkah dalam membuat program handal adalah dengan meyakinkan bahwa indeks yang digunakan berada didalam range yang telah ditentukan.1 Pendahuluan Program yang yang handal dapat menghindari keadaan tertentu tanpa mengalami kerusakan. Gambar 6–1 Kesalahan pengkodean Di Java terdapat 2 tipe error. Compile time error muncul ketika Sintaks pemrograman yang dibuat tidak sesuai dengan ketentuan Pemrograman Berorientasi Obyek 55 . yaitu compile time error dan runtime error. Event abnormal dapat berupa error di dalam program. Di dalam Java terdapat sebuah exception dimana exception mengindikasikan sebagai event yang exceptional (tidak biasa). Tetapi terdapat permasalahan dimana cara tersebut sulit dan kadang tidak memungkinkan untuk mengantisipasi semua hal tersebut. TIdak selalu jelas apa yang harus dilakukan ketika sebuah error terdeteksi.

Exception yang tidak ditangkap akan membuat program gagal. Di dalam Exception termasuk semua keadaan yang muncul di dalam program yang sedang dieksekusi. Ketika sebuah exception muncul selama eksekusi program. sebaiknya tidak dilakukan try catch pada error. atau hanya kasus khusus. Umumnya. Ketika hal ini terjadi program diberhentikan dan program bisa rusak. maka exception akan muncul.Throwable. hal yang sebenarnya dilempar adalah sebuah obyek. dan subclass ini diatur dalam hirararki kelas yang complek Class Throwable mempunyai turunan Class yaitu class Error dan Exception. Sebuah exception dapat dilempar di suatu bagian program dan dapat ditangkap di bagian lain dari program tersebut. Ketika sebuah exception dilempar. Obyek ini membawa informasi dari tempat dimana exception di tangkap dan dikelola.Politeknik Telkom Pemrograman Berorientasi Obyek yang ada dalam pemrograman Java (error Sintaks). Kedua kelas ini nanti yang akan mempunyai beberapa turunan. Contoh : Jika terjadi pembagian dengan nol atau membuka file yang tidak ada. Sebuah exception dapat berupa error. Semua obyek exception merupakan subclass dari kelas standar java. Subclass Exception merepresentasikan exception yang biasanya disebut error 56 Pemrograman Berorientasi Obyek . Subclass yang ada di bawah Error merupakan kelas yang merepresentasikan error serius didalam Java Vitual Machine yang membuat program di terminasi karena terdapat masalah. Biasanya sebuah obyek exception mengandung pesan error yang mendeskripsikan apa yang terjadi sehingga menyebabkan exception dan dapat berisi data lain.lang. dikatakan bahwa exception telah dilempar (exception is thrown).2 Kelas Exception Kata “exception” lebih umum dibandingkan dengan “error”. Bagaimanapun. Runtime error muncul selama eksekusi program. kegagalan program dapat dihindari jika exception yang dilempar dapat ditangkap dan dikelola sebagaimana mestinya. 1.

Berikut beberapa penyebab exception muncul : Tabel 6–1 Contoh Exception Penyebab Muncul ketika memberikan argumen yang tidak sesuai dengan tipe data pada suatu method Muncul ketika mengakses elemen array yang tidak terdapat pada array tersebut (melampui batas indeks) Muncul ketika ingin mengubah sebuah string ke format numerik Muncul ketika membuat sebuah error dalam aritmatika seperti pembagian dengan nol Muncul ketika suatu aplikasi berusaha menggunakan obyek tanpa mengalokasikan 57 Exception IllegalArgumentException ArrayIndexOutOfBoundsException NumberFormatException ArithmeticException NullPointerException Pemrograman Berorientasi Obyek . Kelas Exception mempunyai beberapa subclass seperti RunTimeException. Untuk lebih lengkapnya. Exception RunTimeException mengelola exception yang muncul di dalam program ketika runtime. dapat dibaca di javadoc manual.Politeknik Telkom Pemrograman Berorientasi Obyek tetapi error ini merupakan error yang dapat diatasi dengan cara tertentu. InterruptedException. dan IOException.

Lingkup dari blok catch dibatasi oleh Statement yang ada di dalam blok try. Blok catch digunakan sebagai exception handler. Java mengirimkannya ke program dengan melemparkan exception (throwing exception).Politeknik Telkom Pemrograman Berorientasi Obyek memori 1. Statement untuk mendeklarasikan blok try catch : 58 Pemrograman Berorientasi Obyek .3 Mengimplementasikan Exception Handling Ketika sebuah error muncul di dalam method. Blok Statement try membingkai kode yang kemungkinan akan memunculkan exception dan mendefinisikan exception handler yang dapat menanganinya. Exception yang dlempar perlu ditangani menggunakan exception handler dan diproses.1. Klausa catch menspesifikasikan tipe exception yang akan ditangani. Blok try harus mempunyai minimal satu buah blok catch yang mengikutinya.1 Statement Try dan Catch Untuk menangkap exception di dalam program java. Untuk mengimplementasikan Exception handling digunakan keyword berikut : ○ ○ ○ ○ ○ Try Catch Finally Throw Throws 1. Setelah membuat obyek exception. diperlukan Statement try. Java membuat sebuah obyek Exception.

Sistem. Contoh : public class ArithmeticException { public static void main (String[] args) { int num1=5.Politeknik Telkom Pemrograman Berorientasi Obyek try { //Statements that cause an exception } catch(<exception name> <object name>) { //error handling code } Komputer akan mengeksekusi statement yang ada di dalam blok try. Jika sebuah exception muncul didalam blok try maka exception handler yang berkaitan akan menangani exception tersebut. Jika tidak ada exception yang muncul ketika dieksekusi maka Statement catch tidak akan di jalankan. int num3=num1/num2. num2=0. } } Jika program diatas di compile maka tidak ada error. handler pada Java runtime sistem akan melempar sebuah exception ketika terjadi pembagian dengan nol sehingga akan dibuat sebuah obyek dari kelas exception yang dilempar yaitu ArithmeticException. Jika sebuah exception muncul maka blok catch akan langsung dijalankan. Pemrograman Berorientasi Obyek 59 . tetapi setelah di eksekusi. num2=0. pada contoh diatas karena muncul exception ArithmeticException maka akan dibuat exception handler untuk ArithmeticException public class ArithmeticException { public static void main (String[] args) { int num1=5.out.println(“The num3 = “+num3).

println(“The num3 = “+num3). int arrNum[]= {1. Contoh : public class MultipleCatch { public static void main (String[] args) { int num1=5. } catch(ArithmeticException obj) { Sistem. 1.Politeknik Telkom Pemrograman Berorientasi Obyek try { int num3=num1/num2. Sistem.println(“The 3 elemen is “+ArrNum[3]).2 Multiple Catch Sebuah blok try dapat diikuti oleh banyak blok catch.3 }.out.out. Sistem.out. Sistem.println(“Division by zero”). } } } Dengan menangani exception maka program terhindar dari kerusakan. 60 Pemrograman Berorientasi Obyek .println(“The num3 = “+num3). yang berisi data tentang exception. try { int num3=num1/num2. Hal ini penting ketika sebuah blok try mempunyai Statement yang mungkin akan memunculkan berbagai tipe exception. obyek yang merepresentasikan exception diletakkan ke dalam variabel obj.1.2. num2=0.out. Sebelum isi dari catch dieksekusi.

dan blok catch yang terakhir akan menangkap exception yang lain. Kelas Exception merupakan superclass dari semua tipe kelas exception.println(“Other error”)..println(“Division by zero”).Politeknik Telkom Pemrograman Berorientasi Obyek } catch(ArithmeticException obj) { Sistem. Ketika program mengeksekusi int num3=num1/num2. hal ini disebut unreachable code. dan Exception.out. maka ArithmeticException akan muncul dan akan ditangkap oleh blok catch yang pertama (ArithmeticException obj). blok catch yang kedua akan dieksekusi jika di dalam blok try melempar ArrayIndexOutOfBoundException.println(“Error…Out Of . } catch(Exception obj) { Sistem. maka catch yang Pemrograman Berorientasi Obyek 61 Sistem.out. ArrayIndexOutOfBoundException. Untuk menghindari error unreachable code. } } } Pada kode diatas terdapat tiga catch untuk menangani exception yaitu ArithmeticException. Blok catch yang pertama akan dieksekusi jika didalam blok try melempar ArithmeticException.out. } catch(ArrayIndexOutOfBondException obj) { Bounds”). Jika blok catch yang pertama berisi obyek dari kelas Exception maka blok catch berikutnya tidak akan dieksekusi.

1.4 Throwing Exception Suatu saat dibutuhkan untuk melempar exception pada program yang dibuat. meskipun tidak ada exception yang muncul atau ada exception yang muncul. Statement finally digunakan untuk melakukan sesuatu yang penting ketika terdapat exception atau tidak. Untuk menghindari duplikasi kode maka dapat diletakkan di dalam blok finally. Sintaks try-catch-finaly : try { //block of code } catch (<exception name> <object name>) { //block of exception code } finally { //block of code that is always executed } Jika sebuah exception dilempar atau tidak dilempar. boleh ada atau tidak di dalam try catch blok. tetapi hanya satu blok finally saja yang dapat dibuat dalam satu buah blok try. Hal ini terjadi jika di dalam program ditemukan beberapa exceptional atau kondisi error tetapi tidak ada alasan untuk menangani error tersebut dimana permasalahan ditemukan.3 Statement Finally Statement yang berada di dalam blok finally akan dieksekusi paling akhir ketika sedang mengeksekusi blok try.1. Blok finally merupakan pilihan. 1.Politeknik Telkom Pemrograman Berorientasi Obyek didalamnya mengandung kelas Exception diletakkan pada urutan blok catch yang terakhir.1. Program dapat melempar sebuah exception dengan harapan dapat ditangkap dan 62 Pemrograman Berorientasi Obyek . blok finally akan dieksekusi meskipun tidak ada Statement catch yang cocok dengan exception yang muncul.

Exception yang dilempar oleh Statement throw akan ditangkap oleh blok catah yang ada. Hal ini dapat dilakukan dengan melempar exception secara eksplisit dengan menggunakan Statement throw. try { if(A==0) { throw can't be zero").double B. double C) { double disc=0. Contoh: dibutuhkan untuk melempar exception ketika user salah memasukkan nilai. Contoh pengggunaan Statement throw: public class ThrowingStatement { static double root(double A.Politeknik Telkom Pemrograman Berorientasi Obyek ditangani oleh blok catch. if (disc<0) throw IllegalArgumentException("Discriminant< 0"). } else { disc = (B*B)-(4*A*C). Statement throw akan menyebabkan terminasi dari aliran control program Java dan menghentikan eksekusi ketika Statement tersebut dieksekusi. } Pemrograman Berorientasi Obyek 63 new IllegalArgumentException("A new . jika tidak ada blok catch yang sesuai dengan exception yang dilempar maka program akan diterminasi.

jika tidak maka program akan rusak dan harus diperbaiki. Statement throws digunakan untuk menuliskan tipe-tipe exception yang terdapat di dalam method. melempar sebuah exception merupakan cara yang masuk akal. } } Program diatas mempunyai kondisi A!= 0dan B*B4*A*C>=0. maka dapat menangkap exception.sqrt(disc))/(2*A)).Politeknik Telkom Pemrograman Berorientasi Obyek }//endtry catch(IllegalArgumentException obj) { in : "+obj). Statement Throws digunakan oleh method untuk menspesifikasikan tipe-tipe exception yang akan dilempar di dalam method. Jika method yang melempar exception tidak dapat menanganinya maka exception harus ditangani oleh bagian yang memanggil method tersebut. } return ((-B + Math. Ketika sebuah kondisi illegal ditemukan dalam method.4).2.println("Illegal Argument .out. Jika program yang memanggil method mengetahui cara menangani error. Contoh : class ThrowingStatement 64 Pemrograman Berorientasi Obyek Sistem. Method akan melempar sebuah exception IllegalArgumentException jika kondisi tersebut tidak terpenuhi. } public static void main(String[] args) { double Ans = root(0. Hal ini dilakukan dengan Statement throws.

if (disc<0) throw IllegalArgumentException("Discriminant< 0").4).sqrt(disc))/(2*A)).2. if(A==0) { throw can't be zero"). } else { disc = (B*B)-(4*A*C). } catch(IllegalArgumentException obj) { Pemrograman Berorientasi Obyek 65 new IllegalArgumentException("A new .Politeknik Telkom Pemrograman Berorientasi Obyek { static double root(double A. try { Ans = root(0. } return ((-B + Math. } public static void main (String[] args) { double Ans.double B. double C) throws IllegalArgumentException { double disc=0.

TestUTQ. } } public class UserException { static int TestUAQ. } } } 1.int UTQ) throws MyException { if ((UAQ<0)||(UTQ<0)) 66 Pemrograman Berorientasi Obyek . Contoh : class MyException extends Exception { public String toString() { return "MyException caught : The Input value cannot less than 0". Kelas Exception menuruni semua method yang ada di dalam kelas Throwable. static void setValue(int UAQ.2 User defined Exception User defined exception merupakan exception yang dibuat oleh programmer sesuai dengan permintaan pada aplikasi. throws.println("Illegal Argument in : "+obj). catch. try.out. User defined exception juga menuruni semua method yang didefinisikan di dalam kelas Throwable. Statement throw.Politeknik Telkom Pemrograman Berorientasi Obyek Sistem. Tiap aplikasi yang dibuat kemungkinan mempunyai batasan yang spesifik. dan finally digunakan dalam mengimplementasikan user define exception.

out. setValue(-70.Politeknik Telkom Pemrograman Berorientasi Obyek throw new MyException(). } } } Pemrograman Berorientasi Obyek 67 .90). Sistem. UTQ : "+TestUTQ).out.println("The Exception raised : "+obj).println("The value UAQ : "+TestUAQ+". TestUAQ=UAQ. } public static void main (String[] args) { try { setValue(80.60). TestUTQ=UTQ. } catch(MyException obj) { Sistem.

Exception merupakan event abnormal yang muncul selama eksekusi program dan menganggu alur instruksi. 6. 10. Blok Statement try membingkai kode yang kemungkinan akan memunculkan exception dan mendefinisikan exception handler yang dapat menanganinya sedangkan blok catch digunakan sebagai exception handler. User defined exception merupakan exception yang dibuat oleh programmer sesuai dengan permintaan pada aplikasi. 4. 3. Satu blok try mempunyai satu atau lebih blok catch dan satu blok finally yang optional. hal yang sebenarnya dilempar adalah sebuah obyek yang membawa informasi dari tempat dimana exception di tangkap dan dikelola. Di Java terdapat 2 tipe error. 9. 2. Exception Throws. Blok finally akan dieksekusi paling akhir ketika sedang mengeksekusi blok try. 5. yaitu compile time error dan runtime error. Catch. Class Throwable mempunyai turunan Class yaitu class Error dan Exception. 7. ketika ada exception atau tidak. Ketika sebuah exception dilempar. 68 Pemrograman Berorientasi Obyek Handling diimplementasikan dengan menggunakan keyword Try. 8. Finally.Politeknik Telkom Pemrograman Berorientasi Obyek Rangkuman 1. Statement throw digunakan untuk melempar Exception secara ekspisit. Throw dan .

6. NullPointerException terjadi ketika suatu aplikasi berusaha menggunakan obyek tanpa mengalokasikan memori 4. turunan Class yaitu class 2. 3. 5.Politeknik Telkom Pemrograman Berorientasi Obyek Kuis Benar Salah 1. Sebuah blok try harus diikuti oleh satu atau lebih blok catch dan satu blok finally. Class Error mempunyai Throwable dan Exception. Pemrograman Berorientasi Obyek 69 . Runtime error muncul ketika Sintaks pemrograman yang dibuat tidak sesuai dengan NullPointerException ketentuan yang ada dalam pemrograman Java (Sintaks error). Statement throws digunakan untuk melempar exception secara eksplisit.

Sistem.out.Politeknik Telkom Pemrograman Berorientasi Obyek Latihan 1. Apakah hasil dari Sintaks di bawah public class MultipleCatch { public static void main (String[] args) { int num1=5. } catch(ArithmeticException obj) { Sistem. int num4=num1/num2. } catch(ArrayIndexOutOfBondException obj) { Sistem.out. int arrNum[]= {1.out.println(“Other error”).2. } } 70 Pemrograman Berorientasi Obyek .println(“Error…Out Of Bounds”). try { int num3=num1/ArrNum[3].out. } catch(Exception obj) { Sistem. Sistem.3 }.println(“Division by zero”). num2=0.println(“The 3 elemen is “+ArrNum[3]).out.println(“The num3 = “+num3).

Sistem. } catch(ArithmeticException obj) { Sistem. pengakses array diluar batas"). } finally { Sistem.0}. ada pembagian dengan 0 "). } } } 3.getNilai().out. void getNilai() { Sistem.println("Error. } catch(ArrayIndexOutOfBoundsException obj) { Sistem.name).println("Error.println("Finally here"). Pemrograman Berorientasi Obyek 71 . Sebutkan hasil yang terjadi dari program di bawah public class MyApp { String name="Mark". Terdapat sebuah sistem supermarket yang akan digunakan untuk mengolah data pembelian. Pada aplikasi tersebut disimpan data barang yang dijual. int nilai[]={100. MyApp App2.out.println("Nilai rata-rata : "+ ((nilai[1]+nilai[2])/2)). App.println(App.out. } public static void main (String[] args) { try { MyApp App=new MyApp().out.Politeknik Telkom Pemrograman Berorientasi Obyek 2.out.

jumlah pembelian barang harus lebih besar dari 0. Ketika terjadi pembelian. dan harga. Harga barang harus lebih besar 0. nama barang. 72 Pemrograman Berorientasi Obyek . Buatlah user defined exception yang akan mengeluarkan exception jika harga barang yang dimasukkan <= 0 dan jika jumlah barang yang di beli < 0.Politeknik Telkom Pemrograman Berorientasi Obyek meliputi kode barang. pabrik.

baik melakukan proses pembacaan ataupun penulisan. Pemrograman Berorientasi Obyek 73 . Mengetahui penggunaan file menggunakan kelas File. Mengetahui penggunaan byte stream. Mengetahui pembacaan dan penulisan kedalam sebuah file. 3. Akan dibahas tentang pengaksesan data menggunakan stream dan random-access file. Tujuan 1. 2.Politeknik Telkom Pemrograman Berorientasi Obyek 1 Input/Output Overview Dalam bab ini akan dibahas tentang bagaimana cara melakukan pengaksesan data kedalam file.

Mengetahui penggunaan random-access file 74 Pemrograman Berorientasi Obyek . Mengetahui penggunaan character stream. 5.Politeknik Telkom Pemrograman Berorientasi Obyek 4.

Data dalam variabel tersebut akan hilang begitu keluar dari cakupan program (jika berupa variabel lokal) atau ketika program ditutup. maka akan membutuhkan waktu runtime yang sangat besar karena harus memasukkan data lagi dari awal. Bagi sebuah aplikasi yang membutuhkan sekian banyak data dalam pemrosesannya. file atau melalui jaringan. Pemrosesan file merupakan salah satu subset dari kemampuan pemrosesan stream dalam Java. yang biasanya digunakan untuk menyimpan data secara terus menerus. Dalam bab ini akan dibahas tentang fitur pengaksesan data pada file dan stream input/output. Pemrosesan file merupakan salah satu kemampuan penting dalam sebuah bahasa pemrograman yang digunakan dalam pengembangan sebuah aplikasi. pemrosesan file dengan stream dan pemrosesan random-access file. optical disk atau pita magnetik. Dalam bab ini akan dibahas tentang bagaimana Java membuat. maka data tidak akan hilang jika aplikasi ditutup dan bisa dipergunakan lagi begitu program dijalankan lagi. Disini akan kita bahas tentang tiga bentuk pemrosesan file.1 Pendahuluan Sebuah aplikasi menyimpan data dalam sebuah variabel.Politeknik Telkom Pemrograman Berorientasi Obyek 1. Komputer akan menyimpan data yang ada dalam sebuah file kedalam tempat penyimpanan sekunder seperti harddisk. Untuk menghindari hal itu. meng-update dan memproses data pada sebuah file. yang memungkinkan sebuah program untuk membaca dan menulis data kedalam memori. Dengan mekanisme tersebut. Java menyediakan sebuah Pemrograman Berorientasi Obyek 75 . diperlukan sebuah mekanisme yang bisa digunakan untuk menyimpan data-data dari variabel yang sebelumnya telah kita masukkan dan pergunakan. 1.2 Implementasi Kelas File File merupakan tempat penyimpanan utama data yang dimiliki oleh sebuah program. yang sebenarnya data tersebut disimpan dalam sebuah alamat memori.

io adalah kelas File. Kelas file dalam package java. Keterangan: Alamat disini bisa berupa alamat absolut atau alamat relatif.Politeknik Telkom Pemrograman Berorientasi Obyek package java. dan lain-lain. Salah satu kelas yang ada dalam package java. String namaFile): Membuat sebuah obyek dari kelas File. • File (String alamatDirektori): Membuat sebuah obyek dari kelas File.io untuk melakukan pemrosesan input dan output. alamat dari direktori dimana file tersebut berada. Terdapat beberapa method yang bisa digunakan didalam sebuah obyek dari kelas File. alamatDirektori menentukan alamat direktori dari file sedangkan nama file menentukan file mana yang akan diakses. tanggal pembuatan dan akses. alamatDirektori merupakan alamat di direktori mana file yang akan diakses berada. • File(String alamatDirektori. String namaFile): Membuat sebuah instance pada kelas File dimana obyekDirektori adalah sebuah obyek dari kelas File yang menunjuk sebuah direktori. Terdapat beberapa konstruktor yang bisa kita gunakan untuk membuat instance pada kelas File: • File(File obyekDirektori. sedang namaFile adalah file yang akan diakses. seperti hak akses dari. Sebuah obyek yang dibuat dari kelas File yang akan merepresentasikan file atau direktori. yang digunakan untuk melakukan pembuatan file dan direktori. antara lain: Tabel 7–1 Method dalam kelas File Method Keterangan 76 Pemrograman Berorientasi Obyek .io menyediakan berbagai macam method untuk mengakses atribut-atribut dari file dan direktori.

Politeknik Telkom

Pemrograman Berorientasi Obyek

boolean canRead()

Akan mengembalikan nilai true jika file yang sedang diakses saat ini dapat dibaca (readable). Jika tidak akan mengembalikan nilai false. Akan mengembalikan nilai true jika file bisa ditulis (writable). Jika tidak akan mengembalikan nilai false Akan mengembalikan nilai true jika argumen yang ditunjuk pada konstruktor instantiasi obyek merupakan sebuah file atau direktori. Jika bukan file atau direktori akan mengembalikan nilai false. Akan mengembalikan nilai true jika argumen yang ditulis dalam konstruktor merupakan sebuah file. Selain itu akan bernilai false. Akan mengembalikan nilai true jika argumen yang ditulis dalam konstruktor adalah sebuah direktori. Selain itu akan mengembalikan nilai false. Akan mengembalikan nilai true jika argument yang ditulis dalam konstruktor adalah sebuah alamat absolut dari file atau direktori. Selain itu akan mengembalikan nilai false. Akan mengembalikan sebuah string alamat absolut dari sebuah file atau direktori. Akan mengembalikan sebuah string
77

boolean canWrite()

boolean exists()

boolean isFile()

boolean isDirectory()

boolean isAbsolute()

String getAbsolutePath() String getName()

Pemrograman Berorientasi Obyek

Politeknik Telkom

Pemrograman Berorientasi Obyek

nama dari file atau direktori. String getPath() Akan mengembalikan sebuah string alamat dari dimana file atau direktori tersebut. Akan mengembalikan sebuah string alamat induk dari file atau direktori tersebut. (direktori dimana file atau direktori tersebut disimpan) Mengembalikan panjang dari file, dalam ukuran byte. Jika berupa sebuah direktori akan mengembalikan nilai 0 (nol). Akan mengembalikan sebuah representasi waktu kapan terakhir kali file atau direktori tersebut dimodifikasi. Akan mengembalikan sebuah array berbentuk string yang akan menyimpan daftar isi (file dan direktori) dari sebuah direktori. Jika bukan sebuah direktori akan mengembalikan nilai null.

String getParent()

long length()

long lastModified()

String[] list()

Berikut adalah contoh penggunaan kelas File. import java.io.File; import java.io.IOException; class AksesFile { String daftar[] = new String[20];
78 Pemrograman Berorientasi Obyek

Politeknik Telkom

Pemrograman Berorientasi Obyek

public void displayData() { try { File obj1 = new File("D:\\IO","KelasFile.java"); File obj2 = new File("D:\\IO"); Sistem.out.println("Sebuah obyek file"); Sistem.out.println("Nama File "+obj1.getName()); :

Sistem.out.println("getAbsolutPath : "+obj1.getAbsolutePath()); Sistem.out.println("getPath "+obj1.getPath()); Sistem.out.println("Lokasi "+obj1.getParent()); Sistem.out.println("Panjang "+obj1.length()); Sistem.out.println("Last Modif "+obj1.lastModified()); Sistem.out.println(); Sistem.out.println("Sebuah obyek Direktori"); Sistem.out.println("Nama Direktori : "+obj2.getName()); Sistem.out.println("getAbsolutPath : "+obj2.getAbsolutePath()); Sistem.out.println("getPath "+obj2.getPath()); Sistem.out.println("Lokasi "+obj2.getParent()); : : : : : :

Pemrograman Berorientasi Obyek

79

Sistem.println("last Modif "+obj2.out.println("Isi dari direktori : ").Politeknik Telkom Pemrograman Berorientasi Obyek Sistem.i++) { Sistem.displayData(). for (int i=0. : : Sistem.out.println("\t"+daftar[i]).i<daftar. aksesFile. } } Keluaran dari program diatas adalah: 80 Pemrograman Berorientasi Obyek .length()). } } catch (Exception e) { Sistem.length.list().out.lastModified()). } } } class KelasFile { public static void main(String[] args) { AksesFile aksesFile = new AksesFile(). daftar = obj2.println("Panjang "+obj2.out.println(e).out.

file).io terdiri dari berbagai macam kelas dan interface stream I/O yang mendukung operasi I/O.1. yaitu input yang berasal dari sebuah sumber (misal sebuah keyboard.1.Politeknik Telkom Pemrograman Berorientasi Obyek 1. Beberapa Pemrograman Berorientasi Obyek 81 . package java. jaringan komputer. file) kemudian data masukan tadi akan diproses dan akan dikeluarkan menuju sebuah tujuan (misal monitor. 1. Terdapat dua Kelas byte stream yaitu InputStream dan OutputStream. Operasi Input output (I/O) terdiri dari dua bagian.1 Ouput Stream Kelas OutputStream merupakan stream yang digunakan untuk menulis data dalam bentuk byte. Didalam Java. byte stream dengan unit dasar satu byte data dan character stream dengan dasar satu karakter Unicode.1.1 Penggunaan Stream dalam Java Stream dalam sebuah program java digunakan untuk melakukan pembacaan atau penulisan kedalam sebuah asal (source) atau tujuan (destination). jaringan komputer. 1. Stream dibagi menjadi dua jenis.1 Implementasi Byte Stream Byte stream menggunakan byte sebagai unit dasar operasi baca dan tulis terhadap streamnya.

Menulis kedalam byte dimana datanya berasal dari sebuah array b. PipedOutputStream ByteArrayOutputStream FileOutputStream OutputStream FilterOutputStream OutputStream ObjectOutputStream Gambar 7–1 Kelas OutputStream Beberapa method yang digunakan dalam kelas OutputStream Method Tabel 7–2 Method pada kelas OutputStream Keterangan Menulis sekian b byte kedalam sebuah file.Politeknik Telkom Pemrograman Berorientasi Obyek contohnya adalah digunakan untuk menulis kedalam layar monitor atau file. dimulai dari lokasi offset sebanyak sekian length byte. write(byte b) write(byte b[]) write(byte b[]. int length) close() flush() 82 Pemrograman Berorientasi Obyek . Berikut adalah hirarki dari kelas OutputStream. Menulis array berisi byte kedalam sebuah file. Menghapus buffer stream output. int offset. Menutup stream output.

println().in. Pemrograman Berorientasi Obyek 83 .println("isi Teks:").println("menekan tombol enter"). } catch(Exception e) { Sistem.read(buffer).out.out.1.1Obyek Sistem. Sistem. yang merupakan instance dari kelas PrintStream yang bisa menggunakan method print() dan println() untuk menulis kedalam layar monitor. Sistem.out.out. Sistem.out.1.lang memilike sebuah variabel statik yang digunakan untuk merepresentasikan sebuah layar monitor.out. try { Sistem.print("akhiri dengan "). Sistem. Berikut adalah contoh penggunaan Sistem.out.println(e). Sistem.Politeknik Telkom Pemrograman Berorientasi Obyek 1. public class CobaSistemIn { public static void main(String args[]) { byte buffer[]=new byte[80]. } Sistem.out.print(str). String str=new String(buffer). ").out Kelas Sistem dalam package java. Variabel tersebut adalah out.print("Ketik sesuatu.1.

boolean bool): Membuat sebuah obyek File stream yang menghubungkan dengan sebuah file. • FileOutputStream(String alamatFile): Membuat sebuah obyek File stream yang menghubungkan dengan sebuah file.1. sedang boolean bool jika bernilai true 84 Pemrograman Berorientasi Obyek .Politeknik Telkom Pemrograman Berorientasi Obyek } } Berikut adalah hasil dari kode diatas.1.2FileOutputStream Kelas FileOutputStream digunakan untuk melakukan operasi penulisan kedalam sebuah file. objFile merupakan sebuah file obyek yang merepresentasikan sebuah file. String alamatFile merupakan alamat dari file yang akan dijadikan tujuan penulisan. Beberapa konstruktor yang bisa digunakan dalam kelas FileOutputStream adalah: • FileOutputStream(File objFile): Membuat sebuah obyek File stream yang menghubungkan dengan sebuah file. • FileOutputStream(File objFile.1. 1. objFile merupakan sebuah file obyek yang merepresentasikan sebuah file.

read(buffer. 0. Menulis sejumlah length byte dari posisi offset kedalam file stream.Politeknik Telkom Pemrograman Berorientasi Obyek menunjukkan bahwa penulisan file dilakukan dalam mode append (penambahan data di akhir file) • FileOutputStream(String s.*. boolean bool): Membuat sebuah obyek File stream yang menghubungkan dengan sebuah file.println("Masukkan data:"). int offset. Pemrograman Berorientasi Obyek 85 . sebanyak length byte. try { Sistem. Berikut adalah contoh dari penggunaan FileOutputStream.in. String alamatFile merupakan alamat dari file yang akan dijadikan tujuan penulisan.out.io. int length) Menulis byte b kedalam file stream. import java. public class ContohFOS { public static void main(String args[]) { byte buffer[]=new byte[100]. sedang boolean bool jika bernilai true menunjukkan bahwa penulisan file dilakukan dalam mode append (penambahan data di akhir file) Beberapa method untuk melakukan penulisan kedalam stream dengan kelas FileOutputStream Tabel 7–3 Method dalam kelas FileOutputStream Method Keterangan write(byte b) write(byte b[]. 100). Sistem.

out.Politeknik Telkom Pemrograman Berorientasi Obyek } catch(IOException e) { Sistem.write(buffer).txt").println(f).println(e).out.println("Data telah ditulis. } try { FileOutputStream objFOS. Sistem..").out..println(i). objFOS= new FileOutputStream("textFOS. } } } 86 Pemrograman Berorientasi Obyek . } catch(IOException i) { Sistem. objFOS. } catch(FileNotFoundException f) { Sistem.out.

txt 1. • BufferedOutputStream(OutputStream objOS): Membuat sebuah stream output dan menambahkan buffer kedalamnya.1. • BufferedOutputStream(OutputStream besarBuffer): Pemrograman Berorientasi Obyek os. Ukuran buffer secara defaultnya adalah 512 byte. Berikut beberapa konstruktor yang digunakan dalam kelas BufferedOutputStream.Politeknik Telkom Pemrograman Berorientasi Obyek Runtime dari kode diatas Hasil penulisan dalam file textFOS. int 87 .1BufferedOutputStream Kelas BufferedOutputStream membuat sebuah buffer dalam memori dan menampilkan buffer tersebut kedalam stream output. Buffer akan menyimpan byte-byte dalam dan mengirimkannya ke tujuan hanya dalam 1 kali operasi I/O saja.1.1.

FileNotFoundException. import java. import java.io. public class ContohBOS { public void writeToFile(String filename) { BufferedOutputStream BOS = null.FileOutputStream. import java.IOException. int len) public void flush() Menulis sejumlah b.length byte kedalam stream output.write("Contoh BufferedOutputStream". misal file Berikut adalah contoh penggunaan BufferedOutputStream. import java. 88 Pemrograman Berorientasi Obyek . BOS.getBytes()). Menulis isi dari array b kedalam stream output sejumlah len dimulai dari posisi offset Menulis semua byte yang ada didalam buffer kedalam tujuan penyimpanan.BufferedOutputStream.io.io. try { BOS = new BufferedOutputStream(new FileOutputStream(filename)). Tabel 7–4 Method dalam kelas BufferedOutputStream Method Keterangan public void write(byte[] b) public void write(byte[] b. int offset.Politeknik Telkom Pemrograman Berorientasi Obyek Membuat sebuah stream output dan menambahkan buffer kedalamnya dengan ukuran buffer yang telah ditentukan sebesar besarBuffer.io.

txt")."). } } } public static void main(String[] args) { new ContohBOS().Politeknik Telkom Pemrograman Berorientasi Obyek Sistem.println("Data telah ditulis. } catch (IOException ex) { ex.close().println(e)..printStackTrace().printStackTrace(). } Pemrograman Berorientasi Obyek 89 .out.out. BOS..flush(). } catch (FileNotFoundException e) { Sistem. } } catch (IOException ex) { ex. } finally { try { if (BOS != null) { BOS.writeToFile("contohBOS.

Politeknik Telkom Pemrograman Berorientasi Obyek } 90 Pemrograman Berorientasi Obyek .

keyboard dan jaringan) dan menampilkan datanya kedalam layar monitor. Pemrograman Berorientasi Obyek 91 . 1.1Input Stream Input stream adalah stream yang membaca data dalam bentuk byte.Politeknik Telkom Pemrograman Berorientasi Obyek Eksekusi kode diatas File contohBOS. Java menyediakan kelas InputStream yang merupakan kelas abstrak untuk melakukan proses input untuk membaca data dari berbagai macam sumber (seperti file.txt.1. hasil penyimpanan dari contoh diatas.1.

Politeknik Telkom Pemrograman Berorientasi Obyek AudioInputStream ByteArrayInputStream FileInputStream FilterInputStream InputStream InputStream ObjectInputStream PipedInputStream SequenceInputStream StringBufferInputStream Gambar 7–2 Hirarki kelas InputStream Beberapa method yang digunakan dalam kelas InputStream Tabel 7–5 Method InputStream Method int read() int read(byte b[]) Keterangan Membaca satu byte data dari input stream. Jika memasuki akhir dari stream akan mengembalikan nilai -1 92 Pemrograman Berorientasi Obyek int read(byte b[]. int length) . int offset. Membaca beberapa byte dari input stream dan memasukkannya kedalam array b Membaca sebanyak length byte dari stream dan memasukkannya kedalam array b.

Mengembalikan posisi kepada lokasi yang telah ditandai dari method mark.out.1.1Obyek Sistem.print("Ketik sesuatu. Berikut adalah contoh penggunaan Sistem. Menandai posisi yang ada pada input stream saat ini.Politeknik Telkom Pemrograman Berorientasi Obyek available() long skip(long n) mark(int nbyte): reset(): Mengembalikan jumlah byte yang bisa dibaca dari sebuah stream. Pemrograman Berorientasi Obyek 93 .lang memiliki satu anggota static yang merupakan referensi dari sebuah keyboard.print("akhiri dengan "). Sistem. Melewatkan sekian n byte dari input stream. Sistem. public class CobaSistemIn { public static void main(String args[]) { byte buffer[]=new byte[80]. Menutup input stream dan melepaskan sumber daya yang terikat pada stream tersebut.1. void close() 1.out.1.in yang akan digunakan untuk membaca inputan user dari keyboard.in Kelas Sistem dalam package java. "). Variabel dengan nama in merupakan sebuah instance dari kelas InputStream yang dapat digunakan untuk membaca dari dari keyboard.

out. String str=new String(buffer).1.Politeknik Telkom Pemrograman Berorientasi Obyek Sistem.out.in. } Sistem.println(e).1. } catch(Exception e) { Sistem. } } Berikut adalah hasil dari kode diatas: 1.out.println("isi Teks:"). Sistem. try { Sistem.println("menekan tombol enter").out.1.out.read(buffer). Sistem.println().2Kelas FileInputStream 94 Pemrograman Berorientasi Obyek .print(str).

Beberapa method FileInputStream Method read() read(byte b[]. int length): long skip(long n) yang digunakan dalam kelas Tabel 7–6 Method dalam kelas FileInputStream Keterangan Membaca satu byte data dari stream inputan.*. int offset.Politeknik Telkom Pemrograman Berorientasi Obyek Kelas FileInputStream digunakan untuk melakukan operasi input pembacaan data dari dalam file. • FileInputStream(File namaFile): Membuat sebuah obyek yang akan menggunakan file dengan nama namaFile sebagai sumber inputannya. Berikut adalah contoh penggunaan FileInputStream. Membaca sekian length byte data dari stream input dan memasukkannya kedalam sebuah array b. • FileInputStream(String alamatFile): Membuat sebuah obyek yang akan menggunakan sebuah file dengan alamat alamatFile (berbentuk string) sebagai sumber inputannya. import java.io. public class ContohFIS Pemrograman Berorientasi Obyek 95 . Berikut adalah beberapa konstruktor yang bisa digunakan dalam kelas FileInputStream. Melewatkan sekian n byte data dari stream input. • FileInputStream(FileDescriptor obyekFile): Membuat sebuah obyek yang akan menggunakan sebuah obyekfile yang sudah ditentukan sebelumnya sebagai sumber inputannya.

out.out.println("Isi file dokumen. } } Berikut adalah hasil dari kode diatas 96 Pemrograman Berorientasi Obyek . String str=new String(buffer).txt adalah:").txt").Politeknik Telkom Pemrograman Berorientasi Obyek { public static void main(String args[]) { byte buffer[]=new byte[100]. Sistem. } catch(Exception e) { Sistem.50).read(buffer.0. file. } Sistem. try { FileInputStream file=new FileInputStream("dokumen.println(e).println(str).out.

isObj merupakan obyek yang digunakan untuk menentukan dari sumber mana inputan berasal.*. int ukuranBuffer): Membuat sebuah stream input dan menambahkan ukuran buffer sebesar ukuranBuffer. BufferedReader dataIn = new BufferedReader(is).1.io.1Kelas BufferedInputStream Kelas BufferedInputStream menerima inputan dari stream input dan menyimpannya kedalam buffer memori komputer. • BufferedInputStream(InputStream isObj.1. Berbeda dengan kelas ByteArrayInputStream yang hanya membaca data dalam bentuk byte saja.1. import java. isObj merupakan obyek yang digunakan untuk menentukan dari sumber mana inputan berasal. ukuran buffer secara defaultnya adalah 512 byte. String data="". Beberapa konstruktor dari kelas BufferedInputStream adalah: • BufferedInputStream(InputStream isObj): Membuat sebuah obyek stream input dan menambahkan buffer kedalam obyek tersebut.Politeknik Telkom Pemrograman Berorientasi Obyek 1. Pemrograman Berorientasi Obyek 97 . kelas BufferedInputStream akan membaca data dalam berbagai jenis tipe data. public class ContohBSR { public static void main(String args[]) { InputStreamReader is = new InputStreamReader(Sistem.in). Contoh penggunaan BufferedStreamReader.

out.println(data).1 Implementasi Character Stream Kelas-kelas stream karakter menangani proses I/O dengan basis unit adalah sebuah karakter dengan menggunakan representasi Unicode yang disimbolkan dengan 98 Pemrograman Berorientasi Obyek .out.Politeknik Telkom Pemrograman Berorientasi Obyek try { Sistem. "). Sistem. Sistem. Sistem.out.out. } } Hasil dari kode diatas adalah: 1. } catch(Exception e) { Sistem.1.out.println("akhiri dengan enter :").print("Ketik sesuatu. } Sistem.println("Hasil output data:").readLine().out. data=dataIn.println().println(e).

maka kelas ini tidak bisa diinstantiasi.io. Berikut adalah kelas-kelas turunan dari kelas Reader.io.Reader merupakan sebuah kelas abstrak yang menyediakan berbagai macam method untuk melakukan proses pembacaan dalam bentuk karakter Unicode dari berbagai sumber data seperti harddisk. tetapi subkelasnya lah yang akan digunakan untuk proses pembacaan data. Tabel 7–7 Method dalam kelas Reader Keterangan Membaca satu karakter dan mengembalikan sebuah nilai integer 99 Method int read() Pemrograman Berorientasi Obyek . keyboard atau memori.1Kelas Reader Kelas java. Stream karakter terdiri dari kelas-kelas Reader dan Writer dalam package java. 1. tetapi sebenarnya hanya method read() dan close() saja yang kita perlukan.Politeknik Telkom Pemrograman Berorientasi Obyek 16 bit.1.1. BufferedReader CharArrayReader FilterReader Reader InputStreamReader PipedReader StringReader Gambar 7–3 Hirarki Kelas Reader Terdapat berbagai macam method dalam kelas Reader. Karena merupakan sebuah kelas abstrak.

abstract void close() 100 Pemrograman Berorientasi Obyek . Jika yang dibaca adalah EOF maka akan dikembalikan nilai -1. Jika EOF akan mengembalikan nilai -1 Menutup stream. int read(char buffer[]) Membaca karakter dan memasukkannya kedalam sebuah array buffer dan mengembalikan sebuah bilangan dari karakter yang dibaca.Politeknik Telkom Pemrograman Berorientasi Obyek dari karakter yang dibaca.

Pemrograman Berorientasi Obyek 101 .1.out.Politeknik Telkom Pemrograman Berorientasi Obyek 1.*. FileReader f=new FileReader(file). tetapi kelas ini tidak memiliki method didalamnya.1.print((char)ch).txt"). while((ch=f.io. • FileReader(File objFile) Membuat sebuah kelas FileReader dengan inputan sebuah obyek objFile.read())!=-1) { Sistem. • FileReader(String namaFile) Membuat sebuah kelas FileReader dengan inputan sebuah nama namaFile. Berikut adalah contoh penggunaan FileReader import java. int ch. Terdapat beberapa konstruktor dala kelas FileReader ini. public class contohFR { public static void main(String args[]) { try { File file=new File("cthFileReader.1. Method-nya sendiri diturunkan dari kelas induknya yaitu Reader dan InputStreamReader.1Kelas FileReader Kelas FileReader digunakan untuk membaca karakter dari dalam file.

println(fnf).out.out. } catch(IOException io) { Sistem. Berikut adalah hasil eksekusi dari kode diatas 102 Pemrograman Berorientasi Obyek . } } } File yang akan dibaca dari kode diatas berisi hal berikut.Politeknik Telkom Pemrograman Berorientasi Obyek } } catch(FileNotFoundException fnf) { Sistem.println(io).

String str=new String(). public class contohBR { public static void main(String args[]) { Sistem. Dengan menggunakan buffer.Politeknik Telkom Pemrograman Berorientasi Obyek 1.1. sehingga bisa lebih meningkatkan performansi dari aplikasi. Contoh penggunaan dari kelas ini adalah untuk mendapatkan inputan dari user melalui konsole.println("Ketik :").1Kelas BufferedReader Kelas BufferedReader membaca teks dalam bentuk stream karakter dan memasukkannya kedalam sebuah buffer didalam stream input. • BufferedReader(Reader objStream.1.in)).io. Beberapa konstruktor dari kelas BufferedReader ini. BufferedReader br=new BufferedReader(new InputStreamReader(Sistem. int ukuranBuffer) Membuat sebuah obyek BufferedReader dengan ukuran buffer sebesar ukuranBuffer. Berikut adalah contoh dari BufferedReader import java. • BufferedReader(Reader objStream) Membuat sebuah obyek BufferedReader dengan ukuran buffer default. try { Pemrograman Berorientasi Obyek 103 .out.*.1. maka proses pembacaan bisa dilakukan lebih dari satu kali pada saat yang sama.

1. Berikut adalah kelas-kelas turunan dari kelas Writer. } } Hasil dari kode diatas adalah 1. Sistem.Politeknik Telkom Pemrograman Berorientasi Obyek str=br. 104 Pemrograman Berorientasi Obyek .out. Sistem. } catch(IOException io) { Sistem. Karena merupakan sebuah kelas abstrak.out. tetapi sub-kelasnya lah yang akan digunakan untuk proses pembacaan data.out.out.println(io).readLine().1. maka kelas ini tidak bisa diinstantiasi.println("Isi ketikan: ").1Kelas Writer Kelas java.println(str). } Sistem.println().io.Writer merupakan sebuah kelas abstrak yang menyediakan berbagai macam method untuk melakukan proses penulisan dalam bentuk karakter Unicode ke berbagai tujuan data seperti harddisk dan monitor.

tetapi hanya method write(). Menutup stream. Method Tabel 7–8 Method dalam kelas Writer Keterangan Menulis sebuah karakter kedalam stream output-karakter.Politeknik Telkom Pemrograman Berorientasi Obyek BufferedWriter CharArrayWriter FilterWriter Writer OutputStreamWriter PipedWriter PrintWriter StringWriter Gambar 7–4 Hirarki kelas Writer Terdapat banyak method dalam kelas Writer. flush() dan close() saja yang kita butuhkan. Menulis sebuah array karakter kedalam stream output-karakter. Mem-flush buffer output int write(int ch) int write(char buffer[]) abstract void close() Void flush() Pemrograman Berorientasi Obyek 105 .

1.1Kelas FileWriter Kelas FileWriter digunakan untuk menulis data kedalam sebuah file. tetapi kelas ini tidak memiliki method didalamnya. boolean boolAppend) Membuat sebuah obyek FileWriter dengan parameter inputan nama file yang akan ditulis.1. import java. Methodnya sendiri diturunkan dari kelas induknya yaitu Writer dan OutputStreamReader.Politeknik Telkom Pemrograman Berorientasi Obyek 1. sedangkan boolAppend digunakan untuk menentukan bahwa penulisan akan dilakukaan secara menambahkan data di bagian paling bawah jika boolAppend bernilai true. try 106 Pemrograman Berorientasi Obyek . public class ContohFW { public static void main (String args[]) { String str="contoh dari". • FileWriter(String namaFile. • FileWriter(String namaFile) Membuat sebuah obyek FileWriter dengan parameter inputan nama file yang akan ditulis. Terdapat beberapa konstruktor dala kelas FileWriter ini. String str2="penggunaan kelas FileWriter".*. Berikut adalah contoh dari penggunaan kelas FileWriter. • FileWriter(File objFile) Membuat sebuah obyek FileWriter dengan parameter inputan sebuah obyek dari kelas File.io.1.

} } } Hasil dari kode diatas Pemrograman Berorientasi Obyek 107 . 0.out. Sistem.txt" ).close(). str."). 0.. fout.write(str.out. fout. fout.println("Data sudah ditulis.length() ).write(str2.println(io). } catch (IOException io) { Sistem.Politeknik Telkom Pemrograman Berorientasi Obyek { FileWriter fout = new FileWriter("cthFileWriter.length() ).. str2.

int ukuranBuffer) Membuat sebuah obyek BufferedWriter dengan ukuran buffer sebesar ukuranBuffer Berikut adalah contoh penggunaan BufferedWriter import java. BufferedWriter memiliki beberapa konstruktor • BufferedWriter(Writer streamOutput) Membuat sebuah obyek BufferedWriter dengan ukuran buffer default.1.1Kelas BufferedWriter Kelas BufferedWriter menulis teks dalam bentuk stream karakter dan memasukkannya kedalam sebuah buffer didalam stream output. Dengan menggunakan buffer.1.Politeknik Telkom Pemrograman Berorientasi Obyek File cthFileWriter.txt akan berisi. • BufferedWriter(Writer streamOutput. 1. sehingga bisa lebih meningkatkan performansi dari aplikasi. public class contohBW { public static void main(String args[]) { 108 Pemrograman Berorientasi Obyek .1.io. maka proses penulisan bisa dilakukan lebih dari satu kali pada saat yang sama.*.

} }} Proses eksekusi dari contoh diatas. Pemrograman Berorientasi Obyek 109 .out. try { bw=new BufferedWriter(new FileWriter("cthBuffWriter. } bw.in.txt")).out.println("Ketik kalimat"). Sistem.Politeknik Telkom Pemrograman Berorientasi Obyek int ch. BufferedWriter bw=null.read())!=-1) { bw.println("akhiri dengan [ctrl + z]:").println(io). while((ch=Sistem. Sistem. //penulisan kedalam file } catch(IOException io) { Sistem.out.flush().write(ch).

1. 110 Pemrograman Berorientasi Obyek .1Kelas PrintWriter Kelas PrintWriter merupkan turunan dari kelas Writer dan akan menuliskan karakter yang telah terformat kedalam stream karakter output.txt adalah 1. • PrintWriter(Writer outWriter. boolean autoflush) Membuat sebuah obyek dari kelas PrintWriter dengan menggunakan obyek dari kelas OutputStream. boolean autoflush) • Membuat sebuah obyek dari kelas PrintWriter dengan menggunakan obyek dari karakter stream output. Didalam kelas ini terdapat beberapa method yang akan digunakan yaitu print() dan println().1.Politeknik Telkom Pemrograman Berorientasi Obyek Isi file cthBuffWriter.1. • PrintWriter(OutputStream streamObj. terdapat beberapa konstruktor dalam kelas ini. Parameter autoflush menandakan bahwa method println() akan memflush kedalam buffer output. • PrintWriter(OutputStream streamObj) Membuat sebuah obyek dari kelas PrintWriter dengan menggunakan obyek dari kelas OutputStream. Parameter autoflush menandakan bahwa method println() akan memflush kedalam buffer output.

pw.out.println().print("Jakarta"). Pemrograman Berorientasi Obyek 111 .print("30208999:").print("Chairil Anwar:").print("Budiman:"). try { FileWriter file=new FileWriter("cthPrintWriter.*. } pw.println(). pw. pw. public class contohPW { public static void main(String args[]) { PrintWriter pw=null. pw=new PrintWriter(file). import java. } catch(IOException io) { Sistem. pw. pw. pw.println(io).io.print("30108999:").Politeknik Telkom Pemrograman Berorientasi Obyek Contoh penggunaan kelas PrintWriter. pw.txt").print("Bandung").

print("Subang"). } } Eksekusi dari kode diatas Hasil penyimpanan data diatas pada file cthPrintWriter.. Dengan cara ini kita bisa membaca dan menulis data teks dan byte pada lokasi manapun dalam sebuah file.txt 1.1 Implementasi RandomAccessFile Random access file (pengaksesan file secara acak) memungkinkan kita untuk mengakses isi dari sebuah file secara tidak berurutan.out.Politeknik Telkom Pemrograman Berorientasi Obyek pw. pw. pw.print("Agus Subagus:").. Ambil sebuah kasus ketika yang kita inginkan 112 Pemrograman Berorientasi Obyek .println("Data Telah Ditulis. pw. pw.print("30308999:"). Sistem.").close().println().

dimana argumen namaFile adalah nama dari file yang akan dibuka. dimana argumen obyekFile adalah obyek yang menentukan file mana yang akan dibuka. Jika dilakukan proses penulisan pada obyek ini maka akan menghasilkan sebuah IOException 113 Pemrograman Berorientasi Obyek . String mode): Membuat sebuah obyek dari kelas RandomAccessFile. • RandomAccessFile(String namaFile.Politeknik Telkom Pemrograman Berorientasi Obyek tidak semua teks dari sebuah file kita butuhkan. kita harus mendefinisikan proses apa yang akan kita lakukan. tetapi hanya pada posisi tertentu saja. misal pada baris ke-sekian. Terdapat beberapa konstruktor yang bisa digunakan dalam kelas RandomAccessFile. antara lain: Nilai "r" Tabel 7–9 Jenis akses pembukaan file Keterangan Membuka file hanya untuk dilakukan proses pembacaan saja.RandomAccessFile mengimplementasikan sebuah interface DataInput dan DataOutput yang bisa digunakana untuk melakukan proses baca dan tulis kedalam file. sedang argumen mode menentukan jenis hak akses pembukaan file tersebut.io. sedangkan argumen mode menentukan jenis hak akses pembukaan file tersebut. antara lain: • RandomAccessFile(File obyekFile. Maka dengan menggunakan Random access file ini kita bisa langsung menuju ke posisi yang diinginkan dan mengambil teks yang kita butuhkan saja. Didalam kelas ini. String mode): Membuat sebuah obyek dari kelas RandomAccessFile. Kelas java. apakah membaca atau juga akan menulis kedalam file tersebut. Terdapat beberapa jenis hak akses pembukaan file.

Pemrograman Berorientasi Obyek long getFilePointer() long length() void seek(long position) 114 . sebagaimana mode “rw”. Membuka sebuah file untuk dilakukan proses baca dan tulis. Menentukan posisi pointer kepada lokasi yang ditentukan (posisi sebelum lokasi tersebut). seperti stream dan pointer yang digunakan dalam file tersebut. yang akan dituliskan secara tersinkronisasi. "rws" "rwd" Terdapat beberapa method yang bisa digunakan didalam sebuah obyek dari kelas File. Membuka sebuah file untuk dilakukan proses baca dan tulis. antara lain: Tabel 7–10 Method dalam kelas RandomAccessFile Method void close() Keterangan Menutup sebuah obyek RandomAccessFile dan melepas semua sumber daya yang digunakan. Jika file yang ditunjuk tidak ada.Politeknik Telkom Pemrograman Berorientasi Obyek "rw" Membuka sebuah file untuk dilakukan proses baca dan tulis. sebagaimana mode “rw”. yang akan dituliskan secara tersinkronisasi. untuk mode “s” juga akan dilakukan proses update terhadap isi dan metadata dari file tersebut. maka akan dibuat sebuah file baru. untuk mode “s” juga akan dilakukan proses update terhadap isi dari file tersebut. Mendapatkan panjang dari sebuah file. Mendapatkan posisi pointer saat ini didalam sebuah file.

maka akan dibuat sebuah file baru */ file=new RandomAccessFile("work.seek(0).IOException. file. file."rw").writeChar('A').writeInt(6).Politeknik Telkom Pemrograman Berorientasi Obyek int skipBytes(int n) Akan melewati sekian n byte karakter dari posisi sekarang. public void aksesFile() { try { /*membuka file work. Pemrograman Berorientasi Obyek 115 . dengan mode akses read dan write jika file tidak ditemukan. import java. file. file.io.writeInt(4).txt.io.writeChar('K').txt". import java.RandomAccessFile. Berikut adalah contoh penggunaan RandomAccessFile. file. class RAC { RandomAccessFile file=null.

Politeknik Telkom Pemrograman Berorientasi Obyek Sistem.out.println(file.aksesFile(). } } Ouput dari contoh diatas 116 Pemrograman Berorientasi Obyek .println("Exception: " +e).out.out.println(file.println(file.println(file.readChar()). Sistem. } } } Class driver dari kelas RAC class ContohRandomAccessFile { public static void main(String[] args) { RAC obj = new RAC().readInt()). } catch(IOException e) { Sistem. obj. Sistem.close(). file. Sistem.out.readInt()).out.readChar()).

Politeknik Telkom Pemrograman Berorientasi Obyek Pemrograman Berorientasi Obyek 117 .

misal monitor dan file. ObjectOutputStream. InputStream. FileOutputStream. Penggunaan stream dalam Java untuk melakukan penulisan dan pembacaan data. ByteArrayInputStream. FileInputStream. PipedInputStream. FilterOutputStream. Kelas OutputStream terdiri dari kelas turunan ByteArrayOutputStream. PipedOutputStream.Politeknik Telkom Pemrograman Berorientasi Obyek Rangkuman • • • Penggunaan kelas File untuk mengakses atribut yang dimiliki oleh sebuah file atau direktori. misal keyboard dan file. • • • • 118 Pemrograman Berorientasi Obyek . Kelas InputStream terdiri dari kelas AudioInputStream. OutputStream. Terdapat dua jenis stream dalam Java ○ ○ Byte Stream Character Stream • Kelas InputStream digunakan untuk melakukan proses pembacaan data berbentuk byte stream dari berbagai macam sumber. StringBufferInputStream Kelas OutputStream digunakan untuk melakukan prose penulisan data berbentuk byte stream ke berbagai macam tujuan. misal keyboard dan file. Kelas Reader digunakan untuk melakukan proses pembacaan data berbentuk character stream dari berbagai macam sumber. ObjectInputStream. FilterInputStream. SequenceInputStream.

FilterReader. OutputStreamWriter. PipedWriter. • • • Pemrograman Berorientasi Obyek 119 . StringWriter. PipedReader. PrintWriter. CharArrayReader. CharArrayWriter. InputStreamReader. misal monitor dan file.Politeknik Telkom Pemrograman Berorientasi Obyek • Kelas Reader terdiri dari kelas turunan BufferedReader. Kelas Writer terdiri dari kelas turunan BufferedWriter. Pembacaan dan penulisan kedalam file dengan akses secara acak menggunakan kelas RandomAccessFile. StringReader Kelas Writer digunakan untuk melakukan prose penulisan data berbentuk character stream ke berbagai macam tujuan. FilterWriter.

data-data 2. Seperti soal diatas. Simpan data mahasiswa kedalam sebuah file Di awal eksekusi. b. 120 Pemrograman Berorientasi Obyek . Buat sebuah aplikasi yang akan digunakan untuk memproses nilai mahasiswa. a.Politeknik Telkom Pemrograman Berorientasi Obyek Latihan 1. Data yang disimpan adalah data nilai beserta indeksnya. Buatlah sebuah aplikasi yang digunakan untuk melakukan proses administrasi data mahasiswa yang terdiri dari. Input data mahasiswa. Cari Data mahasiswa c. aplikasi akan mengambil mahasiswa yang sebelumnya telah tersimpan. Hapus Data Mahasiswa d.

bilgi.javapassion. 14. 8. 3.cs.M. Shcool of Computer Science.tr/pages/standards_project/java_Codin gStyle. Springer. TU Darmstadt H.edu/class/cs107/handouts/42SimpleI nheritance.edu/~cs21a/Lectures/Lec1_cs22. sixth Edition.I Pengenalan Pemrograman 1 Versi 1.pdf http://www.stanford. Februari 2207 Poo. University of KwaZuluNatal Durban.M Deitel.2 juni 2007. versi 1. 2004. Exercise 10. O'Reillly & Associates Pemrograman Berorientasi Obyek 121 . 6. 2.edu.ac. Sixth Edition. Danny. Ashok.edu.ksu. Modul Praktikum Pemrograman Berorientasi Objek.E. 12.brandeis. 7. Deitel. 17.nott.pdf http://cseducation. 16. Derek.id/files/JENI-Intro1-Bab07-Java %20Array. Joyce Avestro. Kiong. JARDIKNAS Java Fundamental NIIT India Object Oriented Programming using Java Anban Pillay. "Object Oriented Programming and Java. Programming in Java NIIT India Puji Hartono. Swarnalatha. 13.ipb.pdf http://www. 15.sa/Shammami/Documents/DocCSC 113/Lectures%20Notes/ChapterRelationship.Politeknik Telkom Pemrograman Berorientasi Obyek Daftar Pustaka 1. 9.1997. August 2004 http://cs. ST. Introduction to Computer Science Januari 2003.uk/~dge/G51PRG/Using %20Inheritance%20in%20Java.cs.com/javase/ J. Java How To Program. 1996. Java How to Program.0 The Java Reference Library. 10. 5. 11. second Edition". 4. Prentice Hall. pdf http://poss. Prentice Hall.N. H.pdf http://faculty. 2008.ac. pdf http://www.

2009. "The Object-Oriented Thought Process. Addison-Wesley. Weisfeld. Developer's Library. Matt.Politeknik Telkom Pemrograman Berorientasi Obyek 18. 122 Pemrograman Berorientasi Obyek .

Sign up to vote on this title
UsefulNot useful