Translate

Tutorial prosedur dan subroutin halaman 10

Tutorial prosedur dan subroutin halaman 10

Selamat datang di eagleboot dan selamat membaca.

6.9. Call by Value dan Call by References 

Ada dua cara bagaimana suatu argumen dalam suatu program dapat memanggil sub rutin (function), yaitu call by value dan call by reference. Yang dimaksud dengan call by value adalah metode yang menyalin data (nilai) dari argumen yang memanggil function ke parameter dari function tersebut. Akibatnya jika ada perubahan nilai pada parameter function tidak akan berpengaruh pada nilai aslinya (nilai yang ada pada argumen program yang memanggil function tersebut). Sebaliknya untuk call by reference yang disalin bulan nilainya tetapi alamat memori yang menyimpan nilai tersebut sehingga jika terjadi perubahan- perubahan nilai pada parameter function, maka secara otomatis nilai argumennya juga akan ikut berubah. Untuk lebih jelasnya, perhatikan contoh call by value dengan C++ berikut ini

#include<iostream> 2. usingnamespacestd; 3. intsqr(intx){ 4. x=x*x; 5. return(x); 6. } 7. intmain(void){ 8. intt=10; 9. cout<<sqr(t)<<","<<t<<endl; 10. return0; 11. }  

Keluaran programnya adalah : 100,10 

Nilai argumen sqr() pada program utama yaitu t (bernilai 10) disalin ke parameter x function sqr(). Didalam function sqr(), nilai x dirubah (x=x*x) sehingga function sqr() bernilai 100. Nilai function sqr() ini langsung ditampilkan oleh program yang memanggilnya (baris ke-9). Akan tetapi nilai t, yang juga ditampilkan oleh program utama (bariske-9), tetap 10. Keluaran program ini adalah 100, 10 dimana 100 adalah nilai dari function fpb() dan 10 adalah nilai variabel t 

Nilaiawal t=10 Pemanggilankembali variabelt t=10 Nilaivariabeltdisalinke parameterfungsisqr() x=10 Prosesdifunction sqr() x=100atau sqr()=100
Gambar 6.3. call by value 

 Untuk permasalahan yang sama dalam bahasa Java adalah sebagai berikut : 

 1. importjava.io.*; 2. classkuadrat{ publicintsqr(intx){ 4. x=x*x; 5. return(x); 6. } 7. } 8. classpower{ 9. publicstaticvoidmain(String[]args){ 10. kuadrata=newkuadrat(); 11. intt=10; 12. System.out.println(a.sqr(t)+","+t); 13. } 14. }  

Keluaran programnya adalah : 100,10  

Untuk call by reference, tipe data yang digunakan adalah tipe data pointer karena yang disalin adalah alamat dari memori dimana data disimpan (pembahasan mengenai pointer ini ada di bab tersendiri). Untuk bahasa Java tidak menggunakan call by reference karena tidak ada pointer dalam bahasa Java. Contoh call by reference (dengan menggunakan bahasa C++) adalah sebagai berikut:  

1. #include<iostream> 2. usingnamespacestd; 3. voidtukar(int*x,int*y){ 4. inttemp; 5. temp=*x; 6. *x=*y; 7. *y=temp; 8. } 9. intmain(void){ 10. inti,j; 11. i=10; 12. j=20; 13. cout<<"Mula‐mula:"<<endl; 14. cout<<"Nilaii:"<<i<<endl; 15. cout<<"Nilaij:"<<j<<endl; 16. tukar(&i,&j); 17. cout<<endl<<"Setelahditukar:"<<endl; 18. cout<<"Nilaii:"<<i<<endl; 19. cout<<"Nilaij:"<<j<<endl; 20. return0; 21. } 

Keluaran dari program di atas adalah : Mula‐mula: NilaiI :10 Nilaij :20 Setelahditukar: NilaiI :20 Nilaij :10

Next read ON halaman 11.
Tutorial prosedur dan subroutin halaman 9

Tutorial prosedur dan subroutin halaman 9

Selamat datang di eagleboot dan selamat membaca.

6.8. Function Call Function

 Sub rutin dalam suatu program tidak hanya dapat dipanggil oleh program utama saja tetapi antar sub rutin juga dapat saling memanggil.  

intmain(){ ……. fungsi_1(); ……. fungsi_2(); ……. return0; } intfungsi_1(){ ……. fungsi_3(); ……. return0; } intfungsi_2(){ ……. return0; } intfungsi_3(){ ……. fungsi_4(); return0; } intfungsi_4(){ ……. return0; }

  Gambar 6.2. Sub rutin yang tidak hanya dipanggil oleh program utama  Berikut adalah contoh sub rutin yang memanggil sub rutin lainnya.  1.

 #include<iostream> 2. usingnamespacestd; 3. voidfpb(inta,intb){ 4. inthasil; 5. intr=a%b; 6. if(r==0)hasil=b; 7. else{ 8. while(r!=0){ 9. a=b; 10. b=r; 11. r=a%b; 12. hasil=b; 13. } 14. } 15. cout<<"FPB‐nya="<<hasil<<endl; 16. } 17. voidinput_data(){ 
  18. intm,n; 19. do{ 20. cout<<"Bilanganpertama="; 21. cin>>m; 22. cout<<"Bilangankedua="; 23. cin>>n; 24. }while(m<n); 25. fpb(m,n); 26. } 27. voidmain(){ 28. input_data(); 29. } 

 Keluaran programnya adalah : Bilanganpertama=56 Bilangankedua=24 FPB‐nya=8

  Program di atas mempunyai dua buah function, yaitu function fpb() dan function input_data(). Pertama kali function yang dipanggil oleh program utama adalah function input_data() (baris ke-28). Kemudian function input_data() melakukan pemanggilan function lain yaitu function fpb() (baris ke-25) setelah user memasukkan data untuk bilangan pertama dan bilangan kedua. Sedangkan kode program dalam bahasa Java untuk permasalahan yang sama adalah:  

1. importjava.util.Scanner; 2. importjava.io.*; 3. classhitung{ 4. publicvoidfpb(inta,intb){ 5. inthasil=0; 6. intr=a%b; 7. if(r==0)hasil=b; 8. else{ 9. while(r!=0){ 10.  a=b; 11.  b=r; 12.  r=a%b; 13.  hasil=b; 14. } 15. } 16. System.out.println("Bilanganterbesarnya="+hasil); 17. } 
18. } 19. classinput_data{ 20. publicvoiddata_input(){ 21. hitungsekutu=newhitung(); 22. intm,n; 23. Scannerinput=newScanner(System.in); 24. do{ 25. System.out.print("Bilanganpertama="); 26. m=input.nextInt(); 27. System.out.print("Bilangankedua="); 28. n=input.nextInt(); 29. }while(m<n); 30. sekutu.fpb(m,n); 31. } 32. } 33. classsekutuBesar{ 34. publicstaticvoidmain(String[]args){ 35. input_datamasukan=newinput_data(); 36. masukan.data_input(); 37. } 38. }  

Keluaran programnya adalah : Bilanganpertama=76 Bilangankedua=18 Bilanganterbesarnya=2

Next read ON halaman 10.
Tutorial prosedur dan subroutin halaman 8

Tutorial prosedur dan subroutin halaman 8

Selamat datang di eagleboot dan selamat membaca.

6.7. Function yang Tidak Mengembalikan Nilai Untuk sub rutin

 (function) yang tidak mengembalikan nilai bentuknya sangat mirip dengan function yang mengembalikan nilai. Perbedaannya adalah penggunaan kata kunci atau klausa void pada function yang tidak mengembalikan nilai baik pada bahasa C++ maupun bahasa Java. Untuk lebih jelasnya, perhatikan program C++ berikut ini untuk permasalahan yang sama, yaitu mencari faktor persekutuan besar.

  1. #include<iostream> 2. usingnamespacestd; 3. voidfpb(inta,intb){ 4. inthasil; 5. intr=a%b; 6. if(r==0)hasil=b 
7. else{ 8. while(r!=0){ 9. a=b; 10. b=r; 11. r=a%b; 12. hasil=b; 13. } 14. } 15. cout<<"FPB‐nya="<<hasil<<endl; 16. } 17. voidmain(){ 18. intm,n; 19. do{ 20. cout<<"Bilanganpertama="; 21. cin>>m; 22. cout<<"Bilangankedua="; 23. cin>>n; 24. }while(m<n); 25. fpb(m,n); 26. }  

Keluaran programnya : Bilanganpertama=30 Bilangankedua=18 FPB‐nya=6

  Program di atas, function fpb() (baris ke-3 sampai dengan baris ke- 16) tidak mempunyai tipe data dan klausa return diakhir program, sehingga dapat kita simpulkan bahwa function fpb() bukan merupakan suatu function yang mengembalikan nilai. Sebaliknya, function fpb() diawali dengan klausa void sehingga function tersebut merupakan suatu function yang tidak mengembalikan nilai. Hasil perhitungan faktor persekutuan besar dari dua buah bilangan tidak dikembalikan ke program utama yang memanggilnya tetapi ditampilkan sendiri oleh function tersebut (baris ke-15). Dengan argumen pada program utama yang memanggil fuction fpb() (baris ke-25) tidak menghasilkan suatu nilai seperti halnya pada contoh sebelumnya (function yang mengembalikan nilai). Untuk contoh function yang tidak mengembalikan nilai pada bahasa Java dengan permasalahan yang sama adalah sebagai berikut: 

1. importjava.util.Scanner; 2. importjava.io.* classhitung{ 4. publicvoidfpb(inta,intb){ 5. inthasil=0; 6. intr=a%b; 7. if(r==0)hasil=b; 8. else{ 9. while(r!=0){ 10. a=b; 11. b=r; 12. r=a%b; 13. hasil=b; 14. } 15. } 16. System.out.println("Bilanganterbesarnya="+hasil); 17. } 18. } 19. classsekutuBesar{ 20. publicstaticvoidmain(String[]args){ 21. hitungsekutu=newhitung(); 22. intm,n; 23. Scannerinput=newScanner(System.in); 24. do{ 25. System.out.print("Bilanganpertama="); 26. m=input.nextInt(); 27. System.out.print("Bilangankedua="); 28. n=input.nextInt(); 29. }while(m<n); 30. sekutu.fpb(m,n); 31. } 32.} 

 Keluaran programnya : Bilanganpertama=44 Bilangankedua=36 Bilanganterbesarnya=4 

