Disusun oleh:
Nama : Daniel Putera Alamsyah
NIM : 1918081
Prodi : Teknik Informatika S-1
Disusun Oleh
NAMA : Daniel Putera Alamsyah
NIM : 1918081
PRODI : Teknik Informatika S-1
Mengetahui, Menyetujui,
Kepala Laboratorium Dosen Pembimbing
Rekayasa Perangkat Lunak
KATA PENGANTAR
Dengan memanjatkan puji syukur kehadirat Allah SWT, karena atas berkah
rahmat dan karunia-Nya sehingga penulis dapat menyelesaikan Laporan Praktikum
Mata Kuliah Object Oriented Programming, guna persyaratan dalam menempuh
mata kuliah tersebut.
Laporan ini disusun berdasarkan percobaan dan teori dasar yang ada dalam
buku panduan praktikum, teori yang diperoleh praktikan dari perkuliahan, dan tidak
lupa yaitu Internet sehingga penulis dapat menambah tidak hanya menguasai teori
saja namun juga memahami serta mengaplikasikannya.
Terwujudnya laporan ini, tentunya tidak lepas dari bantuan-bantuan yang
telah penulis terima. Pada kesempatan ini, penulis menyampaikan terima kasih
yang sebesar-besarnya kepada yang terhormat:
1. Bapak Agung Panji Sasmito, S.Pd, M.Pd selaku dosen pembimbing
Praktikum Object Oriented Programming.
2. Bapak Yoseph Agus Pranoto, ST, MT. dan Agung Panji Sasmito, S.Pd,
M.Pd. selaku dosen mata kuliah Object Oriented Programming.
3. Bapak Ahmad Faisol, ST, MT selaku Ketua Pelaksana Praktikum Object
Oriented Programming Program Studi Teknik Informatika ITN Malang.
4. Instruktur Lab.Pemrograman dan RPL Teknik Informatika yang telah
memberi petunjuk kepada penulis selama pelaksanaan praktikum.
5. Rekan-rekan yang telah membantu dalam pelaksanaan dan penyelesaian
laporan ini.
Harapan penulis, laporan praktikum ini bermanfaat bagi penulis sendiri
maupun pembaca sekalian.
Penulis
ii
DAFTAR ISI
DAFTAR GAMBAR
DAFTAR TABEL
BAB I
PENDAHULUAN
Tanggal : 21-12-2020
I-2
I.3 Tujuan
1. Praktikan Dapat mengetahui pengertian OOP (Object Oriented
Programming) secara umum.
2. Praktikan Dapat mengetahui konsep dasar dari pemrograman berorientasi
objek (OOP).
3. Praktikan Dapat mengetahui bahasa yang mendukung OOP.
I.4 Manfaat
1. Praktikan mampu mengetahui OOP secara umum.
2. Praktikan mampu mengetahui konsep dasar dalam OOP.
3. Praktikan mampu mengetahui bahasa pemrograman OOP.
Tanggal : 21-12-2020
II-1
BAB II
KONSEP DASAR OOP
Jumlah Pertemuan : 2 x 60 menit
Tanggal : 21-12-2020
II - 2
Keterangan :
Tanggal : 21-12-2020
II - 3
c. Method adalah aksi atau tindakan yang dapat dilakukan oleh objek dari
suatu kelas.
Method terdiri dari 2 jenis, yakni Method void dan Method Non Void.
1. Method Void (Procedure)
Merupakan method yang tidak memiliki nilai balik. Method Void
(Procedure) dideklarasikan sebagai berikut:
Void cetakHalo() //tipe_method nama_method
{
System.out.println(“HELLO WORLD !”);
//badan method }
Keterangan:
Terdapat script “return x;” yang berarti mengembalikan nilai
variable “x” sesuai dengan nilai yang tersimpan pada variable “x”.
d. Object adalah realisasi dari class. Ketika kita membuat sebuah class
bukan berarti kita membuat sebuah objek. Ciri-ciri pembuatan objek
adalah dengan adanya operator “new”. Object dideklarasikan sebagai
berikut:
NamaClass namaObjek = new NamaKonstruktor();
Contoh:
Penilaian nilaiMhs = new Penilaian();
Tanggal : 21-12-2020
II - 4
public class Belajar //nama kelas harus sama dengan nama file
{
//method utama dalam java public static
void main (String[]args)
{
//isi program utama
System.out.println("Praktikum Hari Pertama");
System.out.println("di Lab Pemrograman dan RPL "); }
}
Tanggal : 21-12-2020
II - 5
Tanggal : 21-12-2020
II - 6
String cetakNIM(){
return nim;
}
String cetakNama(){
return nama;
}
String cetakProdi(){
return prodi;
}
String cetakAngkatan(){
return angktn;
}
}
Tanggal : 21-12-2020
II - 7
Tanggal : 21-12-2020
II - 8
Tampilan Hasil :
Analisa:
Pada source code diatas telah dideklarasikan object “mhs” dari class
Mahasiswa, method dataNim(String Nim) yang terdapat pada object mhs
mangambil data dari isi textField Nim. Sehingga pada saat button Cetak KTM
di klik, maka method cetakNim() pada object mhs akan mengembalikan nilai
variable nim yang nantinya ditampilkan pada memoKTM. Proses yang sama
juga terjadi pada method dataNama(String Nama), dataProdi(String Prodi) dan
dataAngkatan(String Angktn).
Tanggal : 21-12-2020
II - 9
+ String cetak_kd_buku()
+ String cetak_judul()
+ String cetak_pengarang()
+ String cetak_penerbit()
+ String cetak_genre()
+ String cetak_harga()
+ String cetak_stock()
String cetak_kd_buku(){
return kd_buku;
}
String cetak_judul(){
Nama Aslab Pengajar : TTD :
Sujud Satwikayana
Tanggal : 21-12-2020
II - 10
return judul;
}
String cetak_pengarang(){
return pengarang;
}
String cetak_penerbit(){
return penerbit;
}
String cetak_genre(){
return genre;
}
String cetak_harga(){
return harga;
}
String cetak_stock(){
return stock;
}
}
Tanggal : 21-12-2020
II - 11
txt_kd.setText(tk.cetak_kd_buku());
txt_judul.setText(tk.cetak_judul());
txt_pengarang.setText(tk.cetak_pengarang());
txt_penerbit.setText(tk.cetak_penerbit());
txt_genre.setText(tk.cetak_genre());
txt_harga.setText(tk.cetak_harga());
txt_stock.setText(tk.cetak_stock());
}
Tanggal : 21-12-2020
II - 12
Hasil Tampilan:
Analisa:
Gambar diatas merupakan bagian awal dari program untuk input data
Toko Buku. Users akan mengisikan data juga sudah klik tombol button proses
dan akan menampilkan output dari data yang diinputkan dengan memasukkan
script atau perintah yang diberikan di tombol button dengan cara menakan
dua kali atau double click kemudian masukan script seperti diatas.
II.5 Kesimpulan
1. OOP (Object Oriented Programming) adalah suatu metode pemrograman
yang berorientasi kepada objek.
2. Class merupakan rancangan dari sebuah objek yang mendefenisikan atribut
(ciri/variabel) dan method (perilaku) umum dari suatu objek tertentu.
3. Atribut adalah data/variabel yang akan dimiliki oleh objek dari kelas
tersebut. Atribut dapat memiliki hak akses private, public maupun
protected .
Tanggal : 21-12-2020
III - 1
BAB III
KONSTRUKTOR DAN ENKAPSULASI
Jumlah Pertemuan : 2 x 60 menit
public NamaClass()
{
a = 1;
b = 2;
c = 3;
}
}
Tanggal : 21-12-2020
III - 2
Keterangan:
a. “NamaClass” merupakan nama class dapat di ganti sesuai keinginan
b. “public NamaClass()” merupakan nama method konstruktor nama
harus sesuai dengan nama class yang di naungi.
c. Nantinya ketika penginisailasian object terjadi maka data dari atribut
akan otmatis terisi oleh data yang ada dalam method konstruktor
C. Pengertian Enkapsulasi
Enkapsulasi merupakan proses pemaketan objek beserta methodnya
untuk menyembunyikan rincian implementasi dari pemakai/objek lainnya.
Inti dari enkapsulasi atau pengkapsulan adalah ketidaktahuan apa yang ada
dalam suatu objek dan bagaimana pengimplementasiannya. Yang
dibutuhkan hanyalah apa kegunaan, bagaimana cara memakainya dan apa
yang akan terjadi.
Dengan enkapsulasi, maka programmer akan dibatasi dalam
mengakses suatu atribut yang dimiliki oleh suatu class. Kemampuan ini
ditujukan untuk mendapatkan desain suatu software yang baik dan untuk
keamanan software itu sendiri.
Segala yang tidak perlu diketahui oleh yang lain, tidak perlu
dipublish. Salah satu implementasi dari enkapsulasi adalah adanya setter
dan getter untuk suatu atribut dalam suatu kelas. Jika pada suatu kelas
terdapat atribut a dan b, maka terdapat method setA-getA dan setB-getB.
Bentuk lain dari enkapsulasi adalah memasukkan nilai atribut dengan
menggunakan konstruktor.
Tanggal : 21-12-2020
III - 3
ANALOGI SINGKAT:
Seperti halnya obat kapsul yang terdiri dari pembungkus dan isi,
pasien hanya mengetahui manfaat/fungsi dari obat kapsul tanpa
mengetahui apa saja kandungan terdapat dalam obat kapsul.
Contoh:
Int Luas(int sisi){ // pembungkus
// isi
int L;
L =
sisi*sisi;
return
L;
}
b. Private
Dengan mendeklarasikan data dan method menggunakan tingkat
akses private, maka data dan method tersebut hanya dapat diakses
oleh kelas tersebut.
Sehingga data dan method tersebut tidak dapat diakses oleh kelas lain.
Bentuk cara deklarasi hak akses Private:
private String atribut1; //pada
atribut private int Luas(){…} //
pada methode
Tanggal : 21-12-2020
III - 4
c. Protected
Dengan mendeklarasikan data dan method menggunakan tingkat
akses protected, maka data dan method tersebut hanya dapat diakses oleh
kelas yang memilikinya dan kelas-kelas yang masih memiliki hubungan
turunan.
Bentuk cara deklarasi hak akses Protected:
Tanggal : 21-12-2020
III - 5
Tanggal : 21-12-2020
III - 6
Text
Name txtNama
7 jTextField2
Text
Name txtProdi
8 jTextField3
Text
Name txtAng
9 jTextField4
Text
Name btnKTM
10 jButton1
Text CETAK DATA MATA KULIAH
Name memoKTM
11 jTextArea
Text
Tampilan Hasil:
Tanggal : 21-12-2020
III - 7
Analisa :
Program diatas membuat Objek secara Global dengan nama MK dari
class Data_Matkul. Pada method Konstruktornya kirimkan parameter “001”,
“oop”, “pak yoseph” kedalam Konstruktor class Data_Matkul untuk
melakukan inisialisasi attribute. Kemudian pada textField txtKodeMK,
txtMK, txtDosen diset dengan nilai dari attribute kode_mk, nama_mk dan
dosen.
}
double tampilNA(){
return nilaiAkhirPrak();
}
}
Tanggal : 21-12-2020
III - 8
Tanggal : 21-12-2020
III - 9
+ String cetak_harga()
+ String cetak_stock()
public toko_buku(){
this.kd_buku = "BK001";
this.judul = "Belajar OOP";
this.pengarang = "Daniel Putera Alamsyah";
this.penerbit = "Erlangga";
this.genre = "Meneganggakan, seru";
this.harga = "Rp. 199.000,-";
this.stock = "15";
}
String cetak_kd_buku(){
return this.kd_buku;
}
String cetak_judul(){
return this.judul;
}
String cetak_pengarang(){
return this.pengarang;
}
String cetak_penerbit(){
return this.penerbit;
}
String cetak_genre(){
return this.genre;
Nama Aslab Pengajar : TTD :
Sujud Satwikayana
Tanggal : 21-12-2020
III - 10
}
String cetak_harga(){
return this.harga;
}
String cetak_stock(){
return this.stock;
}
Tanggal : 21-12-2020
III - 11
Tampilan Hasil :
Tanggal : 21-12-2020
III - 12
Analisa :
Pada program diatas terdapat method konstruktor pada class toko_buku
yang masing-masing sudah diberikan nilai atau value atau inisialisasi.
Kemudian saat program atau aplikasi dijalankan dengan menekan run atau
shortcut shft+f6 program akan jalan dan dengan otmatis data usah terisi dari
saat kita melakukan inisialisasi pada method konsturktor. Dan setalah
mengkilk tombol button nya atau tombol proses program akan menampilkan
data yang sudah diinputkan saat inisialisasi dari awal.
III.6 Tugas Rumah 2 :
Implementasi Method Konstruktor pada GUI_Toko_Buku
Judul : Sistem Informasi Toko Buku
Diagram Class:
toko_buku
long harga_total, kembalian
String kd_buku, judul, pengarang,
penerbit, genre, harga, jumlah_beli,
bayar
+ public void setkd_buku(String
kd_buku)
+ public void setjudul(String judul)
+ public void setpengarang(String
pengarang)
+ public void setpenerbit(String
penerbit)
+ public void setgenre(String genre)
+ public void setharga(String harga)
+ public void setbayar(String bayar)
+ public String getkd_buku()
+ public String getjudul()
+ public String getpengarang()
+ public String getpenerbit()
Tanggal : 21-12-2020
III - 13
Tanggal : 21-12-2020
III - 14
}
public String getpenerbit(){
return this.penerbit;
}
public String getgenre(){
return this.genre;
}
public String getharga(){
return this.harga;
}
public String getbayar(){
return this.bayar;
}
public String getjumlah_beli(){
return this.jumlah_beli;
}
i{
harga_total =
Long.parseLong(getharga())*Long.parseLong(getjumlah_beli())
;
return Long.toString(harga_total);
}
public String getkembalian (){
kembalian=(Long.parseLong(getbayar())-
Long.parseLong(getharga_total()));
return Long.toString(kembalian);
}
Tanggal : 21-12-2020
III - 15
Tanggal : 21-12-2020
III - 16
Text
21 jTextField10 Name txt_kembalian
Text
22 jButton1 Name jButton1
Text TOTAL HARGA
23 jButton1 Name JButton2
Text KEMBALIAN
Tanggal : 21-12-2020
III - 17
Tampilan Hasil :
Analisa :
Pada program diatas terdapat method konstruktor pada class
toko_buku yang masing-masing sudah diberikan nilai atau value atau
inisialisasi. Kemudian saat program atau aplikasi dijalankan dengan menekan
run atau shortcut shft+f6 program akan jalan dan dengan otmatis data usah
terisi dari saat kita melakukan inisialisasi pada method konsturktor. Dan
setalah mengkilk tombol button nya atau tombol proses program akan
menampilkan data yang sudah diinputkan saat inisialisasi dari awal.
III.7 Kesimpulan
1. Konsktruktor adalah method yang pertama kali dijalankan pada saat
sebuah objek pertama kali diciptakan.
2. Syarat penulisan method konstruktor ini harus sama dengan nama class
yang di naungi.
3. Method Konstruktor digunakan untuk inisialisasi atau mempersiapkan
data untuk objek.
4. Enkapsulasi merupakan proses pemaketan objek beserta methodnya untuk
menyembunyikan rincian implementasi dari pemakai/objek lainnya. Inti
dari enkapsulasi atau pengkapsulan adalah ketidaktahuan apa yang ada
dalam suatu objek dan bagaimana pengimplementasiannya.
Nama Aslab Pengajar : TTD :
Sujud Satwikayana
Tanggal : 21-12-2020
III - 18
Tanggal : 21-12-2020
IV - 1
BAB IV
INHERITANCE, OVERIDDING DAN OVERLOADING
Jumlah Pertemuan : 2 x 60 menit
Tujuan Praktikum : 1. Praktikan mampu memahami tentang hak akses
(Enkapsulasi).
2. Praktikan mampu mengimplementasikan konsep
Inheritance kedalam program.
3. Praktikan mampu memahami dan membuat
method override.
Alat / bahan : 1. Seperangkat computer.
2. Perangkat lunak: Netbeans.
3. Modul Praktikum OOP 2020.
Tanggal : 21-12-2020
IV - 2
Tanggal : 21-12-2020
IV - 3
2. Overriding
Overriding method adalah kemampuan dari subclass untuk
memodifikasi method dari superclass-nya, dengan cara mendefinisikan
kembali method superclass-nya. Namun masih dengan nama dan
parameter yang sama tetapi isi (statement) berbeda.
Aturan Overriding:
a. Parameter yang terdapat pada method Overriding di subclass harus
sama dengan parameter yang terdapat pada parent class.
b. Aturan hak akses, hak akses method Overriding di subclass tidak
boleh lebih ketat di bandingkan dengan hak akses method pada
parent class.
Kedudukan Access Modifier, urutan tertinggi ke rendah:
(Tertinggi) Public Default Protected Private (Terendah)
Contoh:
Source code pada Super Class:
public class Method_Overload {
//method untuk overriding int volume(){
int p=2,l=3,t=4; return p*l*t;
}
}
Tanggal : 21-12-2020
IV - 4
Tanggal : 21-12-2020
IV - 5
Tanggal : 21-12-2020
IV - 6
Text Praktikum
12 JCheckBox
Name cek_prak
if (cek_prak.isSelected()){
nilai.nilaiPrak = Integer.parseInt(txtNP.getText());
memoNilai.append("Nilai Akhir Mata Kuliah \n");
memoNilai.append("----------------------------------
----\n");
memoNilai.append("NIM : "+nilai.NIM +"\n");
memoNilai.append("Kode MK : "+nilai.kode_mk +"\n");
memoNilai.append("Nilai Tugas : "+nilai.nilaiTugas
+"\n");
memoNilai.append("Nilai Praktikum :
"+nilai.nilaiPrak +"\n");
memoNilai.append("----------------------------------
----\n");
memoNilai.append("Nilai Akhir : "+nilai.tampilNA());
}else{
memoNilai.append("Nilai Akhir Mata Kuliah \n");
memoNilai.append("----------------------------------
----\n");
memoNilai.append("NIM : "+nilai.NIM +"\n");
memoNilai.append("Kode MK : "+nilai.kode_mk +"\n");
memoNilai.append("Nilai Tugas : "+nilai.nilaiTugas
+"\n");
memoNilai.append("----------------------------------
----\n");
memoNilai.append("Nilai Akhir : "+nilai.tampilNA());
}
Tanggal : 21-12-2020
IV - 7
Tampilan Hasil:
Analisa :
Pada program penilaian diatas dapat kita gunakan untuk menghitung
hasil nilai akhir dan terdapat dua pilihan tanpa nilai pratikum dan dengan
menggunakan nilai pratikum, jika program menggunakan nilai pratikum maka
centang checkbox pratikum dan sebaliknya jiga tidak ingin menghitung dengan
nilai pratikum bisa menghilangkan centang pada checkbox
Tanggal : 21-12-2020
IV - 8
Tanggal : 21-12-2020
IV - 9
Name txtNim
6 jTextField1
Text
Name txtNama
7 jTextField2
Text
Name txtProdi
8 jTextField3
Text
Name txtAng
9 jTextField4
Text
Name txtCari
10 jTextField5
Text
Name btnSimpan
11 jButton1
Text Simpan
Name btnUbah
12 jButton2
Text Ubah
Name btnHapus
13 jButton3
Text Hapus
Name btnBatal
14 jButton4
Text Batal
Name btnCari
15 jButton5
Text Cari
Name btnNilai
16 jButton5
Text Form Nilai
17 JTable Name tabel_data
Tanggal : 21-12-2020
IV - 10
Tampilan Hasil:
Tanggal : 21-12-2020
IV - 11
Tanggal : 21-12-2020
IV - 12
}
public void setjudul(String judul){
this.judul = judul;
}
public void setpengarang(String pengarang){
this.pengarang = pengarang;
}
public void setpenerbit(String penerbit){
this.penerbit = penerbit;
}
public void setgenre(String genre){
this.genre = genre;
}
public void setharga(String harga){
this.harga = harga;
}
public void setdiskon(String diskon){
this.diskon = diskon;
}
public void setbayar(String bayar){
this.bayar = bayar;
}
}
Tanggal : 21-12-2020
IV - 13
harga_total =
Long.parseLong(getharga())*Long.parseLong(getjumlah_beli())
;
return Long.toString(harga_total);
}
public String getkembalian (){
kembalian=(Long.parseLong(getbayar())-
Long.parseLong(getharga_total()));
return Long.toString(kembalian);
}
}
Tanggal : 21-12-2020
IV - 14
Tanggal : 21-12-2020
IV - 15
txt_penerbit.setText(tkbk.getpenerbit());
txt_genre.setText(tkbk.getgenre());
txt_harga.setText(tkbk.getharga());
txt_jumlah_beli.setText(tkbk.getjumlah_beli());
}
private void
jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
txt_total.setText(tkbk.getharga_total());
}
private void
jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
toko_buku obj = new toko_buku();
obj.setbayar(txt_bayar.getText());
txt_kembalian.setText(obj.getkembalian());}
Tampilan Hasil :
Analisa :
Jika program dijalankan akan muncul program toko buku yang
didalamnya mengisikan data setelah data sudah terisi kemudian klik button
total harga kemudian untuk menampikan total yang harus dibayarkan dengan
perhitungan harga buku dikali dengan jumlah beli maka akan ketemu hasilnya
yaitu total harga kemudian mengisi bayar setelah mengisi data klik button
kembalian maka akan muncul kembalian dari perhitungan bayar dikurangan
dengan total maka akan mengkasilkan kembalian yang script tersebut
diletakkan didalam toko_buku.java
Tanggal : 21-12-2020
IV - 16
Tanggal : 21-12-2020
IV - 17
Tanggal : 21-12-2020
IV - 18
@Override
public String getharga(){
harga = "199999";
return this.harga;
}
@Override
public String getjumlah_beli(){
jumlah_beli = "10";
return this.jumlah_beli;
}
public String getharga_total(){
harga_total =
Long.parseLong(getharga())*Long.parseLong(getjumlah_beli())
;
return Long.toString(harga_total);
}
public String getkembalian (){
kembalian=(Long.parseLong(getbayar())-
Long.parseLong(getharga_total()));
return Long.toString(kembalian);
}
}
Tanggal : 21-12-2020
IV - 19
Tanggal : 21-12-2020
IV - 20
Tampilan Hasil :
Analisa : Override)
IV.7 Kesimpulan
1. Inheritance atau Pewarisan/Penurunan adalah konsep pemrograman dimana
sebuah class dapat ‘menurunkan’ properti dan method yang dimilikinya
kepada class lain.
2. Konsep inheritance membuat sebuah struktur atau ‘hierarchy’ class dalam
kode program. Class yang akan ‘diturunkan’ bisa disebut sebagai class induk
(parent class), super class, atau base class. Sedangkan class yang ‘menerima
penurunan’ bisa disebut sebagai class anak (child class), sub class, derived
class atau heir class.
3. Konsep inheritance digunakan untuk memanfaatkan fitur ‘code reuse’ untuk
menghindari duplikasi kode program.
Tanggal : 21-12-2020
IV - 21
Tanggal : 21-12-2020
V-1
BAB V
ABSTRACT, POLIMORFISME DAN EXCEPTION
HANDLING
Jumlah Pertemuan : 2 x 60 menit
Tanggal : 21-12-2020
IV - 2
Contoh penerapan:
c. Abstract class tidak dapat diinstansi (menjadi objek dari class abstract),
tetapi kita dapat mendeklarasikan suatu variable yang bertipe abstract
class dan membuat instansi dari variabel tersebut yang bertipe class
turunan dari abstract class tersebut (teknik polymorphism).
d. Sebuah class dapat dideklarasikan sebagai abstract class meskipun class
tersebut tidak memiliki abstract method.
Tanggal : 21-12-2020
IV - 3
Sub Class 1
Public Sub_Class1 extend Super_Class(){
@override
Void nama_method(){
Isi2
}}
Tanggal : 21-12-2020
IV - 4
Sub Class 2
Public Sub_Class2 extend Super_Class(){
@override
Void nama_method(){
Isi3
}
}
Main Class
public class main {
public static void main(String[] args) {
Super_Class induk; // instansiasi super class
induk = new Sub_Class1();
// memanggil method dari class Sub_Class1
induk.nama_method();
induk = new Sub_Class2();
// memanggil method dari class Sub_Class2
induk.nama_method();
}
}
Keterangan:
1 Instansiasi : pembuatan objek dari suatu class (objek “induk” dari Super
Class).
2 induk merupakan objek polimorfisme dari class Super_Class, kemudian
diisi dengan objek dari Sub_Class1
3 Method nama_method() adalah overriden method dari kelas
Super_Class, yang di override sub class.
4 Ketika dipanggil induk.nama_method(), yang dimaksud adalah
nama_method() dari Super_Class, namun ketika di running, yang
ditampilkan adalah method nama_method() dari Sub_Class1 (karena
objek induk diinstasiasi sebagai objek dari Sub_Class). Begitu juga pada
Sub_Class2
Tanggal : 21-12-2020
IV - 5
try {
//Protected code
} catch (ExceptionType nama_variabel) {
//Catch Block
}
Tanggal : 21-12-2020
IV - 6
2. Multiple Catch
Dengan menggunakan multiple catch dapat menangani lebih dari 1
exception.
Berikut bentuk penulisan Multiple catch:
try {
//Protected code
} catch (ExceptionType nama_variabel) { //Catch
Block
} catch (ExceptionType nama_variabel) {
//Catch Block
}
3. Finally
Block finally adalah block yang di tambahkan di akhir block try-catch.
Finally akan selalu dijalankan setelah try-catch baik terjadi exception
atau tidak.
Berikut bentuk penulisan finally:
try {
//Protected code
} catch (ExceptionType nama_variabel){ //Catch
Block
} finally {
//finally Block
}
Tanggal : 21-12-2020
IV - 7
Tanggal : 21-12-2020
IV - 8
Name txtKodeMK
5 jTextField1
Text
Name txtMK
6 jTextField2
Text
Name txtDosen
7 jTextField3
Text
Name txtCari
8 jTextField5
Text
Name btnSimpan
9 jButton1
Text Simpan
Name btnUbah
10 jButton2
Text Ubah
Name btnHapus
11 jButton3
Text Hapus
Name btnBatal
12 jButton4
Text Batal
Name btnCari
13 jButton5
Text Cari
Name btnNilai
14 jButton5
Text Form Nilai
15 JTable Name tabel_data
Tanggal : 21-12-2020
IV - 9
Tampilan Hasil:
Tanggal : 21-12-2020
IV - 10
Tanggal : 21-12-2020
IV - 11
if (cek_prak.isSelected()){
nilai.nilaiPrak = Integer.parseInt(txtNP.getText());
memoNilai.append("Nilai Akhir Mata Kuliah \n");
memoNilai.append("-----------------------------------
---\n");
memoNilai.append("NIM : "+nilai.NIM +"\n");
memoNilai.append("Kode MK : "+nilai.kode_mk +"\n");
memoNilai.append("Nilai Tugas : "+nilai.nilaiTugas
+"\n");
memoNilai.append("Nilai Praktikum : "+nilai.nilaiPrak
+"\n");
memoNilai.append("-----------------------------------
---\n");
memoNilai.append("Nilai Akhir : "+nilai.tampilNA());
}else{
memoNilai.append("Nilai Akhir Mata Kuliah \n");
memoNilai.append("-----------------------------------
---\n");
memoNilai.append("NIM : "+nilai.NIM +"\n");
memoNilai.append("Kode MK : "+nilai.kode_mk +"\n");
memoNilai.append("Nilai Tugas : "+nilai.nilaiTugas
+"\n");
memoNilai.append("-----------------------------------
---\n");
Nama Aslab Pengajar : TTD :
Sujud Satwikayana
Tanggal : 21-12-2020
IV - 12
Tampilan Hasil:
Analisa :
Pada program penilaian diatas dapat kita gunakan untuk menghitung
hasil nilai akhir dan terdapat dua pilihan tanpa nilai pratikum dan dengan
menggunakan nilai pratikum, jika program menggunakan nilai pratikum maka
centang checkbox pratikum dan sebaliknya jiga tidak ingin menghitung dengan
nilai pratikum bisa menghilangkan centang pada checkbox
Tanggal : 21-12-2020
IV - 13
Tanggal : 21-12-2020
IV - 14
Tanggal : 21-12-2020
IV - 15
}
public void setharga(String harga){
this.harga = harga;
}
public void setbayar(String bayar){
this.bayar = bayar;
}
public void setjumlahbeli(String jumlah_beli){
this.jumlah_beli = jumlah_beli;
}
/**
*
* @return
*/
@Override
public abstract String getbayar();
@Override
public abstract String getjudul();
@Override
public abstract String getpengarang();
@Override
public abstract String getpenerbit();
@Override
public abstract String getharga ();
@Override
public abstract String getjumlah_beli ();
/**
*
Tanggal : 21-12-2020
IV - 16
* @return
*/
public abstract String getharga_total();
/**
*
* @return
*/
public abstract String getkembalian ();
}
Tanggal : 21-12-2020
IV - 17
Tanggal : 21-12-2020
IV - 18
txt_jumlah_beli.setText(tkbk.getjumlah_beli());
}
public void reset(){
txt_kode_buku.setText("");
txt_judul.setText("");
txt_pengarang.setText("");
txt_penerbit.setText("");
txt_harga.setText("");
txt_total.setText("");
txt_jumlah_beli.setText("");
}
private void
jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
txt_total.setText(tkbk.getharga_total());
}
Tampilan Hasil:
Analisa:
Jika program dijalankan akan muncul program toko buku yang
didalamnya mengisikan data setelah data sudah terisi kemudian klik button
total harga kemudian untuk menampikan total harga, kemudian terdapat
tombol RESET yang bertujuan untuk mereset TextField.
Tanggal : 21-12-2020
IV - 19
Tanggal : 21-12-2020
IV - 20
}
public void setharga(String harga){
this.harga = harga;
}
public void setbayar(String bayar){
this.bayar = bayar;
}
public void setjumlahbeli(String jumlah_beli){
this.jumlah_beli = jumlah_beli;
}
Tanggal : 21-12-2020
IV - 21
Tanggal : 21-12-2020
IV - 22
Tanggal : 21-12-2020
IV - 23
Tampilan Hasil:
Tanggal : 21-12-2020
IV - 24
Analisa:
Jika program dijalankan akan muncul menu utama dan terdapat dua
menu yaitu menu Home dan Form. Didalam menu Form terdapat Menu Bar
yang berisi Data Buku yang jika dijalankan akan mengarah ke
GUI_Toko_Buku yang didalamnya mengisikan data setelah data sudah terisi
kemudian klik button total harga kemudian untuk menampikan total harga,
kemudian terdapat tombol RESET yang bertujuan untuk mereset TextField.
Tanggal : 21-12-2020
IV - 25
public toko_buku(){
this.kd_buku = "BK001";
}
Tanggal : 21-12-2020
IV - 26
Tanggal : 21-12-2020
IV - 27
Tanggal : 21-12-2020
IV - 28
Text CARI
21 jButton3 Name jButton1
Text INSERT
22 jButton4 Name jButton1
Text UPDATE
23 jButton5 Name jButton1
Text DELETE
24 jButton6 Name jButton1
Text RESET
Tanggal : 21-12-2020
IV - 29
Tampilan Hasil:
Analisa:
Jika program dijalankan akan muncul menu utama dan terdapat dua
menu yaitu menu Home dan Form. Didalam menu Form terdapat Menu Bar
yang berisi Data Buku yang jika dijalankan akan mengarah ke
GUI_Toko_Buku yang didalamnya mengisikan data setelah data sudah terisi
kemudian klik button total harga kemudian untuk menampikan total harga,
kemudian terdapat tombol RESET yang bertujuan untuk mereset TextField.
V.8 Kesimpulan
1. Abstract Class adalah sebuah class yang tidak bisa di-instansiasi (tidak bisa
dibuat menjadi objek) dan berperan sebagai ‘kerangka dasar’ bagi class
turunannya
2. Abstract Method adalah sebuah ‘method dasar’ yang harus
direpresentasikan ulang di dalam class anak (child class).
3. Abstract class digunakan di dalam inheritance (pewarisan class) untuk
‘memaksakan’implementasi method yang sama bagi seluruh class yang
diturunkan dariabstract class.Abstract class digunakan untuk membuat
struktur logika penurunan di dalam pemrograman objek.
Tanggal : 21-12-2020
IV - 30
Tanggal : 21-12-2020
VI - 1
BAB VI
INTERFACE DAN PENGENALAN DATABASE
Jumlah Pertemuan : 2 x 60 menit
Tanggal : 21-12-2020
VI - 2
Tanggal : 21-12-2020
VI - 3
D. Pengenalan Database.
1. Basis Data (Database)
Basis data (database) adalah kumpulan data yang disimpan secara
sistematis di dalam komputer yang dapat diolah atau dimanipulasi
menggunakan perangkat lunak (program aplikasi) untuk
menghasilkan informasi. Pendefinisian basis data meliputi spesifikasi
berupa tipe data, struktur data dan juga batasan-batasan pada data
yang akan disimpan.
Tanggal : 21-12-2020
VI - 4
2. XAMPP
XAMPP adalah perangkat lunak bebas, yang mendukung banyak
sistem operasi, merupakan kompilasi dari beberapa program.
Fungsinya adalah sebagai server yang berdiri sendiri (localhost), yang
terdiri atas program Apache HTTP Server, MySQL database, dan
penerjemah bahasa yang ditulis dengan bahasa pemrograman PHP
dan Perl. Nama XAMPP merupakan singkatan dari X (empat sistem
operasi apapun), Apache, MySQL, PHP dan Perl. Program ini
tersedia dalam GNU General Public License dan bebas, merupakan
web server yang mudah digunakan yang dapat melayani tampilan
halaman web yang dinamis. Untuk mendapatkanya dapat
mendownload langsung dari web resminya.
Dua (2) Software yang digunakan dalam XAMPP:
1. phpMyAdmin(MySQL) adalah perangkat lunak bebas yang
ditulis dalam bahasa pemrograman PHP yang digunakan untuk
menangani administrasi MySQL melalui website Jejaring Jagat
Jembar. phpMyAdmin mendukung berbagai operasi MySQL,
diantaranya.
2. Server HTTP Apache atau Server Web/WWW Apache adalah
server web yang dapat dijalankan di banyak sistem operasi yang
berguna untuk melayani dan memfungsikan situs web. Protokol
yang digunakan untuk melayani fasilitas web/www ini
menggunakan HTTP.
Tanggal : 21-12-2020
VI - 5
6. Menjalankan program.
Tanggal : 21-12-2020
VI - 6
Tanggal : 21-12-2020
VI - 7
Text NIM
20 JTable Name tabel_data
Tanggal : 21-12-2020
VI - 8
Tampilan Hasil:
Analisa :
Pada program penilaian diatas dapat kita gunakan untuk menghitung
hasil nilai akhir dan terdapat dua pilihan tanpa nilai pratikum dan dengan
menggunakan nilai pratikum, jika program menggunakan nilai pratikum
maka centang checkbox pratikum dan sebaliknya jiga tidak ingin menghitung
dengan nilai pratikum bisa menghilangkan centang pada checkbox
Tanggal : 21-12-2020
VI - 9
Tanggal : 21-12-2020
VI - 10
Logger.getLogger(GUI_Mahasiswa.class.getName()).log(Level.S
EVERE,null, ex);
}
catch (SQLException e) {
Logger.getLogger(GUI_Mahasiswa.class.getName()).log(Level.S
EVERE,null, e);
}
catch (Exception es) {
Logger.getLogger(GUI_Mahasiswa.class.getName()).log(Level.S
EVERE,null, es);
}
}
Tanggal : 21-12-2020
VI - 11
+"VALUES('"+Nim+"','"+Nama+"','"+Prodi+"','"+Ang+"')");
statement.close();
JOptionPane.showMessageDialog(null, "Berhasil
Memasukan Data Mahasiswa!");
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Terjadi
Kesalahan Input!");
}
refresh();
}
Tanggal : 21-12-2020
VI - 12
Tanggal : 21-12-2020
VI - 13
Tanggal : 21-12-2020
VI - 14
Tanggal : 21-12-2020
VI - 15
Text Ubah
Name btnHapus
13 jButton3
Text Hapus
Name btnBatal
14 jButton4
Text Batal
Name btnCari
15 jButton5
Text Cari
Name btnNilai
16 jButton5
Text Form Nilai
17 JTable Name tabel_data
Tanggal : 21-12-2020
VI - 16
Tampilan Hasil:
Tanggal : 21-12-2020
VI - 17
Analisa:
Program diatas jika dijalankan maka semua fungsi tombol pada
GUI_Mahasiswa dapat digunakan kecuali button form nilai. Tampilan awal
jika dijalankan program akan menampilaan data yang berapa didatabase
untuk menampilakn menggunakan fingsi tampil(); dan akan menampilkan
database pada tabel. Terdapat tombol ubah yang digunakan untuk merubah
data pada tabel menggunakan fungsi update dan tombol hapus yang
digunakan untuk menghapus data pada tabel menggunakan fungsi delete dan
untuk menghubungkan data dengan program sebelumnya dihubungkan
menggunakan script conn agar bisa menghubungkan database dengan
program.
Tanggal : 21-12-2020
VI - 18
Tanggal : 21-12-2020
VI - 19
Tanggal : 21-12-2020
VI - 20
return this.jumlah_beli;
}}
Source code Object Class(transaksi.java):
public abstract class transaksi extends toko_buku{
@Override
public abstract String getbayar();
@Override
public abstract String getjudul();
@Override
public abstract String getpengarang();
@Override
public abstract String getpenerbit();
@Override
public abstract String getharga ();
@Override
public abstract String getjumlah_beli ();
/**
*
* @return
*/
public abstract String getharga_total();
/**
*
* @return
*/
public abstract String getkembalian ();
}
Source code Object Class(transaksi2.java):
public class transaksi2 extends toko_buku implements bayar{
@Override
public String getbayar(){
return this.bayar;
}
@Override
public String getjudul(){
judul = "Belajar OOP";
return this.judul;
}
@Override
public String getpengarang(){
pengarang = "Daniel Putera Alamsyah";
return this.pengarang;
}
@Override
public String getpenerbit(){
penerbit = "Erlangga";
return this.penerbit;
}
@Override
public String getharga(){
harga = "199999";
return this.harga;
}
Tanggal : 21-12-2020
VI - 21
@Override
public String getjumlah_beli(){
jumlah_beli = "10";
return this.jumlah_beli;
}
public String getharga_total(){
harga_total =
Long.parseLong(getharga())*Long.parseLong(getjumlah_beli()
);
return Long.toString(harga_total);
}
public String getkembalian (){
kembalian=(Long.parseLong(getbayar())-
Long.parseLong(getharga_total()));
return Long.toString(kembalian);
}
@Override
public String dibayar() {
return this.bayar;
}
@Override
public String total() {
return this.total();
}
}
Tanggal : 21-12-2020
VI - 22
Tanggal : 21-12-2020
VI - 23
Tampilan Hasil:
Tanggal : 21-12-2020
VI - 24
Tanggal : 21-12-2020
VI - 25
Analisa:
Jika program dijalankan akan muncul menu utama dan terdapat dua menu
yaitu menu Home dan Form. Didalam menu Form terdapat Menu Bar yang
berisi Data Buku yang jika dijalankan akan mengarah ke GUI_Toko_Buku
yang didalamnya mengisikan data setelah data sudah terisi kemudian klik
button total harga kemudian untuk menampikan total harga, kemudian terdapat
tombol RESET yang bertujuan untuk mereset TextField.
VI.6 Tugas Rumah 2 :
Menerapkan CRUD Pada GUI_Toko_Buku
Membuat Database toko_buku_db
Tanggal : 21-12-2020
VI - 26
Logger.getLogger(GUI_Toko_Buku.class.getName()).log(Level.
SEVERE,null, ex);
}
catch (SQLException e) {
Logger.getLogger(GUI_Toko_Buku.class.getName()).log(Level.
SEVERE,null, e);
}
catch (Exception es) {
Logger.getLogger(GUI_Toko_Buku.class.getName()).log(Level.
SEVERE,null, es);
}
}
Tanggal : 21-12-2020
VI - 27
Tanggal : 21-12-2020
VI - 28
+"VALUES('"+kode_buku+"','"+judul+"','"+pengarang+"','"+pe
nerbit+"','"+harga+"')");
statement.close();
JOptionPane.showMessageDialog(null, "Berhasil
Memasukan Data Buku!");
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Terjadi
Kesalahan Input!");
}
refresh();
}
Tanggal : 21-12-2020
VI - 29
JOptionPane.showMessageDialog(null, "Terjadi
Kesalahan!");
}
refresh();
}
JOptionPane.showMessageDialog(null,"Data Berhasil di
hapus");
reset();
}catch(Exception e){
txt_kode_buku.setText(rs.getString(1));
Tanggal : 21-12-2020
VI - 30
txt_judul.setText(rs.getString(2));
txt_pengarang.setText(rs.getString(3));
txt_penerbit.setText(rs.getString(4));
txt_harga.setText(rs.getString(5));
}
else{
Tanggal : 21-12-2020
VI - 31
Tanggal : 21-12-2020
VI - 32
insert();
Tampilan Hasil:
Analisa:
Program diatas jika dijalankan maka semua fungsi tombol pada
GUI_Mahasiswa dapat digunakan kecuali button transaksi. Tampilan awal
jika dijalankan program akan menampilaan data yang berapa didatabase
untuk menampilakn menggunakan fingsi tampil(); dan akan menampilkan
database pada tabel. Terdapat tombol ubah yang digunakan untuk merubah
data pada tabel menggunakan fungsi update dan tombol hapus yang
digunakan untuk menghapus data pada tabel menggunakan fungsi delete serta
terdapat tombol untuk pencarian yang berfungsi untuk melakukan pencarian
Tanggal : 21-12-2020
VI - 33
VI.7 Kesimpulan
1. Interface merupakan prototype atau template untuk sebuah class, deskripsi
ini hampir serupa dengan class abstrak. Interface merupakan class memiliki
struktur yang istimewa.
2. Variable pada interface akan memiliki aturan static dan final sedangkan
method akan memiliki aturan public dan abstract.
3. Jika sebuah class tidak diperkenankan melakukan pewarisan (extends)
lebih dari 1 class, maka interface diperbolehkan melakukan hal tersebut.
4. Basis data (database) adalah kumpulan data yang disimpan secara
sistematis di dalam komputer yang dapat diolah atau dimanipulasi
menggunakan perangkat lunak (program aplikasi) untuk menghasilkan
informasi.
5. Pendefinisian basis data meliputi spesifikasi berupa tipe data, struktur data
dan juga batasan-batasan pada data yang akan disimpan.
6. XAMPP adalah perangkat lunak bebas, yang mendukung banyak sistem
operasi, merupakan kompilasi dari beberapa program. Fungsinya adalah
sebagai server yang berdiri sendiri (localhost), yang terdiri atas program
Apache HTTP Server, MySQL database, dan penerjemah bahasa yang
ditulis dengan bahasa pemrograman PHP dan Perl.
Tanggal : 21-12-2020
VII - 1
BAB VII
PENERAPAN DATABASE BAGIAN 2
Jumlah Pertemuan : 2 x 60 menit
Tanggal : 21-12-2020
VII - 2
Tanggal : 21-12-2020
VII - 3
Tanggal : 21-12-2020
VII - 4
Tanggal : 21-12-2020
VII - 5
Tanggal : 21-12-2020
VII - 6
Logger.getLogger(GUI_Mahasiswa.class.getName()).log(Level.S
EVERE,null, ex);
}
catch (SQLException e) {
Logger.getLogger(GUI_Mahasiswa.class.getName()).log(Level.S
EVERE,null, e);
}
catch (Exception es) {
Logger.getLogger(GUI_Mahasiswa.class.getName()).log(Level.S
EVERE,null, es);
}
}
Tanggal : 21-12-2020
VII - 7
try {
koneksi();
Statement statement = conn.createStatement();
statement.executeUpdate("INSERT INTO
tb_mahasiswa(nim, nama, prodi, angkatan)"
+"VALUES('"+Nim+"','"+Nama+"','"+Prodi+"','"+Ang+"')");
statement.close();
JOptionPane.showMessageDialog(null, "Berhasil
Memasukan Data Mahasiswa!");
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Terjadi
Kesalahan Input!");
}
refresh();
}
Tanggal : 21-12-2020
VII - 8
}catch(Exception e){
JOptionPane.showMessageDialog(null,"Data gagal
di hapus");
}
}
refresh();
}
Tanggal : 21-12-2020
VII - 9
Tanggal : 21-12-2020
VII - 10
Text Simpan
Name btnUbah
12 jButton2
Text Ubah
Name btnHapus
13 jButton3
Text Hapus
Name btnBatal
14 jButton4
Text Batal
Name btnCari
15 jButton5
Text Cari
Name btnNilai
16 jButton5
Text Form Nilai
17 JTable Name tabel_data
Tanggal : 21-12-2020
VII - 11
Tampilan Hasil:
Tanggal : 21-12-2020
VII - 12
Tanggal : 21-12-2020
VII - 13
Tanggal : 21-12-2020
VII - 14
public GUI_Nilai() {
initComponents();
tampil();
tampil_mhs();
tampil_mk();
}
Tanggal : 21-12-2020
VII - 15
try {
conn=null;
Class.forName("com.mysql.jdbc.Driver");
conn=
DriverManager.getConnection("jdbc:mysql://localhost/oop_191
8080?user=root&password=");
} catch (ClassNotFoundException ex){
Logger.getLogger(GUI_Nilai.class.getName()).log(Level.SEVER
E,null,ex);
} catch (SQLException e) {
Logger.getLogger(GUI_Nilai.class.getName()).log(Level.SEVER
E,null,e);
} catch (Exception es) {
Logger.getLogger(GUI_Nilai.class.getName()).log(Level.SEVER
E,null,es);
}
}
try {
koneksi();
String sql = "SELECT * FROM tb_nilai";
Statement stat = conn.createStatement();
ResultSet res = stat.executeQuery(sql);
while(res.next()){
tabelhead.addRow(new
Object[]{res.getString(1),res.getString(2),res.getString(3)
,res.getString(4),res.getString(5)});
}
jTable1.setModel(tabelhead);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "BELUM
TERKONEKSI");
}
}
Tanggal : 21-12-2020
VII - 16
Tanggal : 21-12-2020
VII - 17
if(ok==0){
try{
String sql="DELETE FROM tb_nilai
WHERE nim='"+jComboBox1.getSelectedItem()+"' AND
kode_mk='"+jComboBox2.getSelectedItem()+"'";
PreparedStatement stmt =
conn.prepareStatement(sql);
stmt.executeUpdate();
JOptionPane.showMessageDialog(null,"Data Berhasil di
hapus");
batal();
}catch(Exception e){
JOptionPane.showMessageDialog(null,"Data gagal di
hapus"+e);
}
} refresh();
}
jComboBox1.setSelectedItem(rs.getString(1));
jComboBox2.setSelectedItem(rs.getString(2));
jTextField3.setText(rs.getString(3));
jTextField4.setText(rs.getString(4));
jTextField5.setText(rs.getString(5));
} else{
JOptionPane.showMessageDialog(null,
"Data yang Anda cari tidak ada");
}
}
}catch (Exception ex){
System.out.println("Error."+ex);
}
}
Tanggal : 21-12-2020
VII - 18
try {
koneksi();
String sql = "SELECT nim FROM Mahasiswa order by
nim asc";
Statement stt = conn.createStatement();
ResultSet res = stt.executeQuery(sql);
while(res.next()){
Object[] ob = new Object[3];
ob[0] = res.getString(1);
jComboBox1.addItem(ob[0].toString());
}
res.close();
stt.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
Tanggal : 21-12-2020
VII - 19
Tanggal : 21-12-2020
VII - 20
Name cek_prak
Name btnSimpan
13 JButton2
Text Simpan
Name btnUbah
14 JButton3
Text Ubah
Name btnHapus
15 JButton4
Text Hapus
Name btnBatal
16 JButton5
Text Batal
Name btnCari
17 JButton6
Text Cari
Name btnNIM
18 JButton7
Text NIM
Name btnNIM
19 JButton8
Text NIM
20 JTable Name tabel_data
Tanggal : 21-12-2020
VII - 21
if (jCheckBox1.isSelected()){
nilai.nilaiTugas =
Integer.parseInt(jTextField3.getText());
nilai.nilaiPrak =
Integer.parseInt(jTextField4.getText());
jTextField5.setText(Double.toString(nilai.tampilNA()));
}else {
nilai.nilaiTugas =
Integer.parseInt(jTextField3.getText());
jTextField5.setText(Double.toString(nilai.nilaiAkhir()));
}
Tampilan Hasil:
Tanggal : 21-12-2020
VII - 22
Tanggal : 21-12-2020
VII - 23
Analisa:
Program diatas jika dijalankan maka semua fungsi tombol pada
GUI_Niai dapat digunakan. Tampilan awal jika dijalankan program akan
menampilaan data yang berapa didatabase untuk menampilakn menggunakan
fungsi tampil(); dan akan menampilkan database pada tabel. Terdapat tombol
ubah yang digunakan untuk merubah data pada tabel menggunakan fungsi
update dan tombol hapus yang digunakan untuk menghapus data pada tabel
menggunakan fungsi delete dan untuk menghubungkan data dengan program
sebelumnya dihubungkan menggunakan script conn agar bisa
menghubungkan database dengan program.
Tanggal : 21-12-2020
VII - 24
Logger.getLogger(GUI_Toko_Buku.class.getName()).log(Level.
SEVERE,null, ex);
}
catch (SQLException e) {
Logger.getLogger(GUI_Toko_Buku.class.getName()).log(Level.
SEVERE,null, e);
}
catch (Exception es) {
Logger.getLogger(GUI_Toko_Buku.class.getName()).log(Level.
SEVERE,null, es);
}
}
Tanggal : 21-12-2020
VII - 25
Tanggal : 21-12-2020
VII - 26
+"VALUES('"+kode_buku+"','"+judul+"','"+pengarang+"','"+pe
nerbit+"','"+harga+"')");
statement.close();
JOptionPane.showMessageDialog(null, "Berhasil
Memasukan Data Buku!");
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Terjadi
Kesalahan Input!");
}
refresh();
}
JOptionPane.showMessageDialog(null,"Data Berhasil di
hapus");
reset();
}catch(Exception e){
Tanggal : 21-12-2020
VII - 27
}
refresh();
}
txt_kode_buku.setText(rs.getString(1));
txt_judul.setText(rs.getString(2));
txt_pengarang.setText(rs.getString(3));
txt_penerbit.setText(rs.getString(4));
txt_harga.setText(rs.getString(5));
}
else{
Tanggal : 21-12-2020
VII - 28
Tanggal : 21-12-2020
VII - 29
Tampilan Hasil:
Tanggal : 21-12-2020
VII - 30
Analisa:
Program diatas jika dijalankan maka semua fungsi tombol pada
GUI_Mahasiswa dapat digunakan kecuali button transaksi. Tampilan awal
jika dijalankan program akan menampilaan data yang berapa didatabase
untuk menampilakn menggunakan fingsi tampil(); dan akan menampilkan
database pada tabel. Terdapat tombol ubah yang digunakan untuk merubah
data pada tabel menggunakan fungsi update dan tombol hapus yang
digunakan untuk menghapus data pada tabel menggunakan fungsi delete serta
terdapat tombol untuk pencarian yang berfungsi untuk melakukan pencarian
dengan fungsi cari dan untuk menghubungkan data dengan program
sebelumnya dihubungkan menggunakan script conn agar bisa
menghubungkan database dengan program.
Tanggal : 21-12-2020
VII - 31
Logger.getLogger(GUI_Transaksi.class.getName()).log(Level.
SEVERE,null, ex);
}
catch (SQLException e) {
Logger.getLogger(GUI_Transaksi.class.getName()).log(Level.
SEVERE,null, e);
}
catch (Exception es) {
Logger.getLogger(GUI_Transaksi.class.getName()).log(Level.
SEVERE,null, es);
}
}
Tanggal : 21-12-2020
VII - 32
Tanggal : 21-12-2020
VII - 33
+"VALUES('"+kode_transaksi+"','"+kode_buku+"','"+harga+"',
'"+jumlah_beli+"','"+total+"','"+bayar+"','"+kembalian+"')
");
statement.close();
JOptionPane.showMessageDialog(null, "Berhasil
Memasukan Data Transaksi!");
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Terjadi
Kesalahan Input!");
}
refresh();
}
txt_kode_transaksi.setText(rs.getString(1));
txt_kode_buku.setSelectedItem(rs.getString(2));
txt_harga.setText(rs.getString(3));
txt_jumlah_beli.setText(rs.getString(4));
txt_total.setText(rs.getString(5));
Tanggal : 21-12-2020
VII - 34
txt_bayar.setText(rs.getString(6));
txt_kembalian.setText(rs.getString(7));
}
else{
Tanggal : 21-12-2020
VII - 35
Tanggal : 21-12-2020
VII - 36
Text HITUNG
20 JButton4 Name JButton4
Text HITUNG
21 JButton5 Name JButton5
Text SIMPAN DATA
22 JButton6 Name JButton6
Text RESET
23 JButton7 Name JButton7
Text DATA BUKU
Tampilan Hasil:
Tanggal : 21-12-2020
VII - 37
Analisa:
Pada program diatas dijak dijalankan maka yang akan ditampilkan
adalah GUI_Menu_Utama yang didalam menu terdapat subform yang berisi
link menuju form GUI_Toko_Buku dan GUI_Transaksi. Didalam
GUI_Toko_Buku program akan menampilaan data yang berapa didatabase
untuk menampilakn menggunakan fungsi tampil(); dan akan menampilkan
database pada tabel. Terdapat tombol ubah yang digunakan untuk merubah data
pada tabel menggunakan fungsi update dan tombol hapus yang digunakan
untuk menghapus data pada tabel menggunakan fungsi delete serta terdapat
tombol untuk pencarian yang berfungsi untuk melakukan pencarian dengan
fungsi cari dan untuk menghubungkan data dengan program sebelumnya
dihubungkan menggunakan script conn agar bisa menghubungkan database
dengan program. Sama halnya dengan form GUI_Transksi akan menampilkan
data transaksi yang diambil dari data transaksi di database yang akan
menampilkan data dan melakukan proses perhitungan dan data tersebut akan
disimpan ke dalam table di phpmyadmin dan kemudian data dalam
phpmyadmin akan dipanggil didalam form GUI_Transaksi dan ditampilakn
didalam tabel.
VII.5 Kesimpulan
1. SQL (Structured Query Language) merupakan bahasa yang telah
distandarsisasikan dan digunakan dalam pengelolaan semua database yang
ada.
2. Didalam SQL terdapat 3 sub bahasa, yaitu: Data Definition Language (DDL)
yang digunakan untuk membangun objek - objek dalam database seperti tabel
dan indeks;
3. Data manipulation Language (DML) yang digunakan untuk menambah,
mencari, mengubah, dan menghapus baris dalam tabel; dan Data Control
Language (DCL) yang digunakan untuk menangani masalah sekuriti dalam
database. Ketiga sub bahasa ini dapat kita akses setelah database dipanggil.
Tanggal : 21-12-2020
VIII - 1
BAB VIII
KESIMPULAN
Dengan adanya kegiatan praktikum OOP. Penulis dapat menyimpulkan
sebagai berikut :
1. Ada beberapa konsep dasar dari pemrograman orientasi Objek (Object
Oriented Programming ) yaitu class, attribute, method dan object.
2. Dalam method terdapat method getter digunakan untuk mengambil nilai pada
suatu atribut dan method setter digunakan untuk memberi nilai pada suatu
atribut.
3. Konstruktor adalah method khusus yang didefinisikan di dalam kelas dan
dipanggil secara otomatis setiap kali terjadi inisisalisasi objek.
4. Terdapat 4 hak akses penting dalam enkapsulasi yaitu public, private, protected
dan default.
5. Dalam pewarisan (inheritance) merupakan mekanisme membuat kelas baru
dari kelas yang sudah ada atau ssuperclass dan subclass (turunan).
6. Method Overloading adalah sebuah kemampuan yang membolehkan sebuah
class mempunyai 2 atau lebih method dengan nama yang sama, yang
membedakan adalah parameternya. Pada method overloading perbedaan
parameter mencakup : Jumlah parameter. Tipe data dari parameter
7. Overriding adalah method subclass sama dengan method super class,
parameternya sama tetapi pernyataan atau implementasinya berbeda. Aturan
Overriding:
8. Abstract Class adalah sebuah class yang tidak bisa di-instansiasi (tidak bisa
dibuat menjadi objek) dan berperan sebagai ‘kerangka dasar’ bagi class
turunannya. Di dalam abstract class umumnya akan memiliki abstract method.
9. Polimorfisme adalah kemampuan suatu objek untuk mengungkap banyak hal
melalui satu cara yang sama. Polimorfisme merupakan salah satu hal esensial
dalam pemograman berorientasi objek karena alasan beriku: yakni
polimorfisme mengizinkan kelas induk untuk mendefinisikan sebuah method
general ( bersifat umum) untuk semua kelas turunannya. Polimorfisme dapat
berupa overloading atau overriding.
Tanggal : 21-12-2020
VIII-2
10. Exception Handling adalah event yang terjadi ketika program menemui
kesalahan pada saat instruksi program dijalankan. Banyak hal yang dapat
menimbulkan event ini, misalnya crash, harddisk rusak dengan tiba-tiba,
sehingga program-program tidak bisa mengakses file-file tertentu
11. Interface adalah prototype atau template untuk sebuah class, deskripsi ini
hampir serupa dengan class abstrak. class abstrak merupakan Class yang
diimlementasikan secara parsial
12. Basis data (database) adalah kumpulan data yang disimpan secara sistematis
di dalam komputer yang dapat diolah atau dimanipulasi menggunakan
perangkat lunak (program aplikasi) untuk menghasilkan informasi.
Tanggal : 21-12-2020
DAFTAR PUSTAKA
Laboratorium Pemrograman dan RPL. 2020. Modul Semester Ganjil Object
Oriented Programming. Laboratorium Pemrograman Insitut Teknologi Nasional
Malang.
Dian, Muhar. 2017. PetaniCode. November 10. Accessed Desember 9, 2018.
https://www.petanikode.com/java-oop/.
Karim, Damas Amirul. 2017. kodedasar. Maret 27. Accessed Desember 7, 2018.
https://www.kodedasar.com/belajar-java/.
Kurniawan, Wisnu. 2016. medium. Oktober 6. Accessed Desember 2018, 2.
https://medium.com/@wisnukurniawan/pengenalan-konsep-penyusun-
oop-pada-java-programming-f3083522954c.
LABORATORIUM PEMROGRAMAN & RPL
INSTITUT TEKNOLOGI NASIONAL
Kampus II: Jl. Raya Karanglo Km. 2 Malang
Asistensi
No. Tanggal Paraf
Konsep Program Hasil Akhir
Konsep Dasar OOP
Tipe Data, Konstruktor
17-11-2020
Instruktur
Enkapsulasi, Inheritance
1 10-12-2020 OK OK
Abstrak,Interface
21-12-2020
Polimorfisme, Exception
GUI Database
Dosen
Batas Akhir: