Ads

Sabtu, 02 April 2011

Java Sangat Basic 6 : Number & Types Bag 1

Sebelum membaca materi ini, ada baiknya Anda membaca materi-materi sebelum materi ini yaitu:




  1. key word dan identifier

  2. memahami method

  3. menampilkan input dari key board

  4. Mencari kesalahan sederhanam bag 1

  5. Mencari kesalahan sederhanam bag 2



Hari ini adalah hari ulang tahun Anda. Sebagai pengusaha Warteg Asoy, Anda mengundang semua rekan-rekan kerja Anda, termasuk disini mengundang anggota OPPI (Organisasi Persatuan Preman Indonesia). Seperti yang kita ketahui di artikel sebelumnya, Anda dan OPPI telah menjalin kerja sama yang saling menguntungkan Preman-preman, tapi merugikan Anda :p.


Nah dalam undangan tersebut, hadirlah 4 orang preman perwakilan dari OPPI. Karena mereka preman, maka mereka merasa memiliki hak untuk memalak semua kado-kado yang di berikan ke Anda. Saat ini Anda mengalami dilema, karena Jumlah Kado yang Anda terima berjumlah 30 buah, sementara Premannya ada empat. Jika Anda memberikan jumlah kado lebih banyak kepada satu preman, sementara yang lainnya lebih sedikit, maka ada kemungkinan Anda akan di teror oleh Preman yang dapat sedikit kadonya.


Lalu Anda berfikir, jika saya tidak bisa membagi rata semua kado tersebut, ada baiknya saya bagi saja sama rata kado tersebut, sementara sisanya saya simpan buat saya sendiri. Tetapi untuk menipu mereka agar mereka tidak tersinggung, Anda berkata bahwa banyaknya kado yang diberikan oleh mereka akan ditentukan oleh sebuah program komputer canggih dan apapun keputusan komputer itu Anda akan mengikutinya.


Karena preman tersebut selalu bolos waktu pelajaran Komputer di sekolahnya, akhirnya dia percaya saja dengan Anda. Nah sekarang tugas Anda adalah membuat sebuah program komputer dengan cepat, dimana nantinya program tersebut bisa menampilkan berapa jumlah kado yang harus dibagikan ke setiap preman.



Mari buat sama-sama programnya:



 public class kadoPreman {
public kadoPreman() {
}
public static void main(String args[])
{
int kado;
int jumlahPreman;
int jatahKadoPerPreman;

kado=30;
jumlahPreman=4;
jatahKadoPerPreman = kado / jumlahPreman;

System.out.print("Jatah kado tiap preman adalah sebanyak ");
System.out.print(jatahKadoPerPreman);
System.out.print(" Kado/Preman");
}
}

Saat dijalankan program ini akan memberikan output sebagai berikut:


run-single:


Jatah kado tiap preman adalah sebanyak 7 Kado/Preman


BUILD SUCCESSFUL (total time: 0 seconds)



Dari program di atas dapat anda lihat bahwa anda mendeklarasikan 3 variabel bertipe int, yaitu bilangan bulat (bilangan tanpa koma). Ketiga variabel tersebut dari namanya sudah dapat Anda dapat tangkap fungsinya. Nah saat menentukan jatahKadoPerPreman, Anda melakukan suatu proses pembagian, dan karena variabel pembaginya (variabel kado) bertipe int, maka hasilnyapun bertipe int dan hasil pembagiannya dibulatkan kebawah (floor).


Jika Anda ingin bilangan yang dihasilkan adalah bilangan decimal, ubah



        int kado;
int jumlahPreman;
int jatahKadoPerPreman;

Menjadi



        int kado;
double jumlahPreman;
double jatahKadoPerPreman;

Atau



        double kado;
int jumlahPreman;
double jatahKadoPerPreman;

Atau



        double kado;
double jumlahPreman;
double jatahKadoPerPreman;


Karena jika int melakukan suatu operasi matematika dengan double, maka hasilnya adalah double, sehingga bilangan yang dihasilkan adalah bilangan dengan koma.


Setelah Anda menampilkan hasil ini kepada para preman tersebut, mereka begitu terkejut dengan kecanggihan komputer milik Anda dan memutuskan untuk menerima keputusan tersebut. Tetapi belum sempat Anda bagikan kado tersebut, tiba-tiba muncul lagi beberapa tamu yang tidak Anda undang yang datang membawa kado murahan. Kemungkinan mereka datang hanya karena ingin mencoba makan gratis di pesta ultah Anda dengan hanya membayar Anda dengan kado murahan.


