BAB 2 LANDASAN TEORI 2.. Kosep Dasar Graph Sebelum sampai pada defiisi masalah litasa terpedek, terlebih dahulu pada bagia ii aka diuraika megeai kosep-kosep dasar dari model graph da represetasiya dalam memodelka masalah litasa terpedek. Defiisi 2.. Graph didefiisika sebagai pasaga himpua (V, E), dega V adalah himpua titik (vertex) da E adalah himpua sisi (edge) (Chacra et al, 979, hal:5). Secara umum graph dapat digambarka dega suatu diagram dega titik dituukka sebagai titik yag diotasika dega v i, i =, 2,, da sisi digambarka dega sebuah garis lurus atau garis legkug yag meghubugka dua buah titik (v i, v ) da diotasika dega e k. Sebagai ilustrasi dapat dilihat Gambar 2. yaitu suatu graph yag mempuyai lima titik da eam sisi.
Gambar 2.. Graph 5 titik da 6 sisi Defiisi 2.2. Loop adalah sisi yag berawal da berakhir pada titik yag sama, sedagka sisi paralel (edge paralel) adalah dua sisi atau lebih berbeda yag meghubugka dua buah titik v i da v yag sama. Gambar 2.2. Graph dega 6 titik da 0 sisi Pada Gambar 2.2 dapat dilihat bahwa e 4 adalah sebuah loop da e serta e 2 adalah dua buah sisi yag paralel. Defiisi 2.3. Graph sederhaa adalah graph yag tidak memuat loop da sisi-sisi paralel. Misalka V = (v, v 2, v 3, v 4, v 5 ) da E=(e, e 2, e 3, e 4, e 5, e 6 ), maka G=(V,E) adalah graph sederhaa yag dapat dilihat pada Gambar 2.. Defiisi 2.4. Suatu edge e k dalam suatu graph G dega titik-titik uug v i da v disebut salig icidet dega v i da v, sedagka v i da v ii disebut dua buah titik yag salig
adacet. Jika kedua edge tersebut icidet pada suatu titik persekutua, maka dua buah edge e k da e m disebut salig adacet. Pada Gambar 2.2 dapat dilihat bahwa e 8, e 7, e 9 adalah tiga buah sisi yag icidet dega v 6, sedagka e 5 da e 7 adalah adacet. Defiisi 2.5. Degree dari sbuah titik v i dalam graph G adalah umlah sisi yag icidet dega v i. Dega loop dihitug dua kali. Degree dari sebuah titik v i biasaya diotasika dega d(v i ). Pada Gambar 2.2 dapat dilihat bahwa d(v ) = 2, d(v 2 ) = 4, d(v 3 ) = 5, d(v 4 ) = 2, d(v 5 ) =2, d(v 5 ) = 3, da d(v 6 ) = 3. Defiisi 2.6. Suatu walk dalam sebuah graph G(V,E) adalah suatu barisa berhigga dari titik da sisi secara bergatia yag dimulai da diakhiri dega titik sehigga setiap sisi icidet dega titik sebelum da sesudahya, di maa sebuah sisi haya dilalui satu kali. Di dalam suatu walk pada sebuah graph dapat teradi bahwa satu titik dilalui lebih dari satu kali. Defiisi 2.7. Suatu Graph Berarah G terdiri dari himpua titik V(G): {v, v 2, }, himpua sisi E(G): {e, e 2, }, da suatu fugsi yag meghubugka setiap sisi dalam E(G) ke suatu pasaga beruruta titik (v i,v ). Jika e k = (v i,v ) adalah suatu sisi dalam G, maka v i disebut titik awal e k da v disebut titik akhir e k. Arah sisi adalah dari v i ke v.
Berikut ii Gambar 2.3. Gambar 2.3. Digraph G 2.2. Graph Berlabel Hubuga atar titik dalam graph perlu diperelas. Hubuga tidak cukup haya meuukka titik maa yag berhubuga lagsug, tetapi uga seberapa kuat hubuga itu. Titik graph meyataka kota-kota yag ada di daerah tersebut. Sisi-sisi dalam graph meyataka ala yag meghubugka kota-kota tersebut. Iformasi tetag peta daerah perlu diperelas dega mecatumka arak atara 2 kota yag berhubuga. Iformasi tetag arak dibutuhka karea dalam graph, letak titik da paag sisiya tidak meyataka arak 2 kota yag sebearya. Jadi setiap garis dalam graph berhubuga dega suatu label yag meyataka bobot garis tersebut. Defiisi 2.8. Graph Berlabel (labelled graph) adalah suatu graph tapa sisi paralel di maa setiap sisiya berhubuga dega suatu bilaga riil tak egatif yag meyataka ilai sisi (w(e)) tersebut. Jumlah ilai semua sisi disebut Total Nilai.
Matriks yag bersesuaia dega graph berlabel G adalah adacecy. Jika matriks A = (a i ) dega a i = ilai sisi yag meghubugka titik v i ke titik v maka a i =, da a i = 0 ika i =. Cotoh: Dalam suatu propisi, ada 8 kota (v, v 2,..., v 8 ) yag aka dihubugka dega ariga listrik. Biaya pemasaga ariga listrik yag mugki dibuat atar 2 kota sebagai berikut: Tabel 2. Biaya Pemasaga Jariga Listrik Sisi Kota yag dihubugka Biaya per satua e4 v2 - v3 3 e7 v4 - v6 4 e2 v - v7 5 e8 v3 - v4 5 e9 v3 - v5 5 e v - v2 5 e3 v - v4 5 e0 v6 - v8 5 e5 v7 - v8 5 e v5 - v6 5 e6 v6 - v7 8 a. Graph berlabel utuk meyataka ariga listrik di 8 kota dapat digambarka pada Gambar 2.3. Agka dalam kurug meyataka ilai sisi yag bersagkuta. Nilai tersebut meyataka biaya pegadaa ariga listrik.
Gambar 2.4. Graph Berlabel Jariga Listrik 8 Kota b. Adacecy Matriks utuk meyataka graph berlabel pada Gambar 2.3. adalah matriks A = (a i ) dega a i = biaya titik v i dega v. Utuk sisi yag meghubugka titik v i dega v. v v 2 V 3 v 4 v 5 v 6 v 7 v 8 v 0 5 5 5 v 2 5 0 3 v 3 3 0 5 5 A= v 4 5 5 0 4 v 5 5 0 5 v 6 4 5 0 8 5 v 7 5 8 0 5 Keteraga: v 8 5 5 0 = tidak ada sisi yag meghubugka titik v i dega v 0 = Utuk i sama dega Misalka G adalah sebuah graph berarah. Sebuah sisi berarah e = (v i,v ) dikataka mulai pada titik awal v i da berakhir di titik akhir v, v i da v dikataka adacet.
2.3. Litasa Miimum Salah satu aplikasi graph berarah berlabel yag serig dipakai adalah mecari litasa terpedek diatara 2 titik. Apabila masalahya adalah mecari litasa terpedek tetap dapat diguaka dega cara meggati ilai sisi. Defiisi 2.9. Misalka G adalah suatu graph, utuk v da w adalah titik dalam G. suatu Walk dari v ke w adalah barisa titik da sisi secara berselag-selig, diawali dari titik v da diakhiri pada titik w. Walk dega paag dari v ke w ditulis : v 0 e v e 2 v 2 v -2 e v deg v 0 = v: v = w; v i- da v i adalah titik-titik uug sisi e i. Litasa dega paag dari v ke w adalah walk dari v ke w yag semua sisiya berbeda. Litasa dari v ke w dituliska sebagai v = v 0 e v e 2 v 2 v - e v = w dega e i e utuk i. Peulisa berikutya aka diperguaka otasi: v i v, A = {v v 2, v 2 v 3,... } Defiisi 2.0. Litasa tertutup adalah suatu barisa sisi e, e,..., e i i2 i sedemikia rupa sehigga titik termial e berimpit dega titik awal i i( ) e utuk k. Pada Gambar 2.2 terdapat: a. Pada titik v e v2 e3 v3 e4 v3 e5 v4 semua sisi berbeda ( e, e3, e4, da e 5 ) masig-masig mucul sekali. Ada titik yag berulag ( v 3 mucul 2 kali). Titik awal da titik akhir tidak sama dega titik awal = v da titik akhir = v 4, Barisa ii merupaka litasa dari v v 4 dega paag 4. b. Pada titik v e v2 e3 v3 e5 v4 e5 v3 e6 v5 ada sisi yag mucul lebih dari sekali, yaitu e 5 (mucul 2 kali) berarti barisa tersebut merupaka walk dari v v 5 dega paag 5.
2.4. Litasa Terpedek (Shortest Path) Setiap litasa dalam digraph mempuyai ilai yag dihubugka dega ilai path tersebut, yag ilaiya adalah umlah dari ilai sisi litasa tersebut. Dari ukura dasar ii dapat dirumuska masalah seperti mecari litasa terpedek atara dua titik da memiimumka biaya. Bayak bidag peerapa mesyaratka utuk meetuka litasa terpedek berarah dari asal ke tuua di dalam suatu distribusi alira berarah. Algoritma yag diberika dapat dimodifikasi dega mudah utuk meghadapi litasa berarah pada setiap iterasiya. Suatu versi yag lebih umum dari masalah litasa terpedek adalah meetuka litasa terpedek dari sembarag titik meuu ke setiap titik laiya. Piliha laiya adalah membuag kedala tak egatif bagi arak. Suatu kedala lai dapat uga diberlakuka dalam suatu masalah litasa terpedek. Defiisi 2.. Litasa terpedek atara dua titik dari s ke t dalam ariga adalah litasa graph berarah sederhaa dari s ke t dega syarat tidak ada litasa lai yag memiliki ilai teredah. Cotoh. 3 x 3 x 2 x 4 2 x 2 3 x 5 x 7 2 5 x 8 4 3 5 x 6 Gambar 2.5. Litasa Terpedek (Shortest path) (garis tebal)
Pada Gambar 2.5 dapat dilihat bahwa v berada pada titik, 2, 3, 4, 5 da x, x 2, x 3, x 4, x 5, x 6, x 7, x 8 merupaka e (sisi). Sisi merepresetasika salura dega kapasitas tertetu (cotohya :air) dapat dialirka melalui salura. Sedagka titik merepresetasika persimpaga salura. air megalir melalui titik pada titik yag dilalui, litasa terpedek dari titik pada Gambar 2.5 adalah P = { 4,4 5} dega kapasitas 4. 2.5 Pemrograma Liier (Liear Programmig) Pemrograma Liier adalah suatu betuk dari pemrograma matematika. Ii adalah suatu kasus khusus dari Pemrograma Liier utuk semua (atau beberapa) variabel dibatasi sebagai bilaga cacah tak egatif. Utuk semua variabel dibatasi sebagai bilaga cacah, persoalaya disebut persoala program bilaga cacah muri, da kalau beberapa variabel tertetu dibatasi sebagai bilaga cacah campura. Suatu betuk khusus dari program bilaga cacah ialah suatu kasus di maa variabel dibatasi harus berharga ol atau satu. Kalau variabel dibatasi seperti ii, maka persoalaya disebut persoala Pemrograma (0/). Perumusa Pemrograma Liier dapat membatu prosedur peyelesaia lebih efisie. Berikut ii adalah betuk umum Pemrograma Liier: Miimumka dega kedala a a.. a x a2 x2... a x b c x c x... c x 2 2...()...(2) 2 x a22 x2... a2 x b2 x a x... a 2 2 x b x, x,..., 2 0....(3) x
Pada Pemrograma Liier ii, x, x2,..., x mewakili keputusa variabel yag tidak diketahui; c,...,, c2 c adalah biaya koefisie; b, b2,..., b adalah ilai di sampig kaa; da a i, i sampai m da sampai, diamaka koefisie tekologi. Peryataa () diamaka fugsi obektif; (2) diamaka kedala; da (3) adalah kedala tidak egatif. Beberapa peyelesaia memeuhi semua kedala, diamaka feasible solutio. Pada perumusa ii, kedala ditulis dalam betuk persamaa. Umumya, kedala Pemrograma Liier mempuyai relasi atau tetapi selalu dapat diubah dalam persamaa dega peumlaha slack variabel. Fugsi obektif () uga dapat diekpresika sebagai maksimum sebagai peggati miimum. Peulisa matematika tersebut, dapat dirumuska meadi: Miimumka c x dega kedala a i x b, i,2,..., i x 0,,2,..., 2.6 Pemrograma Bilaga Bulat (Iteger Programmig) Salah satu asumsi tekik Pemrograma Liier adalah divisibility atau fractioality. Dega kata lai, setiap variabel model dapat teradi pada semua ilai o egatif, suatu ilai solusi yag kotiu. Dalam situasi keputusa tertetu, asumsi ii tidak realistik da tidak dapat diterima.
Defiisi 2.2. Pemrograma Bilaga Bulat adalah suatu Pemrograma Liier dega tambaha persyarata bahwa semua atau beberapa variabel berilai bulat tidak egatif, tetapi tidak perlu bahwa parameter model uga berilai bulat. Ada bayak kasus dalam masalah Pemrograma Bilaga Bulat yag membatasi variabel model berilai ol atau satu. Dalam kasus demikia, persoala litasa haya memiliki dua piliha yaitu masuk atau keluar dari ariga. Utuk variabel ii berilai satu, persoala masuk, utuk variabel berilai ol, persoala keluar. Dalam masalah Pemrograma Bilaga Bulat, utuk setiap persoala yag megharapka semua variabel basis berilai iteger (bulat positif atau ol), diamaka pure(all) iteger programmig. Utuk setiap persoala yag haya megharapka variabel-variabel tertetu berilai iteger, diamaka mixed iteger programmig. Utuk setiap persoala yag haya megharapka ilai ol atau satu utuk variabelya, diamaka zero oe iteger programmig. Walaupu persoala umum Pemrograma Liier 0/ dapat diselesaika dega Cuttig Plae Algorithm atau Brach-ad-Boud. Balas megembagka suatu algoritma eumerative yag efisie da mearik utuk meyelesaika persoala ii. Sagat sigkat sebagai dasar Iteger NoLiear Programmig. Fugsi diguaka utuk meyamarataka kesalaha metode utuk meyelesaika persoala All Iteger Programmig da Mixed-Iteger NoLiear Programmig. Peyelesaia Pemrograma Bilaga Bulat seperti Pemrograma Liier, dega rumus berikut ii:
Miimumka ci x m i m m m x i x ki 0 k Kedala i utuk utuk utuk i i m x 0 i,,2,..., m i 2.7 Kapsack Algoritma Pemrograma 0/ merupaka salah satu tipe persoala Kapsack dega keadaa tertetu teradi, masig-masig keadaa mempuyai sebuah ilai yag dihubugka dega besaraya. Secara yata bahwa solusi optimal dari persoala Kapsack aka meuukka kemugkia yag terbaik. Pada masalah ii aka terdorog utuk meyelesaika suatu persoala dalam meetuka litasa terpedek pada suatu graph dega kedala biaya da waktu atau arak sehigga meghasilka solusi yag optimal. Pedekata sederhaa dapat dimasukka ke dalam program komputer utuk memeriksa semua harga 0/ yag mugki, dipilih yag terbaik yag memeuhi kedala. Cotoh. Persoala Kapsack Seorag pedaki guug igi membawa semua peralata yag ia perluka dalam satu katog (sack) saa, Misalka ada seumlah peralata yag diperluka, tetapi berat seluruhya tidak boleh melebihi b kg. Misalka eis peralata ialah x da, x 0 utuk utuk alat alat ke ke ikut tidak ikut
Berdasarka keteraga tersebut, persoala dapat dirumuska sebagai berikut: Maksimumka dega kedala f c x c x... c x a x 2 a x... a 2 2 2 x b x,... x2 x 0 atau Persoala ii merupaka persoala Kapsack sebagai persoala (0/). Defiisi 2.3. 0/ atau bier, persoala Kapsack yaitu masukka dari item da suatu Kapsack, Pilih subset dari item sebagai: Maksimumka z p x dega kedala w x c, x = 0 atau, N{,..., } Utuk x 0 utuk Laiya obek memeuhi Keteraga: p = keutuga dari item, w = bobot dari item, c = kapasitas dari Kapsack.
2.8 Pemrograma Diamik (Dyamic Programmig) Pemrograma Diamik adalah tekik maaeme sai yag diaplikasika kepada persoala yag melibatka keputusa beruruta yag salig berkaita. Program ii dikembagka oleh Richard Bellma da G. B Datzig pada tahu 940 950. Sebagai sebuah kosep, Pemrograma Diamik lebih luwes dibadig program optimasi laiya. Aplikasi Pemrograma Diamik lebih luwes dibadig program program optimasi laiya. Aplikasi Pemrograma Diamik sudah terbukti baik pada pegelolaa persediaa, ariga, peadwala kera utuk karyawa, pegedalia produksi, perecaaa peuala da bidag laiya. Pemrograma Diamik adalah metode pemecaha masalah dega cara meguraika solusi meadi sekumpula lagkah (step) atau tahapa (stage) sedemikia sehigga solusi dari persoala dapat dipadag dari seragkaia keputusa yag salig berkaita. Pada peyelesaia persoala dega metode Pemrograma Diamik ii terdapat seumlah berhigga piliha yag mugki, solusi pada setiap tahap dibagu dari hasil solusi tahap sebelumya, peulis megguaka optimasi da kedala utuk membatasi seumlah piliha yag harus dipertimbagka pada suatu tahap. 2.8. Kosep Dasar Dalam Pemrograma Diamik a. Dekomposisi Persoala Pemrograma Diamik dapat dipecah meadi sub persoala atau tahapa yag lebih kecil da beruruta. Setiap tahap uga sebagai titik keputusa. Setiap keputusa yag dibuat pada suatu tahap aka mempegaruhi keputusa-keputusa pada tahap berikutya.
b. Status Status adalah kodisi awal (S) da kodisi akhir (S-) pada setiap tahap tersebut keputusa dibuat (D). Status akhir pada setiap tahap tergatug kepada status awal da keputusa yag dibuat pada tahap yag bersagkuta. Status akhir pada suatu tahap merupaka iput bagi tahap berikutya. c. Variabel Keputusa da Hasil Keputusa yag dibuat pada setiap tahap (D) merupaka keputusa yag berorietasi kepada retur yag diakibatkaya (R/ ), tigkat maksimal atau miimal. d. Fugsi Trasisi Fugsi trasisi meelaska secara pasti tahap-tahap yag salig berhubuga. Fugsi ii berbetuk fugsi hubuga atar status pada setiap tahap yag beruruta. Fugsi trasisi secara umum berbetuk: S- = S D, di maa S- = status pada tahap - atau status akhir pada tahap-. S adalah status awal pada tahap-. Kompoe pada setiap tahap dapat digambarka sebagai berikut: Gambar 2.6 Tahapa Fugsi Trasisi
e. Optimasi Tahap Optimasi tahap dalam Pemrograma Diamik adalah meemuka keputusa optimal pada setiap tahap dari berbagai kemugkia ilai status iputya. Fugsi umum dari keputusa optimal adalah: F(S, D) = retur pada tahap- dari ilai status iput S, da keputusa D. F*(S) = retur optimal pada tahap- dari ilai iput status S. f. Fugsi Rekursif Fugsi rekursif biasaya diguaka berbagai program komputer, utuk setiap ilai sebuah variabel pada fugsi itu merupaka ilai kumulatif dari ilai variael tersebut pada tahap sebelumya. Pada Pemrograma Diamik, fugsi umum dituliska sebagai: f(s, D) = R + f-*(s-, D-) Prosedur optimasi diawali dari tahap awal meuu tahap akhir (forward). Karakteristik program diamis adalah: a. Persoala dapat dipisahka meadi beberapa tahap (stages), utuk setiap tahap membutuhka keputusa kebiaka yag baku da salig berhubuga. Gambar 2.7 Tahapa Baku b. Setiap tahap memiliki seumlah status (state). Secara umum, sekumpula status ii merupaka berbagai kemugkia yag timbul dari sistem persoalaya. Status ii memberika iformasi yag dibutuhka setiap keputusa da dampakya pada tahap berikutya. Jumlah status pada setiap tahap bisa defiitif atau ifiitif.
c. Setiap keputusa kebiaka yag dibuat pada suatu tahap, status pada tahap tersebut ditrasformasi ke dalam status yag berkaita pada tahap berikutya. Hubuga atar status pada tahap yag beruruta bisa bersifat determiistik atau probabilistik. Pada persoala dega -tahap, ada 2 (dua) iput, yaitu: () state pada tahap- (S) da variabel keputusa (X). Sedagka outputya adalah: () retur atau akibat dari setiap X yag dipilih, f(s,x) da (2) status baru yag meadi iput pada tahap berikutya (S-). Hubuga atara X da f(s,x) ditemuka oleh retur fuctio. Sedag hubuga atar status pada tahap tertetu ditetuka oleh trasitio fuctio Gambar 2.8. Retur da Trasitio Fuctio d. Solusi pada Pemrograma Diamik berprisip kepada optimalitas yag dikembagka oleh Bellma. e. Keputusa pada tahap berikutya bersifat idepede terhadap keputusa sebelumya. Utuk meyelesaika persoala Pemrograma Diamik, dimulai dari solusi awal pada suatu tahap da secara beruruta meuu tahap berikutya dega proses iduksi mudur (backward iductio process).
f. Solusi optimal yag dihasilka pada setiap tahap berprisip kepada hubuga dalam betuk fugsi rekursif (recursio relatioship). Secara umum betuk fugsi rekursif adalah: F*(S) = max/mi {f(s, X)} Utuk setiap f*(s) = hasil optimal dari keputusa pada tahap-. 2.8.2 Aalisa Algoritma Pemrograma Diamik Pemrograma Diamik adalah metode pemecaha masalah dega cara meguraika solusi meadi sekumpula lagkah (step) atau tahapa (stage) sedemikia sehigga solusi dari persoala dapat dipadag dari seragkaia keputusa yag salig berkaita. Pada peyelesaia persoala dega Pemrograma Diamik terdapat seumlah berhigga piliha yag mugki. Solusi pada setiap tahap dibagu dari hasil solusi tahap sebelumya, peulis megguaka persyarata optimasi da kedala utuk membatasi seumlah piliha yag harus dipertimbagka pada suatu tahap. Pada Pemrograma Diamik, ragkaia keputusa yag optimal dibuat dega megguaka Prisip Optimalitas. Prisip Optimalitas: ika solusi total optimal, maka bagia solusi sampai tahap ke-k uga optimal. Prisip optimalitas berarti bahwa ika peulis bekera dari tahap k ke tahap k +, peulis dapat megguaka hasil optimal dari tahap k tapa harus kembali ke tahap awal, ogkos pada tahap k+ = (ogkos yag dihasilaka pada tahap k) + (ogkos dari tahap k ke tahap k +). Dega prisip optimalitas ii diami bahwa pegembalia keputusa pada suatu tahap adalah keputusa yag bear utuk tahap-tahap selautya.
2.8.3 Dua Pedekata Algoritma Pemrograma Diamik Dua pedekata yag diguaka dalam Pemrograma Diamik yaitu: mau (forward atau up-dow) da mudur (backward atau bottom up). Misalka x, x 2, x 3,, x meyataka variabel keputusa yag harus dibuat masig-masig utuk tahap, 2,,, yaitu:. Pemrograma Diamik mau. Pemrograma Diamik bergerak mulai dari tahap, terus mau ke tahap 2, 3, da seterusya sampai tahap, uruta variabel keputusa adalah x, x 2, x 3,, x. Peulis disii megguaka Program Diamik Mau. 2. Pemrograma Diamik mudur. Pemrograma Diamik bergerak mulai dari tahap, terus mudur ke tahap -, -2, da seterusya sampai tahap, uruta variabel keputusa adalah x, x -, x -2,, x. Lagkah-lagkah Pegembaga Algoritma Pemrograma Diamik:. Karakteristik struktur solusi optimal. 2. Defiisika secara rekursif ilai solusi optimal. 3. Hitug ilai solusi optimal secara mau atau mudur. 4. Kostruksi solusi optimal. 2.8.4 Algoritma Pemrograma Diamik Algoritma Pemrograma Diamik adalah sebagai berikut: Lagkah 0 (iisialisasi): Lagkah : Iisialisasi s i 0 da di mai utuk i,2,..., a. Isi s a dega (karea titik a adalah titik asal litasa terpedek, adi sudah pasti terpilih). b. Isi d a dega (tidak ada loop dari titik a ke a)
Lagkah 2, 3,, -: a. Cari sedemikia sehigga 0 b. Isi s dega c. Perbarui d i, utuk s da d d, d,..., mi 2 d i,2,3,..., dega: d ( baru) mid ( lama), d m i i i 2.9 Visual Basic 6.0 Visual Basic adalah bahasa pemrograma yag diguaka utuk membuat aplikasi Widows yag berbasis grafis (GUI-Graphical User Iterface). Visual Basic merupaka eve drive programmig (pemrograma terkedali keadia), artiya program meuggu sampai adaya respo dari pemakai berupa eve atau keadia tertetu (tombol diklik, meu pilih, da lai-lai). Ketika eve terdeteksi, kode yag berhubuga dega evet (prosedur evet) aka dialaka. Berikut ii adalah poi-poi terpetig dalam searah perkembaga Visual Basic sebagai berikut: a. Visual Basic pertama kali diperkealka tahu 99 yaitu program Visual Basic utuk DOS da utuk Widows. b. Visual Basic 3.0 dirilis tahu 993. c. Visual Basic 4.0 dirilis pada akhir 995 (tambaha dukuga utuk aplikasi 32 bit. d. Visual Basic 5.0 dirilis pada tahu 997. e. Visual Basic terbaru adalah Versi 6.0 yag dirilis pada akhir tahu 998. Pada umumya Microsoft selaku pembuat Visual Basic membuat 3 (tiga) edisi Visual Basic, yaitu: a. Stadard Editio merupaka produk pasar. b. Profesioal Editio yag berisi tambaha Microsoft Jet Data Acces Esgie (Database) da pembuata server OLE automatio.
c. Eterprise Editio adalah edisi Cliet-Server. Visual Basic selai disebut sebagai sebuah bahasa pemrograma, uga serig disebut sebagai saraa utuk meghasilka program-program aplikasi berbasis Widows. Beberapa mafaat dari Visual Basic adalah:. Mudah dalam membuat program aplikasi berbasis Widows. 2. Memiliki compiler hadal yag dapat megui program (debuggig) serta dapat meghasilka program akhir berakhira EXE yag bersifat executable atau dapat lagsug dialaka. 3. Memiliki beberapa tambaha istruksi atau peritah Wizard. Wizard adalah saraa yag mempermudah di dalam pembuata aplikasi dega megotomatisasi tugastugas tertetu. 4. Saraa akses data yag lebih cepat da hadal utuk membuat aplikasi database yag berkemampua tiggi.