if184982 pengantar logika dan pemrograman pertemuan ke-10 · pohon.java (lanjutan) 2018/2019(1) -...
TRANSCRIPT
IF184982Pengantar Logika dan Pemrograman
Pertemuan ke-10Misbakhul Munir IRFAN SUBAKTI
司馬伊凡Мисбакхул Мунир Ирфан Субакти
Pohon Biner = Binary Tree
• Kelas/class rekursif• Tidak ada pemberian nilai langsung (assignment) → semuanya
menggunakan fungsi/function/method rekursif• Variabel lokal dapat digunakan→ deklarasi dan inisialisasi
• Sekali diinisialisasi, variabel tersebut akan memegang nilai-nilainyasampai akhir dari jangkauan (scope) nya. Mereka tidak berubah
• Perulangan (loop) juga tidak boleh dilakukan• Akar dari Pohon memiliki nilai integer• Memiliki 2 cabang:
• Kiri →merupakan Pohon• Kanan→merupakan Pohon
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
2
Pohon.java
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
3
Pohon.java (lanjutan)
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
4
PohonAksi.java
• Fungsi/function/method dan contoh bagaimana mengelola kelasPohon
• Mendayagunakan ListKu.java dan ListKuFungsi.java
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
5
PohonAksi.java (lanjutan)
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
6
PohonAksi.java (lanjutan)
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
7
PohonAksiTest.java
• Cek fungsi/function/method yang ada di Pohon.java dan PohonAksi.java
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
8
PohonAksiTest.java (lanjutan)
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
9
PohonAksiTest: Hasil
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
10
Soal 1
• Negasikan semua elemen dalam pohon
public static Pohon negasiSemua (Pohon p)
• Dengan masukan pohon integer p, tuliskan fungsi yang mengembalikan pohon baru dari p di mana semua tanda elemen di dalamnya dinegasikan, integer positif menjadi integer negatif dan sebaliknya integer negatif menjadi integer positif
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
11
Soal 1 (lanjutan)
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
12
Soal 2
• Cerminkan semua elemen dalam pohonpublic static Pohon cermin (Pohon p)
• Dengan masukan pohon integer p, tuliskan fungsi yang mengembalikancerminan sepanjang sumbu kiri-kanan dari semua elemen di pohon p. Contoh seperti di bawah. Pohon di kiri adalah cerminan pohon di kanandan sebaliknya.
6 6/ \ / \
4 9 9 4/ \ / \ / \
2 5 7 7 5 2
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
13
Soal 2 (lanjutan)
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
14
Soal 3
• Penelusuran postorder
public static ListKu postorder (Pohon p)
• Dengan masukan pohon integer p, tuliskan fungsi yang mengembalikan list yang memiliki nilai-nilai dari p denganpenelusuran simpul-simpul dengan cara postorder. Postorderyaitu dari penelusuran dari setiap simpul/node, maka semua nilai daricabang kiri pohon akan ditelusuri dulu, lalu semua nilai dari cabangkanan pohon ditelusuri, baru terakhir telusuri nilai di simpul itusendiri.
• Contoh kode program penelusuran dengan cari inorder dari kelasPohonAksi.java di atas dapat dijadikan acuan
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
15
Soal 3 (lanjutan)
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
16
Soal 3 (lanjutan)
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
17
Soal 4
public boolean semuaPositif (Pohon p)
• Dengan masukan pohon integer p, tuliskan fungsi yang mengembalikan nilai boolean (true atau false) yang mengindikasikan apakah semua nilai di dalam simpul-simpul pada psemuanya positif, yaitu ≥ 0
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
18
Soal 4 (lanjutan)
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
19
Fungsi Konversi Array ke Pohon
• Konversikan Array ke Pohon
private static Pohon arrayKePohon
(int a[])
• Memudahkan dalam pengelolaan masukan (input) dari bentukan Array ke bentukan Pohon
• Contoh:• Array → [1, 9, 2, 4, 0, 2, 9, 3, 0, 2, 4, 5, 6] → Pohon→
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
20
Fungsi Konversi Array ke Pohon
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
21
Soal 1-4: Test
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
22
Soal 1-4: Test (lanjutan)
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
23
Soal 1-4: Hasil Test
2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti
24