if184982 pengantar logika dan pemrograman pertemuan ke-10 · pohon.java (lanjutan) 2018/2019(1) -...

24
IF184982 Pengantar Logika dan Pemrograman Pertemuan ke - 10 Misbakhul Munir IRFAN SUBAKTI 司馬伊凡 Мисбакхул Мунир Ирфан Субакти

Upload: letu

Post on 10-Mar-2019

242 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: IF184982 Pengantar Logika dan Pemrograman Pertemuan ke-10 · Pohon.java (lanjutan) 2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman - MM Irfan Subakti 4. PohonAksi.java •Fungsi/function/method

IF184982Pengantar Logika dan Pemrograman

Pertemuan ke-10Misbakhul Munir IRFAN SUBAKTI

司馬伊凡Мисбакхул Мунир Ирфан Субакти

Page 2: IF184982 Pengantar Logika dan Pemrograman Pertemuan ke-10 · Pohon.java (lanjutan) 2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman - MM Irfan Subakti 4. PohonAksi.java •Fungsi/function/method

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

Page 3: IF184982 Pengantar Logika dan Pemrograman Pertemuan ke-10 · Pohon.java (lanjutan) 2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman - MM Irfan Subakti 4. PohonAksi.java •Fungsi/function/method

Pohon.java

2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti

3

Page 4: IF184982 Pengantar Logika dan Pemrograman Pertemuan ke-10 · Pohon.java (lanjutan) 2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman - MM Irfan Subakti 4. PohonAksi.java •Fungsi/function/method

Pohon.java (lanjutan)

2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti

4

Page 5: IF184982 Pengantar Logika dan Pemrograman Pertemuan ke-10 · Pohon.java (lanjutan) 2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman - MM Irfan Subakti 4. PohonAksi.java •Fungsi/function/method

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

Page 6: IF184982 Pengantar Logika dan Pemrograman Pertemuan ke-10 · Pohon.java (lanjutan) 2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman - MM Irfan Subakti 4. PohonAksi.java •Fungsi/function/method

PohonAksi.java (lanjutan)

2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti

6

Page 7: IF184982 Pengantar Logika dan Pemrograman Pertemuan ke-10 · Pohon.java (lanjutan) 2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman - MM Irfan Subakti 4. PohonAksi.java •Fungsi/function/method

PohonAksi.java (lanjutan)

2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti

7

Page 8: IF184982 Pengantar Logika dan Pemrograman Pertemuan ke-10 · Pohon.java (lanjutan) 2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman - MM Irfan Subakti 4. PohonAksi.java •Fungsi/function/method

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

Page 9: IF184982 Pengantar Logika dan Pemrograman Pertemuan ke-10 · Pohon.java (lanjutan) 2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman - MM Irfan Subakti 4. PohonAksi.java •Fungsi/function/method

PohonAksiTest.java (lanjutan)

2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti

9

Page 10: IF184982 Pengantar Logika dan Pemrograman Pertemuan ke-10 · Pohon.java (lanjutan) 2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman - MM Irfan Subakti 4. PohonAksi.java •Fungsi/function/method

PohonAksiTest: Hasil

2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti

10

Page 11: IF184982 Pengantar Logika dan Pemrograman Pertemuan ke-10 · Pohon.java (lanjutan) 2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman - MM Irfan Subakti 4. PohonAksi.java •Fungsi/function/method

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

Page 12: IF184982 Pengantar Logika dan Pemrograman Pertemuan ke-10 · Pohon.java (lanjutan) 2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman - MM Irfan Subakti 4. PohonAksi.java •Fungsi/function/method

Soal 1 (lanjutan)

2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti

12

Page 13: IF184982 Pengantar Logika dan Pemrograman Pertemuan ke-10 · Pohon.java (lanjutan) 2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman - MM Irfan Subakti 4. PohonAksi.java •Fungsi/function/method

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

Page 14: IF184982 Pengantar Logika dan Pemrograman Pertemuan ke-10 · Pohon.java (lanjutan) 2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman - MM Irfan Subakti 4. PohonAksi.java •Fungsi/function/method

Soal 2 (lanjutan)

2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti

14

Page 15: IF184982 Pengantar Logika dan Pemrograman Pertemuan ke-10 · Pohon.java (lanjutan) 2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman - MM Irfan Subakti 4. PohonAksi.java •Fungsi/function/method

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

Page 16: IF184982 Pengantar Logika dan Pemrograman Pertemuan ke-10 · Pohon.java (lanjutan) 2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman - MM Irfan Subakti 4. PohonAksi.java •Fungsi/function/method

Soal 3 (lanjutan)

2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti

16

Page 17: IF184982 Pengantar Logika dan Pemrograman Pertemuan ke-10 · Pohon.java (lanjutan) 2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman - MM Irfan Subakti 4. PohonAksi.java •Fungsi/function/method

Soal 3 (lanjutan)

2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti

17

Page 18: IF184982 Pengantar Logika dan Pemrograman Pertemuan ke-10 · Pohon.java (lanjutan) 2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman - MM Irfan Subakti 4. PohonAksi.java •Fungsi/function/method

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

Page 19: IF184982 Pengantar Logika dan Pemrograman Pertemuan ke-10 · Pohon.java (lanjutan) 2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman - MM Irfan Subakti 4. PohonAksi.java •Fungsi/function/method

Soal 4 (lanjutan)

2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti

19

Page 20: IF184982 Pengantar Logika dan Pemrograman Pertemuan ke-10 · Pohon.java (lanjutan) 2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman - MM Irfan Subakti 4. PohonAksi.java •Fungsi/function/method

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

Page 21: IF184982 Pengantar Logika dan Pemrograman Pertemuan ke-10 · Pohon.java (lanjutan) 2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman - MM Irfan Subakti 4. PohonAksi.java •Fungsi/function/method

Fungsi Konversi Array ke Pohon

2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti

21

Page 22: IF184982 Pengantar Logika dan Pemrograman Pertemuan ke-10 · Pohon.java (lanjutan) 2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman - MM Irfan Subakti 4. PohonAksi.java •Fungsi/function/method

Soal 1-4: Test

2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti

22

Page 23: IF184982 Pengantar Logika dan Pemrograman Pertemuan ke-10 · Pohon.java (lanjutan) 2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman - MM Irfan Subakti 4. PohonAksi.java •Fungsi/function/method

Soal 1-4: Test (lanjutan)

2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti

23

Page 24: IF184982 Pengantar Logika dan Pemrograman Pertemuan ke-10 · Pohon.java (lanjutan) 2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman - MM Irfan Subakti 4. PohonAksi.java •Fungsi/function/method

Soal 1-4: Hasil Test

2018/2019(1) - IF184982 Pengantar Logika dan Pemrograman -MM Irfan Subakti

24