BAB IV Penyusunan Algoritma - digilib.itb.ac.id · BAB IV Penyusunan Algoritma Algoritma pewarnaan...

18
BAB IV Penyusunan Algoritma Algoritma pewarnaan titik pada graf dengan sisi kabur untuk pengaturan lampu lalu lintas 55 BAB IV Penyusunan Algoritma 4.1 Penyusunan Algoritma Pada bab sebelumnya telah dimodelkan permasalahan lampu lalu lintas kedalam pewarnaan titik pada graf kabur. Selanjutnya dari bentuk model ini akan disusun suatu algoritma pemrograman berdasarkan bahasa pemrograman Borland Delphi 7. Dalam penyusunan algoritma pemrograman ini digunakan dua macam algoritma sebagai acuan. Algoritma yang jadi acuan ini adalah algoritma degree of saturation (DSATUR) dan algoritma Backtracking Sequential Coloring (BSC). Algoritma pemrograman yang akan disusun dibagi kedalam tahap-tahap berikut : a. Penentuan derajat tiap titik b. Pengurutan titik-titik secara descending c. Pencarian degree of saturation d. Penentuan himpunan warna bebas (U) e. Pencarian nilai U terkecil f. Backtracking Sequential Coloring (BSC)

Transcript of BAB IV Penyusunan Algoritma - digilib.itb.ac.id · BAB IV Penyusunan Algoritma Algoritma pewarnaan...

Page 1: BAB IV Penyusunan Algoritma - digilib.itb.ac.id · BAB IV Penyusunan Algoritma Algoritma pewarnaan titik pada graf dengan sisi kabur untuk pengaturan lampu lalu lintas 57 begin max:=1;

BAB IV Penyusunan Algoritma

Algoritma pewarnaan titik pada graf dengan sisi kabur untuk pengaturan lampu lalu lintas

55

BAB IV

Penyusunan Algoritma

4.1 Penyusunan Algoritma

Pada bab sebelumnya telah dimodelkan permasalahan lampu lalu lintas

kedalam pewarnaan titik pada graf kabur. Selanjutnya dari bentuk model ini akan

disusun suatu algoritma pemrograman berdasarkan bahasa pemrograman Borland

Delphi 7.

Dalam penyusunan algoritma pemrograman ini digunakan dua macam

algoritma sebagai acuan. Algoritma yang jadi acuan ini adalah algoritma degree of

saturation (DSATUR) dan algoritma Backtracking Sequential Coloring (BSC).

Algoritma pemrograman yang akan disusun dibagi kedalam tahap-tahap

berikut :

a. Penentuan derajat tiap titik

b. Pengurutan titik-titik secara descending

c. Pencarian degree of saturation

d. Penentuan himpunan warna bebas (U)

e. Pencarian nilai U terkecil

f. Backtracking Sequential Coloring (BSC)

Page 2: BAB IV Penyusunan Algoritma - digilib.itb.ac.id · BAB IV Penyusunan Algoritma Algoritma pewarnaan titik pada graf dengan sisi kabur untuk pengaturan lampu lalu lintas 57 begin max:=1;

BAB IV Penyusunan Algoritma

Algoritma pewarnaan titik pada graf dengan sisi kabur untuk pengaturan lampu lalu lintas

56

(*================fungsi menentukan derajat tiap titik=================*)

function GetDegOne(AdMat : Matrix; Kelas : integer): ColorArray;

var

i, j : integer;

begin

for i:=1 to n do

Result[i]:=0;

for i:=1 to n do

for j:=1 to n do

if (AdMat[i,j] <= Kelas)and(AdMat[i,j] > 0)

then

Result[i]:=Result[i]+1;

end;

(*============fungsi mengurutkan titik secara descending===============*)

function OrderingVertex(deg : ColorArray) : VertexArray;

var

i, j, max : integer;

tempDeg : VertexArray;

begin

for i:=1 to n do

tempDeg[i]:=deg[i]; // deg[i]= derajat titik i

for i:=1 to n do

Page 3: BAB IV Penyusunan Algoritma - digilib.itb.ac.id · BAB IV Penyusunan Algoritma Algoritma pewarnaan titik pada graf dengan sisi kabur untuk pengaturan lampu lalu lintas 57 begin max:=1;

BAB IV Penyusunan Algoritma

Algoritma pewarnaan titik pada graf dengan sisi kabur untuk pengaturan lampu lalu lintas

57

begin

max:=1;

for j:=2 to n do

if tempDeg[j]>tempDeg[max] then

max:=j;

Result[i-1]:=max;

tempDeg[max]:=-1;

end;

end;

(*===============prosedur pencarian degree of saturation===============*)

function GetDSaturOne(AdMat : Matrix ; deg, F : ColorArray; Kelas : integer) :

integer;

var

i, j, degs, maxdegs, v : integer; // degs= derajat saturasi titik

DiffColors : ColorSet;

begin

maxdegs:=-1;

for i:=1 to n do

begin

if F[i]=0 then

begin

degs:=0;

DiffColors:=[];

for j:=1 to n do

Page 4: BAB IV Penyusunan Algoritma - digilib.itb.ac.id · BAB IV Penyusunan Algoritma Algoritma pewarnaan titik pada graf dengan sisi kabur untuk pengaturan lampu lalu lintas 57 begin max:=1;

BAB IV Penyusunan Algoritma

Algoritma pewarnaan titik pada graf dengan sisi kabur untuk pengaturan lampu lalu lintas

58

if ((AdMat[i,j]<=Kelas)and(AdMat[i,j]>0)and((F[j]<>0)and not(F[j] in

DiffColors)))then

begin

inc(degs);

DiffColors:=DiffColors+[F[j]];

end;

if (degs>maxdegs) or ((degs=maxdegs)and(deg[i]>deg[v])) then

begin

maxdegs:=degs;

v:=i;

end;

end;

end;

Result:=v;

end;

(*==========prosedur menentukan himpunan warna bebas(U)=============*)

function GetUOne(AdMat : Matrix; Col, OCN, v : integer; F : ColorArray; Kelas :

integer):ColorSet;

var

i, UB, temp: integer;

SNC : ColorSet; // himpunan warna verteks yang bertetangga

U : ColorSet;

begin

SNC:=[];

Page 5: BAB IV Penyusunan Algoritma - digilib.itb.ac.id · BAB IV Penyusunan Algoritma Algoritma pewarnaan titik pada graf dengan sisi kabur untuk pengaturan lampu lalu lintas 57 begin max:=1;

BAB IV Penyusunan Algoritma

Algoritma pewarnaan titik pada graf dengan sisi kabur untuk pengaturan lampu lalu lintas

59

for i:=1 to n do

begin

temp := AdMat[i,v];

if ((temp <= Kelas) and (temp > 0) and (F[i]<>0)) then

SNC:=SNC+[F[i]];

end;

U:=[];

UB:= min(Col+1,OCN-1);

for i:=1 to UB do

if not(i in SNC) then

U:=U+[i];

Result:=U;

end;

(*===================fungsi mencari nilai U terkecil=================*)

function MinValue(U : ColorSet): integer;

var

i : integer;

begin

for i:=1 to MaxVertex do

If i in U then break;

Result:=i;

end;

Page 6: BAB IV Penyusunan Algoritma - digilib.itb.ac.id · BAB IV Penyusunan Algoritma Algoritma pewarnaan titik pada graf dengan sisi kabur untuk pengaturan lampu lalu lintas 57 begin max:=1;

BAB IV Penyusunan Algoritma

Algoritma pewarnaan titik pada graf dengan sisi kabur untuk pengaturan lampu lalu lintas

60

function fmax(Fopt:ColorArray):byte;

var

i, max : byte;

begin

max:=1;

for i:=2 to n do

if Fopt[i]>Fopt[max] then

max:=i;

Result:=Fopt[max];

end;

(*========================fungsi BSC==========================*)

function BSCOne(AdMat : Matrix ; nVertex : integer; Kelas : integer) : ColorArray;

var

i, j, v : integer;

A : VertexArray; // A urutan verteks berdasarkan derajat secara descending

U : ColorSet; // Himpunan warna bebas

start, optColorNumber, C, l : integer;

freeColors : array[1..MaxVertex]of ColorSet;

colors : array[-1..MaxVertex]of integer;

back : Boolean;

VerDeg, Fopt, F : ColorArray;

begin

n:=nVertex; // nVertex= banyak titik

for i:=1 to n do // derajat saturasi setiap titik=0

F[i]:=0;

Page 7: BAB IV Penyusunan Algoritma - digilib.itb.ac.id · BAB IV Penyusunan Algoritma Algoritma pewarnaan titik pada graf dengan sisi kabur untuk pengaturan lampu lalu lintas 57 begin max:=1;

BAB IV Penyusunan Algoritma

Algoritma pewarnaan titik pada graf dengan sisi kabur untuk pengaturan lampu lalu lintas

61