Tetapi karena Anda ini termasuk orang yang terhomat, maka Anda terpaksa menerima mereka dan kado mereka. Tentu saja melihat kado baru ini, para preman tersebut meminta agar perhitungan diulang. Tentu saja, Anda belajar dari kesalahan kali ini, dan mengubah koding Anda sehingga user bisa mengentry jumlah preman dan jumlah kado.


Here's the code:



import java.util.Scanner; //new
public class kadoPreman {
public kadoPreman() {
}
public static void main(String args[])
{
Scanner myScanner = new Scanner(System.in); //new
int kado;
int jumlahPreman;
int jatahKadoPerPreman;
System.out.println("Berapa Kado ?"); //new
kado = myScanner.nextInt(); //new
myScanner.nextLine(); //new
System.out.println("Berapa Preman?"); //new
jumlahPreman = myScanner.nextInt(); //new
jatahKadoPerPreman = kado /jumlahPreman ;
System.out.print("Jatah kado tiap preman adalah sebanyak ");
System.out.print(jatahKadoPerPreman);
System.out.print(" Kado/Preman");
}
}

}


}



Nah, jika sudah baca bab [LINK] INPUT pasti mengerti jadi tidak usah dijelaskan lagi.


Saat di jalankan, outputnya seperti ini


run-single:


Berapa Kado ?


31 //entry


Berapa Preman?


4 //entry


Jatah kado tiap preman adalah sebanyak 7 Kado/Preman


BUILD SUCCESSFUL (total time: 9 seconds)



Kenapa setelah next int, ada next line?



        System.out.println("Berapa Kado ?");
kado = myScanner.nextInt();
myScanner.nextLine();


Hal ini agar setelah user membaca integer yang pertama, semua line tersebut sisanya kemudian tidak dibaca. Jadi jika user entry


10 3 4 #$%%$ 09789 bla bla hua hua hus ksdklajsd ldao


Maka yang terbaca hanya 10 saja, sisanya di abaikan.


Setelah itu para preman tersebut salut dengan kecanggihan komputer Anda, dan akhirnya dengan senang hati menerima pembagian Kado tersebut.


Setelah itu Acara makan-makanpun dimulai. Tapi sayang, menu yang Anda sediakan tidak begitu mereka sukai. Mereka lalu menuntut Anda untuk menyediakan makanan kesukaan mereka. Dari 4 preman yang hadir, 3 suka makan bakso dan 1 suka makan pangsit. Para preman tersebut lalu meminta komputer Anda menentukan berapa mangkuk pesanan Bakso dan Pangsit yang harus dibuat, dan berapa uang yang harus Anda keluarkan untuk mereka jika harga Bakso / Mangkok adalah 6.000 dan harga Pangsit / Mangkok adalah 6.500.


Karena Anda sudah terlanjur bohong dengan mengatakan bahwa komputer Anda sangat pintar. Maka Anda harus dengan cepat membuat program untuk menentukan jumlah bakso dan pangsit yang harus dipesan, terlambat dan nyawa Anda bisa melayang. Mari kita buat sama-sama programnya.



import java.util.Scanner;
public class PesanBaksoPangsit {
public PesanBaksoPangsit() {
}
public static void main(String args[])
{
Scanner myScanner = new Scanner(System.in);
int jumlahBakso;
int jumlahPangsit;
int hargaBakso=6000, hargaPangsit=6500;
int biayaBakso, biayaPangsit;
int biayaTotal;
System.out.println("Berapa Bakso Yang di Pesan ?");
jumlahBakso = myScanner.nextInt();
myScanner.nextLine();
System.out.println("Berapa Pangsit yang di pesan?");
jumlahPangsit = myScanner.nextInt();
biayaBakso = jumlahBakso * hargaBakso;
biayaPangsit = jumlahPangsit * hargaPangsit;
biayaTotal = biayaBakso + biayaPangsit;
System.out.print("Jumlah Bakso yang di pesan sebanyak ");
System.out.print(jumlahBakso);
System.out.print(" mangkok dengan harga ");
System.out.println(biayaBakso);
System.out.print("Jumlah Pangsit yang di pesan sebanyak ");
System.out.print(jumlahPangsit);
System.out.print(" mangkok dengan harga ");
System.out.println(biayaPangsit);
System.out.print("Uang yang harus dikeluarkan sebesar ");
System.out.println(biayaTotal);
}
}


Saat dijalankan, outputnya akan seperti dibawah ini:


run-single:


Berapa Bakso Yang di Pesan ?


3


Berapa Pangsit yang di pesan?


1


Jumlah Bakso yang di pesan sebanyak 3 mangkok dengan harga 18000


