A. DEFINISI MASALAH
1. Buatlah program dengan pilihan menu yang terus berulang, dan menu akan
berhenti jika user akan menginputkan angka “ 7 ”. Pilihan menunya adalah :
1. Input Data
2. Lihat Data
3. Average
4. Sum
5. Max
6. Min
7. Keluar
Masukkan nilai :
2. Buatlah prigram dengan pilihan menu yang terus berulang, dan menu akan
berhenti jika user menginputkan angka selain yang diminta. Program ini memiliki
array 2D untuk menyimpan data Kereta Api.
Jenis Harga Diskon AC Colokan
Ekonomi 50000 2% Tidak Ada Tidak Ada
Bisnis 100000 5% Ada TIdak Ada
Eksekutif 200000 7% Ada TIdak Ada
Pariwisata 300000 10 % Ada Ada
Pilihan menunya adalah :
a. Melihat Daftar Kereta Api
b. Melihat Daftar Kereta Api yang ada AC
c. Melihat Daftar Kereta Api yang ada Colokan
d. Memesan Tiket Kereta Api
e. Melihat Pesanan Tiket
Masukkan nilai :
B. SOURCE CODE
1 package javaapplication3;
2 import java.util.Scanner;
3 public class Soal_11 {
4 public static void main(String[] args) {
5 Scanner in = new Scanner(System.in);
6 int jumlah = 0, jumlah1 = 0, pilihan = 0, i,j, maxi =
0, mini = 1000;
7 double average = 0;
8 System.out.print("Masukkan jumlah baris : ");
9 int baris = in.nextInt();
10 System.out.print("Masukkan jumlah kolom : ");
11 int kolom = in.nextInt();
12 int array[][] = new int [baris][kolom];
13 do {
14 System.out.println("1. Input Data");
15 System.out.println("2. Lihat Data");
16 System.out.println("3. Average");
17 System.out.println("4. Sum");
18 System.out.println("5. Max");
19 System.out.println("6. Min");
20 System.out.println("7. Keluar");
21 System.out.print("Masukkan Pilihan : ");
22 pilihan = in.nextInt();
23 switch (pilihan) {
24 case 1:
25 for (i = 0; i < baris; i++){
26 for(j=0; j < kolom; j++){
27 System.out.print("Masukkan Jumlah
Baris " + (i + 1) + " Kolom " + (j +1) + " : ");
28 array[i][j] = in.nextInt();
29 } } break;
30 case 2:
31 for (i = 0; i < baris; i++){
32 for(j=0; j < kolom; j++){
33 System.out.println(array[i][j]);
34 }
35 System.out.println();
36 } break;
37 case 3:
38 for (i = 0; i < baris; i++){
39 for(j=0; j < kolom; j++){
40 jumlah = jumlah + array[i][j];
41 average = jumlah / (baris * kolom);
42 if ( i == baris - 1 && j == kolom -
1){
43 System.out.println("Rata-
Ratanya adalah : " + average);
44 }}} break;
45 case 4:
46 for (i = 0; i < baris; i++){
47 for(j=0; j < kolom; j++){
48 jumlah1 = jumlah1 + array [i][j];
49 if (i == baris - 1 && j == kolom -
1) {
50 System.out.println("Hasil
Penjumlahannya : " + jumlah1);
51 }}} break;
52 case 5:
53 for (i = 0; i < baris; i++){
54 for(j=0; j < kolom; j++){
55 if (array[i][j] > maxi) {
56 maxi = array[i][j];
57 }
58 if ( i == baris - 1 && j == kolom -
1){
59 System.out.println("Nilai
Terbesar : " + maxi);
60 }}} break;
61 case 6:
62 for (i = 0; i < baris; i++){
63 for(j=0; j < kolom; j++){
64 if (array [i][j] < mini){
65 mini = array[i][j];
66 }
67 if (i == baris - 1 && j == kolom -
1) {
68 System.out.println("Nilai
Terkecil : " + mini);
69 }}} break;
70 case 7:
71 System.out.println("PROGRAM BERHENTI !!");
72 break;
73 default:
74 System.out.println("Pilihan Tidak
75 Ditemukan");
76 break;
77 }
78 } while ( pilihan != 7);
79 }}
1 package javaapplication3;
2 import java.util.Scanner;
3 public class KeretaApi {
4 public static void main(String[] args) {
5 Scanner in = new Scanner(System.in);
6 int menu = 0, tiket = 1, b, a, nokereta = 1, harga = 0;
7 String nama = null, alamat = null;
8 String keretaapi[][] = {
{"Ekonomi", "50000", "2", "Tidak Ada", "Tidak
Ada"},
{"Bisnis", "100000", "5", "Ada", "Tidak Ada"},
{"Eksekutif", "200000", "7", "Ada", "Tidak Ada"},
{"Pariwisata", "300000", "10", "Ada", "Ada"}};
9 for (; menu < 5;) {
10 System.out.println("1. Melihat Daftar Kereta Api");
11 System.out.println("2. Melihat Daftar Kereta Api
yang ada AC");
12 System.out.println("3. Melihat Daftar Kereta Api
yang ada Colokan");
13 System.out.println("4. Memesan Tiket Kereta Api");
14 System.out.println("5. Melihat Pesanan Tiket");
15 System.out.print("Masukkan Nilai : ");
16 menu = in.nextInt();
17 switch (menu) {
18 case 1:
19 System.out.println("\n" + "Daftar Kereta");
20 for (int j = 0; j < 4; j++) {
21 System.out.println((j + 1) + " " +
keretaapi[j][0]);
22 }
23 System.out.println();
24 break;
25 case 2:
26 System.out.println("\n" + "Kereta Ber AC");
27 for (int j = 0; j < 4; j++) {
28 if (keretaapi[j][3] == "Ada") {
29 System.out.println(keretaapi[j][0]);
30 }}
31 System.out.println();
32 break;
33 case 3:
34 System.out.println("\n" + "Kereta yang ada
Colokan");
35 for (int j = 0; j < 4; j++) {
36 if (keretaapi[j][4] == "Ada") {
37 System.out.println(keretaapi[j][0]);
38 }}
39 System.out.println();
40 break;
41 case 4:
42 System.out.println("\n" + "Memesan Tiket
Kereta Api");
43 System.out.print("Nama : ");
44 nama = in.next();
45 System.out.print("Alamat : ");
46 alamat = in.next();
47 System.out.println("1. Ekonomi");
48 System.out.println("2. Bisnis");
49 System.out.println("3. Eksekutif");
50 System.out.println("4. Pariwisata");
51 System.out.print("No Kereta : ");
52 nokereta = in.nextInt();
53 System.out.print("Jumlah Tiket : ");
54 tiket = in.nextInt();
55 a = Integer.parseInt(keretaapi[nokereta -
1][1]);
56 b = Integer.parseInt(keretaapi[nokereta -
1][2]);
57 harga = (tiket * a) - (tiket * a) * b /
100;
58 break;
59 case 5:
60 System.out.println("Tiket Jadi");
61 System.out.println("Nama : " + nama);
62 System.out.println("Alamat : " + alamat);
63 System.out.println("Kereta " +
keretaapi[nokereta - 1][0]);
64 System.out.println("Tiket "+tiket);
65 System.out.println("Harga :
"+keretaapi[nokereta-1][1]);
66 System.out.println("Diskon :
"+keretaapi[nokereta-1][2]+"%");
67 System.out.println("Total Harga : Rp.
"+harga);
68 break;
69 default :
70 break;
71 }}}}
C. PEMBAHASAN
A. Array1
1. Jalankan kelas Array1 dan benahi jika menemukan kesalahan!
Terjadi kesalahan pada “for (i=0;i<=9;i+){“ seharusnya menjadi “for (i=0;i<=9;i++){“
2. Pada baris ketiga, hapus angka ‘10’ kemudian amati apa yang terjadi dan jelaskan!
Terjadi error, karena dimensi array-nya tidak inisialisasikan
3. Pada baris 5, kode tersebut diubah menjadi for (i=2;i<=8;i++) kemudian amati apa
yang terjadi dan jelaskan!
Yang terjadi adalah output yang dikeluarkan akan berbeda, dikarenakan perulangan yang
ada di baris 5 diganti dengan perulangan yang baru. Perulangan baru tersebut mengganti
data ke 10 dengan 0
4. Pada baris 5 – 7, jelaskan arti dari kode tersebut dan bila kode tersebut diubah menjadi
bil[i]=1+(Math.random()*100); kemudian amati apa yang terjadi dan jelaskan!
Pada baris 5 perulangan for, selama syarat di dalam for tersebut terpenuhi maka akan
berulang terus, dan jika baris 6 diubah maka akan terjadi error karena bilangan pada math
random tersebut tidak diinisialisasi
5. Pada baris 8, kode tersebut diubah menjadi for (i=0;i<=10;i++) kemudian amati apa
yang terjadi dan jelaskan!
Akan terjadi error karena melebihi batas inisialisasi indeks
B. Array2
1. Jalankan kelas Array2 dan benahi jika menemukan kesalahan!
2. Pada baris 5, syntax “int[][] coba” diganti “int coba[][]” amati yang terjadi dan
jelaskan!
Tidak ada error yang terjadi, perubahan syntax tersebut tidak mempengaruhi program
3. Pada baris 6, syntax “double[][] bank” diganti “float bank[]” dan amati apa yang
terjadi, jelaskan!
Terjadi error karena double array 2 dimensi tidak dapat dikonversikan menjadi float array
1 dimensi
4.Tambahkan variabel dengan nama nilaiRata2 yang bertipe data double dan diberi nilai
awal 0 kemudian carilah nilai rata – rata dari array coba dan dicetak di akhir program!
Outputnya akan menjadi :
5. Tambahkan variabel dengan nama nilaiMax dan nilaiMin yang bertipe data double
kemudian lakukan pencarian nilai minimal dan maksimal dari array bank lalu cetaklah di
akhir program!
Outputnya :
C. Array3
1. Jalankan kelas Array3 dan benahi jika menemukan kesalahan!
Tidak ada kesalahan yang terjadi
F. KESIMPULAN
Mengisi nilai :
Kita dapat mengisi nilai dari array dengan melakukan inisialisasi nila awal terlebih
dahulu dengan jumlah elemen tertentu seperti berikut :
Contoh :
Int [ ] nilai = { 75, 89 32, 45};
Penjelasan
nilai [ 0 ] = 75
nilai [ 2 ] = 32
Cara mengakses elemen dari variabel array sbb.:
• namaArray[indeks]
Contoh:
• Diinginkan untuk mengakses sebuah variabel array bernama a dengan indeks I,
maka dapat dituliskan:
a[i]
• Indeks i hanya dapat bernilai 0 atau positip dengan nilai maksimumnya adalah:
(jumlah_elemen - 1).