Anda di halaman 1dari 59

LAPORAN PRAKTIKUM

PEMROGRAMAN BERBASIS OBJEK

Disusun Oleh:
Wima Alif Harianto
21533439

FAKULTAS TEKNIK
PROGRAM STUDI S1 TEKNIK INFORMATIKA
UNIVERSITAS MUHAMMADIYAH PONOROGO
TAHUN AJARAN 2021/2022
HALAMAN PENGESAHAN
LAPORAN PRAKTIKUM
PEMROGRAMAN BERBASIS OBJEK

NAMA : Wima Alif Harianto


NIM : 21533439
SEMESTER : 2 Ganjil/Genap
TAHUN AKADEMIK : 2021/2022

Laporan Praktikum Pemrograman Berbasis Objek ini telah disetujui dengan


Nilai: ........................

Mengetahui Menyetujui
Kepala Laboratorium Teknik Informatika Dosen Pembimbing

(Moh. Bhanu Setyawan, ST., M.Kom) (Indah Puji Astuti, S.Kom.M.Kom)


NIK: 19800225 201309 13 NIK: 19860424 201609 13

ii
BERITA ACARA
BIMBINGAN LAPORAN
PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK

Nama : Wima Alif Harianto


NIM : 21533439
Program Studi : Teknik Informatika

No Tanggal Topik Paraf

1 10 Juli 2022 Revisi daftar isi.

2 10 Juli 2022 Revisi penomoran pada percobaan 1.

3 10 Juli 2022 Revisi codingan perkalian matriks 2x2


pada percobaan 7.

4 10 Juli 2022 Menghapus halaman kesimpulan.

Pembimbing

(Indah Puji Astuti, S.Kom.M.Kom)


NIK: 19860424 201609 13

iii
KATA PENGANTAR

Dengan menyebut nama Allah SWT yang Maha Pengasih lagi Maha
Panyayang, saya panjatkan puja dan puji syukur atas kehadirat-Nya, yang telah
melimpahkan rahmat, hidayah, dan inayah-Nya kepada saya, sehingga saya dapat
menyelesaikan laporan praktikum Pemrograman Berbasis Objek ini.
Laporan praktikum ini telah saya susun dengan maksimal dan mendapatkan
bantuan dari berbagai pihak sehingga dapat memperlancar pembuatan laporan ini.
Kami berharap lebih jauh lagi agar makalah ini bisa pembaca praktekkan dalam
kehidupan sehari-hari Untuk itu saya mengucapkan terima kasih kepada Ibu Indah
Puji Astuti, S.Kom.M.Kom, selaku Dosen mata kuliah Praktikum Pemrograman
Berbasis Objek yang telah memberikan tugas ini sehingga dapat menambah
pengetahuan dan wawasan sesuai dengan bidang studi yang saya tekuni ini.
Tak lupa, saya menyampaikan banyak terima kasih kepada semua pihak yang
tidak bisa saya sebutkan semuanya. Terima kasih telah berkontribusi dalam
pembuatan laporan ini sehingga saya dapat menyelesaikan tugas ini.
Terlepas dari semua itu, saya menyadari sepenuhnya bahwa masih ada
kekurangan baik dari segi susunan kalimat maupun tata bahasanya. Oleh karena itu
dengan tangan terbuka saya menerima segala saran dan kritik dari pembaca agar
saya dapat memperbaiki laporan pratikum ini.

Ponorogo, 7 Juli 2022

Penyusun

iv
DAFTAR ISI

HALAMAN PENGESAHAN .............................................................................ii


BERITA ACARA...............................................................................................iii
KATA PENGANTAR ........................................................................................iv
DAFTAR ISI .......................................................................................................v
PERCOBAAN 1..................................................................................................6
PERCOBAAN 2................................................................................................13
PERCOBAAN 3................................................................................................16
PERCOBAAN 4................................................................................................19
PERCOBAAN 5................................................................................................23
PERCOBAAN 6................................................................................................26
PERCOBAAN 7................................................................................................29
PERCOBAAN 8................................................................................................35
PERCOBAAN 9................................................................................................40
PERCOBAAN 10..............................................................................................50

v
PERCOBAAN 1
Persiapan instalasi perangkat lunak

I. TUJUAN

1. Melakukan instalasi Java Development Kit (JDK)


2. Melakukan instalasi text editor NetBeans IDE 8.2.

II. DASAR TEORI

Java Development Kit (JDK) menyediakan perangkat lunak untuk bekerja


dengan aplikasi Java. Contoh perangkat lunak yang disertakan adalah mesin
virtual, compiler, alat pemantauan kinerja, debugger, dan fitur lain yang
berguna untuk programmer Java.

III. ALAT

Java Development Kit (JDK) Windows x64.


NetBeans IDE 8.2.

IV. BAHAN

Laptop Lenovo Thinkpad T430.


Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz.
8GB RAM DDR3.
HDD 500GB.

V. PROSEDUR KERJA

Instalasi Java Development Instalasi NetBeans IDE


Mulai Kit (JDK) 8.0.2 Selesai

6
VI. PEMBAHASAN

INSTALASI JAVA DEVELOPMENT KIT (JDK).

1. Unduh Java JDK, sesuaikan versinya dengan sistem operasi yang anda
gunakan. Disini saya menggunakan versi 64-bit.

2. Kemudian jalankan paket instalasi Java JDK, lalu klik next.

3. Pada halaman Custom Setup, langsung klik next saja.

7
4. Lalu proses ekstrak instalasi akan berlangsung hingga muncul halaman
baru. Kemudian klik OK.

5. Pemilihan direktori tujuan untuk instalasi Java JDK. Jika tidak ingin
mengubah direktori tujuan, klik Next.

8
INSTALASI NETBEANS IDE 8.2.

1. Silahkan unduh dan jalankan paket instalasi NetBeans IDE 8.2. Jika sudah
terbuka, klik Next.

2. Pada halaman license agreement, centang kotak bertuliskan accept lalu klik
Next.

9
3. Pada bagian pemilihan direktori instalasi, jika tidak ingin merubah direktori
instalasi NetBeans langsung klik next. Jika sebelumnya instalasi Java JDK
berada di direktori yang berbeda, klik browse lalu arahkan ke direktori Java
JDK berada.

4. Instalasi akan berlangsung, tunggu hingga selesai. Kemudian klik Finish.

10
5. Instalasi Java dimulai. Tunggu hingga selesai dan klik Close.

11
VII. KESIMPULAN

Ketika melakukan instalasi NetBeans IDE untuk praktikum ini, perangkat


lunak Java Development Kit (JDK) sangat dibutuhkan untuk pengembangan
aplikasi program berbasis Java.

VIII. DAFTAR PUSTAKA

https://en.wikipedia.org/wiki/Java_Development_Kit (diakses 6 Juli 2022)

Menyetujui
Pembimbing

Indah Puji Astuti, S.Kom.M.Kom


NIK. 19860424 201609 13

12
PERCOBAAN 2
Pengenalan coding di Java

I. TUJUAN

1. Pengenalan coding dengan bahasa pemrograman Java.


2. Membuat program Java pertama kali yakni menghitung luas dan keliling
lingkaran.

II. DASAR TEORI

Operasi aritmatika digunakan untuk operasi menghitung luas dan keliling


lingkaran. Sedangkan, untuk input nilai dari pengguna menggunakan paket
java.util.Scanner.

III. ALAT

NetBeans IDE 8.2.

IV. BAHAN

Laptop Lenovo Thinkpad T430.


Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz.
8GB RAM DDR3.
HDD 500GB.

V. PROSEDUR KERJA

Pengenalan jendela Pengenalan coding


Mulai kerja NetBeans IDE 8.2 dengan Java
Selesai

VI. PEMBAHASAN

CODING PROGRAM MENGHITUNG LUAS DAN KELILING


LINGKARAN.

// Pertemuan 2 - Praktikum PBO

package Pertemuan2_PraktikumPBO;

13
import java.util.Scanner; //import scanner
public class soal_101 {
public static void main(String[] args ) {
//menambahkan variable input keyboard

Scanner input = new Scanner(System.in);

//deklarasi variable
float phi=3.15f;
float r, luas, keliling;

//input jari-jari
System.out.println("Masukkan jari-jari: ");
r = input.nextInt();
luas = phi*r*r;
keliling = 2*phi*r;

//tampilkan hasil ke
System.out.println("Luas lingkaran adalah: " +
luas);
System.out.println("Keliling lingkaran adalah: " +
keliling);
}
}

RUN FILE PROGRAM MENGHITUNG LUAS DAN KELILING


LINGKARAN.

14
VII. KESIMPULAN

Dengan mengenal operasi aritmatika pada Java, kita dapat membuat program
menghitung luas dan keliling lingkaran dengan mudah.

VIII. DAFTAR PUSTAKA

Modul Praktikum Pemrograman Berbasis Objek

Menyetujui
Pembimbing

Indah Puji Astuti, S.Kom.M.Kom


NIK. 19860424 201609 13

15
PERCOBAAN 3
Pengenalan atribut dan input dari keyboard

I. TUJUAN

1. Pengenalan atribut pada Java.


2. Membuat program yang menggunakan input dari keyboard.

II. DASAR TEORI

Atribut merupakan properti yang dimiliki suatu objek.


Untuk input dari keyboard, kita menggunakan paket dari java.util.Scanner.

III. ALAT

NetBeans IDE 8.2.

IV. BAHAN

Laptop Lenovo Thinkpad T430.


Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz.
8GB RAM DDR3.
HDD 500GB.

V. PROSEDUR KERJA

Membuat program untuk


Mulai mengenal atribut
Membuat program yang
membutuhkan input dari keyboard
Selesai

VI. PEMBAHASAN

CODING PROGRAM KONVERSI KURS RUPIAH KE US DOLLAR DAN


EURO.

// Pertemuan 3 - Praktikkum PBO

package Pertemuan3_PraktikumPBO;

/* Import Scanner */

16
import java.util.Scanner;

