Friday, 10 July 2009

Melatih Jurus Dasar Pertama

Untuk mewujudkan impian yang akan kita capai, *dengan diiringi musik pembawa semangat jeng... jeng.. jeng... se ilah*

yaitu membuat game dengan menggunakan bahasa pemrograman C++ kita harus menguasai terlebih dahulu beberapa jurus / kata kunci (keyword) yang umum digunakan, diantaranya 'if' dan 'for'. Tapi saat ini kita latihan 'if' terlebih dahulu.

Jurus pertama ciat!!...
if atau kalau diartikan 'jika', merupakan suatu percabangan. Percabangan yang dimaksud adalah Proses menjalankan statement / pernyataan berdasarkan kondisi tertentu. Sederhanakan? he..he..he.. Misal ada kode seperti berikut:


...
int nilaiBudi = 80;
if( nilaiBudi > 80){
std::cout<<"Budi Lulus Ujian";
}
else {
std::cout<<"Budi gagal Lulus Ujian";
}
...


Kode diatas berarti memeriksa variabel " nilaiBudi " apakah lebih besar ('>') dari 80, Jika iya maka akan tampil keluaran (output) berupa kalimat "Budi Lulus Ujian". Tapi kalau nilainya lebih kecil atau sama dengan 80 maka akan tampil output kedua yaitu kalimat "Budi gagal Lulus Ujian", wah sadis juga nih ujian mesti diatas 80 :D. Hasil yang akan diperoleh adalah kalimat Budi gagal Lulus Ujian, Kenapa? karena nilai budi harus lebih besar dari 80, misalnya 81, 82, dst.

"Bagaimana kalau nilai Budi 80 tapi tetap lulus? Apakah ditulis: if(nilaiBudi>79)?", bisa saja tapi lebih baik menggunakan operator ">=" yang berarti "Lebih besar atau sama dengan", ini contoh kodenya:

...
if( nilaiBudi >= 80){
...
}
...


"Kalau kode nya begini: if( nilaiBudi == 80){ ... }, apa yang terjadi?", ini berarti nilaiBudi harus benar-benar 80 tidak boleh kurang atau lebih jika ingin menjalankan statement yang ada dalam if.

"Ngomong-ngomong else itu apa yah?", else (indonesia: lain/selain) yaitu pernyataan jika kondisi / persyaratan-nya tidak terpenuhi.

"Kalau ada kode seperti berikut bagaimana?"

...
//memeriksa nilai Budi
if( nilai >= 80){
std::cout<<"Budi Lulus, terus dikasih Laptop";
}
else if( nilai >= 70){
std::cout<<"Budi Lulus, terus dikasih HP";
}
else if( nilai >= 50){
std::cout<<"Budi Lulus, terus dikasih Es Krim";
}
else if( nilai >= 30){
std::cout<<"Budi tetap lulus, karena ujiannya ngk sadis";
}
else{
std::cout<<"Budi gagal Lulus";
}
...


Kalau pada else tidak perlu ada kondisi / persyaratan untuk menjalankan pernyataan didalamnya jika if sebelumnya tidak terpenuhi. Sedangkan " else if " persyaratannya harus terpenuhi terlebih dahulu. Agar program kita menjadi lebih dimanis, artinya variabel nilai Budi tak selalu itu-itu aja nilainya ketika program dijalankan maka kita perlu menambahkan fungsi yang berguna untuk meminta input (masukkan) kepada user. Berikut ini contoh kodenya:

...
int nilai = 0; //nilai Ujian Budi
std::cout<<"Masukkan Nilai Budi : ";
std::cin>>nilai;

//selanjutnya memeriksa nilai Budi
if( nilai >100){
std::cout<<"Batas Nilai Ujiannya cuma sampai 100 bro";
}
else if( nilai >= 80){
std::cout<<"Budi Lulus, terus dikasih Laptop";
}
else if( nilai >= 70){
std::cout<<"Budi Lulus, terus dikasih HP";
}
else if( nilai >= 50){
std::cout<<"Budi Lulus, terus dikasih Es Krim";
}
else if( nilai >= 30){
std::cout<<"Budi tetap lulus, karena ujiannya ngk sadis";
}
else{
std::cout<<"Budi gagal Lulus";
}
...


