• Tidak ada hasil yang ditemukan

REKURSIF Dalam ilmu komputer id

N/A
N/A
Protected

Academic year: 2018

Membagikan "REKURSIF Dalam ilmu komputer id"

Copied!
5
0
0

Teks penuh

(1)

REKURSIF

Dalam ilmu komputer, kelas dari objek atau metode memperlihatkan perilaku

rekursif bila mereka dapat didefinisikan oleh dua properti berikut :

1. Sebuah (beberapa) kasus dasar sederhana

2. Sejumlah aturan yang mengurangi kasus lain sampai ke kasus dasar

Sebagi contoh, berikut ini definisi rekursif dari leluhur seseorang

Orang tua seseorang adalah leluhur seseorang (kasus dasar)

Orang tua dari suatu leluhur merupakan leluhurnya (langkah rekursif)

Bilangan fibonnaci adalah contoh lainnya

Fib(0) adalah 0 (kasus dasar)

Fib(1) adalah 1 (kasus dasar)

Untuk semua integer n>1, fib(n) = fib(n-1) + fib(n-2) langkah rekursif)

Rekursif intinya adalah suatu fungsi/prosedur yang bisa memanggil

prosedur/fungsi itu sendiri

Contoh rekursif :

Menampilkan hasil perulangan angka 5 dari 54321 :

#include <stdio.h>

void ulangAngka (int batas) { if (batas >0) {

Contoh Program Pangkat :

#include <stdio.h> #include <stdlib.h> #include <conio.h>

long int Pangkat(int X, int Y); int X,Y;

int main() {

(2)

printf("Masukkan Y :"); scanf("%d", &Y);

printf("%d pangkat %d = %ld\n", X, Y, Pangkat(X,Y)); getch();

system("pause"); return 0;

}

long int Pangkat(int X, int Y) { if(Y==0) {

return 1; } else {

return X*Pangkat(X,--Y); }

};

Latihan Soal

Buat program untuk mencari permutasi suatu kata

#include <stdio.h>

#include <stdlib.h> #include <conio.h> #include <string.h>

long int faktorial(int ); int main() {

char kata[20];

printf("Masukkan Kata"); scanf("%s", kata);

printf("Jumlah Permutasi %s = %ld\n\n", kata, faktorial(strlen(kata)));

}

long int faktorial(int x) {

return (x == 1) ? 1 : (x*faktorial(x-1)); }

Program diatas ada sebuah kesalahan. Jika kita mengisikan kalimat dan ada

karakter yang sama, maka program akan membacanya sebagai dua kalimat

berbeda.

(3)

#include <stdio.h> scanf("%d", &huruf);

segitigaPascal(huruf); printf("\n");

getch(); return 0; }

void segitigaPascal(int x) { int y;

for(y=1; y<=x;y++) {

printf("%d ", faktorial(x, y) ); }

}

int faktorial(int c, int k) { if ((k == 1) || (k == c)) {

sendiri, sampai k = 1 atau c=k.

Buat program dibawah ini dan lengkapi kode yang kosong.

#include <stdio.h>

#include <stdib.h> #include <conio.h>

long int faktorial(int N) { if(N == 0) {

//Prosedur Untuk Memindahkan Sebuah tower Hanoi

(4)

tiangC); } }

//prosedur untuk ...(b)

void CariGheto (int A[10], int Awal, int Akhir, int Tengah, int Data_Cari, int Ketemu) {

If (Awal > Akhir) {

//prosedur input data dalam array A[10] void InputGheto (int A[10],int N) { for(int i=0;i<=10;i++) {

printf(" 4. Permutasi\n" );//kasus no 3a

(5)

Referensi

Dokumen terkait

yang ditunjuk untuk melaksanakan Pekerjaan Pengadaan Penyedia Pekerjaan Konstruksi Rehabilitasi Sedang/Berat Rumah Jabatan pada Dinas Pendapatan, Pengelolaan Keuangan dan

Metode campuran adalah salah satu metode yang digunakan untuk menyelesaikan sistem persamaan linier tiga variabel yang merupakan gabungan dari metode substitusi

1) Keterbatasan sistem keamanan rumah yang tersedia di indonesia masih minim dan konvensional serta harga yang ditawarkan mahal. 2) Dibutuhkan sistem keamanan rumah

Pada media fabrikasi dengan ketebalan yang sama diperoleh angka efisiensi penurunan kekeruhan 34,8% - 49,1% atau lebih baik daripada menggunakan media plastik

Berdasarkan latar belakang tersebut penelitian dilakukan dengan tujuan untuk: (1) Untuk menghasilkan alat yang dapat mendeteksi keberadaan benda di depan penderita tunanetra

Paket pengadaan ini terbuka untuk penyedia yang teregistrasi pada Layanan Pengadaan Secara Elektronik (LPSE) dan memenuhi persyaratan Kualifikasi Usaha Kecil/Koperasi

Daya dalam watt diserap oleh suatu beban pada setiap saat sama dengan jatuh tegangan pada beban tersebut (volt) dikalikan dengan arus yang mengalir lewat beban

[r]