Anda di halaman 1dari 137

 

 
MODUL PERKULIAHAN
 

 
Pemrograman
Berorientasi Objek  
 

 
 
 

             

  Fakultas  Program Studi  Tatap Muka  Kode MK  Disusun Oleh   

1
  FASILKOM  Teknik Informatika  87023 Tim Dosen 
 

 
MODUl 1
Paradigma Pemrograman

A. Paradigma Pemrograman
Penggunaan komputer meningkat di hampir setiap bidang usaha.
Perkembangan pesat hardware dan software mampu menurunkan biaya komputasi
secara dramatis. Hal ini dimungkinkan dengan perkembangan teknologi chip silikon.
Teknologi chip silikon memungkin untuk membuat mesin komputasi dari seukuran
kamar menjadi seukuran komputer yang kita kenal sekarang ini. Perkembangan
pesat dalam bidang perangkat keras dan lunak diikuti pula dengan penurunan harga.
Sehingga penggunaan komputer saat ini meningkat di hampir setiap bidang.
Pemrograman adalah proses menulis, menguji dan memperbaiki (debug),
dan memelihara kode yang membangun sebuah program komputer. Kode ini ditulis
dalam berbagai bahasa pemrograman.Untuk dapat melakukan pemrograman,
diperlukan keterampilan dalam algoritma, logika, bahasa pemrograman dan
beberapa pengetahuan lainnya sesuai dengan masalah dihadapi.
Pemrograman adalah sebuah seni dalam menggunakan satu atau lebih
algoritma yang saling berhubungan dengan menggunakan sebuah bahasa
pemrograman tertentu sehingga menjadi sebuah program komputer. Bahasa
pemrograman yang berbeda mendukung gaya pemrograman yang berbeda pula,
metode pemrograman ini biasa disebut paradigma pemrograman.
Selama bertahun-tahun, para programmer belajar metodologi pemrograman
yang disebut pemrograman terstruktur. Pemrograman trustukture atau sering juga
disebut pemrograman prosedural mulai digunakan pada dekade tahun 1970.
Pemrograman trustruktur berkembang sebagai teknik pemrograman yang
menggantika teknik pemrograman tak terstruktur( unstructured programming).
Melalui pemrograman terstruktur akan lebih mudah untuk memahami
pemrograman berorientasi objek yang saat ini menjadi metodologi pemrograman
utama yang digunakan oleh programmer saat ini karena struktur internal mereka
sering dibangun menggunakan teknik pemrograman terstruktur.
Pemrograman berorientasi objek mulai dibicarakan sekitar akhir tahun 60’an.
Pertama kali diperkenalkan oleh Ole Johan Dhal dan Kristen Nygaard dari
Universitas Oslo, Norwegia pada tahun 1966 dalam jurnal dengan judul “SIMULA An
Algol Based Simulation Language”. Jadi OOP bukan hal baru.Pada tahun 1970
bahasa SMALTALK dikembangkan oleh XEROX PARC. Pada saat itu sebagian dari

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  2 Tim Dosen http://www.mercubuana.ac.id

 
dunia menggunaan COBOL dan FORTRAN dengan metode dekomposisi dan
fungsional. Perubahan terjadi selama beberapa dekade sampai dikenalnya faktor
utama berorientasi objek, yaitu :
 Konsep dasar berorientasi objek, konsep berorientasi objek mulai populer
dimana memulai Analisis dan Desain menjadi lebih diperhatikan daripada
Coding.
 Teknologi dasar pengembangan sistem, coding sangat dipengaruhi oleh
bahasa pemrograman yang tersedia. Untuk pengembangan program
terstruktur lebih mudah dikembangkan dengan pascal, atau C, dan
pembuatan coding berorientasi objek akan lebih mudah dikembangkan
dengan bahasa pemrograman VB.Net, C++, JAVA, PHP.

 Kondisi sistem, sistem yang dibagun saat ini berbeda dengan sistem
beberapa tahun yang lalu. Sistem yang sekarang lebih besar, kompleks dan
dapat juga merupakan sistem yang interaktif. Pendekatan berorientasi objek
merupakan cara yang lebih tepat untuk sistem yang berorientasi objek.

 Pengenalan model, banyak organisasi mendapatkan bahwa sistem yang


dibangun pada saat ini cendrung berorientasi data dari pada sistem yang
dibangun sekitar tahun 1970 dan 1980. pada waktu itu penggunaan model
telah mendapatkan prioritas lebih besar dibandingkan dengan kompleksitas
fungsional.

Pengembangan berorientasi objek merupakan cara berpikir baru tentang


perangkat lunak berdasarkan abstraksi alam dunia nyata. Hal yang lebih
diutamakan dalam pengembangan berorientasi objek adalah konsep
mengidentifikasi objek dan mengorganisasi domain aplikasi dibandingkan
dengan fokus penggunaan bahasa pemrograman berorientasi objek atau
tidak. Kebanyakan usaha akhir dalam lingkungan berorientasi objek
dipusatkan pada bahasa pemrograman. Pengembangan berorientasi objek
adalah proses konseptual terpisah dari bahasa pemrograman sampai tahap
akhir. Pengembangan berorientasi objek secara mendasar merupakan cara
berpikir baru dan bukan suatu teknik pemrograman. Hal ini dapat berfungsi
sebagai media spesifikasi, analisis, dokumentasi dan interface seperti halnya
pemrograman.

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  3 Tim Dosen http://www.mercubuana.ac.id

 
Metodologi berorientasi objek yang diperkenalkan pada tahun 1980,
menggunakan teknik-teknik yang dibutuhkan dalam pengembangan sistem,
yaitu: dynamic dan static object oriented model, state transtion diagram dan
case scenario.Fukus utama metodologi pada objek, dengan melihat suatu
sistem terdiri dari objek yang saling berhubungan. Objek dapat digambarkan
sebagai benda, orang, tempat dan sebagainya yang mempunyai atribut dan
metoda.Metodologi terdiri dari pembuatan model dari domain aplikasi,
kemudian menambahkan rincian implementasi. Tahapan-tahapan metodologi
berdasarkan system development life cycle dengan memperhatikan khusus
berorientasi objek.

B. Pengenalan Java
Java telah menjadi bahasa pilihan untuk menerapkan aplikasi berbasis
internet dan perangkat lunak komunikasi pada jaringan. Perangkat nirkabel , seperti
ponsel, pager dan personal digital assistant (PDA), berkomunikasi melalui internet
menggunakan aplikasi berbasis Java jaringan. Java telah berkembang pesat ke
arena aplikasi skala besar. Hal ini tidak lagi digunakan hanya untuk membuat
halaman Dunia Wide Web. Saat ini java menjadi bahasa pilihan untuk memenuhi
kebutuhan pemrograman enterprise-wide dari banyak organisasi.
Java dipelopori oleh James Gosling, Patrick Naughton, Chris Warth, Ed
Frank, dan Mike Sheridan dari Sun Microsystems, Inc pada tahun 1991.
Mereka membutuhkan kurang lebih 18 bulan untuk membuat versi pertamanya.
Bahasa ini pada awalnya disebut “Oak” tapi kemudian diubah menjadi “Java” pada
tahun 1995 karena nama Oak telah dijadikan hak cipta dan digunakan sebagai bahasa
pemrograman lainnya. Antara pembuatan Oak pada musim gugur 1992 hingga
diumumkan ke publik pada musim semi 1995, banyak orang yang terlibat dalam
desain dan evolusi bahasa ini. Bill Joy, Arthur van Hoff, Jonathan Payne, Frank
Yellin, dan Tim Lindholm merupakan kontributor kunci yang mematangkan
prototipe aslinya.
Java telah digunakan dalam banyak hal dan telah membuktikan keberadaannya
pada abad ke 21. Saat ini, Java digunakan bermacam jenis aplikasi seperti aplikasi
embedded, aplikasi keuangan, desktop, simulasi pesawat, pemrosesan citra,
game, aplikasi perusahaan terdistribusi yang disebut J2EE dan masih banyak lagi.

Java Virtual Machine (JVM)

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  4 Tim Dosen http://www.mercubuana.ac.id

 
Java Virtual Machine merupakan aplikasi sederhana yang ditulis dalam
bahasa C untuk mengeksi program yang ditulis dalam bahasa Java. Pada saat
kompilasi (perubahan dari bahasa tingkat tinggi ke bahasa lebih rendah), program
tersebut diubah menjadi KODE BYTE. Kemudian pada saat eksekusi, JVM
membaca kode byte tersebu dan mengubahnya menjadi bahasa mesin yang
dimengerti oleh sistem operasi tempat program tersebut dijalankan. Karena JVM
sangat bergantung pada platformnya (bahasa mesin merupakan bahasa level
rendah yang hanya dimengerti oleh suatu mesin tertentu, misalnya Intel, tapi tidak
dapat dimengerti oleh mesin lain, seperti Macintosh), byte code ini dapat dibuat
untuk terbebas dari kungkungan platform tertentu. Code byte yang dihasilkan dalam
proses kompilasi bahasa Java akan selalu sama untuk setiap sistem operasi atau
jenis mesinnya, tetapi JVM akan mengubah kode byte tersebut menjadi bahasa
mesin tujuannya.Mesin virtual java atau lebih dikenal dalam bahasa Inggris Java
Virtual Machine atau disingkat JVM merupakan mesin virtual yang digunakan
secara khusus mengeksekusi berkas bytecode java. JVM merupakan
perangkat lunak yang dikembangkan secara khusus agar terlepas dari
ketergantungan atas perangkat keras serta sistem operasi tertentu. JVM
menyediakan lingkungan kerja yang dibutuhkan untuk menjalankan aplikasi berbasis
java serta mengotomatisasikan fitur-fitur seperti penanganan kesalahan. JVM
umumnya didistribusikan bersama dengan seperangkat pustaka dasar yang
mengimplementasikan antarmuka pemrograman aplikasi java, Application
Programming Interface' (API) yang dinamai sebagai Java Runtime Environment
(JRE).Program yang dieksekusi oleh JVM merupakan program berbasis bytecode
yang umumnya ditulis dan dikompilasi dengan menggunakan bahasa
pemrograman Java, namun saat ini bisa juga berasal dari bahasa pemrograman
lain seperti: Jython (Python), Groovy, JRuby (Ruby).

Mesin virtual java standarnya dibuat oleh Oracle, namun mesin-mesin virtual java
lainnya yang menggunakan merek dagang "JAVA" boleh dibuat oleh
perusahaan lain sejauh produk- produk tersebut tunduk pada spesifikasi yang
ditetapkan serta kesepakatan atas kontrak obligasi antara perusahaan pembuat
dengan Oracle.

Garbage Collection

Dalam ilmu komputer, Garbage Collection merupakan bentuk manajemen


memori otomatis. Garbage collection akan menghapus isi dari bagian memori
yang dipakai oleh objek, variabel yang tidak lagi digunakan oleh program.

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  5 Tim Dosen http://www.mercubuana.ac.id

 
Garbage Collection diciptakan John McCarthy sekitar 1959 untuk memecahkan
masalah dalam bahasa pemrograman Lisp.

Garbage collection digambarkan sebagai kebalikan dari manajemen memori secara


manual dalam mengalokasikan kembali sumber daya memori. Metode yang
digunakan untuk mengelola sumber daya yang dikenal dengan nama
destructors.

Just In Time Compiler (JIT)

Meskipun Java didesain untuk diinterpretasi, secara teknis tidak ada yang
menghalangi Java untuk dikompilasi menjadi bahasa mesin seperti bahasa-bahasa

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  6 Tim Dosen http://www.mercubuana.ac.id

 
pemrograman lainnya. Sun menyediakan kompiler Just In Time Compiler (JIT) untuk
mengkompilasi kode byte itu menjadi bahasa mesinnya pada saat yang bersamaan
dengan eksekusinya. Walaupun demikian, pendekatan JIT ini menghasilkan
kemampuan yang lebih dibandingkan dengan interpretasi biasa.

Bahasa pemrograman lain yang telah ada sebelum Java lahir sudah
merupakan bahasa yang baik dan mudah dipelajasi oleh programmer profesional.
Akan tetapi para programmer ini menginginkan sesuatu yang baru yang memiliki
banyak hal yang menyelesaikan masalah mereka. Utamanya adalah keamanan kode
mereka. Hal ini melahirkan pikiran yang revolusioner untuk menemukan bahasa
pemrograman lain yang disebut Java. Tidak hanya keamanan tapi juga beberapa hal
yang sering disebut sebagai Java-Buzzwords. Kata-kata ini menjelaskan berbagai
fitur tambahan dan beberapa hal yang membuat Java demikian sukses dan diterima
oleh dunia perangkat lunak dengan pertimbangan sederhana dan Berorientasi Objek.

Para programmer yang terbiasa dengan bahasa pemrograman C dan C++


lebih mudah memahami java dan fungsionalitas java sebagai kakas pengembang
perangkat lunak berbasi objek. Dengan demikian tujuannya konsep dasar dari
teknologi Java dapat dimengerti dengan mudah, dan programmer dapat segera
menghasilkan sesuatu sedini mungkin. Tidak hanya ini, penemu Java memastikan
bahwa Java juga bermula dari bahasa pemrograman dasar yang sudah ada pada
saat itu. Kemudian mereka membuang berbagai fitur yang rumit dan
membingungkan.

Bahasa pemrograman Java didesain sejak awal untuk menjadi bahasa yang
berorientasi objek. Setelah kira-kira 30 tahun, akhirnya teknologi objek menjadi
kenyataan dan diterima oleh sebagian besar komunitas pemrograman. Konsep
berorientasi objek memungkinkan pembuatan software yang kompleks, berbasis
network, sehingga dapat disimpulkan bahwa teknologi Java menghasilkan platform
pembuatan perangkat lunak yang baik dan efisien serta berorientasi objek.

Keuntungan yang Anda dapat dari Java.

1. Tulis lebih sedikit program: Jumlah kelas, jumlah metode, dll, menunjukkan
bahwa program yang ditulis dalam bahasa pemrograman Java memiliki jumlah 4
kali lipat lebih kecil dari program sama yang ditulis dalam bahasa C++
2. Tulis program lebih baik: Bahasa pemrograman Java menganjurkan praktek
membuat program yang baik, dan automatic garbage collection sangat membantu

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  7 Tim Dosen http://www.mercubuana.ac.id

 
untuk menghindari kebocoran memori. Orientasi objeknya, arsitektur komponen
JavaBeans, dan jangkauannya yanga luas, API yang mudah diperluas,
memungkinkan Anda menggunakan kode yang ada.
3. Membuat program dengan lebih cepat: Bahasa pemrograman Java lebih
mudah dari C++, pemrograman akan menjadi 2 kali lipat lebih cepat, dengan
jumlah baris yang jauh lebih sedikit.
4. Menghindari kebergantungan pada platform tertentu: jaitu program dapat
dijalankan pada banyak platform dengan TIDAK menggunakan library yang ditulis
spesifik untuk platform tertentu.
5. Tulis sekali, jalankan di mana saja: Karena aplikasi yang ditulis dalam bahasa
Java dikompilasi ke dalam kode byte yang bebas platform, aplikasi yang ditulis
dapat jalan secara konsisten pada platform apa saja.
6. Distribusikan software lebih mudah: Dengan Java Web Start, pengguna
program dapat menggunakan aplikasi dengan mudah. Sistem pengecekan versi
otomatis pada saat program dimulai menjamin pengguna selalu menjalankan versi
terkini. Apabila versi baru tersedia, Java Web Start akan melakukan instalasi
secara otomatis.

Memulai Java

1. Download java
http://www.oracle.com/technetwork/java/javase/downloads/index.html
2. Install JDK ( Java Development Kit ) dan ikuti tahapan penginstalannya.
3. Tentukan environment variabel : Path aplikasi Java dengan cara.
1. Buka System Properties (klik Start | klik kanan di Computer | Properties | Klik
Advanced system settings di panel sebelah kiri).

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  8 Tim Dosen http://www.mercubuana.ac.id

 
2. Klik tab Advance

3. Klik PATH, lalu klik Edit…


4. Tambahkan dibagian akhir, direktori BIN dari Java Development Kit (JDK) sesuai
versi yang di-install, misalnya untuk JDK 7 update 3 pada direktori C:\Program
Files\Java\jdk1.7.0_03\bin.

5. Klik tombol OK.

4. Buka text editor bawaan sistem operasi misal notepad.


5. Ketik program
6. Simpan file dengan ektensi java, misal Hellowrld.java

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  9 Tim Dosen http://www.mercubuana.ac.id

 
7. Buka windows command
8. Ketik pada c:> javac Helloworld.java

9. Jalankan program java dengan cara mengetik pada c:>java namfile

Soal :
1. Jelaskan pengertian pemrograman berorientasi objek
2. Buat program sederhana untuk menampilkan tulisan berikut

---------------------------------------------------------------------
INI ADALAH PROGRAM PERTAMA SAYA
MENGGUNAKAN
JAVA
----------------------------------------------------------------- 

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  10 Tim Dosen http://www.mercubuana.ac.id

 
Daftar Pustaka

1. Dasar Pemrograman Java 2, Abdul Kadir,Penerbit Andi,2005


2. Esensi-esensi Bahasa Pemograman Java oleh Bambang Hariyanto, Ir., MT
3. Java™ How to Program, Deitel H.M , Prentice Hall,2004
4. http:/www.sun.com
5. http://www.java.com

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  11 Tim Dosen http://www.mercubuana.ac.id

 
 

 
MODUL PERKULIAHAN
 

 
Pemrograman
Berorientasi Objek  
 

 
 
 

             

  Fakultas  Program Studi  Tatap Muka  Kode MK  Disusun Oleh   

2
  FASILKOM  Teknik Informatika  87023 Tim Dosen 
 

 
MODUL 2

KONSEP PEMROGRAMAN

A. Program Komputer
Program komputer adalah urutan langkah-langkah yang di wujudkan dalam
bentuk intruksi – intruksi pemrogram ( kode program ) yang diberikan kepada
komputer untuk memperoleh hasil penyelesaian suatu masalah sesusia dengan apa
yang di ingikan. Tahapan pemrograman dimulai dari menentukan apa yang jadi
permasalahan, masukan untuk masalah tersebut, rumus penyelesaian
masalah,pemilihan bahasa program yang digunakan, penulisan kode program dan
eksekusi program yang dibuat untuk melihat kesesuaian hasil yang diharapkan.
Dalam pemrograman prosedural sekumpulan instruksi dapat dipandang sebagai
bentuk pengelompokan : input, proses, dan output. Bagian input, proses, dan output
dikerjakan secara sekuensial, dan dalam setiap bagian mungkin akan ada input,
proses, dan output. Elemet pada masing–masing kelompok dapat berupa indentifier
operator, dan operand , struktur data, Instruksi dasar,modul program atau file
eksternal.

