Sebelumnya bahasa dan algoritma pemrograman halaman 18
Bagilah m dengan n, misalnya hasilnya adalah r. 3) Apabila r = 0, maka hasilnya adalah n itu sendiri (merupakan FPB dari m dan n). 4) Jika r 0maka proses pencarian dilanjutkan yaitu ganti m dengan n dan n dengan r dan ulangi langkah ke-2, demikian selanjutnya. Misalnya akan dicari FPB dari 36 dan 20, maka penyelesaiannya menurut algoritma Euclid adalah : 1. n m = 20 36 mempunyai sisa r = 16 2. r = 16 r 0 3. m = 20 dan n = 16 4. n m = 16 20 mempunyai sisa r = 4 5. r = 4 r 0 6. m =16 dan n = 4 7. 4 16 n m mempunyai sisa r = 0 Jadi FPB( 36, 20) = 4
Algoritma Euclid di atas merupakan algoritma dengan uraian kalimat deskriptif. Algoritma tersebut dapat ditulis kembali sebagai berikut: a) Menggunakan uraian kalimat deskriptif 1) Masukkanmdann. 2) Selamam<nulangikembalilangkahpertama. 3) rm%n 4) Jikar=0makafpbn.Jikatidakkerjakanlangkahke‐5. 5) Selamar!=0kerjakanlangkahke‐6sampaike‐8. 6) mndannr 7) rm%n 8) fpbn 9) Tulisfpb. c) Menggunakan pseudo code {algoritmainidigunakanuntukmencarifaktorpersekutuanbesardaridua buahbilanganyangdimasukkan} deklarasi m,n,r,fpb :integer deskripsi doread(m,n) while(m<n) enddowhile rm%n if(r==0)fpbn else while(r!=0) mn nr rm%n fpbn endwhile endif write(fpb) Langkah ke-2 pada algoritma dengan uraian kalimat deskriptif mempunyai kata kunci SELAMA yang mengidentifikasikan bahwa dalam penerjemahannya ke dalam source code bahasa pemrograman nanti menggunakan klausa untuk perulangan. Akan tetapi kita tidak dapat menggunakan klausa while() seperti pada contoh sebelumnya karena pada kasus ini langkah tersebut memerintahkan untuk kembali ke langkah sebelumnya jika kondisi yang diberikan terpenuhi.
Oleh karena itu klausa yang paling tepat digunakan adalah do while(). Sedangkan langkah ke-5 kita gunakan klausa while() karena langkah ke-5 memerintahkan kita untuk melakukan langkah-langkah berikutnya, bukan kembali ke langkah sebelumnya. Kita tidak bisa menggunakan klausa for() karena, sesuai dengan penjelasan pada contoh sebelumnya, kita tidak bisa mengetahui dengan pasti berapa banyak perulangan yang terjadi. Dengan demikian dapat kita simpulkan bahwa jika setelah proses pemeriksaan keadaan memerintahkan kita untuk melakukan langkah-langkah berikutnya maka kita menggunakan klausa while(). Sebaliknya jika setelah proses pemeriksaan keadaan memerintahkan kita untuk kembali lagi melakukan langkah- langkah sebelumnya maka kita menggunakan klausa do while(). Untuk algoritma dengan flow chart, proses perulangan yang menggunakan klausa do while() dapat diidentifikasi dari simbol percabangan dimana kalau jalurnya, dalam hal ini jalur yang berlabel TIDAK, kita telusuri akan terhubung ke simbol sebelumnya dan kemudian kembali lagi simbol percabangan semula. Sedangkan untuk algoritma dengan pseudo code, penerjemahan tidak akan mengalami kesulitan karena, sekali lagi, struktur dari pseudo code sangat mirip dengan penulisan source code bahasa pemrograman. Dengan demikian penerjemahan algoritma ke dalam bahasa C++ adalah (perhatikan baris ke-5 sampai dengan baris ke-10 dan baris ke- 14 sampai dengan baris ke-19) 1. #include<iostream> 2. usingnamespacestd; 3. intmain(){ 4. intm,n,r,fpb; 5. do{ 6. cout<<"Masukkanbilanganpertama="; 7. cin>>m; 8. cout<<"Masukkanbilangankedua="; 9. cin>>n; 10. }while(m<n); 11. r=m%n; 12. if(r==0)fpb=n; 13. else{ 14. while(r!=0){ 15. m=n; 16. n=r; 17. r=m%n.
Next read at bahasa dan algoritma pemrograman halaman 20