Sama seperti pada bahasa C++, class yang mempunyai function method untuk yang tidak mengembalikan nilai pada bahasa Java juga tidak mempunyai tipe data, tetapi diawali dengan klausa void (baris ke-4). Hasil perhitungan faktor persekutuan besar oleh class hitung() juga tidak ditampilkan oleh class sekutuBesar() yang memanggilnya (baris ke-30), tetapi oleh class hitung() itu sendiri (baris ke-16 

Next read ON halaman 9.
Tutorial prosedur dan subroutin halaman 7

Tutorial prosedur dan subroutin halaman 7

Selamat datang di eagleboot dan selamat membaca.

Baris ke-3 sampai dengan ke-16 merupakan sub rutin (function) yang bernama fpb(). Sedangkan baris ke- 17 sampai dengan ke-26 merupakan program utamanya. Program utama ini akan memanggil function fpb() melalui suatu argumen (lihat baris ke- 25). Function fpb() bertugas untuk melakukan pencarian faktor persekutuan besar dari dua buah bilangan yang dimasukkan di program utama (lihat baris ke-19 sampai dengan ke-24). Setelah selesai melakukan tugasnya, maka function fpb() akan mempunyai nilai yang langsung ditampilkan pada program utama. Function fpb() mempunyai tipe data integer dan mempunyai dua buah parameter formal yang bertipe data integer juga, yaitu a dan b (baris ke-3). Function tersebut juga mempunyai variabel hasil yang bertipe data integer (baris ke-4). Function fpb() ini nilainya akan sama dengan variabel hasil (baris ke-15). Variabel a, b, dan hasil merupakan variabel lokal dimana ketiga variabel ini hanya berfungsi pada function fpb() saja. Variabel a dan b bertugas untuk menerima data yang dikirim oleh program lain yang memanggilnya sedangkan variabel hasil digunakan untuk menyimpan data hasil pencarian faktor persekutuan besar (baris ke-6 dan baris ke-12).  Untuk permasalahan yang sama dengan menggunakan bahasa Java adalah sebagai berikut:  

1. importjava.util.Scanner; 
2. importjava.io.*; 
3. classhitung{ 
4. publicintfpb(inta,intb){
 5. inthasil=0; 
6. intr=a%b; 
7. if(r==0)hasil=b; 
8. else{ 
9. while(r!=0){ 
10. a=b; 
11. b=r; 
12. r=a%b; 
13. hasil=b; 
14. } 15. } 16. returnhasil;
 17. } 18. } 19. classsekutuBesar{ 20. publicstaticvoidmain(String[]args){
 21. hitungsekutu=newhitung(); 22. intm,n ;
23. Scannerinput=newScanner(System.in); 24. do{ 25. System.out.print("Bilanganpertama="); 26. m=input.nextInt(); 27. System.out.print("Bilangankedua="); 28. n=input.nextInt(); 29. }while(m<n); 30. System.out.println("Bilanganterbesarnya="+sekutu.fpb(m,n)); 31. } 32. }  

Keluaran programnya : Bilanganpertama=36 Bilangankedua=28 Bilanganterbesarnya=4  Pada program Java di atas terlihat bahwa pencarian faktor persekutuan besar-nya dilakukan oleh Class hitung(). Class hitung() ini mempunyai method fpb(), yang merupakan function fpb() pada C++, dan bertugas untuk melakukan pencarian faktor persekutuan besar. Class sekutuBesar() kemudian membuat obyek baru dari Class hitung() dengan nama sekutu  (lihat baris ke-21). Atau dengan kata lain Class hitung() “dipanggil” oleh program utamanya yaitu Class sekutuBesar(). Program Java tersebut jika di- compile akan menghasilkan dua buah class, yaitu hitung.class dan sekutuBesar.class dimana program sekutuBesar.class akan memanggil hitung.class untuk melakukan perhitungan faktor persekutuan besar dari dua buah bilangan 

Next read ON halaman 8.
Tutorial prosedur dan subroutin halaman 6

Tutorial prosedur dan subroutin halaman 6

Selamat datang di eagleboot dan selamat membaca.

Dalam Java, class ricek() yang mempunyai function method cek() tidak bisa langsung kita gunakan (kita panggil), tetapi harus dibuat / diciptakan dahulu obyek dari class ricek() seperti yang terlihat pada baris ke-9 dimana obyek baru dari class ricek() dalam class ricekApp() diberi nama ck. Dengan obyek ck inilah kita dapat mengakses method yang dipunyai oleh class ricek() karena secara otomatis obyek ck juga mempunyai method cek() yang dimiliki oleh class ricek(). Contoh di atas merupakan contoh function dimana function tersebut mempunyai parameter, dalam hal ini parameter s dan c yang bertipe char. Function cek() tersebut nilainya akan berubah-ubah sesuai dengan nilai masukannya. Untuk contoh di atas nilai function dari cek() cuma ada dua, yaitu 0 atau 1. Berikut ini adalah contoh function yang tidak mempunyai parameter sama sekali sehingga nilai function-nya tidak akan berubah-ubah seperti halnya pada contoh sebelumnya.  Contoh program dalam bahasa C++ :

 #include<iostream> usingnamespacestd; intfpb(){ inta=24,b=18,hasil; intr=a%b; if(r==0)hasil=b; else{ while(r!=0){ a=b; b=r; r=a%b; hasil=b; } } return(hasil); } voidmain(){ cout<<"FPB‐nya="; cout<<fpb()<<endl; } 

 Keluaran programnya adalah : FPB‐nya=6  Contoh program dalam bahasa Java : 
1. classhitung{ 
2. publicintfpb(){ 
3. inta=78,b=24,hasil=0; 
4. intr=a%b; 
5. if(r==0)hasil=b;
 6. else{ 
7. while(r!=0){ 
8.  a=b; 
9.  b=r; 
10.  r=a%b; 
11.  hasil=b; 
12. } 
13. } 
14. returnhasil; 
15. } 
16. } 
17. classfpbApp{ 
18. publicstaticvoidmain(String[]args){ 
19. hitungsekutu=newhitung();
 20. System.out.println("Bilanganterbesarnya="+sekutu.fpb()); 21. 

22. }

  Keluaran programnya adalah : Bilanganterbesarnya=6  Nilai dari function fpb() di atas untuk bahasa C++ pasti 6 karena nilai dari a dan b telah ditetapkan besarnya, yaitu 24 dan 18. Sedangkan untuk bahasa Java nilai method fpb() dari class hitung() juga pasti tetap, yaitu 6 karena nilai a dan b juga telah ditentukan (a=78 dan b=24). 

 6.6. Function yang Mengembalikan Nilai

 Yang dimaksud dengan function yang mengembalikan nilai adalah suatu sub rutin yang bila dipanggil oleh suatu program (argumen) maka argumen tersebut akan memperoleh nilai balikan dari function tersebut Atau dengan kata lain, suatu function yang mempunyai nilai. Karena mempunyai nilai inilah maka suatu function yang mengembalikan nilai harus mempunyai tipe data sesuai dengan nilai yang dihasilkannya. Perhatikan baris ke-2 pada function cek() pada contoh sebelumnya. Function cek() digunakan menghasilkan nilai integer (lihat baris ke-3 dan ke-4) yaitu 0 atau 1 (return 0 dan return 1), sehingga tipe data-nya juga harus integer. Dengan demikian dapat disimpulkan bahwa ciri dari function yang mengembalikan nilai adalah :  Function tersebut mempunyai tipe data.  Diakhiri dengan klausa return. Berikut contoh program C++ yang menggunakan function dimana function-nya dapat mengembalikan nilai  1. #include<iostream> 2. usingnamespacestd; 3. intfpb(inta,intb){ 4. inthasil; 5. intr=a%b; 6. if(r==0)hasil=b; 7. else{ 8. while(r!=0){ 9. a=b;b=r; 10. r=a%b; 11. hasil=b; 12. } 13. } 14. return(hasil); 15. } 16. voidmain(){ 17. intm,n; 18. do{ 19. cout<<"Bilanganpertama="; 20. cin>>m; 21. cout<<"Bilangankedua="; 22. cin>>n; 23. }while(m<n); 24. cout<<"FPB‐nya="<<fpb(m,n)<<endl; 25. }  Keluaran programnya : Bianganpertama=24 Bilangankedua=20 FPB‐nya=4 

Next read ON halaman 7.

Tutorial prosedur dan subroutin halaman 5

Tutorial prosedur dan subroutin halaman 5

Selamat datang di eagleboot dan selamat membaca.

berbeda-beda. Variabel-variabel yang digunakan dalam function disebut dengan variabel lokal. Oleh karena itu variabel tersebut hanya dapat digunakan didalam function itu sendiri tidak bisa digunakan oleh function lain atau program utama.  Variabel lokal ini berfungsi pada saat function tersebut aktif dan akan hilang (dihapus) jika function sudah tidak aktif lagi atau setelah function selesai melakukan tugasnya (kecuali variabel yang digunakan dalam function adalah variabel global yang dapat digunakan oleh semua function dan program utama).  Untuk dapat digunakan, function biasanya mempunyai parameter-parameter yang digunakan untuk menerima masukan dari program yang memanggilnya. Parameter-parameter ini disebut dengan parameter formal. Parameter formal ini termasuk dalam variabel lokal yang akan berfungsi pada saat function aktif dan akan dihapus pada saat function selesai melakukan tugasnya. Perhatikan contoh function dalam bahasa C++ berikut ini:

 /*functionakanmenghasilkannilai1jikacsamadengans,sebaliknyabernilai0jikac tidaksamadengans*/ intcek(chars,charc){ if(s==c)return1; return0; }

 Function cek() mempunyai dua buah parameter formal, yaitu s dan c yang mempunyai tipe data yang sama, char. Function cek() merupakan function yang mengembalikan nilai sehingga dia harus mempunyai tipe data dimana tipe data-nya dalam hal ini adalah integer. Function cek() ini bertugas untuk memeriksa apakah variabel c sama dengan variabel s. Jika sama maka function cek() akan bernilai 1, sebaliknya jika tidak maka akan bernilai 0. Variabel s dan c ini merupakan variabel lokal yang hanya dapat digunakan dalam function cek() saja, tidak bisa digunakan oleh function atau program lain. Permasalahan yang sama untuk Java adalah sebagai berikut: 

classricek{ publicintcek(chars,charc){ if(s==c)return1; return0; } }

 Telah disebutkan sebelumnya bahwa sub rutin dalam Java berbentuk class dimana didalam class tersebut dimungkinkan untuk mempunyai satu atau lebih function method. Class ricek() ini dapat 

digunakan oleh class lain, dalam hal ini untuk mengecek suatu karakter karena class ricek() mempunyai function method cek(). Berikut ini adalah kode lengkap dari kedua program di atas . Perhatikan Program dalam bahasa C++ :

 #include<iostream> usingnamespacestd; intcek(chars,charc){ if(s==c)return1; return0; } intmain(void){ chara,b; a='a'; b='a'; cout<<cek(a,b)<<endl; return0; } 

 Keluaran program adalah : 1 Dari kode program C++ di atas terlihat bahwa function cek() dipanggil melalui argumen pada program utama (main()) dimana argumen tersebut mempunyai variabel masukan untuk function cek() yaitu variabel a dan b. Variabel a dan b ini kemudian disalin oleh parameter formal function cek() yaitu s dan c. Parameter formal ini kemudian diproses lebih lanjut yaitu pengecekan apakah parameter formal s sama dengan parameter formal c. Jika sama maka function cek() akan bernilai 1, sebaliknya jika tidak sama maka function cek() akan bernilai 0. Nilai dari function cek() ini kemudian langsung dicetak ke layar oleh program utama. Kode program untuk bahasa Java dari permasalahan yang sama adalah:  
class ricek{ publicintcek(chars,charc){ if(s==c)return1; return0; } } classricekApp{ publicstaticvoidmain String[]args){ ricekck=newricek(); chara='a',b='b'; System.out.println(ck.cek(a,b)); } }  

Keluaran program adalah : 0

Next read ON halaman 6.
Tutorial prosedur dan subroutin halaman 4

Tutorial prosedur dan subroutin halaman 4

Selamat datang di eagleboot dan selamat membaca.

PROSES2(R,A,V) output(V) 

 6.4. Sub Routin

 Suatu program komputer biasanya merupakan suatu sistem besar yang terdiri dari sub sistem - sub sistem yang mempunyai tugas sendiri-sendiri, saling bekerja sama dan berinteraksi untuk menyelesaikan suatu permasalahan. Dengan adanya pembagian tugas oleh sub sistem – sub sistem ini maka suatu permasalahan dapat diselesaikan dengan lebih cepat dan kesalahan-kesalahan yang mungkin terjadi selama proses penyelesaian masalah dapat dideteksi dan diketahui sedini mungkin, termasuk di sub sistem mana kesalahannya terjadi. Program komputer (terutama yang komplek) juga sebaiknya “dipecah-pecah” menjadi program- program kecil. Program-program kecil tersebut disebut dengan sub rutin. Sub rutin dibagi menjadi dua macam, yaitu  sub rutin yang mengembalikan nilai dan sub rutin yang tidak mengembalikan nilai. Dalam Pascal kedua sub rutin yang mengembalikan nilai disebut dengan function, sedangkan yang tidak mengembalikan nilai disebut dengan procedure. Tetapi untuk C++ dan Java, kedua sub rutin tersebut dijadikan satu tetapi dapat diatur untuk dapat mengembalikan nilai maupun tidak mengembalikan nilai. Untuk C++, sub rutin tersebut ada dalam suatu function, sedangkan pada Java, sub rutin berbentuk suatu method yang disebut dengan function method.    Gambar 6.1.SubRutin

 intmain(){ ……. fungsi_1(); ……. fungsi_2(); ……. return0; } intfungsi_1(){ ……. return0; } intfungsi_2(){ ……. return0; } 

Baik C++ maupun Java terdapat dua macam fungsi, yaitu user-defined function dan built-in function. User- defined function merupakan fungsi yang didefinisikan sendiri atau dibuat sendiri oleh pemrogram. Sedangkan built-in function adalah fungsi yang sudah ada atau sudah disediakan oleh kompiler dan siap digunakan oleh pemrogram.  

6.5. Sub Rutin dalam Bahasa Pemrograman

 Bentuk umum sub rutin (function) pada C++ dan Java sangat mirip. Untuk function yang mengembalikan nilai, setiap function harus didahului oleh tipe data yang sesuai dengan jenis data yang akan dikembalikan, kecuali tipe data array. Setiap function juga mempunyai daftar parameter dimana setiap parameter dipisahkan dengan tanda koma (,). Parameter-parameter ini digunakan untuk menerima data (nilai) dari program yang memanggilnya. Kita dapat mendeklarasikan banyak parameter atau tidak sama sekali. Untuk fungsi yang tidak mempunyai parameter merupakan fungsi yang nilainya tetap (tidak berubah). Sedangkan fungsi yang mempunyai parameter nilai fungsinya dinamis (dapat berubah-ubah). Parameter-parameter ini merupakan variabel-variabel yang harus dideklarasikan sendiri-sendiri meskipun tipe datanya sama.  Bentuk umum dari function yang mengembalikan nilai adalah sebagai berikut
 tipe_datanama_fungsi(daftar_parameter) { isidarifungsi return<ekspresi> } 
 Perhatikan contoh progam function yang benar
 intcontoh(inta,intb){ …….. return(c); }  
Sedangkan program yang menggunakan function salah adalah sebagai berikut: 
intcontoh(inta,b){ …….. return(c); } 
Setiap function mempunyai kode-kode program sendiri-sendiri karena tugas yang harus diselesaikan oleh setiap function juga 

Next read ON halaman 5.
Tutorial prosedur dan subroutin halaman 3

Tutorial prosedur dan subroutin halaman 3

Selamat datang di eagleboot dan selamat membaca.

tersebut. Jika nama yang dipakai di dalam prosedur tidak terdefinisi dalam list parameter formal atau dalam kamus lokal, maka nama tersebut harus sudah terdefinisi pada prosedur yang memakainya. Penulisan kamus lokal sama dengan kamus global, yang berbeda adalah lingkup berlakunya nama yang didefinisikan:  pada kamus "global", nama berlaku untuk program dan semua prosedur/fungsi yang didefinisikan.  pada kamus lokal, nama berlaku untuk prosedur/fungsi yang bersangkutan dan prosedur / fungsi yang didefinisikan di dalamnya.  nilai yang disimpan dalam nama yang didefinisikan pada kamus lokal, hanya akan terdefinisi selama eksekusi prosedur, dan tidak dikenal lagi oleh pemanggilnya. Program yang moduler adalah program yang dibagi-bagi menjadi modul-modul yang terdefinisi dengan baik dalam bentuk prosedur- prosedur. Setiap prosedur harus jelas definisi dan ruang lingkupnya, supaya dapat dipanggil secara independent. Pembagian program besar dalam prosedur-prosedur akan mempermudah pembagian kerja di antara beberapa pemrogram. Penulisan prosedur juga akan memudahkan program untuk dibaca oleh "manusia" karena kita tidak perlu terpaku pada detil kode prosedur untuk mengerti efek neto yang dihasilkannya.  Bahkan dalam beberapa hal, pemrogram tidak perlu tahu sama sekali "isi" atau kode dari prosedur dengan mengetahui spesifikasinya, beberapa bahasa pemrograman bahkan menyediakan prosedur terdefinisi yang sering dipakai dalam memrogram sehingga pemrogram tidak perlu lagi menuliskan kodenya. Prosedur berlaku untuk ruang lingkup (universe) tertentu, terutama untuk prosedur yang tidak mempunyai parameter. Dalam dua bab berikut, yaitu Mesin Gambar dan Mesin Karakter, akan diberikan gambaran lebih jelas dan lengkap tentang pendefinisian dan pemakaian prosedur karena keduanya adalah mesin abstrak yang tertentu.  
Contoh 1-Prosedur: VOLTAGE Tuliskanlah program yang membaca tahanan (Ohm) dan arus (Ampere), kemudian menghitung tegangan yang dihasilkan dan menuliskan hasilnya. Perhitungan tegangan harus dituliskan menjadi suatu prosedur bernama PROSES, supaya struktur program jelas: Input - Proses – Output. Input :R:integer,tahanan(Ohm)danA:integer,arus(Ampere) Proses:menghitungV=R*A Output:V:integer,tegangan(Volt)  Pelajarilah dua buah solusi yang diberikan berikut ini, dan berikan komentar anda. 
 Solusi 1 : Prosedur tanpa parameter  

Program VOLTAGE1 {Programyangmembacatahanandanarus,menghitungVoltagedan mencetakhasilperhitungan} Kamus: R:integer{tahanandalamohm} A:integer{arusdalamohm} V:integer{tegangandalamohm}  
procedure PROSES1 {Proseduruntuk"memproses"tahanandanarusmenjaditegangan} 
Algoritma: input(R,Α) PROSES1 output(V)  Procedure PROSES1 {I.S:diberikanhargaRdanAyangtelahterdefinisi} {FS:memprosesRdanAsehinggadihasilkanVyaitutegangandengan rumus :V=R*A} Kamuslokal:
 Algoritma: V←R*A Solusi 2 :
 Prosedur dengan parameter  Program VOLTAGE2
 {Programyangmembacatahanandanarus,menghitungVoltagedan mencetakhasilperhitungan} Kamus: R:integer{tahanandalamohm} A:integer{arusdalamohm} V:integer{tegangandalamohm}  Procedure PROSES2 (Input:R,A:integer;OutputV:integer) {Proseduruntuk"memproses"tahananRdanarusAmenjadi teganganV} Algoritma: input(R,Α

Next read ON halaman 4.
Tutorial prosedur dan subroutin halaman  2

Tutorial prosedur dan subroutin halaman 2

Selamat datang di eagleboot dan selamat membaca.

6.2. Parameter Prosedur

 Prosedur tanpa parameter memanfaatkan nilai dari nama-nama yang terdefinisi pada kamus global. Pemakaiannya biasanya harus “hati- hati”, apalagi jika teks program sudah sangat besar dan implementasinya menjadi banyak file. Prosedur berparameter dirancang, agar sepotong kode yang sama ketika eksekusi dilakukan, dapat dipakai untuk nama parameter yang bebeda- beda. Nama parameter yang dituliskan pada definisi/spesifikasi prosedur disebut sebagai parameter formal. Sedangkan parameter yang dituliskan pada pemanggilan prosedur disebut sebagai parameter aktual. Parameter formal adalah nama- nama variabel (list nama) yang dipakai dalam mendefinisikan prosedur, dan membuat prosedur tersebut dapat dieksekusi dengan nama-nama yang berbeda ketika dipanggil. Parameter formal adalah list nama yang akan dipakai pada prosedur, yang nantinya akan diasosiasikan terhadap nama variabel lain pada saat pemanggilan. Sesuai dengan ketentuan nilainya, ada tiga type parameter formal parameter Input, yaitu parameter yang diperlukan prosedur sebagai masukan untuk melakukan aksi yang efektif.  parameter Output, yaitu parameter yang nilainya akan dihasilkan oleh prosedur. Hasil nilai akan disimpan pada nama parameter Output ini. parameter Input/Output, yaitu parameter yang nilainya diperlukan prosedur sebagai masukan untuk melakukan aksi, dan pada akhir prosedur akan dihasilkan nilai yang baru. 

 6.3. Pemanggilan Prosedur

 Memakai, atau "memanggil" prosedur
 adalah menuliskan nama prosedur yang pernah didefinisikan, dan memberikan harga-harga yang dibutuhkan oleh prosedur itu untuk dapat melaksanakan suatu aksi terdefinisi. Sebuah prosedur juga boleh "memakai" atau memanggil prosedur. Pada saat pemanggilan terjadi “passing parameter”. Parameter aktual adalah nama- nama informasi yang dipakai ketika prosedur itu dipakai ("dipanggil"). Parameter aktual dapat berupa nama atau harga, tetapi harus berupa nama jika parameter tersebut adalah parameter Output (karena hasilnya akan disimpan dalam nama tersebut). Sesuai dengan jenis parameter formal, parameter aktual pada saat pemanggilan :  parameter input harus terdefinisi nilainya (karena dibutuhkan oleh prosedur untuk menghasilkan nilai). Karena yang dibutuhkan untuk eksekusi hanya nilai, maka parameter input dapat digantikan dengan suatu nilai tanpa menggunakan nama.  parameter output tidak perlu terdefinisi nilainya, tetapi justru setelah pemanggilan prosedur akan dimanfaatkan oleh deretan instruksi berikutnya, karena nilainya akan dihasilkan oleh prosedur. Karena parameter output menampung hasil, maka harus berupa nama, dan tidak boleh diberikan nilai saja.  parameter input/output harus terdefinisi nilainya dan nilai baru yang diperoleh karena eksekusi prosedur akan dimanfaatkan oleh deretan instruksi berikutnya. Seperti halnya parameter output, maka paramteter aktual harus berupa nama. Pada saat eksekusi, terjadi asosiasi nama parameter formal dengan nama parameter aktual. Pada notasi algoritmik, asosiasi dilakukan dengan cara “by position”. Urutan nama pada parameter aktual akan diasosiasikan sesuai dengan urutan parameter formal. Karena itu, type harus kompatibel. Beberapa bahasa pemrograman, dapat dilakukan asosiasi dengan nama dan memperbolehkan adanya nilai default. Beberapa bahasa pemrograman (Ada, C) juga memperbolehkan nama prosedur yang sama tetapi parameternya berbeda (overloading). Prosedur dapat mempunyai kamus lokal, yaitu pendefinisan nama yang dipakai dan hanya berlaku dalam ruang lingkup prosedur 

Next read ON halaman 3.
Tutorial prosedur dan subroutin

Tutorial prosedur dan subroutin

Selamat datang di eagleboot dan selamat membaca.

BAB 6 PROSEDUR DAN SUBROUTIN 

 6.1. Prosedur 6.2. Parameter Prosedur 
6.3. Pemanggilan Prosedur
 6.4. Sub Rutin 
6.5. Sub Rutin Dalam Bahasa Pemrograman
 6.6. Function yang Mengembalikan Nilai 
6.7. Function yang Tidak Mengembalikan Nilai
 6.8. Function Call Function
 6.9. Call by Value dan Call by References
 6.10. Parameter dengan Nilai Default 
6.11. Overloading 
6.12. Soal Latihan

6.1. Prosedur 

Prosedur adalah sederetan instruksi algoritmik yang diberi nama, dan akan menghasilkan efek neto yang terdefinisi. Prosedur menyatakan suatu aksi dalam konsep algoritma yang dibicarakan pada cerita “Mengupas kentang”.  Dimana contoh ini dari aksi yang dilakukan pleh Ibu Tati yang mengupas kentang untuk mempersiapkan makan malam sebagai berikut. Pernyataan ini mencakup hal yang luas ruang lingkupnya, misalnya :  Apakah kentangnya harus dibeli dulu atau sudah ada di dapur ?  Apakah yang dimaksud dengan mengupas kentang untuk makan malam berarti sampai dengan kentang terhidang ?  Ketika kentangnya terhidang, jadi sup, digoreng atau direbus saja ? Maka kita harus membatasi dengan jelas keadaan awal yang menjadi titik tolak mengupas kentang dan keadaan akhir yang ingin dicapai supaya dapat “merencanakan” efek neto yang diinginkan. Sehingga hal tersebut dapat ditentukan:  Initial state (I.S. keadaan awal), T0, adalah kentang sudah ada di kantong kentang, yang ditaruh di rak di dapur, di mana ibu Tati akan mengupasnya  Final state (F.S. keadaan akhir), T1, kentang dalan keadaan terkupas di panci, siap untuk dimasak dan kantong kentangnya harus dikembalikan ke rak lagi Pengandaian yang lain adalah bahwa persediaan kentang di ibu selalu cukup untuk makan malam. Penambahan kentang ke dapur di luar tinjauan masalah ini. Ini adalah contoh bagaimana kita menentukan batasan dari persoalan yang akan diprogram. Suatu kejadian dapat dipandang sebagai urut-urutan dari beberapa kejadian, berarti dapat diuraikan dalan beberapa (sub) aksi yang terjadi secara sekuensial. Dengan sudut pandang ini makan efek kumulatifnya sama dengan efek neto dari seluruh kejadian. Dikatakan bahwa kejadian tersebut dianggap sebagai sequential process atau disingkat proses. Mendefinisikan (membuat spesifikasi) prosedur berarti menentukan nama prosedur serta parameternya (jika ada), dan mendefinisikan keadaan awal (Initial State, I.S.) dan keadaan akhir (Final State, F.S.) dari prosedur tersebut. Prosedur didefinisikan (dituliskan spesifikasinya) dalam kamus. Cara penulisan spesifikasi : prosedur diberi nama, dan parameter formal (jika ada) yang juga diberi nama dan dijelaskan typenya. Secara sederhana, dapat diartikan bahwa sebuah prosedur yang terdefinisi “disimpan” di tempat lain, dan ketika “dipanggil” dengan menyebutkan namanya “seakan- akan” teks yang tersimpan di tempat lain itu menggantikan teks pemanggilan. Pada saat itu terjadi asosiasi parameter (jika ada). Dengan konsep ini, maka I.S dan F.S dari prosedurlah yang menjamin bahwa eksekusi program akan menghasilkan efek neto yang diharapkan. Jadi, setiap prosedur harus :  Didefinisikan (dibuat spesifikasinya) dan dituliskan kode programnya  Dipanggil, pada saat eksekusi oleh prosedur lain atau oleh program utama

Next read ON halaman 2.
Tutorial statement kendali halaman 19

Tutorial statement kendali halaman 19

Selamat datang di eagleboot dan selamat membaca.

dewasa, anggota anak, dan anggota orang senior.  Program ini menyajikan menu yang memungkinkan pengguna untuk memilih paket yang diinginkan, kemudian menghitung biaya keanggotaannya. Untuk lebih jelasnya perhatikan program dibawah ini:  Program 5.27

 #include<conio.h> #include<iostream> #include<iomanip> usingnamespacestd; intmain() { intchoice,months; doublecharges; //Displaymenupilihan cout<<"\t\tMenuAnggotaKlubKesehatan\n\n"; cout<<"1.KeanggotaaStandardDewasa\n"; cout<<"2.KeanggotaanAnak\n"; cout<<"3.KeanggotaanMasyarakatSenior\n"; cout<<"4.KeluarProgram\n\n"; cout<<"MasukanPilihanAnda:"; cin>>choice; cout<<fixed<<showpoint<<setprecision(2); if(choice==1) { cout<<"UntukberapaBulan?"; cin>>months; charges=months*40.00; cout<<"Totalpembayaranyaadalah:$"<<charges<<endl; } elseif(choice==2) { cout<<"UntukberapaBulan?"; cin>>months; charges=months*20.00; cout<<"Totalpembayaranyaadalah:$"<<charges<<endl; } elseif(choice==3  

{ cout<<"UntukberapaBulan?"; cin>>months; charges=months*30.00; cout<<"Totalpembayaranyaadalah:$"<<charges<<endl; } elseif(choice!=4) { cout<<"Pilihanyangvalidadalahantara1sampai4\n"; cout<<"Programakanmemilihlagidarisalahsatumenudiatas\n"; } getch(); return0; } 

 Keluaran program diatas seperti dibawah ini: MenuAnggotaKlubKesehatan
 1.KeanggotaaStandardDewasa 
2.KeanggotaanAnak
 3.KeanggotaanMasyarakatSenior 
4.KeluarProgram MasukanPilihanAnda:3 UntukberapaBulan?3 Totalpembayaranyaadalah:$90.00  Dalam program tersebut memungkinkan pengguna yang tidak valid dapat membuat pilihan. Jika angka lain seperti 1, 2, 3, atau 4 dimasukkan, maka akan ada pesan kesalahan yang dicetak. Kesalahan ini dikenal sebagai masukan validasi (input validation). 

 5.14. Soal Latihan Jawablah soal latihan dibawah ini dengan baik dan benar. 
1. Apa yang dimaksud dengan statement
 2. Sebutkan beberapa operator relasionaldalam bahasa c++
 3. Jelaskan cara kerja pernyataan if pada bahasa c++ 
4. Apa perbedaan antara pernyataan if dangan if-else
 5. Apa yang dimaksud dengan if-else majemuk 
6. Apa yang dimaksud dengan nested if
 7. Sebutkan beberapa operator logika 
8. Tuliskan perintah yang digunakan oleh pernyataan switch

Next read ON BAB 6. Prosedur dan subroutin.
Tutorial statement kendali halaman 18

Tutorial statement kendali halaman 18

Selamat datang di eagleboot dan selamat membaca.

else cout<<"error"; break;} } printf("Hasildariperhitungantersebutadalah%f",Hasil); getch(); return0; } 

 Keluaran program diatas adalah sebagai berikut: Operand1:1 Operand2:3 1.Operator+ 2.Operator‐ 3.Operator* 4.Operator/ PilihOperator:3 Hasildariperhitungantersebutadalah3.000000  Dari beberapa contoh program diatas, maka dapat diketahui bentuk bahasa umum mengenai pernyataan If–Else adalah sebagai berikut:  IfKondisiThen Perintahyangakandieksekusijikakondisibernilaitrue ELSE Perintahyangakandieksekusijikakondisibernilaifalse EndIf 

 5.12.  IF...THEN, IF...THEN...ELSE dan Nested IF Struktur IF