VerDeg:=GetDegOne(AdMat, Kelas); // menentukan derajat setiap titik

A:=OrderingVertex(VerDeg); // pengurutan derajat titik secara descending

start:=0;

optColorNumber:=n+1;

v:=A[0];

colors[-1]:=0;

U:=[1];

freeColors[v]:=U;

while (start>=0) do // setiap titik diwarnai pada loop dibawah ini

begin

back:=false;

for i:= start to n-1 do

begin

if i>start then // cari titik yang belum diwarnai dan mempunyai derajat

saturasi terbesar

begin

v:=GetDSaturOne(AdMat, VerDeg, F, Kelas);

U:=GetUOne(AdMat,colors[i-1],optColorNumber,v, F, Kelas);

end;

if U<>[] then

begin

C:=MinValue(U); // warna bebas yang dipilih

F[v]:=C; // pewarnaan untuk titik v

freeColors[v]:=U-[C];

Page 8: BAB IV Penyusunan Algoritma - digilib.itb.ac.id · BAB IV Penyusunan Algoritma Algoritma pewarnaan titik pada graf dengan sisi kabur untuk pengaturan lampu lalu lintas 57 begin max:=1;

BAB IV Penyusunan Algoritma

l:=colors[i-1];

colors[i]:= max(C,l);

end

else // U = ∅ dilakukan penelusuran kembali, mundur satu posisi

begin

start:=i-1;

back:=true;

break; // keluar dari loop for

end;

end; // akhir loop for

if back then

begin

if start>=0 then

begin

v:=A[start]; // titik awal yang baru

F[v]:=0; // hapus warna v

U:=freeColors[v];

end;

end

else // loop diatas dilalui tanpa berhenti

begin

for i:=1 to n do

Fopt[i]:=F[i]; // menyimpan pewarnaan yang optimal pada saat ini

optColorNumber:=colors[n-1];

Algoritma pewarnaan titik pada graf dengan sisi kabur untuk pengaturan lampu lalu lintas

62 for i:=0 to n-1 do

Page 9: BAB IV Penyusunan Algoritma - digilib.itb.ac.id · BAB IV Penyusunan Algoritma Algoritma pewarnaan titik pada graf dengan sisi kabur untuk pengaturan lampu lalu lintas 57 begin max:=1;

BAB IV Penyusunan Algoritma

if F[A[i]]=optColorNumber then // i = indeks terkecil dimana

F[A[i]]=optColorNumber

break;

start:=i-1;

if start<0 then

break; // keluar dari loop while

for j:=start to n-1 do

F[A[j]]:=0; // hapus warna A[j], dimana j start≥

for i:=0 to start do

begin

v:=A[i];

U:=freeColors[v];

for j:=optColorNumber to MaxVertex do

U:=U-[j]; // semua warna optColorNumber dihilangkan dari U ≥

freeColors[v]:=U;

end; // disini v= A[start]; U=freecolors(v)

end;

end; // akhir dari loop while

Fopt[n+1]:=fmax(Fopt); //Bilangan Kromatik

Result:=Fopt;

end;

end.

Algoritma pewarnaan titik pada graf dengan sisi kabur untuk pengaturan lampu lalu lintas

63

Page 10: BAB IV Penyusunan Algoritma - digilib.itb.ac.id · BAB IV Penyusunan Algoritma Algoritma pewarnaan titik pada graf dengan sisi kabur untuk pengaturan lampu lalu lintas 57 begin max:=1;

BAB IV Penyusunan Algoritma

4.2 Simulasi Program Untuk Beberapa Kasus Permasalahan Lampu

Lalu Lintas

Pada bab sebelumnya telah dimodelkan permasalahan lampu lalu lintas ke

dalam bentuk pewarnaan titik pada graf kabur. Di awal bab ini pula, telah disusun

suatu algoritma pemrograman dari bentuk model yang telah dilakukan sebelumnya.

Selanjutnya akan diberikan suatu simulasi dari algoritma pemrograman yang telah

disusun ini sebagai salah satu cara dalam memodelkan permasalahan lampu lalu

lintas.

4.2.1 Implementasi Algoritma

Antar muka dari perangkat lunak yang dibuat seperti pada gambar dibawah ini :

Gambar 4.1

Algoritma pewarnaan titik pada graf dengan sisi kabur untuk pengaturan lampu lalu lintas

64

Page 11: BAB IV Penyusunan Algoritma - digilib.itb.ac.id · BAB IV Penyusunan Algoritma Algoritma pewarnaan titik pada graf dengan sisi kabur untuk pengaturan lampu lalu lintas 57 begin max:=1;