public class Soal_102 {


public static void main(String[] args) {

/* menambahkan variable input keyboard */


Scanner input = new Scanner(System.in);

/* Deklarasi variabel */
float rupiah, dollar, euro;

//MAIN PROGRAM
System.out.println("--- PROGRAM KONVERSI MATA UANG
IDR KE USD DAN EURO ---");
System.out.println("Masukan nilai Rupiah = ");
rupiah = input.nextFloat();
/* Kurs berdasarkan tgl dibuatnya program ini */
dollar = (float) (rupiah*0.000067);
euro = (float) (rupiah*0.000064);

/* Output ke user */
System.out.println();
System.out.println("Hasil Kurs dari Rp." + rupiah
+ " adalah: ");
System.out.println("US Dollar = $" + dollar);
System.out.println("Euro = €" + euro);
}
}

RUN FILE PROGRAM KURS RUPIAH KE US DOLLAR DAN EURO.

17
VII. KESIMPULAN

Pada konsep OOP, atribut pada objek akan disimpan di dalam variable. Untuk
menambahkan atribut, bisa menggunakan input dari keyboard dengan
mengimpor paket Scanner dari java.util.

VIII. DAFTAR PUSTAKA

Modul Praktikum Pemrograman Berbasis Objek.

Menyetujui
Pembimbing

Indah Puji Astuti, S.Kom.M.Kom


NIK. 19860424 201609 13

18
PERCOBAAN 4
Pengenalan class, object, dan method

I. TUJUAN

Pengenalan apa itu class, object, dan method pada Java.

II. DASAR TEORI

Class bertugas untuk mengumpulkan prosedur dan variabel dalam satu tempat.
Objek adalah sebuah variabel yang merupakan perwujudan dari class.
Method yaitu sebutan untuk fungsi pada Java.

III. ALAT

NetBeans IDE 8.2.

IV. BAHAN

Laptop Lenovo Thinkpad T430.


Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz.
8GB RAM DDR3.
HDD 500GB.

V. PROSEDUR KERJA

Membuat program untuk mengenal class,


Mulai Selesai
object, dan method

VI. PEMBAHASAN

CODING PROGRAM MENGENAL CLASS, OBJECT, DAN METHOD.

// Pertemuan 4 - Praktikum PBO

package Pertemuan4_PraktikumPBO;

// mengimpor scanner ke dalam program


import java.util.Scanner;

// membuat class dan deklarasi variable

19
class Binatang {
String Warna;
String JenisKelamin;
String Umur;
}

class Main {
public static void main(String[] args) {
// menambahkan variable input keyboard
Scanner input = new Scanner(System.in);

// membuat object
Binatang Kucing = new Binatang();
Binatang Anjing = new Binatang();

/* menampilkan output ke user */


System.out.println("### Tugas Pertemuan 4 ###");

// untuk object kucing


System.out.print("Masukkan warna untuk hewan
kucing: ");
Kucing.Warna = input.nextLine();
System.out.print("Masukkan jenis kelamin untuk
hewan kucing: ");
Kucing.JenisKelamin = input.nextLine();
System.out.print("Masukkan umur untuk hewan
kucing: ");
Kucing.Umur = input.nextLine();

/* menampilkan output ke user */


System.out.println();
System.out.println("Eitss.. masih belum selesai
nihh");
System.out.println();

// untuk object anjing


System.out.print("Masukkan warna untuk hewan
anjing: ");
Anjing.Warna = input.nextLine();
System.out.print("Masukkan jenis kelamin untuk
hewan anjing: ");
Anjing.JenisKelamin = input.nextLine();
System.out.print("Masukkan umur untuk hewan
anjing: ");
Anjing.Umur = input.nextLine();

20
/* menampilkan hasil inputan ke user */
System.out.println();
System.out.println("------------------------------
-------------");
System.out.println("Berikut ciri-ciri untuk hewan
kucing: ");
System.out.println("Warna: " + Kucing.Warna);
System.out.println("Jenis Kelamin: " +
Kucing.JenisKelamin);
System.out.println("Umur: " + Kucing.Umur);
System.out.println();
System.out.println("Dan ini ciri-ciri untuk hewan
anjing: ");
System.out.println("Warna: " + Anjing.Warna);
System.out.println("Jenis Kelamin: " +
Anjing.JenisKelamin);
System.out.println("Umur: " + Anjing.Umur);
}
}

RUN FILE PROGRAM MENGENAL CLASS, OBJECT, DAN METHOD.

21
VII. KESIMPULAN

Dengan mengetahui apa itu class, object, dan method, kita dapat membuat
program Java dengan mudah. Tentunya di bantu dengan koleksi perpustakaan
Java yang lengkap. Pada contoh kali ini, kita menggunakan paket Scanner
untuk mengisikan atribut pada objek hewan.

VIII. DAFTAR PUSTAKA

https://www.petanikode.com/java-oop/ (diakses 18 Juni 2022).

Menyetujui
Pembimbing

Indah Puji Astuti, S.Kom.M.Kom


NIK. 19860424 201609 13

22
PERCOBAAN 5
Pengenalan method void dan method return value

I. TUJUAN

Mengenalkan apa itu method void, method return value, dan fungsinya pada
Java.

II. DASAR TEORI

Method void adalah suatu method yang tidak mempunyai nilai (di deklarasikan
menggunakan keyword void).
Method return value merupakan kebalikan dari method void.

III. ALAT

NetBeans IDE 8.2.

IV. BAHAN

Laptop Lenovo Thinkpad T430.


Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz.
8GB RAM DDR3.
HDD 500GB.

V. PROSEDUR KERJA

Membuat program untuk mengenal method


Mulai void dan method return value
Selesai

VI. PEMBAHASAN

CODING PROGRAM MENGENAL METHOD VOID DAN METHOD


RETURN VALUE.

// Pertemuan 5 - Praktikum PBO

package Pertemuan5_PraktikumPBO;

23
public class nilai_akhir {

public static void main(String[] args){


double fill = 80.5; // input nilai
// output ke user
System.out.println("### Tugas Pertemuan 5 -
Praktikkum PBO ###");
input_nilai(fill); //memanggil variable fill untuk
operasi if else
}

static void input_nilai (double nilai){


// output hasil operasi ke user
System.out.println("----------------------------
----------------------------");
System.out.print("Misalkan Nilai akhir adalah
80,5");
if (nilai >= 81){
System.out.print(" maka index nilai nya
adalah A");
} else if (nilai > 75.5&& nilai <= 81){
System.out.print(" maka index nilai nya
adalah B+");
} else if (nilai > 71&& nilai <= 75.5){
System.out.print(" maka index nilai nya
adalah B-");
} else if (nilai > 65.5&& nilai <= 71){
System.out.print(" maka index nilai nya
adalah C+");
} else if (nilai > 55.5&& nilai <= 65.5){
System.out.print(" maka index nilai nya
adalah C-");
} else if (nilai > 45.5&& nilai <= 55.5){
System.out.print(" maka index nilai nya
adalah D");
} else if (nilai <= 45.5){
System.out.print(" maka index nilai nya
adalah E");
} System.out.println();
}
}

24
RUN FILE PROGRAM MENGENAL METHOD VOID DAN METHOD
RETURN VALUE.

VII. KESIMPULAN

Kita dapat membuat program index nilai menggunakan method void dan
method return value. Karena fungsi dari method void disini yakni
menampilkan nilai akhir yang di deklarasikan di dalam baris kode program
tersebut menjadi index nilai berupa B+.

VIII. DAFTAR PUSTAKA

https://www.community-java.com/2017/04/belajar-method-di-pemrograman-
java.html (diakses 18 Juni 2022)

Menyetujui
Pembimbing

Indah Puji Astuti, S.Kom.M.Kom


NIK. 19860424 201609 13

25
PERCOBAAN 6
Membuat program kuis praktikum PBO

I. TUJUAN

Membuat program yang menghasilkan output data mahasiswa berupa nama,


NIM, dan nomor WhatsApp. Data-data tersebut di dapatkan melalui input dari
keyboard.

II. DASAR TEORI

Class bertugas untuk mengumpulkan prosedur dan variabel dalam satu tempat.
Objek yaitu variabel yang merupakan perwujudan dari class.
Method yaitu sebutan function/fungsi pada Java.

III. ALAT

NetBeans IDE 8.2.

IV. BAHAN

Laptop Lenovo Thinkpad T430.


Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz.
8GB RAM DDR3.
HDD 500GB.

V. PROSEDUR KERJA

Membuat program kuis Membuat program tersebut


Mulai praktikum PBO dengan input dari keyboard Selesai

VI. PEMBAHASAN

CODING PROGRAM KUIS PRAKTIKUM PBO.

//Pertemuan 6 - Praktikum PBO

package Pertemuan6_PraktikumPBO;

import java.util.Scanner;

26
class Mahasiswa {
String Nama;
String NIM;
String NoWhatsApp;
}

class main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);

Mahasiswa mhs1 = new Mahasiswa();

System.out.println("### Tugas Pertemuan 6 ###");


System.out.print("Masukkan nama anda: ");
mhs1.Nama = input.nextLine();
System.out.print("Masukkan NIM anda: ");
mhs1.NIM = input.nextLine();
System.out.print("Masukkan nomor WhatsApp anda:
");
mhs1.NoWhatsApp = input.nextLine();

System.out.println("======================================
=");
System.out.println("Berikut data anda: ");
System.out.println("Nama: " + mhs1.Nama);
System.out.println("NIM: " + mhs1.NIM);
System.out.println("No WhatsApp: " +
mhs1.NoWhatsApp);

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

27
RUN FILE PROGRAM KUIS PRAKTIKUM PBO.

VII. KESIMPULAN

Dengan menguasai class, object, dan method, program kuis praktikum PBO
tersebut dapat diselesaikan. Karena, program tersebut membutuhkan method
void, input atribut berupa nama, NIM, dan nomor WhatsApp yang disimpan
pada class mahasiswa.

VIII. DAFTAR PUSTAKA

https://www.petanikode.com/java-oop/ (diakses 19 Juni 2022)

Menyetujui
Pembimbing

Indah Puji Astuti, S.Kom.M.Kom


NIK. 19860424 201609 13

28
PERCOBAAN 7
Pengenalan array

I. TUJUAN

Pengenalan penggunaan array 1 dimensi dan 2 dimensi pada pembuatan


program dengan Java.

II. DASAR TEORI

Array 1 dimensi adalah kumpulan data yang memiliki nama variabel dan tipe
data yang sama.
Array 2 dimensi adalah kumpulan data yang memiliki nama variabel dan tipe
data yang sama yang mana elemen-nya bisa diakses dengan 2 buah indeks
(baris dan kolom).

III. ALAT

NetBeans IDE 8.2.

IV. BAHAN

Laptop Lenovo Thinkpad T430.


Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz.
8GB RAM DDR3.
HDD 500GB.

V. PROSEDUR KERJA

Membuat program Membuat program


Mulai dengan array 1 dimensi dengan array 2 dimensi
Selesai

VI. PEMBAHASAN

CODING PROGRAM ARRAY 1 DIMENSI.

//Pertemuan 7 - Praktikum PBO

29
package Pertemuan7_PraktikumPBO;

import java.util.Scanner;

public class array_1_dimensi {

public static void main (String[] args) {

Scanner masukan = new Scanner(System.in);

int jumbil;

float rata2 , total=0;

System.out.print("Berapa banyaknya bilangan ? ");

jumbil = masukan.nextInt();

int data[] = new int[jumbil];

for(int i=0;i<jumbil;i++){

System.out.print("Masukkan data ke-"+(i+1)+" :


");

data[i] = masukan.nextInt();

total = total + data[i];

System.out.print("Nilai rata-rata dari : ");

for(int i=0;i<(jumbil-1);i++)

System.out.print(data[i] + " + ");

System.out.print(data[jumbil-1] + " adalah ");

rata2 = total/jumbil;

System.out.println(rata2);

30
RUN FILE PROGRAM ARRAY 1 DIMENSI.

CODING PROGRAM ARRAY 2 DIMENSI.

package Pertemuan7_PraktikumPBO;

import java.util.*;

class array_2_dimensi {

static int MAX = 100;

// Function untuk mencetak Matriks


static void printMatriks(int M[][], int rowSize, int
colSize)
{
for(int i = 0; i < rowSize; i++)
{
for(int j = 0; j < colSize; j++)
System.out.print(M[i][j] + " ");
System.out.println();
}
}

// Function untuk perkalian matriks A[][] dan B[][]


static void perkalianMatriks(int row1, int col1,
int A[][], int row2,
int col2, int B[][])
{
int i, j, k;

// Matriks untuk menyimpan hasil

31
int C[][] = new int[MAX][MAX];

// Cek jika perkalian memungkinkan


if (row2 != col1)
{
System.out.println("Tidak memungkinkan");
return;
}

// Perkalian 2 buah matriks


for(i = 0; i < row1; i++)
{
for(j = 0; j < col2; j++)
{
C[i][j] = 0;
for(k = 0; k < row2; k++)
C[i][j] += A[i][k] * B[k][j];
}
}

// Output hasil ke user


System.out.println();
System.out.println("Hasil perkalian: ");
printMatriks(C, row1, col2);
}

public static void main(String[] args)


{
Scanner read = new Scanner(System.in);
int row1, col1, row2, col2, i, j;
int A[][] = new int[MAX][MAX];
int B[][] = new int[MAX][MAX];

// input jumlah kolom dan baris matriks pertama


System.out.print("Masukkan jumlah " + "baris untuk
matriks pertama: ");
row1 = read.nextInt();
System.out.println(row1);
System.out.print("Masukkan jumlah " + "kolom untuk
matriks pertama: ");
col1 = read.nextInt();
System.out.println(col1);

// input nilai untuk matriks pertama


System.out.println("Masukkan angka " + "untuk matriks
pertama: ");
for(i = 0; i < row1; i++)

32
{
for(j = 0; j < col1; j++)
{
System.out.print("A[" + i + "][" + j + "]:
");
A[i][j] = read.nextInt();
System.out.println(A[i][j]);
}
}

// input jumlah kolom dan baris matriks kedua


System.out.print("Masukkan jumlah " + "baris untuk
matriks kedua: ");
row2 = read.nextInt();
System.out.println(row2);
System.out.print("Masukkan jumlah " + "kolom untuk
matriks kedua: ");
col2 = read.nextInt();
System.out.println(col2);

// input nilai untuk matriks kedua


System.out.println("Masukkan angka " + "untuk matriks
kedua: ");
for(i = 0; i < row2; i++)
{
for(j = 0; j < col2; j++)
{
System.out.print("A[" + i + "][" + j + "]:
");
B[i][j] = read.nextInt();
System.out.println(B[i][j]);
}
}

// Cetak matriks A
System.out.println();
System.out.println("Matriks pertama: ");
printMatriks(A, row1, col1);

// Cetak matriks B
System.out.println();
System.out.println("Matriks kedua: ");
printMatriks(B, row2, col2);
perkalianMatriks(row1, col1, A, row2, col2, B);
}
}

33
RUN FILE ARRAY 2 DIMENSI.

VII. KESIMPULAN

Dengan adanya array, kita dapat membuat program dengan berbagai data yang
disimpan dalam variabel dan tipe data yang sama.

VIII. DAFTAR PUSTAKA

https://www.komputertips.com/pengertian-apa-itu-array/ (diakses 19 Juni


2022)

Menyetujui
Pembimbing

Indah Puji Astuti, S.Kom.M.Kom


NIK. 19860424 201609 13

34
PERCOBAAN 8
Membuat program dengan operasi file

I. TUJUAN

1. Mengenal operasi pembacaan file teks.


2. Mengenal operasi penulisan file teks.

II. DASAR TEORI

File merupakan media penyimpanan esternal bagi program Java.


File dibutuhkan untuk menyimpan data hasil operasi program Java. Jika
disimpan di dalam variabel, data akan hilang setelah program ditutup.

III. ALAT

NetBeans IDE 8.2.

IV. BAHAN

Laptop Lenovo Thinkpad T430.


Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz.
8GB RAM DDR3.
HDD 500GB.

V. PROSEDUR KERJA

Mulai Membuat program yang Membuat program yang Selesai


dapat membaca file teks dapat menulis file teks

VI. PEMBAHASAN

CODING PROGRAM MEMBACA FILE TEKS.

// Pertemuan 8 - Praktikum PBO

package Pertemuan8_PraktikumPBO;

import java.io.*;

35
public class membaca_file {
public static void main(String[] args) throws
Exception {
File file = new File("text.txt");
if (!file.exists() || !file.canRead()){
System.out.println("Cant' read " + file);
return;
}
try {
int i=0;
BufferedReader fIn = new BufferedReader(new
FileReader(file));
String line;
while((line = fIn.readLine()) != null){
i++;
System.out.println(i+" : "+line);
}
}
catch (FileNotFoundException e){
System.out.println("File tidak ditemukan");
}
}
}

RUN FILE PROGRAM MEMBACA FILE TEKS.

CODING PROGRAM MENULIS FILE TEKS.

package Pertemuan8_PraktikumPBO;

import java.io.*;

36
public class menulis_file {
public static void main (String[]args) throws Exception
{
File fileIn = new File ("text.txt");
File fileOut = new File ("hasil.txt");
if (!fileIn.exists() || !fileIn.canRead()){
System.out.println("Can't read" + fileIn);
return;
}

try {
int i = 0;
BufferedReader fIn = new BufferedReader (new
FileReader (fileIn));
BufferedWriter fOut = new BufferedWriter (new
FileWriter (fileOut));
String line;
while ((line = fIn.readLine()) !=null){
i++;
if (i<10) fOut.write(" ");
else if (i<100) fOut.write (" ");
fOut.write(i+ " : " + line);
fOut.newLine();
System.out.println("File output sudah
dibuat, silahkan cek direktori anda");
}

fOut.close();
fIn.close();
}

catch (FileNotFoundException e){


System.out.println("File tidak ditemukan");
}
}
}

37
RUN FILE PROGRAM MENULIS FILE TEKS.

HASIL OUTPUT PROGRAM MENULIS FILE TEKS.

38
VII. KESIMPULAN

Ketika kita melakukan suatu pemrosesan data dengan program Java, data-data
tersebut akan disimpan di dalam variabel setelahnya akan hilang setelah
program tersebut ditutup. Dengan adanya file, kita dapat membaca lagi data
yang disimpan di dalamnya Ketika program Java ditutup.

VIII. DAFTAR PUSTAKA

Modul Praktikum Pemrograman Berbasis Objek

Menyetujui
Pembimbing

Indah Puji Astuti, S.Kom.M.Kom


NIK. 19860424 201609 13

39
PERCOBAAN 9
Membuat program pemesanan menu di cafe

I. TUJUAN

Membuat program sederhana tentang pemesanan menu di cafe. Program


tersebut dibuat dalam bentuk Graphical User Interface (GUI).

II. DASAR TEORI

GUI (Graphical User Interface) adalah bentuk antarmuka pengguna yang


memungkinkan pengguna untuk berinteraksi dengan perangkat elektronik
melalui ikon grafis dan indikator audio seperti notasi utama, alih-alih UI
berbasis teks, label perintah yang diketik, atau navigasi teks.

III. ALAT
NetBeans IDE 8.2.

IV. BAHAN

Laptop Lenovo Thinkpad T430.


Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz.
8GB RAM DDR3.
HDD 500GB.

V. PROSEDUR KERJA

Membuat program pemesanan menu


Mulai di cafe berbasis GUI Selesai

VI. PEMBAHASAN

CODING PROGRAM PEMESANAN MENU DI CAFE.

package Pertemuan9_PraktikumPBO;

public class Cafe_GUI extends javax.swing.JFrame {

/**

40
* Creates new form Cafe_GUI
*/
public Cafe_GUI() {
initComponents();
this.setTitle("Wima's Cafe");
}

/**
* This method is called from within the constructor
to initialize the form. WARNING: Do NOT modify this code.
The content of this method is always regenerated by the
Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed"
desc="Generated Code">
private void initComponents() {

jLabel1 = new javax.swing.JLabel();


jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
jLabel6 = new javax.swing.JLabel();
jLabel7 = new javax.swing.JLabel();
menu = new javax.swing.JComboBox<>();
harga = new javax.swing.JTextField();
jumlah = new javax.swing.JTextField();
pembayaran = new javax.swing.JTextField();
total = new javax.swing.JTextField();
kembalian = new javax.swing.JTextField();
hitung = new javax.swing.JButton();
reset = new javax.swing.JButton();
keluar = new javax.swing.JButton();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_
ON_CLOSE);

jLabel1.setFont(new java.awt.Font("Calibri", 1,
24)); // NOI18N
jLabel1.setText("Wima's Cafe");

jLabel2.setText("Pilihan Menu");

jLabel3.setText("Harga");

jLabel4.setText("Jumlah");

41
jLabel5.setText("Pembayaran");

jLabel6.setText("Total Bayar");
jLabel7.setText("Kembalian");

menu.setModel(new
javax.swing.DefaultComboBoxModel<>(new String[] { "---
Pilih ---", "Americano ", "Cappucino", "Espresso",
"Machiato", "Latte" }));
menu.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
menuActionPerformed(evt);
}
});

kembalian.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
kembalianActionPerformed(evt);
}
});

hitung.setText("Hitung");
hitung.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
hitungActionPerformed(evt);
}
});

reset.setText("Reset");
reset.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
resetActionPerformed(evt);
}
});

keluar.setText("Keluar");
keluar.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {

42
keluarActionPerformed(evt);
}
});

javax.swing.GroupLayout layout = new


javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.LEADING)

.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addContainerGap()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayo
ut.Alignment.LEADING)
.addComponent(jLabel2)
.addComponent(jLabel3)
.addComponent(jLabel4)
.addComponent(jLabel5))
.addGap(45, 45, 45)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayo
ut.Alignment.LEADING, false)
.addComponent(pembayaran)
.addComponent(jumlah)
.addComponent(harga)
.addComponent(menu, 0, 180,
Short.MAX_VALUE))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacemen
t.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayo
ut.Alignment.LEADING)
.addComponent(keluar,
javax.swing.GroupLayout.PREFERRED_SIZE, 74,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(reset,
javax.swing.GroupLayout.PREFERRED_SIZE, 74,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(hitung,
javax.swing.GroupLayout.PREFERRED_SIZE, 74,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(108, 108, 108))

43
.addGroup(layout.createSequentialGroup()
.addGap(25, 25, 25)
.addComponent(jLabel6)
.addGap(18, 18, 18)
.addComponent(total,
javax.swing.GroupLayout.PREFERRED_SIZE, 110,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(66, 66, 66)
.addComponent(jLabel7)
.addGap(29, 29, 29)
.addComponent(kembalian,
javax.swing.GroupLayout.PREFERRED_SIZE, 115,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(66, Short.MAX_VALUE))

.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()

.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(jLabel1)
.addGap(202, 202, 202))
);
layout.setVerticalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(20, 20, 20)
.addComponent(jLabel1)
.addGap(27, 27, 27)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayo
ut.Alignment.BASELINE)
.addComponent(jLabel2)
.addComponent(menu,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(16, 16, 16)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayo
ut.Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(harga,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)

44
.addComponent(hitung))
.addGap(18, 18, 18)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayo
ut.Alignment.BASELINE)
.addComponent(jLabel4)
.addComponent(jumlah,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(reset))
.addGap(18, 18, 18)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayo
ut.Alignment.BASELINE)
.addComponent(jLabel5)
.addComponent(pembayaran,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(keluar))
.addGap(35, 35, 35)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayo
ut.Alignment.BASELINE)
.addComponent(jLabel6)
.addComponent(jLabel7)
.addComponent(total,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(kembalian,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(20, 20, 20))
);

pack();
}// </editor-fold>

private void
kembalianActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}

private void
hitungActionPerformed(java.awt.event.ActionEvent evt) {

45
int totalbayar = Integer.parseInt(harga.getText())
* Integer.parseInt(jumlah.getText());
total.setText("" + totalbayar);

int kembali =
Integer.parseInt(pembayaran.getText()) -
Integer.parseInt(total.getText());
kembalian.setText("" + kembali);
}

private void
menuActionPerformed(java.awt.event.ActionEvent evt) {
int Harga = 0;
int pilihan = menu.getSelectedIndex();
switch (pilihan) {
case 1 :
Harga = 10000;
break;
case 2 :
Harga = 11000;
break;
case 3 :
Harga = 11000;
break;
case 4 :
Harga = 12000;
break;
case 5 :
Harga = 12000;
break;
}
harga.setText("" + Harga);
}

private void
resetActionPerformed(java.awt.event.ActionEvent evt) {
menu.setSelectedIndex(0);
harga.setText("");
jumlah.setText("");
pembayaran.setText("");
total.setText("");
kembalian.setText("");
}

private void
keluarActionPerformed(java.awt.event.ActionEvent evt) {

46
System.exit(0);
}

/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc="
Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not
available, stay with the default look and feel.
* For details see
http://download.oracle.com/javase/tutorial/uiswing/lookand
feel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo
info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {

javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {

java.util.logging.Logger.getLogger(Cafe_GUI.class.getName(
)).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {

java.util.logging.Logger.getLogger(Cafe_GUI.class.getName(
)).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {

java.util.logging.Logger.getLogger(Cafe_GUI.class.getName(
)).log(java.util.logging.Level.SEVERE, null, ex);
} catch
(javax.swing.UnsupportedLookAndFeelException ex) {

java.util.logging.Logger.getLogger(Cafe_GUI.class.getName(
)).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>

/* Create and display the form */


java.awt.EventQueue.invokeLater(new Runnable() {

47
public void run() {
new Cafe_GUI().setVisible(true);
}
});
}

// Variables declaration - do not modify


private javax.swing.JTextField harga;
private javax.swing.JButton hitung;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JTextField jumlah;
private javax.swing.JButton keluar;
private javax.swing.JTextField kembalian;
private javax.swing.JComboBox<String> menu;
private javax.swing.JTextField pembayaran;
private javax.swing.JButton reset;
private javax.swing.JTextField total;
// End of variables declaration
}

RUN FILE PROGRAM PEMESANAN MENU DI CAFE.

48
VII. KESIMPULAN

Kita dapat melayani pemesanan menu di cafe dengan mudah dan cepat dengan
adanya aplikasi Java berbasis GUI. Terutama dalam hal pemberian kembalian
ketika ada pelanggan yang membayar pesanannya dengan uang lebih.

VIII. DAFTAR PUSTAKA

https://en.wikipedia.org/wiki/Graphical_user_interface/ (diakses 5 Juli 2022)

Menyetujui
Pembimbing

Indah Puji Astuti, S.Kom.M.Kom


NIK. 19860424 201609 13

49
PERCOBAAN 10
Membuat program diskon pemesanan menu di cafe

I. TUJUAN

Membuat program sederhana diskon pemesanan menu di cafe dalam bentuk


GUI.

II. DASAR TEORI

Percabangan if else merupakan suatu kondisi dimana suatu opsi akan di


jalankan sesuai dengan pilihan. Jika sesuai, maka perintah IF yang dijalankan.
Jika tidak sesuai, maka perintah ELSE yang di jalankan.

III. ALAT

NetBeans IDE 8.2.

IV. BAHAN

Laptop Lenovo Thinkpad T430.


Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz.
8GB RAM DDR3.
HDD 500GB.

V. PROSEDUR KERJA

Membuat program diskon pemesanan


Mulai menu di cafe berbasis GUI Selesai

VI. PEMBAHASAN

CODING PROGRAM DISKON PEMESANAN MENU DI CAFE.

package Pertemuan10_PraktikumPBO;

import javax.swing.JOptionPane;

public class Program_diskon_cafe extends


javax.swing.JFrame {

50
/**
* Creates new form Cafe_GUI
*/
public Program_diskon_cafe() {
initComponents();
this.setTitle("Dhahar Resto");
}

/**
* This method is called from within the constructor
to initialize the form. WARNING: Do NOT modify this code.
The content of this method is always regenerated by the
Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed"
desc="Generated Code">
private void initComponents() {

jLabel1 = new javax.swing.JLabel();


jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
menu = new javax.swing.JComboBox<>();
harga = new javax.swing.JTextField();
jumlah = new javax.swing.JTextField();
totalbayar = new javax.swing.JTextField();
Bayar = new javax.swing.JButton();
reset = new javax.swing.JButton();
keluar = new javax.swing.JButton();
hitung1 = new javax.swing.JButton();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_
ON_CLOSE);

jLabel1.setFont(new java.awt.Font("Calibri", 1,
24)); // NOI18N
jLabel1.setText("Dhahar Resto");

jLabel2.setText("Pilihan Menu");

jLabel3.setText("Harga");

jLabel4.setText("Jumlah");

jLabel5.setText("Total bayar");

51
menu.setModel(new
javax.swing.DefaultComboBoxModel<>(new String[] { "---
Pilih ---", "Cheese burger", "Spagetti", "Pizza", "French
fries", "Ice cream" }));
menu.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
menuActionPerformed(evt);
}
});

totalbayar.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
totalbayarActionPerformed(evt);
}
});

Bayar.setText("Bayar");
Bayar.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
BayarActionPerformed(evt);
}
});

reset.setText("Reset");
reset.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
resetActionPerformed(evt);
}
});

keluar.setText("Keluar");
keluar.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
keluarActionPerformed(evt);
}
});

hitung1.setText("Hitung");

52
hitung1.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
hitung1ActionPerformed(evt);
}
});

javax.swing.GroupLayout layout = new


javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.LEADING)

.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addContainerGap()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayo
ut.Alignment.LEADING)
.addComponent(jLabel2)
.addComponent(jLabel3)
.addComponent(jLabel4)
.addComponent(jLabel5))
.addGap(45, 45, 45)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayo
ut.Alignment.LEADING, false)
.addComponent(totalbayar)
.addComponent(jumlah)
.addComponent(harga)
.addComponent(menu, 0, 180,
Short.MAX_VALUE))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacemen
t.RELATED, 56, Short.MAX_VALUE)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayo
ut.Alignment.LEADING)
.addComponent(keluar,
javax.swing.GroupLayout.PREFERRED_SIZE, 74,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(reset,
javax.swing.GroupLayout.PREFERRED_SIZE, 74,
javax.swing.GroupLayout.PREFERRED_SIZE)

53
.addComponent(Bayar,
javax.swing.GroupLayout.PREFERRED_SIZE, 74,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(hitung1,
javax.swing.GroupLayout.PREFERRED_SIZE, 74,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(108, 108, 108))
.addGroup(layout.createSequentialGroup()
.addGap(195, 195, 195)
.addComponent(jLabel1)

.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
layout.setVerticalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(20, 20, 20)
.addComponent(jLabel1)
.addGap(24, 24, 24)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayo
ut.Alignment.BASELINE)
.addComponent(menu,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel2)
.addComponent(hitung1))
.addGap(18, 18, 18)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayo
ut.Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(harga,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(Bayar))
.addGap(18, 18, 18)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayo
ut.Alignment.BASELINE)
.addComponent(jLabel4)
.addComponent(jumlah,
javax.swing.GroupLayout.PREFERRED_SIZE,

54
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(reset))
.addGap(18, 18, 18)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayo
ut.Alignment.BASELINE)
.addComponent(jLabel5)
.addComponent(totalbayar,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(keluar))
.addContainerGap(35, Short.MAX_VALUE))
);

pack();
}// </editor-fold>

private void
BayarActionPerformed(java.awt.event.ActionEvent evt) {
int bayar =
Integer.parseInt(totalbayar.getText());
if(bayar>=50000){
int discount=bayar*25/100;
int total=bayar-discount;
JOptionPane.showMessageDialog(this, "Selamat,
anda mendapatkan diskon 25%! Total bayar anda: " + total);
}
else if(bayar<50000){
int discount=bayar*10/100;
int total=bayar-discount;
JOptionPane.showMessageDialog(this, "Selamat,
anda mendapatkan diskon 10%! Total bayar anda: " + total);
}
}

private void
menuActionPerformed(java.awt.event.ActionEvent evt) {
int Harga = 0;
int pilihan = menu.getSelectedIndex();
switch (pilihan) {
case 1 :
Harga = 15000;
break;
case 2 :
Harga = 20000;
break;
case 3 :

55
Harga = 25000;
break;
case 4 :
Harga = 15000;
break;
case 5 :
Harga = 10000;
break;
}
harga.setText("" + Harga);
}
private void
resetActionPerformed(java.awt.event.ActionEvent evt) {
menu.setSelectedIndex(0);
harga.setText("");
jumlah.setText("");
totalbayar.setText("");
}

private void
keluarActionPerformed(java.awt.event.ActionEvent evt) {
System.exit(0);
}

private void
totalbayarActionPerformed(java.awt.event.ActionEvent evt)
{

private void
hitung1ActionPerformed(java.awt.event.ActionEvent evt) {
int total = Integer.parseInt(harga.getText()) *
Integer.parseInt(jumlah.getText());
totalbayar.setText("" + total);
}

/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc="
Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not
available, stay with the default look and feel.

56
* For details see
http://download.oracle.com/javase/tutorial/uiswing/lookand
feel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo
info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {

javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {

java.util.logging.Logger.getLogger(Program_diskon_cafe.cla
ss.getName()).log(java.util.logging.Level.SEVERE, null,
ex);
} catch (InstantiationException ex) {

java.util.logging.Logger.getLogger(Program_diskon_cafe.cla
ss.getName()).log(java.util.logging.Level.SEVERE, null,
ex);
} catch (IllegalAccessException ex) {

java.util.logging.Logger.getLogger(Program_diskon_cafe.cla
ss.getName()).log(java.util.logging.Level.SEVERE, null,
ex);
} catch
(javax.swing.UnsupportedLookAndFeelException ex) {

java.util.logging.Logger.getLogger(Program_diskon_cafe.cla
ss.getName()).log(java.util.logging.Level.SEVERE, null,
ex);
}
//</editor-fold>
//</editor-fold>

/* Create and display the form */


java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new
Program_diskon_cafe().setVisible(true);
}
});
}

// Variables declaration - do not modify


private javax.swing.JButton Bayar;

57
private javax.swing.JTextField harga;
private javax.swing.JButton hitung1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JTextField jumlah;
private javax.swing.JButton keluar;
private javax.swing.JComboBox<String> menu;
private javax.swing.JButton reset;
private javax.swing.JTextField totalbayar;
// End of variables declaration
}

CODING UNTUK MENAMPILKAN POP-UP PEMBERITAHUAN


DISKON.

package Pertemuan10_PraktikumPBO;

public class pop_up {


public static void main(String[] args) {
Program_diskon_cafe frame = new
Program_diskon_cafe();
frame.show();
}
}

RUN FILE PROGRAM PEMESANAN MENU DI CAFE (MENDAPAT


DISKON 10%).

58
RUN FILE PROGRAM PEMESANAN MENU DI CAFE (MENDAPAT
DISKON 25%).

VII. KESIMPULAN

Dengan adanya percabangan if else, kita dapat membuat program kasir cafe
yang dapat memberitahukan total bayar yang telah diberikan diskon dengan
cepat kepada pelanggan di cafe.

VIII. DAFTAR PUSTAKA

Modul Praktikum Pemrograman Berbasis Objek

Menyetujui
Pembimbing

Indah Puji Astuti, S.Kom.M.Kom


NIK. 19860424 201609 13

59

Anda mungkin juga menyukai