, kita dapat membuat algoritma-algoritma yang melakukan perintah berdasarkan kondisi tertentu. Perintah akan dilakukan jika hanya jika ekspresi boolean bernilai true (jika ekspresi boolean bernilai false maka perintah tidak akan dikerjakan).
 IF<ekspresiboolean>then Perintah_1 Else Perintah_2 Endif IF<ekspresiboolean1>then Perintah1 Elseif<ekspresiboolean2>then Perintah2 Elseif<ekspresibooleann>then Perintahn ElsePerintahn+1 Endif 
 Program statement kondisi IF- ELSE untuk mencari bilangan Genap dan Ganjil. Perhatikan contoh program dibawah ini:  Program 5.25
 #include<conio.h> #include<iostream> usingnamespacestd; main(){ intBil; cout<<"masukanbilangan:"; cin>>Bil; if(Bil%2==0) { cout<<"bilangangenap"; } else { cout<<"bilanganganjil"; } getch(); return0; }  

Keluaran program diatas adalah masukanbilangan:5 bilanganganjil  
Program dibawah ini digunakan untuk menghitung atau mencari bilangan terbesar.  Program 5.26 

#include<conio.h> #include<iostream usingnamespacestd; main(){ intA,B,C,maks; cout<<"A:"; cin>>A; cout<<"B:"; cin>>B; cout<<"C:"; cin>>C; if((A>B)&&(A>C)) maks=A; elseif((B>A)&&(B>C)) maks=B; else maks=C; cout<<"bilanganterbesaradalah"<<maks; getch(); return0; } 

 Keluaran program diatas adalah sebagai berikut: A:40 B:56 C:59 bilanganterbesaradalah59 

 5.13. Aplikasi Pernyataan IF pada Menu

  Menu adalah layar yang menampilkan beberapa pilihan sehingga pengguna dapat  memilih. Sebagai contoh pada sebuah program yang dapat  memberikan menu pilihan berikut ini:
 1. Menambahkan nama ke dalam daftar.  
