import java.io.*;
public class menu {
public static void main(String[] args) throws Exception {
DataInputStream in = new DataInputStream (System.in);
int data[] = new int[100];
boolean done = false;
int fak = 1;
int total = 0;
while (!done) {
System.out.println(" ");
System.out.println("selamat datang di dunia berhitung --> sebastian");
System.out.println("silahkan pilih menu yang tersedia");
System.out.println("");
System.out.println("\t\t+--------------+");
System.out.println("\t\t| Menu |");
System.out.println("\t\t+--------------+");
System.out.println("\t\t|1. Input |");
System.out.println("\t\t|2. Faktorial |");
System.out.println("\t\t|3. X-it |");
System.out.println("\t\t+--------------+");
System.out.print("\t\tPilih[1.3] : ");
int pil = Integer.parseInt(in.readLine());
switch(pil) {
case 1 :
System.out.println(" ");
System.out.println("+---------------------+");
System.out.println("| menu input data |");
System.out.println("+---------------------+");
System.out.println(" ");
System.out.println("Bagian Input");
System.out.println("----------------------------------");
System.out.print("masukkan jumlah data = ");
String a = in.readLine();
int n = Integer.parseInt(a);
for (int i=0;i
System.out.print("data ke - "+(i+1)+"= ");
String b = in.readLine();
data[i] = Integer.parseInt(b);
total = total + data[i];
}
System.out.println(" ");
System.out.println("Bagian cetak");
System.out.println("---------------------------------");
for (int i=0;i
System.out.println("nilai data input ke "+(i+1)+" adalah = "+data[i]);
}
System.out.println("---------------------------------");
System.out.println("total = "+total);
System.out.println("demikian hasil yang tersingkap");
break;
case 2 :
System.out.println(" ");
System.out.println("+---------------------+");
System.out.println("| menu faktorial |");
System.out.println("+---------------------+");
System.out.print("masukan angkanya = ");
String b = in.readLine();
int jml = Integer.parseInt(b);
for(int i=1;i<=jml;i++)
{
fak=fak*i;
}
System.out.println(" ");
System.out.println(+jml+"! = "+fak);
System.out.println(" ");
break;
case 3 :
done = true;
break;
default :
System.out.println(" ");
System.out.println("Tidak ada pilihannya tuh!!!");
break;
}
}
}
}
Logika Program :
Dalam logika program kali ini, saya membuat struktur menu dimana dalam menu tersebut ada program input, factorial, dan exit.
Dalam menu input, kita dapat memasukkan jumlah data yang kita inginkan untuk dijumlah nilai kesluruhan dari tiap datanya, misalnya kita memasukkan jumlah data 4, maka data pertama sampai keempat kita dapat memasukkannya dengan angka sesuai keinginan kita, dan 4 data tersebut di jumlahkan menjadi sebuah nilai total.
Sedangkan menu kedua adalah menu factorial. Sebagaimana kita tahu bahwa cara penghitungan factorial adalah pengkalian angka demi angka sampai bilangan factorial yang kita masukkan. Contohnya, kita memasukkan 2!, maka nilainya adalah 1x2 = 2. Tetapi dalam program ini jika kita ingin memasukkan 2 data atau lebih, maka jumlah atau hasil factorial pertama dikalikan dengan factorial kedua dan seterusnya. Contoh, jika kita ingin memasukkan 2 buah input data, jika kita memasukkan data pertama 2!, maka hasilnya adalah = 2, dan di data kedua kita memasukkan 3!, maka hasilnya bukan menjadi 6, melainkan 12. Logikanya adalah hasil factorial dari data pertama di simpan terlebih dahulu, kemudian hasil factorial kedua dikalikan dengan hasil data pertama.
Menu ketiga adalah exit yang berarti keluar ke folder sebelumnya. Jika kita ingin masuk ke menu lagi kita tidak perlu untuk recompile ulang, tetapi cukup ketik java menu dan kemudian akan muncul menu.
Untuk lebih jelas lagi dalam analisa programnya, mari kita lihat method dan statement dari program ini. Yang pertama adalah,
public class menu {
baris kode diatas menunjukkan class baru dengan nama kelas menu, dan nama file yang digunakan haruslah sesuai dengan nama class yang ada. Kemudian,
public static void main(String[] args) throws Exception {
dalam baris kode ini menandakan method main, yaitu method utama yang dimiliki oleh semua program java dan akan dieksekusi pertama kali pada saat program dijalankan. Selain bersifat public, method main () juga harus dideklarasikan sebagai statis.
DataInputStream in = new DataInputStream (System.in);
Baris ini adalah baris yang membuat objek baru dari tipe kelas yang telah didefinisikan. Baris ini berpengaruh terhadap semua method karena pada nantinya setiap method akan dipanggil secara langsung.
System.out.println(" ");
Method ini berfungsi untuk mencetak tetapi tidak memunculkan print apapun, hanya enter saja karena dalam tanda kutip tidak ada karakter apapun.
case;
case menandakan bahwa ada menu yang dibuat, dan case selalu diakhiri dengan break;
System.out.print("masukkan jumlah data = ");
Sedangkan method ini fungsinya sama dengan method seblumnya, hanya saja sewaktu kita menginput data, data tersebut sebaris dengan statement tersebut. Setelah itu terdapat method sebagai berikut.
break;
break disini adalah kembali ke menu awal. Setelah kita mendapat hasil output dari input yang kita masukkan, maka secara otomatis kita akan kembali lagi ke menu awal.
OUTPUT PROGRAM
Inilah output program tersebut, menu faktorial (kiri) dan menu input (kanan).
|
Add caption |
|
Add caption |