SlideShare uma empresa Scribd logo
1 de 27
Baixar para ler offline
Modul Pemrograman Berorientasi Objek
Laboratorium Teknologi Jaringan Page 1
BAB 1 PENGENALAN JAVA
1. Tujuan
 Mengetahui cara instalasi Java sebagai bahasa implementasi praktikum
pemrograman berorientasi objek
 Memahami struktur dasar / sintaks bahasa Java.
 Membuat program bahasa Java sederhana.
2. Dasar Teori
 Mempersiapkan Lingkungan kerja JAVA
Untuk menulis program JAVA digunakan editor. IDE (Integrated Development
Environment) yang telah ada untuk Java, antara lain: NetBeans yang disponsori Sun
Microsystems. Diperlukan penginstalan Java SDK dan Netbeans IDE 7.2.1.
 Java SDK : adalah platform dasar Java yang diperlukan agar PC dapat
mengeksekusi kode-kode program yang menggunakan bahasa Java.
 NetBeans : adalah aplikasi editor terpadu (IDE) yang menyediakan kontrol-
kontrol visual dalam pemrograman desktop.
a. Instalasi JAVA SDK
Java Development Kit (JDK) dapat didownload pada situs Java Sun Microsystem,
yaitu: http://java.sun.com. Pada instalasi ini digunakan versi jdk1.7.1_02. Instalasi
dilakukan dengan mengklik installer jdk yang akan mengekstrak file JDK membuat
direktori yang diperlukan. Untuk versi jdk dibawah 1.6 diperlukan setting variable
path.
b. NETBEANS IDE 7.2.1
 Tampilan awal NETBEANS IDE 7.2.1 (Gambar 1.1)
 Memulai lembar project baru, pilih file – New Project... pada bagian menu.
 Pada bagian choose project Categoty pilih java, dan pada bagian Projects pilih
Java Application (Gambar 1.2)
Modul Pemrograman Berorientasi Objek
Laboratorium Teknologi Jaringan Page 2
 Masukkan project name dan project location seperti terlihat pada Gambar 1.3.
Sebagai latihan berikan nama project dengan hello_world.
Pada bagian create main class, dapat diberikan nama yang berbeda dari Project
Name nya. Tidak perlu menambahkan .Main atau .Java, NetBeans akan secara
otomatis memberikan ekstensi-nya. Setelah selesai, klik finish
c. Aturan dasar program java
 Case sensitive : penggunaan huruf besar dan kecil memiliki arti berbeda
 Kurung kurawal{} : symbol menandai awal dan akhir suatu blok program
 Komentator : diawali tanda // atau tanda /*……*/
 titik koma (;) : setiap pernyataan diakhiri dengan symbol titk-koma
3. Latihan
Program sederhana mencetak baris kalimat
Modul Pemrograman Berorientasi Objek
Laboratorium Teknologi Jaringan Page 3
Analisa program :
 Pada baris ini keyword “public” memanggil sebuah variable yang
menentukan apakah dapat digunakan oleh bagian program. Keyword class
yang menyatakan kelas dimana atribut dan fungsi berada di dalamnya.
Kelas pertama Hello_world1 adalah kelas pengendali yaitu nama kelas
yang akan dikenali compiler java. Pada saat kompilasi, compiler membuat
file Hello_world1.class
 Baris ini memuat metode pertama program. Metode adalah fungsi yang
menjalankan suatu aksi tertentu. Metode main() bersifat statis dan kosong.
Eksekusi selalu dimulai dengan metode utama dari kelas yang
mengendalikan aplikasi, yaitu kelas yang memiliki nama sama dengan file
sumber aplikasi.
 Baris ini menampilkan pesan “ siap belajar java” pada hasil running.
System adalah kelas yang merupakan bagian dari pustaka java, out objek
yang terdapat pada kelas system. Keyword println() mencetak baris
menampilkan sebuah teks.
 Paket(package) : bagian standar java untuk mengelompokkan kelas dengan
interface menjadi suatu unit
4. Tugas
a. Buatlah sebuah program yang mencetak data berikut :
Nama : mutiara sugiharto
NIM : 12/336147/PA/15080
Alamat : Jl. Menteri Supeno No.45 Yogyakarta
No.Telp : 0324-6575757
Email : tiara@gmail.com
Data bisa diganti dengan data anda
b. Buatlah sebuah program untuk mencetak kalimat berikut
Suatu saat perusahaan computer di dunia akan lebih dari lima dari sekarang.
Thomas Watson, IBM, 1943.
(Buatlah program dengan pseudocode di bawah ini)
System.out.print(“Suatu saat …………..”)
System.out.println(“akan ………………..”)
System.out.println(“Thomas……………”)
A
B
C
A
B
C
Modul Pemrograman Berorientasi Objek
Laboratorium Teknologi Jaringan Page 4
BAB 2 TIPE DATA DAN OPERATOR
1. Tujuan
 Praktikan dapat memahami operator dengan benar.
 Memahami struktur dasar / sintaks bahasa Java.
 Membuat program bahasa Java sederhana.
