Diberikan dua buah bejana A dan B, bejana A berisi larutan berwarna
merah, bejana B berisi larutan berwarna biru. Pertukarkan isi kedua
bejana itu sedemikian sehingga bejana A berisi larutan berwarna biru dan
bejana B berisi larutan berwarna merah.
DESKRIPSI :
1. Tuangkan larutan dari bejana A ke dalam bejana C.
2. Tuangkan larutan dari bejana B ke dalam bejana A.
3. Tuangkan larutan dari bejana C ke dalam bejana B.
int b = 3;
cout<<“Nilai a sebelumnya = ”;
cout<<a<<endl;
a = b + 5;
cout<<“Nilai a sesudahnya =“;
cout<<a;
}
Caranya….?
Algoritma Tukar isi Bejana
1. Tuangkan larutan dari bejana A ke dalam bejana C.
2. Tuangkan larutan dari bejana B ke dalam bejana A.
3. Tuangkan larutan dari bejana C ke dalam bejana B.
Saat
suatu program dijalankan, maka program akan langsung dijalankan mulai
dari baris pertama sampai baris terakhir, dan yang ditampilkan adalah
hasil terakhir setelah seluruh statemen dalam program dijalankan.
void main(){
int a = 1;int b = 3;
cout<<“Nilai a sebelumnya = ”;
cout<<a<<endl;
a = b + 5;
cout<<“Nilai a sesudahnya =“;
cout<<a;
}
Jendela input / output |
Pada penjelasan running program, dijelaskan langkah per langkah, apa yang terjadi pada:
memori (warna )
input/ouput, dll
Setiap satu statemen dijalankan
void
main(){
int a = 1;
int b =
3;
cout<<“Nilai a sebelumnya = ”;
cout<<a<<endl;
a = b + 5;
cout<<“Nilai a sesudahnya =“;
cout<<a;
}
memori |
Misalkan pada program dibawah, adalah suatu program yang terdiri dari 7 statemen. Maka dijelaskan dari langkah pertama, yaitu dari menjalankan statemen pertama (dicetak berah)
void main(){
int a = 1;
int b = 3;
cout<<“Nilai a sebelumnya = ”;
cout<<a<<endl;
a = b + 5;
cout<<“Nilai a sesudahnya =“;
cout<<a;
}
Statemen pertama, int a = 1; adalah pendeklarasian suatu variabel dengan nama a, kemudian variabel tersebut langsung diberi nilai 1, perubahan tersebut terjadi di memori, sehingga yang berubah adalah jendela memori.
void main(){
int a = 1;
int b = 3;
cout<<“Nilai a sebelumnya = ”;
cout<<a<<endl;
a = b + 5;
}
cout<<“Nilai a sesudahnya =“;
cout<<a;
Setelah statemen pertama selesai dilaksanakan, maka program mulai menjalankan perintah selanjutnya, int b = 3; yaitu mendeklarasikan suatu variabel dengan nama b dan langsung diberikan nilai 3, hal ini terjadi pada memori.
void main(){
int a = 1;
int b = 3;
cout<<“Nilai a sebelumnya = ”;
cout<<a<<endl;
a = b + 5;
cout<<“Nilai a sesudahnya =“;
cout<<a;
}
Eksekusi statemen selanjutnya, yaitu menampilkan tulisan “Nilai a sebelumnya =“, karena ini adalah proses output, maka yang berubah adalah jendela input/output.
void main(){
int a = 1;
int b = 3;
cout<<“Nilai a sebelumnya = ”;
cout<<a<<endl;
a = b + 5;
cout<<“Nilai a sesudahnya =“;
cout<<a;
}
Petunjuk Penjelasan Running Program
Perintah selanjutnya dijalankan, cout<<a<<endl; karena saat ini variabel a bernilai 1 (terlihat pada jendela memori), maka perintah tersebut menjadi cout<<1<<endl; yaitu menampilkan 1, setelah itu memindahkan cursor ke baris selanjutnya. Karena statemen output (cout) yang terjadi, maka perubahan dilakukan pada jendela input/output.
void main(){
int a = 1;
int b = 3;
cout<<“Nilai a sebelumnya = ”;
cout<<a<<endl;
a = b + 5;
cout<<“Nilai a sesudahnya =“;
cout<<a;
}
a = b + 5; karena saat ini variabel b bernilai 3, maka statemen menjadi a = 3 + 5; atau a = 8; yaitu nilai variabel a berubah, dari sebelumnya bernilai 1, menjadi bernilai 8, statemen ini hanya mengubah jendela memori (liat tulisan merah) , jendela input/output tidak berubah.
void main(){
int a = 1;
int b = 3;
cout<<“Nilai a sebelumnya = ”;
cout<<a<<endl;
a = b + 5;
cout<<“Nilai a sesudahnya =“;
cout<<a;
}
Petunjuk Penjelasan Running Program
Statamen selanjutnya, output tulisan “Nilai a sesudahnya =“, karena merupakan perintah output, maka perintah ini hanya mengubah jendela input/output (liat tulisan merah), tidak mengubah jendela memori.
void main(){
int a = 1;
int b = 3;
cout<<“Nilai a sebelumnya = ”;
cout<<a<<endl;
a = b + 5;
cout<<“Nilai a sesudahnya =“;
cout<<a;
}
Petunjuk Penjelasan Running Program
Statemen selanjutnya, cout<<a; karena saat ini variabel a bernilai 8 (liat jendela memori), maka perintah tersebut menjadi cout<<8; atau menampilkan tulisan 8 di jendela input/output.
Statamen selanjutnya, output tulisan “Nilai a sesudahnya =“, karena merupakan perintah output, maka perintah ini hanya mengubah jendela input/output (liat tulisan merah), tidak mengubah jendela memori.
void main(){
int a = 1;
int b = 3;
cout<<“Nilai a sebelumnya = ”;
cout<<a<<endl;
a = b + 5;
cout<<“Nilai a sesudahnya =“;
cout<<a;
}
Petunjuk Penjelasan Running Program
Statemen selanjutnya, cout<<a; karena saat ini variabel a bernilai 8 (liat jendela memori), maka perintah tersebut menjadi cout<<8; atau menampilkan tulisan 8 di jendela input/output.
void main(){
int a = 1;
int b = 3;
cout<<“Nilai a sebelumnya = ”;
cout<<a<<endl;
a = b + 5;
cout<<“Nilai a sesudahnya =“;
cout<<a;
}
Petunjuk Penjelasan Running Program
Setelah semua statemen selesai dilaksanakan, maka program berhenti. Output yang akan terlihat adalah seperti pada jendela input/output .
void main(){
int a = 1;
int b = 3;
cout<<“Nilai a sebelumnya = ”;
cout<<a<<endl;
a = b + 5;
cout<<“Nilai a sesudahnya =“;
cout<<a;
}
Format Penjelasan Running Program
void main(){
int a = 1;
cout<<“sebelum while”<<endl;
while(a == 0){
cout<<“ a = “<< a << endl;
a = a + 1;
}
cout<<“setelah while a = ”<<a;
}
Bagian kode program, baris yang berwarna merah tebal, merupakan baris perintah yang sedang dijalankan saat ini.
Keterangan, yaitu menjelaskan, operasi yang terjadi saat suatu baris program dijalankan.
void main(){
int a = 1;
cout<<“sebelum while”<<endl;
while(a == 0){
cout<<“ a = “<< a << endl;
a = a + 1;
}
cout<<“setelah while a = ”<<a;
}
Jendela memori (Daftar variabel) yang telah dideklarasikan, beserta nilai yang disimpannya saat ini.
Jendela memori (Daftar variabel) yang telah dideklarasikan, beserta nilai yang disimpannya saat ini.
void main(){
int a = 1;
cout<<“sebelum while”<<endl;
while(a == 0){
cout<<“ a = “<< a << endl;
a = a + 1;
}
cout<<“setelah while a = ”<<a;
}
Jendela input/output dari program.
void main(){
int a = 1;
cout<<“sebelum while”<<endl;
while(a == 0){
cout<<“ a = “<< a << endl;
a = a + 1;
}
cout<<“setelah while a = ”<<a;
}
Keuntungan menggunakan penjelasan runing program
Bisa menelusuri bagaimana sampai bisa mendapatkan output yang ditampilkan.
Pada program dibawah, kurang bisa dipahami, mengapa setelah program dijalankan, tidak ada yang terjadi pada jendela output. Tidak muncul “Splendid” ataupun “Poor”.
void main(){
int a = 5;
if(a <= 4){
cout<<“Splendid”;
}else if(a < 5){
cout<<“Poor”;
}
}
Coba dipelajari menggunakan penjelasan running program, dimulai dari pelaksanaan statemen pertama. Yaitu mendeklarasikan variabel a dan memberikan nilai 5.
void main(){
int a = 5;
if(a <= 4){
cout<<“Splendid”;
}else if(a < 5){
cout<<“Poor”;
}
}
Selanjutnya masuk pada perintah if, kondisi (a<=4), karena saat ini variabel a bernilai 5 (lihat di jendela memori), maka kondisi menjadi (5 <= 4) yaitu bernilai false.
void main(){
int a = 5;
if(a <= 4){
cout<<“Splendid”;
}else if(a < 5){
cout<<“Poor”;
}
}
Karena bernilai false, maka statemen if langsung memerisa bagian else if. Kondisi (a<5), karena saat ini variabel a bernilai 5, maka kondisi menjadi (5 < 5) atau bernilai false.
void main(){
int a = 5;
if(a <= 4){
cout<<“Splendid”;
}else if(a < 5){
cout<<“Poor”;
}
}
Karena else if bernilai false, maka langsung lompat ke statemen selanjutnya. dan karena sudah sampai pada akhir program maka program selesai. Terlihat bahwa sampai akhir program tidak ada perubahan (kosong) pada jendela input/output.
void main(){
int a = 5;
if(a <= 4){
cout<<“Splendid”;
}else if(a < 5){
cout<<“Poor”;
}
}
Dan sudah diketahui penyebab tidak munculnya output (“Splendid” atau “Poor”) adalah karena kondisi untuk kedua if tersebut bernilai false.
void main(){
int a = 5;
if(a <= 4){
cout<<“Splendid”;
}else if(a < 5){
cout<<“Poor”;
}
}
Keuntungan menggunakan penjelasan runing program
Keuntungan lainnya menggunakan penjelasan running program adalah bisa memahami apa arti dari setiap statemen (pemberian nilai, input, output, percabangan, perulangan, dll).
Contoh :
void main(){
int a = 2;
int b = 9;
int c = 1;
while(a < b){
c = c + c;
a = a + c;
b = b - 1;
cout<<a<<","<<b<<","<<c<<endl;
}
}
mulai dari statemen int a = 2, mendeklarasikan variabel a dan memberikan nilai 2.
void main(){
int a = 2;
int b = 9;
int c = 1;
while(a < b){
c = c + c;
a = a + c;
b = b - 1;
cout<<a<<","<<b<<","<<c<<endl;
}
}
Petunjuk Penjelasan Running Program
Statemen selanjutnya, int b = 9, mendeklarasikan variabel b dan memberikan nilai 9.
void main(){
int a = 2;
int b = 9;
int c = 1;
while(a < b){
c = c + c;
a = a + c;
b = b - 1;
cout<<a<<","<<b<<","<<c<<endl;
}
}
Petunjuk Penjelasan Running Program
void main(){
int a = 2;
int b = 9;
int c = 1;
while(a < b){
c = c + c;
a = a + c;
b = b - 1;
cout<<a<<","<<b<<","<<c<<endl;
}
}
Masuk pada statemen while(a < b), karena saat ini a bernilai 2 dan b bernilai 9 (lihat pada jendela memori), maka kondisi menjadi (2<9), dan bernilai true. karena true maka seluruh statemen dalam badan while dilaksanakan.
void main(){
int a = 2;
int b = 9;
int c = 1;
while(a < b){
c = c + c;
a = a + c;
b = b - 1;
cout<<a<<","<<b<<","<<c<<endl;
}
}
c = c + c; karena saat ini c bernilai 1 maka statemen menjadi c = 1 + 1; atau c = 2, yaitu perintah untuk menyimpan nilai 2 ke variabel c.
void main(){
int a = 2;
int b = 9;
int c = 1;
while(a < b){
c = c + c;
a = a + c;
b = b - 1;
cout<<a<<","<<b<<","<<c<<endl;
}
}
a = a + c; karena saat ini a bernilai 2 dan c bernilai 2 maka statemen menjadi a = 2 + 2; atau a = 4, yaitu perintah untuk menyimpan nilai 4 ke variabel a.
void main(){
int a = 2;
int b = 9;
int c = 1;
while(a < b){
c = c + c;
a = a + c;
b = b - 1;
cout<<a<<","<<b<<","<<c<<endl;
}
}
b = b - 1; karena saat ini b bernilai 9 maka statemen menjadi b = 9 - 1; atau a = 8, yaitu perintah untuk menyimpan nilai 8 ke variabel a.
void main(){
int a = 2;
int b = 9;
int c = 1;
while(a < b){
c = c + c;
a = a + c;
b = b - 1;
cout<<a<<","<<b<<","<<c<<endl;
}
}
cout<<a<<“,”<<b<<“,”<<c<<endl, menjadi
cout<<4<<“,”<<8<<“,”<<2<<endl;
Setelah seluruh statemen dalam badan while, maka kembali dengan memeriksa kondisi while(a<b), karena a saat ini bernilai 4, dan b bernilai 8 maka menjadi (4<8) atau bernilai true. Karena bernilai true, maka seluruh statemen dalam badan while dijalankan.
void main(){
int a = 2;
int b = 9;
int c = 1;
while(a < b){
c = c + c;
a = a + c;
b = b - 1;
cout<<a<<","<<b<<","<<c<<endl;
}
}
c = c + c; karena c saat ini bernilai 2, maka menjadi c = 2 + 2; atau c = 4.
void main(){
int a = 2;
int b = 9;
int c = 1;
while(a < b){
c = c + c;
a = a + c;
b = b - 1;
cout<<a<<","<<b<<","<<c<<endl;
}
}
a = a + c; karena a saat ini bernilai 4 dan c bernilai 4, maka menjadi a = 4 + 4; atau a = 8.
void main(){
int a = 2;
int b = 9;
int c = 1;
while(a < b){
c = c + c;
a = a + c;
b = b - 1;
cout<<a<<","<<b<<","<<c<<endl;
}
}
b = b - 1; karena b saat ini bernilai 8, maka menjadi b = 8 - 1; atau b = 7.
void main(){
int a = 2;
int b = 9;
int c = 1;
while(a < b){
c = c + c;
a = a + c;
b = b - 1;
cout<<a<<","<<b<<","<<c<<endl;
}
}
cout<<a<<“,”<<b<<“,”<<c<<endl; menjadi
cout<<8<<“,”<<7<<“,”<<4<<endl;
void main(){
int a = 2;
int b = 9;
int c = 1;
while(a < b){
c = c + c;
a = a + c;
b = b - 1;
cout<<a<<","<<b<<","<<c<<endl;
}
}
Karena seluruh statemen dalam badan while selesai, maka kondisi while kembali dinilai (a<b), menjadi (8<7) atau bernilai false.
void main(){
int a = 2;
int b = 9;
int c = 1;
while(a < b){
c = c + c;
a = a + c;
b = b - 1;
cout<<a<<","<<b<<","<<c<<endl;
}
}
Karena kondisi bernilai false, maka dilanjutkan dengan melaksanakan statemen selanjutnya setelah while, karena sudah tidak ada statemen lagi, maka program berhenti.
void main(){
int a = 2;
int b = 9;
int c = 1;
while(a < b){
c = c + c;
a = a + c;
b = b - 1;
cout<<a<<","<<b<<","<<c<<endl;
}
}
Sekarang sudah diketahui, bagaimana statemen while dijalankan, yaitu :
1.Periksa kondisi while
a. Apabila kondisi bernilai true, maka lanjut ke langkah (2).
b. Apabila kondisi bernilai false, maka keluar dari statemen while, dan melanjutkan melaksanakan statemen setelah while.
Jalankan seluruh statemen dalam badan while, setelah itu kembali ke langkah (1).
void main(){
int a = 2;
int b = 9;
int c = 1;
while(a < b){
c = c + c;
a = a + c;
b = b - 1;
cout<<a<<","<<b<<","<<c<<endl;
}
}
Penjelasan Program Yang Menggunakan Input
Program yang menggunakan input, bisa menghasilkan output yang berbeda-beda tergantung input yang diberikan. misalkan program dibawah, akan menghasilkan output yang berbeda tergantung dari input yang diberikan :
void main(){
char name[10]=“”;
cout<<“Username : “;
cin>>name;
if(strcmp(name, “adi”)==0){
cout<<“Monggo”;
}else if(strcmp(name, “budi”)==0){
cout<<“Silahkan”;
} else
{
cout<<“Dilarang masuk”;
}
}
Untuk program yang menggunakan input seperti dibawah, harus dipilih salah satu dari seluruh kasus yang mungkin.
void main(){
char name[10]=“”;
cout<<“Username : “;
cin>>name;
if(strcmp(name, “adi”)==0){
cout<<“Monggo”;
}else if(strcmp(name, “budi”)==0){
cout<<“Silahkan”;
} else
{
cout<<“Dilarang masuk”;
}
}
Misalkan dipilih kasus untuk menjelaskan input berupa string budi.
void main(){
char name[10]=“”;
cout<<“Username : “;
cin>>name;
if(strcmp(name, “adi”)==0){
cout<<“Monggo”;
}else if(strcmp(name, “budi”)==0){
cout<<“Silahkan”;
} else
{
cout<<“Dilarang masuk”;
}
}
Deklarasi variabel name dan berikan nilai awal string kosong “”
void main(){
char name[10]=“”;
cout<<“Username : “;
cin>>name;
if(strcmp(name, “adi”)==0){
cout<<“Monggo”;
}else if(strcmp(name, “budi”)==0){
cout<<“Silahkan”;
} else
{
cout<<“Dilarang masuk”;
}
}
Tampilkan String “Username : “, ke jendela input/output
void main(){
char name[10]=“”;
cout<<“Username : “;
cin>>name;
if(strcmp(name, “adi”)==0){
cout<<“Monggo”;
}else if(strcmp(name, “budi”)==0){
cout<<“Silahkan”;
} else
{
cout<<“Dilarang masuk”;
}
}
Perintah cin>>name, yaitu menunggu user mengetikkan nilai kemudian menekan enter, setelah user menekan enter maka nilai tersebut akan tersimpan dalam variabel name.
void main(){
char name[10]=“”;
cout<<“Username : “;
cin>>name;
if(strcmp(name, “adi”)==0){
cout<<“Monggo”;
}else if(strcmp(name, “budi”)==0){
cout<<“Silahkan”;
} else
{
cout<<“Dilarang masuk”;
}
}
Karena sudah ditentukan sebelumnya bahwa input yang akan diberikan adalah budi maka inilah yang dijelaskan.
void main(){
char name[10]=“”;
cout<<“Username : “;
cin>>name;
if(strcmp(name, “adi”)==0){
cout<<“Monggo”;
}else if(strcmp(name, “budi”)==0){
cout<<“Silahkan”;
} else
{
cout<<“Dilarang masuk”;
}
}
if(strcmp(name, “adi”)==0), menjadi if(strcmp(“budi”, “adi”)==0), karena “budi” berbeda dengan “adi” maka menjadi if(5 == 0) atau bernilai if(false).
Catatan, fungsi strcmp akan menghasilkan nilai bukan nol (positif atau negatif), apabila kedua nilai string yang dibandingkan tidak sama.
void main(){
char name[10]=“”;
cout<<“Username : “;
cin>>name;
if(strcmp(name, “adi”)==0){
cout<<“Monggo”;
}else if(strcmp(name, “budi”)==0){
cout<<“Silahkan”;
} else
{
cout<<“Dilarang masuk”;
}
}
karena if(false), maka langsung melompat pada else if(strcmp(name,”budi”)==0), menjadi else if(strcmp(“budi”, “budi”)==0), menjadi else if( 0 == 0 ), atau bernilai if(true).
Catatan, strcmp akan menghasilkan nol, apabila kedua string yang dibandingkan adalah sama.
void main(){
char name[10]=“”;
cout<<“Username : “;
cin>>name;
if(strcmp(name, “adi”)==0){
cout<<“Monggo”;
}else if(strcmp(name, “budi”)==0){
cout<<“Silahkan”;
} else
{
cout<<“Dilarang masuk”;
}
}
Karena if(true), maka seluruh statemen dalam badan if akan dilaksanakan, Tampilkan “Silahkan” pada jendela input/output.
void main(){
char name[10]=“”;
cout<<“Username : “;
cin>>name;
if(strcmp(name, “adi”)==0){
cout<<“Monggo”;
}else if(strcmp(name, “budi”)==0){
cout<<“Silahkan”;
} else
{
cout<<“Dilarang masuk”;
}
}
Karena semua statemen dalam badan if sudah dilaksanakan, maka langsung keluar dari if dan laksanakan perintah selanjutnya (setelah if).
Tidak ada komentar:
Posting Komentar
Jika ada pertanyaan, pendapat atau sanggahan silahkan berkomentar dibawah ini