• Tidak ada hasil yang ditemukan

LAPORAN 5 ABSTRACT INTERFACE POLIMORFI

N/A
N/A
Protected

Academic year: 2017

Membagikan "LAPORAN 5 ABSTRACT INTERFACE POLIMORFI"

Copied!
37
0
0

Teks penuh

(1)

LAPORAN V

PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

Disusun untuk Memenuhi Matakuliah Praktikum Pemrograman Berorientasi Objek

Yang Dibimbing oleh Bapak Heru Wahyu Herwanto, S.T., M.Kom

Asisten Praktikum :

Roby Wahyudi

Jevri T.A

Oleh :

Ananda Putri Syaviri

130533608243

S1 PTI 2013 offering B

UNIVERSITAS NEGERI MALANG

FAKULTAS TEKNIK

JURUSAN TEKNIK ELEKTRO

(2)

LAPORAN KE-5

”ABSTACT & INTERFACE”

A. TUJUAN

1. Memahami class abstract

2. Memahami interface

3. Memahami polymorphism

B. DASAR TEORI

-

Kelas Abstrak (Abstract Class) .

Kelas abstrak adalah kelas yang terletak di posisi tertinggi dalam hierarki class.

Kelas ini tidak dapat diinstansiasi karena masih bersifat abstrak. Kelas ini hanya berisi

variabel-variabel umum dan deklarasi method tanpa detail implementasi. Selanjutnya

kelas - kelas yang menjadi turunan dari kelas abstrak lah yang akan

meng-implementasikan method-method tanpa implementasi tersebut.

-

Interface.

Interface memungkinkan pemrogram untuk berbagi konstanta atau menentukan bentuk

metode yang dapat digunakan oleh sejumlah kelas. Beda interface dengan kelas

abstrak:

1. Kelas abstrak dapat mengandung method abstract maupun method tidak abstract,

sedangkan interface hanya boleh mengandung method abstract.

2. Kelas abstrak dapat mendeklarasikan variabel instans, sedangkan interface hanya

dapat mendeklarasikan konstanta.

3. Kelas abstrak digunakan oleh kelas lain melalui metode pewarisan dengan kata

kunci extends, sedangkan sebuah interface diimplementasikan ke dalam suatu class

dengan menggunakan kata kunci implements, dan sebuah kelas dapat

mengimplementasikan lebih dari satu interface.

-

Polymorphism.

(3)

C. LATIHAN

Latihan 1 : Abstrack class.

Screenshoot syntax :

(override)

(4)

( 1 b

setelah method fuel pada class Vehicle menjadi abstract)

(5)

( 1 d

jelaskan mengapa langkah b dan c berbeda ).

Override berarti merubah suatu method, sehingga nantinya keluaran yang dihasilkan akan

berbeda, override berarti melakukan perubahan. Sedangkan langkah b adalah hanya

mengubah suatu method menjadi abstract yang artinya tidak memiliki isi. Sedangkan

override mengubah method dengan mengubah isinya juga. Jadi perbedaannya sangat jelas.

Keterangan :

Dalam class vehicle terdapat method function yang akan menampilkan keterangan alat

transportasi dan method fuel yang menampilkan keterangan fuel (bahan bakar), serta

method walk bertipe void.

Class aeroplan merupakan subkelas dari kelas vehicle . dalam class aeroplan terdapat

method override method abstract pada kelas vehicle.

Terdapat method walk dan fuel. Juga terdapat fungsi utama yang didalamnya terdapat

pendeklarasian pembuatan objek baru dari kelas aeroplan dan pemanggilan fungsi

function, walk dan fuel pada kelas vehicle.

(6)

(2 a

tambah 1 buah class untuk menguji program )

(7)

Screenshoot Jawaban : ( 2 a )

( 2 c  mengosongkan isi method boolean isEqual)

(8)

Keterangan :

Terdapat 3 class yaitu class relation, line dan class Uji relation.

Pada class relation terdapat pendeklarasian method isEqual, isGreater, isLess.

Pada class line terdapat pendefinisian dari method- method pada class relation.

Class uji relation digunakan untuk menguji kedua class tersebut ( untuk mengetahui

hasil keluaran dari 2 class tersebut).

Ketika pada point b dan c yaitu menghapus dan mengosongkan method isEqual maka

program diatas tidak dapat dieksekusi, karena pada program ini menggunakan operasi

aritmatika, jika isEqual tidak dicantumkan pada 2 class atau tidak menggunakan /

menyertakan isEqual. isEqual disini berarti “=” , “=” adalah operand penting dalam

operasi aritmatika jika = tidak ada , bagaimana caranya mengeksekusi operand jika

yang diketahui hanya operand dan hasil. Jadi itulah mengapa isEqual tetap harus

disertakan pada pendeklarasian method jika ingin mengoperasikan aritmatika.

Latihan 3 : Polymorphism

(9)

Screenshoot Jawaban :

Keterangan : terdapat 4 class

-

Dalam class staff : (subkelas dari pegawai)

Berisikan deklarasi variable gajistaff dan bonusstaff dengan private.

Berisikan deklarasi method gaji dan bonus.

(10)

Terdapat fungsi utama untuk pemanggilan fungsi dari method- method yang ada

pad class staff, pegawai dan direktur untuk mengetahui gaji yang akan dibayarkan

pada staff dan direktur.

-

Dalam class direktur : (subkelas pegawai)

Berisikan deklarasi variable gajiDir dan tunjangan dengan private.

Berisikan deklarasi method gaji dan tunjangan.

-

Dalam class pegawai : terdapat pendeklarasian variable nama, gaji dengan tipe

data string dan int.

Terdapat konstruktor method pegawai dan method gaji.

