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.