B. Indentifier, literal dan type data

Identifier
Digunakan untuk nama class, method, dan variabel. Suatu variabel dapat
berupa urutan tertentu huruf (besar atau kecil), angka, garis bawah, dan tanda dolar.
Tidak boleh diawali oleh angka dan bersifat case sensitive. Java mengikuti aturan
penamaan identifier untuk semua method public dan variabel instans dengan huruf
awal kecil dan menandai bagian kata selanjutnya dengan huruf besar, misalnya
currentItem, currentDate, getTimeOfDay. Untuk variabel private dan lokal identifier
akan berupa huruf kecil semua dikombinasikan dengan garis bawah, misalnya
next_val, temp_val. Untuk variabel final yang mewakili suatu konstanta, digunakan
huruf besar semua, misalnya TOK_BRACE, DAY_FRIDAY.

Literal
Literal adalah nilai variabel atau nilai konstanta atau nilai objek data. Besaran
konstanta pada Java dihasilkan dengan menggunakan literal yang mewakilinya.
Setiap literal merepresentasikan nilai suatu tipe data

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  2 Tim Dosen http://www.mercubuana.ac.id

 
Ada tiga besaran literal dalam Java yaitu angka, karakter, dan string. Angka
terdiri dari byte, short, int, long, float, double, dan boolean. Semua variabel dan
konstanta yang akan digunakan harus dideklarasikan terlebih dahulu.
contoh :
int nilai_tugas,nilai_uts,nilai_uas;
Float nilai_ahir;
String nama;

Kata tercadang
Nama literal tidak boleh menggunakan kata tercadang Java. Kata tercadang yang
tidak boleh digunakan sebagai literal adalah sebagai berikut.

abstract boolean break byte byvalue case


cast catch char class const continue
default do double else extends false
final finally float for future generic
goto if implements import inner instanceof
int interface long native new null
operator outer package private protected public
rest return short static super switch
synchroniz this throw throws transient true
ed
try var void volatile while

A. Variabel dan Type data

Variabel
Variabel adalah satuan dasar penyimpanan dalam program Java. Suatu
variabel didefinisikan dengan kombinasi identifier, tipe, dan cakupan. Bergantung
pada tempat kita mendeklarasikannya, variabel dapat bersifat lokal atau sementara,
misalnya didalam perulangan for, atau dapat juga berupa variabel instans yang dapat
diakses oleh semua method dalam class. Cakupan lokal dinyatakan dalam kurung
kurawal.

Type data
Java merupakan contoh bahasa yang strongly typed language. Hal ini berarti
bahwa setiap variabel harus memiliki tipe yang sudah dideklarasikan. Terdapat 8 tipe

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  3 Tim Dosen http://www.mercubuana.ac.id

 
primitif, 6 diantaranya adalah tipe bilangan ( 4 tipe integer, 2 tipe floating point), 1 tipe
karakter char, digunakan mengawa-sandi (encode) Unicode, dan 1 tipe boolean.

Integer

Tipe Kebutuhan Range


int 4 byte -2.147.483.648 sampai 2.147.483.647
short 2 byte - 32.768 -i 32.767
long 8 byte - 9.223.372.036.854.775.808L -
9.223.372.036.854.775.807L
byte 1 byte - 128 - 127

Floating Point

Tipe Kebutuhan Range


float 4 byte 3,40282347E+38F ( 7 digit desimal signifikan)
double 8 byte  1,79769313486231570E+308 (15 digit desimal
siignifikan)

