Teknik Rekursif Aldo

download Teknik Rekursif Aldo

of 6

description

s

Transcript of Teknik Rekursif Aldo

Laporan Praktikum

December 9, 2015Laporan Praktikum

Laporan PraktikumBahasa PemrogramanM. RINALDO PRATAMA15107024Teknik InformatikaFAKULTAS TELEMATIKAUNIVERSITAS TRILOGI2015

Teknik Rekursif

Latihan 1Buatlah fungsi rekursif untuk perkalian dua buah bilangan yang diinputkan oleh pengguna!program lat_1;uses crt;var a,b:integer;function perkalian(a,b:integer):integer;beginif (c>=0) and (d>=0) then perkalian:=c*d elseperkalian:=perkalian(a,b);end;begin clrscr;writeln('Masukkan nilai c');readln(c);writeln('Masukkan niali d');readln(d);writeln('Hasil dari c*d=',perkalian(c,d));readln;end.

PenjelasanPada penjelasan kali ini saya akan menjelaskan suatu program dengan menggunakan fungsi rekursif untuk perkalian dua buah bilangan yang diinputkan oleh pengguna. Rekursif itu sendiri artinya sub program yang memanggil dirinya sendiri selama kondisi pemanggilan terpenuhi. Pada teknik rekursif setidaknya kita harus memiliki 1 nilai awal. Kondisi awal tersebut adalah if (c>=0) and (d>=0)jika nilai c dan d lebih dari 0 maka program akan langsung memasukan kedalam rumus c*d. Setelah hasilnya diketahui program akan menampilkan hasilnya karena tertulis perintah writeln('Hasil dari c*d=',perkalian(c,d)). Disini pengguna cukup memasukan nilai c dan nilai d, nilai c dilambangkan dengan var c dan nilai d dengan var d. var c dan d menggunakan tipe data integer. Setelah memasukan kedua nilai tersebut program akan menghitung hasilnya.

Latihan 2Buatlah program rekursif untuk mencetak angka bilangan positif secara decrement (hitung mundur) untuk nilai berdasarkan inputan penggunaJika pengguna memasukkan 5 maka akan muncul : 5,4,3,2,1Jika pengguna memasukkan 8 maka akan muncul : 8,7,6,5,4,3,2,1program lat_2;uses crt;var c:integer;procedure hitung(z:integer);beginif z>0 thenbeginwrite(z,' ');hitung(z-1);end;end;begin clrscr;writeln('Masukan angka');readln(c);hitung(c);readln;end.

PenjelasanPada penjelasan kali ini saya akan menjelaskan suatu program dengan menggunakan teknik rekursif untuk mencetakan angka secara hitungan mundur sesuai dengan yang diinputkan oleh pengguna. Rekursif itu sendiri artinya sub program yang memanggil dirinya sendiri selama kondisi pemanggilan terpenuhi. Pada teknik rekursif setidaknya kita harus memiliki nilai awal. Kondisi awal tersebut adalah if z>0 jika nilai z lebih dari 0 maka program akan langsung menghitung mundur nilai yang diinputkan pengguna dengan rumus hitung(z-1) jadi ketika nilai z yang dimasukan 5 maka program akan menghitung z-1 atau 5-1 hasilnya 4 dan 4-1 hasilnya 3 begitu seterusnya hingga nilai z bernilai 1. Pada program ini terdapat 1 var local dan 1 var umum yang keduanya sama sama bertipe data integer. Setelah itu program akan langsug menampilkan hitung mundur dari niali yang diinputkan pengguna karena terdapat perintah writeln('Masukan angka');readln(c); hitung(c);.

Tugas 1Buatlah program rekursif untuk perpangkatan berdasarkan dua buah inputan pengguna!inputan pertama : bilangan pokok yang akan dipangkatkanInputan kedua : pemangkatannya.Contoh sub programnya : function pangkat (x,y :integer) : integer berarti xy program tugas_1;uses crt;var c,b:integer;function pangkat(c,b:integer):integer;beginif b=0 then pangkat:=1elsepangkat:=c*pangkat(c,b-1);end;begin clrscr;writeln('Masukan nilai c');readln(c);writeln('Masukan nilai b');readln(b);writeln('Hasil dari c^b adalah ',pangkat(c,b));readln;end.

Pada penjelasan kali ini saya akan menjelaskan suatu program dengan menggunakan fungsi rekursif untuk perkalian dua buah bilangan yang diinputkan oleh pengguna. Rekursif itu sendiri artinya sub program yang memanggil dirinya sendiri selama kondisi pemanggilan terpenuhi. Pada teknik rekursif setidaknya kita harus memiliki 1 nilai awal. Kondisi awal tersebut adalah if b=0. Disini terdapat var c dan b yang bertipe data integer, pada program ini var c dan b adalah var local sekaligus var umum. Pengguna cukup memasukan nilai c sebagai bilangan pokoknya dan nilai b sebagai nilai pangkatnya. Setelah itu program akan langsung menghitung nilai dari pangkat var c dengan rumus pangkat:=c*pangkat(c,b-1). Rumus yang akan dieksekusi terlebih dahulu adalah pangkat(c,b-1)setelah itu hasilnya akan langsung dikalikan dengan nilai dari var c. hasil pangkatnya akan ditampilkan karena terdapat perintah writeln('Hasil dari c^b adalah ',pangkat(c,b));.

Tugas 2Buatlah program untuk menghitung FPB (faktor persekutuan terbesar) dari dua bilangan dengan menggunakan metode rekursif. Untuk membantu, berikut diberikan penyelesaian secara rekursif dari FPB:fpb(x,y) = y jika y