BAB IV Penyusunan Algoritma

Langkah-langkah pengoperasian perangkat lunak adalah sebagai berikut :

Tentukan μ pada kolom banyak tingkat intensitas sisi. μ atau tingkat

intensitas sisi ini merupakan kasus-kasus yang akan diselidiki. Sebagai contoh,

misal 3μ = maka dapat dinyatakan 1μ = sebagai kondisi tingkat keterkaitan

high, 2μ = sebagai kondisi tingkat keterkaitan medium dan 3μ = sebagai

kondisi tingkat keterkaitan low. Setelah banyak tingkat intensitas sisi diisi

kemudian klik enter.

Isi banyak titik dari graf G. Titik yang diisi merupakan banyaknya lintasan

yang akan dimodelkan. Setelah itu klik enter.

Graf acak dapat di generate dengan memasukkan kepadatan sisi yang

direpresentasikan dengan angka 1 sampai 10 atau dengan mengisi sendiri

matriks ketetanggaannya. Dalam mengisi matriks ketetanggaan, keterkaitan

antara satu titik dengan titik lainnya bergantung pada μ yang ditentukan

sebelumnya. Sebagai gambaran, apabila 3μ = maka untuk titik-titik yang

dianggap memiliki keterkaitan high dapat diisikan pada matriks

ketetanggaannya dengan angka 1, apabila tingkat keterkaitan diantara titik

dianggap medium dapat diisikan dengan angka 2 dan 3 untuk titik dengan

tingkat keterkaitan low.

Setelah semua input yang dibutuhkan telah dimasukkan, klik tombol proses

coloring.

Untuk melihat hasil untuk setiap μ , dapat dilihat dengan mengeklik pada

gambar sesuai dengan kondisi μ yang ingin diamati. Sebagai gambaran,

apabila kondisi pada 1μ = yang ingin diamati maka pada gambar dapat

dipilih angka 1.

Algoritma pewarnaan titik pada graf dengan sisi kabur untuk pengaturan lampu lalu lintas

65

Page 12: BAB IV Penyusunan Algoritma - digilib.itb.ac.id · BAB IV Penyusunan Algoritma Algoritma pewarnaan titik pada graf dengan sisi kabur untuk pengaturan lampu lalu lintas 57 begin max:=1;

BAB IV Penyusunan Algoritma

4.2.2 Simulasi Program Untuk Permasalahan Sederhana Lampu Lalu Lintas

Misalkan suatu sistem lampu lalu lintas di suatu perempatan jalan digambarkan

sebagai berikut :

A

B D

C

Gambar 4.2

Bentuk model dari masalah ini telah dilakukan sebelumnya, selanjutnya akan

dimodelkan kembali permasalahan ini dengan menggunakan simulasi program.

Langkah-langkah yang akan dilakukan adalah sebagai berikut :

Masukan input sesuai dengan data yang dapat diamati berdasarkan gambar

4.2.

Gambar 4.3

Algoritma pewarnaan titik pada graf dengan sisi kabur untuk pengaturan lampu lalu lintas

66

Page 13: BAB IV Penyusunan Algoritma - digilib.itb.ac.id · BAB IV Penyusunan Algoritma Algoritma pewarnaan titik pada graf dengan sisi kabur untuk pengaturan lampu lalu lintas 57 begin max:=1;

BAB IV Penyusunan Algoritma

Setelah setiap input dimasukkan akan didapatkan hasil simulasi untuk setiap

μ nya sebagai berikut :

Gambar 4.4 hμ = Gambar 4.5 mμ =

Gambar 4.6 lμ =

Algoritma pewarnaan titik pada graf dengan sisi kabur untuk pengaturan lampu lalu lintas

67

Page 14: BAB IV Penyusunan Algoritma - digilib.itb.ac.id · BAB IV Penyusunan Algoritma Algoritma pewarnaan titik pada graf dengan sisi kabur untuk pengaturan lampu lalu lintas 57 begin max:=1;

BAB IV Penyusunan Algoritma

Hasil simulasi diatas menunjukkan bahwa :

Pada saat hμ = , periode lampu hijau pada lampu lalu lintas adalah dua.

Pada saat mμ = , periode lampu hijau pada lampu lalu lintas adalah dua.

Pada saat lμ = , periode lampu hijau pada lampu lalu lintas adalah tiga.

Hasil simulasi ini menunjukkan hasil yang sama dengan model matematika lampu

lalu lintas pada bab sebelumnya.