2. Dasar Teori
a. Identifier
Adalah nama yang biasa digunakan dalam pemrograman untuk menyatakan : variable,
konstanta, kelas, metode.
Identifier valid :
Identifier invalid :
b. Keyword
Identifier penggunaan khusus yang sudah ada pada pustaka Java, dan tidak dapat
digunakan sebagai identifier
Contoh keyword pada Java :
c. Tipe Data
Dibagi menjadi 2 kategori :
1. Tipe data primitif : tipe data yang mempunyai nilai tertentu, bukan referensi kelas
atau objek.Dibagi menjadi 4 tipe data primitive
Tipe Data Jenis Storage Nilai
Integer(bilangan
bulat
byte
short
long
int
8 bit
16 bit
64 bit
32 bit
-128 s/d 127
–32768 s/d 32767
–922337203s/d 922337203
–2147483648 s/d 2147483647
Float(bilangan nyata) float
double
32 bit
64 bit
±3.4E-38 s/d ±3.4E+38
±1.7E-308 s/d ±1.7E+308
char char 16 bit u0000 s/d uFFFF
boolean boolean 1 bit True atau false
2. Tipe data referensi : terbentuk dari tipe data sederhana dan tipe data referensi
string array class interface
d. Operator
Operator digunakan untuk melakukan pengolahan data, melibatkan konstanta dan
variabel yang telah kita buat.
Jenis Operator Simbol
Increment/ Decrement ++ , -
Unary Operator + , - , ~ , ! , (cast)
Perkalian/pembagian/modulus *, /, %
Penambahan/pengurangan +, -
Operator shift <<, >>, >>>
No kode_barang
kodeBarang Pelanggan_alamat
1_harga tidak boleh diawali angka
%barang symbol % tidak boleh digunakan
NamaPelanggan tidak boleh menggunakan spasi
case package return new
this public break class
Modul Pemrograman Berorientasi Objek
Laboratorium Teknologi Jaringan Page 5
Perbandingan <, <=, >, >=,= =, !=
Bitwise AND, OR, XOR &, |, ^
Kondisional AND, OR &&, ||
Operator penugasan (assignment) =
 Operator concatenation : Java menyediakan operator penghubung berupa tanda (+)
yang digunakan untuk menyambung string.
e. Output dan Input Data
 Output data : menggunakan objek out untuk menampilkan program langsung
 Input data : menggunakan kelas pustaka java IOExcepion, InputStreamReader,
BufferedReader
3. Latihan (Praktekkan listing program berikut dan tulis hasil serta analisa program
pada lembar laporan)
 Pendefenisian variable char Analisa Program
 Untuk menuliskan konstanta bertipe char,
karakter ditulis dengan tanda petik tunggal
seperti „A‟
 Pendefinisian variable char adalah
char kar; / kar merupakan variable bertipe
char
 Tanda petik tunggal untuk deklarasi sebuah
data char, sedangkan petik ganda
mendeklarasikan string atau kumpulan karakter
. Contoh
char kode=‟A‟;
string nomorRumah=”15” ;
string Negara = “Indonesia”;
 Pemberian nilai karakter menggunakan nilai
ASCII dari karakter tersebut, karakter „F‟
mempunyai nilai ASCII = 70 , deklarasinya
kar=70;
 System.out.println(kar) mendeklarasikan nilai
dari variable „kar‟
Modul Pemrograman Berorientasi Objek
Laboratorium Teknologi Jaringan Page 6
BAB 3 FLOWCONTROL
1. Tujuan
 Praktikan mengenal beberapa perintah untuk seleksi kondisi
 Praktikan mampu menggunakan bernagai conditional statement
2. Dasar Teori
A. Percabangan
 Pernyataan bentuk if :
if (kondisi)
Pernyataan;
 Pernyataan bentuk if else :
if (condition)
statement;
else
statement;
 Bentuk Nested If Else(if bersarang):
if (condition){
if (condition)
statement;
else
statement;
}
else {
if (condition)
statement;
else
statement;
}
 Bentuk Else if :
if (condition){
statement(s);
}
else if (condition)
statement;
else if (condition){
statement(s);
}
else
statement4;
Terdapat empat pilihan:
• if
• else if
• else if
• else
 Switch :
switch (identifier) {
case value1:
statements;
break;
case value2:
statements;
break;
default:
statements;
break;
}
Terdapat tiga pilihan tergantung pada
nilai variabel identifier:
• Value1
• Value2
• Default
B. Perulangan
 While loop :
Modul Pemrograman Berorientasi Objek
Laboratorium Teknologi Jaringan Page 7
while (condition) {
statement(s);
}
 Do While Loop :
do {
statement(s);
} while (condition);
 For Loop
for (initial; condition; post-iteration) {
statement(s);
}
 Nested Loop : terjadi ketika terdapat loop di dalam loop. Dengan demikian, jumlah perulangan
yang terjadi lebih banyak; yaitu perkalian antara loop yang di dalam dengan loop yang di luar.
C. Branching Statement
Branching statement digunakan untuk menginterupsi proses yang sedang berjalan. Terdapat tiga
jenis branching dalam Java:
 break : digunakan pada pencabangan maupun perulangan. Jika statement break dieksekusi,
pencabangan atau perulangan akan dihentikan.
 Continue : jika terjadi continue, statement akan dilewati dan alur program kembali ke evaluasi
kondisi.
 Return : Return dibutuhkan untuk keluar dari method
3. Latihan (Praktekkan listing program berikut dan tulis hasil serta analisa program
pada lembar laporan)
statement if
{
int nilai = 70;
if (nilai >=60) {
System.out.println(“Nilai=” +
nilai + “lulus ujian”);
}
}
Statement if-else
Int pembelian =110;
System.out.println (“Jumlah pembelian
= “ + pembelian);
If (pembelian>= 100) {
System.out.println (“Diskon = 20%);
}
else{
System.out.println (“Diskon= 5%);
}
Statement nested if else
if (isSurplus == 0)
if (salesTotal < 10000000)
komisi = 0.02;
else
komisi = 0.04;
else
if (salesTotal < 10000000)
komisi = 0.03;
else
komisi = 0.06;
Statement else if
int nilai;
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");
Modul Pemrograman Berorientasi Objek
Laboratorium Teknologi Jaringan Page 8
BAB IV KONSEP BERORIENTASI OBJEK
1. Tujuan
 Praktikan memahami konsep pemrograman berorientasi objek
 Mengenal pewarisan dan overriding untuk membedakan OOP
 Mengenal objek dan kelas
2. Dasar Teori
a. Pemrograman berorientasi objek : berorientasikan kepada objek, jadi semua data dan
fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek.
b. Kelas dan Objek
 Kelas : dengan satu atau lebih objek di dalamnya, didefinisikan sebagai sesuatu yang
mempunyai data (sifat) dan fungsi (kelakuan).
Konsep pewarisan (inheritance): Proses pembentukan kelas baru dari kelas yang sudah
ada menjadi kelas Superclass dan kelas Subclasses. Proses pembentukan kelas
menghasilkan hierarki kelas yaitu puncak hierarki yang disebut kelas abstrak.
Konsep overriding : Objek subclass dapat melakukan perubahan perilaku dari metode
yang diwarisinya dari objek superclass-nya.dimanfaatkan pada kasus inheritance dimana
penamaan method yang sama namun berbeda implementasi.
 Objek : instance dari sebuah kelas, objek berisi semua variable dalam kelas/
Variable kelas: digunakan bersama-sama oleh semua objek dalam kelas
Variable objek: disebut instance variable dimana semua objek mempunyai salinan
variable dari pendefinisian dalam kelas.
Variable static: tidak dapat diubah oleh subkelas
 Metode : terdapat 2 macam metode dan 1 metode pengendali
Metode kelas: dapat dieksekusi meskipun tidak terdapat objek pada kelas tersebut
Metode objek: metode hanya dapat dieksekusi sehubungan dengan objek tertentu
Metode main() : digunakan saat aplikasi java dimulai, berupa keyword static
c. Instansiasi Objek : mendeklarasikan variabel yang digunakan sebagai referensi ke objek
dari kelas bersangkutan. menginstansiasi kelas dengan menggunakan operator new dan
memasukkan instance-nya ke dalam variable referensi yang baru saja dideklarasikan
d. Latihan (Praktekkan program berikut, tulis hasil di lembar laporan serta analisa
program)
Mendefinisikan objek dalam
kelas(instansiasi)
Nama kelas
Variable instance
Modul Pemrograman Berorientasi Objek
Laboratorium Teknologi Jaringan Page 9
Buatlah file Rumah.java dan file Isirumah.java
Pada program diatas menjelaskan kelas main memanggil fungsi lain. Pada file Rumah, terdapat kelas
Rumah dan deklarasi metode r_tamu dan k_mandi. Keyword void tidak mengembalikan nilai metode.
Pada file Isirumah di deklarasikan variable Panggil sebagai objek referensi ke metode k_mandi.
Operator titik (.) untuk mengakses (instance variable dan method). Pada Rumah.r_tamu dan
Panggil.k_mandi
program variable instance dan kelas Analisa Program
 Variable instance dideklarasikan
setelah dekalarasi kelas , tetapi
sebelum deklarasi metode. Pada
program , setiap objek berasal dari
kelas Kucing memiliki variable
Nama, Warna, Berat
 Variable Nama dan Warna bertipe
data string dan variable Berat
interger,
 Membuat objek baru dengan variable
instance kucingku
 Operator titik (.) untuk mengakses
(instance variable dan method).
Kucingku.Nama=”cepot”
kelas
Objek berisi variable instance
Menset nilai
variable instance
Metode
main
kelas
metode
metode
Modul Pemrograman Berorientasi Objek
Laboratorium Teknologi Jaringan Page 10
 Setiap objek atau instance dari suatu kelas akan memiliki salinan data sendiri-sendiri. Ini
artinya, antara objek yang satu dengan yang lainnya, nilai data-datanya bisa berbeda.
Perhatikan kode program di bawah ini.
Contoh instansiasi lebih dari satu objek dari satu kelas yang sama
 Variabel referensi : kelas digunakan untuk mendeklarasikan sebuah variabel yang
berupa objek. Variabel yang berupa objek ini sering disebut dengan referensi objek
(object reference).
 Mengisi Nilai pada Referensi Objek:
variabel karyawan002 sebagai referensi ke objek yang ditunjuk oleh karyawan001. Dengan
demikian, variabel karyawan001 dan karyawan002 masing-masing menunjuk ke objek
Karyawan yang sama. Maka dari itu, setiap perubahan yang terjadi pada objek yang
bersangkutan melalui karyawan001 akan berpengaruh juga pada objek yang ditunjuk oleh
karyawan002, karena keduanya sebenarnya adalah objek yang sama, begitu juga sebaliknya.
public class PengaruhReferensiObjek1 {
public static void main(String[] args) {
/*Instansiasi 2 objek referensi yang mengacu pada 1 objek karyawan */
Karyawan Karyawan001 = new Karyawan();
Karyawan Karyawan002 = Karyawan001;
//mengisi data Objek Karyawan melalui objek referensi 1
Karyawan001.nama = "Mischella";
Karyawan001.divisi = "HRD";
//mencetak data object karyawan yang di acu 2 objek referensi
System.out.println("Data Karyawan001");
System.out.println("Nama : " + Karyawan001.nama);
System.out.println("Divisi : " + Karyawan001.divisi);
System.out.println(" ");
System.out.println("Data Karyawan002");
System.out.println("Nama : " + Karyawan002.nama);
System.out.println("Divisi : " + Karyawan002.divisi);}}
Karyawan Karyawan001,Karyawan002;
Karyawan001 = new Karyawan();
Karyawan002 = Karyawan001;
Deklarasi variable referensi ke objek karyawan
Objek karyawan menyimpan referensinya ke
var karyawan001
memasukkan karyawan001 ke dalam karyawan002
Modul Pemrograman Berorientasi Objek
Laboratorium Teknologi Jaringan Page 11
BAB V PENGGUNAAN VARIABEL OLEH METHOD
1. Tujuan
 Praktikan memahami konsep penggunaan variable oleh metode
 Mengenal parameter-parameter suatu metode
 Mengenal argument dan nilai kembalian
2. Dasar Teori
 Konsep Method
Dalam Java, kelas berisi kumpulan data dan method, yang selanjutnya akan saling bekerja
sama dalam melakukan tugas-tugas spesifik tertentu sesuai dengan perilaku objek yang
dimodelkan.Bentuk umum dari pembuatan method di dalam kelas.
tipe namaMethod(daftar-parameter) {
//kode yang akan dituliskan
}
 Pengembalian nilai
Java method terbagi menjadi dua: void dan non-void. Method void adalah method yang tidak
mengembalikan nilai, sedangkan method non-void adalah method yang mengembalikan nilai.
Jika method yang kita buat ditujukan untuk mengembalikan suatu nilai tertentu, maka di
dalam method tersebut harus terdapat statemen return, yang diikuti dengan nilai yang akan
dikembalikan, seperti berikut:
return nilaiKembalian;
 Metode berparameter
Pada kenyataannya sebagian besar method yang ditulis dalam program memiliki satu atau
beberapa parameter. Dengan adanya parameter, sebuah method dapat bersifat dinamis dan
general. Artinya, method tersebut dapat mengembalikan nilai yang beragam sesuai dengan
nilai parameter yang dilewatkannya.
 Constructor
Constructor adalah method khusus yang didefinisikan di dalam kelas dan akan dipanggil
secara otomatis tiap kali terjadi instansiasi objek. Constructor itu sendiri berfungsi untuk
melakukan inisialisasi nilai terhadap data-data yang terdapat pada kelas yang
bersangkutan. Jika kita tidak mendefinisikan constructor pada kelas yang kita buat, maka
secara otomatis Java akan membuatkannya untuk kita. Constructor semacam ini
dinamakan dengan default constructor
 Keyword This
Java menyediakan kata kunci this. this merupakan referensi ke objek yang sedang aktif.
this digunakan di dalam method untuk mewakili nama kelas bersangkutan.
 Overload terhadap method dan constructor
Parameter dalam suatu method dikatakan berbeda dari method yang lainnya apabila:
 Jumlahnya berbeda, meskipun tipe datanya sama
 Tipe datanya berbeda, meskipun jumlahnya sama
 Jumlah dan tipe datanya berbeda
Prose pendefinisian method dengan nama sama ini disebut dengan overload
double volumeTabung() {
return (3.14 * 7 * 7 * 10);
}
double volumeTabung(int jejari, int tinggi) {
return (3.14 * jejari * jejari * tinggi);
}
Method tidak berparameter hanya dapat
digunakan untuk tabung yang memiliki jari-
jari alas 7 dan tinggi 10
Method berparameter
dapat digunakan untuk
segala ukuran tabung.
Modul Pemrograman Berorientasi Objek
Laboratorium Teknologi Jaringan Page 12
 proses overload diaplikasikan ke dalam constructor suatu kelas. Hal ini disebabkan
karena sebenarnya constructor juga adalah sebuah method yang mengembalikan tipe
kelas (dirinya sendiri).
3. Latihan
Penambahan method void pada deklarasi
kelas Karyawan
public class Karyawan {
String ID, nama, divisi;
Double gaji;
void cetakData() {
System.out.println("Data Karyawan ");
System.out.println("ID : " + ID);
System.out.println("Nama : " + nama);
System.out.println("Divisi : " + divisi);
System.out.println("Gaji : " + gaji);
}}
Contoh pemanggilan method void
public class ImplementasiMethodVoid {
public static void main(String[] args) {
//instansiasi objek karyawan
Karyawan Karyawan001 = new
Karyawaan();
//mengisi data pada objeck karyawan
Karyawan001.ID = "K001";
Karyawan001.nama = "Agus Ramadhan";
Karyawan001.divisi = "Keuangan";
Karyawan001.gaji = 1850000;
//memanggil method cetakData();
Karyawan001.cetakData();
}
}
implementasi method non-void dengan return
public class Karyawan {
String ID, nama, divisi;
double gaji;
void cetakData() {
System.out.println("Data Karyawan : ");
System.out.println("ID : " + ID);
System.out.println("Nama : " + nama);
System.out.println("Divisi : " + divisi);
System.out.println("Gaji : " + gaji);
}
double hitungSumbanganZakat() {
double zakat = gaji * 0.025;
return zakat;
}
Pemanggilan method non-void
public class ImplementasiMethodNonVoid {
public static void main(String[] args) {
//instantiasi objek Karyawan
Karyawan karyawan001 = new Karyawan();
//mengisi data pada objek Karyawan
karyawan001.ID = "K001";
karyawan001.nama = "Agus Ramadhan";
karyawan001.divisi = "Keuangan";
karyawan001.gaji = 1850000;
//memanggil method cetakDAta()
karyawan001.cetakData();
//memanggil method hiungSumbanganZakat()
System.out.println("Sumbangan Zakat : " +
karyawan001.hitungSumbanganZakat());
}
}
Implementasi method dengan parameter pada
kelas Karyawan
public class Karyawan {
String ID, nama, divisi;
double gaji;
void isiData(String kode, String Nama, String
Div, double Gaji) {
ID = kode;
nama = Nama;
divisi = Div;
gaji = Gaji;
}
void cetakData() {
System.out.println("Data Karyawan : ");
System.out.println("ID : " + ID);
System.out.println("Nama : " + nama);
System.out.println("Divisi : " + divisi);
System.out.println("Gaji : " + gaji);
}
Pemanggilan method berparameter pada kelas
Karyawan
public class ImplementasiMethodBerparameter {
public static void main(String[] args) {
//instatiasi objek Karyawan
Karyawan karyawan001 = new Karyawan();
/*mengisi data pada objek Karyawan
melalui method isiData()*/
karyawan001.isiData("k001", "Rommy",
"Marketing", 2350000);
//memanggil method cetakData();
karyawan001.cetakData();
}
}
Modul Pemrograman Berorientasi Objek
Laboratorium Teknologi Jaringan Page 13
double hitungSumbanganZakat() {
double zakat = gaji * 0.025;
return zakat;
}
}
Deklarasi kelas Karyawan dengan constructor
public class Karyawan {
String ID, nama, divisi;
double gaji;
//constructor kelas karyawan
Karyawan() {
ID = "k001";
nama = "Budi";
divisi = "Produksi";
gaji = "1750000";
}
void cetakData() {
System.out.println("Data
Karyawan :");
System.out.println("ID
: " + ID);
System.out.println("Nama
: " + nama);
System.out.println("Divisi : " +
divisi);
System.out.println("Gaji
: " + gaji);
}
double hitungSumbanganZakat()
{
double zakat = gaji *
0.025;
return zakat;
}
}
Deklarasi kelas Karyawan dengan constructor
dinamis
public class Karyawan {
String ID, nama, divisi;
double gaji;
//constructor kelas Karyawan
Karyawan(String kode, String
Nama, String Div, double Gaji) {
ID = kode;
nama = Nama;
divisi = Div;
gaji = Gaji;
}
void cetakData() {
System.out.println("Data
Karyawan :");
System.out.println("ID
: " + ID);
System.out.println("Nama
: " + nama);
System.out.println("Divisi : " +
divisi);
System.out.println("Gaji
: " + gaji);
}
double hitungSumbanganZakat()
{
double zakat = gaji *
0.025;
return zakat;
}
}
Modul Pemrograman Berorientasi Objek
Laboratorium Teknologi Jaringan Page 14
BAB VI VARIABEL TERHADAP PERILAKU OBJEK
1. Tujuan Praktikum
 Praktikan dapat mengimplementasikan enkapsulasi
 Dapat membedakan antara instance variable dan local variable
 Praktikan mampu menggunakan beberapa operator dan method yangmenyertai
penerapan array dan string.
2. Dasar teori
1. Implementasi Enkapsulasi(pembungkusan)
Suatu cara untuk meyembunyikan informasi detail dari suatu class, berupa information
hiding dan interface to acsess data.Hak akses data dan perilaku objek memiliki tingkatan:
 Metode serta variable bersifat private: atribut kelas hanya dapat di akses oleh metode
dalam kelas dimana di definisikan
 Metode serta variable bersifat public : variabael dan metode dapat diakses dari dalam
maupun luar kelas
 Metode serta variable bersifat protected: atribut kelas hanya dapat di akses oleh kelas
dan subkelas tersebut
 Metode serta variable bersifat default : hanya kelas dalam paket dapat mengakses
variable dan metode kelas
Pada enkapsulasi membuat variable bersifat private dan melakukan perubahan terhadap
atribut yang di beri hak akses dengan cara membuat suatu interface berupa metode untuk
menginisialisasi nilai dari suatu atribut disebut interface to acsess data. Secara umum,
pembungkusan data dan method dari suatu kelas dapat dituliskan seperti berikut:
class NamaKelas {
tingkat-akses data1;
tingkat-akses data2;
….
tingkat-akses dataN;
tingkat-akses method1(daftar-parameter) {
//kode untuk method1
}
tingkat-akses methodN(daftar-parameter) {
//kode untuk methodN
}
….
tingkat-akses methodN(daftar-parameter) {
//kode untuk methodN
}
}
2. Inisialisasi instan variable dan local variabel
Untuk pengaksesan data di luar, metode statis dapat mengakses data statis dari kelas dan
metode non statis dapat mengakses data setiap kelas.
 Variabel instan : sama dengan variable kelas tetapi tidak menggunakan keyword static
 Variabel local : dideklarasikan dan digunakan hanya di dalam badan metode tertentu.
Static modifier: atribut atau metode sama untuk semua objek dari kelas tertentu
Modul Pemrograman Berorientasi Objek
Laboratorium Teknologi Jaringan Page 15
Final modifier: memberikan spesifikasi bahwa variable mempunyai nilai konstan sama.
Abstract: metode tidak dapat dijalankan dan harus digunakan subkelas yang tidak abstrak
3. Kelas di dalam Kelas (Inner Class)
Java mengizinkan untuk mendefinisikan suatu kelas di dalam kelas lainnya. Kelas semacam
ini dinamakan sebagi inner class (kelas bagain dalam). Inner class dapat mengakses data dan
method dari kelas yang berada di bagian luarnya, meskipun data dan method tersebut bersifat
private.
4. Penerapan operator dan method yang menyertai array dan string.
Perilaku objek pada suatu array sama seperti objek-objek lainnya. Perbedaan dalam
mengakses data
a. Array : tipe data yang digunakan apabila data diberikan berupa kelompok data yang
disajikan secara berurutan.
tipe_data nama_variabel_array[]
Untuk mengetahui jumlah elemen dari sekelompok data yang bertipe array, dapat
digunakan perintah length .Sintaks:
nama_variabel_array.length
Array untuk dua dimensi
b. String : String merupakan deretan karakter. Pada java, string merupakan objek dari kelas
String. Penulisan string dilakukan dengan mengapit data menggunakan tanda petik
(ganda).
String judul = “Pemrograman Berorientasi Objek”;
c. Latihan
program yang menunjukkan pengaruh
dari tingkat akses public dan private di
dalam suatu kelas
//deklarasi kelas mahasiswa
public class Mahasiswa {
int nim;
public String nama;
private double ipk;
public void setIPK(double nilai)
{
ipk = nilai;
}
public double getIPK() {
return ipk;
}
}
terdapat tanda error (yang bergaris bawah) yang
menandakan bahwa variabel ipk tidak bisa
diakses secara langsung karena didefinisikan
menggunakan hak akses private
tingkat akses data dan method pada kelas
Mahasiswa
public class PengaruhHakAkses {
public static void main(String[]
args) {
Mahasiswa Yahya = new
Mahasiswa();
//BENAR, karena nim secara
default bersifat public
Yahya.nim = 1009;
//BENAR, karena nama bersifat
public
Yahya.nama = "Yahya Al-
Mahandiz";
Yahya.ipk = 3.77;//SALAH,karena
ipk bersifat private
//BENAR, karena method setC()
bersifat public
Yahya.setIPK(3.77);
System.out.println("NIM : " +
Yahya.nim);
System.out.println("Nama : " +
Yahya.nama);
System.out.println("IPK : " +
Yahya.getIPK());
}}
tipe_data nama_variabel_array[][]
Modul Pemrograman Berorientasi Objek
Laboratorium Teknologi Jaringan Page 16
implementasi data dan method statis
public class ContohStatic {
static int dataA = 10;
static int dataB = 7;
int dataC = 4;//data non-statik
static void test() {
int dataC = dataA + dataB;
System.out.println("dataA +
dataB = " + dataC);
//System.out.println("dataC
= "+dataC);
//SALAH, karena dataC non-
statik
}
public static void main(String[]
args) {
test();
}
}
dapat memanggil method test() tanpa harus
membuat objek dari kelas ContohStatic. method
test() tidak dapat mengakses dataC, karena data
tersebut tidak dideklarasikan sebagai data statis.
 Deklarasi kelas yang menggunakan data
dan method statis
public class RobotStatic {
static String nama;
static String asalNegara;
static void test() {
System.out.println("Hello..");
System.out.println("Saya adalah
robot " + nama);
System.out.println("Saya berasal
dari " + asalNegara);
}
}
 pemanggilan data dan method statis
public class ContohStatic2 {
public static void main(String[]
args) {
RobotStatic.nama = "Gathotkaca";
RobotStatic.asalNegara =
"Indonesia";
RobotStatic.test();
}
}
program untuk array satu dimensi.
public class Array {
public static void main(String[]
args) {
int [] array = {2,5,6,3,2};
for(int i =0;
i<array.length; i++) {
System.out.println("Array
ke" +i+ " " +array[i]);
}
}
}
program untuk string
public class Kata {
public static void main(String[] args) {
String[]teks={"anita","jakarta","jl.damai","gg.satu","45" };
for (int i = 0; i<teks.length; i++) {
System.out.println("Elemen ke"+i+ " " +teks[i]);
}
}
}
Program array 2 dimensi
public class Dimensi2
public static void main (String[ ] args)
int [ ] [ ] bilangan = {
{1, 5, 2, 9, 7},{2, 9, 5, 8, 9},
{34, 17, 10, 89, 67},{14, 71, 24, 92, 10}};
//Menampilkan nilai array
for (int i = 0; i < 4; i++){
for(int j = 0; j < 5; j ++) {
System.out.print (bilangan[i][j] + " ");
System.out.println();
}
}
Program menghitung string
public static void main(String[] args) {
String A="pemrograman berorientasi objek";
String B="laboratorium jaringan";
String C="Sekolah Vokasi";
int nA= A.length();
int nB=B.length();
System.out.println(A+"panjang string="+nA);
System.out.println(B+"panjang string="+nB);
System.out.println(C+"panjang string="+C.length());
}
}
Modul Pemrograman Berorientasi Objek
Laboratorium Teknologi Jaringan Page 17
BAB VII INHERITANCE
1. Tujuan Praktikum
 Praktikan dapat membedakan pemakaian overloading dan overriding.
 Praktikan mampu menerapkan konsep pewarisan, overloading dan overriding
dalam pemrograman dengan Java.
 Praktikan mampu menerapkan konsep pewarisan, overloading dan overriding
dalam pemrograman dengan Java.
2. Dasar teori
a. Pewarisan (inheritance) adalah suatu cara pembuatan class baru dengan menggunakan
kembali class yang sudah didefinisikan sebelumnya dengan menambahkan atribut dan
method baru.Pada konsep pewarisan ada beberapa istilah yang perlu diketahui,yaitu:
 Sub class, digunakan untuk menunjukkan class anak atau turunan secara hirarkis dari
super class.
 Super class, digunakan untuk menunjukkan class induk secara hirarkis dari sub class
(class anak).
 Extends, digunakan untuk menunjukkan bahwa suatu class merupakan turunan dari class
lain. Misal A extends B, berarti class A adalah turunan dari class B. A merupakan
subclass, sedangkan B merupakan superclass.
 Super, digunakan untuk memanggil konstruktor dari super class atau memanggil variabel
yang mengacu pada super class. Misal super(x,y,z), berarti atribut x, y, dan z diambil dari
atribut pada class induk.
b. Cara Pewarisan Kelas.
Kelas turunan secara prinsip dapat dibuat dengan menggunakan bentuk :
Class KelasTurunan extends KelasDasar{
Tubuh kelas
}
c. Pemanggilan construktor Super Kelas
Superkelas tidak mengandung konstruktor. Untuk itu digunakan kata kunci super.
Super (nama , nim )
Pemanggilan konstruktor kelas dasar harus memenuhi persyaratan berikut :
 Pemanggilan dengan super seperti diatas hanya bisa dilakukan pada konstruktor.
 Pemanggilan konstruktor superkelas harus berkedudukan sebagai pernyataan
pertama dalam konstruktor.
d. Overriding
Overriding adalah suatu cara untuk mendefinisikan ulang method yang ada pada class
induk apabila class anak menginginkan adanya informasi yang lain. Overriding dilakukan
dengan cara menulis ulang method yang ada pada class induk dengan syarat bahwa nama
dan parameter fungsi tersebut harus sama (tidak boleh diubah). Meskipun fungsi telah
ditulis ulang oleh class anak, fungsi yang asli pada class induk masih dapat dipanggil di
class anak dengan menggunakan class super.
e. Overloading
Overloading fungsi adalah penulisan beberapa fungsi (dua atau lebih) yang memiliki
nama yang sama. Pada bahasan overloading dikenal istilah signature. Signature sebuah
fungsi adalah parameter lengkap dengan tipe datanya yang terdapat dalam fungsi tersebut.
Misal terdapat fungsi:
public int jumlahMahasiswa (int laki2, int
perempuan,
String kelas);
maka signature dari fungsi tersebut adalah (int, int, String). Suatu fungsi dikatakan di-
overload manakala terdapat beberapa fungsi dengan nama yang sama namun memiliki
signature yang berbeda-beda, sebagai contoh:
Modul Pemrograman Berorientasi Objek
Laboratorium Teknologi Jaringan Page 18
public void infoMahasiswa (int laki2, int perempuan,
String
kelas)
{
...
}
public void infoMahasiswa (int mhsLama, int mhsBaru, int
mhsCuti, int angkatan)
{
...
}
f. Latihan
1. Contoh Kasus Pewarisan
Menunjukkan hirarki kelas dosen., memiliki turunan berupa kelas rektor, kelas dekan dan
kelas kalab. class induk (class dosen) memiliki atribut nama, nik dan jurusan. Method
yang dimiliki oleh class dosen adalah view(). Class turunan dari class dosen ada tiga
class. Pada class rektor, terdapat tambahan atribut berupa th_mulai dan jabatan_ke, serta
method viewRektor(). Pada class dekan terdapat tambahan atribut fakultas, dan method
viewDekan(). Pada class kalab terdapat tambahan atribut laboratorium, dan method
viewKalab().
DOSEN
nama
nik
jurusan
View()
DEKAN
fakultas
Viewdekan()
KALAB
laborat
Viewkalab()
REKTOR
Th_mulai
Jabatan
Viewrektor()
Pendefinisian class dosen
Public class Dosen {
protected String nama
protected String nik;
protected String jurusan;
Dosen (String namaX, String nikX, String
jurX)
{
nama = namaX;
nik = nikX;
jurusan = jurX;}
public void view() {
System.out.println(“Nama : “ +nama);
System.out.println(“nik : “ +nik);
System.out.println(“jurusan : “ +jurusan)
Pendefinisian class rektor
public class rector extends Dosen{
private int th_mulai;
private int jabatan_ke;
Rektor (String namaX, String nikX,
String jurX, int thX, int keX){
super(namaX, nikX, jurX);
{th_mulai = thX;
jabatan_ke = keX;
}
public void viewrektor(){
System.out.println(“Th mulai jabatan:”
+th_mulai);
System.out.println(“jabatan rector
ke:” +jabatan_ke);
Memanggil variable
yang mengacu pada
dosen (super class)
Constructor
untuk kelas
Dosen
Method yang akan
dilkukan overriding Overriding metode view
pada superclass dosen
Modul Pemrograman Berorientasi Objek
Laboratorium Teknologi Jaringan Page 19
Pendefinisian kelas dekan
public class Dekan extends Dosen{
private String fakultas;
Dekan(String namaX, String nikX, String
jurX, String fakX){
super(namaX, nikX, jurX);
fakultas = fakX;
}
public void viewdekan(){
System.out.println(“Fakultas :
“+fakultas):
}
}
Pendefinisian class kalab
Public class kalab extends Dosen{
Private String laboratorium;
Kalab (String namaX, String nikX,
String jurX, String labX){
Super(namaX, nikX, jurX);
Laboratorium = labX;
}
Public void view kalab(){
System.out.println(“laboratorium :
“+laboratorium);
}
}
Pewarisan pada kelas dosen
public class Main{
public static void main(String[] args){
Rektor rek = new Rektor(“Ahmad”,
“005343594”,”informatika”, 2006,2);
Dekan dek = new Dekan (“Dina”,
“932221234”,”T.Kimia”,”TI”);
Kalab lab = new Kalab
(“Indah”,”068336234”,”Informatika”,”KSC”);
rek.view();
rek.viewrektor();
dek.view();
dek.viewdekan();
lab.view();
lab.viewkalab();
}
}
Contoh overloading (1)
Public class mahasiswa{
Public void infoMahasiswa(int laki2,
int pr, String kelas){
Int jumlah = laki2 + pr;
System.out.prinyln(“jumlah mhasiswa=”
+jumlah);
}
Public void infoMahasiswa(int mhsLama,
int mhsbaru, int mhsCuti, int
angkatan){
Int jumlah = mhsLama+mhsBaru+mhsCuti);
System.ou.println(“sampai tahun”
+angkatan+ “jumlah mahasiswa”
+jumlah);
}
}
Contoh overloading (1)
public class Main {
public static void main(String[] args){
mahasiswa M= new mahasiswa();
M.infoMahasiswa(60,18,”kelas A angkatan
2013”):
M.infoMahasiswa(1000,400,25,2008);
}}
Pada class tersebut terdapat dua subclass
dengan nama yang sama yaitu infoMahasiswa
namun memiliki signature yang berbeda.
Subclass pertama digunakan untuk menghitung
jumlah mahasiswa kelas A angkatan 2008.
Sedangkan pada subclass kedua digunakan
untuk menghitung jumlah mahasiswa aktif
sampai tahun 2008.
Overloading fungsi ditentukan oleh signature
nya, tidak ditentukan oleh nilai balikan fungsi.
Dalam satu class, apabila ada dua atau lebih
fungsi yang memiliki nilai balikan yang
berbeda namun memiliki signatue yang sama,
maka fungsi tersebut tidak dapat dikatakan
sebagai overloading.
Pemanggilan
konstruktor
Pemanggilan
method di setiap
subclass
overloading
Modul Pemrograman Berorientasi Objek
Laboratorium Teknologi Jaringan Page 20
BAB VIII POLIMORFISME
1. Tujuan Praktikum
 Mampu membuat method Polimorfisme untuk implementasi listingcode yang berbeda
sesuai dengan behavior masing- masing kelas.
 Mampu membuat Variabel instans sebagai penentu akses pada kelas public, kelas private
dan protected
2. Dasar teori
 Polimorfisme
Polimorfisme adalah kemampuan mengungkap suatu hal yang berbeda melalui satu cara
yang sama. Apabila mempunyai objek yang bertipe superkelas, variable objek ini bisa
diisi dengan objek superkelas ataupun objek subkelas tanpa perlu melakukan perubahan
tipe.Pada polimorfisme kondisi yang harus terpenuhi supaya fungsi dapat dijalankan
yaitu:
1. Semua kelas diturunkan dari suatu kelas yang sama
2. Method yang dipanggil harus melalui variabel dari super class.
3. Method yang dipanggil juga harus merupakan method yang ada pada super class.
4. Signature method harus sama baik yang ada pada super class maupun di subclass.
5. Method access attribute pada subclass tidak boleh lebih terbatas daripada yang ada
pada super class.
Program polimorfisme(1)
class Binatang{
public void info() {
System.out.println(" Info tentang
Hewan : ");
}
} class Herbivora extends Binatang {
public void info() {
System.out.println ("Info pada
herbivora: Memakan makanan
berupa tumbuh - tumbuhan");
}
}
class Kelinci extends Herbivora{
public void info(){
System.out.println("Info pada Kelinci:
Memakan makanan berupa
wortel");
}
}
public class Polimorfisme {
public static void main(String[] args)
{
Herbivora herbivora;
Kelinci kelinciku;
Binatang hewan;
herbivora=new Herbivora();
kelinciku=new Kelinci();
hewan=herbivora;
hewan.info();
hewan=kelinciku;
hewan.info();
}
}
Program polimorfisme (2)
Pendefinisian class kendaraan
public class kendaraan {
private String model;
public kendaraan (String model){
this.model = model;
}
Public void informasi(){}
}
merupakan program untuk membangun class
kendaraan. Pada class kendaraan mewarisi ke tiga
class, yaitu class pesawat, mobil, dan kapal.
Pendefinisian class pesawat
Public class pesawat extends kendaraan{
Private String nama;
Private String jenis;
}
Public pesawat(String nama){
Super(“pesawat”);
This.nama = nama;
Jenis = “belum teridentifikasi”;
}
Public pesawat (String nama, String
jenis){
Super(“pesawat”);
This.nama=nama;
This.jenis=jenis;
}
Public void informasi(){
System.out.println(“nama pesawat
adalah”+nama);
System.out.println(“jenis pesawat
adalah”+jenis);}}
Modul Pemrograman Berorientasi Objek
Laboratorium Teknologi Jaringan Page 21
Program polimorfisme (3)
Pendefinisian Kelas manusia
/*
Disimpan dalam file “manusia.java”
*/
public class manusia
{
public String nama;
public manusia(String n)
{
this.nama = n;
}
public String tampilkanNama()
{
return nama;
}
public void makan()
{
System.out.println("Nyam... nyam...
nyam...");
}
public void kerja()
{
System.out.println("Kerja...kerjaaa...");
}
}
Sebagai contoh kelas manusia diturunkan
menjadi kelas: programmer, tentara
/*
Disimpan dalam file “programmer.java”
*/
public class programmer extends manusia{
public programmer(String n){
super(n);
}
public void kerja(){
System.out.println("Tak…Tak…Klik..");
}
public void bersantai(){
System.out.println("Game over, You
lose...");
}
}
polimorfisme untuk alat-alat transportasi
Pada program utama dilakukan pemanggilan
terhadap ketiga class tersebut, masing-masing dengan
parameter yang bersesuaian
Modul Pemrograman Berorientasi Objek
Laboratorium Teknologi Jaringan Page 22
/*
Disimpan dalam file “tentara.java”
*/
class tentara extends manusia
{
public String pangkat;
public tentara(String n, String p)
{
super(n);
this.pangkat= p;
}
public String tampilkanPangkat()
(4)
{
return pangkat;
}
public void kerja()
{
System.out.println("Dor... Dor...
Dor..");
}
}
dari manusia diturunkan kelas sopir. Kelas sopir
diimplementasikan dalam java
/*
Disimpan dalam file “sopir.java”
*/
public class sopir extends manusia
{
public sopir(String n)
{
super(n);
}
public void kerja()
{
System.out.println("Ngung... Ngung...
Ngung...Ciiit..");
}
}
Dedi adalah seorang sopir keturunan
manusia, untuk menginstantiasi objek dedi
ditunjukkan
dalam kode berikut.
/*
Disimpan dalam file “dedi.java”
*/
public class dedi
{
public static void main(String arg[])
{
sopir dedi= new sopir("Dedi");
System.out.println("Nama= "+
dedi.tampilkanNama());
dedi.makan();
dedi.kerja();
}
}
Kemudian Andi sang programmer, Badu sang tentara
dan Dedi sang sopir diperintahkan untuk bekerja, apa
reaksinya?
/*
Disimpan dalam file “pekerja.java”
*/
public class pekerja
{
public static void main(String args[])
{
manusia[] profesi= new manusia[3];
profesi[0]=new programmer("Andii");
profesi[1]=new tentara("Badu","Kopral");
profesi[2]=new sopir("Dedi");
for (int i=0; i<3; i++)
{
profesi[i].kerja();
}
}
}
Message sama yang dikirimkan ke objek berbeda
akan menghasilkan hasil yang berbeda, inilah
yang disebut polymorfisme.
Modul Pemrograman Berorientasi Objek
Laboratorium Teknologi Jaringan Page 23
BAB VIII INTERFACE
1. Tujuan Praktikum
 Memahami konsep pewarisan ganda
 Memahami konsep interface
 Mengimplementasikan Interface pada Java untuk melakukan pewarisan ganda
2. Dasar Teori
Untuk membuat suatu kelas dapat kita turunkan dengan pewarisan field-field dan metodh pada
base classnya. Bagaimana kita membuat kelas yang menurunkan sifat dari beberapa base class?
misalkan kita akan membuat kelas superman yang dia bisa membuat program layaknya
programmer, dia juga ahli menggunakan senjata layaknya tentara, bahkan dia bisa terbang seperti
elang (keturunan binatang)? Caranya adalah dengan pewarisan ganda. Dalam Java tidak dikenal
pewarisan ganda, sehingga digunakan interface.
/*
Disimpan dalam file "superman.java"
*/
interface programmer {
void memrogram();
}
interface tentara {
void menembak();
}
interface burung {
void terbang();
void buangKotoran();
}
class superman implements programmer,tentara,burung {
public void memrogram(){};
public void menembak(){};
public void terbang(){};
public void buangKotoran(){};
}
Kemudian kelas superman diinstantiasi menjadi objek bernama bejo, contoh kode
program
/*
Disimpan dalam file "bejo.java"
*/
public class bejo
{
public static void main(String arg[])
{
superman bj= new superman();
bj.memrogram();
{
System.out.println("Implementasi memrogram ...tak..tik");
}
bj.menembak();
{
System.out.println("Implementasi menembak ...dor..dor");
}
bj.terbang();
{
System.out.println("Implementasi terbang......Zap....");
}
}
}
Modul Pemrograman Berorientasi Objek
Laboratorium Teknologi Jaringan Page 24
Dalam kode diatas bejo menentukan sendiri cara mengimplementasi beberapa metodh dari
interface yang telah didefiniskan dalam kelas superman (misalkan cara memrogramnya
bagaimana, cara menembaknya bagaimana dan cara terbangnya seperti apa), selain itu bejo tidak
berminat untuk mengimplementasikan metodh buangKotorang dari interface burung (misalnya
karena burung biasa membuang kotorang di sembarang tempat). Jadi interface dapat
dianalogikan seperti menandatangani kontrak kerja, misalnya sebagai dosen dia wajib mengajar,
membuat soal ujian dsb, akan tetapi cara mengajarnya dan membuat soalnya dilakukan terserah
masing-masing dosen (tidak ditentukan dalam kontrak kerja).
Modul Pemrograman Berorientasi Objek
Laboratorium Teknologi Jaringan Page 25
BAB X INPUT DAN OUTPUT
1. Tujuan Praktikum
 Praktikan mampu mengenali dan memahami input dan output (I/O) dalam pemrograman
dengan Java.
 Mampu membuat sistem stream untuk penanganan operasi input/output, buffered stream
dan random accees file.
2. Dasar teori
 Stream
Operasi input dan output pada java menggunakan konsep aliran data,Aliran data sendiri
sudah di lakukan dan di pelajari pada bab-bab sebelumnya yaitu aliran data dari device
output dengan memanfaakan method println() pada objek System.out, dan device input pada
objek System.in dari kelas System Stream adalah aliran data yang berupa aliran byte atau
karakter, dari device input ke divice output pada saat program di eksekusi. Proses untuk
membaca data dari layar lalu memprosesnya pada saat program dijalankan serta
menampilkan hasil proses tersebut pada layar console dilakukan oleh kelas
InputStreamReader, kelas ini akan membaca data yang diketikkan oleh user melalui console
dan sekaligus memperlakukannya sebagai Stream, tahap yang dilakukan oleh kelas
InputStreamReader meliputi 3 langkah yaitu:
1. Membuat objek dari kelas InputStreamReader, dengan sintaks
InputStreamReader dataIn = new
InputStreamReader(System.in);
2. Menampung objek Stream ke buffer
BufferedReader bufIn = new BufferedReader(dataIn,1);
3. Membaca data dari objek Stream
String data = bufIn.readLine();
Inputan dan penyimpanan sementara data dari keybord untuk proses kemudian di outputkan
hasilnya bisa bermacam-macam cara antara lain:
1. Dengan melakukan langkah-langkah seperti InputStreamReader diatas dimana kita harus
membuat objek dari kelas InputStramReader, lalu menampung objek Stream ke buffer,
kemudian membaca data dari objek stream
import java.io.*;
public class Persegi1
{
public static void main(String args[])
{
try
{
System.out.print("masukkan panjang = ");
InputStreamReader pnj = new
InputStreamReader(System.in);
BufferedReader input1 = new BufferedReader(pnj,1);
String panj = input1.readLine();
int panjang=Integer.parseInt(panj);
System.out.print("masukkan Lebar = ");
InputStreamReader lbr = new
InputStreamReader(System.in);
BufferedReader input2 = new BufferedReader(lbr,1);
String lebr = input2.readLine();
int lebar=Integer.parseInt(lebr);
Modul Pemrograman Berorientasi Objek
Laboratorium Teknologi Jaringan Page 26
int luas=panjang*lebar;
System.out.println("Luas persegi = "+luas);
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
2. Selain itu juga ada cara untuk mengimputkan data dari console dengan memanfaatkan
kelas yang kita buat sendiri dimana kelas ini nantinya akan diwariskan pada suatu file
yang memanggil dan membutuhkan warisan dari kelasyang kita buat, sehingga proses
yang dilakukan oleh kelas InputStreamReader hanya ada pada kelas induk yang akan
mewarisi
import java.io.*;
public class InputConsole{
/**Membaca string dari keyboard*/
public static String readString(){
BufferedReader bfr = new BufferedReader(new
InputStreamReader(System.in),1);
// Menginisialisasi string
String string = " ";
// Get the string from the keyboard
try{
string = bfr.readLine();
}
catch (IOException ex){
System.out.println(ex);
}
// Mengembalikan string hasil pembacaan dari keyboard
return string;
}
/**Mengambil nilai int dengan parsing string input dari
keyboard*/
public static int readInt(){
return Integer.parseInt(readString());
}
//Mengambil nilai byte dengan parsing string input dari keyboard
public static byte readByte(){
return Byte.parseByte(readString());
}
//Mengambil nilai short dengan parsing string input dari keyboard
public static short readShort(){
return Short.parseShort(readString());
}
//Mengambil nilai long dengan parsing string input dari keyboard
public static long readLong(){
return Long.parseLong(readString());
}
//Mengambil nilai float dengan parsing string input dari
keyboard
public static float readFloat()
{
return Float.parseFloat(readString());
}
//Mengambil nilai double dengan parsing string input dari
keyboard
public static double readDouble(){
return Double.parseDouble(readString());
}
}
Membuat kelas pemanggil agar kelas induk diatas bisa berguna
public class Persegi2{
public static void main(String args[]){
int panjang;
int lebar;
int luas;
System.out.println("Masukkan Panjang = " );
panjang = InputConsole.readInt();
System.out.println("Masukkan Lebar = ");
lebar = InputConsole.readInt();
Modul Pemrograman Berorientasi Objek
Laboratorium Teknologi Jaringan Page 27
luas=panjang*lebar;
System.out.println("Luas Persegi = "+luas);
}
}
 Membaca Input Data Karakter
Untuk membaca input berupa karakter, kita bisa menggunakan method read() yang terdapat pula
pada kelas BufferedReader. Berikut ini contoh program yang akan menunjukkan bagaimana
menangani proses input data karakter.
Program dengan proses input data karakter
import java.io.*;
class DemoInputKarakter {
public static void main(String[] args) throws
IOException {
System.out.print("Masukkan sebuah karakter: ");
char KarakterInput;
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
KarakterInput = (char) br.read();
System.out.println("Karakter yang dimasukkan adalah '" +
KarakterInput + "'");
}
}
 Membaca Input Data String
Untuk membaca input berupa string, kita bisa menggunakan method readLine(), bukan method
read(). Berikut ini contoh program yang akan menunjukkan bagaimana menangani proses input
data string.
Program dengan proses input data string
import java.io.*;
class DemoInputString {
public static void main(String[] args) throws
IOException {
System.out.print("Masukkan nama Anda: ");
String namaInput;
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
namaInput = br.readLine();
System.out.println("Halo " + namaInput + "...");
System.out.println("Semoga Anda Sukses Selalu..");
}
}
 Membaca Input Data Numerik
Untuk membaca input berupa data numerik, kita bisa menggunakan method readLine() seperti
pada saat menangani input data string, dan selanjutnya string hasil input tersebut dikonversi ke
tipe numerik. Berikut ini contoh program yang akan menunjukkan bagaimana menangani proses
input data numerik.
Program dengan proses input data numerik
import java.io.*;
class DemoInputNumerik {
public static void main(String[] args) throws
IOException {
System.out.print("Masukkan sebuah bilangan bulat : ");
String temp;
int bilanganInput = 0;
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
// input data dianggap sebagai string
temp = br.readLine();
try {
// konversi dari string ke integer
bilanganInput = Integer.parseInt(temp);
} catch (NumberFormatException nfe) {
System.out.println("Nilai yang dimasukkan "
+ "bukan bilangan bulat");
System.exit(1);
}
System.out.println("Bilangan yang anda masukkan adalah " +
bilanganInput);
}}

Mais conteúdo relacionado

Mais procurados

Pertemuan 10 Kunjungan Pada Pohon Biner
Pertemuan 10 Kunjungan Pada Pohon BinerPertemuan 10 Kunjungan Pada Pohon Biner
Pertemuan 10 Kunjungan Pada Pohon BinerEndang Retnoningsih
 
Laporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQL
Laporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQLLaporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQL
Laporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQLShofura Kamal
 
SQL bertingkat
SQL bertingkatSQL bertingkat
SQL bertingkatBuguru4
 
Dasar dasar pengujian perangkat lunak
Dasar dasar pengujian perangkat lunakDasar dasar pengujian perangkat lunak
Dasar dasar pengujian perangkat lunakerwingmanplp
 
Ppt pengenalan dan pemrograman java
Ppt pengenalan dan pemrograman javaPpt pengenalan dan pemrograman java
Ppt pengenalan dan pemrograman javanur achlish rosyadi
 
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)Rakhmat Dedi Gunawan
 
Dbase (interaktif-command)
Dbase (interaktif-command)Dbase (interaktif-command)
Dbase (interaktif-command)Resti Audyanti
 
7. Queue (Struktur Data)
7. Queue (Struktur Data)7. Queue (Struktur Data)
7. Queue (Struktur Data)Kelinci Coklat
 
Laporan pembuatan Final Project (Java - Netbeans) "Rental CD"
Laporan pembuatan Final Project (Java - Netbeans) "Rental CD"Laporan pembuatan Final Project (Java - Netbeans) "Rental CD"
Laporan pembuatan Final Project (Java - Netbeans) "Rental CD"Melina Krisnawati
 
Membuat aplikasi sederhana menggunakan java
Membuat aplikasi sederhana menggunakan javaMembuat aplikasi sederhana menggunakan java
Membuat aplikasi sederhana menggunakan javaEko Kurniawan Khannedy
 
[PBO] Pertemuan 11 - GUI Java Desktop
[PBO] Pertemuan 11 - GUI Java Desktop[PBO] Pertemuan 11 - GUI Java Desktop
[PBO] Pertemuan 11 - GUI Java Desktoprizki adam kurniawan
 
[PBO] Pertemuan 2 - Method, String & array
[PBO] Pertemuan 2 - Method, String & array[PBO] Pertemuan 2 - Method, String & array
[PBO] Pertemuan 2 - Method, String & arrayrizki adam kurniawan
 
Soal uts/ pts semester genap mapel pbo kelas xi rpl tahun 2021
Soal uts/ pts semester genap mapel pbo kelas xi rpl tahun 2021Soal uts/ pts semester genap mapel pbo kelas xi rpl tahun 2021
Soal uts/ pts semester genap mapel pbo kelas xi rpl tahun 2021Saprudin Eskom
 
Algoritma pemrograman 2 - Contoh program"Struct Data Karyawan"
Algoritma pemrograman 2 - Contoh program"Struct Data Karyawan"Algoritma pemrograman 2 - Contoh program"Struct Data Karyawan"
Algoritma pemrograman 2 - Contoh program"Struct Data Karyawan"Derina Ellya R
 
Tugas mandiri struktur data
Tugas mandiri struktur dataTugas mandiri struktur data
Tugas mandiri struktur dataAsep Jaenudin
 
Stored Procedure
Stored ProcedureStored Procedure
Stored ProcedurePutra Andry
 
Pertemuan 7 camera
Pertemuan 7 cameraPertemuan 7 camera
Pertemuan 7 cameraheriakj
 

Mais procurados (20)

Pertemuan 10 Kunjungan Pada Pohon Biner
Pertemuan 10 Kunjungan Pada Pohon BinerPertemuan 10 Kunjungan Pada Pohon Biner
Pertemuan 10 Kunjungan Pada Pohon Biner
 
Laporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQL
Laporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQLLaporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQL
Laporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQL
 
SQL bertingkat
SQL bertingkatSQL bertingkat
SQL bertingkat
 
Laporan tugas akhir daspro kelompok
Laporan tugas akhir daspro kelompok Laporan tugas akhir daspro kelompok
Laporan tugas akhir daspro kelompok
 
Dasar dasar pengujian perangkat lunak
Dasar dasar pengujian perangkat lunakDasar dasar pengujian perangkat lunak
Dasar dasar pengujian perangkat lunak
 
Ppt pengenalan dan pemrograman java
Ppt pengenalan dan pemrograman javaPpt pengenalan dan pemrograman java
Ppt pengenalan dan pemrograman java
 
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
 
Dbase (interaktif-command)
Dbase (interaktif-command)Dbase (interaktif-command)
Dbase (interaktif-command)
 
7. Queue (Struktur Data)
7. Queue (Struktur Data)7. Queue (Struktur Data)
7. Queue (Struktur Data)
 
Laporan pembuatan Final Project (Java - Netbeans) "Rental CD"
Laporan pembuatan Final Project (Java - Netbeans) "Rental CD"Laporan pembuatan Final Project (Java - Netbeans) "Rental CD"
Laporan pembuatan Final Project (Java - Netbeans) "Rental CD"
 
Membuat aplikasi sederhana menggunakan java
Membuat aplikasi sederhana menggunakan javaMembuat aplikasi sederhana menggunakan java
Membuat aplikasi sederhana menggunakan java
 
[PBO] Pertemuan 11 - GUI Java Desktop
[PBO] Pertemuan 11 - GUI Java Desktop[PBO] Pertemuan 11 - GUI Java Desktop
[PBO] Pertemuan 11 - GUI Java Desktop
 
[PBO] Pertemuan 2 - Method, String & array
[PBO] Pertemuan 2 - Method, String & array[PBO] Pertemuan 2 - Method, String & array
[PBO] Pertemuan 2 - Method, String & array
 
Soal uts/ pts semester genap mapel pbo kelas xi rpl tahun 2021
Soal uts/ pts semester genap mapel pbo kelas xi rpl tahun 2021Soal uts/ pts semester genap mapel pbo kelas xi rpl tahun 2021
Soal uts/ pts semester genap mapel pbo kelas xi rpl tahun 2021
 
Algoritma pemrograman 2 - Contoh program"Struct Data Karyawan"
Algoritma pemrograman 2 - Contoh program"Struct Data Karyawan"Algoritma pemrograman 2 - Contoh program"Struct Data Karyawan"
Algoritma pemrograman 2 - Contoh program"Struct Data Karyawan"
 
Normalisasi Basis Data
Normalisasi Basis DataNormalisasi Basis Data
Normalisasi Basis Data
 
GoLang_1
GoLang_1GoLang_1
GoLang_1
 
Tugas mandiri struktur data
Tugas mandiri struktur dataTugas mandiri struktur data
Tugas mandiri struktur data
 
Stored Procedure
Stored ProcedureStored Procedure
Stored Procedure
 
Pertemuan 7 camera
Pertemuan 7 cameraPertemuan 7 camera
Pertemuan 7 camera
 

Semelhante a Modul praktikum java pemrograman berorientasi objek

Laporan Modul 1 Praktikum Pemrograman Berbasis Objek
Laporan Modul 1 Praktikum Pemrograman Berbasis ObjekLaporan Modul 1 Praktikum Pemrograman Berbasis Objek
Laporan Modul 1 Praktikum Pemrograman Berbasis ObjekKuncara Laksana
 
Pertemuan 1
Pertemuan 1Pertemuan 1
Pertemuan 1zisgoo
 
Object oriented programming menggunakan java
Object oriented programming menggunakan javaObject oriented programming menggunakan java
Object oriented programming menggunakan javaAntara BoyKean
 
Network Programming 2 - Dasar Pemrograman Java
Network Programming 2 - Dasar Pemrograman JavaNetwork Programming 2 - Dasar Pemrograman Java
Network Programming 2 - Dasar Pemrograman JavaLia Rusdyana Dewi
 
01.06 Java SE_getting user input
01.06 Java SE_getting user input01.06 Java SE_getting user input
01.06 Java SE_getting user inputJefri Fahrian
 
150 rahasia pemrograman java
150 rahasia pemrograman java150 rahasia pemrograman java
150 rahasia pemrograman javaJemy Sidauruk
 
Pemrograman Berorientasi Objek "Pengenalan JAVA"
Pemrograman Berorientasi Objek "Pengenalan JAVA"Pemrograman Berorientasi Objek "Pengenalan JAVA"
Pemrograman Berorientasi Objek "Pengenalan JAVA"Asnita Meydelia C K
 
modul-praktikum-pemrogramanjavadgnnetbeans-171005005920.pdf
modul-praktikum-pemrogramanjavadgnnetbeans-171005005920.pdfmodul-praktikum-pemrogramanjavadgnnetbeans-171005005920.pdf
modul-praktikum-pemrogramanjavadgnnetbeans-171005005920.pdfHerikusnawijaya3
 
150 Rahasia Pemrograman Java
150 Rahasia Pemrograman Java150 Rahasia Pemrograman Java
150 Rahasia Pemrograman JavaNurdin Al-Azies
 
Struktur Pemrograman Java
Struktur Pemrograman JavaStruktur Pemrograman Java
Struktur Pemrograman Javaroji muhidin
 
Pemrograman java
Pemrograman javaPemrograman java
Pemrograman javaMutiara Ayu
 

Semelhante a Modul praktikum java pemrograman berorientasi objek (20)

Laporan i
Laporan iLaporan i
Laporan i
 
PBO Pratikum 1
PBO Pratikum 1PBO Pratikum 1
PBO Pratikum 1
 
Laporan Modul 1 Praktikum Pemrograman Berbasis Objek
Laporan Modul 1 Praktikum Pemrograman Berbasis ObjekLaporan Modul 1 Praktikum Pemrograman Berbasis Objek
Laporan Modul 1 Praktikum Pemrograman Berbasis Objek
 
Prak 1
Prak 1Prak 1
Prak 1
 
Pertemuan 1
Pertemuan 1Pertemuan 1
Pertemuan 1
 
1-2 Pengenalan Java.pptx
1-2 Pengenalan Java.pptx1-2 Pengenalan Java.pptx
1-2 Pengenalan Java.pptx
 
Object oriented programming menggunakan java
Object oriented programming menggunakan javaObject oriented programming menggunakan java
Object oriented programming menggunakan java
 
Network Programming 2 - Dasar Pemrograman Java
Network Programming 2 - Dasar Pemrograman JavaNetwork Programming 2 - Dasar Pemrograman Java
Network Programming 2 - Dasar Pemrograman Java
 
01.06 Java SE_getting user input
01.06 Java SE_getting user input01.06 Java SE_getting user input
01.06 Java SE_getting user input
 
Modul pbo baru
Modul pbo baruModul pbo baru
Modul pbo baru
 
150 rahasia pemrograman java
150 rahasia pemrograman java150 rahasia pemrograman java
150 rahasia pemrograman java
 
Pemrograman Berorientasi Objek "Pengenalan JAVA"
Pemrograman Berorientasi Objek "Pengenalan JAVA"Pemrograman Berorientasi Objek "Pengenalan JAVA"
Pemrograman Berorientasi Objek "Pengenalan JAVA"
 
modul-praktikum-pemrogramanjavadgnnetbeans-171005005920.pdf
modul-praktikum-pemrogramanjavadgnnetbeans-171005005920.pdfmodul-praktikum-pemrogramanjavadgnnetbeans-171005005920.pdf
modul-praktikum-pemrogramanjavadgnnetbeans-171005005920.pdf
 
150 Rahasia Pemrograman Java
150 Rahasia Pemrograman Java150 Rahasia Pemrograman Java
150 Rahasia Pemrograman Java
 
Materi pelatihan java fundamental
Materi pelatihan java fundamentalMateri pelatihan java fundamental
Materi pelatihan java fundamental
 
Struktur Pemrograman Java
Struktur Pemrograman JavaStruktur Pemrograman Java
Struktur Pemrograman Java
 
Pemrograman java
Pemrograman javaPemrograman java
Pemrograman java
 
Makalah java
Makalah javaMakalah java
Makalah java
 
Pengenalan java-oop
Pengenalan java-oopPengenalan java-oop
Pengenalan java-oop
 
Modul praktikum PBO
Modul praktikum PBOModul praktikum PBO
Modul praktikum PBO
 

Modul praktikum java pemrograman berorientasi objek

  • 1. Modul Pemrograman Berorientasi Objek Laboratorium Teknologi Jaringan Page 1 BAB 1 PENGENALAN JAVA 1. Tujuan  Mengetahui cara instalasi Java sebagai bahasa implementasi praktikum pemrograman berorientasi objek  Memahami struktur dasar / sintaks bahasa Java.  Membuat program bahasa Java sederhana. 2. Dasar Teori  Mempersiapkan Lingkungan kerja JAVA Untuk menulis program JAVA digunakan editor. IDE (Integrated Development Environment) yang telah ada untuk Java, antara lain: NetBeans yang disponsori Sun Microsystems. Diperlukan penginstalan Java SDK dan Netbeans IDE 7.2.1.  Java SDK : adalah platform dasar Java yang diperlukan agar PC dapat mengeksekusi kode-kode program yang menggunakan bahasa Java.  NetBeans : adalah aplikasi editor terpadu (IDE) yang menyediakan kontrol- kontrol visual dalam pemrograman desktop. a. Instalasi JAVA SDK Java Development Kit (JDK) dapat didownload pada situs Java Sun Microsystem, yaitu: http://java.sun.com. Pada instalasi ini digunakan versi jdk1.7.1_02. Instalasi dilakukan dengan mengklik installer jdk yang akan mengekstrak file JDK membuat direktori yang diperlukan. Untuk versi jdk dibawah 1.6 diperlukan setting variable path. b. NETBEANS IDE 7.2.1  Tampilan awal NETBEANS IDE 7.2.1 (Gambar 1.1)  Memulai lembar project baru, pilih file – New Project... pada bagian menu.  Pada bagian choose project Categoty pilih java, dan pada bagian Projects pilih Java Application (Gambar 1.2)
  • 2. Modul Pemrograman Berorientasi Objek Laboratorium Teknologi Jaringan Page 2  Masukkan project name dan project location seperti terlihat pada Gambar 1.3. Sebagai latihan berikan nama project dengan hello_world. Pada bagian create main class, dapat diberikan nama yang berbeda dari Project Name nya. Tidak perlu menambahkan .Main atau .Java, NetBeans akan secara otomatis memberikan ekstensi-nya. Setelah selesai, klik finish c. Aturan dasar program java  Case sensitive : penggunaan huruf besar dan kecil memiliki arti berbeda  Kurung kurawal{} : symbol menandai awal dan akhir suatu blok program  Komentator : diawali tanda // atau tanda /*……*/  titik koma (;) : setiap pernyataan diakhiri dengan symbol titk-koma 3. Latihan Program sederhana mencetak baris kalimat
  • 3. Modul Pemrograman Berorientasi Objek Laboratorium Teknologi Jaringan Page 3 Analisa program :  Pada baris ini keyword “public” memanggil sebuah variable yang menentukan apakah dapat digunakan oleh bagian program. Keyword class yang menyatakan kelas dimana atribut dan fungsi berada di dalamnya. Kelas pertama Hello_world1 adalah kelas pengendali yaitu nama kelas yang akan dikenali compiler java. Pada saat kompilasi, compiler membuat file Hello_world1.class  Baris ini memuat metode pertama program. Metode adalah fungsi yang menjalankan suatu aksi tertentu. Metode main() bersifat statis dan kosong. Eksekusi selalu dimulai dengan metode utama dari kelas yang mengendalikan aplikasi, yaitu kelas yang memiliki nama sama dengan file sumber aplikasi.  Baris ini menampilkan pesan “ siap belajar java” pada hasil running. System adalah kelas yang merupakan bagian dari pustaka java, out objek yang terdapat pada kelas system. Keyword println() mencetak baris menampilkan sebuah teks.  Paket(package) : bagian standar java untuk mengelompokkan kelas dengan interface menjadi suatu unit 4. Tugas a. Buatlah sebuah program yang mencetak data berikut : Nama : mutiara sugiharto NIM : 12/336147/PA/15080 Alamat : Jl. Menteri Supeno No.45 Yogyakarta No.Telp : 0324-6575757 Email : tiara@gmail.com Data bisa diganti dengan data anda b. Buatlah sebuah program untuk mencetak kalimat berikut Suatu saat perusahaan computer di dunia akan lebih dari lima dari sekarang. Thomas Watson, IBM, 1943. (Buatlah program dengan pseudocode di bawah ini) System.out.print(“Suatu saat …………..”) System.out.println(“akan ………………..”) System.out.println(“Thomas……………”) A B C A B C
  • 4. Modul Pemrograman Berorientasi Objek Laboratorium Teknologi Jaringan Page 4 BAB 2 TIPE DATA DAN OPERATOR 1. Tujuan  Praktikan dapat memahami operator dengan benar.  Memahami struktur dasar / sintaks bahasa Java.  Membuat program bahasa Java sederhana. 2. Dasar Teori a. Identifier Adalah nama yang biasa digunakan dalam pemrograman untuk menyatakan : variable, konstanta, kelas, metode. Identifier valid : Identifier invalid : b. Keyword Identifier penggunaan khusus yang sudah ada pada pustaka Java, dan tidak dapat digunakan sebagai identifier Contoh keyword pada Java : c. Tipe Data Dibagi menjadi 2 kategori : 1. Tipe data primitif : tipe data yang mempunyai nilai tertentu, bukan referensi kelas atau objek.Dibagi menjadi 4 tipe data primitive Tipe Data Jenis Storage Nilai Integer(bilangan bulat byte short long int 8 bit 16 bit 64 bit 32 bit -128 s/d 127 –32768 s/d 32767 –922337203s/d 922337203 –2147483648 s/d 2147483647 Float(bilangan nyata) float double 32 bit 64 bit ±3.4E-38 s/d ±3.4E+38 ±1.7E-308 s/d ±1.7E+308 char char 16 bit u0000 s/d uFFFF boolean boolean 1 bit True atau false 2. Tipe data referensi : terbentuk dari tipe data sederhana dan tipe data referensi string array class interface d. Operator Operator digunakan untuk melakukan pengolahan data, melibatkan konstanta dan variabel yang telah kita buat. Jenis Operator Simbol Increment/ Decrement ++ , - Unary Operator + , - , ~ , ! , (cast) Perkalian/pembagian/modulus *, /, % Penambahan/pengurangan +, - Operator shift <<, >>, >>> No kode_barang kodeBarang Pelanggan_alamat 1_harga tidak boleh diawali angka %barang symbol % tidak boleh digunakan NamaPelanggan tidak boleh menggunakan spasi case package return new this public break class
  • 5. Modul Pemrograman Berorientasi Objek Laboratorium Teknologi Jaringan Page 5 Perbandingan <, <=, >, >=,= =, != Bitwise AND, OR, XOR &, |, ^ Kondisional AND, OR &&, || Operator penugasan (assignment) =  Operator concatenation : Java menyediakan operator penghubung berupa tanda (+) yang digunakan untuk menyambung string. e. Output dan Input Data  Output data : menggunakan objek out untuk menampilkan program langsung  Input data : menggunakan kelas pustaka java IOExcepion, InputStreamReader, BufferedReader 3. Latihan (Praktekkan listing program berikut dan tulis hasil serta analisa program pada lembar laporan)  Pendefenisian variable char Analisa Program  Untuk menuliskan konstanta bertipe char, karakter ditulis dengan tanda petik tunggal seperti „A‟  Pendefinisian variable char adalah char kar; / kar merupakan variable bertipe char  Tanda petik tunggal untuk deklarasi sebuah data char, sedangkan petik ganda mendeklarasikan string atau kumpulan karakter . Contoh char kode=‟A‟; string nomorRumah=”15” ; string Negara = “Indonesia”;  Pemberian nilai karakter menggunakan nilai ASCII dari karakter tersebut, karakter „F‟ mempunyai nilai ASCII = 70 , deklarasinya kar=70;  System.out.println(kar) mendeklarasikan nilai dari variable „kar‟
  • 6. Modul Pemrograman Berorientasi Objek Laboratorium Teknologi Jaringan Page 6 BAB 3 FLOWCONTROL 1. Tujuan  Praktikan mengenal beberapa perintah untuk seleksi kondisi  Praktikan mampu menggunakan bernagai conditional statement 2. Dasar Teori A. Percabangan  Pernyataan bentuk if : if (kondisi) Pernyataan;  Pernyataan bentuk if else : if (condition) statement; else statement;  Bentuk Nested If Else(if bersarang): if (condition){ if (condition) statement; else statement; } else { if (condition) statement; else statement; }  Bentuk Else if : if (condition){ statement(s); } else if (condition) statement; else if (condition){ statement(s); } else statement4; Terdapat empat pilihan: • if • else if • else if • else  Switch : switch (identifier) { case value1: statements; break; case value2: statements; break; default: statements; break; } Terdapat tiga pilihan tergantung pada nilai variabel identifier: • Value1 • Value2 • Default B. Perulangan  While loop :
  • 7. Modul Pemrograman Berorientasi Objek Laboratorium Teknologi Jaringan Page 7 while (condition) { statement(s); }  Do While Loop : do { statement(s); } while (condition);  For Loop for (initial; condition; post-iteration) { statement(s); }  Nested Loop : terjadi ketika terdapat loop di dalam loop. Dengan demikian, jumlah perulangan yang terjadi lebih banyak; yaitu perkalian antara loop yang di dalam dengan loop yang di luar. C. Branching Statement Branching statement digunakan untuk menginterupsi proses yang sedang berjalan. Terdapat tiga jenis branching dalam Java:  break : digunakan pada pencabangan maupun perulangan. Jika statement break dieksekusi, pencabangan atau perulangan akan dihentikan.  Continue : jika terjadi continue, statement akan dilewati dan alur program kembali ke evaluasi kondisi.  Return : Return dibutuhkan untuk keluar dari method 3. Latihan (Praktekkan listing program berikut dan tulis hasil serta analisa program pada lembar laporan) statement if { int nilai = 70; if (nilai >=60) { System.out.println(“Nilai=” + nilai + “lulus ujian”); } } Statement if-else Int pembelian =110; System.out.println (“Jumlah pembelian = “ + pembelian); If (pembelian>= 100) { System.out.println (“Diskon = 20%); } else{ System.out.println (“Diskon= 5%); } Statement nested if else if (isSurplus == 0) if (salesTotal < 10000000) komisi = 0.02; else komisi = 0.04; else if (salesTotal < 10000000) komisi = 0.03; else komisi = 0.06; Statement else if int nilai; 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");
  • 8. Modul Pemrograman Berorientasi Objek Laboratorium Teknologi Jaringan Page 8 BAB IV KONSEP BERORIENTASI OBJEK 1. Tujuan  Praktikan memahami konsep pemrograman berorientasi objek  Mengenal pewarisan dan overriding untuk membedakan OOP  Mengenal objek dan kelas 2. Dasar Teori a. Pemrograman berorientasi objek : berorientasikan kepada objek, jadi semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. b. Kelas dan Objek  Kelas : dengan satu atau lebih objek di dalamnya, didefinisikan sebagai sesuatu yang mempunyai data (sifat) dan fungsi (kelakuan). Konsep pewarisan (inheritance): Proses pembentukan kelas baru dari kelas yang sudah ada menjadi kelas Superclass dan kelas Subclasses. Proses pembentukan kelas menghasilkan hierarki kelas yaitu puncak hierarki yang disebut kelas abstrak. Konsep overriding : Objek subclass dapat melakukan perubahan perilaku dari metode yang diwarisinya dari objek superclass-nya.dimanfaatkan pada kasus inheritance dimana penamaan method yang sama namun berbeda implementasi.  Objek : instance dari sebuah kelas, objek berisi semua variable dalam kelas/ Variable kelas: digunakan bersama-sama oleh semua objek dalam kelas Variable objek: disebut instance variable dimana semua objek mempunyai salinan variable dari pendefinisian dalam kelas. Variable static: tidak dapat diubah oleh subkelas  Metode : terdapat 2 macam metode dan 1 metode pengendali Metode kelas: dapat dieksekusi meskipun tidak terdapat objek pada kelas tersebut Metode objek: metode hanya dapat dieksekusi sehubungan dengan objek tertentu Metode main() : digunakan saat aplikasi java dimulai, berupa keyword static c. Instansiasi Objek : mendeklarasikan variabel yang digunakan sebagai referensi ke objek dari kelas bersangkutan. menginstansiasi kelas dengan menggunakan operator new dan memasukkan instance-nya ke dalam variable referensi yang baru saja dideklarasikan d. Latihan (Praktekkan program berikut, tulis hasil di lembar laporan serta analisa program) Mendefinisikan objek dalam kelas(instansiasi) Nama kelas Variable instance
  • 9. Modul Pemrograman Berorientasi Objek Laboratorium Teknologi Jaringan Page 9 Buatlah file Rumah.java dan file Isirumah.java Pada program diatas menjelaskan kelas main memanggil fungsi lain. Pada file Rumah, terdapat kelas Rumah dan deklarasi metode r_tamu dan k_mandi. Keyword void tidak mengembalikan nilai metode. Pada file Isirumah di deklarasikan variable Panggil sebagai objek referensi ke metode k_mandi. Operator titik (.) untuk mengakses (instance variable dan method). Pada Rumah.r_tamu dan Panggil.k_mandi program variable instance dan kelas Analisa Program  Variable instance dideklarasikan setelah dekalarasi kelas , tetapi sebelum deklarasi metode. Pada program , setiap objek berasal dari kelas Kucing memiliki variable Nama, Warna, Berat  Variable Nama dan Warna bertipe data string dan variable Berat interger,  Membuat objek baru dengan variable instance kucingku  Operator titik (.) untuk mengakses (instance variable dan method). Kucingku.Nama=”cepot” kelas Objek berisi variable instance Menset nilai variable instance Metode main kelas metode metode
  • 10. Modul Pemrograman Berorientasi Objek Laboratorium Teknologi Jaringan Page 10  Setiap objek atau instance dari suatu kelas akan memiliki salinan data sendiri-sendiri. Ini artinya, antara objek yang satu dengan yang lainnya, nilai data-datanya bisa berbeda. Perhatikan kode program di bawah ini. Contoh instansiasi lebih dari satu objek dari satu kelas yang sama  Variabel referensi : kelas digunakan untuk mendeklarasikan sebuah variabel yang berupa objek. Variabel yang berupa objek ini sering disebut dengan referensi objek (object reference).  Mengisi Nilai pada Referensi Objek: variabel karyawan002 sebagai referensi ke objek yang ditunjuk oleh karyawan001. Dengan demikian, variabel karyawan001 dan karyawan002 masing-masing menunjuk ke objek Karyawan yang sama. Maka dari itu, setiap perubahan yang terjadi pada objek yang bersangkutan melalui karyawan001 akan berpengaruh juga pada objek yang ditunjuk oleh karyawan002, karena keduanya sebenarnya adalah objek yang sama, begitu juga sebaliknya. public class PengaruhReferensiObjek1 { public static void main(String[] args) { /*Instansiasi 2 objek referensi yang mengacu pada 1 objek karyawan */ Karyawan Karyawan001 = new Karyawan(); Karyawan Karyawan002 = Karyawan001; //mengisi data Objek Karyawan melalui objek referensi 1 Karyawan001.nama = "Mischella"; Karyawan001.divisi = "HRD"; //mencetak data object karyawan yang di acu 2 objek referensi System.out.println("Data Karyawan001"); System.out.println("Nama : " + Karyawan001.nama); System.out.println("Divisi : " + Karyawan001.divisi); System.out.println(" "); System.out.println("Data Karyawan002"); System.out.println("Nama : " + Karyawan002.nama); System.out.println("Divisi : " + Karyawan002.divisi);}} Karyawan Karyawan001,Karyawan002; Karyawan001 = new Karyawan(); Karyawan002 = Karyawan001; Deklarasi variable referensi ke objek karyawan Objek karyawan menyimpan referensinya ke var karyawan001 memasukkan karyawan001 ke dalam karyawan002
  • 11. Modul Pemrograman Berorientasi Objek Laboratorium Teknologi Jaringan Page 11 BAB V PENGGUNAAN VARIABEL OLEH METHOD 1. Tujuan  Praktikan memahami konsep penggunaan variable oleh metode  Mengenal parameter-parameter suatu metode  Mengenal argument dan nilai kembalian 2. Dasar Teori  Konsep Method Dalam Java, kelas berisi kumpulan data dan method, yang selanjutnya akan saling bekerja sama dalam melakukan tugas-tugas spesifik tertentu sesuai dengan perilaku objek yang dimodelkan.Bentuk umum dari pembuatan method di dalam kelas. tipe namaMethod(daftar-parameter) { //kode yang akan dituliskan }  Pengembalian nilai Java method terbagi menjadi dua: void dan non-void. Method void adalah method yang tidak mengembalikan nilai, sedangkan method non-void adalah method yang mengembalikan nilai. Jika method yang kita buat ditujukan untuk mengembalikan suatu nilai tertentu, maka di dalam method tersebut harus terdapat statemen return, yang diikuti dengan nilai yang akan dikembalikan, seperti berikut: return nilaiKembalian;  Metode berparameter Pada kenyataannya sebagian besar method yang ditulis dalam program memiliki satu atau beberapa parameter. Dengan adanya parameter, sebuah method dapat bersifat dinamis dan general. Artinya, method tersebut dapat mengembalikan nilai yang beragam sesuai dengan nilai parameter yang dilewatkannya.  Constructor Constructor adalah method khusus yang didefinisikan di dalam kelas dan akan dipanggil secara otomatis tiap kali terjadi instansiasi objek. Constructor itu sendiri berfungsi untuk melakukan inisialisasi nilai terhadap data-data yang terdapat pada kelas yang bersangkutan. Jika kita tidak mendefinisikan constructor pada kelas yang kita buat, maka secara otomatis Java akan membuatkannya untuk kita. Constructor semacam ini dinamakan dengan default constructor  Keyword This Java menyediakan kata kunci this. this merupakan referensi ke objek yang sedang aktif. this digunakan di dalam method untuk mewakili nama kelas bersangkutan.  Overload terhadap method dan constructor Parameter dalam suatu method dikatakan berbeda dari method yang lainnya apabila:  Jumlahnya berbeda, meskipun tipe datanya sama  Tipe datanya berbeda, meskipun jumlahnya sama  Jumlah dan tipe datanya berbeda Prose pendefinisian method dengan nama sama ini disebut dengan overload double volumeTabung() { return (3.14 * 7 * 7 * 10); } double volumeTabung(int jejari, int tinggi) { return (3.14 * jejari * jejari * tinggi); } Method tidak berparameter hanya dapat digunakan untuk tabung yang memiliki jari- jari alas 7 dan tinggi 10 Method berparameter dapat digunakan untuk segala ukuran tabung.
  • 12. Modul Pemrograman Berorientasi Objek Laboratorium Teknologi Jaringan Page 12  proses overload diaplikasikan ke dalam constructor suatu kelas. Hal ini disebabkan karena sebenarnya constructor juga adalah sebuah method yang mengembalikan tipe kelas (dirinya sendiri). 3. Latihan Penambahan method void pada deklarasi kelas Karyawan public class Karyawan { String ID, nama, divisi; Double gaji; void cetakData() { System.out.println("Data Karyawan "); System.out.println("ID : " + ID); System.out.println("Nama : " + nama); System.out.println("Divisi : " + divisi); System.out.println("Gaji : " + gaji); }} Contoh pemanggilan method void public class ImplementasiMethodVoid { public static void main(String[] args) { //instansiasi objek karyawan Karyawan Karyawan001 = new Karyawaan(); //mengisi data pada objeck karyawan Karyawan001.ID = "K001"; Karyawan001.nama = "Agus Ramadhan"; Karyawan001.divisi = "Keuangan"; Karyawan001.gaji = 1850000; //memanggil method cetakData(); Karyawan001.cetakData(); } } implementasi method non-void dengan return public class Karyawan { String ID, nama, divisi; double gaji; void cetakData() { System.out.println("Data Karyawan : "); System.out.println("ID : " + ID); System.out.println("Nama : " + nama); System.out.println("Divisi : " + divisi); System.out.println("Gaji : " + gaji); } double hitungSumbanganZakat() { double zakat = gaji * 0.025; return zakat; } Pemanggilan method non-void public class ImplementasiMethodNonVoid { public static void main(String[] args) { //instantiasi objek Karyawan Karyawan karyawan001 = new Karyawan(); //mengisi data pada objek Karyawan karyawan001.ID = "K001"; karyawan001.nama = "Agus Ramadhan"; karyawan001.divisi = "Keuangan"; karyawan001.gaji = 1850000; //memanggil method cetakDAta() karyawan001.cetakData(); //memanggil method hiungSumbanganZakat() System.out.println("Sumbangan Zakat : " + karyawan001.hitungSumbanganZakat()); } } Implementasi method dengan parameter pada kelas Karyawan public class Karyawan { String ID, nama, divisi; double gaji; void isiData(String kode, String Nama, String Div, double Gaji) { ID = kode; nama = Nama; divisi = Div; gaji = Gaji; } void cetakData() { System.out.println("Data Karyawan : "); System.out.println("ID : " + ID); System.out.println("Nama : " + nama); System.out.println("Divisi : " + divisi); System.out.println("Gaji : " + gaji); } Pemanggilan method berparameter pada kelas Karyawan public class ImplementasiMethodBerparameter { public static void main(String[] args) { //instatiasi objek Karyawan Karyawan karyawan001 = new Karyawan(); /*mengisi data pada objek Karyawan melalui method isiData()*/ karyawan001.isiData("k001", "Rommy", "Marketing", 2350000); //memanggil method cetakData(); karyawan001.cetakData(); } }
  • 13. Modul Pemrograman Berorientasi Objek Laboratorium Teknologi Jaringan Page 13 double hitungSumbanganZakat() { double zakat = gaji * 0.025; return zakat; } } Deklarasi kelas Karyawan dengan constructor public class Karyawan { String ID, nama, divisi; double gaji; //constructor kelas karyawan Karyawan() { ID = "k001"; nama = "Budi"; divisi = "Produksi"; gaji = "1750000"; } void cetakData() { System.out.println("Data Karyawan :"); System.out.println("ID : " + ID); System.out.println("Nama : " + nama); System.out.println("Divisi : " + divisi); System.out.println("Gaji : " + gaji); } double hitungSumbanganZakat() { double zakat = gaji * 0.025; return zakat; } } Deklarasi kelas Karyawan dengan constructor dinamis public class Karyawan { String ID, nama, divisi; double gaji; //constructor kelas Karyawan Karyawan(String kode, String Nama, String Div, double Gaji) { ID = kode; nama = Nama; divisi = Div; gaji = Gaji; } void cetakData() { System.out.println("Data Karyawan :"); System.out.println("ID : " + ID); System.out.println("Nama : " + nama); System.out.println("Divisi : " + divisi); System.out.println("Gaji : " + gaji); } double hitungSumbanganZakat() { double zakat = gaji * 0.025; return zakat; } }
  • 14. Modul Pemrograman Berorientasi Objek Laboratorium Teknologi Jaringan Page 14 BAB VI VARIABEL TERHADAP PERILAKU OBJEK 1. Tujuan Praktikum  Praktikan dapat mengimplementasikan enkapsulasi  Dapat membedakan antara instance variable dan local variable  Praktikan mampu menggunakan beberapa operator dan method yangmenyertai penerapan array dan string. 2. Dasar teori 1. Implementasi Enkapsulasi(pembungkusan) Suatu cara untuk meyembunyikan informasi detail dari suatu class, berupa information hiding dan interface to acsess data.Hak akses data dan perilaku objek memiliki tingkatan:  Metode serta variable bersifat private: atribut kelas hanya dapat di akses oleh metode dalam kelas dimana di definisikan  Metode serta variable bersifat public : variabael dan metode dapat diakses dari dalam maupun luar kelas  Metode serta variable bersifat protected: atribut kelas hanya dapat di akses oleh kelas dan subkelas tersebut  Metode serta variable bersifat default : hanya kelas dalam paket dapat mengakses variable dan metode kelas Pada enkapsulasi membuat variable bersifat private dan melakukan perubahan terhadap atribut yang di beri hak akses dengan cara membuat suatu interface berupa metode untuk menginisialisasi nilai dari suatu atribut disebut interface to acsess data. Secara umum, pembungkusan data dan method dari suatu kelas dapat dituliskan seperti berikut: class NamaKelas { tingkat-akses data1; tingkat-akses data2; …. tingkat-akses dataN; tingkat-akses method1(daftar-parameter) { //kode untuk method1 } tingkat-akses methodN(daftar-parameter) { //kode untuk methodN } …. tingkat-akses methodN(daftar-parameter) { //kode untuk methodN } } 2. Inisialisasi instan variable dan local variabel Untuk pengaksesan data di luar, metode statis dapat mengakses data statis dari kelas dan metode non statis dapat mengakses data setiap kelas.  Variabel instan : sama dengan variable kelas tetapi tidak menggunakan keyword static  Variabel local : dideklarasikan dan digunakan hanya di dalam badan metode tertentu. Static modifier: atribut atau metode sama untuk semua objek dari kelas tertentu
  • 15. Modul Pemrograman Berorientasi Objek Laboratorium Teknologi Jaringan Page 15 Final modifier: memberikan spesifikasi bahwa variable mempunyai nilai konstan sama. Abstract: metode tidak dapat dijalankan dan harus digunakan subkelas yang tidak abstrak 3. Kelas di dalam Kelas (Inner Class) Java mengizinkan untuk mendefinisikan suatu kelas di dalam kelas lainnya. Kelas semacam ini dinamakan sebagi inner class (kelas bagain dalam). Inner class dapat mengakses data dan method dari kelas yang berada di bagian luarnya, meskipun data dan method tersebut bersifat private. 4. Penerapan operator dan method yang menyertai array dan string. Perilaku objek pada suatu array sama seperti objek-objek lainnya. Perbedaan dalam mengakses data a. Array : tipe data yang digunakan apabila data diberikan berupa kelompok data yang disajikan secara berurutan. tipe_data nama_variabel_array[] Untuk mengetahui jumlah elemen dari sekelompok data yang bertipe array, dapat digunakan perintah length .Sintaks: nama_variabel_array.length Array untuk dua dimensi b. String : String merupakan deretan karakter. Pada java, string merupakan objek dari kelas String. Penulisan string dilakukan dengan mengapit data menggunakan tanda petik (ganda). String judul = “Pemrograman Berorientasi Objek”; c. Latihan program yang menunjukkan pengaruh dari tingkat akses public dan private di dalam suatu kelas //deklarasi kelas mahasiswa public class Mahasiswa { int nim; public String nama; private double ipk; public void setIPK(double nilai) { ipk = nilai; } public double getIPK() { return ipk; } } terdapat tanda error (yang bergaris bawah) yang menandakan bahwa variabel ipk tidak bisa diakses secara langsung karena didefinisikan menggunakan hak akses private tingkat akses data dan method pada kelas Mahasiswa public class PengaruhHakAkses { public static void main(String[] args) { Mahasiswa Yahya = new Mahasiswa(); //BENAR, karena nim secara default bersifat public Yahya.nim = 1009; //BENAR, karena nama bersifat public Yahya.nama = "Yahya Al- Mahandiz"; Yahya.ipk = 3.77;//SALAH,karena ipk bersifat private //BENAR, karena method setC() bersifat public Yahya.setIPK(3.77); System.out.println("NIM : " + Yahya.nim); System.out.println("Nama : " + Yahya.nama); System.out.println("IPK : " + Yahya.getIPK()); }} tipe_data nama_variabel_array[][]
  • 16. Modul Pemrograman Berorientasi Objek Laboratorium Teknologi Jaringan Page 16 implementasi data dan method statis public class ContohStatic { static int dataA = 10; static int dataB = 7; int dataC = 4;//data non-statik static void test() { int dataC = dataA + dataB; System.out.println("dataA + dataB = " + dataC); //System.out.println("dataC = "+dataC); //SALAH, karena dataC non- statik } public static void main(String[] args) { test(); } } dapat memanggil method test() tanpa harus membuat objek dari kelas ContohStatic. method test() tidak dapat mengakses dataC, karena data tersebut tidak dideklarasikan sebagai data statis.  Deklarasi kelas yang menggunakan data dan method statis public class RobotStatic { static String nama; static String asalNegara; static void test() { System.out.println("Hello.."); System.out.println("Saya adalah robot " + nama); System.out.println("Saya berasal dari " + asalNegara); } }  pemanggilan data dan method statis public class ContohStatic2 { public static void main(String[] args) { RobotStatic.nama = "Gathotkaca"; RobotStatic.asalNegara = "Indonesia"; RobotStatic.test(); } } program untuk array satu dimensi. public class Array { public static void main(String[] args) { int [] array = {2,5,6,3,2}; for(int i =0; i<array.length; i++) { System.out.println("Array ke" +i+ " " +array[i]); } } } program untuk string public class Kata { public static void main(String[] args) { String[]teks={"anita","jakarta","jl.damai","gg.satu","45" }; for (int i = 0; i<teks.length; i++) { System.out.println("Elemen ke"+i+ " " +teks[i]); } } } Program array 2 dimensi public class Dimensi2 public static void main (String[ ] args) int [ ] [ ] bilangan = { {1, 5, 2, 9, 7},{2, 9, 5, 8, 9}, {34, 17, 10, 89, 67},{14, 71, 24, 92, 10}}; //Menampilkan nilai array for (int i = 0; i < 4; i++){ for(int j = 0; j < 5; j ++) { System.out.print (bilangan[i][j] + " "); System.out.println(); } } Program menghitung string public static void main(String[] args) { String A="pemrograman berorientasi objek"; String B="laboratorium jaringan"; String C="Sekolah Vokasi"; int nA= A.length(); int nB=B.length(); System.out.println(A+"panjang string="+nA); System.out.println(B+"panjang string="+nB); System.out.println(C+"panjang string="+C.length()); } }
  • 17. Modul Pemrograman Berorientasi Objek Laboratorium Teknologi Jaringan Page 17 BAB VII INHERITANCE 1. Tujuan Praktikum  Praktikan dapat membedakan pemakaian overloading dan overriding.  Praktikan mampu menerapkan konsep pewarisan, overloading dan overriding dalam pemrograman dengan Java.  Praktikan mampu menerapkan konsep pewarisan, overloading dan overriding dalam pemrograman dengan Java. 2. Dasar teori a. Pewarisan (inheritance) adalah suatu cara pembuatan class baru dengan menggunakan kembali class yang sudah didefinisikan sebelumnya dengan menambahkan atribut dan method baru.Pada konsep pewarisan ada beberapa istilah yang perlu diketahui,yaitu:  Sub class, digunakan untuk menunjukkan class anak atau turunan secara hirarkis dari super class.  Super class, digunakan untuk menunjukkan class induk secara hirarkis dari sub class (class anak).  Extends, digunakan untuk menunjukkan bahwa suatu class merupakan turunan dari class lain. Misal A extends B, berarti class A adalah turunan dari class B. A merupakan subclass, sedangkan B merupakan superclass.  Super, digunakan untuk memanggil konstruktor dari super class atau memanggil variabel yang mengacu pada super class. Misal super(x,y,z), berarti atribut x, y, dan z diambil dari atribut pada class induk. b. Cara Pewarisan Kelas. Kelas turunan secara prinsip dapat dibuat dengan menggunakan bentuk : Class KelasTurunan extends KelasDasar{ Tubuh kelas } c. Pemanggilan construktor Super Kelas Superkelas tidak mengandung konstruktor. Untuk itu digunakan kata kunci super. Super (nama , nim ) Pemanggilan konstruktor kelas dasar harus memenuhi persyaratan berikut :  Pemanggilan dengan super seperti diatas hanya bisa dilakukan pada konstruktor.  Pemanggilan konstruktor superkelas harus berkedudukan sebagai pernyataan pertama dalam konstruktor. d. Overriding Overriding adalah suatu cara untuk mendefinisikan ulang method yang ada pada class induk apabila class anak menginginkan adanya informasi yang lain. Overriding dilakukan dengan cara menulis ulang method yang ada pada class induk dengan syarat bahwa nama dan parameter fungsi tersebut harus sama (tidak boleh diubah). Meskipun fungsi telah ditulis ulang oleh class anak, fungsi yang asli pada class induk masih dapat dipanggil di class anak dengan menggunakan class super. e. Overloading Overloading fungsi adalah penulisan beberapa fungsi (dua atau lebih) yang memiliki nama yang sama. Pada bahasan overloading dikenal istilah signature. Signature sebuah fungsi adalah parameter lengkap dengan tipe datanya yang terdapat dalam fungsi tersebut. Misal terdapat fungsi: public int jumlahMahasiswa (int laki2, int perempuan, String kelas); maka signature dari fungsi tersebut adalah (int, int, String). Suatu fungsi dikatakan di- overload manakala terdapat beberapa fungsi dengan nama yang sama namun memiliki signature yang berbeda-beda, sebagai contoh:
  • 18. Modul Pemrograman Berorientasi Objek Laboratorium Teknologi Jaringan Page 18 public void infoMahasiswa (int laki2, int perempuan, String kelas) { ... } public void infoMahasiswa (int mhsLama, int mhsBaru, int mhsCuti, int angkatan) { ... } f. Latihan 1. Contoh Kasus Pewarisan Menunjukkan hirarki kelas dosen., memiliki turunan berupa kelas rektor, kelas dekan dan kelas kalab. class induk (class dosen) memiliki atribut nama, nik dan jurusan. Method yang dimiliki oleh class dosen adalah view(). Class turunan dari class dosen ada tiga class. Pada class rektor, terdapat tambahan atribut berupa th_mulai dan jabatan_ke, serta method viewRektor(). Pada class dekan terdapat tambahan atribut fakultas, dan method viewDekan(). Pada class kalab terdapat tambahan atribut laboratorium, dan method viewKalab(). DOSEN nama nik jurusan View() DEKAN fakultas Viewdekan() KALAB laborat Viewkalab() REKTOR Th_mulai Jabatan Viewrektor() Pendefinisian class dosen Public class Dosen { protected String nama protected String nik; protected String jurusan; Dosen (String namaX, String nikX, String jurX) { nama = namaX; nik = nikX; jurusan = jurX;} public void view() { System.out.println(“Nama : “ +nama); System.out.println(“nik : “ +nik); System.out.println(“jurusan : “ +jurusan) Pendefinisian class rektor public class rector extends Dosen{ private int th_mulai; private int jabatan_ke; Rektor (String namaX, String nikX, String jurX, int thX, int keX){ super(namaX, nikX, jurX); {th_mulai = thX; jabatan_ke = keX; } public void viewrektor(){ System.out.println(“Th mulai jabatan:” +th_mulai); System.out.println(“jabatan rector ke:” +jabatan_ke); Memanggil variable yang mengacu pada dosen (super class) Constructor untuk kelas Dosen Method yang akan dilkukan overriding Overriding metode view pada superclass dosen
  • 19. Modul Pemrograman Berorientasi Objek Laboratorium Teknologi Jaringan Page 19 Pendefinisian kelas dekan public class Dekan extends Dosen{ private String fakultas; Dekan(String namaX, String nikX, String jurX, String fakX){ super(namaX, nikX, jurX); fakultas = fakX; } public void viewdekan(){ System.out.println(“Fakultas : “+fakultas): } } Pendefinisian class kalab Public class kalab extends Dosen{ Private String laboratorium; Kalab (String namaX, String nikX, String jurX, String labX){ Super(namaX, nikX, jurX); Laboratorium = labX; } Public void view kalab(){ System.out.println(“laboratorium : “+laboratorium); } } Pewarisan pada kelas dosen public class Main{ public static void main(String[] args){ Rektor rek = new Rektor(“Ahmad”, “005343594”,”informatika”, 2006,2); Dekan dek = new Dekan (“Dina”, “932221234”,”T.Kimia”,”TI”); Kalab lab = new Kalab (“Indah”,”068336234”,”Informatika”,”KSC”); rek.view(); rek.viewrektor(); dek.view(); dek.viewdekan(); lab.view(); lab.viewkalab(); } } Contoh overloading (1) Public class mahasiswa{ Public void infoMahasiswa(int laki2, int pr, String kelas){ Int jumlah = laki2 + pr; System.out.prinyln(“jumlah mhasiswa=” +jumlah); } Public void infoMahasiswa(int mhsLama, int mhsbaru, int mhsCuti, int angkatan){ Int jumlah = mhsLama+mhsBaru+mhsCuti); System.ou.println(“sampai tahun” +angkatan+ “jumlah mahasiswa” +jumlah); } } Contoh overloading (1) public class Main { public static void main(String[] args){ mahasiswa M= new mahasiswa(); M.infoMahasiswa(60,18,”kelas A angkatan 2013”): M.infoMahasiswa(1000,400,25,2008); }} Pada class tersebut terdapat dua subclass dengan nama yang sama yaitu infoMahasiswa namun memiliki signature yang berbeda. Subclass pertama digunakan untuk menghitung jumlah mahasiswa kelas A angkatan 2008. Sedangkan pada subclass kedua digunakan untuk menghitung jumlah mahasiswa aktif sampai tahun 2008. Overloading fungsi ditentukan oleh signature nya, tidak ditentukan oleh nilai balikan fungsi. Dalam satu class, apabila ada dua atau lebih fungsi yang memiliki nilai balikan yang berbeda namun memiliki signatue yang sama, maka fungsi tersebut tidak dapat dikatakan sebagai overloading. Pemanggilan konstruktor Pemanggilan method di setiap subclass overloading
  • 20. Modul Pemrograman Berorientasi Objek Laboratorium Teknologi Jaringan Page 20 BAB VIII POLIMORFISME 1. Tujuan Praktikum  Mampu membuat method Polimorfisme untuk implementasi listingcode yang berbeda sesuai dengan behavior masing- masing kelas.  Mampu membuat Variabel instans sebagai penentu akses pada kelas public, kelas private dan protected 2. Dasar teori  Polimorfisme Polimorfisme adalah kemampuan mengungkap suatu hal yang berbeda melalui satu cara yang sama. Apabila mempunyai objek yang bertipe superkelas, variable objek ini bisa diisi dengan objek superkelas ataupun objek subkelas tanpa perlu melakukan perubahan tipe.Pada polimorfisme kondisi yang harus terpenuhi supaya fungsi dapat dijalankan yaitu: 1. Semua kelas diturunkan dari suatu kelas yang sama 2. Method yang dipanggil harus melalui variabel dari super class. 3. Method yang dipanggil juga harus merupakan method yang ada pada super class. 4. Signature method harus sama baik yang ada pada super class maupun di subclass. 5. Method access attribute pada subclass tidak boleh lebih terbatas daripada yang ada pada super class. Program polimorfisme(1) class Binatang{ public void info() { System.out.println(" Info tentang Hewan : "); } } class Herbivora extends Binatang { public void info() { System.out.println ("Info pada herbivora: Memakan makanan berupa tumbuh - tumbuhan"); } } class Kelinci extends Herbivora{ public void info(){ System.out.println("Info pada Kelinci: Memakan makanan berupa wortel"); } } public class Polimorfisme { public static void main(String[] args) { Herbivora herbivora; Kelinci kelinciku; Binatang hewan; herbivora=new Herbivora(); kelinciku=new Kelinci(); hewan=herbivora; hewan.info(); hewan=kelinciku; hewan.info(); } } Program polimorfisme (2) Pendefinisian class kendaraan public class kendaraan { private String model; public kendaraan (String model){ this.model = model; } Public void informasi(){} } merupakan program untuk membangun class kendaraan. Pada class kendaraan mewarisi ke tiga class, yaitu class pesawat, mobil, dan kapal. Pendefinisian class pesawat Public class pesawat extends kendaraan{ Private String nama; Private String jenis; } Public pesawat(String nama){ Super(“pesawat”); This.nama = nama; Jenis = “belum teridentifikasi”; } Public pesawat (String nama, String jenis){ Super(“pesawat”); This.nama=nama; This.jenis=jenis; } Public void informasi(){ System.out.println(“nama pesawat adalah”+nama); System.out.println(“jenis pesawat adalah”+jenis);}}
  • 21. Modul Pemrograman Berorientasi Objek Laboratorium Teknologi Jaringan Page 21 Program polimorfisme (3) Pendefinisian Kelas manusia /* Disimpan dalam file “manusia.java” */ public class manusia { public String nama; public manusia(String n) { this.nama = n; } public String tampilkanNama() { return nama; } public void makan() { System.out.println("Nyam... nyam... nyam..."); } public void kerja() { System.out.println("Kerja...kerjaaa..."); } } Sebagai contoh kelas manusia diturunkan menjadi kelas: programmer, tentara /* Disimpan dalam file “programmer.java” */ public class programmer extends manusia{ public programmer(String n){ super(n); } public void kerja(){ System.out.println("Tak…Tak…Klik.."); } public void bersantai(){ System.out.println("Game over, You lose..."); } } polimorfisme untuk alat-alat transportasi Pada program utama dilakukan pemanggilan terhadap ketiga class tersebut, masing-masing dengan parameter yang bersesuaian
  • 22. Modul Pemrograman Berorientasi Objek Laboratorium Teknologi Jaringan Page 22 /* Disimpan dalam file “tentara.java” */ class tentara extends manusia { public String pangkat; public tentara(String n, String p) { super(n); this.pangkat= p; } public String tampilkanPangkat() (4) { return pangkat; } public void kerja() { System.out.println("Dor... Dor... Dor.."); } } dari manusia diturunkan kelas sopir. Kelas sopir diimplementasikan dalam java /* Disimpan dalam file “sopir.java” */ public class sopir extends manusia { public sopir(String n) { super(n); } public void kerja() { System.out.println("Ngung... Ngung... Ngung...Ciiit.."); } } Dedi adalah seorang sopir keturunan manusia, untuk menginstantiasi objek dedi ditunjukkan dalam kode berikut. /* Disimpan dalam file “dedi.java” */ public class dedi { public static void main(String arg[]) { sopir dedi= new sopir("Dedi"); System.out.println("Nama= "+ dedi.tampilkanNama()); dedi.makan(); dedi.kerja(); } } Kemudian Andi sang programmer, Badu sang tentara dan Dedi sang sopir diperintahkan untuk bekerja, apa reaksinya? /* Disimpan dalam file “pekerja.java” */ public class pekerja { public static void main(String args[]) { manusia[] profesi= new manusia[3]; profesi[0]=new programmer("Andii"); profesi[1]=new tentara("Badu","Kopral"); profesi[2]=new sopir("Dedi"); for (int i=0; i<3; i++) { profesi[i].kerja(); } } } Message sama yang dikirimkan ke objek berbeda akan menghasilkan hasil yang berbeda, inilah yang disebut polymorfisme.
  • 23. Modul Pemrograman Berorientasi Objek Laboratorium Teknologi Jaringan Page 23 BAB VIII INTERFACE 1. Tujuan Praktikum  Memahami konsep pewarisan ganda  Memahami konsep interface  Mengimplementasikan Interface pada Java untuk melakukan pewarisan ganda 2. Dasar Teori Untuk membuat suatu kelas dapat kita turunkan dengan pewarisan field-field dan metodh pada base classnya. Bagaimana kita membuat kelas yang menurunkan sifat dari beberapa base class? misalkan kita akan membuat kelas superman yang dia bisa membuat program layaknya programmer, dia juga ahli menggunakan senjata layaknya tentara, bahkan dia bisa terbang seperti elang (keturunan binatang)? Caranya adalah dengan pewarisan ganda. Dalam Java tidak dikenal pewarisan ganda, sehingga digunakan interface. /* Disimpan dalam file "superman.java" */ interface programmer { void memrogram(); } interface tentara { void menembak(); } interface burung { void terbang(); void buangKotoran(); } class superman implements programmer,tentara,burung { public void memrogram(){}; public void menembak(){}; public void terbang(){}; public void buangKotoran(){}; } Kemudian kelas superman diinstantiasi menjadi objek bernama bejo, contoh kode program /* Disimpan dalam file "bejo.java" */ public class bejo { public static void main(String arg[]) { superman bj= new superman(); bj.memrogram(); { System.out.println("Implementasi memrogram ...tak..tik"); } bj.menembak(); { System.out.println("Implementasi menembak ...dor..dor"); } bj.terbang(); { System.out.println("Implementasi terbang......Zap...."); } } }
  • 24. Modul Pemrograman Berorientasi Objek Laboratorium Teknologi Jaringan Page 24 Dalam kode diatas bejo menentukan sendiri cara mengimplementasi beberapa metodh dari interface yang telah didefiniskan dalam kelas superman (misalkan cara memrogramnya bagaimana, cara menembaknya bagaimana dan cara terbangnya seperti apa), selain itu bejo tidak berminat untuk mengimplementasikan metodh buangKotorang dari interface burung (misalnya karena burung biasa membuang kotorang di sembarang tempat). Jadi interface dapat dianalogikan seperti menandatangani kontrak kerja, misalnya sebagai dosen dia wajib mengajar, membuat soal ujian dsb, akan tetapi cara mengajarnya dan membuat soalnya dilakukan terserah masing-masing dosen (tidak ditentukan dalam kontrak kerja).
  • 25. Modul Pemrograman Berorientasi Objek Laboratorium Teknologi Jaringan Page 25 BAB X INPUT DAN OUTPUT 1. Tujuan Praktikum  Praktikan mampu mengenali dan memahami input dan output (I/O) dalam pemrograman dengan Java.  Mampu membuat sistem stream untuk penanganan operasi input/output, buffered stream dan random accees file. 2. Dasar teori  Stream Operasi input dan output pada java menggunakan konsep aliran data,Aliran data sendiri sudah di lakukan dan di pelajari pada bab-bab sebelumnya yaitu aliran data dari device output dengan memanfaakan method println() pada objek System.out, dan device input pada objek System.in dari kelas System Stream adalah aliran data yang berupa aliran byte atau karakter, dari device input ke divice output pada saat program di eksekusi. Proses untuk membaca data dari layar lalu memprosesnya pada saat program dijalankan serta menampilkan hasil proses tersebut pada layar console dilakukan oleh kelas InputStreamReader, kelas ini akan membaca data yang diketikkan oleh user melalui console dan sekaligus memperlakukannya sebagai Stream, tahap yang dilakukan oleh kelas InputStreamReader meliputi 3 langkah yaitu: 1. Membuat objek dari kelas InputStreamReader, dengan sintaks InputStreamReader dataIn = new InputStreamReader(System.in); 2. Menampung objek Stream ke buffer BufferedReader bufIn = new BufferedReader(dataIn,1); 3. Membaca data dari objek Stream String data = bufIn.readLine(); Inputan dan penyimpanan sementara data dari keybord untuk proses kemudian di outputkan hasilnya bisa bermacam-macam cara antara lain: 1. Dengan melakukan langkah-langkah seperti InputStreamReader diatas dimana kita harus membuat objek dari kelas InputStramReader, lalu menampung objek Stream ke buffer, kemudian membaca data dari objek stream import java.io.*; public class Persegi1 { public static void main(String args[]) { try { System.out.print("masukkan panjang = "); InputStreamReader pnj = new InputStreamReader(System.in); BufferedReader input1 = new BufferedReader(pnj,1); String panj = input1.readLine(); int panjang=Integer.parseInt(panj); System.out.print("masukkan Lebar = "); InputStreamReader lbr = new InputStreamReader(System.in); BufferedReader input2 = new BufferedReader(lbr,1); String lebr = input2.readLine(); int lebar=Integer.parseInt(lebr);
  • 26. Modul Pemrograman Berorientasi Objek Laboratorium Teknologi Jaringan Page 26 int luas=panjang*lebar; System.out.println("Luas persegi = "+luas); } catch (IOException e) { e.printStackTrace(); } } } 2. Selain itu juga ada cara untuk mengimputkan data dari console dengan memanfaatkan kelas yang kita buat sendiri dimana kelas ini nantinya akan diwariskan pada suatu file yang memanggil dan membutuhkan warisan dari kelasyang kita buat, sehingga proses yang dilakukan oleh kelas InputStreamReader hanya ada pada kelas induk yang akan mewarisi import java.io.*; public class InputConsole{ /**Membaca string dari keyboard*/ public static String readString(){ BufferedReader bfr = new BufferedReader(new InputStreamReader(System.in),1); // Menginisialisasi string String string = " "; // Get the string from the keyboard try{ string = bfr.readLine(); } catch (IOException ex){ System.out.println(ex); } // Mengembalikan string hasil pembacaan dari keyboard return string; } /**Mengambil nilai int dengan parsing string input dari keyboard*/ public static int readInt(){ return Integer.parseInt(readString()); } //Mengambil nilai byte dengan parsing string input dari keyboard public static byte readByte(){ return Byte.parseByte(readString()); } //Mengambil nilai short dengan parsing string input dari keyboard public static short readShort(){ return Short.parseShort(readString()); } //Mengambil nilai long dengan parsing string input dari keyboard public static long readLong(){ return Long.parseLong(readString()); } //Mengambil nilai float dengan parsing string input dari keyboard public static float readFloat() { return Float.parseFloat(readString()); } //Mengambil nilai double dengan parsing string input dari keyboard public static double readDouble(){ return Double.parseDouble(readString()); } } Membuat kelas pemanggil agar kelas induk diatas bisa berguna public class Persegi2{ public static void main(String args[]){ int panjang; int lebar; int luas; System.out.println("Masukkan Panjang = " ); panjang = InputConsole.readInt(); System.out.println("Masukkan Lebar = "); lebar = InputConsole.readInt();
  • 27. Modul Pemrograman Berorientasi Objek Laboratorium Teknologi Jaringan Page 27 luas=panjang*lebar; System.out.println("Luas Persegi = "+luas); } }  Membaca Input Data Karakter Untuk membaca input berupa karakter, kita bisa menggunakan method read() yang terdapat pula pada kelas BufferedReader. Berikut ini contoh program yang akan menunjukkan bagaimana menangani proses input data karakter. Program dengan proses input data karakter import java.io.*; class DemoInputKarakter { public static void main(String[] args) throws IOException { System.out.print("Masukkan sebuah karakter: "); char KarakterInput; InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); KarakterInput = (char) br.read(); System.out.println("Karakter yang dimasukkan adalah '" + KarakterInput + "'"); } }  Membaca Input Data String Untuk membaca input berupa string, kita bisa menggunakan method readLine(), bukan method read(). Berikut ini contoh program yang akan menunjukkan bagaimana menangani proses input data string. Program dengan proses input data string import java.io.*; class DemoInputString { public static void main(String[] args) throws IOException { System.out.print("Masukkan nama Anda: "); String namaInput; InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); namaInput = br.readLine(); System.out.println("Halo " + namaInput + "..."); System.out.println("Semoga Anda Sukses Selalu.."); } }  Membaca Input Data Numerik Untuk membaca input berupa data numerik, kita bisa menggunakan method readLine() seperti pada saat menangani input data string, dan selanjutnya string hasil input tersebut dikonversi ke tipe numerik. Berikut ini contoh program yang akan menunjukkan bagaimana menangani proses input data numerik. Program dengan proses input data numerik import java.io.*; class DemoInputNumerik { public static void main(String[] args) throws IOException { System.out.print("Masukkan sebuah bilangan bulat : "); String temp; int bilanganInput = 0; InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); // input data dianggap sebagai string temp = br.readLine(); try { // konversi dari string ke integer bilanganInput = Integer.parseInt(temp); } catch (NumberFormatException nfe) { System.out.println("Nilai yang dimasukkan " + "bukan bilangan bulat"); System.exit(1); } System.out.println("Bilangan yang anda masukkan adalah " + bilanganInput); }}