2. Hapus nama dari daftar. 
 3. Mengubah nama dalam daftar. 
 4. Mencetak daftar. 
 5. Keluar dari program ini. Pengguna dapat memilih salah satu operasi dengan memasukkan nomor. Misalnya memasukan nomer  4, sehingga akan menyebabkan daftar dicetak, dan memasukkan 5 akan menyebabkan keluar program. struktur IF/ELSE IF dapat digunakan untuk membuat menu seperti diatas. Setelah pengguna memasukkan nomor, maka nomor akan digunakan untuk membandingkan pilihan yang tersedia dan melaksanakan sebuah pernyataan yang melakukan operasi. program dibawah digunakan untuk menghitung biaya keanggotaan disebuah klub kesehatan. Klub memiliki tiga paket keanggotaan pilihan: keanggotaan standar 

Next read ON halaman 19.
Tutorial statement kendali halaman 17

Tutorial statement kendali halaman 17

Selamat datang di eagleboot dan selamat membaca.

Program diatas juga bisa ditulis dengan program dibawah ini, dimana kelebihan program dibawah bisa membaca baik kode huruf kecil maupun huruf besar. Pada program diatas hanya bisa membaca kode huruf besar saja. Kedua-duanya sama-sama menggunakan switch- case. Jika dalam memasukan kodenya salam maka akan muncul pesan “Anda Salah Memasukan kode”. Untuk lebih jelasnya perhatikan program dibawah ini 
#include<stdio.h> #include<conio.h> #include<iostream.h> usingnamespacestd; main() { charkode; cout<<"MasukkanKodeBarang[A..C]:"; cin>>kode; switch(kode) { case'A': case'a': cout<<"AlatOlahRaga"; break; case'B': case'b': Cout<<"AlatElelktronik"; break; case'C': case'c': cout<<"AlatMasak"; break; default: cout<<"AndaSalahMemasukankode"; break; } getch(); return0; }  

Struktur kondisi switch....case.... default digunakan untuk penyeleksian kondisi dengan cukup banyak kemungkinan yang terjadi. Struktur ini akan melaksanakan salah satu dari beberapa pernyataan ‘case’ tergantung nilai kondisi yang ada di dalam switch. Selanjutnya proses diteruskan hingga ditemukan pernyataan ‘break’. Jika tidak ada nilai pada case yang sesuai dengan nilai kondisi, maka proses akan diteruskan kepada pernyataan yang ada di bawah ‘default’. Bentuk umum dari struktur kondisi ini adalah: 
switch(kondisi) { case1:pernyataan‐1; break; case2:pernyataan‐2; break; ..... ..... casen:pernyataan‐n; break; default:pernyataan‐m } 

 Pada program dibawah merupakan program dengan menggunakan switch, dimana program tersebut digunakan untuk menentukan jumlah hari. Perhatikan program dibawah ini:  Program 5.23

 #include<conio.h> #include<iostream> usingnamespacestd; intmain(){ intAngkaBulan,Tahun,JumlahHari; cout<<"AngkaBulan:"; cin>>AngkaBulan; cout<<"Tahun:"; cin>>Tahun; switch(AngkaBulan){ case1: case3: case5: case7: case8: case10: case12:JumlahHari=31;break; case4: case6: case9 

case11:JumlahHari=30;break; case2:if(Tahun%4==0)JumlahHari=29; elseJumlahHari=28;break; } cout<<"Jumlahhari"<<JumlahHari; getch(); return0; }  Keluaran program diatas adalah: AngkaBulan:4 Tahun:1990 Jumlahhari30  Program dibawah merupakan program yang digunakan untuk menentukan bilangan Genap atau Ganjil dengan case:  Program 5.24 #include<conio.h> #include<iostream> usingnamespacestd; main(){ intOp1,Op2,Pilih; floatHasil; cout<<"Operand1:"; cin>>Op1; cout<<"Operand2:"; cin>>Op2; cout<<"1.Operator+\n"; cout<<"2.Operator‐\n"; cout<<"3.Operator*\n"; cout<<"4.Operator/\n"; cout<<"PilihOperator:"; cin>>Pilih; switch(Pilih){ case1:{Hasil=Op1+Op2;break;} case2:{Hasil=Op1‐Op2;break;} case3:{Hasil=Op1*Op2;break;} case4:{if(Op2!=0) cout<<Op1/Op2 

Next read ON halaman 18.
Tutorial statement kendali halaman 16

Tutorial statement kendali halaman 16

Selamat datang di eagleboot dan selamat membaca.

5.11. Pernyataan SWITCH … CASE 

 Cara lain untuk menangani pengambilan keputusan dalam sebuah program adalah dengan menggunakan Statement switch…. case, yang mampu menangani sejumlah kondisi dari satu variabel. switch .... case serupa dengan If ... Then ..... ElseIf, tetapi lebih efisien apabila percabangan bergantung kepada satu kondisi saja. Dengan menggunakan switch .... case sebagai pengganti dari If ... Then ... Else If, akan membuat program menjadi lebih sederhana. Format penggunaan switch .... case:

 switchnama_variabel { casenilai_1:{ Perintahyangakandieksekusijikamemenuhinilai_1; break;} casenilai_2:{ Perintahyangakandieksekusijikamemenuhinilai_2; break;} default:{ Perintahyangakandieksekusijikatidakmemenuhisemua; exit(0);} } 
 Struktur Select Case dimulai dengan kata Select Case dan diakhiri dengan kata End Select. nama_variabel dapat diganti dengan variabel, properti, atau ekpresi lain yang akan dijadikan sebagai kondisi. Sedangkan nilai_1, nilai 2 dapat diganti dengan angka, string atau nilai lain yang berkaitandengan nama_variabel. Jika salah satu nilai sesuai dengan variabel, maka pernytaan di bawah kata case akan dijalankan dan Visual Basic akan melanjutkan mengeksekusi program setelah End. Anda dapat menggunakan kata case sebanyak mungkin dalam struktur select... case, dan anda juga dapat menyertakan lebih dari satu nilai pada kata case.  Jika anda menyertakan banyak nilai setelah case, pisahkan dengan tanda koma.
  SelectCaseintAge Case5:lblTitle.Caption="Kindergarten" Case6:lblTitle.Caption="1stGrade" 
Case7:lblTitle.Caption="2ndGrade" Case8:lblTitle.Caption="3rdGrade" Case9:lblTitle.Caption="4thGrade" Case10:lblTitle.Caption="5thGrade" Case11:lblTitle.Caption="6thGrade" CaseElse:lblTitle.Caption="Advanced" EndSelect 

 Bentuk dari SWITCH - CASE merupakan pernyataan yang dirancangan khusus untuk menangani pengambilan keputusan yang melibatkan sejumlah atau banyak alternatif penyelesaian. Pernyataan SWITCH - CASE ini memiliki kegunaan sama seperti IF – ELSE bertingkat, tetapi penggunaannya untuk memeriksa data yang bertipe karakter atau integer. Bentuk penulisan perintah ini sebagai berikut :

 switch(ekspresiintegerataukarakter) { casekonstanta‐1: …perintah; …perintah; break; casekonstanta‐2: …perintah; …perintah; break; …… …… default: …perintah; …perintah; }  
Setiap cabang akan dijalankan jika syarat nilai konstanta tersebut dipenuhi dan default akan dijalankan jika semua cabang diatasnya tidak terpenuhi. Pernyataan break menunjukan bahwa perintah siap keluar dari switch. Jika pernyataan ini tidak ada, maka program akan diteruskan kecabang – cabang yang lainnya. Perhatikan contoh program dibawah ini menggunakan Switch- Case, untuk menentukan alat yang dikehendaki, seperti alat olahraga, alat elektronik atau alat masak.  Program 5.21 
include<stdio.h> #include<conio.h> #include<iostream.h> usingnamespacestd; main() { charkode; cout<<"MasukkanKodeBarang[A..C]:"; cin>>kode; switch(kode) { case'A': cout<<"AlatOlahRaga"; break; case'B': cout<<"AlatElelktronik"; break; case'C': cout<<"AlatMasak"; break; default: cout<<"AndaSalahMemasukankode"; break; } getch(); } 

 Keluaran program diatas adalah: MasukkanKodeBarang[A..C]:B AlatElelktronik 

Next read ON halaman 17.
Tutorial statement kendali halaman 15

Tutorial statement kendali halaman 15

Selamat datang di eagleboot dan selamat membaca.

Nilai ekspresi kondisional a=x>100?0:1  Nilai akan ditetapkan baik 0 atau 1, tergantung apakah x lebih besar dari 100. Pernyataan tersebut  dapat dinyatakan dalam pernyataan IF/ELSE sebagai berikut 
if(x>100) a=0; else a=1;  Program dibawah dapat digunakan untuk membantu seorang konsultan untuk menghitung biaya. Konsultasn tersebut meminta bayaran $ 50,00 per jam, tetapi minimum selama lima jam, jika kurang dari 5 jam maka tidak akan dibayar. Operator kondisional digunakan dalam pernyataan tersebut untuk memastikan bahwa jumlahnya tidak kurang atau dibawah lima. Untuk lebih jelasnya perhatikan program dibawah ini  Program 5.19

 #include<conio.h> #include<iostream> #include<iomanip> usingnamespacestd; intmain() { constdoublePAY_RATE=50.0; doublehours,charges; cout<<"Berapajamandabekerja?"; cin>>hours; hours=hours<5?5:hours;//Conditionaloperator charges=PAY_RATE*hours; cout<<fixed<<showpoint<<setprecision(2); cout<<"Besargajiandaadalah$"<<charges<<endl; getch(); return0; } 

 Program Output with Example Input Shown in Bold Berapajamandabekerja?5 Besargajiandaadalah$250.00 

5.10. Statement SWITCH
   Statement SWITCH juga berfungsi sama dengan IF. Perintah SWITCH sama dengan perintah CASE OF dalam PASCAL. Dimana sintaksnya menggunakan: switch(variabel) { casevalue1:statement1; break; casevalue2:statement2; break; .. default:statement;/*optional*/ break; } 
 Perhatikan contoh program menggunakan statement switch adalah sebagai berikut:  Program 5.20

 #include<conio.h> #include<iostream> usingnamespacestd; voidmain() { intbil; cout<<"Masukkanbilangan:"; cin>>bil switch(bil) { case1:cout<<"Andamemasukkanbil.satu"; break; case2:cout<<"Andamemasukkanbil.dua"; break; case3:cout<<"Andamemasukkanbil.tiga"; break; default:cout<<"Andamemasukkanbilselain1,2,dan3"; break; } } 
Selanjutnya coba kalian hapus semua break program di atas dan kalian jalankan. Apa yang terjadi? Keanehan akan muncul. Mengapa ???????

Next read ON halaman 16.
Tutorial statement kendali halaman 14

Tutorial statement kendali halaman 14

Selamat datang di eagleboot dan selamat membaca.

5.8.3. Operator ! 

Operator ! akan melakukan operasi logika NOT. Dibutuhkan sebuah operand atau sebeliknya seperti benar atau salah. Dengan kata lain, jika ungkapan itu benar, maka operator ! akan membalik menjadi salah, dan jika ekspresi salah, maka akan dibalik menjadi benar. Dibawah ini adalah suatu pernyataan IF yang meggunakan operator !: if(!(suhu>100)) cout<<"andadibawahsuhu maksimum.\n";  pada potongan program diatas, ekspresi (suhu> 100) yang akan diuji benar atau salah. Maka operator ! akan diterapkan pada nilai. Jika ekspresi (suhu> 100) itu benar, maka operator ! akan membalik menjadi salah. Jika hal tersebut salah, maka operator ! akan kembali benar. Tabel dibawah merupakan table kebenaran operator ! .  
Tabel 5.8. operator !
 EKPRESI//HASILEKPRESI//LOGIKA
 !salahbenar1 !benarSalah0  Program dibawah sama dengan program sebelumnya, yaitu akan melakukan operasi dengan operator !. Pernyataan IF tersebut menggunakan operator ! untuk menentukan apakah pengguna tidak membuat rekening di bank yang setidaknya ada $ 35.000 atau belum mempunyai pekerjaan yang lebih dari lima tahun. Perhatikan program dibawah ini:  Program 5.18

 #include<iostream> usingnamespacestd; intmain() { doubleincome; intyears; cout<<"ApakahinimasukantahunanAnda?"; cin>>income; cout<<"berapabanyakandabekerjasetiaptahunnya"<<"Pekerjaananda? "; cin>>years; if(!(income>=35000||years>5))//menggunakanoperator 
{ cout<<"Andaakanmendapatkangajipalingtidak$35,000atau lebih\n"; cout<<"setelahbekerjalebihdarilimatahun.\n"; } else cout<<"KwalifikasiAnda.\n"; return0; } 
 Keluaran program diatas sama dengan program sebelumnya  

5.8.3. Variabel Boolean dan Operator !
   Fitur yang menarik dari variabel Boolean adalah nilainya dapat diuji. Misalnya moreData adalah sebuah variabel Boolean. Kemudian pengujiannya adalah:
 if(moreData==true) canbewrittensimplyas if(moreData) andthetest if(moreData==false) canbewrittensimplyas if(!moreData)  Program diatas biasanya diselesaikan dengan menggunakan operator !.  

5.9. Operator Kondisional 
 Operator kondisional merupakan operator kuat dan unik. Operator tersebut menyediakan sebuah metode sedernana yang mengekpresikan pernyataan IF/ELSE. Operator ini terdiri dari tanda tanya (?) dan titik dua (:). Untuk lebih jelasnya mengenai operator ini perhatikan ekpresi dibawah inI: ekspresi?ekspresi:ekspresi;  disini diberikan sebuah contoh pernyataan yang menggunakan operator kondisional x<0?y=10:z=20;  pernyataan diatas sering disebut dengan conditional expression dan terdiri dari tiga sub-expressions ang dipisahkan dengan menggunakan tanda Tanya dan symbol titik dua ( : ). Sebuah ekspresi diatas < 0, y = 10, dan z = 20 dapat diuraikan sebagai berikut 

