Pointer
Pertemuan 3
Struktur Data dan Algoritma
Tim Dosen:
1. Dr. Achmad Solichin, S.Kom., M.T.I
2. Helena N. Irmanda, S.Pd., M.Kom
3. M. Adrezo, S.Kom., M.Sc
4. Novi Trisman Hadi, S.Pd., M.Kom
5. Neny Rosmawarni, S.Kom., M.Kom
6. Rifka Dwi Amalia, S.Pd., M.Kom.
Outline
01 Pointer
Rekursif 02
03 Contoh-contoh
Latihan-latihan 04
APA ITU POINTER?
Pointer adalah variabel yang berisi alamat memori suatu lokasi memori.
A P
CONTOH PROGRAM POINTER
45 0000
A P
P diisi
45 0000 dengan
alamat dari
variabel A
A P
P
Untuk visualisasi
45 biasa dituliskan
seperti ini saja
A
CONTOH PROGRAM POINTER
P
45
f1 f1 f2 … fn
Permasalahan yang cocok diselesaikan dengan Rekursif
● Satu atau beberapa kasus sederhana yang dapat diselesaikan secara mudah (tidak terlalu
rumit).
● Permasalahan-permasalahan yang dapat didefinisikan / disederhanakan menjadi
permasalahan yang lebih sederhana.
● Permasalahan dapat disederhanakan dengan menyelesaikan permasalahan yang lebih
kecil secara rekursif.
6*4 6 + (6 * 3) 6 + 6 + (6 * 2) 6 + 6 + 6 + (6 * 1)
Permasalaha Permasalaha
Permasalaha
n lebih n paling
n kompleks
sederhana sederhana
Contoh 1: Fungsi Perkalian dengan Rekursif
Menu Struktur
Bertingkat Jabatan
REFERENSI
Painem, R. Ragam, M. Sjukani. 2019. Modul Perkuliahan Pertemuan 11: Pointer. Jakarta: Fakultas
Teknologi Informasi, Universitas Budi Luhur.
Referensi
● Buku “Problem Solving and Program Design in C, 8 th edition”. Pearson Addison-Wesley.
● Slide “Bab 14. Recursion” oleh M. Sjukani, Univ Budi Luhur.
● Slide “Chapter 10. Recursion” from the books of “Problem Solving and Program Design in C, 4 th edition”
● http://achmatim.net/2012/03/19/fungsi-rekursif-dan-penerapannya-di-php/
● Catatan: Seluruh contoh Program dapat ditemukan di https://github.com/achmatim/algoritma/tree/main/java-program
REKURSIF
• adalah proses pengulangan item-item dengan cara yang mirip
• Secara algoritmik: suatu cara untuk mendesain solusi dari masalah
dengan cara divide-and-conquer
• apa itu divide-and-conquer? memecah-mecah masalah yang
ada menjadi beberapa bagian kecil sehingga lebih mudah
untuk diselesaikan
1
125
25
5
REKURSIF
• Secara umum, masalah-masalah yang berkaitan dengan rekursif juga
dapat diselesaikan dengan solusi iteratif, tetapi kita perlu
mengidentifikasi dan mengindeks permasalahan yang lebih kecil pada
saat memprogram
• Dalam pemrograman, rekursif tidak boleh memiliki tujuan akhir yang
tidak terhingga
• Setidaknya rekursif harus memiliki 1 atau lebih kasus
pokok/basis(base case) yang mudah untuk diselesaikan
• Harus menyelesaikan permasalahan yang sama pada input yang lain
dengan tujuan dari penyederhanaan input masalah yang lebih besar
ALGORITMA REKURSIF FIBONACCI
● Apa saja pola bilangan Fibonacci?
● Pola bilangan ini terbentuk dari susunan bilangan yang diawali angka 0 dan 1,
kemudian suku setelahnya didapatkan dari hasil penambahan kedua suku
sebelumnya. Contoh dari pola bilangan Fibonacci adalah 0, 1, 1, 2, 3, 5, 8, dan
seterusnya. Rumus pola bilangan Fibonacci adalah Un = (n-1) + (n-2).
• Deret Fibonacci adalah deret yang didefinisikan sebagai berikut: