MODUL PRAKTIKUM
DATA
TA. 2022-2023
A. Pengertian Rekursif
Rekursif adalah salah satu metode dalam dunia matematika, rekursif
didefinisikan sebagai sebuah fungsi yang mengandung fungsi itu sendiri. Dalam
dunia pemrograman, rekursif diimplementasikan dalam sebuah fungsi yang
memanggil dirinya sendiri dan prosesnya terjadi secara berulang-ulang.
Fase dalam rekursif terdiri dari 3 fase yaitu :
1) Fase Awal
Fase awal merupakan fase dimana fungsi tersebut memanggil dirinya
sendiri.
2) Fase Terminate
Terminate merupakan fase dimana fungsi tersebut berhenti memanggil
dirinya sendiri.
3) Fase Balik
Fase balik merupakan fase mengunjungi kembali kondisi – kondisi
dari fase awal yang telah terbentuk dan mengembalikan nilai yang telah
didapat dari fase terminal.
Contoh penerapan rekursif . Diketahui fungsi rekursif adalah :
Rekursif ( n ) = n + Rekursif ( n - 3 )
1
B. Implementasi Rekursif
1) Faktorial
Dalam matematika, faktorial dari bilangan asli n adalah hasil perkalian
antara bilangan bulat positif yang kurang dari atau sama dengan n. Faktorial
ditulis sebagai n! dan disebut n faktorial. Secara umum dapat dituliskan
sebagai:
Dimana 0! = 1
Contoh : faktorial 4
4! = 4 x 6 = 24
3! = 3 x 2 = 6
2! = 2 x 1 = 2
1! = 1
0! = 1
Implementasi dari fungsi faktorial :
2
Tampilan :
3
Tampilan :
4
Sebuah queue di dalam program komputer dideklarasikan sebagai
sebuah tipe bentukan baru. Sebuah struktur data dari sebuah queue
setidaknya harus mengandung dua tiga variabel, yakni variabel head yang
akan berguna sebagai penanda bagian depan antrian, variable tail yang akan
berguna sebagai penanda bagian belakang antrian dan array dari yang akan
menyimpan data-data yang dimasukkan ke dalam queue tersebut.
B. Operasi Pada Queue
1) Operasi enqueue
Merupakan operasi yang digunakan untuk memasukkan sebuah
data atau nilai ke dalam queue. Pada proses enqueue, tail -lah yang
berjalan seiring masuknya data baru ke dalam antrian, sedangkan head
akan tetap pada posisi ke indeks-0.
5
3) Operasi Is Full
Merupakan operasi yang digunakan untuk mengecek apakah
Antrian sudah penuh atau belum dengan cara mengecek nilai Tail, jika
Tail >= MAX-1 (karena MAX-1 adalah batas elemen array pada C)
berarti sudah penuh.
6
Gambar 2.9 Operasi Count
6) Operasi Display
Merupakan operasi dalam queue yang digunakan untuk mencetak
/ menampilkan seluruh data yang ada pada antrian, dengan
menampilkan seluruh data pada array, dari indeks head sampai ke
indeks tail.
7
Gambar 2.11 Operasi Destroy / Clear
C. Implementasi Queue Dengan Linear Array
Berikut ini diberikan deklarasi kelas Queue Linear sebagai
implementasi dari queue menggunakan linear array. Dalam praktiknya,
anda dapat menggantinya sesuai dengan kebutuhan anda. Data diakses
dengan field data, sedangkan indeks item pertama dan terakhir disimpan
dalam field Head dan Tail. Konstruktor akan menginisialisasikan nilai Head
dan Tail dengan -1 untuk MAX_QUEUE yang ditunjuk oleh data.
Destruktor akan mengosongkan antrikan kembali dan mendealokasikan
memori yang digunakan oleh antrian.
Contoh Program Queue dengan Liniear Array
Source Code:
8
9
Tampilan
10
D. Implementasi Queue dengan Circular Array
Circular array adalah suatu array yang dibuat seakan-akan merupakan
sebuah lingkaran dengan titik awal (head) dan titik akhir (tail) saling
bersebelahan jika array tersebut masih kosong. Posisi head dan tail pada
gambar diatas adalah bebas asalkan saling bersebelahan.
11
Aturan-aturan dalam queue yang menggunakan circular array adalah :
1) Proses penghapusan dilakukan dengan cara nilai depan(Head) ditambah
1 : depan += 1
2) Proses penambahan elemen sama dengan linear array yaitu nilai
belakang ditambah 1 : belakang += 1
3) Jika depan = maks dan ada elemen yang akan dihapus, maka nilai depan
=1
4) Jika belakang = maks dan depan tidak 1, maka jika ada elemen yang
akan ditambahkan, nilai belakang = 1
5) Jika hanya tinggal 1 elemen di queue (depan = belakang), dan akan
dihapus maka depan diisi 0 dan belakang diisi dengan 0 (queue kosong).
Contoh : Untuk mempermudah, elemen dari queue bertipe karakter.
1) Pendeklarasian Queue
Table 2.1 Pendeklarasian queue
No Operasi Status Queue
1 2 3 4 5
1 Inisialisasi Belakang = 0
Depan = 0
2 Enqueue A, B, E Depan = 1 A B C
Belakang = 3
3 Dequeue Depan = 2 B C
menghasilkan Belakang = 3
nilai A
4 Enqueue D, E Depan = 2 B C D E
Belakang = 5
5 Dequeue 2 kali Depan = 4 D E
menghasilkan B, Belakang = 5
dan C
6 Enqueue F Depan = 4 F D E
Belakang = 1
7 Enqueue G, H Depan = 4 F G H D E
Belakang = 3
8 Dequeue Depan = 5 F G H E
menghasilkan D Belakang = 4
9 Dequeue Depan = 1 F G H
menghasilkan E Belakang = 3
10 Dequeue 2 kali Depan = 3 H
12
menghasilkan F Belakang = 3
dan G
11 Dequeue Depan = 0
menghasilkan H Belakang = 0
13
Contoh Program Queue Array Circuar
Source Code:
14
Tampilan Hasil :
15
Tampilan :
16