PARADIGMA VOL. IX. NO. 3, AGUSTUS 2007 ANALISA ALGORITMA DENGAN TABEL KEMUNGKINAN OUTPUT PADA LOGIKA LOOPING DALAM PROGRAM APLIKASI BAHASA PEMROGRAMAN VISUAL BASIC Oleh: Rini Nuraini ABSTRAK Salah satu kelebihan komputer dibandingkan dengan manusia adalah kemampuannya untuk melaksanakan suatu instruksi berulangkali tanpa mengenal lelah dan bosan. Pengulangan atau kalang (repetition atau loop) dapat dilakukan sejumlah kali, atau sampai kondisi berhenti pengulangan tercapai. Logika adalah suatu bentuk penalaran atau pemikiran, sedangkan Algoritma adalah suatu urutan dari barisan langkah-langkah atau instruksi untuk menyelesaikan suatu masalah. Analisis atau analisa adalah kajian yang dilaksanakan terhadap sebuah bahasa guna meneliti struktur bahasa tersebut secara mendalam dengan cara memecah-mecah bahasa tersebut menjadi bagian-bagian kecil yang lebih mudah dipelajari, kemudian mempelajari bagian-bagian kecil tersebut, lalu mengambil kesimpulannya. Visual basic adalah salah satu bahasa pemrograman komputer. Bahasa pemrograman adalah perintah-perintah atau instruksi yang dimengerti oleh komputer untuk melakukan tugas-tugas tertentu. Tugas-tugas tertentu ini berupa program aplikasi yang dibentuk dengan menggunakan salah satu bahasa pemrograman komputer. I.
PENDAHULUAN Untuk menulis struktur algoritma dari pengulangan (logika looping) terdiri dari dua bagian, yaitu: a. Kondisi pengulangan. Yaitu ekspresi boolean (bernilai true atau false) yang harus dipenuhi untuk melaksanakan pengulangan. b. Badan (body) pengulangan. Yaitu satu atau lebih aksi yang akan diulang. Selain dua hal di atas, struktur logika looping juga disertai dengan bagian: a. Inisialisasi. Yaitu aksi yang dilakukan sebelum pengulangan dilakukan pertama kali. b. Terminasi. Yaitu aksi yang dilakukan setelah pengulangan selesai dilaksanakan. Untuk menggambarkan logika dari program dibutuhkan simbol-simbol yang sudah terstandarisasi, supaya bisa saling memahami antara seorang programmer yang menggambarkan logika program dan user pembaca logika program tersebut.
Adapun simbol-simbol tersebut diberi nama Flowchart, berikut adalah simbol dari program flowchart : :
Terminator
:
Decision
:
Input atau Output
:
Flow Line
:
Subroutine
:
Process
:
Preparation
:
Off Page Connector
:
On Page Connector
Gambar I.1. Simbol Flowchart
PARADIGMA VOL. IX. NO. 3, AGUSTUS 2007
Dalam pembahasan ini, ada tiga macam notasi algoritma dari logika looping, yaitu: 1. Struktur WHILE-DO Bentuk penulisan: while
aksi endwhile Dengan logika: Aksi (atau runtunan aksi) akan dilaksanakan berulangkali selama boolean masih tetap bernilai true. Jika bernilai false, badan (body) pengulangan tidak akan dilaksanakan, atau pengulangan selesai. 2. Struktur REPEAT-UNTIL Bentuk umum penulisan: repeat aksi util Dengan logika: Aksi (atau runtunan aksi) akan dilaksanakan berulangkali selama boolean masih tetap bernilai false. Jika bernilai true, badan (body) pengulangan tidak akan dilaksanakan, atau pengulangan selesai. 3. Struktur FOR Bentuk umum penulisan : for peubah nilai_awal to nilai akhir do aksi endfor engan logika: Pengulangan akan dilakukan hingga batas tertentu, atau berulang sebanyak nilai yang sudah ditentukan pada nilai_awal hingga nilai_akhir. Peubah (variabel) diinisialisasi dengan nilai_awal. Nilai peubah (variabel) secara otomatis bertambah satu setiap kali aksi pengulangan dilakukan, sampai akhirnya nilai peubah (variabel) sama dengan nilai_akhir.
Untuk penulisan logika looping dalam notasi bahasa pemrograman visual basic, adalah sebagai berikut: 1. Do While (dalam algoritma WHILE-DO) Sintaks : Do while (kondisi) … ekspresi … Loop
Do While (kondisi)
False
True (… ekspresi …) Loop
Ekspresi berikutnya
Gambar I.2. Flowchart Do While 2. Do Until (dalam algoritma REPEATUNTIL) Sintaks : Do until (kondisi) … ekspresi … Loop
Do Until (kondisi)
True
False (… ekspresi …) Loop
Ekspresi berikutnya
Gambar I.2. Flowchart Do Until 3. For Next (dalam algoritma FOR) Sintaks : For counter = NilaiAwal To NilaiAkhir [step kenaikan] … ekspresi … Next counter
For counter = NilaiAwal To NilaiAkhir True (… ekspresi …) Loop
Next counter
False
PARADIGMA VOL. IX. NO. 3, AGUSTUS 2007
II.
Gambar I.2. Flowchart Do Until PEMBAHASAN 2.1. Program aplikasi: Mengulangi Bilangan.
Tabel II.1. Tabel Kemungkinan Output Analisa Algoritma Aplikasi Program Mengulangi Bilangan dengan While-Do
Analisa algoritma: Menurut Munir [1999, Hal.125], logika looping do while-loop (dalam algoritma DO-WHILE) adalah aksi (atau runtunan aksi) akan dilaksanakan berulangkali selama boolean masih tetap bernilai True. Jika bernilai False badan (body) pengulangan tidak akan dilaksanakan, atau pengulangan selesai. Badan (body) pengulangan yaitu di antara do while sampai loop. Jika nilai awal yang dimasukkan ke dalam program aplikasi tersebut adalah angka lima (5) yang merupakan variabel yang dimasukkan pada Kolom Awal pada program tersebut, maka terjadi proses pengujian variabel angka pada variabel tersebut, apakah 5 < 10, hasil nilai boolean true maka masuk ke badan (body) looping yaitu mengerjakan intruksi angka = angka + 1 berarti 6 = 5 + 1, dengan demikian variabel angka berubah menjadi angka enam (6). Sekarang variabel angka sudah menjadi angka enam (6) berikutnya dilakukan pengujian lagi apakah 6 < 10, hasil nilai boolean true maka masuk ke badan (body) looping yaitu mengerjakan intruksi angka = angka + 1 berarti 7 = 6 + 1, dengan demikian variabel angka berubah menjadi tujuh (7).
Sekarang variabel angka sudah menjadi tujuh (7) berikutnya dilakukan pengujian lagi apakah 7 < 10, hasil nilai boolean true maka masuk ke badan (body) looping yaitu mengerjakan intruksi angka = angka + 1 berarti 8 = 6 + 1, dengan demikian variabel angka berubah menjadi delapan (8). Sekarang variabel angka sudah menjadi delapan (8) berikutnya dilakukan pengujian lagi apakah 8 < 10, hasil nilai boolean true maka masuk ke badan (body) looping yaitu mengerjakan intruksi angka = angka + 1 berarti 9 = 7 + 1, dengan demikian variabel angka berubah menjadi sembilan (9). Sekarang variabel angka sudah menjadi sembilan (9) berikutnya dilakukan pengujian lagi apakah 9 < 10, hasil nilai boolean true maka masuk ke badan (body) looping yaitu mengerjakan intruksi angka = angka + 1 berarti 10=9+1. Apakah 10 < 10 hasil nilai boolean false, maka proses pengulangan dihentikan, jadi nilai akhirnya adalah sembilan (9) yang diperoleh dari txtAkhir = angka – 1 dalam hal ini 9 = 10 - 1 dan ditampilkan pada kolom Akhir pada program tersebut. Flowchart:
Pada program yang sama, yaitu Program aplikasi: Mengulangi Bilangan, kita contohkan pada penggunaan perintah looping Do Until, hanya dengan mengganti cuplikan program:
PARADIGMA VOL. IX. NO. 3, AGUSTUS 2007
Menjadi:
Maka analisa dengan tabel kemungkinan hasilnya adalah sebagai berikut: Tabel II.2. Tabel Kemungkinan Output Analisa Algoritma Aplikasi Program Mengulangi Bilangan dengan Do-Until
Analisa algoritma: Logika looping Do-Until (dalam algoritma Repeat-Until) adalah aksi (atau runtunan aksi) akan dilaksanakan berulangkali selama boolean masih tetap bernilai False. Jika bernilai True, badan (body) pengulangan tidak akan dilaksanakan, atau pengulangan selesai. Badan (body) pengulangan yaitu di antara do sampai Until.
Jika nilai awal yang dimasukkan ke dalam program aplikasi tersebut adalah lima (5) yang merupakan variabel yang dimasukkan pada kolom Awal pada program tersebut, maka terjadi proses pengujian variabel angka pada variabel tersebut, apakah 5 > 10, hasil nilai boolean false maka masuk ke badan (body) looping yaitu mengerjakan intruksi angka = angka + 1 berarti 6 = 5 + 1, dengan demikian variabel angka berubah menjadi enam (6). Sekarang variabel angka sudah menjadi enam (6) berikutnya dilakukan pengujian lagi apakah 6 > 10, hasil nilai boolean false maka masuk ke badan (body) looping yaitu mengerjakan intruksi angka = angka + 1 berarti 7 = 6 + 1, dengan demikian variabel angka berubah menjadi tujuh (7). Sekarang variabel angka sudah menjadi tujuh (7) berikutnya dilakukan pengujian lagi apakah 7 > 10, hasil nilai boolean false maka masuk ke badan (body) looping yaitu mengerjakan intruksi angka = angka + 1 berarti 8 = 6 + 1, dengan demikian variabel angka berubah menjadi delapan (8). Sekarang variabel angka sudah menjadi delapan (8) berikutnya dilakukan pengujian lagi apakah 8 > 10, hasil nilai boolean false maka masuk ke badan (body) looping yaitu mengerjakan intruksi angka = angka + 1 berarti 9 = 7 + 1, dengan demikian variabel angka berubah menjadi sembilan (9). Sekarang variabel angka sudah menjadi sembilan (9) berikutnya dilakukan pengujian lagi apakah 9 > 10, hasil nilai boolean false maka masuk ke badan (body) looping yaitu mengerjakan intruksi angka = angka + 1 berarti 10=9+1. Apakah 10 < 10 hasil nilai boolean false, maka proses pengulangan dihentikan, jadi nilai akhirnya adalah sembilan (9) yang diperoleh dari txtAkhir = angka – 1 dalam hal ini 9 = 10 - 1 dan dihasilkan pada kolom Akhir pada program tersebut.
PARADIGMA VOL. IX. NO. 3, AGUSTUS 2007
Flowchart:
2.2.
Program aplikasi: Jumlah Bilangan.
Menghitung
Tabel II.3. Tabel Kemungkinan Output Analisa Algoritma Aplikasi Program Menghitung Jumlah Bilangan
Analisa algoritma: Logika looping For Next (dalam algoritma FOR) pengulangan akan dilakukan hingga batas tertentu, atau berulang sebanyak nilai yang sudah ditentukan pada nilai_awal hingga nilai_akhir. Badan (body) looping di antara for hingga next.
Pada program aplikasi di atas variabel intJumlah berisi nol (0). Untuk variabel intAwal berisi nilai yang dimasukkan pada Text1.Text, jika diisikan angka satu (1) maka variabel intAwal berisi satu (1). Begitu pula halnya untuk variabel intAkhir tergantung pada nilai yang dimasukkan pada Text2.Text, jika nilai yang dimasukkan angka lima (5) maka variabel intAkhir berisi lima (5). Untuk variabel intAngka berdasarkaan ketentuan pada logika Looping For, yaitu untuk pertama kali nilai variabel counter berisi NilaiAwal (lihat sintaks penulisan Visual Basic untuk For) atau sama dengan isi variabel intAwal, dengan demikian pertama kali variabel intAngka berisi satu (1). Berikutnya dilakukan pengecekan pada variabel intAngka apakah diantara variabel intAwal hingga variabel intAkhir dalam hal ini apakah nilai satu (1) di antara nilai satu (1) hingga nilai lima (5) atau 1 = 1 To 5, jika hasil boolean True maka badan (body) looping for dikerjakan yaitu proses intJumlah = intJumlah + intAngka dikerjakan dalam hal ini 1 = 0 + 1, selanjutnya jika badan (body) sudah dikerjakan variabel counter dalam hal ini variabel intAngka bertambah satu, berarti variabel intAngka menjadi dua (2) dan variabel intJumlah menjadi satu (1). Berikutnya dilakukan pengecekan pada variabel intAngka (saat ini sudah menjadi 2) apakah diantara intAwal hingga intAkhir dalam hal ini apakah nilai dua (2) di antara nilai satu (1) hingga lima (5) atau 1 = 1 To 5, jika hasil boolean True maka badan (body) looping for dikerjakan yaitu proses intJumlah = intJumlah + intAngka dikerjakan dalam hal ini 3 = 2 + 1, selanjutnya jika badan (body) sudah dikerjakan variabel counter dalam hal ini variabel intAngka bertambah satu, berarti variabel intAngka menjadi tiga (2) dan variabel intJumlah menjadi satu (3). Berikutnya dilakukan pengecekan pada variabel intAngka (saat ini sudah
PARADIGMA VOL. IX. NO. 3, AGUSTUS 2007
menjadi 3) apakah diantara variabel intAwal hingga variabel intAkhir dalam hal ini apakah nilai tiga (3) di antara nilai satu (1) hingga nilai lima (5) atau 1 = 1 To 5, jika hasil boolean True maka badan (body) looping for dikerjakan yaitu proses intJumlah = intJumlah + intAngka dikerjakan dalam hal ini 6 = 3 + 3, selanjutnya jika badan (body) sudah dikerjakan variabel counter dalam hal ini variabel intAngka bertambah satu, berarti variabel intAngka menjadi tiga (3) dan variabel intJumlah menjadi enam (6). Berikutnya dilakukan pengecekan pada variabel intAngka (saat ini sudah menjadi 4) apakah diantara intAwal hingga intAkhir dalam hal ini apakah nilai empat (4) di antara nilai satu (1) hingga lima (5) atau 1 = 1 To 5, jika hasil boolean True maka badan (body) looping for dikerjakan yaitu proses intJumlah = intJumlah + intAngka dikerjakan dalam hal ini 10 = 4 + 6, selanjutnya jika badan (body) sudah dikerjakan variabel counter dalam hal ini variabel intAngka bertambah satu, berarti variabel intAngka menjadi lima (5) dan variabel intJumlah menjadi 10. Berikutnya dilakukan pengecekan pada variabel intAngka (saat ini sudah menjadi lima (5) apakah diantara intAwal hingga intAkhir dalam hal ini apakah nilai lima (5) di antara nilai satu (1) hingga lima (5) atau 1 = 1 To 5, jika hasil boolean True maka badan (body) looping for dikerjakan yaitu proses intJumlah = intJumlah + intAngka dikerjakan dalam hal ini 15 = 10 + 5, selanjutnya jika badan (body) sudah dikerjakan variabel counter dalam hal ini variabel intAngka bertambah satu, berarti variabel intAngka menjadi lenam (6) dan variabel intJumlah menjadi 15. Pada saat kondisi 6 = 1 To 5 hasil boolean bernilai false, maka proses pengulangan dihentikan dan melakukan intruksi di bawah perintah For-Loop. Maka hasil akhir dari masing-masing variabel adalah:
intJumlah menjadi 15 intAngka menjadi 5 Dan intruksi di bawah perintah For-Loop adalah Text3.Text = intJumlah, berati Text3.Text = 15. Flowchart:
2.3. Program aplikasi : Kolom Baris. Untuk menggambarkan logika dari logika For–Next di dalam logika For–Next atau Nested Looping, berlaku juga untuk logika looping yang lain, diberikan contoh program aplikasi mencentak jumlah Kolom Baris. Listing program Visual Basic.
Tabel II.4. Tabel Kemungkinan Output Analisa Algoritma Aplikasi Kolom Baris
PARADIGMA VOL. IX. NO. 3, AGUSTUS 2007
Analisa algoritma : Loogika looping For Next (dalam algoritma FOR) pengulangan akan dilakukan hingga batas tertentu, atau berulang sebanyak nilai yang sudah ditentukan pada nilai_awal hingga nilai_akhir. Badan (body) looping di antara for hingga next. Untuk loogika looping For Next di dalam For Next, pertama kali yang dilakukan adalah masuk ke dalam For Next yang terluar, berikutnya masuk ke dalam For Next yang ada di dalamnya, selanjutnya melakukan pengulangan di dalam For Next yang di dalam hingga selesai melakukan pengulangan, berikutnya ke luar dari For Next yang di dalam, masuk ke For Next yang di luarnya, lakukan pengulangan, masuk lagi ke dalam For Next yang di dalam, dan seterusnya hingga selesai dari For Next yang di luar. Di awali dengan instruksi program For I=1 to 2, berarti untuk variabel I berdasarkaan ketentuan pada logika Looping For, yaitu untuk pertama kali variabel I bernilai 1 (satu) dari intruksi For I=1 to 2, pada sintaks For Next, nilai variabel pada counter pertama kali adalah bernilai sama dengan nilai dari variabel NilaiAwal, lihat sintaks For Next. Berikutnya dilakukan pengecekan pada variabel I apakah nilai variabel I yang bernilai 1 (satu) diantara angka 1 (satu) sampai 2 (dua), jika True maka kerjakan perintah mencetak perulangan Luar ke : 1. Dilanjutkan dengan mengerjakan intruksi For J=1 to 3, berarti variabel J
bernilai 1 (satu). Berikutnya dilakukan pengecekan pada variabel J apakah nilai variabel J yang bernilai 1 (satu) diantara angka 1 (satu) sampai 3 (dua), jika True maka kerjakan perintah mencetak Loop dalam ke : 1. - (I, J) = (1, 1). Setelah melakukan pengulangan, pada logika For–Next, nilai variabel otomatis bertambah 1 (satu), default-nya bertambah satu jika step kenaikan tidak ditentukan. Berarti sekarang variabel J sudah menjadi 2 (dua). Berikutnya dilakukan pengecekan pada variabel J apakah nilai variabel J yang sekarang bernilai 2 (dua) diantara angka 1 (satu) sampai 3 (tiga), jika True maka kerjakan perintah mencetak Loop dalam ke : 2. - (I, J) = (1, 2). Pengulangan dilakukan lagi, terjadi lagi penambahan nilai pada variabel J, berarti sekarang variabel J sudah menjadi 3 (tiga). Berikutnya dilakukan pengecekan lagi pada variabel J apakah nilai variabel J yang sekarang bernilai 3 (tiga) diantara angka 1 (satu) sampai 3 (tiga), jika True maka kerjakan perintah mencetak Loop Dalam ke : 3. (I, J) = (1, 3). Pada saat variabel J berisi 4 (empat) lalu dilakukan pengecekan pada variabel J, yang bernilai 4 (empat) tersebut, apakah diatara nilai 1 (satu) sampai tiga (tiga), jawabnya adalah False, dengan demikian pengulangan dihentikan. Selanjutnya keluar dari looping For J = 1 to 3, masuk ke looping For I = 1 to 2 kembali. Pada intruksi For I=1 to 2, sekarang variabel I sudah otomatis bertambah 1 (satu), sekarang sudah menjadi variabel I bernilai 2 (dua). Berikutnya melakukan pengecekan pada variabel I, apakah nilai variabel I diantara 1 (satu) sampai 2 (dua), jika jika True maka kerjakan perintah mencetak Loop luar ke : 2, selanjutnya masuk lagi ke intruksi For J=1 to 3, selanjutnya melakukan kembali intruksi pengecekan pada variabel J.
PARADIGMA VOL. IX. NO. 3, AGUSTUS 2007
Diawali dengan mengerjakan kembali intruksi For J = 1 to 3, berarti variabel J bernilai 1 (satu). Berikutnya dilakukan pengecekan pada variabel J apakah nilai variabel J yang bernilai 1 (satu) diantara angka 1 (satu) sampai 3 (dua), jika True maka kerjakan perintah mencetak Loop dalam ke : 1. - (I, J) = (2, 1). Setelah melakukan pengulangan, pada logika For–Next, nilai variabel otomatis bertambah 1 (satu), default-nya bertambah satu jika step kenaikan tidak ditentukan. Berarti sekarang variabel J sudah menjadi 2 (dua). Berikutnya dilakukan pengecekan pada variabel J apakah nilai variabel J yang sekarang bernilai 2 (dua) diantara angka 1 (satu) sampai 3 (tiga), jika True maka kerjakan perintah mencetak Loop dalam ke : 2. - (I, J) = (2, 2). Pengulangan dilakukan lagi, terjadi lagi penambahan nilai pada variabel J, berarti sekarang variabel J sudah menjadi 3 (tiga). Berikutnya dilakukan pengecekan lagi pada variabel J apakah nilai variabel J yang sekarang bernilai 3 (tiga) diantara angka 1 (satu) sampai 3 (tiga), jika True maka kerjakan perintah mencetak Loop Dalam ke : 3. (I, J) = (2, 3). Pada saat variabel J berisi 4 (empat) lalu dilakukan pengecekan pada variabel J, yang bernilai 4 (empat) tersebut, apakah diatara nilai 1 (satu) sampai tiga (tiga), jawabnya adalah False, dengan demikian pengulangan dihentikan. Selanjutnya keluar dari looping For J = 1 to 3, masuk ke looping For I = 1 to 2 kembali. Pada intruksi For I = 1 to 2, sekarang variabel I otomatis bertambah 1 (satu) lagi, berarti sekarang sudah menjadi variabel I bernilai 3 (tiga). Berikutnya melakukan pengecekan pada variabel I, apakah nilai variabel I diantara 1 (satu) sampai 2 (dua), jika False berarti pengulangan dihentikan. Flowchart
III.
KESIMPULAN Sebelum aplikasi dijalankan oleh komputer, pembuat program (programmer) yang membuat program aplikasi dengan menggunakan Tabel Kemungkinan Output untuk menganalisa program aplikasi tersebut sudah dapat diketahui hasil output dari program aplikasi tersebut. Begitu pula user dapat mengatahui output dari listing program pada aplikasiaplikasi program, dengan menggunakan tabel Kemungkinan output tersebut. Seperti mahasiswa dapat dengan mudah mengetahui output dari listing program dari aplikasi program yang akan dianalisa output programnya dengan menggunakan Tabel Kemungkinan Output ini, tanpa harus mencoba atau mengetik listing program tersebut dan mengeksekusinya. DAFTAR PUSTAKA
PARADIGMA VOL. IX. NO. 3, AGUSTUS 2007
Kurniadi, Adi. 2002. Pemrograman Microsoft Visual Basic 6.0. Elex Media Komputindo. Cetakan ke-5. Kusumo, Ario Suryo. 2003. Buku Latihan Microsoft Visual Basic 6.9. Elex Media Komputindo. Jakarta. Cetakan ke-6. Munir, Rinaldi. 2001. Algoritma & Pemrograman Dalam Bahasa Pascal Dan C. Penerbit Informatika Bandung. Cetakan ke lima. Jilid 1. Limanto, Susana, dkk. 2002. Algoritma dan Perograman. Dinastido. Jakarta. Pamungkas, Ir. 2000. Tip & Trik Microsoft Visual Basic 6.0. Elex Media Komputindo. Jakarta. Supardi, Yuniar, Ir. 2000. Pascal Dan Flowchart Lewat Praktek. Dinastindo. Jakarta. Sutanta, Edhy. 2004. Algoritma Teknik Penyelesaian Permasalahan Untuk Komputansi. Graha Ilmu. Yogyakarta.
PARADIGMA VOL. IX. NO. 3, AGUSTUS 2007