SUBRUTIN & REKURSI
SUBRUTIN Untuk mencapai suatu tujuan besar, maka tujuan tersebut harus dibagi-bagi menjadi tujuan kecil sampai tujuan kecil itu merupakan tujuan yang dapat dicapai berdasarkan kondisi dan potensi yang dimiliki saat itu (Al-Khuwarizmi) SUBRUTIN
Melakukan tugas-tugas Program Utama Subrutin Melakukan tugas-tugas yang lebih spesifik Subrutin Subrutin
Prosedur Fungsi Subrutin
Contoh 1 Buatlah algoritma untuk mencetak kata “Subrutin” sebanyak yang diinginkan Algoritma
Subrutin Analisis : Subrutin untuk mencetak kata memerlukan satu parameter input (jumlah pencetakan) Start Input : jumcetak Subrutin cetakkata(jumcetak) End
cetakkata(jumcetak) i 1 Write(‘Subrutin’) i i + 1 yes i <=jumcetak no End
Contoh 2 Buatlah algoritma untuk mengitung luas segi empat dengan menggunakan subrutin Algoritma
hitungluas(panjang, lebar) Analisis : Subrutin untuk menghitung luas memerlukan dua parameter input (panjang dan lebar) Parameter output dari subrutin adalah hasil perhitungan luas segi empat Start Input : panjang, lebar Subrutin hitungluas(panjang, lebar) Output : luas End
hitungluas(panjang, lebar) hitungluas p * l Return(hitungluas)
REKURSI
Rekursi dalam Matematika f(n) = nf(n - 1) , untuk n > 1 f(1) = 1 Hitunglah nilai f(4) Jawab : f(4) = 4f(3) f(4) = 4(3)f(2) f(4) = 4(3)(2)f(1) f(4) = 4(3)(2)(1) f(4) = 24
Basis (Terminasi) Rekurens (Definisi Rekursi) Rekursi
Contoh 1 Buatlah algoritma untuk menghitung deret bilangan positif secara rekursi Algoritma
Subrutin Analisis : Subrutin untuk menghitung deret bilangan positif memerlukan satu parameter input (jumlah deret bilangan) Parameter output dari subrutin adalah hasil penjumlahan deret bilangan Basis : jumlah(0) = 0 Rekurens : jika n > 0 maka jumlah(n) = n + jumlah(n - 1) Start Input : n jumlah(n) Output : jumlah Subrutin End
jumlah(n) no n = 0 yes jumlah n + jumlah(n - 1) jumlah 0 Return(jumlah)
Contoh 2 Buatlah algoritma untuk menghitung bilangan faktorial secara rekursi Algoritma
Subrutin Analisis : Subrutin untuk menghitung bilangan faktorial memerlukan satu parameter input (bilangan yang akan dicari faktorialnya) Parameter output dari subrutin adalah hasil faktorial Basis : fak(0) = 1 Rekurens : jika n > 0 maka fak(n) = n * fak(n - 1) Start Input : n fak(n) Output : fak Subrutin End
fak(n) no n = 0 yes fak n * fak(n - 1) fak 1 Return(fak)
Contoh 3 Buatlah algoritma untuk mencari bilangan fibonaci pada posisi yang diinginkan Algoritma
Subrutin Analisis : Subrutin untuk mencari bilangan fibonaci memerlukan satu parameter input (posisi bilangan yang ingin dicari) Parameter output dari subrutin adalah nilai bilangan fibonaci pada posisi yang diinginkan Basis : fibo(0) = 1, fibo(1) = 1 Rekurens : jika n > 1 maka fibo(n) = fibo(n-2) + fibo(n-1) Start Input : n fibo(n) Output : fibo Subrutin End
fibo fibo(n-1) + fibo(n-2) no n = 0 or n = 1 yes fibo fibo(n-1) + fibo(n-2) fibo 1 Return(fibo)