Char
Tipe char menggunakan tanda kutip tunggal untuk menyatakan suatu char.
Tipe char juga menyatakan karakter dalam upaya mengawa-sandi unicode, yang
merupakan kode 2-byte. Karakter unicode paling sering dinyatakan dalam istilah
skema pengkodean hexadesimal yang dimulai dari \u0000 sampai \uFFFF.
Selain karakter bebas (escape ‘ \u ‘ yang menyatakan karakter unicode di Java
terdapat juga

\b backspace \u0008
\t tab \u0009
\n linefeed \u000a
\r carriage return \u000d
\” double quote \u0022
\’ single quote \u0027
\\ a backslash \u005c

Boolean

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  4 Tim Dosen http://www.mercubuana.ac.id

 
Tipe boolean memiliki nilai true dan false. Tipe ini digunakan untul logical
testing dengan menggunakan operator relasional.

B. Struktur Program Java


Setiap kakas pengembang aplikasi memiliki struktur dan cara penulisan kode
programnya sendiri,demikian juga dengan Java. Struktur program java dibagi
menjadi dua bagian jaitu class header dan body.
Struktur class

public class myclass header


{
body

Struktur kelas utama ( class main )


public class myclass header
{

public static void main (String[] args)


{
body

Contoh;
1 // Program : Welcome1.java
2 // Program cetak ucapan selamat datang
3
4 public class Welcome1
5 {
6 // metode main awal eksekusi aplikasi
7 public static void main( String args[] )

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  5 Tim Dosen http://www.mercubuana.ac.id

 
8 {
9 System.out.println( "Welcome to Java Programming!" );
10
11 } // ahir method main
12
13 } // ahir class Welcome1

Penjelasan program :

Baris pertama dimulai dengan dimulai dengan / /, yang menunjukkan bahwa text
berikutnya adalah komentar. Programmer memasukkan komentar ke program
sebagai dokumentasi. Komentar ini membantu orang lain untuk membaca dan
memahami program. Compiler Java mengabaikan komentar sehingga tidak
mengganggu jalannya program. Sebuah komentar yang diawali dengan / / disebut
end-of-line atau single-line komentar. Untuk komentar yang lebih dari satu baris dapat
dituliskan dalam bentuk berikut :

/* Untuk komentar yang lebih dari satu baris


dapat dituliskan dalam
bentuk seperti ini */

Baris kedua merupakan komentar yang menyatakan fungsi/kegunaan dari program.


Baris ketiga sebuah baris kosong. Pemrogram menggunakan baris kosong dan
karakter ruang untuk membuat program lebih mudah dibaca. Baris kosong dan
karakter tab dikenal sebagai white space.
Baris ke empat dimulai dengan deklarasi kelas untuk kelas Welcome1. Setiap
program di Jawa terdiri dari setidaknya satu deklarasi kelas yang didefinisikan oleh.
Baris ke lima menyatakan awal body sebuah class.
Baris ke enam public static void main( String args[] ) merupakan titik awal dari setiap
aplikasi Java. Tanda kurung setelah identifier utama menunjukkan bahwa itu sebuah
blok program yang disebut metode. Deklarasi class Java biasanya berisi satu atau
lebih metode. Untuk aplikasi Java, harus ada satu metode ini, jika tidak JVM tidak
akan mengeksekusi aplikasi.
Baris enam dan tujuh adalah awal dan ahir block class main.

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  6 Tim Dosen http://www.mercubuana.ac.id

 
Baris ke sembilan adalah perintah java untuk mencetak teks yang berada di antara
tanda “ “.

1. Ketik Program berikut


// Addition.java
// Addition program
import java.util.Scanner;
public class Addition
{
// main method begins execution of Java application
public static void main( String args[] )
{
// create Scanner to obtain input from command window
Scanner input = new Scanner( System.in );
int number1;
int number2;
int sum;
System.out.print( "Enter first integer: " );
number1 = input.nextInt(); // read first number from user
System.out.print( "Enter second integer: " );
number2 = input.nextInt(); // read second number from user
sum = number1 + number2;
System.out.printf( "Sum is %d\n", sum );
}

2. Dengan menggunakan cara yang sama seperti pada soal 1.


 Buat program untuk menghitung luas persegi panjang
 Buat program untuk menghitung luas segitiga
 Buat program untuk menghitung volume balok

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  7 Tim Dosen http://www.mercubuana.ac.id

 
Daftar Pustaka

1. Dasar Pemrograman Java 2, Abdul Kadir,Penerbit Andi,2005


2. Esensi-esensi Bahasa Pemograman Java oleh Bambang Hariyanto, Ir., MT
3. Java™ How to Program, Deitel H.M , Prentice Hall,2004
4. http:/www.sun.com
5. http://www.java.com

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  8 Tim Dosen http://www.mercubuana.ac.id

 
 

 
MODUL PERKULIAHAN
 

 
Pemrograman
Berorientasi Objek  
 

 
 
 

             

  Fakultas  Program Studi  Tatap Muka  Kode MK  Disusun Oleh   

3
  FASILKOM  Teknik Informatika  87023 Tim Dosen 
 

 
MODUL 3
Unit Prosedural
Statement input/output

A. Unit Prosedural
Sebuah program yang kompleks umumnya akan didekomposisi menjadi beberapa
sub program yang lebih sederhana. Sub program itu disebut juga modul terkadang
bersifat independen terhadap program utama. Pemrograman yang menggunakan
modul disebut dengan pemrograman modula. Modul dapat digunakan oleh program
lain yang membutuhkannya. Dalam bahasa pemrograman modul dapat dikategori
menjadi prosedur dan fungsi.
1. Prosedure
Prosedur adalah program yang mengerjakan aktivitas yang spesifik yang
menghasilkan efek netto. Efek netto yaitu perubahan kondisi awal menjadi
kondisi akhir setelah prosedur dijalankan.Prosedur bukan program yang
berdiri sendiri , sehingga untuk menjalankan prosedur dengan dipanggil di
program utama. Prosedur merupakan kumpulan ekspresi-ekspresi algoritma
yang berguna untuk menjalankan proses tertentu. Prosedur sudah banyak
dikenal mulai dari bahasa mesin hingga bahasa level tinggi(Query). Dalam
bahasa Java prosedur biasanya diawali dengan kata “void”. Prosedur dapat
ditulis diatas program utama maupun dibawahnya

2. Fungsi
Fungsi adalah sub program yang mengembalikan (return) sebuah nilai bertipe
data primitif (int, float, double, boolean, string, atau char).Mirip dengan fungsi
dalam matematika yang tugasnya mengubah nilai input menjadi nilai output
Umumnya fungsi disertai penggunaan parameter untuk input data. Parameter
aktual digunakan saat memanggil prosedur, melalui parameter ini data dikirim
baik berupa konstanta atau variable.Parameter formal digunakan pada saat
mendeklarasikan nama prosedur, melalui parameter ini data diterima dari
parameter aktual, selalu berupa variabel, melakukan casting otomatis dengan
urutan.

B. Statement I/O

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  2 Tim Dosen http://www.mercubuana.ac.id

 
Salah satu bagian terpenting dalam pemrograman adalah bagaimana
mempelajari bahasa program yang kita gunakan untuk membuat aplikasi yang dapat
menerima input dan menghasilkan output. Input merupakan aksi dari user dalam
mentransfer informasi ke memori utama komputer, dan output sebagai kebalikan
proses input. Aksi input dan output dilakukan melalui bagian program yang dikenal
dengan nama user interface (antarmuka pengguna). Dengan kata lain interaksi
pengguna dengan komputer diakukan lewat interface.

Interface yang paling sederhana, adalah bentuk antar muka berbasis text yang
dikenal dengan nama command line atau console interface.

Pada Java input dan output ditangani oleh objek Streams.Objek ini dapat
digambarkan sebagai pipa yang menghubungkan user dengan kompuer. Data yang
berasal dari user dan melalui pipa ini disebut stream input dan stream output untuk
kebalikkannya.

Setiap program java memiliki tiga strem standart, yaitu 3, System.in, System.out,
and System.err. Sebagian dari hirarki pada class IO java dapat dilihat pada gambar
berikut

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  3 Tim Dosen http://www.mercubuana.ac.id

 
Pada java interface dapat dibangun dengan pendekatan prosedur atau fungsi.
Prosedure merupakan sekumpulan satu blok instruksi dengan tugas yang spesifik
dimana blok ini bukan program yang berdiri sendiri dan untuk menjalankan prosedur
dengan dipanggil di program utama. Perbedaan antara prosedur dan fungsi adalah
bahwa prosedure tidak mengembalikan nilai.

C. Input menggunakan BufferedReader

Objek BufferedReader digunakan untuk menangani inputan dari keyboard. Objek ini
masuk dalam kelas Reader.

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  4 Tim Dosen http://www.mercubuana.ac.id

 
Pada Java semua inputan yang dilakukan melalui keyboard diterima sebagai string.
Sehingga untuk data numerik, type data tersebut harus dikonversi ke bentuk
bilangan menggunakan class wrapper yaitu Integer and Double. Berikut adalah
contoh penggunaan class tersebut.
int m = Integer.parseInt("55");
double num = Double.parseDouble("55.2");

Contoh 1:

......................................................................
String inputString = new String();
System.out.println("How many total miles did you run? ");
inputString = input.readLine(); // Input a String
double miles = Double.parseDouble(inputString); // Konvert
System.out.println("How many minutes did it take you? ");
inputString = input.readLine(); // Input String lainnya
double minutes = Double.parseDouble(inString); // konvert
System.out.println("Your average pace was " + minutes/miles + " minutes per
mile");
............................................................................

Contoh 2:

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.io.IOException;

public class GetInputFromKeyboard

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  5 Tim Dosen http://www.mercubuana.ac.id

 
{

public static void main( String[] args ){

BufferedReader dataIn = new BufferedReader(new

InputStreamReader( System.in) );

String nama= "";

System.out.print("Ketik Nama Anda:");

try{

name = dataIn.readLine();

}catch( IOException e ){

System.out.println("Error!");

System.out.println("Hello " + nama +"!");

D. Graphical User Interface (GUI)

Saat ini bentuk teks mulai jarang digunakan. Pada kebanyakan aplikasi,
interface program lebih disukai yang berbentuk gafik. Inteface ini dikenal dengan
nama Graphical User Interfaces (GUIs). Pemrograman pada GUI juga
memperhitungkan kemungkinan aksi yang dilakukan oleh user. Aksi ini kemudian
dijadikan sebagai acuan untuk menjalankan suatu modul. Model pemrogman ini
dikenal juga sebagai event-driven programming.Java menyediakan liibrary GUI pada
dalam dua paket terpisah yaitu class Swing dan class AWT. Misal untuk
button di awt ada di class java.awt.Button class dan class javax.swing.JButton
class untuk di Swing. Swing merupakan bagian dari Java Foundation Classes (JFC).

Hirarki paket GUI pada Java dapat dilihat pada gambar berikut;

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  6 Tim Dosen http://www.mercubuana.ac.id

 
Umumnya desain interface yang sederhana paling tidak ada tiga jenis
komponen yang biasa digunakan dengan tiga fungsi utama dari antarmuka
pengguna. Komponen untuk fungsi input, output, dan kontrol dapat menggunkan
komponen :

 JTextField
JtextField adalah contoh dari komponen input / masukan.
 JtextArea
Merupakan komponen output diman pengguna dapat menggunakan
JtextArea untuk menampilkan teks dalam area teks.
 JButton Komponen kontrol yang memungkinkan pengguna untuk mengontrol
tindakan program. JButton adalah contoh dari komponen kontrol. Fungsi
kontrol dari buuton dapat dikaitkan dengan tindakan/bagian program harus
dijalankan setiap kali pengguna mengklik objek button.
 JLabel
Komponen ini komponen output dan dapat digunakan untuk menampilkan
informasi label objek pada interface.

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  7 Tim Dosen http://www.mercubuana.ac.id

 
Ketiga komponen biasanya diletakan pada main window. Komponen yang
digunakan untuk mebuat jendela utama umumnya Jframe. Berikut adalah contoh
penggunaan Jframe

import javax.swing.*;
public class SimpleGUI extends JFrame
{
public SimpleGUI(String title)
{ setSize(200,150);
setLocation(100, 150);
setTitle(title);
setVisible(true); // Displays the JFrame
} // SimpleGUI()

public static void main(String args[])


{ new SimpleGUI("My GUI");
} // main()
} // SimpleGUI class

Gambar berikut mengilustrasikan komponen yang sering digunakan pada interface


berbasis grafik.

Gambar berikut memperlihatkan constructors dan metode public komponen


JTextArea, JTextField, JButton, and JLabel components. Penggalan segemen kode
program berikut adalah ilistrasi penggunaan ketiga jenis konstruktor tersebut.

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  8 Tim Dosen http://www.mercubuana.ac.id

 
// Deklarasi instance variables
components
private JLabel prompt;
private JTextField inField;
private JTextArea display;
private JButton goButton;
// Instantiate the components
prompt = new JLabel("Nama anda : ");
inField = new JTextField(10); // lebar 10
chars display = new JTextArea(10, 30); //
10 rows x 30 columns
goButton = new JButton("Klik disini");

Setelah komponen inteface dibuat maka, komponen tersebut dapat ditamhkan ke


interface dengan metode add().

JPanel inputPanel = new JPanel();


inputPanel.add(prompt); // Add JLabel to panel
inputPanel.add(inField); // Add JTextField to panel
inputPanel.add(goButton); // Add JButton to panel
contentPane.add("South", inputPanel);/ Add to Jframe

Tahapan diatas baru pada proses pembuatan interface. Tahap berikutnya adalah
menambahkan metode yang diperlukan untuk masing-masing komponen interface.
Metode ini dikenal dengan nama actionPerformed () dan merupakan bagian dari
interface ActionListener.

public abstract interface ActionListener extends EventListener


{
public abstract void actionPerformed(ActionEvent e);
}

Contoh program :
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  9 Tim Dosen http://www.mercubuana.ac.id

 
public class GreeterGUI extends JFrame implements ActionListener
{ private JTextArea display;
private JTextField inField;
private JButton goButton;
private Greeter greeter;

public GreeterGUI(String title)


{ greeter = new Greeter();
buildGUI();
setTitle(title);
pack();
setVisible(true);
} // GreeterGUI()
private void buildGUI()
{ Container contentPane = getContentPane();
contentPane.setLayout(new BorderLayout());
display = new JTextArea(10,30);
inField = new JTextField(10);
goButton = new JButton("Click here for a greeting!");
goButton.addActionListener(this);
JPanel inputPanel = new JPanel();
inputPanel.add(new JLabel("Input your name here: "));
inputPanel.add(inField);
inputPanel.add(goButton);
contentPane.add("Center", display);
contentPane.add("South", inputPanel);
} // buildGUI()
public void actionPerformed(ActionEvent e)
{ if (e.getSource() == goButton)
{ String name = inField.getText();
display.append(greeter.greet(name) + "\n");
}
} // actionPerformed()
} // GreeterGUI class
Contoh Menggunakan class inteface diatas

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  10 Tim Dosen http://www.mercubuana.ac.id

 
public class GreeterApplication
{ public static void main(String args[])
{
new GreeterGUI("Greeter");
}
}

Contoh :
// Addition.java
// Addition program menggunakan JOptionPane untuk input dan output.
import javax.swing.JOptionPane; // program menggunakan JOptionPane
public class Addition
{
public static void main( String args[] )
{
// input dari JOptionPane
String firstNumber =
JOptionPane.showInputDialog( "Enter first integer" );
String secondNumber =
JOptionPane.showInputDialog( "Enter second integer" );
// convert String ke Numerik
int number1 = Integer.parseInt( firstNumber );
int number2 = Integer.parseInt( secondNumber );
int sum = number1 + number2; // add numbers
// display result
JOptionPane.showMessageDialog( null, "Jumlah " + sum,
"Sum of Two Integers", JOptionPane.PLAIN_MESSAGE );
}
}

Soal

1. Dengan menggunakan BufferedReader .

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  11 Tim Dosen http://www.mercubuana.ac.id

 
 Buat program untuk menghitung luas persegi panjang
2. Dengan menggunakan seperti pada contoh program Addition .
 Buat program untuk menghitung luas segitiga
 Buat program untuk menghitung volume balok

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  12 Tim Dosen http://www.mercubuana.ac.id

 
Daftar Pustaka

1. Dasar Pemrograman Java 2, Abdul Kadir,Penerbit Andi,2005


2. Esensi-esensi Bahasa Pemograman Java oleh Bambang Hariyanto, Ir., MT
3. Java™ How to Program, Deitel H.M , Prentice Hall,2004
4. http:/www.sun.com
5. http://www.java.com

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  13 Tim Dosen http://www.mercubuana.ac.id

 
 

 
MODUL PERKULIAHAN
 

 
Pemrograman
Berorientasi Objek  
 

 
 
 

             

  Fakultas  Program Studi  Tatap Muka  Kode MK  Disusun Oleh   

4
  FASILKOM  Teknik Informatika  87023 Tim Dosen 
 

 
DATA

A. Jenis Data
Java merupakan contoh bahasa yang strongly typed language. Hal ini berarti bahwa
setiap variabel harus memiliki tipe yang sudah dideklarasikan. Terdapat 8 tipe
primitif, 6 diantaranya adalah tipe bilangan ( 4 tipe integer, 2 tipe floating point), 1 tipe
karakter char, digunakan mengawa-sandi (encode) Unicode, dan 1 tipe boolean.

Integer

Tipe Kebutuhan Range


int 4 byte -2.147.483.648 sampai 2.147.483.647
short 2 byte - 32.768 -i 32.767
long 8 byte - 9.223.372.036.854.775.808L -
9.223.372.036.854.775.807L
byte 1 byte - 128 - 127

Floating Point

Tipe Kebutuhan Range


float 4 byte 3,40282347E+38F ( 7 digit desimal signifikan)
double 8 byte  1,79769313486231570E+308 (15 digit desimal
siignifikan)

Char
Tipe char menggunakan tanda kutip tunggal untuk menyatakan suatu char.
Tipe char juga menyatakan karakter dalam upaya mengawa-sandi unicode, yang
merupakan kode 2-byte. Karakter unicode paling sering dinyatakan dalam istilah
skema pengkodean hexadesimal yang dimulai dari \u0000 sampai \uFFFF.
Selain karakter bebas (escape ‘ \u ‘ yang menyatakan karakter unicode di Java
terdapat juga

\b backspace \u0008
\t tab \u0009
\n linefeed \u000a
\r carriage return \u000d
\” double quote \u0022
\’ single quote \u0027
\\ a backslash \u005c

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  2 Tim Dosen http://www.mercubuana.ac.id

 
Boolean
Tipe boolean memiliki nilai true dan false. Tipe ini digunakan untul logical
testing dengan menggunakan operator relasional.

B. Casting type data

Sesekali akan lebih mudah untuk mengkonversi data dari satu jenis ke jenis
yang lain. Sebagai contoh, kita mungkin ingin memperlakukan integer sebagai nilai
floating point selama perhitungan.Konversi harus ditangani dengan hati-hati untuk
menghindari kehilangan/pemenggalan nilai data. Konversi pelebaran adalah contoh
konversi yang paling aman, karena konversi ini cenderung untuk meningkatkan type
data yang lebih rendah ke tingkat yang lebih tinggi. Sebaliknya pada kasus
pengkoversian data dari type data yang lebih tinggi ke tiingkat yang lebih rendah (
konversi penyempitan ) ada kemungkinan terjadi pemenggalan data.Pada Java
konversi data dapat terjadi dalam tiga cara:

• assignment conversion

• arithmetic promotion

• casting

Pada assignment conversion terjadi pada saat satu jenis data ditugaskan untuk
variabel lain.

public class Geometry

public static void main (String[] args)

int sisi = 7;

System.out.println ("Bangun dengan " + sisi + " sis.");

sisi = 10; // assignment statement

System.out.println ("Bangun dengan " + sisi + " sis.");

sisi = 12;

System.out.println ("Bangun dengan " + sisi + " sis."); }

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  3 Tim Dosen http://www.mercubuana.ac.id

 
Pada arithmetic promotion terjadi secara otomatis ketika operator dalam ekspresi
mengkonversi operan mereka. Contoh

public class Addition

public static void main (String[] args)

System.out.println ("24 and 45 concatenated: " + 24 + 45);

System.out.println ("24 and 45 added: " + (24 + 45));

Output dari program diatas

24 and 45 concatenated: 2445

24 and 45 added: 69

Casting adalah yang paling kuat, dan berbahaya, teknik untuk konversi . Pelebaran
dan penyempitan konversi dapat dicapai dengan secara eksplisit.Untuk cast, jenis ini
dimasukkan dalam tanda kurung di depan nilai yang dikonversi.Misal jika total dan
hitung bilangan bulat, tapi kita menginginkan hasil floating point pada hasil
pembagiannya dapat dilakukan sebagai berikut.

hasil = (float) total / hitung;

Casting pada Java :

1. Implicit casting

2. Explicit casting

Implisit casting (konversi pelebaran).


Sebuah tipe data ukuran yang lebih rendah (menggunkan lebih sedikit
memori) ditugaskan untuk jenis data ukuran yang lebih besar. Hal ini dilakukan
secara implisit oleh JVM.

Contoh :

int x = 10; // membutuhkan 4 bytes

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  4 Tim Dosen http://www.mercubuana.ac.id

 
double y = x; // occupies 8 bytes

Explicit casting (konversi pelebaran).


Sebuah tipe data ukuran yang lebih besar (menggunkani lebih banyak
memori) tidak dapat ditugaskan untuk jenis data ukuran rendah. Hal ini tidak
dilakukan secara implisit oleh JVM dan harus dilakukan oleh programmer. Contoh
Jika dilkukan casting

double x = 10.5;

int y = x;

maka akan terjadi error. Untuk menghindari error didepan variabel x ditambahkan
(int) seperti dibawah ini.

double x = 10.5;

int y = (int) x;

C. Format keluaran

Berikut adalah bentuk format keluaran menggunakan class NumberFormat dan


DecimalForma
import java.util.Scanner;
import java.text.NumberFormat;

public class Price


{
public static void main (String[] args)
{
Scanner input = new Scanner( System.in );
final double TAX_RATE = 0.06; // 6% sales tax
int quantity;
double subtotal, tax, totalCost, unitPrice;

System.out.print ("Enter the quantity: ");


quantity = input.nextInt();
System.out.print ("Enter the unit price: ");
unitPrice = input.nextDouble();
subtotal = quantity * unitPrice;
tax = subtotal * TAX_RATE;

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  5 Tim Dosen http://www.mercubuana.ac.id

 
totalCost = subtotal + tax;
NumberFormat money = NumberFormat.getCurrencyInstance();
NumberFormat percent = NumberFormat.getPercentInstance();
System.out.println ("Subtotal: " + money.format(subtotal));
System.out.println ("Tax: " + money.format(tax) + " at "
+ percent.format(TAX_RATE));
System.out.println ("Total: " + money.format(totalCost));
}
}

// format keluaran menggunakan class DecimalFormat .


//********************************************************************

import java.util.Scanner;
import java.text.DecimalFormat;

public class CircleStats


{
public static void main (String[] args)
{
Scanner input = new Scanner( System.in );
int radius;
double area, circumference;
System.out.print ("Enter the circle's radius: ");
radius = input.nextInt();
area = Math.PI * Math.pow(radius, 2);
circumference = 2 * Math.PI * radius;
DecimalFormat fmt = new DecimalFormat ("0.###");
System.out.println ("The circle's area: " + fmt.format(area));
System.out.println ("The circle's circumference: "
+ fmt.format(circumference));
}
}

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  6 Tim Dosen http://www.mercubuana.ac.id

 
Daftar Pustaka

1. Dasar Pemrograman Java 2, Abdul Kadir,Penerbit Andi,2005


2. Esensi-esensi Bahasa Pemograman Java oleh Bambang Hariyanto, Ir., MT
3. Java™ How to Program, Deitel H.M , Prentice Hall,2004
4. http:/www.sun.com
5. http://www.java.com

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  7 Tim Dosen http://www.mercubuana.ac.id

 
 

 
MODUL PERKULIAHAN
 

 
Pemrograman
Berorientasi Objek  
 

 
 
 

             

  Fakultas  Program Studi  Tatap Muka  Kode MK  Disusun Oleh   

5
  FASILKOM  Teknik Informatika  87023 Tim Dosen 
 

 
OPERATOR DAN EKSPRESI
 

A. OPERATOR 

Operator adalah simbol atau karakter khusus yang digunakan dalam suatu ekpresi.
Operator pada java diklasifikasikan dalam dua kelompok. Unary operator , opertor
yang melibatkan satu operand. Binary operator, operator yang melibatkan dua
operand dan tertiary jika melibatkan tiga operand. Jenis operator ini Java
dikelompokan menjadi beberapa kelompok.
 Operator penugasan
 Operator aritmatika
 Operator perbandingan
 Operator logika dan Operator bit
 

Operator penugasan ( assigmen ) =

Operator Penulisan Arti


+= X += Y X=X+Y
-= X -= Y X=X–Y
*= X *= Y X=X*Y
/= X /= Y X=X/Y
%= X %= Y X=X%Y

Operator aritmatika

Operator Operation
+ Addition
- Subtraction
* Multiplication
/ Division
% Modulo

Contoh :

Bitwise Operator

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  2 Tim Dosen http://www.mercubuana.ac.id

 
Operator Operation
& AND
| OR
^ XOR
>> Shift Kanan
<< Shift Kiri
>>> Shift Kanan isi
dengan nol

Contoh :
public class BitwiseOr
{
public static void main (String[ ] args)
{
int x = 133; // pendefinisian variabel
int y = 35;
int z;
z = x | y;
System.out.println ("Nilai x = " + x);
System.out.println ("Nilai y = " + y);
System.out.println ("x | y = " + z);
}
}_

Unary Operator

Operator Operation
~ Unary NOT
- Minus
++ Increment
-- Decrement

Contoh :
public class IncrementDecrement
{

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  3 Tim Dosen http://www.mercubuana.ac.id

 
public static void main (String[ ] args)
{
int a, b, c, d; // pendefinisian variabel
int x = 5;
int y = 10;
a = ++x;
b = x++;
c = -- y;
d = y --;

System.out.println (a);
System.out.println (b);
System.out.println (c);
System.out.println (d);
}
}

Relational Operator

Operator Operation
== Equal To
!= Not Equal To
> Greater Than
< Less Than
>= Greater or Equal
To
<= Less or Equal To

Contoh :
public class Relasi
{
public static void main (String[ ] args)
{
boolean nilai; // pendefinisian variabel

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  4 Tim Dosen http://www.mercubuana.ac.id

 
nilai = 10 > 5;
System.out.println ("10 > 5 " + nilai);
nilai = 10 < 5;
System.out.println ("10 < 5 " + nilai);
nilai = 10 == 5;
System.out.println ("10 == 5 " + nilai);
nilai = 10 != 5;
System.out.println ("10 != 5 " + nilai);
nilai = 10 <= 5;
System.out.println ("10 <= 5 " + nilai);
nilai = 10 >= 5;
System.out.println ("10 >= 5 " + nilai);
}
}

Operator logika

Operator Operation
! Short-circuit NOT
&& Short-circuit AND
|| Short-circuit OR
?: Operator ternary
if-then-else

Urutan eksekusi pada suatu ekpresi yang melibatkan beberapa operator dijalankan
berdasarkan urutan operator (preseden operator ). Berikut adalah urutan eksekusi
dari operator.

Tertinggi
() [] .
++ -- ~ !
* / %
+ -
>> >>> <<
> >= < <=

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  5 Tim Dosen http://www.mercubuana.ac.id

 
== !=
&
^
|
&&
||
?:
= op=
Terendah

Contoh :

 
 
Contoh : 

public class Urutan


{
public static void main (String[ ] args)
{
int x, y, z;
x = 7 + 2 * 4;
y = 9 * 5 % 2;
z = 18 / (6-4);

System.out.println (x);
System.out.println (y);
System.out.println (z);
}
}

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  6 Tim Dosen http://www.mercubuana.ac.id

 
B. EKSPRESI 

Ekpresi adalah bentuk ungkapan yang menghasilkan nilai ( mengembalikan nilai ).


Dalam bentuk yang sederhana ekpresi dapat berupa sebuah literal atau variabel .
Dalam bentuk yang komplek ekpresi dapat terdiri dari operand dan operator.
Contoh :
5-4
Merupakan bentuk ekpresi yang menghasilkan nilai 1. 5 dan 4 disebut operand dan
– berperan sebagai operator.
 
Contoh :

public class Gabung


{
public static void main (String[ ] args)
{

System.out.println (4-5*12);
}
}

Contoh :

public class Gabung


{
public static void main (String[ ] args)
{
String kalimat, satu, dua, tiga;
satu = "Bahasa ";
dua= "Pemrograman ";
tiga = "Java";
kalimat = satu+dua+tiga;

System.out.println (kalimat);
}

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  7 Tim Dosen http://www.mercubuana.ac.id

 
Daftar Pustaka

1. Dasar Pemrograman Java 2, Abdul Kadir,Penerbit Andi,2005


2. Esensi-esensi Bahasa Pemograman Java oleh Bambang Hariyanto, Ir., MT
3. Java™ How to Program, Deitel H.M , Prentice Hall,2004
4. http:/www.sun.com
5. http://www.java.com

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  8 Tim Dosen http://www.mercubuana.ac.id

 
 

 
MODUL PERKULIAHAN
 

 
Pemrograman
Berorientasi Objek  
 

 
 
 

             

  Fakultas  Program Studi  Tatap Muka  Kode MK  Disusun Oleh   

6
  FASILKOM  Teknik Informatika  87023 Tim Dosen 
 

 
 

STRUKTUR KENDALI (CONTROL)

A. Struktur kontrol Program

Setiap masalah komputasi dapat diselesaikan dengan menjalankan


serangkaian tindakan dalam urutan tertentu. Sebuah prosedur untuk memecahkan
masalah dalam hal tindakan untuk mengeksekusi dan urutan tindakan mengeksekusi
disebut algoritma. Berikut ini menunjukkan urutan tindakan seseorang.

Misal tahapan seseorang untuk berangkat kerja adalah sebagai beriku :

(1) Bangun dari tempat tidur,(2) melepas baju tidur, (3) mandi, (4) berpakaian, (5)
sarapan, (6) Berangkat kerja.
Apa yang terjadi jiika urutan diatas diubah dalam bentuk berikut
(1) Bangun dari tempat tidur,(2)melepas baju tidur,(3)Berpakaian,(4)Sarapan, (5)
Mandi,(6) Berangkat kerja.

Menentukan urutan pernyataan (tindakan) mengeksekusi dalam sebuah program


yang disebut program kontrol.

Struktur kontrol adalah elemen bahasa yang mengubah aliran kontrol program, misal
pengunaan pernyataan if untuk memilih antara dua atau lebih jalur alternatif dalam
program. Menggunakan struktur loop untuk mengulang pernyataan. Flow dari aliran
program dapat dibagi dalam empat kelompok berikut.

1. Sekuence

2. Pemilihan

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  2 Tim Dosen http://www.mercubuana.ac.id

 
3. Pengulangan

4. Percabangan

1. Struktur sequence
Pada dasarnya eksekuksi yang dilakukan oleh komputer adalah urut sesuai
dengan urutan dalam penulisan kode program. Komputer akan mengeksekusi
dari baris pertama sampai baris terahir.
Contoh :
1 // Addition.java
2 // Addition program that displays the sum of two numbers.
3 import java.util.Scanner; // program menggunakan class scanner
4
5 public class Addition
6 {
7 // main method awal eksekusi program
8 public static void main( String args[] )
9 {
10 // create Scanner objek scanner
11 Scanner input = new Scanner( System.in );
12
13 int number1; // first number to add
14 int number2; // second number to add
15 int sum; // sum of number1 and number2

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  3 Tim Dosen http://www.mercubuana.ac.id

 
16
17 System.out.print( "Enter first integer: " ); // prompt
18 number1 = input.nextInt(); // read first number from user
19
20 System.out.print( "Enter second integer: " ); // prompt
21 number2 = input.nextInt(); // read second number from user
22
23 sum = number1 + number2; // add numbers
24
25 System.out.printf( "Sum is %d\n", sum ); // display sum
26
27 } // end method main
28
29 } // ahir class Addition

2. Struktur Kontrol Pemilihan


Struktur kontrol pemilihan digunakan untuk merubah alur eksekusi program dari
bentuk sekuence ke percabangan. Struktur kontrol ini terdiri dari
a. If ...... then
b. select
a. Struktur if ...else
Bentuk umum
If kondisi
Statement
......................
Else
Stetemant
.....................
contoh :
public class PernyataanIf
{
public static void main (String[ ] args)
{
int nilai = 70; // pendefinisian variabel
if (nilai >= 60)
System.out.println ("Nilai = " + nilai + " Lulus ujian");
}
}

Contoh :
// strukturifelse.java
// Contoh penggunaan pernyataan if else

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  4 Tim Dosen http://www.mercubuana.ac.id

 
public class strukturifelse
{
public static void main (String[ ] args)
{
int nilai // pendefinisian variabel

nilai = 75;
System.out.println ("Nilai = " + nilai);

if (nilai >= 80)


System.out.println ("Predikat A");
else if (nilai >= 69)
System.out.println ("Predikat B");
else if (nilai >= 56)
System.out.println ("Predikat C");
else if (nilai >= 40)
System.out.println ("Predikat D");
else
System.out.println ("Predikat E");
}
}

IF bersarang ( Nested IF )
If kondisi
statement
else
If kondisi
statement
else
If kondisi
statement
else
If kondisi
statemet
else
statement

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  5 Tim Dosen http://www.mercubuana.ac.id

 
contoh

public class PernyataanIfNested


{
public static void main (String[ ] args)
{
int umur = 28; // pendefinisian variabel
String pendidikan = "sarjana";
System.out.println ("Umur = " + umur);
System.out.println ("Pendidikan = " + pendidikan);

if (umur <= 30);


{
if (pendidikan == "sarjana")
System.out.println ("Diterima menjadi karyawan");
}
}
}

b. Struktur switch ... case

switch .... case

switch (userInput)
{
case 1:
statement
case 2:
statement
default:

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  6 Tim Dosen http://www.mercubuana.ac.id

 
statement
break;
}

contoh :
public class PernyataanSwitch
{ public static void main (String[ ] args)
{ int userInput; // pendefinisian variabel
userInput = 2;
switch (userInput)
{
case 1:
System.out.println ("Anda mimilih pertama");
break;
case 2:
System.out.println ("Anda mimilih kedua");
break;
case 3:
System.out.println ("Anda mimilih ketiga");
break;
default:
System.out.println ("Salah pilih");
break;
}
}
}

B. Soal

1. Ketik Program Berikut

// Nama file: PernyataanIfIn.java


// Dialog box untuk input data integer
import javax.swing.*;

public class PernyataanIfIn


{
public static void main (String[] args)

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  7 Tim Dosen http://www.mercubuana.ac.id

 
{
int nilai;
String bilangan = JOptionPane.showInputDialog("Masukkan nilai:");
System.out.println("Input angka: " + bilangan);
nilai = Integer.parseInt(bilangan);

if (nilai >= 60)


System.out.println ("Nilai = " + nilai + " Lulus Ujian");
System.exit(0);
}
}

2. Buat program

Buatlah program dengan menggunakan statemen If else dengan melakukan


perhitungan hasil ujian seperti tampilan dibawah ini:
Masukan : Nama, Tugas, Uts,Uas
Keluaran : Hasil ujian, Keterangan

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  8 Tim Dosen http://www.mercubuana.ac.id

 
Daftar Pustaka

1. Dasar Pemrograman Java 2, Abdul Kadir,Penerbit Andi,2005


2. Esensi-esensi Bahasa Pemograman Java oleh Bambang Hariyanto, Ir., MT
3. Java™ How to Program, Deitel H.M , Prentice Hall,2004
4. http:/www.sun.com
5. http://www.java.com

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  9 Tim Dosen http://www.mercubuana.ac.id

 
 

 
MODUL PERKULIAHAN
 

 
Pemrograman
Berorientasi Objek  
 

 
 
 

             

  Fakultas  Program Studi  Tatap Muka  Kode MK  Disusun Oleh   

7
  FASILKOM  Teknik Informatika  87023 Tim Dosen 
 

 
 

KELAS

1. Konsep Pemrograman Berorientasi Objek


 Sejarah PBO
Pemrograman berorientasi objek mulai dibicarakan sekitar akhir tahun 60’an.
Pertama kali diperkenalkan oleh Ole Johan Dhal dan Kristen Nygaard dari
Universitas Oslo, Norwegia pada tahun 1966 dalam jurnal dengan judul
“SIMULA An Algol Based Simulation Language”. Jadi OOP bukan hal
baru.Pada tahun 1970 bahasa SMALTALK dikembangkan oleh XEROX
PARC. Pada saat itu sebagian dari dunia menggunaan COBOL dan
FORTRAN dengan metode dekomposisi dan fungsional. Perubahan terjadi
selama beberapa dekade sampai dikenalnya faktor utama berorientasi objek,
yaitu :
Konsep dasar berorientasi objek, konsep berorientasi objek mulai populer
dimana memulai analisis dan disain menjadi lebih diperhatikan daripada
coding.
 Teknologi dasar pengembangan sistem, coding sangat dipengaruhi
oleh bahasa pemrograman yan tersedia. Untuk pengembangan program
terstruktur lebih mudah dikembangkan dengan pascal, atau C, dan
pembuatan coding berorientasi objek akan lebih mudah dikembangkan
dengan bahasa pemrograman C++, JAVA, VB.Net, PHP.
 Kondisi sistem, sistem yang dibagun saat ini berbeda dengan sistem
beberapa tahun yang lalu. Sistem yang sekarang lebih besar, kompleks dan
dapat juga merupakan sistem yang interaktif. Pendekatan berorientasi objek
merupakan cara yang lebih tepat untuk sistem yang berorientasi objek.
 Pengenalan model, banyak organisasi mendapatkan bahwa sistem
yang dibagngun pada saat ini cendrung berorientasi data dari pada sistem
yang dibagun sekitar tahun 1970 dan 1980. pada waktu itu penggunaan
model telah mendapatkan prioritas lebih besar dibandingkan dengan
kompleksitas fungsional

2. Pengembangan
 Pengembangan berorientasi objek merupakan cara berpikir baru tantang
perangkat lunak berdasarkan abstraksi alam dunia nyata.

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  2 Tim Dosen http://www.mercubuana.ac.id

 
 Hal yang lebih penting dalam pengembangan berorientasi objek adalah
konsep mengidentifikasi objek dan mengorganisasi domain aplikasi
dibandingkan dengan fokus penggunaan bahasa pemrograman
berorientasi objek atau tidak.
3. Abstraksi
 Abstraksi suatu cara melihat suatu objek dalam bentuk yang lebih
sederhana, contoh:
Bila kita melihat sebuah mobil bukan sebagai sebuah kumpulan atau
ribuan komponen elektronik , mekanik dengan empat buah ban, besi, jok
stir dan sebagaiya.
 Walau kenyataanya demikian namum kita melihat mobil sebagai single
entity yang merupakan suatu objek yang mempunyai sifat dan
karakteristik tersendiri.
 Kita tidak perlu tahu bagaimana kompleknya mobil itu, tidak perlu tahu
bagaimana cara bekerja mesin, dll. Kita tidak meihat bagian-bagian dalam
sebuah mobil sebagai suatu bagian yang berdiri sendiri-sendiri, tetapi
sebagai satu kesatuan.
 Dengan abstraksi kita melihat suatu sistem yang komplek sebagai
kumpulan subsistem-subsistem yang lebih sederhana, seperti halnya
mobil merupakan suatu sistem yang terdiri atas subsistem-subsistem
4. Elemen – element sebuah objek
 Setiap objek selalu memiliki keadaan (State) dan behaviour yang dapat
mengubah state tersebut.
Contoh: Manusia memiliki state umur, tinggi, berat, dll. Demikian pula
behaviour yang dimiliki manusia seperti makan, tidur, bekerja, dll.
 Behaviour ini dapat mengubah atau tidak sama sekali state yang dimiliki
oleh suatu objek.
 Dalam bahasa Java state akan lebih dikenal dengan nama properties
atau field, sedangkan behavioir akan dikenal dengan nama method.
5. Konsep Berorientasi Objek ( Encapsulation, Inheritance, Polymorphism)
 Encapsulation
Enkapuslasi adalah satu mekanisme untuk menyembunyikan atau
memproteksi suatu proses dari kemungkinan interfensi atau penyalahgunaan
dari luar sistem dan sekaligus menyederhanakan sistem itu sendiri, akses ke
internal sistem diatur sedemikian rupa melalui seperangkat interface.
Contoh :

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  3 Tim Dosen http://www.mercubuana.ac.id

 
Seperti mobil sistem transmisi didalam mobil, sistem transmisi ini
memyembunyikan dari anda bagaimana cara ia bekerja. Anda sebagai
pengguna hanya cukup memindahkan tongkat transimis untuk mendapat
percepatan yang anda inginkan. Tongkat transmisi inilah yang satu-satunya
yang menjadi interface dalam mengatur transmisi dalam mobil tersebut. Kita
tidak bisa menggunakan pedal rem untuk mengakses sistem transmisi
tersebut, konsep yang sama dapat diterapkan dalam pemrograman
 Inheritance
Kita sebenarnya terbiasa melihat objek tesusun secara hierarki berdasarkan
calss-nya masing-masing. Dari sini muncul konsep tentang pewarisan yang
merupakan suatu proses dimana suatu class diturunkan dari class lainnya
sehingga ia mendapatkan ciri atau sifat dari class tersebut.

 Polymorphism
Polymorphism berasal dari bahasa yunani yang berarti banyak bentuk. Dalam
OOP konsep ini memungkinkan digunakannya suatu interface yang sama
untuk memerintahkan suatu objek agar melaksanakan suatu aksi atau
tindakan yang mungkin secara prinsip sama tetapi secara proses berbeda.
Contoh yang konkrit kembali ke masalah mobil, mobil yang ada dipasaran
terdiri atas beberapa tipe dan merek, namun semunya memiliki interface
kemudi yang sama, seperti stir, pedal gas dan rem.Harus diperhatikan bahwa
interface yang sama tidak berarti cara kerjanya juga sama. Contoh bila anda
menekan pedal gas maka mobil akan melaju cepat tetapi bagaimana proses
ini terjadi dapat berbeda-beda untuk setiap jenis mobil.Dengan menggunakan

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  4 Tim Dosen http://www.mercubuana.ac.id

 
interface yang sama anda akan mendapatkan hasil yang sama, tetapi
bagaimana proses yang terjadi dari aksi menjadi hasil mungkin saja berbeda.

6. Konsep Class dan Objek


 Objek adalah kesatuan entitas (benda), baik yang berwujud nyata ataupun
hanya suatu sistem atau konsep yang memiliki sifat karakteristik dan fungsi.
 Class adalah pemodelan dari objek yang berisi informasi (aturan) tentang sifat
karakteristik (data) dan tingkah laku (method yang dimiliki oleh objek
tersebut).
 Hubungan antara class dan objek dapat diilustrasikan sebagai resep kue
dengan kuenya, dimana resep kue adalah class dan kue adalah objeknya.

Metode (method) disebut juga service, prosedur atau fungsi seperti yang
terdapat pada bahasa pascal, tetapi cara kerjanya agak berlainan. Method
adalah sub program yang tergabung dalam objek bersama-sama dengan
atribut. Method digunakan untuk pengaksesan terhadap data yang terdapat
dalam objek tersebut.
Atribut menggambarkan data yang dapat memberikan informasi dengan class
atau objek dimana atribut tersebut berada.

Contoh 1
1 // Fig. 3.4: GradeBook.java
2 // Class declaration with a method that has a parameter.
3
4 public class GradeBook
5 {

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  5 Tim Dosen http://www.mercubuana.ac.id

 
6 // display a welcome message to the GradeBook user
7 public void displayMessage( String courseName )
8 {
9 System.out.printf( "Welcome to the grade book for\n%s!\n",
10 courseName );
11 } // end method displayMessage
12
13 } // end class GradeBook

1 // Fig. 3.5: GradeBookTest.java


2 // Create GradeBook object and pass a String to
3 // its displayMessage method.

4 import java.util.Scanner; // program uses Scanner


5
6 public class GradeBookTest
7 {
8 // main method begins program execution
9 public static void main( String args[] )
10 {
11 // create Scanner to obtain input from command window
12 Scanner input = new Scanner( System.in );
13
14 // create a GradeBook object and assign it to myGradeBook
15 GradeBook myGradeBook = new GradeBook();
16
17 // prompt for and input course name
18 System.out.println( "Please enter the course name:" );
19 String nameOfCourse = input.nextLine(); // read a line of text
20 System.out.println(); // outputs a blank line
21
22 // call myGradeBook's displayMessage method
23 // and pass nameOfCourse as an argument
24 myGradeBook.displayMessage( nameOfCourse );
25 } // end main
26
27 } // end class GradeBookTest

Contoh 2
1 // MaximumFinder.java
2 //
3 import java.util.Scanner;
4
5 public class MaximumFinder
6 {
7 // mencari nilai maximum dari 3 nilai yang di inputkan.
8 public void determineMaximum()
9 {
10 // create Scanner for input from command window
11 Scanner input = new Scanner( System.in );
12
13 // obtain user input
14 System.out.print(

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  6 Tim Dosen http://www.mercubuana.ac.id

 
15 "Enter three floating-point values separated by spaces: " );
16 double number1 = input.nextDouble(); // read first double
17 double number2 = input.nextDouble(); // read second double
18 double number3 = input.nextDouble(); // read third double
19
20 // determine the maximum value
21 double result = maximum( number1, number2, number3 );
22
23 // display maximum value
24 System.out.println( "Maximum is: " + result );
25 } // end method determineMaximum
26
27 // returns the maximum of its three double parameters
28 public double maximum( double x, double y, double z )
29 {
30 double maximumValue = x; // assume x is the largest to start
31
32 // determine whether y is greater than maximumValue
33 if ( y > maximumValue )
34 maximumValue = y;
35
36 // determine whether z is greater than maximumValue
37 if ( z > maximumValue )
38 maximumValue = z;
39
40 return maximumValue;
41 } // end method maximum
42 } // end class MaximumFinder

1 // MaximumFinderTest.java
2 // Aplikasi test class MaximumFinder.
3
4 public class MaximumFinderTest
5 {
6 // application starting point
7 public static void main( String args[] )
8 {
9 MaximumFinder maximumFinder = new MaximumFinder();
10 maximumFinder.determineMaximum();
11 } // end main
12 } // end class MaximumFinderTest

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  7 Tim Dosen http://www.mercubuana.ac.id

 
Daftar Pustaka

1. Dasar Pemrograman Java 2, Abdul Kadir,Penerbit Andi,2005


2. Esensi-esensi Bahasa Pemograman Java oleh Bambang Hariyanto, Ir., MT
3. Java™ How to Program, Deitel H.M , Prentice Hall,2004
4. http:/www.sun.com
5. http://www.java.com

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  8 Tim Dosen http://www.mercubuana.ac.id

 
 

 
MODUL PERKULIAHAN
 

 
Pemrograman
Berorientasi Objek  
 

 
 
 

             

  Fakultas  Program Studi  Tatap Muka  Kode MK  Disusun Oleh   

8
  FASILKOM  Teknik Informatika  87023 Tim Dosen 
 

 
CLASS 
Pewarisan,Polimorphisme,Interface

1. Pewarisan
Inheritance adalah kemampuan untuk membuat class turunan yang mewarisi
property dan method dari class induk. Ketika kita membuat suatu class
menggunakan inheritance, kita akan mewarisi behavior dan data dari class
induknya (base class / Super Class). Class yang kita buat menggunakan pewarisan
dari class induk disebut subclass atau derived class. Proses pewarisan dari base
class ke subclass disebut deriving.
 Inheritance dapat juga dikatakan sebagai proses pewarisan seluruh data
dan method yang dimiliki oleh suatu class kepada class lainnya.
 Class yang mewariskan disebut Base Class / Super Class, class yang
diwariskan disebut SubClass.

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  2 Tim Dosen http://www.mercubuana.ac.id

 
Shape merupakan kelas induk atau superclass, square,rectangle dan circle adalah
kelas anak. Class anak mewarisa property dan metode class induknya.
Pada bahasa pemrograman java, semua class, termasuk class yang membangun
Java API, adalah subclasses dari superclass Object. Pewarisan adalah keuntungan
besar dalam pemrograman berbasis object karena suatu sifat atau method
didefinisikan dalam superclass, sifat ini secara otomatis diwariskan dari semua
subclasses. Sehingga kode method hanya sekali ditulis dan mereka dapat
digunakan oleh semua subclass. Dengan demikian subclass hanya perlu
mengimplementasikan.

2. Mendefinisikan Superclass dan Subclass


Untuk memperoleh suatu class, kita menggunakan kata kunci extend. Sebagai
ilustrasi, misalkan kita memiliki book sebagai class induk. Kemudian dibuat
class baru dengan nama dictionary yang diturunkan dari kelas book.

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  3 Tim Dosen http://www.mercubuana.ac.id

 
class Book
{
protected int pages;
public Book (int pages)
{
this.pages = pages;
}
public void pageMessage ()
{
System.out.println ("Number of pages: " + pages);
}
}// ahir class book

Perhatikan bahwa atribut pages dideklarasikan sebagai protected, penggunaan


protected ini agar atribut tersebut dapat diakses oleh subclasses dari
superclassess. Jika kita mendeklarasikannya sebagai private, subclasses tidak
dapat menggunakannya. Perlu diingat bahawa semua properti dari superclass
yang dideklarasikan sebagai public, protected dan default dapat diakses oleh
subclasses-nya. Selanjutnya kita membuat class lain bernama Dictionary yang
diturunkan dari class Book. Class Dictionary kita buat dengan hanya meng-
extend class Book. Subclass secara otomatis akan mewariskan semua properti
dan method yang ada pada class Book.

class Dictionary extends Book


{
private int definitions;
public Dictionary (int pages, int definitions)
{
super (pages);
this.definitions = definitions;
}
public void definitionMessage ()
{
System.out.println ("Number of definitions: " + definitions);

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  4 Tim Dosen http://www.mercubuana.ac.id

 
System.out.println ("Definitions per page: " + definitions/pages);
}
} // ahir class dictionary

Ketika object Dictionary di-instantiate, default constructor dari superclass secara


mutlak meminta untuk melakukan inisialisasi yang seharusnya. Setelah itu,
pernyataan di dalam subclass dieksekusi, seperti terlihat pada contoh berikut.

class Words
{
public static void main (String[] args)
{
Dictionary webster = new Dictionary (1500, 52500);
webster.pageMessage();
webster.definitionMessage();
}
}

3. Kata Kunci Super


Pada subclass Dictionary pada contoh diatas memanggil constructor secara
eksplisit dari superclass terdekat melalui construktor super.

public Dictionary (int pages, int definitions)


{
super (pages);
this.definitions = definitions;
}

Pemanggil constructor super dalam constructor dari subclass akan menghasilkan


eksekusi dari superclass constructor yang bersangkutan, berdasar dari argumen
sebelumnya.

4. Overriding Method

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  5 Tim Dosen http://www.mercubuana.ac.id

 
Untuk beberapa pertimbangan, terkadang class asal perlu mempunyai
implementasi berbeda dari method yang khusus dari superclass tersebut. Oleh
karena itulah, method overriding digunakan. Subclass dapat mengesampingkan
method yang didefinisikan dalam superclass dengan menyediakan implementasi
baru dari method tersebut. Kemampuan subclass untuk memodifikasi
(mendefinisikan kembali) data dan method dari class induknya. Proses ini akan
mengubah data dan method dari kedua class tersebut, class anak dan induknya.
Ada dua alasan mengapa melakuan overriding:

1. Mendefinisikan kembali method class indunya secara total.


2. Menambahkan behavior tertentu pada method class induknya.

Misal kita memiiki implementasi berikut untuk method message dalam superclass.

class Thought
{
public void message()
{
System.out.println ("Persiapan : " +"Instalasi.");
System.out.println();
}
}

Override method message dalam subclass Advice dapat dituliskan seperti berikut,

class Advice extends Thought


{
public void message()
{
System.out.println ("Peringatan : " + "Baca readme.txt");
System.out.println();
super.message();
}
}

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  6 Tim Dosen http://www.mercubuana.ac.id

 
Berikut contoh class pengguna, ke dua class diatas
class Messages
{

public static void main (String[] args)


{
Thought install = new Thought();
Advice readme = new Advice();
install.message ();
readme.message (); // overriding
}
}

5. Metode final dan class final


Java juga memungkinkan untuk mendeklarasikan class-class yang tidak lagi dapat
diturunkan ke class berikutnya.. Class ini dinamakan class final. Untuk
mendeklarasikan class untuk menjadi final kita hanya menambahkan kata kunci
final dalam deklarasi class. Sebagai contoh, jika kita ingin class Book untuk
dideklarasikan final, kita tulis,
public final class Book
{
//area kode
}

Beberapa class dalam Java API dideklarasikan secara final untuk memastikan
sifatnya tidak dapat di-override. Contoh-contoh dari class ini adalah Integer,
Double, dan String. Untuk mendeklarasikan method untuk menjadi final, kita
tambahkan kata kunci final ke dalam deklarasi method. Contoh

public final String getBook()


{

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  7 Tim Dosen http://www.mercubuana.ac.id

 
return name;
}

6. Polimorphisme
Polymorphism adalah penggunaan method dengan nama yang sama pada class-
class yang berbeda dan memungkinkan method yang tepat dieksekusi berdasarkan
konteks yang memanggilnya. Polymorphism dapat diimplementasikan
menggunakan method Overloading dan method Overriding.
Polymorphism memiliki arti “satu nama, banyak bentuk”. Hal ini disebut juga
sebagai overloading yang berarti menggunakan hal yang sama untuk tujuan yang
berbeda. Dengan menggunakan polymorphism kita dapat membuat banyak fungsi
dengan nama yang sama tetapi memiliki dafatr argumen yang berbeda.
Polymorphism dapat diilustrasikan sebagai berikut, perhatikanlah penggunaan
kata “mentah” dalam beberapa kalimat. “sayuran itu masih mentah, belum
dimasak”. “Pukulan petinju itu berhasil dimentahkan oleh lawannya”. “Gagasan
ini masih mentah sehingga perlu dibahas kembali” . Kata “mentah” pada contoh
dapat diaplikasikan pada baebagai objek dan dapat di interpretasikan ke dalam
beberapa makna.
Pada dasarnya polymorphism diimplementasikan melalui dua cara, yaitu
polymorphism berbasis interface dan polymorphism berbasis inheritance. Seperti
terlihat pada contoh berikut.

/**Mendekalrasikan ekspresi gembira yang diturnkan dari ekpresi wajah */

class Gembira extends EkspresiWajah{


public String respons(){
return (“Ha ha ha h ahah .. saya gembira\n”);
}
}

/**Mendekalrasikan ekspresi sedih yang diturnkan dari ekpresi wajah */

class Sedih extends EkspresiWajah{


public String respons(){

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  8 Tim Dosen http://www.mercubuana.ac.id

 
return (“Hik .. hik... saya sedih\n”);
}
}

/**Mendekalrasikan ekspresi marah yang diturnkan dari ekpresi wajah */

class Marah extends EkspresiWajah{


public String respons(){
return (“Haaaaaaaaaaiiiii... saya marah!!!!\n”);
}
}

public class EkspresiEmosi {


/**Main Method */
public static void main (String[] args) {
System.out.prinln(“\nDEMO POLIMORPHISM”);
System.out.prinln(“--------------------------------\ n”);
//membuat objek-objek dari ekspresi dari wajah
EkspresiWajah objEkspresi = new EkspresiWajah();
Gembira objGembira = new Gembira();
Sedih objSedih = new Sedih();
Marah objMarah = new Marah();
//Menyatakan objek-objek ekspresi tersebut menjadi
//suatu daftar ekspresi
EkspresiWajah[] ekspresi = new EkspresiWajah[4];
ekspresi [0] = objEkspresi;
ekspresi [1] = objGembira;
ekspresi [2] = objSedih;
ekspresi [3] = objMarah;

//Polymorphism membuat EkspresiWajah menjadi terlihat memiliki


//beberapa tingkah laku / kondisi yang berbeda-beda
System.out.prinln(“Ekspresi[0] : “ + ekspresi[0].respons());
System.out.prinln(“Ekspresi[1] : “ + ekspresi[1].respons());

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  9 Tim Dosen http://www.mercubuana.ac.id

 
System.out.prinln(“Ekspresi[2] : “ + ekspresi[2].respons());
System.out.prinln(“Ekspresi[3] : “ + ekspresi[3].respons());
}
}

7. Interface
Interface mirip dengan class, yang memiliki serangkian property, method dan
event. Bedanya dengan class, intereface tidak memiliki implementasi sedangkan
class dapat diimplementasikan. Berikut cara untuk membuat interface

public interface [InterfaceName]


{
//beberapa method tanpa isi
}

Tujuan untuk membuat dan menggunakan interface dalam aplikasi adalah sebagai
“future proof” dari kode program. Future proof artinya menyiapkan penggunaan
dimasa mendatang untuk menghindari masalah yang mungkin timbul. Disisi lain,
interface tidak dapat diubah setelah dipublikasikan, tetapi implementasi dari
interface dapat berubah. Interface juga menyediakan cara lain untuk
mengimplementasikan polymorphism. Melalui interface kita dapat menentukan
metoda suatu komponen tanpa keharusan untuk menentukan bagaimana metoda
tersebut dimplementasikan. Sehingga interface menyerupai prototype bagi class
lain yang akan dikembangkan. Perhatikan penggalan program berikut

// payable.Java
public interface Payable
{
double getPaymentAmount();
}

//Invoice.Java
public class Invoice implements Payable
{
private String partNumber;
private String partDescription;

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  10 Tim Dosen http://www.mercubuana.ac.id

 
private int quantity;
private double pricePerItem;
public Invoice( String part, String description, int count, double price )
{
partNumber = part;
partDescription = description;
setQuantity( count );
setPricePerItem( price );
}
public void setPartNumber( String part )
{
partNumber = part;
}
public String getPartNumber()
{
return partNumber;
}
.......................................................................................
.......................................................................................
{
return String.format( "%s: \n%s: %s (%s) \n%s: %d \n%s: $%,.2f",
"invoice", "part number", getPartNumber(), getPartDescription),
"quantity", getQuantity(), "price per item", getPricePerItem() );
}
public double getPaymentAmount()
{
return getQuantity() * getPricePerItem();
}
}

//Employee.Java
public abstract class Employee implements Payable
{
private String firstName;
private String lastName;
private String socialSecurityNumber;
public Employee( String first, String last, String ssn )
{
firstName = first;
lastName = last;
socialSecurityNumber = ssn;
}
public void setFirstName( String first )
{
firstName = first;
}
public String getFirstName()
{
return firstName;
}

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  11 Tim Dosen http://www.mercubuana.ac.id

 
........................
........................
}

// SalaryEmployee.Java
public class SalariedEmployee extends Employee
{
private double weeklySalary;
public SalariedEmployee( String first, String last, String ssn, double salary )
{
super( first, last, ssn );
setWeeklySalary( salary );
}
public void setWeeklySalary( double salary )
{
weeklySalary = salary < 0.0 ? 0.0 : salary;
}
public double getWeeklySalary()
{
return weeklySalary;
}
public double getPaymentAmount()
{
return getWeeklySalary();
}
}

Dari contoh diatas, ada dua class yaitu Invoice dan SalaryEmploye yang
mengimplemtasikan interface yang sama.

Soal :

1. Ketik program berikut


// Nama file: Pegawai.java
// Contoh penggunaan overloading constructor
class Pegawai
{
private int noKar; // variabel kelas

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  12 Tim Dosen http://www.mercubuana.ac.id

 
private String nama, alamat;
// constructor dengan beberapa parameter
public Pegawai (int k, String n, String a)
{
this.noKar = k;
this.nama = n;
this.alamat = a;
}
// constructor tanpa parameter
public Pegawai ()
{
}
// constructor dengan satu parameter
public Pegawai (String n)
{
this.nama = n;
}

public static void main (String[ ] args)


{
// Membuat objek dengan constructor pertama
Pegawai kar1 = new Pegawai(1, "Andi", "Jl Thamrin 10");
// Membuat objek dengan constructor kedua
Pegawai kar2 = new Pegawai();
// Membuat objek dengan constructor ketiga
Pegawai kar3 = new Pegawai("Rina");
// Menampilkan data
System.out.println ("Nomor Pegawai : " + kar1.noKar);
System.out.println ("Nama Pegawai: " + kar1.nama);
System.out.println ("Alamat Pegawai: " + kar1.alamat);
System.out.println ("Nomor Pegawai : " + kar2.noKar);
System.out.println ("Nama Pegawai: " + kar2.nama);
System.out.println ("Alamat Pegawai: " + kar2.alamat);
System.out.println ("Nomor Pegawai : " + kar3.noKar);
System.out.println ("Nama Pegawai: " + kar3.nama);
System.out.println ("Alamat Pegawai: " + kar3.alamat);
}
}

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  13 Tim Dosen http://www.mercubuana.ac.id

 
Daftar Pustaka

1. Dasar Pemrograman Java 2, Abdul Kadir,Penerbit Andi,2005


2. Esensi-esensi Bahasa Pemograman Java oleh Bambang Hariyanto, Ir., MT
3. Java™ How to Program, Deitel H.M , Prentice Hall,2004
4. http:/www.sun.com
5. http://www.java.com

‘13 Pemrograman Berorientasi Objek Pusat Bahan Ajar dan eLearning


  14 Tim Dosen http://www.mercubuana.ac.id

 
 

 
MODUL PERKULIAHAN
 

 
Pemrograman
Berorientasi Objek  
 

 
 
 

             

  Fakultas  Program Studi  Tatap Muka  Kode MK  Disusun Oleh   

9
  FASILKOM  Teknik Informatika  87023 Tim Dosen 
 

 
 

MODUL 9

Kelas Dasar

A. Java Lang Package

 Math
Kelas Math yang berisi konstanta untuk nilai pi dan e. Kelas ini juga
mendefinisikan metode perhitungan berbagai fungsi matematika, seperti fungsi
trigonometri dan eksponensial. Semua konstanta dan metode tersedia dalam
bentuk statis sehingga dalam penggunaannya kita tidak perlu lagi membuat
sebuah instance dari kelas Math untuk menggunakan konstanta dan metode.
Bahkan, kelas Matematika tidak mendefinisikan konstruktor publik, sehingga
tidak dapat instantiated. Untuk memastikan bahwa metode di kelas ini
memberikan hasil yang konsisten di bawah implementasi yang berbeda dari
Jawa, semua metode menggunakan algoritma dari paket terkenal Math Library
fdlibm yang didistribusikan secara bebas. Paket ini merupakan bagian dari
netlib dan dapat diperoleh melalui http://netlib.att.com.
Berikut adalah beberapa kelas math.
A. Variabel
1. E
public final static double E
2. Phi
public final static double PI
B. Methode
 sin
public static double sin(double a)
 cos
public static double cos(double a)

 tan
public static double tan(double a)
 exp

‘13 Pemrograman Berorientas Objek Pusat Bahan Ajar dan eLearning


  2 Tim Dosen http://www.mercubuana.ac.id

 
 

public static double exp(double a)


 log
public static double log(double a) throws ArithmeticException
 sqrt
public static double sqrt(double a) throws ArithmeticException
 ceil
public static double ceil(double a)
 floor
public static double floor(double a)
 rint
public static double rint(double a)
 pow
public static double pow(double a,ouble b) throws
ArithmeticException
 round
public static long round(double a)
 random
public static synchronized double random()
 abs
public static int abs(int a)
 max
public static float max(float a,float b)
 min
public static float min(float a, float b)

contoh :
public class fungsiMatematika {
public static void main(String[] args) {
int i = 7;
int j = -9;
double x = 72.3;
double y = 0.34;
System.out.println("i is " + i);
System.out.println("j is " + j);

‘13 Pemrograman Berorientas Objek Pusat Bahan Ajar dan eLearning


  3 Tim Dosen http://www.mercubuana.ac.id

 
 

System.out.println("x is " + x);


System.out.println("y is " + y);
System.out.println("|" + i + "| is " + Math.abs(i));
System.out.println("|" + j + "| is " + Math.abs(j));
System.out.println("|" + x + "| is " + Math.abs(x));
System.out.println("|" + y + "| is " + Math.abs(y));
System.out.println(x + " is approximately " + Math.round(x));
System.out.println(y + " is approximately " + Math.round(y));
System.out.println("The ceiling of " + i + " is " + Math.ceil(i));
System.out.println("The ceiling of " + j + " is " + Math.ceil(j));
System.out.println("The ceiling of " + x + " is " + Math.ceil(x));
System.out.println("The ceiling of " + y + " is " + Math.ceil(y));
System.out.println("The floor of " + i + " is " + Math.floor(i));
System.out.println("The floor of " + j + " is " + Math.floor(j));
System.out.println("The floor of " + x + " is " + Math.floor(x));
System.out.println("The floor of " + y + " is " + Math.floor(y));
System.out.println("min(" + i + "," + j + ") is " + Math.min(i,j));
System.out.println("min(" + x + "," + y + ") is " + Math.min(x,y));
System.out.println("min(" + i + "," + x + ") is " + Math.min(i,x));
System.out.println("min(" + y + "," + j + ") is " + Math.min(y,j));
System.out.println("max(" + i + "," + j + ") is " + Math.max(i,j));
System.out.println("max(" + x + "," + y + ") is " + Math.max(x,y));
System.out.println("max(" + i + "," + x + ") is " + Math.max(i,x));
System.out.println("max(" + y + "," + j + ") is " + Math.max(y,j));
System.out.println("Pi is " + Math.PI);
System.out.println("e is " + Math.E);
double angle = 45.0 * 2.0 * Math.PI/360.0;
System.out.println("cos(" + angle + ") is " + Math.cos(angle));
System.out.println("sin(" + angle + ") is " + Math.sin(angle));
double value = 0.707;
System.out.println("acos(" + value + ") is " + Math.acos(value));
System.out.println("asin(" + value + ") is " + Math.asin(value));
System.out.println("atan(" + value + ") is " + Math.atan(value));
System.out.println("exp(1.0) is " + Math.exp(1.0));

‘13 Pemrograman Berorientas Objek Pusat Bahan Ajar dan eLearning


  4 Tim Dosen http://www.mercubuana.ac.id

 
 

System.out.println("exp(10.0) is " + Math.exp(10.0));


System.out.println("exp(0.0) is " + Math.exp(0.0));
System.out.println("log(1.0) is " + Math.log(1.0));
System.out.println("log(10.0) is " + Math.log(10.0));
System.out.println("log(Math.E) is " + Math.log(Math.E));
System.out.println("pow(2.0, 2.0) is " + Math.pow(2.0,2.0));
System.out.println("pow(10.0, 3.5) is " + Math.pow(10.0,3.5));
System.out.println("pow(8, -1) is " + Math.pow(8,-1));
for (i=0; i < 10; i++) {
System.out.println(
"The square root of " + i + " is " + Math.sqrt(i));
}
System.out.println("Here's one random number: " + Math.random());
System.out.println("Here's another random number: " + Math.random());
}
}

 String
 Kontruktor
 String ()
 Membangun sebuah String kosong baru.
 String (String)
 Membangun sebuah String baru yang merupakan salinan dari
String tertentu.
 String (char [])
 Membangun sebuah String baru yang awal nilai adalah array
karakter tertentu.
 String (char [], int, int)
 Membangun sebuah String baru yang awal nilai adalah array sub
tertentu karakter.

 String (byte [], int, int, int)

‘13 Pemrograman Berorientas Objek Pusat Bahan Ajar dan eLearning


  5 Tim Dosen http://www.mercubuana.ac.id

 
 

 Membangun sebuah String baru yang awal nilai adalah array sub
byte tertentu.
 String (byte [], int)
 Membangun sebuah String baru yang awal nilai adalah array byte
tertentu.

Contoh :
// StringConstructors.java
// String class constructors.
public class StringConstructors
{
public static void main( String args[] )
{
char charArray[] = { 'b', 'i', 'r', 't', 'h', ' ', 'd', 'a' , 'y' };
String s = new String( "hello" );
// use String constructors
String s1 = new String();
String s2 = new String( s );
String s3 = new String( charArray );
String s4 = new String( charArray, 6, 3);
System.out.printf("s1 = %s\ns2 = %s\ns3 = %s\ns4 = %s\n",
s1, s2, s3, s4 );
}
}

 Metode
 compareTo
public int compareTo(String anotherString)
 indexOf
public int indexOf(int ch)
 substring
public String substring(int beginIndex)
 substring

‘13 Pemrograman Berorientas Objek Pusat Bahan Ajar dan eLearning


  6 Tim Dosen http://www.mercubuana.ac.id

 
 

public String substring(int beginIndex, int endIndex)


 replace
public String replace(char oldChar, char newChar)
 toLowerCase
public String toLowerCase()
 toUpperCase
public String toUpperCase()
 trim
public String trim()
 copyValueOf
public static String copyValueOf(char data[],int offset,
int count)

Contoh :
// StringMiscellaneous.java
// This application demonstrates the length, charAt and getChars
// methods of the String class.
public class StringMiscellaneous
{
public static void main( String args[] )
{
String s1 = "hello there";
char charArray[] = new char[ 5 ];
System.out.printf( "s1: %s", s1 );
// test length method
System.out.printf( "\nLength of s1: %d", s1.length() );
// loop through characters in s1 with charAt and display reversed
System.out.print( "\nThe string reversed is: " );
for ( int count = s1.length() - 1; count >= 0; count-- )
System.out.printf( "%s ", s1.charAt( count ) );
// copy characters from string into charArray
s1.getChars( 0, 5, charArray, 0 );
System.out.print( "\nThe character array is: " );
for ( char character : charArray )

‘13 Pemrograman Berorientas Objek Pusat Bahan Ajar dan eLearning


  7 Tim Dosen http://www.mercubuana.ac.id

 
 

System.out.print( character );
System.out.println();
}
}

 StringBuffer
Setelah object String dibuat, isinya tidak pernah bisa berubah. Untuk dapat
memanipulasi string, java menyediakan fitur kelas StringBuffer. Kelas ini
digunakan untuk menciptakan dan memanipulasi informasi string secara
dinamis. StringBuffer mampu menyimpan sejumlah karakter yang ditentukan
kapasitasnya. Jika kapasitas StringBuffer terlampaui, kapasitas secara otomatis
diperluas untuk mengakomodasi karakter tambahan.
Contoh :
// StringBufferCapLen.java
// StringBuffer length, setLength, capacity and ensureCapacity methods.
public class StringBufferCapLen
{
public static void main( String args[] )
{
StringBuffer buffer = new StringBuffer( "Hello, how are you?" );
System.out.printf( "buffer = %s\nlength = %d\ncapacity = %d\n\n",
buffer.toString(), buffer.length(), buffer.capacity() );
buffer.ensureCapacity( 75 );
System.out.printf( "New capacity = %d\n\n", buffer.capacity() );
buffer.setLength( 10 );
System.out.printf( "New length = %d\nbuf = %s\n",
buffer.length(), buffer.toString() );
}
}

 Wrapper
Metode dalam penanganan char kebanyakan metode statis dan dirancang untuk
menjadi metode pemprosesan nilai-nilai char secara individu. Metode ini
mengambil setidaknya argumen karakter dan melakukan tes atau manipulasi

‘13 Pemrograman Berorientas Objek Pusat Bahan Ajar dan eLearning


  8 Tim Dosen http://www.mercubuana.ac.id

 
 

karakter. Kelas ini juga mengandung konstruktor yang menerima argumen


char untuk menginisialisasi objek karakter.
Contoh :
// StaticCharMethods.java
// Static Character testing methods and case conversion methods.
import java.util.Scanner;
public class StaticCharMethods
{
public static void main( String args[] )
{
Scanner scanner = new Scanner( System.in ); // create scanner
System.out.println( "Enter a character and press Enter" );
String input = scanner.next();
char c = input.charAt( 0 ); // get input character
// display character info
System.out.printf( "is defined: %b\n", Character.isDefined( c ) );
System.out.printf( "is digit: %b\n", Character.isDigit( c ) );
System.out.printf( "is first character in a Java identifier: %b\n",
Character.isJavaIdentifierStart( c ) );
System.out.printf( "is part of a Java identifier: %b\n",
Character.isJavaIdentifierPart( c ) );
System.out.printf( "is letter: %b\n", Character.isLetter( c ) );
System.out.printf(
"is letter or digit: %b\n", Character.isLetterOrDigit( c ) );
System.out.printf(
"is lower case: %b\n", Character.isLowerCase( c ) );
System.out.printf(
"is upper case: %b\n", Character.isUpperCase( c ) );
System.out.printf(
"to upper case: %s\n", Character.toUpperCase( c ) );
System.out.printf(
"to lower case: %s\n", Character.toLowerCase( c ) );
}
}

‘13 Pemrograman Berorientas Objek Pusat Bahan Ajar dan eLearning


  9 Tim Dosen http://www.mercubuana.ac.id

 
 

 Process
 Kontruktor
 Process
public Process()
 Metode
 getOutputStream
public abstract OutputStream getOutputStream()
 getInputStream
public abstract InputStream getInputStream()
 getErrorStream
public abstract InputStream getErrorStream()
 waitFor
public abstract int waitFor() throws InterruptedException
 exitValue
public abstract int exitValue()
 destroy
public abstract void destroy()

 System
 Variabel
 in
public static InputStream in
 out

public static PrintStream out


 err
public static PrintStream err
 Metode
 setSecurityManager
public static void setSecurityManager(SecurityManager s)
 arraycopy
public static void arraycopy(Object src,
int src_position,

‘13 Pemrograman Berorientas Objek Pusat Bahan Ajar dan eLearning


  10 Tim Dosen http://www.mercubuana.ac.id

 
 

Object dst,
int dst_position,
int length)
 getProperties
public static Properties getProperties()
 exit
public static void exit(int status)
 loadLibrary
public static void loadLibrary(String libname)

B. Soal
1. Ketik program berikut
// StringIndexMethods.java
// String searching methods indexOf and lastIndexOf.
public class StringIndexMethods
{
public static void main( String args[] )
{
String letters = "abcdefghijklmabcdefghijklm";
// test indexOf to locate a character in a string
System.out.printf("'c' is located at index %d\n", letters.indexOf( 'c' ) );
System.out.printf("'a' is located at index %d\n", letters.indexOf( 'a', 1 )
);
System.out.printf(
"'$' is located at index %d\n\n", letters.indexOf( '$' ) );
// test lastIndexOf to find a character in a string
System.out.printf( "Last 'c' is located at index %d\n",
letters.lastIndexOf( 'c' ) );
System.out.printf( "Last 'a' is located at index %d\n",
letters.lastIndexOf( 'a', 25 ) );
System.out.printf( "Last '$' is located at index %d\n\n",
letters.lastIndexOf( '$' ) );
// test indexOf to locate a substring in a string
System.out.printf( "\"def\" is located at index %d\n",

‘13 Pemrograman Berorientas Objek Pusat Bahan Ajar dan eLearning


  11 Tim Dosen http://www.mercubuana.ac.id

 
 

letters.indexOf( "def" ) );
System.out.printf( "\"def\" is located at index %d\n",
letters.indexOf( "def",7 ) );
System.out.printf( "\"hello\" is located at index %d\n\n",
letters.indexOf( "hello" ) );
// test lastIndexOf to find a substring in a string
System.out.printf( "Last \"def\" is located at index %d\n",
letters.lastIndexOf( "def" ) );
System.out.printf( "Last \"def\" is located at index %d\n",
letters.lastIndexOf( "def", 25 ) );
System.out.printf( "Last \"hello\" is located at index %d\n",
letters.lastIndexOf( "hello" ) );
}
}

‘13 Pemrograman Berorientas Objek Pusat Bahan Ajar dan eLearning


  12 Tim Dosen http://www.mercubuana.ac.id

 
 

Daftar Pustaka

1. Dasar Pemrograman Java 2, Abdul Kadir,Penerbit Andi,2005


2. Esensi-esensi Bahasa Pemograman Java oleh Bambang Hariyanto, Ir., MT
3. Java™ How to Program, Deitel H.M , Prentice Hall,2004
4. http:/www.sun.com
5. http://www.java.com

‘13 Pemrograman Berorientas Objek Pusat Bahan Ajar dan eLearning


  13 Tim Dosen http://www.mercubuana.ac.id

 
 

 
MODUL PERKULIAHAN
 

 
Pemrograman
Berorientasi Objek  
 

 
 
 

             

  Fakultas  Program Studi  Tatap Muka  Kode MK  Disusun Oleh   

10
  FASILKOM  Teknik Informatika  87023 Tim Dosen 
 

 
Exception

1. Eksepsi
Dalam programming dikenal dua jenis error yang umum terjadi. Error pada saat
kompilasi dan error pada saat program berjalan (runtime ). Kesalahan pada saat
kompilasi umummnya terjadi karena kesalahan sintak. Kesalahan yang terjadi
pada saat run time kadang membuat program berhenti,kemudian menampilkan
pesan kesalahan yang terjadi. Kesalahan yang mungkin terjadi tentu saja
bermacam-macam. Misalnya, terjadi pembagian suatu bilangan dengan nol,
hingga memori habis ketika diperlukan untuk memberntuk objek. Program berikut
akan berhenti jika user menginputkan nilai 0 pada deminator.

import java.util.Scanner;
public class DivideByZeroNoExceptionHandling
{
public static int quotient( int numerator, int denominator )
{
return numerator / denominator;
}
public static void main( String args[] )
{
Scanner scanner = new Scanner( System.in );
System.out.print( "Please enter an integer numerator: " );
int numerator = scanner.nextInt();
System.out.print( "Please enter an integer denominator: " );
int denominator = scanner.nextInt();
int result = quotient( numerator, denominator );
System.out.printf("\nResult: %d / %d = %d\n", numerator, denominator,
result );
}
}

Untuk mengatasi kesalahan sewaktu program dieksekusi, Java menyediakan


penanganan eksepsi. Dalam hal ini Java akan “melontarkan” suatu eksepsi
sekiranya terdapat suatu kesalahan sewaktu program dijalankan.

Eksepsi adalah indikasi dari masalah yang terjadi saat suatu program dijalankan.
Eksepsi menyiratkan bahwa telah terjadi masalah yang tidak biasa pada bagian
dari program yang sebelumnya tidak bermasalah. Program yang tangguh dapat
tahan dari kondisi yang tidak biasa atau dalam kondisi "pengecualian". Salah satu

‘13 Pemrogramam Berorientasi Objek Pusat Bahan Ajar dan eLearning


  2 Tim Dosen http://www.mercubuana.ac.id

 
pendekatan untuk membuat program yang tangguh adalah dengan melihat
kemungkinan masalah yang mungkin terjadi dan menambahkan tes/pengujian
pada program tersebut untuk setiap kemungkinan masalah yang mungkin terjadi.
Akan tetapi pendekatan ini mungkin akan memperbesar kode program yang
dibuat dan akan sangat sulit untuk mengantisipasi segala kemungkinan masalah
yang pada program.

Java memiliki metode terstruktur dan rapi dalam menghadapi masalah yang
mungkin terjadi ketika program dijalankan. Metode ini disebut sebagai
penanganan pengecualian (exception-handling). Penanganan eksepsi pada Java
dapat digunakan untuk hal-hal berikut :

 Menangani kesalahan dengan menuliskan kode penangan kesalahan yang


terpisah dengan kode yang akan ditangani. Sejumlah pernyataan dapat
ditangani hanya dengan menggunakan sebuah penangan eksepsi.
 Menyediakan mekanisme yang memungkinkan untuk menjalankan
kesalahan yang terjadi dalam sebuah metode ke metode yang melakukan
pemanggilan metode tersebut.
 Menangani berbagai jenis kondisi yang tidak normal (jenis kesalahan
dapat diketahui).

2. Menangkap eksepsi
Ketika pengecualian terjadi dalam eksekusi suatu program, kita sebut bahwa
pengecualian tersebut di-lempar-kan (thrown). Ketika ini terjadi, aliran program
terlempar dari jalurnya, dan program berada dalam bahaya akan crash. Akan tetapi
crash bisa dihindari jika pengecualian tersebut ditangkap (catch) dan ditangani
dengan cara tertentu. Suatu pengecualian dapat dilempar oleh satu bagian program
dan ditangkap oleh bagian program lain. Pengecualian yang tidak ditangkap
secara umum akan menyebabkan program berhenti. Agar kesalahan karena
eksepsi dapat dikendalikan, eksepsi perlu “ditangkap”,. Untuk keperluan
menangkap eksepsi, Java menyediakan pernyataan try. Pernyataan ini mempunyai
dua bentuk.

Bentuk pertama :

‘13 Pemrogramam Berorientasi Objek Pusat Bahan Ajar dan eLearning


  3 Tim Dosen http://www.mercubuana.ac.id

 
try
{
//Blok yang akan ditangkap sekiranya terjadi eksepsi
}
catch(parameter)
{
//Blok yang akan dijalankan kalau terjadi eksepsi
}

Bentuk kedua :

try
{
//Blok yang akan ditangkap sekiranya terjadi eksepsi
}
finally
{
//Blok yang akan dijalankan kalau terjadi eksepsi
}

Pada bentuk di atas, bagian finally akan dijalankan, tidak tergantung apakah
bagian blok try mengalami eksepsi maupun tidak.
Selain bentuk penganganan kesalahan diatas, Java juga menyediakan berbagai
kelas yang berhubungan dengan eksepsi. Dengan kelas tertinggi kelas Throwable.

‘13 Pemrogramam Berorientasi Objek Pusat Bahan Ajar dan eLearning


  4 Tim Dosen http://www.mercubuana.ac.id

 
Dari gambar diatas terdapat subkelas dengan nama Error dan Exception. Subkelas
Error antara lain digunakan untuk menangani kesalahan seperti memory habis
(OutOfMemoryError) dan stack habis (StackOverflowError). Kesalahan seperti ini
biasanya tidak perlu ditangani; atau dengan kata lain program segera diakhiri
kalau menemukan eksepsi seperti ini. Subkelas Exception antara lain memiliki
subkelas RuntimeException, yang digunakan untuk menangani kesalahan seperti
indeks array yang tidak valid (indeks array melebihi jumlah indeks,
IndexArrayOutOfBounds) dan kesalahan Aritmetika (Arithmetic Exception).
Kesalahan yang tergolong dalam Exception perlu ditangani; misalnya kalau ada
pembagian bilangan dengan nol, program dapat diatur sehingga program tidak
diakhiri (quit program). Berdasarkan kelas diatas jika diketahui berbagai
kemungkinan jenis kesalahan, maka dapat ditangkap berbagai kemungkinan
eksepsi dengan menggunakan catch yang bertingkat dalam catch dan try berikut
ini :
try
{
//Blok yang akan ditangkap sekiranya terjadi eksepsi
}
catch(RuntimeException r)
{
//Blok yang akan dijalankan kalau terjadi RuntimeError
}
catch(Exception e)
{
//Blok yang akan dijalankan kalau terjadi eksepsi Exception
}
catch(Throwable t)
{
//Blok yang akan dijalankan kalau terjadi eksepsi yang lain
}

3. Melempar eksepsi
Java menyediakan pernyataan yang digunakan untuk melontarkan eksepsi, yaitu
berupa pernyataan throw. Bentuk pernyataan ini :
throw variableObject;
Dalam hal ini variableObject menyatakan variable objek yang merujuk ke suatu
kelas eksepsi, untuk melihat efek throw, perhatikan program berikut :

public class UsingExceptions


{

‘13 Pemrogramam Berorientasi Objek Pusat Bahan Ajar dan eLearning


  5 Tim Dosen http://www.mercubuana.ac.id

 
public static void main( String args[] )
{
try
{
throwException();
}
catch ( Exception exception )
{
System.err.println( "Exception handled in main" );
}
doesNotThrowException();
}

public static void throwException() throws Exception


{
try
{
System.out.println( "Method throwException" );
throw new Exception();
}
catch ( Exception exception )
{
System.err.println("Exception handled in method throwException" );
throw exception;
}
finally
{
System.err.println( "Finally executed in throwException" );
}
}

public static void doesNotThrowException()


{
try
{
System.out.println( "Method doesNotThrowException" );
}
catch ( Exception exception ) // does not execute
{
System.err.println( exception );
}
finally
{
System.err.println("Finally executed in doesNotThrowException" );
}
System.out.println( "End of method doesNotThrowException" );
}
}

‘13 Pemrogramam Berorientasi Objek Pusat Bahan Ajar dan eLearning


  6 Tim Dosen http://www.mercubuana.ac.id

 
4. Assertion
Assertions mengijinkan programmer untuk menentukan asumsi yang dihadapi.
Sebagai contoh, sebuah tanggal dengan area bulan tidak berada antara 1 hingga 12
dapat diputuskan bahwa data tersebut tidak valid. Programmer dapat menentukan
bulan harus berada diantara area tersebut. Meskipun hal itu dimungkinkan untuk
menggunakan contructor lain untuk mensimulasikan fungsi dari assertions, namun
sulit untuk dilakukan karena fitur assertion dapat tidak digunakan. Hal yang
menarik dari assertions adalah seorang user memiliki pilihan untuk digunakan
atau tidak pada saat runtime. Penulisan assertions memiliki dua bentuk. Bentuk
yang paling sederhana terlihat sebagai berikut :
assert <expression1>;
dimana <expression1> adalah kondisi dimana assertion bernilai true.
Atau
assert <expression1> : <expression2>;
dimana <expression1> adalah kondisi assertion bernilai true dan
<expression2> adalah informasi yang membantu pemeriksaan mengapa
program mengalami kesalahan.

Contoh :
import java.util.Scanner;
public class AssertTest
{
public static void main( String args[] )
{
Scanner input = new Scanner( System.in );
System.out.print( "Enter a number between 0 and 10: " );
int number = input.nextInt();
assert ( number >= 0 && number <= 10 ) : "bad number: " + number;
System.out.printf( "You entered %d\n", number );
}
}

Soal
1. Praktek, ketik program berikut
import java.util.InputMismatchException;
import java.util.Scanner;

‘13 Pemrogramam Berorientasi Objek Pusat Bahan Ajar dan eLearning


  7 Tim Dosen http://www.mercubuana.ac.id

 
public class DivideByZeroWithExceptionHandling
{
public static int quotient( int numerator, int denominator )
throws ArithmeticException
{
return numerator / denominator;
}
public static void main( String args[] )
{
Scanner scanner = new Scanner( System.in );
boolean continueLoop = true;
do
{
try
{
System.out.print( "Please enter an integer numerator: " );
int numerator = scanner.nextInt();
System.out.print( "Please enter an integer denominator: " );
int denominator = scanner.nextInt();

int result = quotient( numerator, denominator );


System.out.printf( "\nResult: %d / %d = %d\n", numerator,
denominator, result );
continueLoop = false; // input successful; end looping
}
catch ( InputMismatchException inputMismatchException )
{
System.err.printf( "\nException: %s\n",inputMismatchException );
scanner.nextLine();
System.out.println("You must enter integers. Please try again.\n" ); }
catch ( ArithmeticException arithmeticException )
{
System.err.printf( "\nException: %s\n", arithmeticException );

‘13 Pemrogramam Berorientasi Objek Pusat Bahan Ajar dan eLearning


  8 Tim Dosen http://www.mercubuana.ac.id

 
System.out.println("Zero is an invalid denominator. Please try
again.\n" );
}
} while ( continueLoop );
}
}

‘13 Pemrogramam Berorientasi Objek Pusat Bahan Ajar dan eLearning


  9 Tim Dosen http://www.mercubuana.ac.id

 
Daftar Pustaka

1. Dasar Pemrograman Java 2, Abdul Kadir,Penerbit Andi,2005


2. Esensi-esensi Bahasa Pemograman Java oleh Bambang Hariyanto, Ir., MT
3. Java™ How to Program, Deitel H.M , Prentice Hall,2004
4. http:/www.sun.com
5. http://www.java.com

‘13 Pemrogramam Berorientasi Objek Pusat Bahan Ajar dan eLearning


  10 Tim Dosen http://www.mercubuana.ac.id

 
 

 
MODUL PERKULIAHAN
 

 
Pemrograman
Berorientasi Objek  
 

 
 
 

             

  Fakultas  Program Studi  Tatap Muka  Kode MK  Disusun Oleh   

11
  FASILKOM  Teknik Informatika  87023 Tim Dosen 
 

 
MULTITHEAREADING

Sebuah thread merupakan sekumpulan instruksi ( kode program) yang akan


dieksekusi secara independen. Thread sebagai sebuah proses yang akan
dieksekusi didalam sebuah program tertentu. Penggunaan thread didukung
penggunaan sistem operasi modern saat ini memilliki kemampuan untuk
menjalankan beberapa program sekaligus. Misalnya, pada saat kita mengetik
sebuah dokumen di komputer dengan menggunakan text editor .Dalam waktu
yang bersamaan kita dapat pula mendengarkan musik dan menikmati tayangan
video via internet. Eksekusi beberapa kerjaan ini dikenal dengan nama
multitasking.

Pada suatu saat thread berada pada state tertentu dari beberapa state.

Siklus hidup sebuah thread dimulai state new dan akan terus pada state ini
sampai sekumpulan instruksi ini di eksekusi .

‘13 Pemrogramam Berorientasi Objek Pusat Bahan Ajar dan eLearning


  2 Tim Dosen http://www.mercubuana.ac.id

 
A. Penanganan Thread
Penanganan thread pada java dilakukan melalui mekanisme memperluas
kelas thread atau dengan cara mengimplemtasikan Runnable.
1. Thread menggunakan kelas thread
Class namaKelas extends Thread {
Public void run()
{
....................
..................
}
}

Contoh :

public class FirstThread extends Thread


{
public void run()
{
for (int i=1; i<=10; i++)
{
System.out.println( "Messag from First Thread : " +i);

try
{
Thread.sleep(1000);
}
catch (InterruptedException interruptedException)
{
/*Interrupted exception will be thrown when a sleeping or waiting
* thread is interrupted.
*/
System.out.println( "First Thread is interrupted when it is sleeping"
+interruptedException);
}
}
}
}

‘13 Pemrogramam Berorientasi Objek Pusat Bahan Ajar dan eLearning


  3 Tim Dosen http://www.mercubuana.ac.id

 
Second Thread
public class SecondThread extends Thread
{
//This method will be executed when this thread is executed
public void run()
{

for (int i=1; i<=10; i++)


{
System.out.println( "Messag from Second Thread : " +i);

try
{
Thread.sleep (1000);
}
catch (InterruptedException interruptedException)
{

System.out.println( "Second Thread is interrupted when it is


sleeping" +interruptedException);

}
}
}
}

2. Thread mengimplementasikan Runnable

‘13 Pemrogramam Berorientasi Objek Pusat Bahan Ajar dan eLearning


  4 Tim Dosen http://www.mercubuana.ac.id

 
Runnable adalah sebuah interface, dengan mengimplementasikan
interface ini maka thread dapat diciptkan.

Contoh :
// PrintTask.java
// PrintTask class sleeps for a random time from 0 to 5 seconds
import java.util.Random;

class PrintTask implements Runnable


{
private int sleepTime; // random sleep time for thread
private String threadName; // name of thread
private static Random generator = new Random();

// assign name to thread


public PrintTask( String name )
{
threadName = name; // set name of thread

// pick random sleep time between 0 and 5 seconds


sleepTime = generator.nextInt( 5000 );
} // end PrintTask constructor

// method run is the code to be executed by new thread


public void run()
{
try // put thread to sleep for sleepTime amount of time
{
System.out.printf( "%s going to sleep for %d milliseconds.\n",
threadName, sleepTime );

Thread.sleep( sleepTime ); // put thread to sleep


} // end try
// if thread interrupted while sleeping, print stack trace
catch ( InterruptedException exception )
{
exception.printStackTrace();

‘13 Pemrogramam Berorientasi Objek Pusat Bahan Ajar dan eLearning


  5 Tim Dosen http://www.mercubuana.ac.id

 
} // end catch

// print thread name


System.out.printf( "%s done sleeping\n", threadName );
} // end method run
} // end class PrintTask

‘13 Pemrogramam Berorientasi Objek Pusat Bahan Ajar dan eLearning


  6 Tim Dosen http://www.mercubuana.ac.id

 
Soal
1. Ketik kelas pengguna
public class ThreadDemo
{

public static void main(String args[])


{

//Creating an object of the first thread


FirstThread firstThread = new FirstThread();

//Creating an object of the Second thread


SecondThread secondThread = new SecondThread();

//Starting the first thread


firstThread.start();

//Starting the second thread


secondThread.start();
}
}

2. Ketik program kelas pengguna

import java.util.concurrent.Executors;
import java.util.concurrent.ExecutorService;

public class RunnableTester


{
public static void main( String[] args )
{
// create and name each runnable
PrintTask task1 = new PrintTask( "thread1" );
PrintTask task2 = new PrintTask( "thread2" );
PrintTask task3 = new PrintTask( "thread3" );
System.out.println( "Starting threads" );
// create ExecutorService to manage threads

‘13 Pemrogramam Berorientasi Objek Pusat Bahan Ajar dan eLearning


  7 Tim Dosen http://www.mercubuana.ac.id

 
ExecutorService threadExecutor = Executors.newFixedThreadPool(
3 );
// start threads and place in runnable state
threadExecutor.execute( task1 ); // start task1
threadExecutor.execute( task2 ); // start task2
threadExecutor.execute( task3 ); // start task3

threadExecutor.shutdown(); // shutdown worker threads


System.out.println( "Threads started, main ends\n" );
}
}

Daftar Pustaka

1. Dasar Pemrograman Java 2, Abdul Kadir,Penerbit Andi,2005


2. Esensi-esensi Bahasa Pemograman Java oleh Bambang Hariyanto, Ir., MT
3. Java™ How to Program, Deitel H.M , Prentice Hall,2004
4. http:/www.sun.com
5. http://www.java.com

‘13 Pemrogramam Berorientasi Objek Pusat Bahan Ajar dan eLearning


  8 Tim Dosen http://www.mercubuana.ac.id

 
 

 
MODUL PERKULIAHAN
 

 
Pemrograman
Berorientasi Objek  
 

 
 
 

             

  Fakultas  Program Studi  Tatap Muka  Kode MK  Disusun Oleh   

12
  FASILKOM  Teknik Informatika  87023 Tim Dosen 
 

 
PROGRAM JAVA

1. Applet
Applet adalah satu fitur yang paling menarik dalam java. Applet merupakan
program yang dijalankan melalui web browser. Beberapa pokok pembahasan
dalam Applet akan dijelaskan sebagai berikut:
1. Mendefinisikan apa yang dimaksud dengan applet
2. Membuat applet sendiri
3. Mengetahui siklus yang terdapat pada applet
a. init
b. start
c. stop
d. destroy
4. Menggunakan method applet yang lain
a. paint
b. showStatus
c. Method untuk memainkan sebuah audio clip
5. Memahami tag html pada applet

Membentuk Applet

Sebuah applet adalah tipe yang spesial dari program java yang dieksekusi
melalui internet. Secara khusus berjalan pada suatu web browser seperti
Netscape Navigator, Mozilla, atau Microsoft Internet Explorer. Bagaimanapun
juga, jika dibandingkan dengan aplikasi Java yang normal, tidak diperbolehkan
mengakses applet pada komputer yang dijalankan untuk alasan keamanan.
Class Applet adalah sebuah subclass dari class Panel yang didefinisikan dalam
AWT. Cara terbaik untuk memahami bagaimana membuat applet adalah dengan
contoh. Jadi, berikut ini adalah contoh applet sederhana yang menampilkan
"Hello world!".

Contoh program Applet dengan menggunakan awt

import java.applet.*;
import java.awt.*;
/* masukkan bagian ini dalam kode html

‘13 Pemrogramam Berorientasi Objek Pusat Bahan Ajar dan eLearning


  2 Tim Dosen http://www.mercubuana.ac.id

 
<applet code="AppletDemo" width=300 height=100>
</applet>
*/
public class AppletDemo extends Applet {
public void paint(Graphics g) {
g.drawString("Hello world!", 80, 25);
}
}

Setelah proses kompilasi, usahakan menjalankan contoh ini menggunakan


perintah java. Apa yang terjadi? Ingat bahwa applet adalah aplikasi java yang
spesial. Mereka tidak dieksekusi menggunakan perintah java. Bahkan applet
berjalan pada web browser atau menggunakan applet viewer. Untuk membuka
applet melalui sebuah web browser, secara sederhana buka dokumen HTML
dimana applet terintegrasi ke dalamnya menggunakan applet HTML tag (Perintah
mengeluarkan kode pada contoh Hello World). Cara lain untuk menjalankan
sebuah applet adalah melalui perintah appletviewer. Untuk lebih mudahnya ikuti
syntax berikut ini:

appletviewer <java filename>


appletviewer AppletDemo.java

Tag HTML pada contoh yang diberikan mengindikasikan bahwa sebuah applet
dibuat dengan lebar 300 pixel dan tinggi 100 pixel. Kemudian, method drawString
menggambar string "Hello world!" pada posisi pixel (80,25) menghitung kebawah
dari bagian kanan. Ketika membuat sebuah applet, diharuskan meng-extend
class Applet. Sebagaimana yang disebutkan sebelumnya, classnya dapat
ditemukan dalam package java.applet. Oleh karena itu, mengimport package
java.applet merupakan suatu keharusan. Juga, telah disebutkan sebelumnya
bahwa class Applet adalah subclass dari class Panel. Hal ini mengimplikasikan
bahwa beberapa method dari class applet ditemukan dalam class Panel. Untuk
mengakses method atau field dalam class Panel atau class-class induk,
diperlukan suatu aksi untuk import package java.awt .

Siklus Applet (The Applet Life Cycle)

‘13 Pemrogramam Berorientasi Objek Pusat Bahan Ajar dan eLearning


  3 Tim Dosen http://www.mercubuana.ac.id

 
1. init()
init adalah method yang dipanggil pertama kali. Yang sebenarnya berisi
permintaan pertama ketika applet di load.
2. start()
Setelah meminta method init, method ini meminta dokumen HTML yang
ditampilkan applet setiap waktu. Eksekusi ringkasan dengan method ini
dilakukan ketika applet ditampilkan kembali.
3. stop()
Ketika web browser meninggalkan dokumen HTML applet,method ini
dipanggil untuk menginformasikan applet bahwa dia harus menghentikan
proses eksekusinya.
4. destroy()
Method ini dipanggil ketika applet perlu dihapus dari memory. Method stop
selalu dipanggil sebelum method ini diminta untuk dijalankan.

Contoh :

import java.awt.*;
import java.applet.*;
/*
<applet code="AudioApplet" width=300 height=100>
</applet>
*/
public class AudioApplet extends Applet {
AudioClip ac;
public void init() {
try {
/*audio clip tersimpan dalam direktori yang sama
seperti kode javanya*/
/* spaceMusic telah terdownload dari java.sun.com */
ac = getAudioClip(getCodeBase(), "spaceMusic.au");
ac.loop();
} catch (Exception e) {
System.out.println(e);
}
}
public void stop() {

‘13 Pemrogramam Berorientasi Objek Pusat Bahan Ajar dan eLearning


  4 Tim Dosen http://www.mercubuana.ac.id

 
ac.stop();
}
public void paint(Graphics g) {
g.drawString("Playing space music!", 80, 25);
}
}

2. Window
GUI (Graphical User Interface), memungkinkan user untuk berinteraksi dengan
komputer secara lebih baik melalui berbagai elemen grafis,diantaranya: button,
dialog box, menu, dsb. Sejak 1994 Java berupaya untuk membuat perangkat
bergaya desktop yang dikenal sebagai AWT (Abstract Windowing Toolkit).
Kemudian pada tahun 1997, muncul JFC (Java Foundation Class) untuk
kepentingan pembuatan aplikasi Window yang merupakan pengembangan dari
AWT.JFC mempunyai kode swing yang terdapat pada package yang disediakan
pada JAVA SDK versi 1.2 ke atas (JAVA 2)JAVA menyediakan dua graphical
library.

Contoh program windowing pada java :


// TextFieldFrame.java
// Demonstrating the JTextField class.
import java.awt.FlowLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.JPasswordField;
import javax.swing.JOptionPane;

public class TextFieldFrame extends JFrame


{
private JTextField textField1; // text field with set size
private JTextField textField2; // text field constructed with text
private JTextField textField3; // text field with text and size
private JPasswordField passwordField; // password field with text

// TextFieldFrame constructor adds JTextFields to JFrame

‘13 Pemrogramam Berorientasi Objek Pusat Bahan Ajar dan eLearning


  5 Tim Dosen http://www.mercubuana.ac.id

 
public TextFieldFrame()
{
super( "Testing JTextField and JPasswordField" );
setLayout( new FlowLayout() ); // set frame layout

// construct textfield with 10 columns


textField1 = new JTextField( 10 );
add( textField1 ); // add textField1 to JFrame

// construct textfield with default text


textField2 = new JTextField( "Enter text here" );
add( textField2 ); // add textField2 to JFrame

// construct textfield with default text and 21 columns


textField3 = new JTextField( "Uneditable text field", 21 );
textField3.setEditable( false ); // disable editing
add( textField3 ); // add textField3 to JFrame

// construct passwordfield with default text


passwordField = new JPasswordField( "Hidden text" );
add( passwordField ); // add passwordField to JFrame

// register event handlers


TextFieldHandler handler = new TextFieldHandler();
textField1.addActionListener( handler );
textField2.addActionListener( handler );
textField3.addActionListener( handler );
passwordField.addActionListener( handler );
} // end TextFieldFrame constructor

// private inner class for event handling


private class TextFieldHandler implements ActionListener
{
// process text field events
public void actionPerformed( ActionEvent event )
{
String string = ""; // declare string to display

‘13 Pemrogramam Berorientasi Objek Pusat Bahan Ajar dan eLearning


  6 Tim Dosen http://www.mercubuana.ac.id

 
// user pressed Enter in JTextField textField1
if ( event.getSource() == textField1 )
string = String.format( "textField1: %s",
event.getActionCommand() );

// user pressed Enter in JTextField textField2


else if ( event.getSource() == textField2 )
string = String.format( "textField2: %s",
event.getActionCommand() );

// user pressed Enter in JTextField textField3


else if ( event.getSource() == textField3 )
string = String.format( "textField3: %s",
event.getActionCommand() );

// user pressed Enter in JTextField passwordField


else if ( event.getSource() == passwordField )
string = String.format( "passwordField: %s",
new String( passwordField.getPassword() ) );

// display JTextField content


JOptionPane.showMessageDialog( null, string );
} // end method actionPerformed
} // end private inner class TextFieldHandler
} // end class TextFieldFrame
 

Soal

1. Ketik program berikut

// AdditionApplet.java

// Adding two floating-point numbers.

import java.awt.Graphics; // program uses class Graphics

import javax.swing.JApplet; // program uses class JApplet

import javax.swing.JOptionPane; // program uses class JOptionPane

‘13 Pemrogramam Berorientasi Objek Pusat Bahan Ajar dan eLearning


  7 Tim Dosen http://www.mercubuana.ac.id

 
public class AdditionApplet extends JApplet

private double sum; // sum of values entered by user

// initialize applet by obtaining values from user

public void init ()

String firstNumber; // first string entered by user

String secondNumber; // second string entered by user

double number1; // first number to add

double number2; // second number to add

// obtain first number from user

firstNumber = JOptionPane.showInputDialog(

"Enter first floating-point value" );

// obtain second number from user

secondNumber = JOptionPane.showInputDialog(

"Enter second floating-point value" );

// convert numbers from type String to type double

number1 = Double.parseDouble( firstNumber );

number2 = Double.parseDouble( secondNumber );

sum = number1 + number2; // add numbers

} // end method init

‘13 Pemrogramam Berorientasi Objek Pusat Bahan Ajar dan eLearning


  8 Tim Dosen http://www.mercubuana.ac.id

 
// draw results in a rectangle on applet's background

public void paint( Graphics g )

super.paint( g ); // call superclass version of method paint

// draw rectangle starting from (15, 10) that is 270

// pixels wide and 20 pixels tall

g.drawRect( 15, 10, 270, 20 );

// draw results as a String at (25, 25)

g.drawString( "The sum is " + sum, 25, 25 );

} // end method paint

} // end class AdditionApplet

2. Ketik program beriku

<html>

<applet code = "AdditionApplet.class" width = "300" height = "65">

</applet>

</html>

‘13 Pemrogramam Berorientasi Objek Pusat Bahan Ajar dan eLearning


  9 Tim Dosen http://www.mercubuana.ac.id

 
Daftar Pustaka

1. Dasar Pemrograman Java 2, Abdul Kadir,Penerbit Andi,2005


2. Esensi-esensi Bahasa Pemograman Java oleh Bambang Hariyanto, Ir., MT
3. Java™ How to Program, Deitel H.M , Prentice Hall,2004
4. http:/www.sun.com
5. http://www.java.com

‘13 Pemrogramam Berorientasi Objek Pusat Bahan Ajar dan eLearning


  10 Tim Dosen http://www.mercubuana.ac.id

 
 

 
MODUL PERKULIAHAN
 

 
Pemrograman
Berorientasi Objek  
 

 
 
 

             

  Fakultas  Program Studi  Tatap Muka  Kode MK  Disusun Oleh   

13
  FASILKOM  Teknik Informatika  87023 Tim Dosen 
 

 
JAVA API

API (Application Programming Interface) adalah sekumpulan perintah, fungsi,


komponen, dan protokol yang disediakan oleh sistem operasi ataupun bahasa
pemrograman tertentu yang dapat digunakan oleh programmer saat membangun
perangkat lunak. Dalam API terdapat fungsi-fungsi atau perintah-perintah untuk
menggantikan bahasa yang digunakan dalam system calls dengan bahasa yang
lebih terstruktur dan mudah dimengerti oleh programmer.
Keuntungan menggunakan API:
 Probabilitas
API dapat digunakan untuk bahasa pemrograman ataupun untuk sistem
operasi mana saja asalkan paket-paket API sudah terpasang.
 Lebih Mudah Dimengerti
API menggunakan bahasa yang lebih terstruktur dan mudah dimengerti
daripada bahasa system call. Hal ini sangat penting dalam hal editing dan
pengembangan.
 Mudah Dikembangkan
Dengan adanya API, memudahkan programmer untuk mengembangkan
suatu system.

Beberapa API yang tersedia di Java


• java.lang = Basic language classes
• java.util = Utilities and collections classes
• java.applet = The applet API
• javax.swing, java.awt = Swing and 2D graphics
• java.io = Input and output

Java I/O
Semua input dan output (I / O) di Jawa dicapai melalui penggunaan input
stream dan output stream. Pada modul sebelumnya input dan output stream telah
sering digunakan untuk menginputkan data dengan System.in dan kemudian
menampilkannya dengan System.out. Pada gambar dibawah terlihat bahwa
System.out menghubungakan program ( sumber ) ke layar dan input stream
System.in menghubungkan keyboard (sumber) ke program berjalan (destination).
Aliran data ini akan menjadi kunci untuk menghubungkan file ke program.

‘13 Pemrogramam Berorientasi Objek Pusat Bahan Ajar dan eLearning


  2 Tim Dosen http://www.mercubuana.ac.id

 
Java memiliki berbagai stream untuk melakukan I / O. Mereka didefinisikan dalam
paket java.io, yang harus diimpor oleh setiap program. I/O stream umumnya diatur
dalam hirarki.

‘13 Pemrogramam Berorientasi Objek Pusat Bahan Ajar dan eLearning


  3 Tim Dosen http://www.mercubuana.ac.id

 
Secara umum, file biner yang diproses oleh subclass dari InputStream dan
OutputStream. File teks yang diproses oleh subclass dari Reader dan Writer,
keduanya merupakan aliran meskipun nama-nama mereka.

1. File
Java memandang setiap file sebagai aliran byte berurutan.Setiap sistem operasi
menyediakan mekanisme untuk menentukan akhir dari sebuah file, seperti penanda
akhir-of-file atau hitungan byte total file yang tercatat dalam struktur data.

Sebuah program Java memproses aliran byte dan selanjutnya menerima indikasi
dari sistem operasi saat rangkaian byte mencapai akhir dari stream. Indikasi ahir
dari stream dapat berupa end-of-file atau nilai kembalian dari sebuah metode
dipanggil.

Java melakukan proses pengolahan file dengan menggunakan kelas dari paket
java.io. Pada paket ini terdapat pendefinisian untuk kelas seperti FileInputStream
(untuk byte berbasis input dari file), FileOutputStream (untuk byte berbasis output
ke file), FileReader (untuk karakter berbasis input dari file) dan FileWriter (untuk
karakter berbasis output ke file). File dibuka dengan cara menciptakan objek dari
kelas-kelas tersebut. Selain itu java juga memiliki kelas yang memungkinkan
programmer untuk melakukan input dan output dari objek atau variabel dari tipe
data primitif. Data akan tetap disimpan sebagai byte atau karakter.Untuk melakukan
input dan output tersebut, objek kelas ObjectInputStream dan ObjectOutputStream
dapat digunakan bersama-sama dengan aliran byte-file berbasis kelas
FileInputStream dan FileOutputStream. Objek file dapat dibuat dengan cara berikut

 public File( String name )


atau
 public File( File directory, String name )

‘13 Pemrogramam Berorientasi Objek Pusat Bahan Ajar dan eLearning


  4 Tim Dosen http://www.mercubuana.ac.id

 
Pada penulisan ke dua berisi path absolut berisi semua direktori, dimulai dengan
direktori rootkemuidan mengarah ke file yang dituju.

Contoh :
// FileDemonstration.java
// Demonstrating the File class.
import java.io.File;
public class FileDemonstration
{
// display information about file user specifies
public void analyzePath( String path )
{
// create File object based on user input
File name = new File( path );
if ( name.exists() )
{
System.out.printf(%s%s\n%s\n%s\n%s\n%s%s\n%s%s\n%s%s\n%s%s\n%s%s",
name.getName() " exists",
( name.isFile() ? "is a file" : "is not a file" ),
( name.isDirectory() ? "is a directory" :
"is not a directory" ),
( name.isAbsolute() ? "is absolute path" :
"is not absolute path" ), "Last modified: ",
name.lastModified(), "Length: ", name.length(),
"Path: ", name.getPath(), "Absolute path: ",
name.getAbsolutePath(), "Parent: ", name.getParent() );
if ( name.isDirectory() ) // output directory listing
{
String directory[] = name.list();
System.out.println( "\n\nDirectory contents:\n" );
for ( String directoryName : directory )
System.out.printf( "%s\n", directoryName );
}
}
else
{
System.out.printf( "%s %s", path, "does not exist." );

‘13 Pemrogramam Berorientasi Objek Pusat Bahan Ajar dan eLearning


  5 Tim Dosen http://www.mercubuana.ac.id

 
}
}
}

// FileDemonstrationTest.java
// Testing the FileDemonstration class.
import java.util.Scanner;
public class FileDemonstrationTest
{
public static void main( String args[] )
{
Scanner input = new Scanner( System.in );
FileDemonstration application = new FileDemonstration();
System.out.print( "Enter file or directory name here: " );
application.analyzePath( input.nextLine() );
}
}

Soal Latihan
1. Praktek 1
Buat file biner dengan isian berikut ( buat dengan notepad )
Widget 14 3.35
Spoke 132 0.32
Wrap 58 1.92
Thing 28 4.17
Brace 25 1.75
Clip 409 0.12
Cog 142 2.08
dan beri nama inventory.dat
2. Praktek 2 input file
 Ketik program berikut
// InventoryItem.java
// Represents an item in the inventory.
import java.text.DecimalFormat;
public class InventoryItem
{
private String name;

‘13 Pemrogramam Berorientasi Objek Pusat Bahan Ajar dan eLearning


  6 Tim Dosen http://www.mercubuana.ac.id

 
private int units;
private float price;
private DecimalFormat fmt;
public InventoryItem (String itemName, int numUnits, float cost)
{
name = itemName;
units = numUnits;
price = cost;
fmt = new DecimalFormat ("0.##");
}
public String toString()
{
return name + ":\t" + units + " at " + price + " = " + fmt.format ((units * price));
}
}
 Ketik program berikut
// Inventory.java
// Demonstrates the use of a character file input stream.
import InventoryItem;
import java.util.StringTokenizer;
import java.io.*;
public class Inventory
{
public static void main (String[] args)
{
final int MAX = 100;
InventoryItem[] items = new InventoryItem[MAX];
StringTokenizer tokenizer;
String line, name, file="inventory.dat";
int units, count = 0;
float price;
try
{
FileReader fr = new FileReader (file);
BufferedReader inFile = new BufferedReader (fr);
line = inFile.readLine();
while (line != null)

‘13 Pemrogramam Berorientasi Objek Pusat Bahan Ajar dan eLearning


  7 Tim Dosen http://www.mercubuana.ac.id

 
{
tokenizer = new StringTokenizer (line);
name = tokenizer.nextToken();
try
{
units = Integer.parseInt (tokenizer.nextToken());
price = Float.parseFloat (tokenizer.nextToken());
items[count++] = new InventoryItem (name, units, price);
}
catch (NumberFormatException exception)
{
System.out.println ("Error in input. Line ignored:");
System.out.println (line);
}
line = inFile.readLine();
}
inFile.close();
for (int scan = 0; scan < count; scan++)
System.out.println (items[scan]);
}
catch (FileNotFoundException exception)
{
System.out.println ("The file " + file + " was not found.");
}
catch (IOException exception)
{
System.out.println (exception);
}
}
}

3. Praktek 3 output file


Ketik program berikut
// TestData.java
// Demonstrates the use of a character file output stream.
import java.io.*;

‘13 Pemrogramam Berorientasi Objek Pusat Bahan Ajar dan eLearning


  8 Tim Dosen http://www.mercubuana.ac.id

 
public class TestData
{
public static void main (String[] args) throws IOException
{
final int MAX = 10;
int value;
String file = "test.dat";
FileWriter fw = new FileWriter (file);
BufferedWriter bw = new BufferedWriter (fw);
PrintWriter outFile = new PrintWriter (bw);
for (int line=1; line <= MAX; line++)
{
for (int num=1; num <= MAX; num++)
{
value = (int) (Math.random() * 100);
outFile.print (value + " ");
}
outFile.println ();
}
outFile.close();
System.out.println ("Output file has been created: " + file);
}
}

‘13 Pemrogramam Berorientasi Objek Pusat Bahan Ajar dan eLearning


  9 Tim Dosen http://www.mercubuana.ac.id

 
Daftar Pustaka

1. Dasar Pemrograman Java 2, Abdul Kadir,Penerbit Andi,2005


2. Esensi-esensi Bahasa Pemograman Java oleh Bambang Hariyanto, Ir., MT
3. Java™ How to Program, Deitel H.M , Prentice Hall,2004
4. http:/www.sun.com
5. http://www.java.com

‘13 Pemrogramam Berorientasi Objek Pusat Bahan Ajar dan eLearning


  10 Tim Dosen http://www.mercubuana.ac.id

 
 

 
MODUL PERKULIAHAN
 

 
Pemrograman
Berorientasi Objek  
 

 
 
 

             

  Fakultas  Program Studi  Tatap Muka  Kode MK  Disusun Oleh   

14
  FASILKOM  Teknik Informatika  87023 Tim Dosen 
 

 
 

JAVA API
Java Util

API (Application Programming Interface) adalah sekumpulan perintah, fungsi,


komponen, dan protokol yang disediakan oleh sistem operasi ataupun bahasa
pemrograman tertentu yang dapat digunakan oleh programmer saat membangun
perangkat lunak. Dalam API terdapat fungsi-fungsi atau perintah-perintah untuk
menggantikan bahasa yang digunakan dalam system calls dengan bahasa yang
lebih terstruktur dan mudah dimengerti oleh programmer.
Keuntungan menggunakan API:
 Probabilitas
API dapat digunakan untuk bahasa pemrograman ataupun untuk sistem
operasi mana saja asalkan paket-paket API sudah terpasang.
 Lebih Mudah Dimengerti
API menggunakan bahasa yang lebih terstruktur dan mudah dimengerti
daripada bahasa system call. Hal ini sangat penting dalam hal editing dan
pengembangan.
 Mudah Dikembangkan
Dengan adanya API, memudahkan programmer untuk mengembangkan
suatu system.

Beberapa API yang tersedia di Java


• java.lang = Basic language classes
• java.util = Utilities and collections classes
• java.applet = The applet API
• javax.swing, java.awt = Swing and 2D graphics
• java.io = Input and output

Java Util
Kelas penanggalan, waktu adalah salah satu bagian dari kelas java,util. Beberpa dari
kelas ini adalah :

java.util.Date
Java util.Date memiliki banyak konstruktor dan metode, berikut beberapa metode
dan kostruktornya.

‘13 Pemrogramam Berorientasi Objek Pusat Bahan Ajar dan eLearning


  2 Tim Dosen http://www.mercubuana.ac.id

 
 

 public Date()
 public Date(long n)
 public long getTime()
 public void setTime(long n)
 public String toString()

java.util.Calendar
Java util.Calendar memiliki banyak metode dan konstanta. Berikut beberapa metode
dan konstantanya .
Metode :
 public static Calendar getInstance()
 public final Date getTime()
 public void setTimeInMilis(long milis)
 public final void set(int year, int month, int date)
 public int get(int field)
Konstanta :
 Calendar.YEAR
 Calendar.MONTH (zero based)
 Calendar.DAY_OF_YEAR
 Calendar.HOUR
 Calendar.MINUTE
 Calendar.SECOND
 Calendar.MILLISECOND

Contoh :

import java.util.Date;
import java.io.*;
import java.util.*;
import java.util.TimeZone.*;

public class tanggal {


public static void main(String [] adr){
Calendar c = Calendar.getInstance( ); // today
System.out.println("Year: " + c.get(Calendar.YEAR));
System.out.println("Month: " + c.get(Calendar.MONTH));
System.out.println("Day: " + c.get(Calendar.DAY_OF_MONTH));

‘13 Pemrogramam Berorientasi Objek Pusat Bahan Ajar dan eLearning


  3 Tim Dosen http://www.mercubuana.ac.id

 
 

System.out.println("Day of week = " + c.get(Calendar.DAY_OF_WEEK));


System.out.println("Day of year = " + c.get(Calendar.DAY_OF_YEAR));
System.out.println("Week in Year: " + c.get(Calendar.WEEK_OF_YEAR));
System.out.println("Week in Month: " + c.get(Calendar.WEEK_OF_MONTH));
System.out.println("Day of Week in Month: "
+c.get(Calendar.DAY_OF_WEEK_IN_MONTH));
System.out.println("Hour: " + c.get(Calendar.HOUR));
System.out.println("AM or PM: " + c.get(Calendar.AM_PM));
System.out.println("Hour (24-hour clock): " +c.get(Calendar.HOUR_OF_DAY));
System.out.println("Minute: " + c.get(Calendar.MINUTE));
System.out.println("Second: " + c.get(Calendar.SECOND));
}
}

1. Kerjakanlah latihan soal dibawah ini dengan menggunakan Method Date dan
Timer pada system parker kendaraan Motor, dan kembangkan dengan
menggunakan array untuk melakukan penginputan jumlah kendaraan motor yang
masuk.

Contoh
public class TiketParkir
{
String jenis,plat,petugas,loket;
int jamMasuk,jamKeluar,menitMasuk,menitKeluar,detikMasuk,detikKeluar;

public TiketParkir(String jenis)


{
this.jenis=jenis;
}

public String displayJenis()


{
return "Tiket Parkir " +jenis;
}
}

Nama class:TiketParkirMotor.java

‘13 Pemrogramam Berorientasi Objek Pusat Bahan Ajar dan eLearning


  4 Tim Dosen http://www.mercubuana.ac.id

 
 

public class TiketParkirMotor extends TiketParkir


{
final int HARGA=1000;

public TiketParkirMotor(String loket,String petugas)


{
super("Motor");
this.loket=loket;
this.petugas=petugas;
}

public long hitungHarga()


{
if (jumlahJam()==0)
return (jumlahJam()+1)*HARGA;
else if ((jumlahMenit()>0) || (jumlahDetik()>0))
return (jumlahJam()+1)*HARGA;
else
return jumlahJam()*HARGA;

public String toString()


{
String data;
data="\n======================\n"
+displayJenis()+"\n======================"+"\nNo. Plat : " + plat +"\nLoket : " +
loket + "\nPetugas : " + petugas +
"\nJam Masuk :
"+jamMasuk+":"+menitMasuk+":"+detikMasuk+"\nJam Keluar :
"+jamKeluar+":"+menitKeluar+":"+detikKeluar+
"\nLama : " + jumlahJam() + " jam " + jumlahMenit() +" menit "
+ jumlahDetik() +" detik " +"\nHarga :" + hitungHarga();
return data;
}

public int jumlahJam()

‘13 Pemrogramam Berorientasi Objek Pusat Bahan Ajar dan eLearning


  5 Tim Dosen http://www.mercubuana.ac.id

 
 

{
int jam=0;
if (menitKeluar>=menitMasuk)
jam=jamKeluar-jamMasuk;
else
jam=jamKeluar-jamMasuk-1;
return jam;

public int jumlahMenit()


{
int menit=0;
if (menitKeluar>=menitMasuk)
menit = menitKeluar-menitMasuk;
else
menit=menitMasuk-menitKeluar;
if (!(detikKeluar>=detikMasuk))
menit=menit-1;
return menit;

public int jumlahDetik()


{
int detik=0;
if (detikKeluar>=detikMasuk)
detik = detikKeluar-detikMasuk;
else
{
if (detikMasuk==0)
detik=60-detikKeluar;
else
detik=detikMasuk-detikKeluar;
}

‘13 Pemrogramam Berorientasi Objek Pusat Bahan Ajar dan eLearning


  6 Tim Dosen http://www.mercubuana.ac.id

 
 

return detik;
}

public void setJamMasuk(int jam,int menit,int detik)


{
this.jamMasuk=jam;
this.menitMasuk=menit;
this.detikMasuk=detik;
}

public void setJamKeluar(int jam,int menit,int detik)


{
this.jamKeluar=jam;
this.menitKeluar=menit;
this.detikKeluar=detik;
}
}

Nama class: TiketMotorApp.java


import java.io.*;
import java.util.*;

public class TiketMotorApp


{
public static void main(String args[]) throws IOException
{
TiketParkirMotor motor=new TiketParkirMotor("UMB","Tono");
BufferedReader streami = new BufferedReader(
new InputStreamReader(System.in));
System.out.println("Program Input Tiket Parkir Motor");
System.out.print("No. Plat : ");
motor.plat=streami.readLine();
Date jamMasuk=new Date();

motor.setJamMasuk(jamMasuk.getHours(),jamMasuk.getMinutes(),jamMasuk.getSec
onds());

‘13 Pemrogramam Berorientasi Objek Pusat Bahan Ajar dan eLearning


  7 Tim Dosen http://www.mercubuana.ac.id

 
 

System.out.print("Tekan Enter Bila Motor Sudah Keluar");


streami.readLine();
Date jamKeluar=new Date();

motor.setJamKeluar(jamKeluar.getHours(),jamKeluar.getMinutes(),jamKeluar.getSec
onds());
System.out.println(motor);
}
}

Daftar Pustaka

1. Dasar Pemrograman Java 2, Abdul Kadir,Penerbit Andi,2005


2. Esensi-esensi Bahasa Pemograman Java oleh Bambang Hariyanto, Ir., MT
3. Java™ How to Program, Deitel H.M , Prentice Hall,2004
4. http:/www.sun.com
5. http://www.java.com

‘13 Pemrogramam Berorientasi Objek Pusat Bahan Ajar dan eLearning


  8 Tim Dosen http://www.mercubuana.ac.id

Anda mungkin juga menyukai