Jumlah Pangsit yang di pesan sebanyak 1 mangkok dengan harga 6500


Uang yang harus dikeluarkan sebesar 24500


BUILD SUCCESSFUL (total time: 5 seconds)



Ok, bagaimana program ini bekerja? Pertama-tama kita import library tambahan yang kita butuhkan:



import java.util.Scanner;


Lalu, setelah itu deklarasikan semua var yang di butuhkan:



        int jumlahBakso;
int jumlahPangsit;
int hargaBakso=6000, hargaPangsit=6500;
int biayaBakso, biayaPangsit;
int biayaTotal;


Saya tidak akan menjelaskan arti variabel tersebut karena dari namanya saja seharusnya sudah dapat diketahui fungsi dari variabel tersebut. Setelah itu minta input dari user untuk melengkapi berapa banyak bakso dan pangsit yang ingin dipesan:



        System.out.println("Berapa Bakso Yang di Pesan ?");
jumlahBakso = myScanner.nextInt();
myScanner.nextLine();
System.out.println("Berapa Pangsit yang di pesan?");


Setelah itu saatnya kita memproses nilai yang telah diinput oleh user. Caranya? Untuk mendapatkan nilai biaya (Bakso atau Pangsit), yang kita perlukan adalah jumlah x harga, sedangkan untuk biaya total cukup menjumlahkan biayaBakso + biayaPangsit. Seperti yang dilakukan koding di bawah:



        biayaBakso = jumlahBakso * hargaBakso;
biayaPangsit = jumlahPangsit * hargaPangsit;
biayaTotal = biayaBakso + biayaPangsit


Ingat, tanda asterik (*) menandakan perkalian sementara tambah / kurang menandakan tambah atau kurang. Setelah itu kita tinggal menampilkan hasilnya kepada user seperpti dibawah ini:



        System.out.print("Jumlah Bakso yang di pesan sebanyak ");
System.out.print(jumlahBakso);
System.out.print(" mangkok dengan harga ");
System.out.println(biayaBakso);
System.out.print("Jumlah Pangsit yang di pesan sebanyak ");
System.out.print(jumlahPangsit);
System.out.print(" mangkok dengan harga ");
System.out.println(biayaPangsit);
System.out.print("Uang yang harus dikeluarkan sebesar ");
System.out.println(biayaTotal);


Karena hebatnya program Anda semua preman salut sama Anda. Tetapi mereka mulai merasa tak enak hati mengambil semua kado dari Anda. Akhirnya mereka bertanya, berapa kado yang tersisa yang Anda terima. "Coba cek di komputer Anda", kata mereka.


Kali ini Anda harus memperbaiki program Anda sehingga menampilkan jumlah kado yang tersisa. Mari kita buat bersama-sama...!!!



import java.util.Scanner;
public class kadoPreman {
public kadoPreman() {
}
public static void main(String args[])
{
Scanner myScanner = new Scanner(System.in);
int kado;
int jumlahPreman;
int jatahKadoPerPreman;
int sisaKado; //new
System.out.println("Berapa Kado ?");
kado = myScanner.nextInt();
myScanner.nextLine();
System.out.println("Berapa Preman?");
jumlahPreman = myScanner.nextInt();
jatahKadoPerPreman = kado /jumlahPreman ;
sisaKado = kado % jumlahPreman ; //new
System.out.print("Jatah kado tiap preman adalah sebanyak ");
System.out.print(jatahKadoPerPreman);
System.out.println(" Kado/Preman");
System.out.print("Sisa Kado sebanyak "); //new
System.out.print(sisaKado); //new
System.out.println(" Kado"); //new
}
}


Saat dijalankan outputnya adalah sebagai berikut:



run-single:


Berapa Kado ?


31


Berapa Preman?


4


Jatah kado tiap preman adalah sebanyak 7 Kado/Preman


Sisa Kado sebanyak 3 Kado



Dari koding diatas, yang perlu diperhatikan adalah bagian


sisaKado = kado % jumlahPreman ;


Seperti yang Anda duga, % (persen) disini merupakan suatu remainder operator (operasi mod) yang berfungsi menampilkan sisa hasil bagi dari suatu operasi pembagian.


Akhirnya mengetahui bahwa Anda hanya dapat 3 kado semua preman tersebutpun merasa 3 kado itu cukup buat Anda dan merekapub pulang. Tetapi pembahasan kita tentang Number & Types belum berakhir, lanjuting minggu depan aja ya. Dah habis neh cerita premannya :P.


Hu hu hu hu


Tidak ada komentar: