LAPORAN PRAKTIKUM
Disusun oleh :
NAMA : SAKINAH
NIM : 32601700023
i
HALAMAN PENGESAHAN
LAPORAN PRAKTIKUM
Pemrograman Berorientasi Objek
Disusun oleh
Sakinah (32601700023)
Hari : Rabu
Tanggal : 23 Januari 2019
Asisten Praktikum
1. Noor Arzam Khadma Alifi 1....................
Mengetahui,
ii
KATA PENGANTAR
Puji syukur penulis panjatkan kepada Allah SWT, yang telah melimpahkan
rahmat, taufik serta hidayah-Nya, sehingga laporan Praktikum Pemrograman
Berbasis Objek dapat terselesaikan.
Tak lupa penulis mengucapkan terimakasih kepada :
1. Rektor UNISSULA Bapak Ir. H. Prabowo Setiyawan, M.T.,Ph.D. yang telah
mengijinkan penulis untuk menimba ilmu di kampus ini.
2. Dekan Fakultas Teknologi Industri Ibu Dr. Hj. Sri Arttini Dwi Prasetyowati,
M.Si
3. Dosen pengampu penulis Bapak Sam Farisa Chaerul Haviana, ST.,M.Kom
yang telah memberikan ilmu mengenai Pemrograman Berorientasi Objek.
4. Asisten dosen saudara Noor Arzam Khadma Alifi yang telah membantu
dalam memberikan penjelasan mengenai praktikum Pemrograman
Berorientasi Objek.
5. Orang tua penulis yang telah mengijinkan untuk menyelesaikan laporan ini.
6. Dan kepada semua pihak yang tidak dapat disebutkan satu persatu.
Penulis menyadari sepenuhnya bahwa dalam penyusunan laporan ini masih
terdapat banyak kekurangan, untuk itu penulis mengharap kritik dan saran dari
pembaca untuk sempurnanya laporan ini. Semoga dengan ditulisnya laporan ini
dapat menjadi sumber ilmu bagi setiap pembacanya.
Penulis
iii
DAFTAR ISI
2.2.2 Operator........................................................................................... 19
iv
2.3 Tugas ...................................................................................................... 24
4.2.7 Method............................................................................................. 63
v
4.2.11 Constructor ..................................................................................... 66
vi
6.2.2 Keuntungan Polimorfisme ............................................................ 120
vii
8.2.6 Membaca Input Data Numerik ...................................................... 145
DAFTAR PUSTAKA
LAMPIRAN
viii
DAFTAR GAMBAR
ix
Gambar 3.1 Output array 1 dimensi ..................................................................... 38
Gambar 3.2 Output array 2 dimensi ..................................................................... 39
Gambar 3.3 Output panjang string ........................................................................ 41
Gambar 3.4 Output kesamaan dua string .............................................................. 42
Gambar 3.5 Output perbandingan karakter string ................................................. 44
Gambar 3.6 Output posisi mendapatkan karakter ................................................. 46
Gambar 3.7 Output posisi karakter ....................................................................... 47
Gambar 3.8 Output konversi huruf kecil ke besar ................................................ 49
Gambar 3.9 Output penyambungan antar string ................................................... 50
Gambar 3.10 Output stirng baru ........................................................................... 51
Gambar 3.11 Output modifikasi string ................................................................. 52
Gambar 3.12 Output array karakter string............................................................ 54
Gambar 3.13 Output tugas 1 ................................................................................. 57
Gambar 4.1 Hasil Output latihan 1........................................................................ 72
Gambar 4.2 Hasil Output latihan 2........................................................................ 73
Gambar 4.3 Hasil Output latihan 3........................................................................ 75
Gambar 4.4 Hasil Output latihan 4........................................................................ 77
Gambar 4.5 Hasil Output latihan 5........................................................................ 79
Gambar 4.6 Hasil Output latihan 6........................................................................ 80
Gambar 4.7 Hasil Output latihan 7........................................................................ 82
Gambar 4.8 Hasil Output latihan 8........................................................................ 84
Gambar 4.9 Hasil Output latihan 9........................................................................ 86
Gambar 4.10 Hasil Output latihan 10.................................................................... 87
Gambar 4.11 Hasil Output latihan 11.................................................................... 89
Gambar 4.12 Hasil Output latihan 12.................................................................... 91
Gambar 4.13 Hasil Output latihan 13.................................................................... 92
Gambar 4.14 Hasil Output latihan 14.................................................................... 93
Gambar 4.15 Hasil Output latihan 15.................................................................... 94
Gambar 4.16 Hasil Output latihan 16.................................................................... 96
Gambar 4.17 Hasil Output tugas 1 ...................................................................... 101
Gambar 5.1 Hirarki class dosen .......................................................................... 104
x
Gambar 5.2 class diagram untuk hirarki dosen ................................................... 104
Gambar 5.3 output Latihan 1............................................................................... 110
Gambar 5.4 output latihan 2 ................................................................................ 113
Gambar 5.5 output latihan 3 ................................................................................ 114
Gambar 5.6 output latihan 4 ................................................................................ 115
Gambar 5.7 output tugas 1 .................................................................................. 118
Gambar 6.1 output latihan 1 ................................................................................ 124
Gambar 6.2 output tugas 1 .................................................................................. 127
Gambar 7.1 output latihan 1 ................................................................................ 132
Gambar 7.2 output latihan 2 ................................................................................ 133
Gambar 7.3 output latihan 3 ................................................................................ 135
Gambar 7.4 output latihan 4 ................................................................................ 137
Gambar 7.5 output latihan 5 ................................................................................ 138
Gambar 7.6 output latihan 6 ................................................................................ 139
Gambar 8.1 output latihan 1.................................................................................148
Gambar 8.2 output latihan 2 ................................................................................ 148
Gambar 8.3 output latihan 3 ................................................................................ 149
Gambar 8.4 output latihan 4 ................................................................................ 151
Gambar 8.5 isi file di consle ................................................................................ 151
Gambar 8.6 Hasil Output latihan 5...................................................................... 152
Gambar 8.7 File Output.txt ................................................................................. 152
Gambar 8.8 Output pilihan 1 ............................................................................... 156
Gambar 8.9 Bukti output latihan 1 ...................................................................... 156
Gambar 8.10 Output pilihan 2 ............................................................................. 156
Gambar 8.11 Bukti output latihan 2 .................................................................... 156
Gambar 8.12 Output pilihan 3 ............................................................................. 157
Gambar 8.13 Output pilihan 4 ............................................................................. 157
Gambar 8.14 Bukti output pilihan 4 .................................................................... 157
Gambar 8.15 Output pilihan 5 ............................................................................ 157
Gambar 8.16 Bukti output pilihan 5 .................................................................... 157
Gambar 8.17 output tugas 1 ................................................................................ 158
xi
DAFTAR TABEL
xii
BAB I
INSTALASI JDK DAN NETBEANS
1
2
1.2.2 NetBeans
NetBeans adalah Integrated Development Environment (IDE)
berbasiskan Java dari Sun Microsystems yang berjalan diatas swing. Swing
sebuah teknologi Java untuk pengembangan aplikasi Dekstop yang dapat
berjalan di berbagai macam platforms seperti Windows, Linux, Mac OS X
and Solaris. NetBeans merupakan software development yang Open
Source, dengan kata lain software ini dibawah pengembangan bersama,
bebas biaya NetBeans merupakan sebuah proyek kode terbuka yang sukses
dengan pengguna yang sangat luas, komunitas yang terus tumbuh, dan
memiliki hampir 10 mitra. Sun Microsystems mendirikan proyek kode
terbuka NetBeans pada bulan Juni 2000 dan terus menjadi sponsor utama.
Gambar Gambar
1. 1 Setup
1.1jdk
Setup jdk
Tampilan gambar 1.1 menampilkan ikon jdk yang
kemudian akan dijalankan untuk diinstalasi. Caranya dengan
meng-klik dua kali gambar ikon.
Gambar
Gambar
1. 2 Tampilan
1.2 Tampilan
awalawal
instalasi
instalasi
JDKJDK
Gambar 1. 3 Proses
Gambar instalasi
1.3 Proses instalasi
Tampilan gambar 1.3 menampilkan gambar proses instalasi, dimana
aplikasi akan disimpan.
5
Pada baris ke-13. Sehingga program yang terbentuk seperti pada gambar 1.17
/*
package Praktikum;
/**
* @author admin */
Keterangan :
a. Syntax utama untuk program yang ditulis dengan
JAVA adalah:
[modifier][class] nama_class
{
…
}
Ada beberapa modifier pada JAVA, yaitu public, private dan
protected.
Modifier public diperlukan agar program dapat dikompilasi dengan
baik.
b. Bagian ini merupakan bagian utama yang ditempatkan pada bagian
awal pada program JAVA. static menunjukkan tipe method. Void
menunjukka n bahwa method tidak mengembalikan nilai atau objek.
Main merupakan nama method utama program JAVA. String
merupakan tipe argumen yang akan diterima sebagai parameter dari
command Java. args merupakan array argumen yang dapat
ditambahkan pada saat mengunakan command Java untuk
menjalankan program Java.
13
/**
*
14
* @author
admin */
public class PerkenalanJava {
public static void
main(String[] args) {
System.out.println("Hall
o sakinah");
}
}
1.4 Tugas
1. Buatlah sebuah program yang mencetak data
berikut :
Nama : Sakinah
Nim : 32601700023
Alamat : jalan taman udan riris 1 no.43
No.Telp : 0856-0215-2577
E-mail : sakinah@std.unissula.ac.id
15
a. Kode Program
package Praktikum;
public class Bab1 {
public static void main(String[] args) {
System.out.println("Nama : sakinah");
System.out.println("Nim : 32601700023");
System.out.println("Alamat : jalan taman udan riris 1
no.43");
System.out.println("No.Telp : 0856-0215-2577");
System.out.println("E-mail : sakinah@st.unissula.ac.id”);
}
}
b. Output
c. Penjelasan
Pada tampilan gambar 1.20 program ini terdiri dari satu class
dinamakan Bab1 yang menggunakan modifier public agar dapat
dikompilasi dengan baik. Didalam program class Bab1 terdapat satu
method yang dinamakan ‘main’ dengan modifier public agar dapat
dikompilasi dengan baik. Static merupakan non access modifier
yang digunakan agar method tidak perlu ditambahkan instance dari
kelas tersebut. Void menunjukkan method tidak mengembalikkan
nilai apapun. Bagian ini berisi perintah untuk menampilkan
beberapa data.
Dalam bagian ini terlihat perintah System.out.println
()yang digunakan untuk menampilkan data atau kalimat yang ada
di dalam kurung. Contoh pada Tugas, baris pertama akan
menampilkan “Nama : Sakinah” dan baris kedua akan menampilkan
16
2.1 Tujuan
Adapun tujuan dari praktikum bab 2 ini adalah sebagai berikut :
1. Praktikum dapat membuat variabel dengan benar.
2. Praktikum mampu menggunakan beberapa tipe data dalam berbagai
kepentingan.
3. Praktikum mampu menggunakan berbagai operator dan
mengimplementasikannya.
Beberapa tipe data yang dapat digunakan akan dibahas pada sub
bagian berikut.
17
18
PanjangJalur; Rata2 =
(x1 + x2) /2;
PanjangJalur = 1.5E3;
4. Boolean
Tipe data boolean hanya memilikai dua kemungkinan nilai, yaitu
benar atau salah.
Contoh :
Boolean Selesai;
Selesai = true;
5. Short
Tipe data dengan nilai 16 bit, merupakan tipe data yang menyimpan
bilangan bulat dan memiliki nilai minimum -32.768 dan nilai maksimum
+32.767. Sama halnya dengan bit, tipe data ini bisa digunakan untuk
angka-angka kecil dan bisa dipakai untuk menyatakan nilai array yang
lebih besar dari byte. (Minmin, 2013)
6. Byte
Byte juga hampir sama dengan integer, yang membedakan integer
adalah range yang lebih kecil dari integer. Byte memiliki range dari -128
sampai +127 dan menempati 1 byte (8 bits) di memory. (Minmin, 2013)
2.2.2 Operator
1. Operator Aritmatik
Operator-operator aritmatik di Java seperti pada umumnya terdiri
dari: penjumlahan (+), pengurangan (-), pembagian (/), perkalian (*), dan
modulo (%). Kode program pada gambar 2.1. berikut menunjukkan
operasi aritmatik untuk nilai A=100 dan B=30.
Menunjukkan output yang dihasilkan apabila pernyataan pada baris ke-16
diganti dengan :
float bagi = A/B
Disamping operator-operator dasar tersebut, ada beberapa cara
singkat untuk menuliskan operator aritmatika, seperti:
20
System.out.println("Nama : Sakinah");
System.out.println("Nim : 32601700023");
System.out.println("=====Calculator Sederhana");
System.out.println("Penjumlahan"+A+"+"+B+"="+jumlah);
System.out.println("Pengurangan"+A+"-"+B+"="+kurang);
System.out.println("Perkalian"+A+"*"+B+"="+kali);
System.out.println("Pembagian"+A+"/"+B+"="+bagi);
System.out.println("Modulo"+A+"%"+B+"="+modulo);
}
}
b. Output
Penjelasan:
Pada tampilan gambar 2.1 hasil output program kalkulator.
Program dengan menggunakan operator Aritmatika. Terdapat syntax
public static void main(String[]args)yang merupakan fungsi
utama dari suatu program atau tempat data suatu program yang akan di
output. Program ini menjelaskan tentang nilai dari suatu variabel yang
bertipe data Interger dijalankan melalui operator Aritmatika yaitu (+, -
, *, / dan %).
22
boolean lb = A > B;
boolean lk = A < B;
boolean lbs = A >= B;
boolean lks = A <= B;
boolean sm = A == B;
boolean tsm = A != B;
System.out.println("Nama :sakinah");
System.out.println("Nim :32601700023");
System.out.println("-------------------------");
b. Output
System.out.println("Nama :sakinah");
System.out.println("Nim :32601700023");
System.out.println("-------------------------");
System.out.println(A+" AND "+B+" => "+o_and);
System.out.println(A+" OR "+B+" => "+o_or);
System.out.println("NOT "+A+" => "+o_notA);
24
switch (C) {
case 1:
X = A + B;
break;
case 2:
X = A - B;
break;
case 3:
X = A * B;
break;
case 4:
X = A / B;
break;
default:
System.out.println("Perintah salah.");
break;
}
return X;
}
System.out.println("Nama :sakinah");
System.out.println("Nim :32601700023");
System.out.println("-------------------------");
System.out.println("Kalkulator sederhana");
System.out.println();
System.out.println("Masukkan angka pertama: ");
X = kb.nextFloat();
System.out.println("Masukkan angka kedua: ");
Y = kb.nextFloat();
System.out.println();
System.out.println("1. Tambah");
System.out.println("2. Kurang");
System.out.println("3. Kali");
26
System.out.println("4. Bagi");
System.out.println("Pilih operasi: ");
Z = kb.nextInt();
System.out.println();
System.out.println("Hasilnya adalah " + Calc(X,
Y, Z));
}
}
b. Output
System.out.println("Nama :sakinah");
System.out.println("Nim :32601700023");
System.out.println("-------------------------");
System.out.println("A = True");
System.out.println("B = False");
System.out.println("Maka");
System.out.println();
//And
x = A && B;
System.out.print("A AND B adalah " + x);
System.out.println();
//Or
x = A || B;
System.out.print("A OR B adalah " + x);
System.out.println();
//Not
x = !A;
29
x = !B;
System.out.print("NOT B adalah " + x);
System.out.println();
}
}
b. Output
c. Penjelasan
Pada gambar 2.9 merupakan tampilan dari program operator
logika, dengan menggunakan nama class tugas2. Memiliki tipe data int
sebagai nilai A dan B, serta menggunakan ekspresi boolean atau sejenis
data yang memiliki satu dari dua jenis saja yaitu TRUE atau FALSE.
pada fungsi AND bernilai TRUE jika semua kondisi argumen terpenuhi
dan bernilai FALSE jika salah satu argumen tidak terpenuhi.
Pada fungsi OR bernilai TRUE jika salah satu argumen atau
keduanya terpenuhi dan bernilai FALSE jika keduanya tidak terpenuhi
dan pada fungsi NOT bernilai TRUE jika pernyataan itu tidak terpenuhi
dan bernilai False jika pernyataan itu terpenuhi.
30
3. Tugas 3
Buatlah sebuah program yang melibatkan proses casting nilai pada sebuah
variabel.
a. Kode Program
//sakinah(32601700023)
package latihanBab2;
public class tugas3_bab2 {
public static void main(String[] args) {
int b=65;
String str;
str=Character.toString((char)b);
System.out.println("b="+str);
}
b. Output
2.4 Kesimpulan
Dari praktikum bab 2 ini dapat disimpulkan bahwasannya dalam
pengoperasian java terdapat beberapa tipe data seperti Karakter(Char),
Bilangan bulat (Integer), pecahan (Float, double), Boolean dan Short. Selain
itu, dalam pengoperasian java juga terdapat beberapa operator seperti
Aritmatika, Relasi, dan Logika dimana masing-masing operator memiliki
fungsi cara kerja yang berbeda-beda.
BAB III
ARRAY DAN STRING
3.1 Tujuan
Adapun tujuan dari praktikum ini adalah sebagai berikut :
1. Mengerti dan memahami penggunaan array dan string.
2. Mampu menggunakan beberapa operator dan method yang menyertai
penerapan array dan string.
32
33
Nilai
MahasiswaKe
Rata 2 Tugas UTS UAS
1 50 60 70
2 70 75 87
3 89 90 90
4 65 76 89
5 65 70 80
Nilai Huruf
Nilai > 80 A
Nilai ≤50 E
3.2.4 String
String merupakan deretan karakter. Pada java, string merupakan objek
dari kelas string. Penulisan string di lakukan dengann mengapit data
menggunakan tanda petik (ganda).
Contoh :
String judul = “ Pemrograman Berorientasi Objek”;
String dapat dioperasikan dengan menggunakan beberapa operator atau
method untuk beberapa kepentingan yang berbeda.
System.out.println("Penjualan ke-"+i+" =
"+penjualan[i]);
38
}
}
}
b. Output
int M = nilai[i].length;
double totNilai=0;
for(int j=0;j<M;j++){
totNilai+= nilai[i][j];
}
double rata2 = totNilai/M;
if (rata2 > 80.0d)
{
huruf='A';
}
else if (rata2 > 70.0d){
huruf='B';
}
else if (rata2 > 60.0d){
huruf='C';
}
else if (rata2 > 50.0d){
huruf='D';
}
else
{
huruf='E';
}
System.out.println("Nilai mahasiswa ke-"+1+"
= "+rata2+" ("+huruf+")");
}
}
b. Output
c. Penjelasan
Program pada gambar 3.2 adalah program untuk menentukan
nilai mahasiswa, didalam program tersebut menggunakan tipe data
double, integer, dan char. Dalam program diatas terdapat sintaks for
int nA = A.length();
int nB = B.length();
int nC = C.length();
tes3 = A.equals(E);
System.out.println("Nama : Sakinah");
System.out.println("NIM : 32601700023");
System.out.println("===============KESAMAAN DUA
STRING===============");
System.out.println("("+A+") == ("+B+") -->
"+tes1);
System.out.println("("+A+") == ("+C+") -->
"+tes2);
System.out.println("("+A+") == ("+E+") -->
"+tes3);
System.out.println("("+B+") == ("+D+") -->
"+B.equals(D));
System.out.println("("+C+") == ("+E+") -->
"+(C==E));
}
}
b. Output
String sementara;
int N = nama.length;
//pengurutan nama
for (int i=0; i<=N-2; i++)
{
44
c. Penjelasan
Program pada gambar 3.5 adalah program untuk melakukan
pembandingan karakter-karakter secara berurutan dari awal string,
untuk melakukan pembandingan tersebut dapat digunakan method
compareTo().Sebelumnya program menginisialisai isi untuk string
[] nama, didalam program tersebut juga terdapat fungsi for, yang
berfungsi untuk melakukan pengulangan. Kemudain untuk melakukan
pembandingan karakter-karakter menggunkan fungsi
if(nama[i].compareTo(nama[j])>0) dimana nama [i] akan di
compare ke nama [j]. Didalam fungsi if juga terdapat sementara =
nama[i] dimana yang dimaksud adalah isi dari nama [i]
diinisialisasikan ke sementara, dan begitupun selanjutnya.
6. Mendapatkan karakter pada posisi tertentu
a. Kode program
package Bab3;
import java.util.Random;
//Sakinah (32601700023)
public class Latihan6{
public static void main(String[] args) {
System.out.println("Nama : Sakinah");
System.out.println("NIM : 32601700023");
System.out.println("=====Mendapatkan
Karakter=====");
String A = "Laboratorium Komputasi dan Sistem
Cerdas";
Random rand = new Random();
for (int i=0; i<=10; i++){
int ke = rand.nextInt(A.length());
System.out.println("Karakter ke-"+ke" =
"+A.charAt(ke));
}
}
}
46
b. Output
System.out.println("Nama : sakinah");
System.out.println("NIM : 32601700023");
47
b. Output
System.out.println("Nama : Sakinah");
System.out.println("NIM : 32601700023");
System.out.println("=====Konversi huruf kecil ke
besar=====");
System.out.println("Kalimat awal : "+A);
System.out.println("Diubah ke huruf besar :
"+Besar);
System.out.println("Diubah ke huruf kecil :
"+Kecil);
}
}
49
b. Output
A = "Laboratorium ";
B = " Komputasi";
C = " Sistem Cerdas";
String Lab = A + B + C;
System.out.println("Nama : Sakinah");
System.out.println("NIM : 32601700023");
System.out.println("=====Penyambungan antar
string=====");
System.out.println(Lab);
}
50
}
b. Output
System.out.println("Nama : sakinah");
System.out.println("NIM : 32601700023");
51
System.out.println("=====Menmbuat String
Baru=====");
}
}
b. Output
System.out.println("Nama : Sakinah");
System.out.println("NIM : 32601700023");
}
b. Output
b. Output
3.4 Tugas
1. Membuat program antrian FIFO
a. Kode program
package Bab3;
//Sakinah (32601700023)
public class Tugas1 {
55
System.out.println("\n");
System.out.println(" ");
bacaAntrian(antrian);
System.out.println("\n\nURUTAN KELUAR\nQueue :
"+deQueue (antrian));
System.out.println("Queue : "+deQueue (antrian));
System.out.println("Queue : "+deQueue (antrian));
System.out.println("Queue : "+deQueue (antrian));
System.out.println("Queue : "+deQueue (antrian));
System.out.println ("\n\nSedangkan Mobil F masih
mengantri");
}
}
57
b. Output
3.5 Kesimpulan
Dari praktikum bab 3 ini dapat disimpulkan bahwa array merupakan
tipe data yang digunakan apabila data diberikan berupa kelompok data yang
disajikan secara berurutan. Setiap elemen data memiliki tipe data yang sama.
58
4.1 Tujuan
Adapun tujuan dari praktikum bab 4 ini adalah sebagai berikut :
1. Praktikan mampu memahami konsep dasar pemrograman java.
2. Praktikan dapat membedakan arti dan pemakaian kelas, objek, refrensi
objek, method, constructor, dan beberapa kata kunci dalam pemrograman
java.
59
60
Dalam bab ini akan dibahas konsep-konsep dasar yang merupakan inti
dari pemrograman berorientasi objek.
Beberapa hal yang merupakan keuntungan dari konsep pemrograman
berorientasi objek adalah sebagi berikut :
a. Objek-objek yang dibuat bersifat reusable, sehingga dapat digunakan
untuk program-program lain.
b. Struktur program lebih jelas, trackable, dan mudah untuk dikembangkan.
c. Lebih natural dan alami, karena pendekatan berorientasi objek lebih dekat
dengan realitas yang ada di sekitar kita.
Tipe method(daftar-parameter){
Pada praktiknya, dua tahap di atas biasanya ditulis dalam satu baris,
seperti berikut :
Karyawan Arena = new Karyawan();
4.2.7 Method
Dalam java, kelas berisi kumpulan data dan method yang selanjutnya
akan saling bekerja sama dalam melakukan tugas-tugas spesifik tertentu
dengan perilaku objek yang dimodelkan.
Berikut ini bentuk umum dari pembuatan method di dalam kelas.
Tipe namaMethod(daftar-parameter){
//kode yang akan dituliskan
}
Pada bentuk umum di atas, tipe adalah tipe data yang dikembalikan oleh
method. Sebagai catatan dalam java method terbagi menjadi dua : void dan
64
diperhatihan tipe data yang dikembalikan harus sama dengan tipe data nilai
yang dikembalikan. Cara kerja method non-void sama seperti fungsi
(function). (Timposu, 2016)
4.2.11 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. Default constructor akan menginisialisasi
semua data yang ada dengan nilai nol. Sama halnya seperti method,
constructor juga dapat memiliki parameter dan juga dapat di-overload.
yang kita definisikan di dalam kelas hanya dapat diakses oleh kelas-kelas
turunan dari kelas yang bersangkutan, maka data dan method tersebut harus
dideklarasikan dengan kata kunci protected.
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
}
}
Dalam hal ini tingkat-akses adalah salah satu dari kata kunci private,
public, maupun protected. Apabila kita tidak mencantumkan salah satu kata
kunci tersebut pada saat mendeklarasikan data maupun method, maka secara
default Java akan menganggapnya sebagai data atau method dengan sifat
public.
Berikut ini contoh program yang akan menunjukkan pengaruh dari
tingkat akses public dan private di dalam suatu kelas. Tingkat akses
protected akan dijelaskan lebih lanjut pada bab lain di modul ini, yaitu yang
membahas mengenai pewarisan sifat terhadap kelas turunan (inheritance).
deklarasi. Berikut ini contoh pendeklarasian sebuah data dan method statis
dalam suatu kelas.
class ContohDeklarasiStatik { //mendeklarasikan data statis
static int dataStatis1;
….
//mendeklarasikan method statis
Static methodStatis1() {….} ….
}
Melalui cara ini, variabel dataStatis1 dan methodStatis1() dapat
dipanggil secara langsung tanpa harus membuat objek atau instance dari
kelas ContohDeklarasiStatik terlebih dahulu.Sama halnya seperti data dan
method normal (non-statis), data dan method statis juga dapat dipanggil
melalui operator titik (.). Perbedaannya, pemanggilan data atau method
statis tidak perlu menggunakan objek referensi, melainkan nama kelas yang
memilikinya.
Bentuk umum dari pengaksesan data dan method statis dapat dituliskan
sebagai berikut:
NamaKelas.data
Atau
NamaKelas.method()
Aurel.ID = "K001";
Aurel.divisi = "Marketing";
Aurel.nama = "Aurel Dian";
Aurel.gaji = 2500000;
System.out.println("Data Karyawan");
System.out.println("ID : "+Aurel.ID);
System.out.prsssintln("Nama : "+Aurel.nama);
System.out.println("Divisi : "+Aurel.divisi);
System.out.println("Gaji : "+Aurel.gaji);
}
}
72
b. Output
Dhennis.gaji = 2250000;
//mencetak data-data object karyawan ke-1
System.out.println("ID : " + Aurel.ID);
System.out.println("Nama : " + Aurel.nama);
System.out.println("Divisi : " + Aurel.divisi);
System.out.println("Gaji : " + Aurel.gaji);
//mencetak data-data object karyawan ke-2
System.out.println("ID : " + Dhennis.ID);
System.out.println("Nama : " + Dhennis.nama);
System.out.println("Divisi : " + Dhennis.divisi);
System.out.println("Gaji : " + Dhennis.gaji);
}
}
b. Output
c. Penjelasan
Program pada gambar 4.2 adalah implementasi dari
classkaryawan. Pada program tersebut terdapat class Karyawan yang
berisi variabel ID, nama, divisi yang bertipe data string dan variabel
gaji yang bertipe data double. Program akan membuat object
karyawan yaitu Aurel dan Dhennis. Lalu program akan memasukan
nilai kedalam data object Aurel dan Dhennis seperti ID, nama, divisi
dan juga gaji. Setelah itu program akan mencetak data dalam object.
3. Latihan 3
Contoh pengaruh refrensi objek (1)
a. Kode program
//sakinah(32601700023)
package latihan3_bab4;
public class latihan3_bab4 {
String ID, nama, divisi;
double gaji;
}
}
b. Output
karyawan001.divisi);
System.out.println(" ");
System.out.println("Data Karyawan002");
System.out.println("Nama : " +
karyawan002.nama);
System.out.println("Divisi : " +
karyawan002.divisi);
}
}
b. Output
b. Output
b. Output
c. Penjelasan
Pada gambar 4.6 merupakan program pemanggilan method.
Pada program tersebut terdapat class Karyawan yang berisi method
cetakData dan juga method hitung Sumbangan Zakatdan juga
terdapat class ImplementasiMethodVoid1. Pada class
ImplementasiMethodVoid1 program akan membuat object baru
bernama karyawan001.Lalu program akan mengisi data kedalam
objectkaryawan001seperti ID, nama, divisi, dan gaji. Setelah
itu program akan memanggil methodvoid cetakData()yang ada pada
class Karyawan. Pada class Karyawan, method void
cetakData()akan menampilkan data karyawan seperti ID, nama,
divisi, dan juga gaji. Sedangkan pada methodhitungSumbanganZakat
program akan menghitung zakat berdasarkan perintah zakat = gaji
* 0,025. Apabila dijalankan program akan menampilkan tampilan
seperti pada gambar 4.6
7. Latihan 7
Pemanggilan method berparameter pada class karyawan
a. Kode program
ImplementasiMethodBerparameter.java
//sakinah (32601700023)
package latihan7_bab4;
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();
}
}
82
karyawan.java
//sakinah(32601700023)
package latihan7_bab4;
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);
}
double hitungSumbanganZakat() {
double zakat = gaji * 0.025;
return zakat;
}
b. Output
kode, Nama, Div, dan Gaji. Parameter ini selanjutnya dapat diisi
dengan nilai yang dikehendaki pada saat proses pemanggilan method
tersebut. Dalam contoh di atas, kita melewatkan nilai “K001”,
“Arzam”, “Marketing”, dan 2350000 sebagai argumen dari method
isiData() untuk mengisikan data ID, nama, divisi, dan gaji dari objek
Karyawan.
8. Latihan 8
Instansiasi objek karyawan dengan menggunakan contructor
a. Kode program
ImplementasiMethodConstructor.java
//sakinah(32601700023)
package latihan8_bab4;
public class ImplementasiContructor { public static
void main(String[] args) {
karyawan karyawan001 = new karyawan();
karyawan001.cetakData();
}
}
karyawan.java
//sakinah(32601700023)
package latihan8_bab4;
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);
84
c. Penjelasan
Pada gambar 4.8 user mengisikan nilai awal untuk data ID,
nama, divisi, dan gaji masing-masing dengan nilai “K001”, “Arzam”,
“Produksi”, dan 1750000. Hal ini berlaku untuk setiap pembentukan
objek Karyawan.
Proses inisialisasi dengan cara tersebut masih dapat dikatakan
kurang dinamis. Pasalnya, setiap kali pembentukan objek Karyawan,
nilai yang dijadikan nilai awal selalu “K001”, “Arzam”, “Produksi”,
dan 1750000. Untuk menjadikan constructor lebih bersifat dinamis,
maka kita dapat membubuhkan parameter ke dalamnya. Hal ini mirip
dengan implementasi method isiData()pada pembahadan method
berparameter yang sebelumnya sudah dibahas.
85
9. Latihan 9
Instansiasi objek karyawan dengan menggunakan constructor dinamis
a. Kode program
ImplementasiConstructorDinamis.java
//sakinah(32601700023)
package latihan9_bab4;
public class ImplementasiConstructorDinamis {
public static void main(String[] args) {
karyawan karyawan001 = new karyawan("k005",
"Bella", "HRD", 2150000);
karyawan001.cetakData();
}
}
karyawan.java
//sakinah(32601700023)
package latihan9_bab4;
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;
86
}
}
b. Output
this.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;
}
}
b. Output
c. Penjelasan
Pada gambar 4.11 merupakan program implementasi
overloadconstructor. Pada program tersebut terdapat classKaryawan
yang berisi 2constructor, method voidcetakData(), dan juga
method hitungSumbanganZakat dan juga terdapat
classImplementasiOverloadConstructor.
PadaclassImplementasiOverloadConstructor program akan
membuat object baru bernama karyawan001 dan karyawan002.
Lalu program akan memasukan data kedalam objectkaryawan001 dan
90
ipk = nilai;
}
public double getIPK() {
return ipk;
}
}
b. Output
}
b. Output
c. Penjelasan
Pada gambar 4.13 merupakan memanggil methodtest() tanpa
harus membuat objek atau instance dari kelas ContohStatic. Satu hal
lagi, methodtest() tidak dapat mengakses dataC, karena data tersebut
tidak dideklarasikan sebagai data statis. Sama halnya seperti data dan
method normal (non-statis), data dan method statis juga dapat
dipanggil melalui operator titik (.). Perbedaannya, pemanggilan data
atau method statis tidak perlu menggunakan objek referensi,
melainkan nama kelas yang memilikinya.
93
14. Latihan 14
Contoh pemanggilan data dan method statis
a. Kode program
//sakinah(32601700023)
package latihan14_bab4;
public class ContohStatic2 { public static void
main(String[] args) {
RobotStatic.nama = "Gathotkaca";
RobotStatic.asalNegara = "Indonesia";
RobotStatic.test();
}
}
//sakinah(32601700023)
package latihan14_bab4;
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);
}
}
b. Output
c. Penjelasan
Pada gambar 4.14 tampak jelas bahwa user dapat mengakses data
nama dan asalNegara beserta method test() dari kelas
RobotStatictanpa harus membentuk objek atau instance dari kelas
RobotStatic terlebih dahulu. Namun, yang perlu diperhatikan, kita
94
c. Penjelasan
Pada gambar 4.15 merupakan program kata kunci final. Pada
program tersebut terdapat class Pegawai yang berisi variabel string
nama, variabel finaldoublebonusLembur yang berisi nilai 50000
dan method doublehitungBonusLembur(doublejumlahLembur) dan
juga class ImplemetasiFinal. Pada class ImplemetasiFinal
program akan membuat object baru bernama Dhenis. Lalu program
memasukan data ke dalam object Dhenis seperti nama = Dhenis
Al-Mahandiz. Setelah itu program akan menampilkan tampilan data
karyawan dan juga program akan memanggil method
hitungBonusLembur yang berisi perkalian antara bonusLembur di
kali dengan jumlahLembur. Variable bonusLembur berisi5000dan
variabel jumlahLembur berisi 7 sehingga total bonus lembur sebesar
35000. Saat dieksekusi, program akan memberikan hasil seperti
gambar 4.15
16. Latihan 16
Implementasi konsep inner class
a. Kode program
//sakinah(32601700023)
package latihan16_bab4;
public class ImplementasiInnerClass {
public static void main(String[] args) {
Notebook myNotebook = new Notebook();
myNotebook.cetakdata();
}
}
//sakinah(32601700023)
package latihan16_bab4;
public class notebook {
private String merk = "Lenovo";
class SistemOperasi {
private String namaOS = "Windows 7";
public void cetakData() {
96
4.4 Tugas
1. Tugas 1
Buatlah sebuah program sederhana untuk menghitung IPK Mahasiswa
untuk 5 Mata Kuliah. Anda harus mengimplementasikan method
berparameter, constructor, object dan inner class pada aplikasi Anda.
a. Kode program
//sakinah(32601700023)
package tugas1_bab4;
import java.util.Scanner;
public static void daftar(double[]nilai, char[]huruf,
int[] sks){
System.out.println("==================================
================");
System.out.println("MatKuliah Nilai
Huruf Sks");
System.out.println("==================================
================");
System.out.println("PAI "+nilai[0]+"
"+huruf[0]+" "+sks[0]);
System.out.println("Pancasila "+nilai[1]+"
"+huruf[1]+" "+sks[1]);
System.out.println("Bahasa Inggris
"+nilai[2]+" "+huruf[2]+" "+sks[2]);
System.out.println("Sistem Operasi
"+nilai[3]+" "+huruf[3]+" "+sks[3]);
System.out.println("Basis Data "+nilai[4]+"
"+huruf[4]+" "+sks[4]);
}//Sub Program daftar yang akan diprint. berisi
parameter nilai, huruf dan sks.
double
totalsks=sks[0]+sks[1]+sks[2]+sks[3]+sks[4];
double ip=Total1/totalsks;
System.out.println("");
System.out.println("IPK = "+ip);
System.out.println("\n");
}//Menghitung hasil ip yang akan diprint. dengan
cara membagi total nilai dengan total jumlah sks.
sks[1]=input1.nextInt();
System.out.println("");
//Memberi inputan pada varibel nilai dan sks.
huruf[i]='D';
}
else if(nilai[i] >= 55 && nilai[i] <= 69){
angka[i]=2;
huruf[i]='C';
}
else if(nilai[i] >= 70 && nilai[i] <= 84){
angka[i]=3;
huruf[i]='B';
}
else if(nilai[i] >= 85 && nilai[i] <= 100){
angka[i]=4;
huruf[i]='A';
}
}//Menentukan batasan nilai angka dan nilai
huruf menggunakan For dan If.
}
}
101
b. Output
jika nilai <=100 maka nilai hururfnya adalah ‘A’. Untuk menghitung
nilai IPK maka dengan rumus nilai Total1 dibagi dengan totalsks,
sehingga apabila dijalankan maka akan muncul tampilan output
seperti pada gambar 4.17.
4.5 Kesimpulan
Kesimpulan dari praktikum bab 4 ini adalah Objek adalah entitas
dasar saat runtime. Pada saat Code program dieksekusi, objek berinteraksi
satu sama lain tanpa harus mengetahui detil data atau kodenya. Interaksi
antara objek ini dilakukan menggunakan suatu message.Pada
pemrograman berbasis objek, objek dijadikan sebagai komponen utama
dalam program, objek menggabungkan data dan fungsi sebagai satu
kesatuan. Dalam Pemrograman berbasis objek terdapat dua istilah yang
sangat terkenal yaitu class dan objek. Pengertiannya adalah sebagai berikut
class adalah cetak biru dari sebuah objek, jadi kita dapat membuat banyak
objek dari sebuah class, atau kita dapat analogikan, class itu adalah cetakan
puding, sedangkan objek adalah puding. Method didefinisikan pada class
akan tetapi dipanggil melalui object. Metode menentukan perilaku objek,
yakni apa yang terjadi ketika objek itu dibuat serta berbagai operasi yang
dapat dilakukan oleh objek.
BAB V
PEWARISAN (INHERITANCE)
5.1 Tujuan
Adapun tujuan dari praktikum bab 5 ini adalah sebagai berikut :
1. Praktikan mampu menterjemahkan UML ke dalam bentuk pemrograman.
2. Praktikan dapat membedakan pemakaian overloading dan overriding.
3. Praktikan mampu menerapkan konsep pewarisan, overloading dan
overriding dalam pemrograman dengan Java.
103
104
Pada Gambar 5.2 tersebut, 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().
(inheritence). class yang mewarisi sifat dari class lain disebut dengan
subclass. Sedangkan class yang mewarisi sifat dari class lain disebut dengan
superclass. Sifat yang diwariskan adalah filed dan method. Jadi, semua
subclass mempunyai filed dan metode yang ada pada superclass masing-
masing.
Satu class hanya dapat mempunyai sebuah superclass saja (single
inheritance). Tetapi dapat mempunyai banyak subclass. Java tidak
mengizinkan adanya pewarisan sifat lebih dari satu class atau (multiple
inheritance) dengan alasan dapat membingungkan. Namun, hubunga n
superclass dan subclass dapat terjadi secara bertingkat.
Dengan adanya pewarisan tidak perlu dilakukan definisi ulang kode
untuk filed dan metode dalam subclass. Dengan demikian, kode progr am
lebih ringkas dan mudah dikerjakan. Dengan mengedit filed dan metode pada
superclass, seluruh subclass juga akan mengikuti. Penentuan hierarki class
perlu difikirkan dengan masak. Jika tidak tepat, dapat menimbul ka n
kesulitan-kesulitan dimasa mendatang. Kesulitan dapat terjadi jika kondisi
lapangan yang berubah atau karena program harus dikembangkan lagi untuk
mengkomodasi fasilitas baru.
5.2.3 Overreding
Overriding adalah suatu cara untuk mendefinisikan ulang method yang
ada pada class induk apabila class anak mengingi nkan 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.
Konsep pewarisan pada contoh gambar 5.1 dapat dipadukan dengan
konsep overriding. Gambar 5.8 menunjukkan class dosen yang tidak jauh
berbeda dengan class dosen pada contoh 5.1.
Konsep overriding digunakan pada method view(). Method ini ditulis
ulang pada setiap subclass yaitu subclass rektor, dekan, dan kalab dengan
106
integer untuk signature (int x1, int x2). Sedangkan class jumlah yang kedua
memiliki nilai balikan yang bertipe double untuk signature (double y1,
double y2). Class yang dibentuk sebagaimana terlihat pada Gambar 5.15.
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 signatuer yang sama,
maka fungsi tersebut tidak dapat dikatakan sebagai overloading.
5.3 Latihan
Lakukan praktek di atas dan lakukan evaluasi
1. Latihan 1
a. Kode program
package bab5.latihan1;
//sakinah (32601700023)
public class dosen {
protected String nama;
protected String nik;
protected String jurusan;
//membuat constructor
dosen (String namaX, String nikX, String jurX) {
nama = namaX;
nik = nikX;
jurusan = jurX;
}
//menampilkan informasi
public void view(){
System.out.println("Nama: "+nama);
System.out.println("Nik: "+nik);
System.out.println("Jurusan: "+jurusan);
}
}
package bab5.latihan1;
//sakinah (32601700023)
public class rektor extends dosen{
private int th_mulai;
108
}
package bab5.latihan1;
//sakinah (32601700023)
public class kalab extends dosen{
private String laboratorium;
kalab(String namaX, String nikX, String jurX, String
labX) {
super(namaX, nikX, jurX);
109
laboratorium = labX;
}
public void viewkalab()
{
System.out.println("Laboratorium:
"+laboratorium);
}
}
package bab5.latihan1;
//sakinah (32601700023)
public class main {
public static void main (String [ ] args) {
rektor rek = new rektor ( " Andi " , " 885230202
" , " Informatika " , 2006 , 2 ) ;
dekan dek = new dekan ( " Ahmad " , " 995230101
" , " T.Kimia " , " TI " ) ;
kalab lab = new kalab ( " Indah " , " 035230302
" , " Informatika " , " KSC " ) ;
rek.view();
rek.viewRektor();
dek.view();
dek.viewdekan();
lab.view();
lab.viewkalab();
}
}
110
b. Output
c. Penjelasan
Pada gambar 5.3 merupakan hierarki class dosen, dimana class
dosen memiliki turunan class rektor dengan syntax public static
class rektor extends dosen, class dekan denagn syntax public
static class dekan extends dosen dan class kalab dengan syntax
public static class kalab extends dosen.
2. Latihan 2
a. Kode program
package bab5.latihan2;
//sakinah (32601700023)
public class dosen {
protected String nama;
protected String nik;
protected String jurusan;
//inisialisasi
System.out.println("Jurussan: "+jurusan);
}
}
package bab5.latihan2;
//sakinah (32601700023)
public class rektor extends dosen{
private int th_mulai;
private int jabatan_ke;
rektor(String namaX, String nikX, String jurusanX,
int thX, int keX) {
super(namaX, nikX, jurusanX);
th_mulai = thX;
jabatan_ke = keX;
}
public void view(){
super.view();
System.out.println("Tahun mulai: "+th_mulai);
System.out.println("Jabatan rektor ke:
"+jabatan_ke);
}
}
package bab5.latihan2;
//sakinah (32601700023)
public class dekan extends dosen{
private String fakultas;
b. Output
c. Penjelasan
Pada gambar 5.4 diatas merupakan konsep pewarisan yang
dipadukan dengan konsep overriding yang digunakan pada method
view(). Pada class dosen memiliki turunan class rektor dengan
syntax public static class rektor extends dosen, class dekan
denagn syntax public static class dekan extends dosen
dan class kalab dengan syntax public static class kalab
3. Latihan 3
a. Kode program
package bab5.latihan3;
//sakinah (32601700023)
public class mahasiswa {
public void infomahasiswa (int laki2, int perempuan,
String kelas)
{
int jumlah = laki2 + perempuan;
System.out.println(kelas+", Jumlah Mahasiswa =
"+jumlah);
114
}
public void infomahasiswa(int mhslama, int mhsbaru,
int mhscuti, int angkatan)
{
int jumlah = mhslama + mhsbaru + mhscuti;
System.out.println("Sampai Tahun "+angkatan+ "
Jumlah mahasiswa = "+jumlah);
}
}
package bab5.latihan3;
//sakinah (32601700023)
public class main {
public static void main(String[] args) {
mahasiswa m = new mahasiswa();
m.infomahasiswa(60, 18, "Kelas A angkatan 2008");
m.infomahasiswa(1000, 400, 25, 2008);
}
}
b. Output
c. Penjelasan
Pada gambar 5.5 diatas terdapat dua class infoMahasiswa dengan
signature yang berbeda. Pada program utama dilakukan pemanggilan
kedua fungsi yang di-overload dengan syntax M.infoMahasiswa(60,
18, "Kelas A ngkatan 2008");dan M.infoMahasiswa(1000,
400, 25, 2008);.
115
4. Latihan 4
a. Kode Program
package bab5.latihan4;
//sakinah (32601700023)
public class penjumlahan {
public int jumlah (int x1, int x2){
return (x1+x2);
}
//Bilangan real
public double jumlah (double y1, double y2){
return (y1+y2);
}
public static void main(String[] args) {
int x1=10, x2=15;
double y1=10.5, y2=15.8;
penjumlahan p = new penjumlahan();
System.out.println(x1+" + " +x2+ " = "
+p.jumlah(x1, x2));
System.out.println(x1+" + " +x2+ " = "
+p.jumlah(y1, y2));
}
}
b. Output
c. Penjelasan
Pada gambar 5.6 tersebut terdapat dua class bernama jumlah
dengan signature yang berbeda. Pada class pertama bertipe integer
untuk signature(int x1, int x2)dan pada class kedua bertipe
double untuk signature(double y1, double y2). Pada program
utama dilakukan pemanggilan fungsi terhadap kedua class yang di-
overload.
116
5.4 Tugas
1. Tugas 1
Buatlah sebuah class kendaraan dengan turunannya kedaraan darat,
kendaraan laut, kemudian diturunkan lagi menjadi sepeda motor dan
perahu layar. Kemudian buatlah fungsi-fungsi untuk menampilkan data
kendaraan berupa : kecepatan, kapasitas_tangki, tahun_keluar, warna,
daya_angkut_barang, daya_angkut_manusia dan total_daya_angkut.
a. Kode program
package tugas5.tugas1;
//sakinah (32601700023)
public class kendaraan {
protected String kecepatan;
protected String kapasitas_tangki;
protected String tahun_keluar;
protected String warna;
protected String daya_angkut_barang;
protected String daya_angkut_manusia;
protected String total_daya_angkut;
System.out.println("tahun_keluar :
"+tahun_keluar);
System.out.println("warna : "+warna);
System.out.println("daya angkut barang
:"+daya_angkut_barang);
System.out.println("daya angkut manusia :
"+daya_angkut_manusia);
System.out.println("total daya angkut :
"+total_daya_angkut);
}
public static class darat extends kendaraan{
darat(String kecepatanX, String
kapasitas_tangkiX, String tahun_keluarX, String warnaX,
String daya_angkut_barangX, String daya_angkut_manusiaX,
String total_daya_angkutX) {
super(kecepatan X , kapasitas _ tangki X , tahun
_ keluar X , warnaX , daya _ angkut _ barangX , daya _
angkut _ manusiaX , total_daya_angkutX);
}
public void viewdarat(){
System.out.println();
}
}
public static class laut extends kendaraan{
laut(String kecepatanX, String
kapasitas_tangkiX, String tahun_keluarX, String warnaX,
String daya_angkut_barangX, String daya_angkut_manusiaX,
String total_daya_angkutX) {
super(kecepatanX, kapasitas_tangkiX,
tahun_keluarX, warnaX, daya_angkut_barangX,
daya_angkut_manusiaX, total_daya_angkutX);
}
public void viewlaut(){
System.out.println();
}
}
public static void main(String[] args) {
118
c. Penjelasan
Pada gambar 5.7 merupakan program dengan beberapa class,
dimana class utama adalah class kendaraan lalu ada class turunan
yaitu class-class perahu dan sepeda motor. Konsep program ini sama
dengan program pada latihan 1. Untuk menjalankannya cukup di-run
pada main class-nya .
119
5.5 Kesimpulan
Kesimpulan dari bab 5 adalah Secara umum, inheritance,
encapsulation, dan polymorphism merupakan pilar dasar dalam bahasa
pemrograman OOP yaitu pemograman berorientasi objek. inheritance
merupakan penurunan atau pewarisan atribut dan method. Kata kunci untuk
inheritance adalah "extends". Inheritance merupakan penurunan atribut dan
method dari suatu kelas , kelas induk ke sub kelas, kelas anak. Pewarisan ini
bersifat menyeluruh sehingga semua attribute dan method yang di miliki
kelas super dapat diturunkan ke sub kelas. Inheritance / pewarisan
merupakan suatu subclass dapat mewarisi semua atau sebagian member dari
parent kelasnya untuk menerapkan inheritance dalam java kita harus
menambahkan keyword extends setelah deklarasi nama class kemudian
diikuti nama parent class-nya. Dalam inheritance semua file akan diwariskan
kecuali file bertipe private.
BAB VI
POLIMORIFISME
6.1 Tujuan
Adapun tujuan dari praktikum bab 6 ini adalah sebagai berikut :
1. Praktikum mampu menerapkan konsep polimorifisme dalam pemrogaman
dengan java.
120
121
System.out.println("Jenis Pesawat
adalah:"+jenis);
}
}
package bab6.latihan1;
//sakinah(32601700023)
public class mobil extends kendaraan{
private String nama;
private String jenis;
public mobil(String nama)
{
super ("Mobil");
this.nama = nama;
jenis = "Belum Teridentifikasi";
}
public mobil(String nama, String jenis)
{
super ("Mobil");
this.nama = nama;
this.jenis = jenis;
}
public void informasi()
{
System.out.println("Nama Mobil adalah :"+nama);
System.out.println("Jenis Mobil adalah:"+jenis);
}
}
package bab6.latihan1;
//sakinah(32601700023)
public class kapal extends kendaraan{
private String nama;
private String jenis;
public kapal(String nama)
{
super ("Kapal");
this.nama = nama;
jenis = "Belum Teridentifikasi";
}
123
b. Output
c. Penjelasan
Program 6.1 merupakan contoh program polimorfisme, dimana
terdapat sebuah superclass, dan super class tersebut di-extends ke
kelas-kelas extends-nya. Pada program tersebut terdapat beberapa
class dalam satu package. Class transportasi merupakan main class
(kelas utama) pada program tersebut. Class main ini juga nantinya yang
akan digunakan untuk me-run program, dan class lain tidak bisa. Pada
class transportasi terdapat syntax untuk memasukkan data ke dalam
class mobil, pesawat dan kapal. Salah satu syntax-nya yaitu pesawat
psw = new pesawat("Boeing 737","Pesawat komersial"); yang
merupakan syntax untuk menginputkan informasi ke class pesawat.
Class kendaraan merupakan super class yang bertugas
mendeklarasikan method yang akan dipakai di class-class extend-
nya. Class mobil, pesawat dan kapal merupakan class extend dari
kendaraan yang mengambil informasi pada class transportasi dan
terdapat syntax pada masing-masing class tersebut untuk
menampilkannya.
125
6.4 Tugas
1. Tugas 1
Buatlah semua program yang mengimplementasikan konsep
polymorphisme dari sebuah class dengan nama class hewan.
a. Kode program
package bab6.latihan2;
//sakinah(32601700023)
public class hewan {
private String model;
public hewan (String model)
{
this.model = model;
}
public void informasi(){}
}
package bab6. latihan2;
//sakinah(32601700023)
public class pemakan_daging extends hewan{
private String nama;
private String jenis;
public pemakan_daging(String nama)
{
super ("hewan");
this.nama = nama;
jenis = "Belum Teridentifikasi";
}
public pemakan_daging (String nama, String jenis)
{
super("hewan");
this.nama = nama;
this.jenis = jenis;
}
public void informasi()
{
System.out.println("Nama Hewan adalah :"+nama);
System.out.println("Jenis Hewan adalah: "+jenis);
}
126
}
package bab6.latihan2;
//sakinah(32601700023)
public class pemakan_tumbuhan extends hewan{
private String nama;
private String jenis;
public pemakan_tumbuhan(String nama)
{
super ("hewan");
this.nama = nama;
jenis = "Belum Teridentifikasi";
}
public pemakan_tumbuhan(String nama, String jenis)
{
super("hewan");
this.nama = nama;
this.jenis = jenis;
}
public void informasi()
{
System.out.println("Nama Hewan adalah :"+nama);
System.out.println("Jenis Hewan adalah: "+jenis);
}
}
package bab6.latihan2;
//sakinah(32601700023)
public class pemakan_segala extends hewan{
private String nama;
private String jenis;
public pemakan_segala(String nama)
{
super ("hewan");
this.nama = nama;
jenis = "Belum Teridentifikasi";
}
public pemakan_segala(String nama, String jenis)
{
super("hewan");
127
this.nama = nama;
this.jenis = jenis;
}
public void informasi()
{
System.out.println("Nama Hewan adalah :"+nama);
System.out.println("Jenis Hewan adalah: "+jenis);
}
}
package bab6.latihan2;
//sakinah(32601700023)
public class main {
public static void main(String[] args) {
hewan p;
pemakan_daging hwn1 = new
pemakan_daging("Singa","Karnivora");
pemakan_segala hwn2= new
pemakan_segala("Ayam","Omnivora");
pemakan_tumbuhan hwn3 = new
pemakan_tumbuhan("Kambing","Herbivora");
p = hwn1;
hwn1.informasi();
p = hwn2;
hwn2.informasi();
p = hwn3;
hwn3.informasi();
}
}
b. Output
c. Penjelasan
Program 6.2 merupakan program polimorfisme. Pada dasarnya
program tersebut sama dengan program pada latihan, hanya saja pada
program ini tentang hewan. Yang merupakan main class pada
program ini adalah class Hewan_hewan. Class hewan merupakan
super class sedangkan class pemakan_daging dan pemakan_tumbuhan
merupakan class extends dari class hewan.
6.5 Kesimpulan
Kesimpulan yang dapat diambil dari bab 6 adalah Polyforfisme
merupakan salah satu konsep penting dalam Object Oriented Programming
(OOP) khususnya dibahasa pemrograman Java setelah abstraction dan
inheritance. Polymorphism berarti banyak bentuk. Ada beberapa definisi
berbeda tentang polymorphism yang berkaitan dengan pemrograman
berorientasi objek. Sedangkan apa yang dimaksud dengan polymorphism
sendiri, sebenarnya sulit untuk didefinisikan. Sejalan dengan contoh yang
diberikan, Anda diharapkan dapat mengerti dan memahami konsep
polymorphism itu sendiri.Polyforfisme sering dikaitkan dengan penggunaan
lebih dari satu metoda dengan nama sama. Penggunaan metoda dengan
nama sama dapat diterapkan dengan method overloading dan method
overriding. Peran polymorphism sebenarnya tidak terbatas hanya pada hal
tersebut. Ada keterkaitan antara polymorphism dan inheritance (turunan).
BAB VII
PENANGANAN EKSEPSI
7.1 Tujuan
Adapun tujuan dari praktikum bab 7 ini adalah sebagai berikut :
1. Praktikum mampu menangani berbagai kesalahan dengan penanganan
eksepsi dalam pemrogaman java.
2. Saat kita membuat program, sebisa mungki n program kita terhindar dari
kesalahan. Namun, yang lebih penting adalah bagaimana dalam program
kita dapat mengantisipasi kemungkinan munculnya kesalahan pada saat
program kita dieksekusi. Java menyediakan sebuah mekani sme
penanganan kesalahan yang biasa disebut dengan exception-handling.
Dalam hal ini setiap kesalahan akan dibentuk menjadi objek.
129
130
array yang tidak ada, atau NumberFormatException, yang terjadi ketika kita
mencoba melalui parameter bukan angka dalam method Integer.parseInt.
7.3 Latihan
Melakukan praktek di atas dan melakukan evaluasi
1. Latihan 1
Contoh program yang menimbulkan eksepsi.
a. Kode program
package bab7.latihan1;
//sakinah(32601700023)
public class contoheksepsi_sakinah {
public static void main(String[] args) {
int[]arrayInteger = new int[5];
//SALAH, karena tidak terdapat indeks ke 7
arrayInteger[7] = 9;
}
}
b. Output
c. Penjelasan
Pada gambar 7.1 merupakan contoh program yang menimbulkan
eksepsi. Pada program tersebut terdapat variabel int[]
2. Latihan 2
Contoh implementasi blok trt-catch
a. Kode program
package bab7.latihan2;
//sakinah(32601700023)
public class contoheksepsi2_sakinah {
public static void main(String[] args) {
int pembilang = 7;
int penyebut = 0;
try{
int hasil = pembilang / penyebut;
System.out.println("hasil ="+hasil);
} catch (Exception e){
System.out.println("KESALAHAN :
"+"Terdapatpembagian dengan nol");
}
System.out.println("Statement setelah blok try
catch");
}
}
b. Output
c. Penjelasn
Pada gambar 7.2 merupakan contoh program try dan catch. Pada
program tersebut terdapat variabel pembilang dan penyebut yang
masing masing memiliki nilai 7 dan 0. Apabila di jalankan program
akan langsung menjalankan kondisi catch pada saat terjadi eksepsi yaitu
program akan menampilkan tampilan KESALAHAN: Terdapat
pembagian dengan nol. Namun bagian statemen yang dituliskan setelah
134
b. Output
c. Penjelasan
System.out.println("Kesalahan :"+"NIM
Mahasiswa tidak boleh null");
}
}
public String getnim(){
return nim;
}
public void setnama(String inputnama){
try{
nama = inputnama;
if (inputnama == null){
throw new NullPointerException();
}
}catch (NullPointerException npe){
System.out.println("Kesalahan :"+"Nama
mahasiswa tidak boleh null");
}
}
public String getnama(){
return nama;
}
}
class DemoThrow{
public static void main(String[] args) {
mahasiswa mhs = new mahasiswa();
mhs.setnim(null);
mhs.setnama("Sakinah");
System.out.println("\nNIM : "+mhs.getnim());
System.out.println("Nama : "+mhs.getnama());
}
}
137
b. Output
c. Penjelasan
Pada gambar 7.4 merupakan contoh program kata kunci throw.
Pada program tersebut terdapat class Mahasiswa dan class
DemoThrow. Didalam class Mahasiswa terdapat 3 method yaitu method
setNIM, method getNIM dan juga method setNama. Tampak seperti
pada gambar 7.4, ketika program melewatkan nilai null ke dalam
method setNIM() dari kelas Mahasiswa, program akan
membangkitkan eksepsi NullPointerException yang di lempar atau di
bangkitkan secara manual dengan menggunakan kata kunci throw.
Bagian statemen yang dituliskan setelah blok try-catch tetap akan
dieksekusi oleh program.
5. Latihan 5
Contoh penjelasan eksepsi dengan kata kunci throws
a. Kode program
package bab7.latihan5;
//sakinah(32601700023)
public class latihanthrows_sakinah {
public static void cobaeksepsi() throws
IllegalAccessException{
throw new IllegalAccessException("Kesalahan :
illegal acces");
}
public static void main(String[] args) {
try{
cobaeksepsi();
}catch (Exception e){
138
System.out.println("Eksepsi Di tangkap
disini");
System.out.println(e.getMessage());
}
System.out.println("Statement setelah blok try
catch");
}
}
b. Output
c. Penjelasan
Pada Gambar 7.5 merupakan contoh program kata kunci throws.
Pada program tersebut terdapat class DemoThrows dan juga method
cobaEksepsi yang berada di dalam class DemoThrows. Pada deklarasi
method cobaEksepsi() di atas, program menambahkan klausa throws
yang diikuti dengan nama eksepsi yang akan dilempar/dibangkitkan.
Melalui teknik seperti ini, compiler akan mengetahui bahwa method
tersebut dapat membangkitkan eksepsi IllegalAccessException
sehingga program dapat dikompilasi dengan sukses. Bagian statemen
yang dituliskan setelah blok try-catch tetap akan dieksekusi oleh
program.
6. Latihan 6
Contoh penggunaan kata kunci finally
a. Kode program
package bab7.latihan6;
//sakinah(32601700023)
public class demofinal_sakinah {
public static void cobaeksepsi (int pembilang, int
penyebut){
139
try{
int hasil = pembilang / penyebut;
System.out.println("hasil bagi :"+hasil);
int [] Arr = {1,2,3,4,5};
Arr[10] = 23;
}catch (ArithmeticException eksepsi1){
System.out.println("Terdapat pembagian dengan
angka 0");
}catch (ArrayIndexOutOfBoundsException eksepsi2){
System.out.println("Index di luar rentang");
}finally{
System.out.println("ini adalah statement di
blok finally");
}
}
public static void main(String[] args) {
cobaeksepsi (4,0);
System.out.println();
cobaeksepsi(12, 4);
}
}
b. Output
c. Penjelasan
Pada gambar 7.6 merupakan contoh program kata kunci finally.
Pada program tersebut terdapat class DemoFinally dan
didalamnya terdapat method cobaEksepsi. Didalam method
7.4 Tugas
1. Tugas 1
Membuat program penyisipan array dan di gunakan blok try-catch untuk
menangani kesalahannya
a. Kode program
package bab7.latihan6;
//sakinah(32601700023)
public class tugas1_sakinah;
public static void cobaeksepsi (int x, int y){
try {
int arr[];
int arr2[];
arr = new int[2];
arr2 = new int[3];
arr[0] = 1;
arr[1] = 2;
for (int i=0; i<arr.length; i++){
System.out.println(arr[i]+" ");
}
System.out.println();
arr2[0] = 1;
arr2[1] = 3;
arr2[2] = 2;
for (int i=0; i<arr2.length; i++){
System.out.println(arr2[i]+" ");
141
}
System.out.println();
}catch (ArrayIndexOutOfBoundsException eksepsi2){
System.out.println("Indeks Di luar ruang");
}
}
public static void main(String[] args) {
cobaeksepsi(3, 6);
}
}
b. Output
c. Penjelasan
PENANGANAN EKSEPSI
8.1 Tujuan
Adapun tujuan dari praktikum bab 8 ini adalah sebagai berikut :
1. Praktikan mampu mengenali dan memahami input dan output (I/O) dalam
pemrograman dengan Java.
2. Memperkenalkan beberapa kelas yang terdapat pada paket java.io yang
diperlukan untuk melakukan proses input dan output di dalam java
8.2 Dasar Teori
8.2.1 Pengertian Stream
Program Java melakukan proses I/O melalui stream. Stream adalah
sebuah abstraksi yang dapat memberikan atau mendapatkan informasi.
Stream dapat dihubungkan dengan peralatan fisik yang terdapat dalam system
I/O Java, seperti: keyboard, file, layar console, dan yang lainnya. Cara kerja
stream selalu sama, meskipun jenis peralatan yang terhubung dengan
stream tersebut berbeda. Ini artinya, sebuah stream input dapat
mengabstraksikan beberapa tipe peralatan fisik, seperti: keyboard, file,
atau socket jaringan. Begitu pula dengan stream output, yang dapat
dihubungkan dengan layar console, file, maupun koneksi jaringan. Dengan
demikian, stream akan memudahkan kita dalam melakukan proses I/O,
karena kode program yang kita tulis akan sama untuk masing-mai sng
peralatan fisik yang dihubungkan dengan stream bersangkutan.
8.2.2 Tipe Stream
Terdapat dua buah tipe stream yang dapat digunakan, yaitu: stream
byte dan stream karakter. Sesuai dengan namanya, stream byte digunakan
untuk memberikan atau menyimpan informasi data dalam bentuk byte,
misalnya untuk menulis dan membaca file biner. Sedangkan stream karakter
digunakan untuk melakukan proses I/O yang melibatkan data-data dalam
bentuk karakter , misalnya pada saat kita melakukan proses baca/tulis ke file
143
144
8.3 Latihan
1. Latihan 1
Program dengan proses input data karakter.
a. Kode program
package bab8.latihan1;
//sakinah(32601700023)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class inputkarakter {
public static void main(String[] args) throws
IOException {
System.out.print("Masukkan sebuah karakter : ");
char inputkarakter;
InputStreamReader isr = new
InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
inputkarakter = (char) br.read();
147
namaInput = br.readLine();
System.out.println("Halo "+ namaInput + "...");
System.out.println("Semoga Anda Sukses Selalu..");
}
}
b. Output
c. Penjelasan
Pada gambar 8.2 merupakan contoh program membaca input
data string. Pada program tersebut pertama program akan mengimport
package agar program dapat dijalankan dan tidak terjadi error.
Pada program tersebut mula-mula program akan menampilkan tampilan
Masukkan Nama Anda : yang nantinya akan di simpan di dalam
variabel char namaInput. Setelah itu program akan menangkap
inputan data yang telah di masukkan sebelumnya dengan perintah
setelah itu program akan menampilkan data yang telah di
inputkan sebelumnya.
3. Latihan 3
Contoh penjebakan beberapa tipe eksepsi
a. Kode program
package bab8.latihan3;
//sakinah(32601700023)
import java.io.*;
public class inputnumerik_sakinah {
public static void main(String[] args) throws
IOException {
String temp;
System.out.print("Masukkan sebuah bilangan bulat :");
149
c. Penjelasan
4. Latihan 4
Contoh penjebakan eksepsi dengan kata kunci throw
a. Kode program
package bab8.latihan4;
//sakinah(32601700023)
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class demobacafile_sakinah {
public static void main(String[] args) {
int data;
FileInputStream finput = null;
try{
finput = new FileInputStream("D:/Input.txt");
}
catch (FileNotFoundException fnfe){
System.out.println("File tidak ditemukan.");
return;
}
try{
while ((data = finput.read()) != -1) {
System.out.print((char) data);
}
}
catch (IOException ioe){
System.out.println(ioe.getMessage());
return;
}
try{
finput.close();
}
catch (IOException ioe){
}
}
}
151
b. Output
c. Penjelasan
Pada gambar 8.4 merupakan contoh program dasar-dasar baca
tulis file pada program java. Pada program tersebut pertama akan
mengimport package agar program dapat dijalankan dan tidak
terjadi error. Pada program tersebut terdapat statemen try dan catch.
Mula mula program akan membaca dan membuka file yang terletak
pada direktori D:. Apabila file yang ada didalam direktori tersebut ada,
maka program akan menjalankan statemen try dan jika tidak ada maka
program akan menjalankan statemen catch. Kemudian program akan
membuka dan membaca file tersebut dan menampilkanya kedalam
layar console
5. Latihan 5
Contoh penjelasan eksepsi dengan kata kunci throws
a. Kode program
package bab8.latihan5;
//sakinah(32601700023)
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class tulisfile_sakinah {
public static void main(String[] args) {
FileOutputStream foutput = null;
152
b. Penjelasan
Pada Gambar 8.6 merupakan contoh program input data numerik.
Pada program tersebut pertama akan mengimport package agar
program dapat dijalankan dan tidak terjadi error. pada program tersebut
terdapat statemen try dan catch. Pada program tersebut mula-mula
program akan menginisialisasi String data = "Hello Guys ! \n
Semoga \n Sukses selalu..". Setelah itu program akan membuka
file, apabila terjadi kesalahan maka program akan menjalankan
statemen try dan jika terjadi kesalahan maka program akan menjalankan
statemen catch. Setelah itu program kemudian akan menulis data String
sebelunya ke dalam file. Kemudian file akan terbentuk di direktori D:
dengan nama OUTPUT.txt
8.4 Tugas
1. Tugas 1
Membuat program penyisipan array dan di gunakan blok try-catch untuk
menangani kesalahannya
a. Kode program
package bab8.tugas1;
//sakinah(32601700023)
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Scanner;
public class ProgramFile {
public static void main(String[] args) {
int input;
Scanner baca = new Scanner(System.in);
System.out.println("Memilih Opsi Program
:");
System.out.println("1. Membuat File");
System.out.println("2. Mengisi File");
154
System.out.println();
FileOutputStream foutput = null;
if (input == 1) {
System.out.println("Membuat file
baru");
System.out.println("=================");
try {
foutput = new
FileOutputStream("D:/programfiles/netbeans/praktikumPBO
-sakinah/Bab8/tugas1/tugas8.txt");
foutput = new
FileOutputStream("D:/programfiles/netbeans/praktikumPBO
-sakinah/Bab8/tugas1/tugas8dat");
System.out.println("Pembuatan
file berhasil...");
} catch (FileNotFoundException fnfe)
{
System.out.println("File tidak
terbentuk.");
return;
}
} else if(input == 2) {
System.out.println("Mengisi data pada
file");
System.out.println("======================");
String teks = "Assalamualaikum\n";
try {
foutput = new
FileOutputStream("D:/programfiles/netbeans/praktikumPBO
-sakinah/Bab8/tugas1/tugas8txt");
155
foutput.write((int)teks.charAt(i));
}
System.out.println("File berhasil di
isi data...");
} catch (IOException ioe) {
System.out.println(ioe.getMessage());
return;
}
} else if(input == 3) {
System.out.println("Mengganti Nama Pada
File");
System.out.println("========================");
File coba = new
File("D:/programfiles/netbeans/praktikumPBO-
sakinah/Bab8/tugas1/tugas8.txt");
File baru = new
File("D:/programfiles/netbeans/praktikumPBO-
sakinah/Bab8/tugas1/tugas8baru.txt");
coba.renameTo(baru);
System.out.println("file berhasil
diganti nama...");
} else if(input == 4) {
System.out.println("Menghapus File");
System.out.println("==============");
File data = new
File("D:/programfiles/netbeans/praktikumPBO-
sakinah/Bab8/tugas1/tugas8.dat");
data.delete();
System.out.println("file berhasil
dihapus...");
} else {
156
misalnya pada saat kita melakukan proses baca/tulis ke file teks. Cara kerja
stream selalu sama, meskipun jenis peralatan yang terhubung dengan stream
tersebut berbeda. Ini artinya, sebuah stream input dapat mengabstraksikan
beberapa tipe peralatan fisik, seperti: keyboard, file, atau socket jaringan.
Begitu pula dengan stream Output, yang dapat dihubungkan dengan layar
console, file, maupun koneksi jaringan. Terdapat dua buah tipe stream yang
dapat digunakan, yaitu: stream byte dan stream karakter.
DAFTAR PUSTAKA