D. TUGAS PRAKTIKUM

Tugas 1 : Persegi Panjang

(11)
(12)

Screenshoot hasil :

Keterangan :

-

Dalam class Rect :

a) Menggunakan 4 variable utama yang menentukan titik sudut persegi panjang

( x1,x2,y1,y2)

b) Terdapat konstruktor utama , konstruktor panjang dan lebar yang didalamnya

terdapata width dan height, persegi 0.

c) Terdapat method move untuk menggeser persegi panjang

d) Method isInside untuk memeriksa satu titik di dalam persedi panjang

e) Method union untuk menggabung persegi panjang

f) Method instersection untuk mengetahui perpotongan dua persegi panjang.

g) Method toString untuk mengkonversi data persegi panjang ke string.

-

Dalam class UjiRect : terdapat fungsi utama yang didalamnya terdapat

pendeklarasian pembuatan objek baru dan pemanggilan fungsi dari method yang

ada pada class Rect.

E. TUGAS RUMAH

1)

Program bangun ruang

Syntax :

-

Lingkaran

class Lingkaran implements Poligon { // Deklarasi atribut

private double radius;

(13)

// Definisi method // Konstruktor

public Lingkaran(double r) { radius = r;

}

// Selector

public double getRadius() { return radius;

}

// Definisi method dari kelas induk public double Luas() {

return (PI*radius*radius); }

public double Keliling() { return (2*PI*radius); }

public String displayInfo() { return ( "Lingkaran"

+ "\no Jari-jari: " + (float)getRadius() + "\no Luas : " + (float)Luas()

+ "\no Keliling : " + (float)Keliling() ); }

}

-

SegiEmpat

class SegiEmpat implements Poligon { // Deklarasi atribut

private double panjang, lebar;

// Definisi method // Konstruktor

public SegiEmpat(double p, double l) { panjang = p;

lebar = l; }

// Selector

public double getPanjang() { return panjang;

}

public double getLebar() { return lebar;

}

// Definisi method dari kelas induk public double Luas() {

return (panjang*lebar); }

public double Keliling() { return (2*(panjang+lebar)); }

public String displayInfo() { return ( "Segi Empat"

(14)

+ "\no Lebar : " + (float)getLebar() + "\no Luas : " + (float)Luas()

+ "\no Keliling : " + (float)Keliling() ); }

}

-

SegiTiga

import java.lang.Math;

class SegiTiga implements Poligon { // Deklarasi atribut

private double alas, tinggi;

// Definisi method // Konstruktor

public SegiTiga(double a, double t) { alas = a;

tinggi = t; }

// Selector

public double getAlas() { return alas;

}

public double getTinggi() { return tinggi;

}

// Definisi method dari kelas induk public double Luas() {

return (alas*tinggi)/2; }

public double Keliling() { double d;

d = (double)Math.sqrt((alas*alas)+(tinggi*tinggi)); return (alas+tinggi+d);

}

public String displayInfo() { return ( "Segi Tiga"

+ "\no Alas : " + (float)getAlas() + "\no Tinggi : " + (float)getTinggi() + "\no Luas : " + (float)Luas()

+ "\no Keliling : " + (float)Keliling() ); }

}

-

Poligon

interface Poligon { // Deklarasi methode double Luas();

double Keliling(); String displayInfo(); }

-

TesPoligon

// Program utama class TesPoligon {

(15)

Poligon p[] = new Poligon[4];

SegiEmpat se = new SegiEmpat(17,8); SegiTiga sg = new SegiTiga(21,4); Lingkaran lg = new Lingkaran (10); Lingkaran lh = new Lingkaran (7);

//bentuk polimorfisme p[0] = se;

p[1] = sg; p[2] = lg; p[3] = lh;

Lingkaran x = new Lingkaran(8);

// Display informasi

for (int i=0; i < p.length; i++) {

System.out.println("\n"+p[i].displayInfo()); }

} }

Screenshoot jawaban :

Keterangan :

(16)

-

Program diatas menggunakan 5 class yaitu : Lingkaran, SegiEmpat, SegiTiga,

Poligon dan TesPoligon.

-

Class Lingkaran adalah subkelas dari Poligon yang berisikan :

a) Deklarasi atribut ( radius dan PI)

b) Definisi method konstruktur (radius)

c) Selector (getRadius)

d) Definisi method dari kelas induk (Luas, keliling, displayInfo)

e) Method displayInfo adalah pemanggilan fungsi dari getRadius, Luas dan

Keliling.

-

Class SegiEmpat adalah subkelas dari Poligon yang berisikan:

a)

Deklarasi atribut ( panjang dan lebar)

b)

Definisi method konstruktur (p dan l)

c)

Selector (getPanjang dan getLebar)

d)

Definisi method dari kelas induk (Luas, keliling, displayInfo)

e)

Method displayInfo adalah pemanggilan fungsi dari getPanjang, getLebar,

Luas dan Keliling.

-

Class SegiTiga adalah subkelas dari Poligon yang menggunakan

import.java.lang.Math (yang digunakan untuk operasi aritmatika), berisikan :

a) Deklarasi atribut ( alas, tinggi)

b) Definisi method konstruktor ( a, t)

c) Selector ( getAlas, getTinggi)

d) Definisi method dari kelas induk (Luas, Keliling, displayInfo).

e) Method displayInfo digunakan sebagai pemanggilan fungsi method getAlas,

getTinggi, Luas dan Keliling.

-

Class Poligon merupakan interface yang berisikan deklarasi method yang

digunakan oleh seluruh kelas yaitu Luas, Keliling, displayInfo.

-

Class TesPoligon adalah class fungsi utama yang berisikan deklarasi array dari

