MODUL PERKULIAHAN
Pemrograman
Berorientasi Objek
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
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.
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 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
Garbage Collection diciptakan John McCarthy sekitar 1959 untuk memecahkan
masalah dalam bahasa pemrograman Lisp.
Meskipun Java didesain untuk diinterpretasi, secara teknis tidak ada yang
menghalangi Java untuk dikompilasi menjadi bahasa mesin seperti bahasa-bahasa
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.
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.
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
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).
2. Klik tab Advance
7. Buka windows command
8. Ketik pada c:> javac Helloworld.java
Soal :
1. Jelaskan pengertian pemrograman berorientasi objek
2. Buat program sederhana untuk menampilkan tulisan berikut
---------------------------------------------------------------------
INI ADALAH PROGRAM PERTAMA SAYA
MENGGUNAKAN
JAVA
-----------------------------------------------------------------
Daftar Pustaka
MODUL PERKULIAHAN
Pemrograman
Berorientasi Objek
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.
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
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.
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
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
Floating Point
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
Tipe boolean memiliki nilai true dan false. Tipe ini digunakan untul logical
testing dengan menggunakan operator relasional.
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[] )
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 :
Baris ke sembilan adalah perintah java untuk mencetak teks yang berada di antara
tanda “ “.
Daftar Pustaka
MODUL PERKULIAHAN
Pemrograman
Berorientasi Objek
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
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
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.
Objek BufferedReader digunakan untuk menangani inputan dari keyboard. Objek ini
masuk dalam kelas Reader.
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;
{
InputStreamReader( System.in) );
try{
name = dataIn.readLine();
}catch( IOException e ){
System.out.println("Error!");
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;
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.
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()
// 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");
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.
Contoh program :
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class GreeterGUI extends JFrame implements ActionListener
{ private JTextArea display;
private JTextField inField;
private JButton goButton;
private Greeter greeter;
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
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
Daftar Pustaka
MODUL PERKULIAHAN
Pemrograman
Berorientasi Objek
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
Floating Point
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
Tipe boolean memiliki nilai true dan false. Tipe ini digunakan untul logical
testing dengan menggunakan operator relasional.
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.
int sisi = 7;
sisi = 12;
Pada arithmetic promotion terjadi secara otomatis ketika operator dalam ekspresi
mengkonversi operan mereka. Contoh
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.
1. Implicit casting
2. Explicit casting
Contoh :
double y = x; // occupies 8 bytes
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
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));
}
}
import java.util.Scanner;
import java.text.DecimalFormat;
Daftar Pustaka
MODUL PERKULIAHAN
Pemrograman
Berorientasi Objek
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 aritmatika
Operator Operation
+ Addition
- Subtraction
* Multiplication
/ Division
% Modulo
Contoh :
Bitwise Operator
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
{
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
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
() [] .
++ -- ~ !
* / %
+ -
>> >>> <<
> >= < <=
== !=
&
^
|
&&
||
?:
= op=
Terendah
Contoh :
Contoh :
System.out.println (x);
System.out.println (y);
System.out.println (z);
}
}
B. EKSPRESI
System.out.println (4-5*12);
}
}
Contoh :
System.out.println (kalimat);
}
}
Daftar Pustaka
MODUL PERKULIAHAN
Pemrograman
Berorientasi Objek
6
FASILKOM Teknik Informatika 87023 Tim Dosen
(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.
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
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
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
Contoh :
// strukturifelse.java
// Contoh penggunaan pernyataan if else
public class strukturifelse
{
public static void main (String[ ] args)
{
int nilai // pendefinisian variabel
nilai = 75;
System.out.println ("Nilai = " + nilai);
IF bersarang ( Nested IF )
If kondisi
statement
else
If kondisi
statement
else
If kondisi
statement
else
If kondisi
statemet
else
statement
contoh
switch (userInput)
{
case 1:
statement
case 2:
statement
default:
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
{
int nilai;
String bilangan = JOptionPane.showInputDialog("Masukkan nilai:");
System.out.println("Input angka: " + bilangan);
nilai = Integer.parseInt(bilangan);
2. Buat program
Daftar Pustaka
MODUL PERKULIAHAN
Pemrograman
Berorientasi Objek
7
FASILKOM Teknik Informatika 87023 Tim Dosen
KELAS
2. Pengembangan
Pengembangan berorientasi objek merupakan cara berpikir baru tantang
perangkat lunak berdasarkan abstraksi alam dunia nyata.
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 :
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
interface yang sama anda akan mendapatkan hasil yang sama, tetapi
bagaimana proses yang terjadi dari aksi menjadi hasil mungkin saja berbeda.
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 {
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
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(
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
Daftar Pustaka
MODUL PERKULIAHAN
Pemrograman
Berorientasi Objek
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.
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.
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
System.out.println ("Definitions per page: " + definitions/pages);
}
} // ahir class dictionary
class Words
{
public static void main (String[] args)
{
Dictionary webster = new Dictionary (1500, 52500);
webster.pageMessage();
webster.definitionMessage();
}
}
4. Overriding Method
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:
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,
Berikut contoh class pengguna, ke dua class diatas
class Messages
{
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
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.
return (“Hik .. hik... saya sedih\n”);
}
}
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
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;
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;
}
........................
........................
}
// 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 :
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;
}
Daftar Pustaka
MODUL PERKULIAHAN
Pemrograman
Berorientasi Objek
9
FASILKOM Teknik Informatika 87023 Tim Dosen
MODUL 9
Kelas Dasar
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
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);
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.
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
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 )
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
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
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",
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" ) );
}
}
Daftar Pustaka
MODUL PERKULIAHAN
Pemrograman
Berorientasi Objek
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 );
}
}
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
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 :
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 :
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.
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 static void main( String args[] )
{
try
{
throwException();
}
catch ( Exception exception )
{
System.err.println( "Exception handled in main" );
}
doesNotThrowException();
}
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;
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();
System.out.println("Zero is an invalid denominator. Please try
again.\n" );
}
} while ( continueLoop );
}
}
Daftar Pustaka
MODUL PERKULIAHAN
Pemrograman
Berorientasi Objek
11
FASILKOM Teknik Informatika 87023 Tim Dosen
MULTITHEAREADING
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 .
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 :
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);
}
}
}
}
Second Thread
public class SecondThread extends Thread
{
//This method will be executed when this thread is executed
public void run()
{
try
{
Thread.sleep (1000);
}
catch (InterruptedException interruptedException)
{
}
}
}
}
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;
} // end catch
Soal
1. Ketik kelas pengguna
public class ThreadDemo
{
import java.util.concurrent.Executors;
import java.util.concurrent.ExecutorService;
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
Daftar Pustaka
MODUL PERKULIAHAN
Pemrograman
Berorientasi Objek
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!".
import java.applet.*;
import java.awt.*;
/* masukkan bagian ini dalam kode html
<applet code="AppletDemo" width=300 height=100>
</applet>
*/
public class AppletDemo extends Applet {
public void paint(Graphics g) {
g.drawString("Hello world!", 80, 25);
}
}
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 .
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() {
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.
public TextFieldFrame()
{
super( "Testing JTextField and JPasswordField" );
setLayout( new FlowLayout() ); // set frame layout
// user pressed Enter in JTextField textField1
if ( event.getSource() == textField1 )
string = String.format( "textField1: %s",
event.getActionCommand() );
Soal
// AdditionApplet.java
public class AdditionApplet extends JApplet
firstNumber = JOptionPane.showInputDialog(
secondNumber = JOptionPane.showInputDialog(
// draw results in a rectangle on applet's background
<html>
</applet>
</html>
Daftar Pustaka
MODUL PERKULIAHAN
Pemrograman
Berorientasi Objek
13
FASILKOM Teknik Informatika 87023 Tim Dosen
JAVA API
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.
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.
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
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." );
}
}
}
// 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;
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)
{
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);
}
}
}
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);
}
}
Daftar Pustaka
MODUL PERKULIAHAN
Pemrograman
Berorientasi Objek
14
FASILKOM Teknik Informatika 87023 Tim Dosen
JAVA API
Java Util
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.
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.*;
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;
Nama class:TiketParkirMotor.java
{
int jam=0;
if (menitKeluar>=menitMasuk)
jam=jamKeluar-jamMasuk;
else
jam=jamKeluar-jamMasuk-1;
return jam;
return detik;
}
motor.setJamMasuk(jamMasuk.getHours(),jamMasuk.getMinutes(),jamMasuk.getSec
onds());
motor.setJamKeluar(jamKeluar.getHours(),jamKeluar.getMinutes(),jamKeluar.getSec
onds());
System.out.println(motor);
}
}
Daftar Pustaka