Solusi :
Iterasi ke – 1
Memasukan node A kedalam queue
Gambar antriannya :
QUEUE
Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan
Ternyata A ≠ goal
A punya anak B dan C, masukkan kedalam queue
QUEUE
Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan
CB
Iterasi ke – 2
Keluarkan B dari queue dan cek apakah B adalah goal?
QUEUE
Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan
Ternyata B ≠ goal
B punya anak D dan E, masukkan ke dalam queue
QUEUE
Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan
EDC
Iterasi ke – 3
Keluarkan C dan cek apakah C adalah goal?
QUEUE
Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan
ED
Ternyata C ≠ goal
C punya anak F, G dan H, masukkan ke dalam queue
QUEUE
Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan
HGFED
Iterasi ke 4
Keluarkan D dari queue dan cek apakah D adalah goal?
QUEUE
Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan
HGFE
Ternyata D ≠ goal
D punya anak I dan J, masukkan ke dalam queue
QUEUE
Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan
JIHGFE
Iterasi ke – 5
Keluarkan E dari queue dan cek apakah E adalah goal?
QUEUE
Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan
JIHGF
Ternyata E ≠ goal
E punya anak K, masukkan ke dalam queue
QUEUE
Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan
KJIHGF
Iterasi ke – 6
Keluarkan F dari queue dan cek apakah F adalah goal?
QUEUE
Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan
KJIHG
Ternyata F ≠ goal
F punya anak L, masukkan ke dalam queue
QUEUE
Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan
LKJIHG
Iterasi ke – 7
Keluarkan G dari queue dan cek apakah G adalah goal
QUEUE
Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan
LKJIH
Ternyata G ≠ goal
G punya anak M dan N, masukkan ke dalam queue
QUEUE
Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan
NMLKJIH
Iterasi ke – 8
Keluarkan H dari queue dan cek apakah H adalah goal?
QUEUE
Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan
NMLKJI
Ternyata H ≠ goal
H punya anak O dan P, masukkan ke dalam queue
QUEUE
Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan
PONMLKJI
Iterasi ke – 9
Keluarkan I dari queue dan cek apakah I adalah goal?
QUEUE
Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan
PONMLKJ
Ternyata I ≠ goal
I tidak punya anak, jadi tidak ada yang di masukkan ke queue
QUEUE
Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan
PONMLKJ
Iterasi ke – 10
Keluarkan J dari queue dan cek apakah J adalah goal?
QUEUE
Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan
PONMLK
Ternyata J ≠ goal
J tidak punya anak, jadi tidak ada yang di masukkan ke queue
QUEUE
Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan
PONMLK
Iterasi ke – 11
Keluarkan K dari queue dan cek apakah K adalah goal?
QUEUE
Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan
PONML
Ternyata K ≠ goal
K tidak punya anak, jadi tidak ada yang di masukkan ke queue
QUEUE
Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan
PONML
Iterasi ke – 12
Keluarkan L dari queue dan cek apakah L adalah goal?
QUEUE
Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan
PONM
Ternyata L ≠ goal
L punya anak Q, masukkan ke dalam queue
QUEUE
Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan
QPONM
Iterasi ke – 13
Keluarkan M dari queue dan cek apakah M adalah goal?
QUEUE
Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan
QPON
Ternyata M ≠ goal
M tidak punya anak, jadi tidak ada yang di masukkan ke queue
QUEUE
Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan
QPON
Iterasi ke – 14
Keluarkan N dari queue dan cek apakah N adalah goal?
QUEUE
Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan
QPO
Ternyata N ≠ goal
L punya anak R dan S, masukkan ke dalam queue
QUEUE
Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan
SRQPO
Iterasi ke – 15
Keluarkan O dari queue dan cek apakah O adalah goal?
QUEUE
Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan
SRQP
Ternyata O ≠ goal
O tidak punya anak, jadi tidak ada yang di masukkan ke queue
QUEUE
Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan
SRQP
Iterasi ke – 16
Keluarkan P dari queue dan cek apakah P adalah goal?
QUEUE
Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan
SRQ
Ternyata P ≠ goal
P tidak punya anak, jadi tidak ada yang di masukkan ke queue
QUEUE
Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan
SRQ
Iterasi ke – 17
Keluarkan Q dari queue dan cek apakah Q adalah goal?
QUEUE
Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan
SR
Ternyata Q ≠ goal
Q tidak punya anak, jadi tidak ada yang di masukkan ke queue
QUEUE
Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan
SR
Iterasi ke – 18
Keluarkan R dari queue dan cek apakah R adalah goal?
QUEUE
Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan
Ternyata R ≠ goal
R tidak punya anak, jadi tidak ada yang di masukkan ke queue
QUEUE
Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan
S
Iterasi ke – 19
Keluarkan S dari queue dan cek apakah S adalah goal?
QUEUE
Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan
Ternyata S = goal
Pencarian dihentikan
Mencari solusi :
Goal = S
S anaknya N, N anaknya G, G anaknya C, dan C anaknya A
Karena A adalah node akar maka pencarian solusi dihentikan dan diperoleh solusi :
A–C–G–N–S
b. DFS
Iterasi ke – 1
Beri tanda batas pada stack dan masukkan node A ke stack
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
A|
Keluarkan A dari stack dan cek
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
|
Ternyata A ≠ goal
A punya anak B dan C, beri tanda batas pada stack, dan masukkan node B dan C
ke stack
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
BC||
Karena A punya anak, masukkan A ke Solusi sementara :
Solusi Sementara = [A]
Iterasi ke – 2
Stack pada iterasi ke 2 :
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
BC||
C||
Ternyata B ≠ goal
Karena B punya anak D dan E, beri tanda batas dan masukkan node D dan E ke
stack
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
DE|C||
DE|C||
Solusi sementara = [A B]
Keluarkan D dari stack dan cek
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
E|C||
Ternyata D ≠ goal
Karena D punya anak I dan J, beri tanda batas dan masukkan node D dan E ke
stack
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
I J|E | C | |
Karena D punya anak, masukkan D ke solusi sementara :
Solusi sementara = [A B D]
Iterasi ke – 4
Stack pada iterasi ke 4 :
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
I J|E | C | |
J|E | C | |
Ternyata I ≠ goal
Karena I tidak punya anak maka I tidak dimasukkan ke solusi sementara
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
J|E | C | |
Solusi sementara = [A C D]
Iterasi ke – 5
Stack pada iterasi ke 5 :
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
J|E | C | |
|E | C | |
Ternyata J ≠ goal
Karena J tidak punya anak maka J tidak dimasukkan ke solusi sementara
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
|E | C | |
Solusi sementara = [A C D]
Iterasi ke – 6
Stack pada iterasi ke 6 :
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
|E | C | |
Solusi sementara = [A B D]
Keluarkan tanda batas dari stack dan gunakan untuk menghapus solusi sementara
satu huruf
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
E|C||
Solusi sementara = [A B D] = [A B]
Iterasi ke – 7
Stack pada iterasi ke 7 :
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
E|C||
|C||
Ternyata E ≠ goal
Karena E punya anak K, beri tanda batas dan masukkan node Kke stack
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
K|| C | |
Karena E punya anak, masukkan E ke solusi sementara :
Solusi sementara = [A B E]
Iterasi ke – 8
Stack pada iterasi ke 8 :
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
K|| C | |
Solusi sementara = [A B E]
Keluarkan K dari stack dan cek
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
|C||
Ternyata K ≠ goal
Karena K tidak punya anak maka K tidak dimasukkan ke solusi sementara
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
|| C | |
Solusi sementara = [A B E]
Iterasi ke – 9
Stack pada iterasi ke 9 :
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
|| C | |
Solusi sementara = [A B E]
Keluarkan tanda batas dari stack dan gunakan untuk menghapus solusi sementara
satu huruf
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
C||
Solusi sementara = [A B E] = [A]
Iterasi ke – 10
Stack pada iterasi ke 10 :
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
C||
Solusi sementara = [A]
Keluarkan C dari stack dan cek
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
|||
Ternyata C ≠ goal
Karena C punya anak F, G dan H, beri tanda batas dan masukkan node F, G dan H
ke stack
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
F G H| | |
Karena C punya anak, masukkan C ke solusi sementara :
Solusi sementara = [A C]
Iterasi ke – 11
Stack pada iterasi ke 11 :
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
F G H| | |
Solusi sementara = [A C]
Keluarkan F dari stack dan cek
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
G H| | |
Ternyata F ≠ goal
Karena F punya anak L, beri tanda batas dan masukkan node L ke stack
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
L| G H| | |
Karena F punya anak, masukkan F ke solusi sementara :
Solusi sementara = [A C F]
Iterasi ke – 12
Stack pada iterasi ke 12 :
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
L| G H| | |
Solusi sementara = [A C F]
Keluarkan L dari stack dan cek
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
G H| | |
Ternyata L ≠ goal
Karena L punya anak Q, beri tanda batas dan masukkan node Q ke stack
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
Q|| G H| | |
Karena F punya anak, masukkan F ke solusi sementara :
Solusi sementara = [A C F L]
Iterasi ke – 13
Stack pada iterasi ke 13 :
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
Q|| G H| | |
Solusi sementara = [A C F L]
Keluarkan Q dari stack dan cek
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
|| G H| | |
Ternyata Q ≠ goal
Karena Q tidak punya anak maka Q tidak dimasukkan ke solusi sementara
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
|| G H| | |
Solusi sementara = [A C F L]
Iterasi ke – 14
Stack pada iterasi ke 14 :
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
|| G H| | |
Solusi sementara = [A C F L]
Keluarkan tanda batas dari stack dan gunakan untuk menghapus solusi sementara
satu huruf
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
G H| | |
Solusi sementara =[A C F L] = [A C]
Iterasi ke – 15
Stack pada iterasi ke 15 :
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
G H| | |
Solusi sementara = [A C]
Keluarkan G dari stack dan cek
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
Ternyata G ≠ goal H| | |
Karena G punya anak M danN, beri tanda batas dan masukkan node M dan N ke
stack
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
M N| H| | |
Karena G punya anak, masukkan G ke solusi sementara :
Solusi sementara = [A C G]
Iterasi ke – 16
Stack pada iterasi ke 16 :
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
M N| H| | |
Solusi sementara = [A C G]
Keluarkan M dari stack dan cek
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
N| H| | |
Ternyata M ≠ goal
Karena M tidak punya anak maka M tidak dimasukkan ke solusi sementara
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
N| H| | |
Solusi sementara = [A C G]
Iterasi ke – 17
Stack pada iterasi ke 17 :
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
Solusi sementara = [A C G] N| H| | |
Keluarkan N dari stack dan cek
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
| H| | |
Ternyata N ≠ goal
Karena N punya anak R dan S, beri tanda batas dan masukkan node R dan S ke
stack
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
R S|| H| | |
Karena N punya anak, masukkan N ke solusi sementara :
Solusi sementara = [A C G N]
Iterasi ke – 18
Stack pada iterasi ke 18 :
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
R S|| H| | |
Solusi sementara = [A C G N]
Keluarkan R dari stack dan cek
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
S|| H| | |
Ternyata R ≠ goal
Karena R tidak punya anak maka R tidak dimasukkan ke solusi sementara
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
S|| H| | |
Solusi sementara = [A C G N]
Iterasi ke – 19
Stack pada iterasi ke 19 :
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
S|| H| | |
Solusi sementara = [A C G N]
Keluarkan S dari stack dan cek
STACK
Masuk dari pintu kiri, keluar lewat pintu kiri
|| H| | |
Ternyata S = goal
Karena S adalah Goal, maka masukkan ke solusi dan hentikan pencarian
Solusi = [A C G N S]