Gambar 5.6 conditional expression  Sebuah Ekspresi kondisional yang diatas melakukan operasi yang sama seperti halnya pernyataan IF/ELSE. Perhatikan pernyataan dibawah ini: if(x<0) y=10; else z=20;  Bagian dari ekspresi kondisional sebelum tanda tanya adalah ekspresi yang akan diuji. Hal ini merupakan kalimat dalam kurung seperti pada sebuah pernyataan IF. Jika ekspresi benar, bagian dari pernyataan antara tanda tanya (?) dan titik dua  ( : ) akan dijalankan. Jika tidak, bagian setelah : yang dijalankan. Gambar dibawah ini menggambarkan aturan yang diakukan oleh tiga sub-ekspresi adalah sebagai berikut:  Ekspresipertama yangakandiuji Ekspresikeduayangakan dieksekusijikaekspresipertama benar Ekspresiketigayang akandieksekusijika ekspresipertamasalah X< 0 ? Y=10 : Z = 20  Gambar 5.7. aturan yang diakukan oleh tiga sub-ekspresi  Anda dapat meletakkan tanda kurung di sekitar sub-ekspresi, seperti contoh berikut ini: (x<0)?(y=10):(z=20);  Dalam menggunakan nilai ekspresi dalam bahasa C++ yang perlu diingat, bahwa pada bahasa C++ semua ekspresi memiliki nilai, dan hal ini termasuk ekspresi kondisional. Jika sub-ekspresi pertama benar, maka nilai dari ekspresi kondisional adalah nilai kedua sub-ekspresi tersebut. Sebaliknya Jika hal tersebut bukan berarti nilai sub-ekspresi yang ketiga. Berikut dibawah ini adalah contoh sebuah pernyataan yang menggunakan........

Next read ON H-15
Tutorial statement kendali halaman 13

Tutorial statement kendali halaman 13

Selamat datang di eagleboot dan selamat membaca.

Operator && dapat digunakan untuk mempermudah program- program lain yang akan menggunakan pernyataan NESTED IF. Program dibawah ini adalah versi Program sebelumnya yang kemudian ditulis ulang dengan operator logika. Perhatikan program dibawah ini:  Program 5.16

 #include<conio.h> #include<iostream> usingnamespacestd; intmain() { charpekerja,barululus; cout<<"Jawablahpertanyaandibawahini\n"; cout<<"denganjawabanYuntukYaatau"; cout<<"TuntukTidak\n"; cout<<"ApakahAndaBekerja?"; cin>>pekerja; cout<<"telahkanAndasekolah"; cout<<"dalamduatahunini?"; cin>>barululus; if(pekerja=='Y'&&barululus=='Y')//menggunakan&& {//logicaloperator cout<<"Kwalitasandaspesial"; cout<<"danandatertarik.\n"; } else { cout<<"andaharusbekerjadanmempunyai\n"; cout<<"lulusandarisekolahSMKdalam\n"; cout<<"waktupalinglama3tahun.\n"; } getch(); return0; }  Keluaran program diatas setelah diberi masukan adalah Jawablahpertanyaandibawahini denganjawabanYuntukYaatauTuntukTidak ApakahAndaBekerja?T telahkanAndasekolahdalamduatahunini?Y andaharusbekerjadanmempunyai lulusandarisekolahSMKdalam waktupalinglama3tahun. 

 5.8.2. Operator || 

 Operator || yang dikenal sebagai operator logika OR. Dua kalimat yang diperlukan sebagai operand akan membuat kalimat benar bila salah satu dari sub-kalimat yang benar. Berikut dibawah ini adalah contoh sebuah pernyataan IF yang menggunakan operator ||  if(suhu<20||suhu>100) cout << "suhu dalam level yang berbahaya."; Pernyataan cout akan dijalankan jika suhu kurang dari 20 ATAU suhu lebih besar dari 100. Jika salah satunya benar, maka seluruh ekspresi akan menghasilkan keluaran benar dan pernyataan cout akan dijalankan. Setelah cout dijalankan maka akan menghasilkan keluaran "suhu dalam level yang berbahaya". Table dibawah ini merupakan table kebenaran operator OR
  Table 5.7. Logika OR EKPRESINILAIKEBENARANLOGIKA
 Salah&&salahSalah0 Salah&&benarBenar1 Benar&&salahBenar1 Benar&&benarbenar1  Semua ekspresi pada operator OR akan menjadi salah jika semua dari sub-kalimat salah, tetapi akan benar jika salah satu sub-kalimatnya benar. Tidak peduli apakah salah satu sub-ekspresinya salah atau benar. Program dibawah ini akan melakukan tes untuk mengetahui orang yang memenuhi syarat untuk mendapatkan pinjaman. Program ini akan menentukan apakah pelanggan mempunyai gaji setidaknya $35,000 per tahun atau telah bekerja selama lebih dari lima tahun. Perhatikan program dibawah ini:  Program 5.17

 #include<conio.h> #include<iostream> usingnamespacestd; intmain() { doubleincome; intyears; cout<<"ApakahinimasukantahunanAnda?"; cin>>income; cout<<"berapabanyakandabekerjasetiaptahunnya" <<"Pekerjaanandasekarang?"; cin>>years; if(income>=35000||years>5)//Usesthe||logicaloperator cout<<"KwalifikasiAnda.\n"; else { cout<<"Andaakanmendapatkangajipalingtidak$35,000ataulebih\n"; cout<<"setelahbekerjalebihdarilimatahun.\n"; } getch(); return0; }  

Keluaran program diatas setelah diberi masukan adalah ApakahinimasukantahunanAnda?30000 berapabanyakandabekerjasetiaptahunnyaPekerjaanandasekarang?5 Andaakanmendapatkangajipalingtidak$35,000ataulebih setelahbekerjalebihdarilimatahun

Next read ON halaman 14.
Tutorial statement kendali halaman 12

Tutorial statement kendali halaman 12

Selamat datang di eagleboot dan selamat membaca.

Program 5.15
 #include<stdio.h> #include<conio.h> #include<iostream.h> usingnamespacestd; intmain() { floatpendptan,jasa=0,komisi=0,total=0; cout<<"PendapatanHariiniRp."; cin>>pendptan; if(pendptan>=0&&pendptan<=200000) { jasa=10000; komisi=0.1*pendptan; } else { if(pendptan<=500000) { jasa=20000; komisi=0.15*pendptan; } else { jasa=30000; komisi=0.2*pendptan; } } /*menghitungtotal*/ total=komisi+jasa; cout<<"UangJasaRp."<<jasa<<endl; cout<<"UangKomisiRp."<<komisi<<endl; cout<<"============================="<<endl; cout<<"HasilTotalRp."<<total<<endl; getch(); return0; } 

 Keluaran program diatas adalah: PendapatanHariiniRp.5600 UangJasaRp.10000 UangKomisiRp.560 ============================= HasilTotalRp.10560 

 5.8. Operator Logika 

Selain operator relasional, bahasa pemrograman umumnya mendukung tambahan operator  yaitu AND, OR, dan NOT. Operator And, Or, dan Not dikenal dengan nama operator logika. Dengan menggunakan operator ini dua atau lebih test perbandingan dapat dilakukan. Pada bagian sebelumnya telah ditulis sebuah program tes dengan dua kondisi pada pernyataan IF. Dalam bagian ini ditulis program yang menggunakan operator logis untuk menggabungkan dua atau lebih menjadi satu kalimat relasional. Tabel berikut merupakan daftar operator logika pada bahasa C++ 

Tabel 5.5. Operator Logika OPERATOR ARTI PENJELASAN &&ANDMenghubungkanduaekpresimenjadisatu.Keduaekpresi tersebutharusbenarsupayahasilnyabenar ||ORMenghubungkanduaekpresimenjadisatu.Hasilakan menjadibenarjikasalahsatuataukeduanyaadayang benar. !NOTOperatoryangmelakukankebalikandariekpresi.Jikaekpresi benarmakahasilsalahatausebaliknya. 

5.8.1. Operator && 

 Operator && yang dikenal sebagai operator logika. Dua kalimat diperlukan sebagai operands dan membuat kalimat benar, jika kedua sub-kalimatnya benar. Berikut dibawah ini adalah contoh program pernyataan IF yang menggunakan operator &&:
 if(suhu<20&&waktu>12) cout<<"suhutelahmencapailevelyangberbahaya"; 
 Perhatikan bahwa kedua kalimat yang diANDkan bersama adalah kalimat yang lengkap untuk mengevaluasi benar atau salah. Pertama suhu <20 dievaluasi untuk menghasilkan hasil benar atau salah. Kemudian menit> 12 dievaluasi untuk menghasilkan hasil benar atau salah. Kemudian kedua hasil tersebut diANDkan sehingga akan mendapatkan hasil akhir untuk seluruh ekspresi. Pernyataan cout hanya akan dijalankan jika suhu kurang dari 20 dan waktunya lebih besar daripada 12. Jika salah satu penghubung teresebut salah, seluruh ekspresi yang dihasilkan juga salah dan pernyataan cout tidak dijalankan.  Tabel dibawah meruapkan tabel kebenaran untuk operator &&. Kebenaran tabel berisi semua kemungkinan kombinasi nilai yang mungkin dimiliki oleh dua kalimat, Sebagaimana dalam tabel menunjukkan, kedua sub-ekspresi harus benar untuk operator && sehingga akan menghasilkan nilai yang benar pula 
Table 5.6. Logika AND
EKPRESI//NILAI//KEBENARAN LOGIKA Salah&&salahSalah0 Salah&&benarSalah0 Benar&&salahSalah0 Benar&&benarbenar1.

Next read ON halaman 13.
Tutorial statement kendali halaman 11

Tutorial statement kendali halaman 11

Selamat datang di eagleboot dan selamat membaca.

5.7. Pernyataan NESTED IF 

 Ketika sebuah pernyataan IF muncul didalam pernyataan IF lain, maka hal ini dikategorikan sebagai nested. Kenyataannya dalam struktur IF/ELSE adalah pernyataan nested if. Jika masing-masing setelah if pertama adalah nested di bagian lain IF sebelumnya. Karena nested if merupakan pernyataan if yang berada didalam pernyataan if yang lainnya, sehingga utuk lebih jelasnya bentuk penulisan pernyataan Nested if dapat ditulis seperti berikut dibawah ini:
 if(syarat) if(syarat) …perintah; else …perintah; else if(syarat) …perintah; else …perintah; 
 Sebagai contoh saja misalnya program dibawah digunakan untuk menentukan apakah pelanggan bank memenuhi syarat khusus untuk mendapatkan bunga pinjaman, dimana syarat khusus ini ditujukan untuk pelanggan orang-orang yang baru lulus dari sekolah dan bekerja. Program berikut ini mendemontasikan pernyataan nested if.  Program 5.13
 #include<conio.h #include<iostream> usingnamespacestd; intmain() { charpekerja,barululus; cout<<"Jawablahpertanyaandibawahini\n"; cout<<"denganjawabanYuntukYaatau"; cout<<"TuntukTidak\n"; cout<<"ApakahAndaBekerja?"; cin>>pekerja; cout<<"telahkanAndaselesaisekolah"; cout<<"dalamduatahunini?"; cin>>barululus; if(pekerja=='Y') { if(barululus=='Y') { cout<<"Kwalitasandakhusus"; cout<<"tertarik?\n"; } } getch(); return0; } 

 Keluaran program diatas setelah diberi masukan adalah: Jawablahpertanyaandibawahini denganjawabanYuntukYaatauTuntukTidak ApakahAndaBekerja?Y  