"Bagaimana kalau kondisi-nya ada dua? Seperti nilai pertama harus diatas atau sama dengan 80 dan nilai kedua diatas / sama dengan70?", Disini kita memerlukan dua variabel untuk melakukannya dan menggunakan operator tambahan " && ". Berikut contohnya:

...
int nilaiPertama = 0, nilaiKedua = 0;
std::cout<<"Masukkan Nilai Pertama Budi : ";
std::cin>>nilaiPertama;

std::cout<<"Masukkan Nilai Kedua Budi : ";
std::cin>>nilaiKedua;

char *kalimat="";
if( !(nilaiPertama >=80 && nilaiKedua >= 70)){
kalimat = "Tidak";
}
std::cout<<"Budi "<<kalimat<<" Lulus";
...


"Wah char-nya kok ada tanda bintang (*)?", sebentar kita flashback hehehe... sebelumnya char hanya dapat menampung satu huruf / karakter (misal 'a', 'd', '1', dst) dengan * berarti variabel tersebut akan menempati memori secara dinamis (sesuai jumlah memori yang kosong) sehingga dapat menampung lebih banyak karakter yang akan membentuk kata / kalimat.

"Terus tanda seru (!) itu fungsi-nya apaan yah?", tanda seru itu berarti negasi dari pernyataan "(nilaiPertama >=80 && nilaiKedua >= 70)".

"Negasi itu apaan yah?", negasi merupakan istilah dalam logika matematika yang berarti ingkaran (itu loh lagu anak-anak, "Ingkaran besar.. ingkaran besar.. ingkaran kecil.." itu Lingkaran!) atau lawannya dari suatu pernyataan dilambangkan dengan ~. Istilah-istilah umum lainnya dalam logika matematika, yaitu Dan (^), Atau (V), Implikasi (->), dsb.

"Pernyataan? Yang mana sih?", kondisi " nilaiPertama >=80 " sebetulnya adalah sebuah pernyataan juga *dengan nada sok tau*, tidak hanya yang diakhiri titik koma (;). Jika "nilaiPertama >=80" adalah p, dan "nilaiKedua >= 70" adalah q maka logika matematikanya akan seperti ini " ~(p^q) ". Apa yang akan terjadi selanjutnya? Jika nilai pertama kurang dari 80 maka p = false karena bernilai salah, nilai dari p^q jika p false adalah false.

"Kok bisa bergitu?", ini sesuai dengan tabel kebenaran! (se ilah..) berikut tabel kebenarannya ( B/Benar mewakili True dan S/Salah mewakili False) :



























p
q
p^q
B
B
B
B
S
S
S
B
S
S
S
S


Dari tabel tersebut dapat disimpulkan bahwa dua pernyataan yang sedang dibanding dengan operator Dan (&& atau ^) harus sama-sama bernilai true. Kita kembali lagi ke kode "if( !(nilaiPertama >=80 && nilaiKedua >= 70))" jika kedua nilai tersebut memenuhi syarat maka akan dilakukan ingkaran / negasi-nya. Sehingga yang terjadi adalah nilai kondisinya false dan penambahan kata "Tidak" tidak (dibacanya aneh ngk? --' ) dimasukkan ke dalam variabel char.

Kalau masih kurang jelas dengan kode diatas silahkan download file melalui link ini, sizenya 129 KB. Mohon maaf kalau ada kesalahan dalam penulisan ^_^ .

- krofz

No comments:

Post a Comment

Maaf jika komentar anda lama terbitnya ^__^, penulis berusaha OL sesering mungkin. Komentar anda adalah semangat blog ini, dan juga semangat para blogger lainnya. You can use XHTML tags: <a href="" rel="link"> </a>, <strong> </strong>, <b> </b>, <em> </em>, <i> </i>.

Spesial character use :
&lt; for <
&gt; for >


Use Pastebin.com for alternative to display your code :) .

 

back to top

back to top