polygon, segiempat, segitiga, lingkaran.

Berisikan bentuk polimorfisme dan displayInformasi yang menggnakan

perulangan for untuk pemanggilan method displayInfo, sehingga nantinya

menghasilkan keluaran seperti pada screenshoot jawaban.

(17)

-

LinkPerpus

import java.util.Scanner;

class LinkPerpus{//mendeklarasikan class LinkPerpus private NodePerpus head, tail,bantu,bantu1; public int j;

//________________________________ public LinkPerpus(){

head = null; j=0;

}

//________________________________

public void TambahDepan (String Nama, int Nomor, String JenisBuku, String Buku, int Hari1, int Bayar){

NodePerpus Baru = new NodePerpus (Nama, Nomor, JenisBuku, Buku, Hari1, Bayar);

if (head == null){//operasi kondisi jika benar head = Baru;

tail = Baru; }

else{//operasi kondisi jika salah Baru.next = head;

head = Baru; }

j++; }

//_________________________________

public void TambahBelakang (String Nama, int Nomor, String JenisBuku, String Buku, int Hari1, int Bayar){

NodePerpus Baru = new NodePerpus (Nama, Nomor, JenisBuku, Buku, Hari1, Bayar);

if (head == null){//operasi kondisi jika benar head = Baru;

tail = Baru; }

else{//operasi kondisi jika salah tail.next = Baru;

tail = Baru; }

j++; }

//____________________________________

public void TambahTengah(String Nama, int Nomor, String JenisBuku, String Buku, int Hari1, int Bayar){

NodePerpus baru = new NodePerpus (Nama, Nomor, JenisBuku, Buku, Hari1, Bayar);

NodePerpus bantu = head;

if (j==1){//operasi kondisi jika benar

TambahDepan(Nama, Nomor, JenisBuku, Buku, Hari1, Bayar);

}

else {//operasi kondisi jika salah

if (head !=null)//operasi kondisi jika benar {

(18)

j++; }

//___________________________________ public NodePerpus HapusDepan(){ if (head != null){

NodePerpus temp = head; head = head.next;

temp.next = null; j--;

return temp; }

else{

System.out.print ("List Kosong"); return null;

} }

//___________________________________ public NodePerpus HapusBelakang(){ if (head != null){

NodePerpus bantu, temp; if (head.next == null){ temp = head;

head = tail = null; }

else{

bantu = head;

while(bantu.next!=tail){ bantu = bantu.next; }

temp = tail; tail = bantu; tail.next = null; }

j--; return temp; }

else{

System.out.print ("List Kosong"); return null;

} }

//________________________________ public void HapusTengah(int nodex){ bantu = head;

NodePerpus temp; if (nodex==1) HapusDepan(); else{

if (head != null){

for (int a=1; a<nodex-1; a++){ bantu = bantu.next;

}

temp = bantu.next; bantu.next = temp.next; temp.next = null;

} } j--; }

(19)

public void Bayar(){

Scanner input = new Scanner (System.in); NodePerpus bantu = head;

int Bay = bantu.Hari1*500;

System.out.println("Yang Harus Anda bayar : Rp."+Bay); System.out.print ("Jumlah Keterlambatan : ");

int Hr2 = input.nextInt(); int lambat = Hr2 * 300;

System.out.println ("Lambat "+Hr2+" hari");

System.out.println ("Denda : Rp." + lambat); int total = Bay + lambat;

System.out.println ("Total Bayar : Rp." + total); }

//__________________________________ public void editNama (String Nm) {

Scanner huruf = new Scanner(System.in); NodePerpus bantu = head;

while (bantu != null ){

if (bantu.Nama.compareTo (Nm)==0){

System.out.print ("Masukan Nama Baru :"); bantu.Nama = huruf.nextLine();

System.out.println ("--Edit Nama Berhasil--"); }

bantu=bantu.next; }

}

public void editNomor (int No1) {

Scanner input = new Scanner(System.in); NodePerpus bantu = head;

while (bantu != null ){ if (bantu.Nomor == No1){

System.out.print ("Masukan Nomor Baru :"); bantu.Nomor = input.nextInt();

System.out.println ("--Edit Jenis Buku Berhasil--"); } bantu=bantu.next; } } //____________________________________________________________

public void editJenisBuku (String Jb) { Scanner huruf = new Scanner(System.in); NodePerpus bantu = head;

while (bantu != null ){

if (bantu.JenisBuku.compareTo (Jb)==0){

System.out.print ("Masukan Jenis Buku Baru :"); bantu.JenisBuku = huruf.nextLine();

System.out.println ("--Edit Jenis Buku Berhasil--"); } bantu=bantu.next; } } //________________________________________________________________ public void editBuku (String Bk) {

Scanner huruf = new Scanner(System.in); NodePerpus bantu = head;

(20)

if (bantu.Buku.compareTo (Bk)==0){

System.out.print ("Masukan Buku Baru :"); bantu.Buku = huruf.nextLine();

System.out.println ("--Edit Buku Berhasil--"); }

bantu=bantu.next; }

}

//____________________________________ public void CariNama (String Nm){ NodePerpus bantu = head; String huruf=" ";

int r=0;

while (bantu != null){

if (bantu.Nama .compareTo (Nm) == 0){

System.out.println ("Nama : "+bantu.Nama);

System.out.println ("Nomor : "+bantu.Nomor);

System.out.println ("Jenis Buku : "+bantu.JenisBuku);

System.out.println ("Buku Yang Di Pinjam : "+bantu.Buku);

System.out.println ("Lama Peminjaman : "+bantu.Hari1);

r++; }

else

huruf = "---Data yang Anda Cari Tidak ada----"; bantu = bantu.next;

}

if (r==0)

System.out.print ("\n\t"+huruf+"\n\n"); }

//_________________________________________ public void CariNomor (int No){

NodePerpus bantu = head; String huruf=" ";

int r=0;

while (bantu != null){ if (bantu.Nomor == No){

System.out.println ("Nama : "+bantu.Nama);

System.out.println ("Nomor : "+bantu.Nomor);

System.out.println ("Jenis Buku : "+bantu.JenisBuku);

System.out.println ("Buku Yang Di Pinjam : "+bantu.Buku);

System.out.println ("Lama Peminjaman : "+bantu.Hari1);

} else

huruf = "---Data yang Anda Cari Tidak ada----"; bantu = bantu.next;

}

if (r==0)

(21)

//____________________________________ public void CariBuku (String Bk){ NodePerpus bantu = head; String huruf=" ";

int r=0;

while (bantu != null){

if (bantu.Buku .compareTo (Bk) == 0){

System.out.println ("Nama : "+bantu.Nama);

System.out.println ("Nomor : "+bantu.Nomor);

System.out.println ("Jenis Buku : "+bantu.JenisBuku);

System.out.println ("Buku Yang Di Pinjam : "+bantu.Buku);

System.out.println ("Lama Peminjaman : "+bantu.Hari1);

} else

huruf = "---Data yang Anda Cari Tidak ada----"; bantu = bantu.next;

}

if (r==0)

System.out.print ("\n\t"+huruf+"\n\n"); }

//____________________________________ public void CariJenisBuku (String JB){ NodePerpus bantu = head;

String huruf=" "; int r=0;

while (bantu != null){

if (bantu.JenisBuku .compareTo (JB) == 0){ System.out.println ("Nama : "+bantu.Nama);

System.out.println ("Nomor : "+bantu.Nomor);

System.out.println ("Jenis Buku : "+bantu.JenisBuku);

System.out.println ("Buku Yang Di Pinjam : "+bantu.Buku);

System.out.println ("Lama Peminjaman : "+bantu.Hari1);

} else

huruf = "---Data yang Anda Cari Tidak ada----"; bantu = bantu.next;

}

if (r==0)

System.out.print ("\n\t"+huruf+"\n\n"); }

//__________________________________

public void SortNomor(){ String temp1;

int temp2; String temp3; String temp4; int temp5;

(22)

NodePerpus bantu= head;

NodePerpus bantu1= head.next; for (int b=0; b<j-1; b++) {

if (bantu.Nomor > bantu1.Nomor) {

temp1 = bantu.Nama;

bantu.Nama = bantu1.Nama; bantu1.Nama = temp1;

temp2 = bantu.Nomor;

bantu.Nomor= bantu1.Nomor; bantu1.Nomor= temp2;

temp3 = bantu.JenisBuku;

bantu.JenisBuku = bantu1.JenisBuku; bantu1.JenisBuku = temp3;

temp4 = bantu.Buku;

bantu.Buku = bantu1.Buku; bantu1.Buku = temp4;

temp5 = bantu.Hari1;

bantu.Hari1 = bantu1.Hari1; bantu1.Hari1 = temp5;

}

bantu= bantu.next; bantu1=bantu1.next; }

} }

//_____________________________ public void SortNama() { String temp1;

int temp2; String temp3; String temp4; int temp5;

for (int a=0; a<j-1; a++) { NodePerpus bantu= head;

NodePerpus bantu1= head.next; for (int b=0; b<j-1; b++) {

if (bantu.Nama .compareTo (bantu1.Nama)>0) {

temp1 = bantu.Nama;

bantu.Nama = bantu1.Nama; bantu1.Nama = temp1;

temp2 = bantu.Nomor;

bantu.Nomor= bantu1.Nomor; bantu1.Nomor= temp2;

temp3 = bantu.JenisBuku;

bantu.JenisBuku = bantu1.JenisBuku; bantu1.JenisBuku = temp3;

temp4 = bantu.Buku;

bantu.Buku = bantu1.Buku; bantu1.Buku = temp4;

(23)

bantu.Hari1 = bantu1.Hari1; bantu1.Hari1 = temp5;

}

bantu= bantu.next; bantu1=bantu1.next; }

} }

//____________________________________ public void SortBuku() {

String temp1; int temp2; String temp3; String temp4; int temp5;

for (int a=0; a<j-1; a++) { NodePerpus bantu= head;

NodePerpus bantu1= head.next; for (int b=0; b<j-1; b++) {

if (bantu.Buku .compareTo (bantu1.Buku)>0) {

temp1 = bantu.Nama;

bantu.Nama = bantu1.Nama; bantu1.Nama = temp1;

temp2 = bantu.Nomor;

bantu.Nomor= bantu1.Nomor; bantu1.Nomor= temp2;

temp3 = bantu.JenisBuku;

bantu.JenisBuku = bantu1.JenisBuku; bantu1.JenisBuku = temp3;

temp4 = bantu.Buku;

bantu.Buku = bantu1.Buku; bantu1.Buku = temp4;

temp5 = bantu.Hari1;

bantu.Hari1 = bantu1.Hari1; bantu1.Hari1 = temp5;

}

bantu= bantu.next; bantu1=bantu1.next; }

} }

//____________________________________ public void SortJenisBuku() { String temp1;

int temp2; String temp3; String temp4; int temp5;

for (int a=0; a<j-1; a++) { NodePerpus bantu= head;

NodePerpus bantu1= head.next; for (int b=0; b<j-1; b++) {

if (bantu.JenisBuku .compareTo (bantu1.JenisBuku)>0) {

(24)

bantu.Nama = bantu1.Nama; bantu1.Nama = temp1;

temp2 = bantu.Nomor;

bantu.Nomor= bantu1.Nomor; bantu1.Nomor= temp2;

temp3 = bantu.JenisBuku;

bantu.JenisBuku = bantu1.JenisBuku; bantu1.JenisBuku = temp3;

temp4 = bantu.Buku;

bantu.Buku = bantu1.Buku; bantu1.Buku = temp4;

temp5 = bantu.Hari1;

bantu.Hari1 = bantu1.Hari1; bantu1.Hari1 = temp5;

}

bantu= bantu.next; bantu1=bantu1.next; }

} }

//_________________________________________

public void DisplayList(){ if(head != null){

NodePerpus bantu = head;

System.out.println ("DAFTAR PEMINJAM BUKU"); while(bantu != null){

System.out.println ("Nama : "+bantu.Nama);

System.out.println ("Nomor : "+bantu.Nomor);

System.out.println ("Jenis Buku : "+bantu.JenisBuku);

System.out.println ("Buku Yang Di Pinjam : "+bantu.Buku);

System.out.println ("Lama Peminjaman : "+bantu.Hari1);

bantu = bantu.next; }

System.out.print (" "); }

else

System.out.println ("Data Kosong"); }

//____________________________________ }

-

NodePerpus

class NodePerpus{//mendeklarasikan class NodePerpus public String Nama;

public String Buku; public String JenisBuku; public int Hari1;

public int Nomor; public int Bayar;

(25)

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

public NodePerpus (String Nm, int No, String JB, String Bk, int Hr1, int By){

Nama = Nm; Buku = Bk; Hari1 = Hr1; JenisBuku = JB; Nomor = No; Bayar = By; next = null; }

}

-

Perpus

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

class Perpus{//mendeklarasikan class perpus

public static void main(String[] args)throws Exception{ Scanner In = new Scanner (System.in);

LinkPerpus List = new LinkPerpus();

BufferedReader input = new BufferedReader(new InputStreamReader(System.in));

int n, No, Pil, Pil1, Pilih0, Pilih, Pilih1,Ind, Hr1, By, lambat,No1;

char lagi, lagi1;

String Nm, JB,JB1, Cari, Nama,Nm1; String Bk,Bk1; NodePerpus Hapus; // do { System.out.println("\n"); System.out.println ("| KOLEKSI BUKU YANG KAMI SEDIAKAN |");

System.out.println

("+====+==========+==============+============+================+== ================+");

System.out.println ("| NO | 1. Agama | 2. Kamus | 3. Komputer| 4. Kuliner | 5. Bisnis |");

System.out.println

("+====+==========+==============+============+================+== ================+");

System.out.println ("| 1 | Fiqih | Bhs.Indonesia| Java | Masakan Sunda | Mari Merintis |");

System.out.println ("| 2 | Tasawuf | Bhs.Inggris | C++ | Masakan Padang | Tanaman Hias |");

System.out.println ("| 3 | Akhlak | Bhs.Prancis | C# | Khas Jawa | Keripik Pedas |");

System.out.println ("| 4 | Aqidah | Bhs.Jepang | PHP | Resep Karuhun | Online Shop |");

System.out.println ("| 5 | Al-Qur'an| Bhs.Mandarin | HTML | Resep Modern | Kreatif Bisnis |");

System.out.println

("+====+==========+==============+============+================+== ================+");

System.out.println ("|--MENU UTAMA-- |");

System.out.println ("| PILIH MENU BERIKUT : |");

(26)

System.out.println ("| 2. Edit Data |");

System.out.println ("| 3. Hapus Data |");

System.out.println ("| 4. Pengurutan |");

System.out.println ("| 5. Searching |");

System.out.println

("+===========================================+"); System.out.print ("| PILIHAN ANDA : "); Pil1 = In.nextInt ();

switch (Pil1){ case 1 :

do{

System.out.println

("+===========================================+");

System.out.println ("| PILIH MENU BERIKUT |");

System.out.println ("| 1. Peminjaman |");

System.out.println ("| 2. Pengembalian |");

System.out.println ("| 3. Daftar Peminjam |");

System.out.println

("+===========================================+"); System.out.print ("| PILIHAN ANDA : "); Pilih0 = In.nextInt();

switch(Pilih0) { case 1:

System.out.print("| Banyak Data Yang Akan Di Inputkan : ");

n = In.nextInt();

for (int J=0; J<n; J++){ System.out.println

("+===========================================+");

System.out.println ("| PROSES PEMINJAMAN BUKU |");

System.out.println

("+===========================================+");

System.out.println ("| Isi Data Berikut :");

System.out.print("| Nama : ");

Nm = input.readLine();

System.out.print("| Nomor : ");

No = In.nextInt();

System.out.print("| Jenis Buku (Huruf KaPital) : ");

JB = input.readLine();

if (JB.compareTo("AGAMA")==0){

System.out.print ("| Pilih Buku(Huruf Kapital) : ");

Bk = input.readLine();

if (Bk.compareTo("FIQIH")==0){ System.out.println ("| Buku yang Anda Pilih : FIQIH");

(27)

else if (Bk.compareTo("TASAWUF")==0){

System.out.println ("| Buku yang Anda Pilih : TASAWUF");

}

else if (Bk.compareTo("AKHLAK")==0){

System.out.println ("| Buku yang Anda Pilih : AKHLAK");

}

else if (Bk.compareTo("AQIDAH")==0){

System.out.println ("| Buku yang Anda Pilih : AQIDAH");

}

else if (Bk.compareTo("AL-QUR'AN")==0){

System.out.println ("| Buku yang Anda Pilih : AL-QUR'AN");

} else{

System.out.println(" | Ma'af, Buku Yang Anda Pilih Belum Terdaftar");

}

System.out.print("| Lama Peminjaman : ");

Hr1 = In.nextInt(); By = Hr1 * 500;

System.out.println ("| Yang Harus Anda Bayar : Rp."+By+",-");

System.out.println ("+===========================================+");

List.TambahDepan (Nm, No, JB, Bk, Hr1, By);

System.out.println("\n"); }

else if (JB.compareTo("KAMUS")==0){ System.out.print ("| Pilih Buku(Huruf Kapital) : ");

Bk = input.readLine();

if (Bk.compareTo("MASAKAN SUNDA")==0){

System.out.println ("| Buku yang Anda Pilih : BAHASA INDONESIA");

}

else if (Bk.compareTo("MASAKAN PADANG")==0){

System.out.println ("| Buku yang Anda Pilih : BAHASA INGGRIS");

}

else if (Bk.compareTo("KHAS JAWA")==0){

System.out.println ("| Buku yang Anda Pilih : BAHASA PRANCIS");

}

else if (Bk.compareTo("RESEP KARUHUN")==0){

System.out.println ("| Buku yang Anda Pilih : BAHASA JEPANG");

(28)

else if (Bk.compareTo("RESEP MODERN")==0){

System.out.println ("| Buku yang Anda Pilih : BAHASA MANDARIN");

} else{

System.out.println("| Ma'af, Buku Yang Anda Pilih Belum Terdaftar");

}

System.out.print("| Lama Peminjaman : ");

Hr1 = In.nextInt(); By = Hr1 * 500;

System.out.println ("| Yang Harus Anda Bayar : Rp."+By+",-");

System.out.println ("+===========================================+");

List.TambahDepan (Nm, No, JB, Bk, Hr1, By);

System.out.println("\n"); }

else if (JB.compareTo("KOMPUTER")==0){ System.out.print ("| Pilih

Buku(Huruf Kapital) : ");

Bk = input.readLine();

if (Bk.compareTo("JAVA")==0){ System.out.println ("| Buku yang Anda Pilih : JAVA");

}

else if (Bk.compareTo("C++")==0){ System.out.println ("| Buku yang Anda Pilih : C++");

}

else if (Bk.compareTo("C#")==0){ System.out.println ("| Buku yang Anda Pilih : C#");

}

else if (Bk.compareTo("PHP")==0){ System.out.println ("| Buku yang Anda Pilih : PHP");

}

else if (Bk.compareTo("HTML")==0){ System.out.println ("| Buku yang Anda Pilih : HTML");

} else{

System.out.println("| Ma'af, Buku Yang Anda Pilih Belum Terdaftar");

}

System.out.print("| Lama Peminjaman : ");

Hr1 = In.nextInt(); By = Hr1 * 500;

System.out.println ("| Yang Harus Anda Bayar : Rp."+By+",-");

System.out.println ("+===========================================+");

List.TambahDepan (Nm, No, JB, Bk, Hr1, By);

(29)

}

else if (JB.compareTo("KULINER")==0){ System.out.print ("| Pilih Buku(Huruf Kapital) : ");

Bk = input.readLine();

if (Bk.compareTo("MASAKAN SUNDA")==0){

System.out.println ("| Buku yang Anda Pilih : MASAKAN SUNDA");

}

else if (Bk.compareTo("MASAKAN PADANG")==0){

System.out.println ("| Buku yang Anda Pilih : MASAKAN PADANG");

}

else if (Bk.compareTo("KHAS JAWA")==0){

System.out.println ("| Buku yang Anda Pilih : KHAS JAWA");

}

else if (Bk.compareTo("RESEP KARUHUN")==0){

System.out.println ("| Buku yang Anda Pilih : RESEP KARUHUN");

}

else if (Bk.compareTo("RESEP MODERN")==0){

System.out.println ("| Buku yang Anda Pilih : RESEP MODERN");

} else{

System.out.println("| Ma'af, Buku Yang Anda Pilih Belum Terdaftar");

}

System.out.print("| Lama Peminjaman : ");

Hr1 = In.nextInt(); By = Hr1 * 500;

System.out.println ("| Yang Harus Anda Bayar : Rp."+By+",-");

System.out.println ("+===========================================+");

List.TambahDepan (Nm, No, JB, Bk, Hr1, By);

System.out.println("\n"); }

else if (JB.compareTo("BISNIS")==0){ System.out.print ("| Pilih Buku(Huruf Kapital) : ");

Bk = input.readLine(); if (Bk.compareTo("MARI MERINTIS")==0){

System.out.println ("| Buku yang Anda Pilih : MARI MERINTIS");

}

else if (Bk.compareTo("TANAMAN HIAS")==0){

(30)

}

else if (Bk.compareTo("KERIPIK PEDAS")==0){

System.out.println ("| Buku yang Anda Pilih : KERIPIK PEDAS");

}

else if (Bk.compareTo("ONLINE SHOP")==0){

System.out.println ("| Buku yang Anda Pilih : ONLINE SHOP");

}

else if (Bk.compareTo("KREATIF BISNIS")==0){

System.out.println ("| Buku yang Anda Pilih : KREATIF BISNIS");

} else{

System.out.println("| Ma'af, Buku Yang Anda Pilih Belum Terdaftar");

}

System.out.print("| Lama Peminjaman : ");

Hr1 = In.nextInt(); By = Hr1 * 500;

System.out.println ("| Yang Harus Anda Bayar : Rp."+By+",-");

System.out.println ("+===========================================+");

List.TambahDepan (Nm, No, JB, Bk, Hr1, By); System.out.println("\n"); } } break; case 2 :

System.out.println

("+===========================================+");

System.out.println ("| PROSES PENGEMBALIAN BUKU |");

System.out.println

("+===========================================+");

System.out.print ("| Masukan Nama Anda : ");

Nm1 = input.readLine(); List.CariNama (Nm1); List.Bayar();

break; case 3 :

System.out.println

("+===========================================+");

System.out.println ("| DAFTAR PEMINJAM |");

System.out.println

("+===========================================+"); List.DisplayList();

System.out.print (" "); break;

(31)

}

System.out.print ("\tPilihan Pelayanan Lagi (y/t)? ");

lagi = In.next().charAt(0); }

while (lagi == 'y' || lagi == 'Y'); break;

case 2 : do{

System.out.println

("+===========================================+");

System.out.println ("| PILIH EDIT BERIKUT |");

System.out.println ("| 1. Edit Nama |");

System.out.println ("| 2. Edit Nomor |");

System.out.println ("| 2. Edit Jenis Buku |");

System.out.println ("| 3. Edit Judul Buku |");

System.out.println

("+===========================================+"); System.out.print ("| PILIHAN ANDA : "); Pilih0 = In.nextInt();

switch (Pilih0) { case 1 :

System.out.print ("Masukan Nama Yang Ingin Di Edit : ");

Nm1 = input.readLine(); List.editNama(Nm1); System.out.println(" "); break;

case 2 :

System.out.print ("Masukan Nomor Yang Ingin Di Edit : ");

No1 = In.nextInt(); List.editNomor(No1); System.out.println(" "); case 3 :

System.out.print ("Masukan Jenis Buku Yang Ingin Di Edit : ");

JB1 = input.readLine(); List.editJenisBuku(JB1); System.out.println(" "); case 4 :

System.out.print ("Masukan Nama Buku Yang Ingin Di Edit : ");

Bk1 = input.readLine(); List.editBuku(Bk1); System.out.println(" "); break;

default : System.out.print("Data yang mau diEdit Tidak ada pilihan");

}

System.out.print ("\tPilihan Edit Lagi (y/t)? "); lagi = In.next().charAt(0);

}

(32)

case 3 : do{

System.out.println

("+===========================================+");

System.out.println ("| PILIH HAPUS BERIKUT |");

System.out.println ("| 1. Hapus dari Depan |");

System.out.println ("| 2. Hapus dari Tengah |");

System.out.println ("| 3. Hapus dari Belakang |");

System.out.println

("+===========================================+"); System.out.print ("| PILIHAN ANDA : "); Pilih0 = In.nextInt();

switch (Pilih0) { case 1 :

List.HapusDepan(); System.out.print (" "); break;

case 2 :

System.out.print("Data Yang Ingin Di Hapus, Di List Ke- :");

int nodex = In.nextInt(); List.HapusTengah(nodex); System.out.print (" "); break;

case 3 :

List.HapusBelakang(); System.out.print (" "); break;

default : System.out.print("Tidak ada pilihan"); }

System.out.print ("\tPilihan Hapus Lagi (y/t)? "); lagi = In.next().charAt(0);

}

while (lagi == 'y' || lagi == 'Y'); break;

case 4 : do{

System.out.println

("+===========================================+");

System.out.println ("| PILIH PENGURUTAN BERIKUT |");

System.out.println ("| 1. Pengurutan Menurut Nomor |");

System.out.println ("| 2. Pengurutan Menurut Nama |");

System.out.println ("| 3. Pengurutan Menurut Jenis Buku |");

System.out.println ("| 4. Pengurutan Menurut Judul Buku |");

System.out.println

("+===========================================+"); System.out.print ("| PILIHAN ANDA : "); Pilih0 = In.nextInt();

(33)

List.SortNomor(); List.DisplayList(); System.out.println(" ");

System.out.println("Telah Berhasil MengUrutkan Berdasarkan Nomor.");

System.out.println(" "); break;

case 2 :

List.SortNama(); List.DisplayList(); System.out.println(" ");

System.out.println("Telah Berhasil MengUrutkan Berdasarkan Nama.");

System.out.println(" "); break;

case 3 :

List.SortJenisBuku(); List.DisplayList(); System.out.println(" ");

System.out.println("Telah Berhasil MengUrutkan Berdasarkan Judul Buku.");

System.out.println(" "); break;

case 4 :

List.SortBuku(); List.DisplayList(); System.out.println(" ");

System.out.println("Telah Berhasil MengUrutkan Berdasarkan Judul Buku.");

System.out.println(" "); break;

default : System.out.print("Tidak ada pilihan"); }

System.out.print ("\tPilihan Pengurutan Lagi (y/t)? ");

lagi1 = In.next().charAt(0); }

while (lagi1 == 'y' || lagi1 == 'Y'); break;

case 5 : do{

System.out.println

("+===========================================+");

System.out.println ("| PILIH PENCARIAN BERIKUT |");

System.out.println ("| 1. Cari Berdasarkan Nama |");

System.out.println ("| 2. Cari Berdasarkan Nomor |");

System.out.println ("| 3. Cari Berdasarkan Jenis Buku |");

System.out.println ("| 4. Cari Berdasarkan Judul Buku |");

System.out.println

("+===========================================+"); System.out.print ("| PILIHAN ANDA : "); Pilih0 = In.nextInt();

(34)

System.out.print ("Masukan Nama : "); Nm1 = input.readLine();

List.CariNama(Nm1); break;

case 2 :

System.out.print ("Masukan Nomor : "); No1= In.nextInt();

List.CariNomor(No1); break;

case 3 :

System.out.print ("Masukan Judul Buku : ");

Bk1= input.readLine(); List.CariBuku(Bk1); break;

case 4 :

System.out.print ("Masukan Jenis Buku : ");

JB1= input.readLine(); List.CariJenisBuku(JB1); break;

default: System.out.println("--Data Yang Dicari Tidak Ada--");

}

System.out.println(" ");

System.out.print ("\tPilihan Pencarian Lagi (y/t)? ");

lagi1 = In.next().charAt(0); System.out.println(" "); }

while (lagi1 =='y' || lagi1 == 'Y' ); break;

}

System.out.print ("\n");

System.out.print ("Kembali Ke Menu Utama (y/t)? "); lagi = In.next().charAt(0);

System.out.print ("\n"); }

while (lagi == 'y' || lagi == 'Y');

} }

(35)

Keterangan :

-

Program penerapan abstract class dan polymorphism pada bidang ilmu

perpustakaan misal peminjaman buku.

Program diatas menggunkaan 3 class yaitu : Perpus , LinkPerpus dan NodePerpus.

(36)

TambahDepan, TambahBelakang, TambahTengah, HapusDepan, HapusBelakang,

HapusTengah, dengan menggunakan perkondisian ( menggunakan if). Kemudian

method Bayar yang digunakan sebagai operasi aritmetika jika terlambat

mengembalikan buku. Pendeklarasian Method editNama, editNomor,

editJenisBuku, editBuku yang nantinya dipanggil digunakan pada class Perpus

untuk pemanggilan fungsi method. Pendeklarasian method CariNama, CariNomor,

CariJenisBuku, yang nantinya digunakan untuk pemanggilan fungsi searching

pada menu(pelayanan) yang tersedia menggunakan fungsi searching.

Pendeklarasian method SortNomor, SortNama, sortBuku, sortJenisBuku yang

nantinya digunakan untuk pemanggilan fungsi pengurutan pada menu(pelayanan)

yang tersedia menggunakan fungsi sorting. Dan method displayList yang berisikan

pemanggilan fungsi dari method yang ada pada class ini.

-

Class NodePerpus sebagai pendeklarasian untuk pemberian nama baru pada nama,

buku, hari1, jenisbuku, nomor, bayar, next agar lebih mudah digunakan pada script

(menyederhanakan penggunaan nama variable).

-

Class Perpus adalah class utama yang digunakan untuk mengeksekusi

(pemanggilan) seluruh method yang digunakan pada class dan subclass sehingga

menghasilkan keluaran seperti pada screenshoot jawaban. Didalamnya

menggunakan percabangan switch case untuk menu pelayangan yang disediakan,

menggunakan if else untuk masuk ke sub menu yang dipilih, tiap menu.

Menggunakan do-while untuk perulangan jika ingin mengulang kembali

menggunakan pelayanan yang diinginkan.

F.

KESIMPULAN:

a) Kelas abstrak dapat mengandung method abstract maupun method tidak

abstract, sedangkan interface hanya boleh mengandung method abstract.

b) Kelas abstrak dapat mendeklarasikan variabel instans, sedangkan interface

hanya dapat mendeklarasikan konstanta.

(37)

d) Polymorphism adalah kemampuan sebuah obyek untuk menghasilkan aksi yang

berbeda, bila method yang sama dipanggil, dimana aksi method yang

dikerjakan tergantung dari tipe obyeknya.

e) Abstarck tidak untuk membentuk objek

f) Kelas abstract : Pendeklarasian dengan kata kunci ‘abstract’ dan pendefinisian

method dilakukan pada subkelas.

g) Kelas interface dapat mewarisi lebih dari 1 interface. (subkelas mewarisi

superkelas). Penulisannya dengan cara dipisah oleh tanda koma.

h) Interface diletakkan pada class tersendiri, kemudian kelas kelas yang ingin

mengimplementasikannya hanya tinggal mengimpornya saja.

i)

DAFTAR PUSTAKA

Tim Asisten Dosen. 2014. Modul 5 ABSTRACT & INTERFACE .Malang:

Universitas Negeri Malang.

Referensi

Dokumen terkait

 Sampai dengan Oktober 2011 jumlah seluruh Hasil Analisis yang telah disampaikan kepada penegak hukum terkait dengan dugaan tindak pidana terorisme sebanyak 44 HA,. 

Sebuah penguat sinyal kecil selalu dioperasikan dalam area linearitas karena mempertimbangkan gain sinyal; tapi, tujuan utama penguat daya adalah memperoleh daya

Dengan adanya Undang-Undang Nomor 23 tahun 2004 tentang penghapusan kekerasan dalam Rumah tangga ini menjadi payung hukum bagi korban dan membuat efek jera bagi pelaku tindak

Hasil penelitian menunjukan bahwa: 1) Analisis deskriptif data variabel X menunjukkan nilai Mean = 61,030, dengan frekuensi tertinggi skor nilai variabel X yakni 24 = 73% berada

Penelitian ini sampai pada kesimpulan bahwa berdasarkan data yang telah dikumpulkan dan dipaparkan secara terperinci pada pembahasan melalui proses wawancara

Kecakapan bertindak adalah kemampuan untuk melakukan perbuatan hukum. Perbuatan hukum adalah perbuatan yang akan menimbulkan akibat hukum yaitu timbulnya hak

Melihat pentingnya pengaruh kualitas jasa dalam mendukung proses penjualan, maka perlu dilakukan analisis terhadap kualitas jasa yang telah diberikan, sehingga dapat dilakukan

Terdapat beberapa definisi dalam sistem kontrol yang dapat diuraikan, yaitu (1) sistem adalah kombinasi dari beberapa komponen yang bekerja bersama- sama melakukan sesuatu