Karena pernyataan IF pertama kondisinya melaksanakan masalah kedua, baik variabel pekerja dan barululus harus diatur ke 'Y' supaya pesan mengenai pengguna dengan kualifikasi khusus dicetak sesuai dengan tingkat suku bunga. Jenis pernyataan nested if yang baik untuk pilihan yang kecil dengan mengkategorisasikan data. Satu- satunya cara untuk menjalankan program pernyataan IF yang kedua adalah dengan ekspresi kondisional yang pertama harus benar. Namun kadang ada fitur yang tidak dikehendaki atau sering dikenal sebagai kesalahan dalam sebuah program. Jika seorang pengguna memasukkan 'N' (atau karakter selain sebagai pekerja atau barululus, program tidak mencetak pesan yang memberitahukan bahwa mereka tidak memenuhi syarat.  Pernyataan lain yang dapat digunakan untuk mengatasi masalah ini digambarkan dalam program dibawah. Program dibawah ini merupakan sebuah pernyataan NESTED IF.  Program 5.14

 #include<conio.h> #include<iostream> usingnamespacestd; intmain() { charpekerja,barululus; cout<<"Jawablahpertanyaandibawahini\n"; cout<<"denganjawabanYuntukYaatau"; cout<<"TuntukTidak\n"; cout<<"ApakahAndaBekerja?"; cin>>pekerja; cout<<"telahkanAndaselesaisekolah"; cout<<"dalamduatahunini?"; cin>>barululus; if(pekerja=='Y') {//Nestedif if(barululus=='Y') { cout<<"Kwalitasandakhusus"; cout<<"Andatertarik\n"; } else { cout<<"AndaharusLulusdari"; cout<<"sekolahpalinglama2tahun\n"; cout<<"danberkwalitas.\n"; } } else { cout<<"Andaharusmenjadipekerjayangberkwalitas.\n"; } getch; return0; }  

Keluaran program diatas setelah diberi masukan adalah: Jawablahpertanyaandibawahini denganjawabanYuntukYaatauTuntukTidak ApakahAndaBekerja?Y telahkanAndaselesaisekolahdalamduatahunini?Y KwalitasandakhususAndatertarik 

contoh lainnya misalnya pada suatu perusahaan yang memberikan komisi kepada para selesman dengan ketentuan sebagai berikut:  Bila salesman dapat menjual barang hingga Rp. 20.000 ,- , akan diberikan uang jasa sebesar Rp. 10.000 ditambah dengan uang komisi Rp. 10% dari pendapatan yang diperoleh hari itu.  Bila salesman dapat menjual barang diatas Rp. 20.000 ,- , akan diberikan uang jasa sebesar Rp. 20.000 ditambah dengan uang komisi Rp. 15% dari pendapatan yang diperoleh hari itu.  Bila salesman dapat menjual barang diatas Rp. 50.000 ,- , akan diberikan uang jasa sebesar Rp. 30.000 ditambah dengan uang komisi Rp. 20% dari pendapatan yang diperoleh hari itu. Perhatikan contoh program dengan menggunakan pernyataan Nested- If dibawah:   

Next read ON halaman 12.
Tutorial statement kendali halaman 10

Tutorial statement kendali halaman 10

Selamat datang di eagleboot dan selamat membaca.

5.6. Pernyataan IF/ELSE Majemuk 

 Bentuk dari IF-ELSE bertingkat sebenarnya serupa dengan NESTED IF, keuntungan penggunaan IF-ELSE bertingkat dibanding dengan NESTED IF  adalah cara atau bentuk penulisan yang lebih sederhana. Untuk lebih jelasnya perhatikan bentuk penulisan program dibawah ini:

 if(syarat) { …perintah; …perintah; } elseif(syarat) { …perintah; …perintah; } else { …perintah; …perintah; }  

Untuk lebih jelasnya, perhatikan sebuah kasus di suatu perusahaan memberikan komisi kepada para selesman dengan ketentuan sebagai berikut:  Bila salesman dapat menjual barang hingga Rp. 200.000 ,- , akan diberikan uang jasa sebesar Rp. 10.000 ditambah dengan uang komisi Rp. 10% dari pendapatan yang diperoleh hari itu.  Bila salesman dapat menjual barang diatas Rp. 200.000 ,- , akan diberikan uang jasa sebesar Rp. 20.000 ditambah dengan uang komisi Rp. 15% dari pendapatan yang diperoleh hari itu.  Bila salesman dapat menjual barang diatas Rp. 500.000 ,- , akan diberikan uang jasa sebesar Rp. 30.000 ditambah dengan uang komisi Rp. 20% dari pendapatan yang diperoleh hari itu. Kasus yang ada di perusahaan tersebut dapat diatasi dengan menggunakan program IF-Else-IF, dimana programnya adalah sebagai berikut:    Program 5.12

 #include<stdio.h> #include<conio.h> #include<iostream.h> usingnamespacestd; intmain() { floatpendptan,jasa=0,komisi=0,total=0; cout<<"PendapatanHariiniRp."; cin>>pendptan; if(pendptan>=0&&pendptan<=200000) { jasa=10000; komisi=0.1*pendptan; } elseif(pendptan<=500000) { jasa=20000; komisi=0.15*pendptan; } else { jasa=30000; komisi=0.2*pendptan; } /*menghitungtotal*/ total=komisi+jasa; cout<<"UangJasaRp."<<jasa<<endl; cout<<"UangKomisiRp."<<komisi<<endl; cout<<"============================="<<endl; 
cout<<"HasilTotalRp."<<total<<endl; getch(); return0; } 

 Keluaran program diatas adalah sebagai berikut: PendapatanHariiniRp.10000 UangJasaRp.10000 UangKomisiRp.1000 ============================= HasilTotalRp.11000

Next read ON halaman 11.
Tutorial statement kendali halaman 9

Tutorial statement kendali halaman 9

Selamat datang di eagleboot dan selamat membaca.

Pernyataan IF/ELSE mempunyai sejumlag karakterisitik khusus. Perhatikan dan analisis kerja dari ekprsesi relasional pengujian sebuah testscore < 60 dibawah ini:
 if(testScore<60) nilai='F'; 
 Jika testScore kurang dari 60, huruf 'F' dimasukan ke nilai dan sisanya dari pernyataan yang terkait dengan IF diabaikan. Jika TestScore tidak kurang dari 60, maka tugsa akan diambil alih oleh bagian lain pernyataan IF berikutnya yang akan dijalankan.

 elseif(testScore<70) nilai='D';

  Pertama jika seluruh pernyataan disaring untuk memilih nilai kurang dari 60, sehingga saat ini berikutnya pernyataan IF memilih, variabel testScore akan memiliki nilai 60 atau lebih besar. Jika "testScore" kurang dari 70, huruf 'D' dimasukan ke nilai dan sisanya dari Pernyataan IF/ELSE IF ini diabaikan. lingkaran peristiwa ini terus berlangsung sampai salah satu ekspresi kondisional ditemukan benar atau akhir pernyataan yang dihadapi. Dalam kedua kasus, program ini dilanjutkan kembali pada pernyataan yang mengikutinya.  Pernyataan IF/ELSE IF, merupakan pernyataan untuk mencetak kondisi yang berhasil. Gambar dibawah menunjukkan jalan yang dapat diambil melalui pernyataan IF/ELSE IF pernyataan IF pada setiap struktur bergantung pada semua pernyataan IF sebelumnya yang salah.  Pernyataan ELSE IF berikutnya dijalankan apabila ekspresi kondisional mengikuti ELSE IF itu benar dan semua ekspresi kondisional sebelumnya adalah salah. Untuk mendemonstrasikan bagaimana bekerjanya, perhatikan program dibawah, yang menggunakan pernyataan IF yang independen bukan sebuah pernyataan IF/ELSE. Program   tersebut digunakan untuk mengilustrasikan kesalahan yang terjadi ketika pernyataan IF/ELSE yang digunakan untuk menentukan nilai huruf ke nilai angka. Perhatikan program dibawah ini:  Program 5.10

 #include<conio.h> #include<iostream> usingnamespacestd; intmain() { intskortest; charnilai; cout<<"MasukanNilaiAngkamakasayaakanmengujinya\n"; cout<<"NilaiKonversihurufadalah:"; cin>>skortest; if(skortest<60) nilai='F'; if(skortest<70) nilai='D'; if(skortest<80) nilai='C'; if(skortest<90) nilai='B'; if(skortest<=100) nilai='A'; cout<<"NilaiAndaAdalah"<<nilai<<".\n"; getch(); return0; } 

 Keluaran program setelah dilakukan pengisian data pada masukan adalah: MasukanNilaiAngkamakasayaakanmengujinya NilaiKonversihurufadalah:40[Enter] NilaiAndaAdalahA.  Pada program dibawah, semua pernyataan IF dijalankan karena hal tersebut merupakan pernyataan yang berdiri sendiri. Pada contoh keluaran, testScore diberikan nilai 40, namun ada siswa yang menerima A. Berikutnya  apa yang terjadi ?. Karena skor siswa kurang dari 60

yang pertama pernyataan IF akan  menyebabkan nilai 'F' memasukannya ke variabel grade. Namun, karena pernyataan berikutnya jika tidak tersambung ke pernyataan pertama, maka hal tersebut akan dieksekusi dengan baik. ketika testScore kurang dari 70, dan menyebabkan nilai 'D' ditugaskan ke grade, dan mengganti 'F' yang sebelumnya disimpan di sana. Ini terus sampai semua jika ada pernyataan dijalankan. Yang terakhir akan menyebabkan 'A' akan ditugaskan untuk "grade".  Pada program dibawah menggunakan pernyataan if/else if  untuk melaksanakan konversi nilai hurif (A, B, C, D, or F) menjadi nilai angka. Perhatikan program dibawah ini:  Program 5.11
 #include<conio.h> #include<iostream> usingnamespacestd; intmain() { inttestScore; chargrade; boolgoodScore=true; cout<<"MasukanNilaiAngkamakasayaakanmengujinya\n"; cout<<"NilaiKonversihurufadalah:"; cin>>testScore; if(testScore<60) grade='F'; elseif(testScore<70) grade='D'; elseif(testScore<80) grade='C'; elseif(testScore<90) grade='B'; elseif(testScore<=100) grade='A'; else goodScore=false; if(goodScore) cout<<"GradeAndaAdalah"<<grade<<".\n"; else { 
cout<<testScore<<"Adalahskorandayangtidaksah.\n"; cout<<"Silakanmasukanskordibawah100.\n"; } getch(); return0; }  

Keluaran program ddiatas setelah memasukan data adalah sebagai berikut:
 MasukanNilaiAngkamakasayaakanmengujinya NilaiKonversihurufadalah:110 110Adalahskorandayangtidaksah. Silakanmasukanskordibawah100

Next read ON halaman10.

Tutorial statement kendali halaman 8

Tutorial statement kendali halaman 8

Selamat datang di eagleboot dan selamat membaca.

Program dibawah ini digunakan untuk menentukan sebuah operasi pembagian yang menggunakan IF/ELSE , jika suatu bilangan dibagi dengan nol maka program akan memberitahukan bahwa program tidak bisa melakukan operasi .
Program 5.8
 #include<conio.h> #include<iostream> usingnamespacestd; intmain() { doublenum1,num2,quotient; cout<<"MasukanAngka:"; cin>>num1; cout<<"MasukanAngkaLain:"; cin>>num2; if(num2==0) { cout<<"Pembagianoleh0tidakmungkindilakukan.\n"; cout<<"silakanmasukanangkalagi,"; cout<<"Angkalainyanglebihbesardaripada0.\n"; } else { quotient=num1/num2; cout<<"Thequotientof"<<num1<<"dividedby"; cout<<num2<<"is"<<quotient<<".\n"; } getch(); return0; } 

 Keluaran program setelh diberi masukan adalah sebagai berikut: MasukanAngka:10[Enter] MasukanAngkaLain:0[Enter] Pembagianoleh0tidakmungkindilakukan. silakanmasukanangkalagi,Angkalainyanglebihbesardaripada0  

5.5.  Pernyataan IF/ELSE IF

 Pernyataan IF/ELSE IF merupakan sebuah pernyataan dimana programmer dapat membuat beberapa keputusan dengan menggunakan aturan yang berbeda tetapi ada kaitannya dengan pernyataan sebelumnya. Misalnya, programmer akan menentukan jenis mantel atau jaket yang dipakai dalam konsultasi sehingga aturanya adalah sebagai berikut: ifsangatdingin,pakailahmantelyangtebal, else,jikadingin,memakaijaketyangtipis, else,jikaberangin,memakaibajuhem, else,jikapanas,tidakperlumemakaijaket.  Tujuan aturan tersebut adalah untuk menentukan jenis pakaian luar yang akan dipakai. Jika sangat dingin, pertama menharuskan menggunakan aturan yang memakai mantel tebal. Semua peraturan lainnya kemudian dapat diabaikan. Jika aturan pertama tidak berlaku, dan jika tidak dingin sekali, maka aturan kedua digunakan. Jika aturan tidak berlaku, aturan yang ketiga digunakan, dan seterusnya. Suatu cara yang digunakan untuk menhubungkan peraturan tersebut sangat penting. Jika mereka hanya berdiri sendiri, dimungkinkan akan keluar rumah dengan memakai jaket yang salah, atau mungkin, lebih dari satu jaket. Misalnya, jika berangin, maka aturannya harus berpakaian baju hem. Bagaimana jika ada keduanya yaitu sangat dingin dan berangin? Apakah akan memakai sebuah baju hem?. Karena aturan harus dipatuhi, pertama akan menentukan aturan memakai mantel tebal dan memakai  baju hem karena berangin. Jenis pengambilan keputusan juga sangat umum dalam pemrograman. Dalam bahasa C++ hal tersebut dicapai melalui pernyataan IF/ELSE IF. Gambar dibawah menunjukan format cara kerjanya

 Dari gambar diatas dapat diuraikan dalam pernyataan umum IF/ELSE IF adalah sebagai berikut: 
if(kondisi1) { Pernyataan1; } elseif(kondisi2) { Pernyataan2; } . . elseif(kondisin) { Pernyataann; }
Susunan ternyataan tersebut seperti halnya sebuah pernyataan berbentuk rantai IF/ELSE. Pada bagian ELSE sebuah pernyataan akan terkait dengan IF dari bagian yang lain. Ketika digabungkan cara ini, maka IF/ELSE dari rantai akan menjadi sebuah pernyataan. Program dibawah menunjukkan contoh, dimana Pengguna diminta untuk memasukkan angka skor tes dan program menampilkan huruf yang besar. Program dibawah ini menggunakan pernyataan IF/ELSE yang digunakan untuk operasi file huruf kapital.  Program 5.9
 #include<conio.h> #include<iostream> usingnamespacestd; intmain() { inttestScore; chargrade; cout<<"MasukanNilaiAngkamakasayaakanmengujinya\n"; cout<<"NilaiKonversihurufadalah:"; cin>>testScore; if(testScore<60) grade='F'; elseif(testScore<70) grade='D'; elseif(testScore<80) grade='C'; elseif(testScore<90) grade='B'; elseif(testScore<=100) grade='A'; cout<<"GradeAndaAdalah"<<grade<<".\n"; getch(); return0; }  

Keluaran program setelah memasukan data adalah sebagai berikut: MasukanNilaiAngkamakasayaakanmengujinya NilaiKonversihurufadalah:90
Grade Anda Adalah A

Next read ON halaman 9.
Tutorial statement kendali halaman 7

Tutorial statement kendali halaman 7

Selamat datang di eagleboot dan selamat membaca.

5.4. Pernyataan IF/ELSE

 Pernyataan IF/ELSE merupakan sebuah pengembangan pernyataan IF. Secara umum bentuk pernyataan ini juka digambarkan dalam bentuk flowchart sebagai berikut 
Jika diuraikan dalam bentuk kalimat,  gambar diatas dapat ditulis menjadi sebuah pernyataan seperti dibawah ini: 
 if(kondisi) { Pernyataan1 } else { Pernyataan2 }
  Seperti pada pernyataan IF diatas, sebuah kondisi akan dilihat terlebih dahulu. Jika kondisi adalah benar, maka sebuah blok yang berisi satu atau lebih pernyataan akan dijalankan. Jika ekspresi adalah salah, maka pernyataan grup berbeda yang akan dijalankan. Program dibawah merupakan contoh penggunaan pernyataan bersama operator modulus untuk menentukan apakah angka yang dihasilkan ganjil atau genap.  Program 5.6 
#include<conio.h> #include<iostream> usingnamespacestd; int main;
{ intnumber; cout<<"masukanbilanganbulatdansayaakanmemilahnyadenganIF\n"; cout<<"adalahganjilataugenap."; cin>>number; if(number%2==0) cout<<number<<"adalahgenap.\n"; else cout<<number<<"adalahganjil.\n"; getch(); return0; } 

 Keluaran program adalah sebagai berikut: masukanbilanganbulatdansayaakanmemilahnyadenganIF adalahganjilataugenap.17[Enter] 
17adalahganjil  Bagian lain diakhir pernyataan IF akan menentukan pernyataan yang akan dijalankan ketika kondisi yang ada tidak sesuai atau salah. Bila angka 2% tidak sama 0, pesan yang dicetak menunjukkan angka ganjil. Perlu diketahui bahwa program ini hanya akan mengambil salah satu dari dua jalur pernyataan IF/ELSE.. Jika Anda berpikir tentang pernyataan dalam program komputer, langkah-langkah yang diambil berdasarkan pertimbangkan pernyataan IF/ELSE sebagai penentu jalan. Bahkan kadang terjadi jalanya program memutar, seperti halnya pada sebuah pernyataan IF, sedangkan pada pernyataan IF/ELSE menyebabkan pelaksanaan program mengikuti salah satu dari dua jalur yang tersedia. Perhatikan gaya pemrograman yang digunakan untuk membangun pernyataan IF/ELSE. Atau dengan kata lain adalah pada tingkat yang sama seperti halnya perbedaan. Pernyataan eksekusi yang dikendalikan oleh orang lain kadang berbeda satu tingkat.  Seperti halnya pada pernyataan IF, jika tidak menggunakan kotak sebagai  bagian kontrol sebuah pernyataan. Program diatas menggambarkan hal tersebut ini. Ia juga memperlihatkan salah satu cara untuk menangani sebuah masalah pemrograman yaitu pembagian oleh nol. Pembagian dengan nol sangat mustahil untuk dilakukan secara matematis dan biasanya menyebabkan program crash. Hal Ini berarti program akan terhenti sebelum waktunya, kadang-kadang akan muncul dengan pesan kesalahan. Program diatas menunjukkan salah satu cara untuk menguji nilai dari pembagi sebelum dilakukan pembagian. Nilai num2 akan diuji sebelum pembagian dilakukan. Jika pengguna memasukkan angka 0, maka baris dikontrol oleh bagian IF ketika program dijalankan, menampilkan 
pesan yang menunjukkan program tidak dapat melakukan pembagian nol. Jika tidak, bagian lain mengambil kontrol, dan kemudian membagi num1 oleh num2 serta menampilkan hasilnya. Salah satu aplikasi penggunaan IF/ELSE misalnya digunakan pada suatu permasalahan untuk menentukan besarnya potongan dari pembelian barang yang diberikan seorang pembeli, dengan kriteria sebagai berikut:  jika total pembelian kurang dari Rp. 50.000,- potongan yang diterima sebesar 5% dari total pembelian.  Jika total pembelian lebih dari atau sama dengan Rp. 50.000,- potongan yang diterima sebesar 20% dari total pembelian. Untuk lebih jelasnya perhatikan contoh program IF/ELSE dibawah ini:  Program 5.7
 #include<stdio.h> #include<conio.h> #include<iostream> usingnamespacestd; main() { doubletot_beli,potongan=0,jum_bayar=0; cout<<"TotalPembelianRp."; cin>>tot_beli; if(tot_beli>=50000) potongan=0.2*tot_beli; else potongan=0.05*tot_beli; cout<<"BesarnyaPotonganRp."<<potongan<<endl; jum_bayar=tot_beli‐potongan; cout<<"JumlahyangharusdibayarkanRp.",jum_bayar; getch(); return0; } 

Next read ON halaman 8.
Tutorial statement kendali halaman 6

Tutorial statement kendali halaman 6

Selamat datang di eagleboot dan selamat membaca.

Untuk menyatakan kondisi atau syarat, akan dicek pada IF, Anda dapat menggunakan operator logika dan operator relasional seperti yang telah dijelaskan sebelumnya. Perhatikan contoh penulisan program dibawah ini: if((a>=2)&&(b==3)) { …. }  Jangan dituliskan seperti ini: if(a>=2)&&(b==3) { …. }  Dan juga tidak boleh seperti ini: if((a>=2)&&(b=3)) { …. } 

 Perintah b = 3 merupakan assignment bukan relasional. C++ selalu memperlakukan nilai tidak sama dengan nol sebagai TRUE atau benar dan nilai nol sama dengan FALSE atau nilai salah. Oleh karena itu, dua perintah dibawah ini adalah identik. Perhatikan potongan program dibawah ini:
 if(bil%2!=0) cout<<“Bilanganganjil”; if(bil%2) cout<<“Bilanganganjil”  Selain itu, IF juga dapat berbentuk seperti program dibawah ini: if(kondisi1) statement1; elseif(kondisi2) statement2; elseif(kondisi3) statement3; . . elsestatement; 
 IF dapat juga menggunakan operator pembanding (comparison operators) untuk mengeksekusi suatu pilihan dari 2 pilihan yang ada, tergantung hasil pembandingannya. Penulisan Instruksi atau sintaknya adalah sebagai berikut: 
 if(Kondisi) { Perintahyangakandieksekusijikakondisibernilaitrue } else { Perintahyangakandieksekusijikakondisibernilaifalse } 
 Kondisi menunjukkan berbagai tipe statement atau fungsi yang menghasilkan nilai benar atau salah. Berikut ini diberikan contoh kondisi yang berupa perbandingan antara variabel dengan nilai, variabel lain atau fungsi. Perhatikan potongan program dibawah ini:
 if(x>5) { y=10; } if(x>y) { y=x; } if(x>val(angka)) { y=20; } 
 Suatu ketika akan ditemui pula penggunaan instruksi IF .. THEN statements, dimana isntruksi ini digunakan untuk mengevaluasi lebih dari satu kondisi. Untuk itu digunakan tambahan blok IF..THEN..ELSE IF statements. Perhatikan contoh program dibawah ini:
 if(x<5) cout<<“Nilaixkurangdari5”; else if(x<10) cout<<“NilaiXantara5dan9”; else cout<<“Nilaixlebihdari9”; 

 Jika suatu kondisi tergantung pada kondisi lain yang sudah bernilai true (seperti  if hari = senin dan if  jam = 6.30 ) maka harus digunakan percabangan bersarang (nested If statements). Perhatikan contoh berikut ini
 if(hari=senin) { if(jam=6.30) { … } }  
Untuk lebih jelasnya mengenai pernyataan IF, perhatikan sebuah kasus yang digunakan untuk menentukan besarnya potongan dari pembelian barang yang diberikan seorang pembeli, dimana kasus tersebut mempunyai kriteria sebagai berikut:  Tidak ada potongan jika total pembelian kurang Rp. 50.000,-  Jika total pembelian lebih dari atau sama dengan Rp. 50.000,- potongan yang diterima sebesar 20% dari total pembelian. Perhatikan Program yang menggunakan pernyataan IF.  Program 5.5

 #include<stdio.h> #include<conio.h> #include<iostream> usingnamespacestd; main() { doubletot_beli,potongan=0,jum_bayar=0; cout<<"TotalPembelianRp."; cin>>tot_beli; if(tot_beli>=50000) potongan=0.2*tot_beli; cout<<"BesarnyaPotonganRp."; jum_bayar=tot_beli‐potongan; cout<<"JumlahyangharusdibayarkanRp.",jum_bayar; getch(); return0; } 

Next read ON halaman 7.