4.2.3 Simulasi Program Untuk Permasalahan Lampu Lalu Lintas Daerah

Pertigaan Sukajadi

Sistem lampu lalu lintas di daerah pertigaan Sukajadi digambarkan sebagai

berikut :

A B

C

Gambar 4.7

Bentuk model dari masalah ini telah kita lakukan sebelumnya, selanjutnya akan

dimodelkan kembali permasalahan ini dengan menggunakan simulasi program.

Langkah-langkah yang akan dilakukan adalah sebagai berikut :

Masukan input sesuai dengan data yang dapat diamati berdasarkan gambar

4.7.

Algoritma pewarnaan titik pada graf dengan sisi kabur untuk pengaturan lampu lalu lintas

68

Page 15: BAB IV Penyusunan Algoritma - digilib.itb.ac.id · BAB IV Penyusunan Algoritma Algoritma pewarnaan titik pada graf dengan sisi kabur untuk pengaturan lampu lalu lintas 57 begin max:=1;

BAB IV Penyusunan Algoritma

Gambar 4.8

Setelah setiap input dimasukkan akan didapatkan hasil simulasi untuk setiap

μ nya sebagai berikut :

Gambar 4.9 hμ = Gambar 4.10 lμ =

Algoritma pewarnaan titik pada graf dengan sisi kabur untuk pengaturan lampu lalu lintas

69

Page 16: BAB IV Penyusunan Algoritma - digilib.itb.ac.id · BAB IV Penyusunan Algoritma Algoritma pewarnaan titik pada graf dengan sisi kabur untuk pengaturan lampu lalu lintas 57 begin max:=1;

BAB IV Penyusunan Algoritma

Hasil simulasi diatas menunjukkan bahwa :

Pada saat hμ = , periode lampu hijau pada lampu lalu lintas daerah pertigaan

Sukajadi adalah tiga.

Pada saat lμ = , periode lampu hijau pada lampu lalu lintas daerah pertigaan

Sukajadi adalah tiga.

Hasil simulasi ini menunjukkan hasil yang sama dengan model matematika lampu

lalu lintas daerah pertigaan Sukajadi pada bab sebelumnya.

4.2.4 Simulasi Program Untuk Permasalahan Lampu Lalu Lintas Daerah

Perempatan Merdeka

Sistem lampu lalu lintas di daerah perempatan Merdeka digambarkan sebagai

berikut :

Algoritma pewarnaan titik pada graf dengan sisi kabur untuk pengaturan lampu lalu lintas

70

Gambar 4.11

Bentuk model dari masalah ini telah kita lakukan sebelumnya, selanjutnya akan

dimodelkan kembali permasalahan ini dengan menggunakan simulasi program.

Langkah-langkah yang akan dilakukan adalah sebagai berikut :

Masukan input sesuai dengan data yang dapat diamati berdasarkan gambar

4.11.

A

B D

C

Page 17: BAB IV Penyusunan Algoritma - digilib.itb.ac.id · BAB IV Penyusunan Algoritma Algoritma pewarnaan titik pada graf dengan sisi kabur untuk pengaturan lampu lalu lintas 57 begin max:=1;

BAB IV Penyusunan Algoritma

Gambar 4.12

Setelah setiap input dimasukkan akan didapatkan hasil simulasi untuk setiap

μ nya sebagai berikut :

Gambar 4.13 hμ = Gambar 4.14 mμ =

Algoritma pewarnaan titik pada graf dengan sisi kabur untuk pengaturan lampu lalu lintas

71

Page 18: BAB IV Penyusunan Algoritma - digilib.itb.ac.id · BAB IV Penyusunan Algoritma Algoritma pewarnaan titik pada graf dengan sisi kabur untuk pengaturan lampu lalu lintas 57 begin max:=1;

BAB IV Penyusunan Algoritma

Algoritma Pewarnaan titik graf fuzzy pada pengaturan lampu lalu lintas

7268

Gambar 4.15 lμ =

Hasil simulasi diatas menunjukkan bahwa :

Pada saat hμ = , periode lampu hijau pada lampu lalu lintas daerah

perempatan Merdeka adalah dua.

Pada saat mμ = , periode lampu hijau pada lampu lalu lintas daerah

perempatan Merdeka adalah dua.

Pada saat lμ = , periode lampu hijau pada lampu lalu lintas daerah

perempatan Merdeka adalah tiga.

Hasil simulasi ini menunjukkan hasil yang sama dengan model matematika lampu

lalu lintas daerah perempatan Merdeka pada bab sebelumnya.