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.