Logikaalgoritma
Logikaalgoritma
PERTEMUAN 6
sendiri.
Algoritma :
2.Jika roti masih bisa dipotong, potong tipis dari tepi roti
potongannya.
STRUKTUR REKURSIF
a. Fungsi pangkat
b. Faktorial
c. Fibonancy
d. Menara Hanoi
rekursif.
10 0 = 1 …………………………..(1 )
10 n
= 10 * 10 n-1 .....................................( 2 )
Contoh :
10 3 = 10 * 10 2
10 2 = 10 * 10 1
10 1 = 10 * 10 0
10 0 = 1
Fungsi Pangkat
Fungsi Pangkat
def pangkat(x,y):
if y == 0:
return 1
else:
return x * pangkat(x,y-1)
% (x,y,pangkat(x,y)))
Output Program:
Masukan Nilai X : 10
Masukan Nilai Y : 3
10 dipangkatkan 3 = 1000
Fungsi Pangkat
Contoh :
FAKT(5) = 5 * FAKT(4)
FAKT(4) = 4 * FAKT(3)
FAKT(3) = 3 * FAKT(2)
FAKT(2) = 2 * FAKT(1)
FAKT(1) = 1 * FAKT(0)
Nilai Awal
Faktorial
dgn cara :
5! = 5 * 4!
3!,
Misal :
Program Faktorial
def faktorial(a):
if a == 1:
return (a)
else:
return (a*faktorial(a-1))
"))
faktorial(bil)))
Output Program:
Masukan Bilangan : 5
5! = 120
Masukan Bilangan : 6
6! = 720
Fungsi Faktorial
lewat parameter a.
Nilai Awal
Fibonancy
def fibonacci(n):
if n == 0 or n == 1:
return n
else:
return (fibonacci(n-1) +
fibonacci(n-2))
x = int(input("Masukan Batas
print("Deret Fibonacci")
for i in range(x):
print(fibonacci(i),end=' ')
Output Program:
Fibonacci : 5
Deret Fibonacci
01123
Fibonacci : 8
Deret Fibonacci
0 1 1 2 3 5 8 13
Fungsi Fibonancy
ABC
ketiang C
Menara (n,asal,bantu,tujuan)
penyelesaian
B
MENARA(2,A,B,C) A C ......... A
C
MENARA(1,B,A,C) ........B
C
B
MENARA(1,C,B,A) .......C A
MENARA(2,C,A,B)C B ........................ C B
MENARA(1,A,C,B) ................ A
B
MENARA(2,B,C,A) B A ........B
MENARA(1,C,B,A) ....... C A
MENARA(3,B,A,C) B C ......................................... B C
MENARA(1,A,C,B) ........ A
MENARA(2,A,B,C) A C ............... A
MENARA(1,B,A,C) ........ B C
https://www.mathsisfun.com/games/towerofhanoi.html
N = Jumlah Piringan
N-1
Lanjutan
PERTEMUAN 9
(Kadir, 2017).
indeks/subscript arraynya.
Contoh 1:
A[1] = 3
A[2] = 5
A[3] = 10 dst
Contoh 2:
a = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
print(a)
Hasil Program= [[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]]
Bentuk Umum :
Nama_array[jumlah_elemen]
Contoh:
nilai_tugas [6]
jumlah elemen
nama array
Hasil program:
nilai_tugas=[70,80,90,"Keterangan Lulus"]
Nilai Tugas:
Contoh:
jumlah kolom
jumlah baris
nama array
Bentuk Umum :
nama_aray[jumlah_elemen_baris] [jumlah_elemen_kolom]
nested list
Contoh program:
array=[["Teknik","Kedokteran","MIPA"],[1,2,3]]
print(array)
Hasil Program:
tingkat kesulitannya.
123
Baris
Kolom
Matrik
212
301
200
Ordo 3x3
elemen
Baris
Kolom
Hasil:
dimana:
• A = nama matriks
• I = indeks baris
• J = indeks kolom
atau i==j
Segitiga Atas: dimana posisi baris lebih
Contoh:
Diberikan matriks A
sebagai berikut :
1111
0111
0011
0001
for i in range(4):
for j in range(4):
if i==j:
matriks[i][j]=1
if i<j:
matriks[i][j]=1
if i>j:
matriks[i][j]=0
for i in range(4):
print(matriks[i])
#deklarasi matrik 4x4
matriks=([0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0])
Kodingan Program
Latihan
1234
0234
0034
0004
matriks A adalah :
Latihan
1000
2200
3330
4444
A adalah
Latihan
1000
0100
0010
0001
nilai = [1, 2, 3, 4 ]
for i in range(len(nilai)):
nilai[i]=2*i+1
print(nilai[i])
Latihan
Ketentuan Tugas
Ket :
program di atas.
Metode D And C
Divide
Conquer
Nurtaneo, 2015).
Prinsip Dasar
(1<k≤n).
n input I
Subproblem I
Subsolusi I
Solusi Optimal
n input
1. Merge Sorting
2. Quick Sorting
3. Binary Search
4. Teknik D and C
• Metode D AND C
perkalian.
MERGE SORT
penyelesaiannya.
Contoh 1: 22 10 15 3 8 2
MERGE SORT
Awal 5 7 3 2 4
Contoh 2:
MERGE SORT
Awal 5 7 3 2 4
Bagi 2 5 7 3 2 4
MERGE SORT
Awal 5 7 3 2 4
Bagi 2 5 7 3 2 4
Bagi 5 7 3 2 4 4
MERGE SORT
Awal 5 7 3 2 4
Bagi 2 5 7 3 2 4
Bagi 5 7 3 2 4 4
Bagi 5 7 3 2 4 8
MERGE SORT
Awal 5 7 3 2 4
Bagi 2 5 7 3 2 4
Bagi 5 7 3 2 4 4
Bagi 5 7 3 2 4 8
Sorting 1 5 7 3 2 4
MERGE SORT
Awal 5 7 3 2 4
Bagi 2 5 7 3 2 4
Bagi 5 7 3 2 4 4
Bagi 5 7 3 2 4 8
Sorting 1 5 7 3 2 4
Sorting 2 3 5 7 2 4
MERGE SORT
Awal 5 7 3 2 4
Bagi 2 5 7 3 2 4
Bagi 5 7 3 2 4 4
Bagi 5 7 3 2 4 8
Sorting 1 5 7 3 2 4
Sorting 2 3 5 7 2 4
Sorting 3 2 3 4 5 7
def mergeSort(X):
if len(X)>1:
mid = len(X)//2
lefthalf = X[:mid]
righthalf = X[mid:]
mergeSort(lefthalf)
mergeSort(righthalf)
i=j=k=0
X[k]=lefthalf[i]
i=i+1
else:
X[k]=righthalf[j]
j=j+1
k=k+1
X[k]=lefthalf[i]
i=i+1
k=k+1
X[k]=righthalf[j]
j=j+1
k=k+1
print("Merging ",X)
X = [22,10,15,3,8,2]
mergeSort(X)
dilakukan perbagian.
QUICK SORTING
turun.
Iterasi 1
22 10 15 3 8 2
22
10 15 3 8 2 22
Iterasi 2
10 15 3 8 2 22
10
3 8 2 10 15 22
Iterasi 3
3 8 2 10 15 22
2 3 8 10 15 22
BINARY SEARCH
langkah 1
langkah 1
dicari
Contoh:
Dicari 3
Langkah Pencariannya:
awal = 1
akhir = len(data) + 1
ketemu = False
if key == data[tengah]:
ketemu = True
akhir = tengah - 1
else:
awal = tengah + 1
if not ketemu:
BinSearch(data, 3)
Hasil Program:
Teknik D AND C
Teknik D AND C
• Contoh :
9 bilangan :
1,5
4,5
1,9
6,9
1,2 3,3
1,5 22,-8
6,9 60,17
1,9 60,-8
Teknik D AND C (Lanjutan)
Tugas Kelompok
METODE SORTING
METODE SORTING
1. Selection Sort
2. Bubble Sort
3. Insertion Sort
1. Pengertian Sorting
(Sitorus, 2015).
SELECTION SORT
telah disorting.
Contoh : 22 10 15 3 8 2
Iterasi 1
123456
Langkah 1 : 22 10 15 3 8 2
Langkah 2 : 22 10 15 3 8 2
Langkah 3 : 2 10 15 3 8 22
Iterasi 2
Langkah 1 : 2 10 15 3 8 22
Langkah 2 : 2 10 15 3 8 22
Langkah 3 : 2 3 15 10 8 22
Iterasi 3
Langkah 1 : 2 3 15 10 8 22
Langkah 2 : 2 3 15 10 8 22
Langkah 3 : 2 3 8 10 15 22
Langkah 1 : 2 3 8 10 15 22
Langkah 2 : 2 3 8 10 15 22
Langkah 3 : 2 3 8 10 15 22
Iterasi 5
Langkah 1 : 2 3 8 10 15 22
Langkah 2 : 2 3 8 10 15 22
Langkah 3 : 2 3 8 10 15 22
Iterasi 6
Langkah 1 : 2 3 8 10 15 22
Langkah 2 : 2 3 8 10 15 22
Langkah 3 : 2 3 8 10 15 22
ilustrasi
22 10 15 3 8 2
22 10 15 3 8 2
2 10 15 3 8 22
2 3 15 10 8 22
2 3 8 10 15 22
2 3 8 10 15 22
Contoh Program:
def SelectionSort(val):
for i in range(len(val)-1,0,-1):
Max=0
for l in range(1,i+1):
if val[l]>val[Max]:
Max = l
temp = val[i]
val[i] = val[Max]
val[Max] = temp
Angka = [22,10,15,3,8,2]
SelectionSort(Angka)
print(Angka)
BUBBLE SORTING
elemen-elemen berikutnya.
Awal 5 7 3 2 4
Awal 5 7 3 2 4
Iterasi 1
57324
Tidak Tukar
Awal
Iterasi 1
57324
Tukar
Awal
Iterasi 1 5 3
77
57324
Tukar
Awal
Iterasi 1 5 3 2
77
57324
Tukar
Awal
Iterasi 1 3 2 4 7
Awal 5 7 3 2 4
Iterasi 1 5 3 2 4 7
Iterasi 2 7
Awal 5 7 3 2 4
Iterasi 1 5 3 2 4 7
Tukar
Iterasi 2
37
Awal 5 7 3 2 4
Iterasi 1 5 3 2 4 7
Tukar
Iterasi 2
327
Awal 5 7 3 2 4
Iterasi 1 5 3 2 4 7
Tukar
Iterasi 2
32457
Awal 5 7 3 2 4
Iterasi 1 5 3 2 4 7
Iterasi 2 3 2 4 5 7
Iterasi 3 5 7
Awal 5 7 3 2 4
Iterasi 1 3 2 4 7
Iterasi 2
32457
Tukar
Iterasi 3 2 5 7
Awal 5 7 3 2 4
Iterasi 1 5 3 2 4 7
Iterasi 2 3 2 4 5 7
Tidak Tukar
Iterasi 3 2 3 4 5 7
Awal 5 7 3 2 4
Iterasi 1 5 3 2 4 7
Iterasi 2 3 2 4 5 7
Iterasi 3 2 3 4 5 7
Iterasi 4 4 5 7
Awal 5 7 3 2 4
Iterasi 1 5 3 2 4 7
Iterasi 2 3 2 4 5 7
Iterasi 3
23457
Tidak Tukar
Iterasi 4
23457
Awal 5 7 3 2 4
Iterasi 1 3 2 4 7
Iterasi 2 3 2 4 5 7
Iterasi 3 2 3 4 5 7
Iterasi 4 2 3 4 5 7
Awal 5 7 3 2 4
Iterasi 1
Awal 5 7 3 2 4
Iterasi 1
Tidak Tukar
Awal 5 7 3 2 4
Iterasi 1
Tukar
Awal 5 7 3 2 4
Iterasi 1
Tukar
4
2
Awal 5 7 3 2 4
Iterasi 1
Tukar
2573
Awal 5 7 3 2 4
Iterasi 1 2 5 7 3 4
Iterasi 2 2
Awal 5 7 3 2 4
Iterasi 1 2 5 7 3 4
Iterasi 2 2
Tidak Tukar
Iterasi 1 2 5 7 3 4
Iterasi 2 2
Tukar
Awal 5 7 3 2 4
Iterasi 1 2 5 7 3 4
Iterasi 2 2
Tukar
357
Awal 5 7 3 2 4
Iterasi 1 2 5 7 3 4
Iterasi 2 2 3 5 7 4
Iterasi 3 2 3
Awal 5 7 3 2 4
Iterasi 1 2 5 7 3 4
Iterasi 2 2 3 5 7 4
Iterasi 3 2 3
Tukar
Awal 5 7 3 2 4
Iterasi 1 2 5 7 3 4
Iterasi 2 2 3 5 7 4
Iterasi 3 2 3
Tukar
45
Awal 5 7 3 2 4
Iterasi 1 2 5 7 3 4
Iterasi 2 2 3 5 7 4
Iterasi 3 2 3 4 5 7
Iterasi 4 2 3 4
Awal 5 7 3 2 4
Iterasi 1 2 5 7 3 4
Iterasi 2 2 3 5 7 4
Iterasi 3 2 3 4 5 7
Iterasi 4 2 3 4
Tidak Tukar
57
Awal 5 7 3 2 4
Iterasi 1 2 5 7 3 4
Iterasi 2 2 3 5 7 4
Iterasi 3 2 3 4 5 7
Iterasi 4 2 3 4 5 7
Contoh program:
def BubbleSort(X):
for i in range(len(X)-1,0,-1):
Max=0
for l in range(1,i+1):
if X[l]>X[Max]:
Max = l
temp = X[i]
X[i] = X[Max]
X[Max] = temp
Hasil = [22,10,15,3,8,2]
BubbleSort(Hasil)
print(Hasil)
Hasil program:
(Rahayuningsih, 2016).
pengecekan
4. Jika data pada posisi index lebih kecil maka data tersebut
Awal 5 7 3 2 4
INSERTION SORT
INSERTION SORT
Awal 5 7 3 2 4
Index
Iterasi 1
INSERTION SORT
Awal 5 7 3 2 4
Index
Iterasi 1 5 7 3 2 4
INSERTION SORT
Awal 5 7 3 2 4
Index
Iterasi 1 5 7 3 2 4
Iterasi 2
INSERTION SORT
Awal 5 7 3 2 4
Index
Iterasi 1 5 7 3 2 4
Iterasi 2 2 4
INSERTION SORT
Awal 5 7 3 2 4
Index
Iterasi 1 5 7 3 2 4
Iterasi 2 3 5 7 2 4
INSERTION SORT Lanjutan
INSERTION SORT
Awal 5 7 3 2 4
Index
Iterasi 1 5 7 3 2 4
Iterasi 2 3 5 7 2 4
Iterasi 3
INSERTION SORT
Awal 5 7 3 2 4
Index
Iterasi 1 5 7 3 2 4
Iterasi 2 3 5 7 2 4
Iterasi 3 4
INSERTION SORT
Awal 5 7 3 2 4
Index
Iterasi 1 5 7 3 2 4
Iterasi 2 3 5 7 2 4
Iterasi 3
23574
INSERTION SORT
Awal 5 7 3 2 4
Index
Iterasi 1 5 7 3 2 4
Iterasi 2 3 5 7 2 4
Iterasi 3 2 3 5 7 4
Iterasi 4
INSERTION SORT
Awal 5 7 3 2 4
Index
Iterasi 1 5 7 3 2 4
Iterasi 2 3 5 7 2 4
Iterasi 3 2 3 5 7 4
Iterasi 4 2 3 4 5 7
INSERTION SORT
Awal 5 7 3 2 4
Iterasi 1 5 7 3 2 4
Iterasi 2 3 5 7 2 4
Iterasi 3 2 3 5 7 4
Iterasi 4 2 3 4 5 7
Contoh program:
def InsertionSort(val):
a = val[index]
b = index
val[b]=val[b-1]
b = b-1
val[b]=a
Angka = [22,10,15,3,8,2]
InsertionSort(Angka)
print(Angka)
Hasil program:
lama.
cepat.
PERTEMUAN 12
Teknik Searching
dan
TEKNIK SEARCHING
b. Teknik StraitMAXMIN
Algoritma :
1. Tentukan I = 1
I>N
Dicari 15
Langkah pencariannnya:
Langkah 1: A[1] = 10
Langkah 2: 15 = 15
Contoh 2
i=0
pos = i + 1
while(i<len(data)):
if data[i] == key:
break
i+=1
pos=i+1
else:
return pos
data=[10, 4, 9, 1, 15, 7]
seqSearch(data,15)
Hasil Program:
b. Teknik STRAITMAXMIN
pemrograman Python :
def STRAITMAXMIN(A,n):
max = A[0]
min = A[0]
for i in range(1,n):
else
min = A[i]
Mulai
Selesai
max=A[0]
min=A[0]
i=1
i<n
A[i]>max A[i]<min
max=A[i] min=A[i]
i+=1
*Keterangan
B = Benar
S = Salah
BEST CASE
Contoh :
A[3]=10.
Mulai
Selesai
max=A[0]
min=A[0]
i=1
i<n
A[i]>max A[i]<min
max=A[i] min=A[i]
i+=1
*Keterangan
B = Benar
S = Salah
P = Perbandingan
B
S
2 4 5 10
Max 4 5 10
Min 2 2 2
P111
Total Perbandingan = 3
bilangan Max=10,
perbandingan.
WORST CASE
satuan operasi.
Contoh :
Mulai
Selesai
max=A[0]
min=A[0]
i=1
i<n
A[i]>max A[i]<min
max=A[i] min=A[i]
i+=1
*Keterangan
B = Benar
S = Salah
P = Perbandingan
80 21 6 -10
Max 80 80 80
Min 21 6 -10
P222
Total Perbandingan = 6
AVERAGE CASE
• Jumlah prediksi operasi Perbandingan yang dilakukan adalah ratarata waktu tempuh best case &
worst case, yaitu:
Contoh:
Mulai
Selesai
max=A[0]
min=A[0]
i=1
i<n
A[i]>max A[i]<min
max=A[i] min=A[i]
i+=1
B = Benar
S = Salah
P = Perbandingan
5 -4 9 7
Max 5 9 9
Min -4 -4 -4
P212
Total Perbandingan = 5
Contoh: A = { 5, -4, 9, 7 }
Operasi Perbandingan : 5
Worst Case
*note
Worst Case seperti merge sort dan quick sort. Dimana best case lebih baik
quick sort namun worst case lebih baik merge sort sehingga untuk
Case
METODE GREEDY
METODE GREEDY
serakah.
by step).
1. Fungsi Tujuan/Utama
penukaran tersebut?
berikut:
32 = 1 + 1 + … + 1 (32 koin)
32 = 5 + 5 + 5 + 5 + 10 + 1 + 1 (7 koin)
32 = 10 + 10 + 10 + 1 + 1 (5 koin)
… dst
• Minimum: 32 = 25 + 5 + 1 + 1 (4 koin)
masalah-masalah :
2. Knapsack Problem
L1
,L2
,L3
...,Ln
(sequential).
nj
ik
j=1 k=1
/n
j=1
Contoh soal:
penyimpanannya?
Penyelesaiannya:
1. Menemukan 2 kriteria greedy
optimal solution
3!=3x2x1=6
yang optimal,sbb :
(L1
,L2
,L3
) = (5,10,3)
(Increasing)
2. KNAPSACK Problem
karung.
Kasus:
berbeda-beda.
max=M.
dengan:
1. Secara Matematika
2. Kriteria Greedy
tampung ransel.
Fungsi Pembatas : Wi Xi M
i=1
dimana : 0 Xi 1; Pi >0;Wi>0
yaitu :
terbesar
Contoh:
, W2
, W3
(P1
, P2
, P3
(W1
, W2
, W3
(P1
, P2
, P3
Penyelesaiannya:
Barang nilai profit terbesar adalah barang ke-1, maka yang pertama
ransel/W2=2/15
(X1
,X2
,X3
(W1
, W2
, W3
(P1
, P2
, P3
Penyelesaiannya:
10/15=2/3
(X1
,X2
,X3
Profit dibagi Berat (Pi/Wi) yang diurut secara tidak naik, yaitu :
(W1
, W2
, W3
(P1
, P2
, P3
Penyelesaiannya:
/Wi
) terbesar adalah barang ke-2, maka yang
=5/10=1/2
Setelah barang ke-3 terpilih, sisa kapasitas ransel adalah 0kg, maka
(X1
,X2
,X3
Greedy
Solusi ke (X1
,X2
,X3
) WiXi PiXi
Pi Max ( 1, 2/15, 0) 20
( 0, 2/3, 1) 20 (25.0)+(24.(2/3))
+(15.1) = 31
Wi Min
(25.1) + (24.(2/15))
+ (15.0) = 28.2
(25.0) + (24.1) +
(15.(1/2)) = 31.5
INTEGER i, n
X(1:n) = 0
isi = M
FOR i = 1 TO n DO
X(i) = 1
REPEAT
Keterangan:
n = Jumlah objek
M = Kapasitas media
penyimpanan
Efektif jika data (Pi/Wi) disusun secara tidak naik lebih dahulu.
Penyelesaiannya :
Dengan Algoritma Pemrograman Greedy.
misalnya :
Lalu data2
x(1:n) 0 ; isi 20 ; i = 1
sisa 5kg i =2
yaitu 5 kg.
i=3
dan
Penyelesaiannya:
x(1:n) 0 ; isi 20 ; i = 1
FOR i 1 TO 3
Saat i=2
dimuat ½ bag = 5
Apakah i ≤ n? → 2 ≤ 3?
index = list(range(len(value)))
max_value = 0
fractions = [0]*len(value)
for i in index:
if weight[i] <= capacity:
fractions[i] = 1
max_value += value[i]
capacity -= weight[i]
else:
fractions[i] = capacity/weight[i]
max_value += value[i]*capacity/weight[i]
break
.format(n)).split()
Kodingan Program 1
.format(n)).split()
M = 20, n=3
Outputnya :
algoritma tersebut. Selain itu teknik ini akan efektif jika objek
Pi/Wi.
Tugas Mandiri
yag dibeli adalah beras dengan berat 14 ton nilai profit Rp.28 Juta,
barang kedua gula seberat 10 ton nilai profit Rp.40 juta, barang
ketiga adalah Kentang dengan berat 20 ton nilai profit Rp.70 Juta,
Pengertian Graph
graph adalah:
1. Travelling Salesman
4. Coloring (Pewarnaan)
1. TRAVELLING SALESMAN
seminimal mungkin.
Permasalahan:
minimal.
GREEDY:
Misalnya :
12
8 10 7
11
12
11
10
MODEL GRAPH
Langkah penyelesaian:
berikut :
12
43
10
12
(tree).
minimum.
(connected)
(label graph)
• Lakukan secara urut dari simpul ruas awal s/d ruas akhir
ruas
tree
Kriteria :
√ graph terhubung
√ graph tidak berarah
12
43
10
30
20
55
40
35
15
45 50
25
(1,2) 10
(2,6) (25)
12
12
(3,6) 15
(4,6) 20
12
12
43
10
25
15
20
35
berarah.
tersebut :
(graph berarah).
CDF
45
20
15
10 15 20 35
50 10
30
A – B, A – C, A – D, A – E
Penyelesaian
• A – B = 50
• A – C – D – B = 10 + 15 + 20 = 45
• A – E – D – B = 45 + 35 + 20 = 100
A – C – D – B = 45
• A – C = 10
• A – B – C = 50 + 15 = 65
• A – B – E – D – B – C = 50 + 10 + 35 + 20 + 15 = 130
A – C = 10
• A – C – D = 10 + 15 = 25
• A – B – E – D = 50 + 10 + 35 = 95
• A – B – C – D = 50 + 15 + 15 = 80
• A – E – D = 45 + 35 = 80
A – C – D = 25
• A – E = 45
• A – B – E = 50 + 10 = 60
• A – C – D – B – E = 10 + 15 + 20 + 10 = 55
• A – C – D – E = 10 + 15 + 30 = 55
A – E = 45
A – C 10
A – C – D 25
A – C – D – B 45
A – E 45
SHORTEST PATH PROBLEM (Lanjutan)
mungkin
4. COLORING (PEWARNAAN)
Permasalahan :
A ke B, A ke C, A ke D, B ke C, B ke D, E ke B, E ke C
dan E ke D
EC
AC
AB BC
ED
BD EB
warna baru.
yang sama
AD
EC
AC
AB BC
ED
BD EB P H
Putih = ( AC, AD )
Hitam = ( BD, EB )
Merah = ( EC )
Catatan :
dinyatakan dengan :
Fase 1:
Fase 2:
Fase 3:
MHS A B C D E F
1010010
2001100
3100010
4100001
5010100
6011000
7100001
8001100
mata kuliah.
sekaligus.
bentrok.
berwarna sama.
dengan Warna
Keterangan:
P -> Putih
M -> Merah
H -> Hijau
berdampingan)
• Simpul merah = F, E, D
• Simpul Putih = A, B
• Simpul hijau = C
Catatanapa