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 program dengan pilihan menu yang terus berulang, dan menu
akan berhenti jika user akan 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 : 
1. Melihat Daftar Kereta Api 
2. Melihat Daftar Kereta Api yang ada AC 
3. Melihat Daftar Kereta Api yang ada Colokan 
4. Memesan Tiket Kereta Api 
5. Melihat Pesanan Tiket 
Masukkan nilai :
B.  SOURCE CODE
| 
   | 
  
   
Tugas Praktikum 4.1 
 | 
 
| 
   
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
42 
43 
44 
45 
46 
47 
48 
49 
50 
51 
52 
53 
54 
55 
56 
57 
58 
59 
60 
61 
62 
63 
64 
65 
66 
67 
68 
69 
70 
71 
72 
73 
74 
75 
76 
77 
78 
79 
80 
81 
82 
83 
84 
85 
86 
87 
88 
89 
90 
91 
92 
 | 
  
   
package Praktikum4; 
import java.util.Scanner; 
public class Tugas1 { 
    public static void main(String[] args) { 
        int data[] = new int[0]; 
        int pilihan; 
        do { 
            System.out.println("\nMENU
  "); 
            System.out.println("1. Input
  Data"); 
            System.out.println("2. Lihat
  Data"); 
            System.out.println("3.
  Average"); 
            System.out.println("4.
  Sum"); 
            System.out.println("5.
  Max"); 
            System.out.println("6.
  Min"); 
            System.out.println("7.
  Keluar"); 
            System.out.print("Masukkan
  pilihan : "); 
            Scanner in = new
  Scanner(System.in); 
            pilihan = in.nextInt(); 
            switch (pilihan) { 
                case 1: 
                   
  System.out.print("Banyaknya Data : "); 
                    int n = in.nextInt(); 
                    data = new int[n]; 
                    for (int i = 0; i < n;
  i++) { 
                       
  System.out.print("Data ke-" + (i + 1) + " : "); 
                        data[i] =
  in.nextInt(); 
                    } 
  
                   break; 
                case 2: 
                    LihatData(data); 
                    break; 
                case 3: 
                   
  System.out.println(Average(data)); 
                    break; 
                case 4: 
                    System.out.println(Sum(data)); 
                    break; 
                case 5: 
                   
  System.out.println(Max(data)); 
                    break; 
                case 6: 
                   
  System.out.println(Min(data)); 
                    break; 
                case 7: 
                   
  System.out.println("Terima Kasih..."); 
                    break; 
                default: 
                   
  System.out.println("Inputan Anda tidak sesuai..."); 
                    break; 
            } 
        } while (pilihan != 7 &&
  pilihan <=7 && pilihan>0); 
    } 
    public static void LihatData(int data[])
  { 
        for (int i = 0; i < data.length;
  i++) { 
            System.out.print(data[i] + "
  "); 
        } 
        System.out.println(""); 
    } 
    public static double Average(int data[])
  { 
        int sum = 0; 
        for (int i = 0; i < data.length;
  i++) { 
            sum += data[i]; 
        } 
        double average = (double) sum /
  data.length; 
        return average; 
    } 
    public static int Sum(int data[]) { 
        int sum = 0; 
        for (int i = 0; i < data.length;
  i++) { 
            sum += data[i]; 
        } 
        return sum; 
    } 
    public static int Max(int data[]) { 
        int max = data[0]; 
        for (int i = 0; i < data.length;
  i++) { 
            if (data[i] > max) { 
                max = data[i]; 
            } 
        } 
        return max; 
    } 
    public static int Min(int data[]) { 
        int min = data[0]; 
        for (int i = 0; i < data.length;
  i++) { 
            if (data[i] < min) { 
                min = data[i]; 
            } 
        } 
        return min; 
    } 
} 
 | 
 
| 
   | 
  
   
Tugas Praktikum 4.2 
 | 
 
| 
   
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
42 
43 
44 
45 
46 
47 
48 
49 
50 
51 
52 
53 
54 
55 
56 
57 
58 
59 
60 
61 
62 
63 
64 
65 
66 
67 
68 
69 
70 
71 
72 
73 
74 
75 
76 
77 
78 
79 
80 
81 
82 
83 
84 
85 
86 
87 
88 
89 
90 
91 
92 
93 
94 
95 
96 
97 
98 
99 
100 
101 
102 
103 
104 
105 
106 
107 
108 
109 
110 
111 
 | 
  
   
package Praktikum4; 
import java.util.Scanner; 
public class Tugas2 { 
    public static void main(String[] args) { 
        Scanner in = new Scanner(System.in); 
        String[][] kereta = new String[][]{ 
            {"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"} 
        }; 
        int harga[] = {50000, 100000, 200000,
  300000}; 
        int diskon[] = {2, 5, 7, 10}; 
        int[] tiket = new int[10]; 
        String[] nama = new String[10]; 
        String[] no = new String[10]; 
        int counter = 0; 
        int total[] = new int[10]; 
        int sumTotal = 0; 
        for (int i = 0; i == 0;) { 
            System.out.println("1.
  Melihat Daftar Kereta Api"); 
            System.out.println("2.
  Melihat Daftar Kereta Api yang Ada AC"); 
            System.out.println("3.
  Melihat Daftar Kereta Api yang Ada Colokan"); 
            System.out.println("4.
  Memesan Tiket Kereta Api"); 
            System.out.println("5.
  Melihat Pesanan Tiket"); 
            System.out.print("Masukkan
  nilai: "); 
            int pilihan = in.nextInt(); 
            System.out.println(""); 
            switch (pilihan) { 
                case 1: 
                    DataKereta(kereta); 
                    break; 
                case 2: 
                    KeretaAC(kereta); 
                    break; 
                case 3: 
                    KeretaColokan(kereta); 
                    break; 
                case 4: 
                   
  System.out.println("Daftar Kereta :"); 
                   
  System.out.println("1. Ekonomi"); 
                    System.out.println("2.
  Bisnis"); 
                   
  System.out.println("3. Eksekutif"); 
                   
  System.out.println("4. Pariwisata"); 
                    System.out.print("Masukkan
  pilihan tiket: "); 
                    tiket[counter] =
  in.nextInt(); 
                    in.nextLine(); 
                   
  System.out.print("Masukkan nama: "); 
                    nama[counter] =
  in.nextLine(); 
                   
  System.out.print("Masukkan nomer identitas: "); 
                    no[counter] = in.nextLine(); 
                    int j = tiket[counter] -
  1; 
                    total[counter] = harga[j]
  - ((harga[j] * diskon[j]) / 100); 
                    sumTotal +=
  total[counter]; 
                    counter++; 
                   
  System.out.println(""); 
                    break; 
                case 5: 
                   
  System.out.println("Tiket yang Anda Pesan : "); 
                    for (int k = 0; k <
  counter; k++) { 
                       
  System.out.println("Tiket ke-" + (k + 1)); 
                       
  System.out.print(kereta[tiket[k]][0] + " atas nama (" +
  nama[k] + ") dengan No. identitas (" + no[k] + "), \n"); 
                       
  System.out.println("Harga : Rp." + harga[tiket[k] - 1]); 
                        System.out.println("Diskon
  : " + diskon[tiket[k] - 1] + " %"); 
                       
  System.out.println("Harga setelah diskon : Rp." + total[k]); 
                    } 
                   
  System.out.println("\nTotal Bayar : Rp." + sumTotal); 
                    System.out.println("\n"); 
                    break; 
                default: 
                    System.exit(0); 
            } 
        } 
    } 
    public static void DataKereta(String
  kereta[][]) { 
        for (int j = 0; j < 5; j++) { 
            for (int k = 0; k < 5; k++) { 
               
  System.out.printf("%-11s", kereta[j][k]); 
            } 
            System.out.println(""); 
        } 
        System.out.println(""); 
    } 
    public static void KeretaAC(String
  kereta[][]) { 
        for (int j = 0; j < kereta.length;
  j++) { 
            for (int k = 0; k <
  kereta.length; k++) { 
                if (j != 1) { 
                   
  System.out.printf("%-11s", kereta[j][k]); 
                } 
            } 
            if (j != 1) { 
               
  System.out.println(""); 
            } 
        } 
        System.out.println(""); 
    } 
    public static void KeretaColokan(String
  kereta[][]) { 
        for (int j = 0; j < kereta.length;
  j++) { 
            for (int k = 0; k <
  kereta.length; k++) { 
                if (j == 0 || j == 4) { 
                   
  System.out.printf("%-11s", kereta[j][k]); 
                } 
            } 
            if (j == 0 || j == 4) { 
               
  System.out.println(""); 
            } 
        } 
        System.out.println(""); 
    } 
} 
 | 
 
C.  PEMBAHASAN
| 
   | 
  
   
Tugas Praktikum 4.1 
 | 
 
| 
   
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
42 
43 
44 
45 
46 
47 
48 
49 
50 
51 
52 
53 
54 
55 
56 
57 
58 
59 
60 
61 
62 
63 
64 
65 
66 
67 
68 
69 
70 
71 
72 
73 
74 
75 
76 
77 
78 
79 
80 
81 
82 
83 
84 
85 
86 
87 
88 
89 
90 
91 
92 
 | 
  
   
Deklarasi
  dari package yang bernama Praktikum4. 
Melakukan
  import dari package Scanner, untuk menggunakan fungsi scanner pada program. 
Deklarasi
  dari class yang bernama Tugas1. 
Deklarasi
  dari method/fungsi main, untuk menjalankan program. 
Deklarasi
  dari variabel array yang bernama data yang diinisialisai dengan nilai awal
  pendeklarasian  0. 
Deklarasi
  dari variabel yang bernama pilihan dengan tipe data integer untuk menjalankan
  proses iterasi do-while pada program. 
Proses
  perulangan dengan menggunakan fungsi do-while. 
Menampilkan
  “MENU ” 
Menampilkan
  “1. Input Data” 
Menampilkan
  “2. Lihat Data” 
Menampilkan
  “3. Average” 
Menampilkan
  “4. Sum” 
Menampilkan
  “5. Max” 
Menampilkan
  “6. Min” 
Menampilkan
  “7.  Keluar” 
Deklarasi variabel Scanner dengan
  nama variabel in. 
Menampilkan
  perintah untuk memasukan nilai ke variabel pilihan berdasarkan opsi yang
  telah di berikan di atas. 
Melakukan
  proses penyimpanan nilai yang telah di masukkan ke variabel pilihan. 
Memilih
  tindakan yang akan dijalankan sesuai dengan input yang dimasukkan pada
  variabel pilihan. 
Menjalankan
  perintah yang ada pada kondisi 1 apabila nilai dari variabel pilihan sama
  dengan 1. 
Menampilkan
  perintah untuk memasukkan nilai banyak data  yang disimpan ke variabel n. 
Melakukan
  proses penyimpanan nilai yang telah di masukkan ke variabel n. 
Pembaruan
  pendeklarasian variabel array data dengan panjang element sesuai dengan nilai
  variabel n. 
Melakukan
  peroses perulangan untuk mengisikan nilai-nilai kedalam indeks elemen array,
  dimana variabel (i) diincremen dan proses akan berhenti jika variabel
  pengubah (i) yang diinisialisakan dengan nilai 0 mencapai kondisi nilai n-1. 
Menampilkan
  perintah untuk memasukan nilai ke indeks array data. 
Melakukan
  proses penyimpanan nilai ke dalam indeks array data sesuai dengan nomor
  indeks yag didapat dari proses perulangan. 
Akhir
  dari statement for untuk mengisikan data ke indeks array data. 
Menghentikan
  proses yang terjadi apabila perintah untuk eksekusi telah dilaksanakan atau
  batasan dari kondisi pilihan sama dengan 1. 
Menjalankan
  perintah yang ada pada kondisi 2 apabila nilai dari variabel pilihan sama
  dengan 2. 
Melakukan
  pemanggilan method LihatData dengan memberikan parameter variabel data yang
  di butuhkan oleh method tersebut untuk menampilka proses/informasi yang ada
  pada method LihatData. Informasi data pada masing-masing indeks array data. 
Menghentikan
  proses yang terjadi apabila perintah untuk eksekusi telah dilaksanakan atau
  batasan dari kondisi pilihan sama dengan 2. 
Menjalankan
  perintah yang ada pada kondisi 3 apabila nilai dari variabel pilihan sama
  dengan 3. 
Melakukan
  pemanggilan method Average dengan memberikan parameter variabel data yang di
  butuhkan oleh method tersebut untuk menampilkan nilai yang dihasilkan pada
  proses method Average. Yaitu rata-rata dari penghitungan nilai indeks element
  array data. 
Menghentikan
  proses yang terjadi apabila perintah untuk eksekusi telah dilaksanakan atau
  batasan dari kondisi pilihan sama dengan 3. 
Menjalankan
  perintah yang ada pada kondisi 4 apabila nilai dari variabel pilihan sama
  dengan 4. 
Melakukan
  pemanggilan method Sum dengan memberikan parameter variabel data yang di
  butuhkan oleh method tersebut untuk menampilkan nilai yang dihasilkan pada
  proses method Sum. Yaitu hasil penjumlahan dari penghitungan nilai indeks
  element array data. 
Menghentikan
  proses yang terjadi apabila perintah untuk eksekusi telah dilaksanakan atau
  batasan dari kondisi pilihan sama dengan 4. 
Menjalankan
  perintah yang ada pada kondisi 5 apabila nilai dari variabel pilihan sama
  dengan 5. 
Melakukan
  pemanggilan method Max dengan memberikan parameter variabel data yang di
  butuhkan oleh method tersebut untuk menampilkan nilai yang dihasilkan pada
  proses method Max. Yaitu nilai terbesar dari semua indeks element array data. 
Menghentikan
  proses yang terjadi apabila perintah untuk eksekusi telah dilaksanakan atau
  batasan dari kondisi pilihan sama dengan 5. 
Menjalankan
  perintah yang ada pada kondisi 6 apabila nilai dari variabel pilihan sama
  dengan 6. 
Melakukan
  pemanggilan method Min dengan memberikan parameter variabel data yang di
  butuhkan oleh method tersebut untuk menampilkan nilai yang dihasilkan pada proses
  method Min. Yaitu nilai terkecil dari semua indeks element array data. 
Menghentikan
  proses yang terjadi apabila perintah untuk eksekusi telah dilaksanakan atau
  batasan dari kondisi pilihan sama dengan 6. 
Menjalankan
  perintah yang ada pada kondisi 7 apabila nilai dari variabel pilihan sama
  dengan 7. 
Menampilkan
  “ Terima Kasih...”, artinya jika user memilih kondisi ini maka program akan
  dihentikan. 
Menghentikan
  proses yang terjadi apabila perintah untuk eksekusi telah dilaksanakan atau
  batasan dari kondisi pilihan sama dengan 7. 
Jika pilihan yang dimasukkan tidak ada yang memenuhi
  kriteria dari masing-masing kondisi maka statement yang berada pada default akan
  diproses. 
Menampilkan “Inputan anda tidak sesuai...”. 
Menghentikan proses yang terjadi apabila perintah untuk
  eksekusi telah dilaksanakan atau batasan dari kondisi pilihan yang  ada tidak memenuhi masing-masing kondisi. 
Akhir dari statement fungsi switch-case. 
Perulangan
  akan tetap berjalan kondisi pilihan tidak sama dengan 7 dan pilihan kurang
  dari sama dengan 7 serta jika pilihan lebih besar dari 0.  
Menutup
  deklarasi methode main. 
Deklarasi dari
  method/fungsi LihatData, untuk mengetahui masing-masing data yang telah di
  masukkan pada array. 
Melakukan
  peroses perulangan untuk menampilkan nilai-nilai dalam indeks elemen array,
  dimana variabel (i) diincremen dan proses akan berhenti jika variabel
  pengubah (i) yang diinisialisakan dengan nilai 0 mencapai kondisi sesuai
  banyaknya data array. 
Menampilkan
  nilai yang ada pada indeks array. 
Akhir
  dari statement perulangan. 
Menampilkan
  perintah ganti baris setelah proses looping selesai. 
Akhir
  dari deklarasi method LihatData. 
Deklarasi
  dari method/fungsi Average, untuk mengetahui rata-rata dari data yang telah
  di masukkan pada array. 
Deklarasi
  dari variabel sum yang bertipe data integer yang di inisialisasi dengan nilai
  awal 0. 
Melakukan
  peroses perulangan untuk menjumlahkan nilai-nilai dalam indeks elemen array,
  dimana variabel (i) diincremen dan proses akan berhenti jika variabel
  pengubah (i) yang diinisialisakan dengan nilai 0 mencapai kondisi sesuai
  banyaknya data array. 
Melakukan
  perhitungan dimana nilai dari variabel sum akan terus diperbarui dan
  ditambahkan semua nilai yang ada pada indeks array sampai proses looping
  mencapai statement kondisi berhenti. 
Akhir
  dari statement perulangan. 
Deklarasi
  dari variabel average yang nilai inisialisasinya adalah hasil dari
  perhitungan variabel sum dibagi jumlah data pada array. Sebelum dihitung
  variabel sum dilakukan pengcastingan ke tipe data yang sesuai.  
Mengembalikan
  nilai dari variabel average, dimana nilai ini adalah nilai yang akan di
  panggil pada method yang ada pada case ke-3. 
Akhir
  dari pendeklarasian method Average. 
Deklarasi
  dari method/fungsi Sum, untuk mengetahui total penjumlahan  dari semua data yang telah di masukkan pada
  array. 
Deklarasi
  dari variabel sum yang bertipe data integer yang di inisialisasi dengan nilai
  awal 0. 
Melakukan
  peroses perulangan untuk menjumlahkan nilai-nilai dalam indeks elemen array,
  dimana variabel (i) diincremen dan proses akan berhenti jika variabel
  pengubah (i) yang diinisialisakan dengan nilai 0 mencapai kondisi sesuai
  banyaknya data array. 
Melakukan
  perhitungan dimana nilai dari variabel sum akan terus diperbarui dan
  ditambahkan semua nilai yang ada pada indeks array sampai proses looping
  mencapai statement kondisi berhenti. 
Akhir
  dari statement perulangan. 
Mengembalikan
  nilai dari variabel sum, dimana nilai ini adalah nilai yang akan di panggil
  pada method yang ada pada case ke-4. 
Akhir
  dari pendeklarasian method Sum. 
Deklarasi
  dari method/fungsi Max, untuk mengetahui nilai terbesar dari semua data yang
  telah di masukkan pada array. 
Deklarasi
  dari variabel max yang bertipe data integer yang di inisialisasi dengan nilai
  awal dari indeks ke-0 array. 
Melakukan
  peroses perulangan untuk menjumlahkan nilai-nilai dalam indeks elemen array,
  dimana variabel (i) diincremen dan proses akan berhenti jika variabel
  pengubah (i) yang diinisialisakan dengan nilai 0 mencapai kondisi sesuai
  banyaknya data array. 
Melakukan
  proses pengecekan statemen kondisi jika data pada indeks array lebih besar
  dari nilai variabel max,  
Maka
  nilai dari variabel max sama dengan data array pada indeks tersebut. 
Akhir
  dari statement kondisi 
Akhir
  dari statement perulangan. 
Mengembalikan
  nilai dari variabel max, dimana nilai ini adalah nilai yang akan di panggil
  pada method yang ada pada case ke-5. 
Akhir
  dari pendeklarasian method Max. 
Deklarasi
  dari method/fungsi Min, untuk mengetahui nilai terkecil dari semua data yang
  telah di masukkan pada array. 
Deklarasi
  dari variabel min yang bertipe data integer yang di inisialisasi dengan nilai
  awal dari indeks ke-0 array. 
Melakukan
  peroses perulangan untuk menjumlahkan nilai-nilai dalam indeks elemen array,
  dimana variabel (i) diincremen dan proses akan berhenti jika variabel
  pengubah (i) yang diinisialisakan dengan nilai 0 mencapai kondisi sesuai
  banyaknya data array. 
Melakukan
  proses pengecekan statemen kondisi jika data pada indeks array lebih kecil
  dari nilai variabel min,  
Maka
  nilai dari variabel min sama dengan data array pada indeks tersebut. 
Akhir
  dari statement kondisi 
Akhir
  dari statement perulangan. 
Mengembalikan
  nilai dari variabel min, dimana nilai ini adalah nilai yang akan di panggil
  pada method yang ada pada case ke-6. 
Akhir
  dari pendeklarasian method Min. 
Akhir deklarasi class Tugas1. 
 | 
 
| 
   | 
  
   
Tugas Praktikum 4.2 
 | 
 
| 
   
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
42 
43 
44 
45 
46 
47 
48 
49 
50 
51 
52 
53 
54 
55 
56 
57 
58 
59 
60 
61 
62 
63 
64 
65 
66 
67 
68 
69 
70 
71 
72 
73 
74 
75 
76 
77 
78 
79 
80 
81 
82 
83 
84 
85 
86 
87 
88 
89 
90 
91 
92 
93 
94 
95 
96 
97 
98 
99 
100 
101 
102 
103 
104 
105 
106 
107 
108 
109 
110 
111 
 | 
  
   
Deklarasi
  dari package yang bernama Praktikum4. 
Melakukan
  import dari package Scanner, untuk menggunakan fungsi scanner pada program. 
Deklarasi
  dari class yang bernama Tugas2. 
Deklarasi
  dari method/fungsi main, untuk menjalankan program. 
Deklarasi variabel Scanner dengan
  nama variabel in. 
Deklarasi
  dari variabel array yang bernama kereta bertipe data String.  
Inisalisasi
  dari variabel array kereta yang diisikan secara langsung pada saat
  pendeklarasian variabel. Yang berisikan data kereta yaitu : jenis, harga,
  diskon, AC dan colokan. 
Pengisian
  data pada array kereta. 
Pengisian
  data pada array kereta. 
Pengisian
  data pada array kereta. 
Pengisian
  data pada array kereta. 
Akhir
  dari inisialisasi data pada array kereta. 
Deklarasi
  dari variabel array yang bertipe integer yang bernama harga yang di
  inisialisasi langsung dengan beberapa nilai yang disimpan pada masing-masing
  indeks array. 
Deklarasi
  dari variabel array yang bertipe integer yang bernama diskon yang di
  inisialisasi langsung dengan beberapa nilai yang disimpan pada masing-masing
  indeks array. 
Deklarasi
  dari variabel array yang bertipe integer yang bernama tiket yang
  didefinisikan panjangnya sama dengan 10. 
Deklarasi
  dari variabel array yang bertipe String yang bernama nama yang didefinisikan
  panjangnya sama dengan 10. 
Deklarasi
  dari variabel array yang bertipe String yang bernama no yang didefinisikan
  panjangnya sama dengan 10. 
Deklarasi
  variabel dengan nama counter yang diinisilisasi dengan nilai awal 0. 
Deklarasi
  dari variabel array yang bertipe integer yang bernama total yang
  didefinisikan panjangnya sama dengan 10. 
Deklarasi
  variabel dengan nama sumTotal yang diinisilisasi dengan nilai awal 0. 
Melakukan
  peroses perulangan agar program tetap terus berjalan. Dimana nilai dari
  variabel i di biarkan tetap. 
Menampilkan
  “1. Melihat Daftar Kereta Api” 
Menampilkan
  “2. Melihat Daftar Kereta Api yang ada AC” 
Menampilkan
  “3. Melihat Daftar Kereta Api yang ada Colikan” 
Menampilkan
  “4. Memesan Tiket Kereta Api” 
Menampilkan
  “5. Melihat Pesanan Tiket” 
Menampilkan
  perintah untuk memasukan nilai ke variabel pilihan berdasarkan opsi yang
  telah di berikan di atas. 
Melakukan
  proses penyimpanan nilai yang telah di masukkan ke variabel pilihan. 
Melakukan
  perintah ganti baris. 
Memilih
  tindakan yang akan dijalankan sesuai dengan input yang dimasukkan pada
  variabel pilihan. 
Menjalankan
  perintah yang ada pada kondisi 1 apabila nilai dari variabel pilihan sama
  dengan 1. 
Melakukan
  pemanggilan method DataKereta dengan memberikan parameter variabel kereta
  yang dibutuhkan oleh method tersebut untuk menampilka proses/informasi yang
  ada pada method DataKereta. Informasi yang di tampilkan adalah list dari data
  kereta yang telah dimasukkan pada variabel array kereta. 
Menghentikan
  proses yang terjadi apabila perintah untuk eksekusi telah dilaksanakan atau
  batasan dari kondisi pilihan sama dengan 1. 
Menjalankan
  perintah yang ada pada kondisi 2 apabila nilai dari variabel pilihan sama
  dengan 2. 
Melakukan
  pemanggilan method KeretaAC dengan memberikan parameter variabel kereta yang
  dibutuhkan oleh method tersebut untuk menampilka proses/informasi yang ada
  pada method KeretaAC. Informasi yang di tampilkan adalah list dari data
  kereta yang ACnya. 
Menghentikan
  proses yang terjadi apabila perintah untuk eksekusi telah dilaksanakan atau
  batasan dari kondisi pilihan sama dengan 2. 
Menjalankan
  perintah yang ada pada kondisi 3 apabila nilai dari variabel pilihan sama
  dengan 3. 
Melakukan
  pemanggilan method KeretaAC dengan memberikan parameter variabel kereta yang dibutuhkan
  oleh method tersebut untuk menampilka proses/informasi yang ada pada method
  KeretaAC. Informasi yang di tampilkan adalah list dari data kereta yang
  Colokannya. 
Menghentikan
  proses yang terjadi apabila perintah untuk eksekusi telah dilaksanakan atau
  batasan dari kondisi pilihan sama dengan 3. 
Menjalankan
  perintah yang ada pada kondisi 4 apabila nilai dari variabel pilihan sama
  dengan 4. 
Menampilkan
  “Daftar Tiket :” 
Menampilkan
  “1. Ekonomi” 
Menampilkan
  “2. Bisnis” 
Menampilkan
  “3. Eksekutif” 
Menampilkan
  “4. Pariwisata” 
Menampilkan
  perintah untuk memasukan nilai ke variabel array tiket berdasarkan opsi yang
  telah di berikan di atas. 
Melakukan
  proses penyimpanan nilai yang telah di masukkan ke variabel array tiket
  sesuai indeks yang mengikuti variabel pengubah counter. 
Memisah
  setiap setelah pengisian nilai pada dat array/ 
Menampilkan
  perintah untuk memasukan nilai ke variabel array nama. 
Melakukan
  proses penyimpanan nilai yang telah di masukkan ke variabel array nama sesuai
  indeks yang mengikuti variabel pengubah counter. 
Menampilkan
  perintah untuk memasukan nilai ke variabel array no. 
Melakukan
  proses penyimpanan nilai yang telah di masukkan ke variabel array no sesuai
  indeks yang mengikuti variabel pengubah counter. 
Deklarasi
  variabel j bertipe integer yang inisialisasinya adalah data pada array tiket
  dikurangi satu. 
Inisialisasi
  dari variabel array total(per kereta) dimana harga awal tiket dikurangi
  diskon sesuai dengan daftar dari masing-masing kereta. 
Inisialisasi
  dari variabel sumTotal dimana nilainya adalah total dari pembelian tiket. 
Melakukan
  incremet pada variabel counnter. 
Menampilkan
  perintah ganti baris. 
Menghentikan
  proses yang terjadi apabila perintah untuk eksekusi telah dilaksanakan atau
  batasan dari kondisi pilihan sama dengan 4. 
Menjalankan
  perintah yang ada pada kondisi 5 apabila nilai dari variabel pilihan sama
  dengan 5. 
Menampilkan
  “Tiket yang Anda Pesan : “ 
Melakukan
  peroses perulangan untuk menampilkan data-data yang ada dalam indeks elemen
  array, dimana variabel (k) diincremen dan proses akan berhenti jika variabel
  pengubah (k) yang diinisialisakan dengan nilai 0 akan berhenti jika mencapai
  kondisi melebihi nilai variabel counter. 
Menampilkan
  tiket pesanan ke-1 dst. 
Menampilkan
  keterangan tiket yang dipesan dengan atas nama dan nomor identitas sesuai
  data yang telah dimasukkan. 
Menampilkan
  harga dari tiket kerata api yang telah di pesan. 
Menampilkan
  jumlah diskon dari tiket yang di pesan. 
Menampilkan
  harga setelah didiskon tiket kereta. 
Akhir
  dari statement perulangan. 
Menampilkan
  total yang harus dibayar dari keseluruan pembelian tiket. 
Menampilkan
  perintah ganti baris. 
Menghentikan
  proses yang terjadi apabila perintah untuk eksekusi telah dilaksanakan atau
  batasan dari kondisi pilihan sama dengan 5. 
Jika pilihan yang dimasukkan tidak ada yang memenuhi
  kriteria dari masing-masing kondisi maka statement yang berada pada default akan
  diproses. 
Fungsi
  untuk menghentikan atau keluar dari program. 
Akhir dari statement fungsi switch-case. 
Akhir
  dari statement perulangan. 
Akhir
  dari deklarasi method main. 
Deklarasi
  dari method/fungsi DataKereta, untuk mengetahui daftrar masing-masing kereta
  dari data yang telah di masukkan pada array. 
Melakukan
  peroses perulangan untuk menampilkan data-data dalam indeks elemen array,
  dimana variabel (j) diincremen dan proses akan berhenti jika variabel
  pengubah (j) yang diinisialisakan dengan nilai 0 perulangan akan berhenti
  jika (j) melebihi 5. 
Cabang
  dari perulangan pertama, Melakukan peroses perulangan untuk menampilkan
  data-data dalam indeks elemen array, dimana variabel (k) diincremen dan
  proses akan berhenti jika variabel pengubah (k) yang diinisialisakan dengan
  nilai 0 perulangan akan berhenti jika (k) melebihi 5. 
Menampilkan
  data dari element array kereta. 
Akhir
  dari perulang cabang. 
Menampilkan
  perintah ganti baris, statement perulangan (j). 
Akhir
  dari perulanhan (j). 
Menampilkan
  ganti baris. 
Akhir
  dari deklarasi method DataKereta. 
Deklarasi
  dari method/fungsi KeretaAC, untuk mengetahui daftrar masing-masing kereta
  yang ada AC dari data yang telah di masukkan pada array. 
Melakukan
  peroses perulangan untuk menampilkan data-data dalam indeks elemen array,
  dimana variabel (j) diincremen dan proses akan berhenti jika variabel
  pengubah (j) yang diinisialisakan dengan nilai 0 perulangan akan berhenti
  jika (j) melebihi banyak data pada 
  data array kereta. 
Cabang
  dari perulangan pertama, Melakukan peroses perulangan untuk menampilkan
  data-data dalam indeks elemen array, dimana variabel (k) diincremen dan
  proses akan berhenti jika variabel pengubah (k) yang diinisialisakan dengan
  nilai 0 perulangan akan berhenti jika (k) melebihi banyak data pada  data array kereta. 
Seleksi
  kondisi jika j negasi satu, 
Maka
  akan menampilkan data pada indeks array selain indeks 1. 
Akhir
  dari statement kondisi. 
Akhir
  dari looping nested(k). 
Seleksi
  kondisi jika j negasi satu, 
Maka
  menampilkan ganti baris. 
Akhir
  dari statemen kondisi. 
Akhir
  dari perulangan (j). 
Menampilkan
  ganti baris. 
Akhir
  dari deklarasi method KeretaAC. 
Deklarasi
  dari method/fungsi KeretaColokan, untuk mengetahui daftrar masing-masing
  kereta yang ada Colokan dari data yang telah di masukkan pada array. 
Melakukan
  peroses perulangan untuk menampilkan data-data dalam indeks elemen array,
  dimana variabel (j) diincremen dan proses akan berhenti jika variabel
  pengubah (j) yang diinisialisakan dengan nilai 0 perulangan akan berhenti
  jika (j) melebihi banyak data pada 
  data array kereta. 
Cabang
  dari perulangan pertama, Melakukan peroses perulangan untuk menampilkan
  data-data dalam indeks elemen array, dimana variabel (k) diincremen dan
  proses akan berhenti jika variabel pengubah (k) yang diinisialisakan dengan
  nilai 0 perulangan akan berhenti jika (k) melebihi banyak data pada  data array kereta. 
Statemen
  Seleksi kondisi jika j = 0 atau 4, 
Maka
  menampilkan akan menampilkan data dari indeks array selain 1 dan 4. 
Akhir
  dari statement kondisi. 
Akhir
  dari perulangan (k). 
Statemen
  Seleksi kondisi jika j = 0 atau 4, 
Maka
  menampilkan ganti baris. 
Akhir
  dari statement kondisi. 
Akhir
  dari perulangan (j). 
Menampilkan
  ganti baris. 
Akhir
  dari deklarasi method KeretaColokan. 
Akhir deklarasi class Tugas2. 
 | 
 
D.      SCREENSHOT
 PROGRAM
Tugas
Praktikum 4.1
Tugas
Praktikum 4.2
E.  PRAKTIKUM
Data dan Analisis hasil percobaan :
A.    
Array1
1.      
Jalankan kelas Array1 dan benahi jika menemukan
kesalahan!
Jawaban :
Ada kesalahan pada deklarasi class (Array 1) dimana
penamaan kelas seharusnya tidak boleh menggunakan spasi (Array1). Dan juga ada
kesalahan saat pendeklarasian interasi untuk fungsi incremen seharusnya
menggunakan tanda plus ganda(i++).
2.      
Pada baris ketiga, hapus angka ‘10’ kemudian amati apa
yang terjadi dan jelaskan!
Jawaban :
Maka program akan error karna pada dasarnya Array dalam
pendeklarasianya harus ada inisialisasi jumlah elementnya.
Sintaks pendeklarasian Array :
Tipe_Data[] Nama_Array=new Tipe_Data[Jumlah_Elemen];
3.      
Pada baris 5, kode tersebut diubah menjadi for(i=2;i<=8;i++) kemudian
amati apa yang terjadi dan jelaskan!
Jawaban :
Maka pada index element ke-0,ke-1 dan ke-9 akan bernilai
0 karna tidak masuk statement pada proses iterasi(looping) program yang gunanya
untuk menginisialisasi value dari index array.
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!
Jawaban :
Maka pada saat program dijalakan akan menampilkan error “incompatible types:
possible lossy conversion from double to int”.  Karena Math.random adalah bertipe data double
untuk menjumlahkanya haruslah dilakukan pengcastingan variabel. Dengan
menambahkan (int) pada baris program.
5.      
Pada baris 8, kode tersebut diubah menjadi for(i=0;i<=10;i++) kemudian
amati apa yang terjadi dan jelaskan!
Jawaban :
Maka akan terdapat pemberitahuan error pada saat program
dijalankan “ArrayIndexOutOfBoundsException”
ini artinya index pada array melebihi dari batas dari awal pendeklarasian.
B.     
Array2
1.      
Jalankan kelas Array2 dan benahi jika menemukan kesalahan!
Jawaban :
Ada kesalahan pendeklarasian variabel i dan j tidak ada
dan seharusnya tidak usah melakukan instansiasi fungsi Scanner karna pada
progam tidak ditunjukan adanya permintaan program meminta inputan dari user.
2.      
Pada baris 5, syntax “int[][] coba” diganti “int coba[][]” amati yang
terjadi dan jelaskan!
Jawaban :
Maka tidak akan terjadi apa-apa ataupun pesan error dari
program, karna pada dasarnya pendeklarasian array dapat dilekukan dengan banyak
cara salah satunya adalah yang dicontohkan pada soal.
3.      
Pada baris 6, syntax “double[][] bank” diganti “float bank[]” dan amati apa
yang terjadi, jelaskan!
Jawaban :
Maka program akan error karna pendeklarasian array tidak
kompatibel dengan inisialisasi array, pada pendeklarasian terlihat adalh array
1D sedangkan pada inisialisasinya di isi dengan array 2D.
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!
Jawaban :
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!
Jawaban :
C.     
Array3
1.      
Jalankan kelas Array3 dan benahi jika menemukan kesalahan!
Jawaban :
Tidak ada kesalahan.
2.      
Jelaskan maksud dari statement baris ke-7!
Jawaban :
int c[] = new int[pjg];
maksud dari statemen berikut adalah pendeklarasian array
1D dengan inisialisasi panjang index sesuai dengan value dari variabel pjg.
3.      
Jelaskan perbedaan indeks array dan panjang array!
Berikan contoh di kelas Array3.
Jawaban :
Indeks array adalah sama halnya dengan variabel untuk
menyimpan nilai yang diidentitaskan dengan angka yang dimulai dari 0. 
Contoh : 
0, 1, dan 2 adalah indeks array.
Sedangkan panjang array adalah definisi banyak indeks
yang dapat di muat dalam array tersebut.
Contoh :
5 adalah panjang array.
4.      
Tambahkan variabel dengan nama jumlahGenap dan
jumlahGanjil yang bertipe data integer kemudian lakukan penambahan untuk
bilangan genap dan ganjil!
Jawaban :
F.   KESIMPULAN
Array adalah suatu variabel yang
terdiri dari sekumpulan data dimana data-data tersebut mempunyai tipe data yang
sama. Setiap data disimpan dalam alamat memori yang berbeda-beda dan disebut
dengan elemen array. Setiap elemen mempunyai nilai indek sesuai dengan
urutannya. Melalui indek inilah kita dapat mengakses data-data tersebut. Indek
dari elemen array ini, dimulai dari 0 bukan 1.
Tipe_Data[] Nama_Array =
new Tipe_Data [Jumlah_Elemen];
Dalam bahasa Java pendeklarasian
array lebih variarif. Selain dengan kode seperti di atas, Java juga dapat
mendeklarasikan array dalam bentuk : 
int[ ] a;
Kemudian setelah mendeklarasikan array, baik dengan kode
yang pertama maupun yang kedua, Java harus menciptakan (membuat) objek terlebih
dahulu sebelum array dapat digunakan karena dalam Java array merupakan sebuah
Class. Cara menciptakan objek array dalam Java adalah : 
a = new int[10];
Dalam Java pendeklarasian array dan pembuatan objek array
dapat dilakukan dalam satu sintak, yaitu : 
int[ ] a = new int[10];  atau        
int a[ ] =
new int[10];
Inisialisasi array adalah pemberian nilai default pada
array. Pemberian nilai default ini dilakukan pada saat array dideklarasikan.
Bentuk umum dari inisialisasi array ini adalah sebagai berikut : 
tipe_data nama_array[jumlah_elemen] =
{nilai1,nilai2,…,nilaiN};
Nilai didalam kurung kurawal disebut dengan
Initialization List.
Contoh : 
int a[10] = { 0, 3, 6, 9, 12, 15, 18, 21,
24, 27 };
Untuk mengakses elemen array, misalnya elemen ke-10 dari
array dan kemudian menampung nilainya dalam sebuah variabel x, maka sintaknya
adalah : 
x = a[9];
Untuk memasukkan data ke dalam array, sintak yang
digunakan adalah : 
a[nomor_elemen] = data;
a[0] = 5;
a[1] = 6;
a[2] = 7;
dan seterusnya.
Agar lebih efisien dan efektif, maka pemasukan data dalam
array dapat menggunakan perulangan seperti berikut ini :
for (i=0; i<jumlah_data; i++) { 
System.out.print(“a[“ + i + “] = “); 
int
data=input.nextInt(); 
a[i] = data; 
}
Kegunaan array 1 dimensi adalah
sebuah variabel yang menyimpan sekumpulan data yang memiliki tipe sama dan
elemen yang diakses hanya melalui 1 indeks atau subskrip. Sedangkan keguanaan
Array 2 dimensi adalah suatu array yang mempunyai lebih dari satu subskrip.
Array 2 dimensi ini aplikasinya antara lain untuk matrik.
Bentuk umum array 1 dimensi :                     
tipe_data nama_var[jml_elemen];     
Bentuk umum array 2 dimensi :
tipe_data nama_var[baris][kolom];
Lihat Selengkapnya
Semoga Bermanfaat salam : Arif Andrian
No comments