Modul PK 2016
Modul PK 2016
PEMROGRAMAN KOMPUTER
0
JADWAL KULIAH
PEMROGRAMAN KOMPUTER
No Tanggal (2016) Minggu ke- Kegiatan Keterangan
1 15 Agus – 19 Agus 1 Asist. Umum+Algoritma
2 22 Agus – 26 Agus 2 Bab 1+2
3 29 Agus – 2 Sep 3 Bab 3
4 5 Sep – 9 Sep 4 Bab 4
5 12 Sep – 16 Sep 5 Bab 5
6 19 Sep – 23 Sep 6 Bab 6
Pembagian Kelompok
7 26 Sep – 30 Sep 7 Responsi 1 Tugas Besar
8 3 Okt – 14 Okt 8&9 UTS
Review Bab 1-6 dan Kumpul judul
9 17 Okt – 21 Okt 10
Pembahasan Responsi 1 Tugas Besar
10 24 Okt – 28 Okt 11 Bab 7
11 31 Okt – 4 Nov 12 Bab 8 (VB 1)
12 7 Nov – 11 Nov 13 Bab 9 (VB 2)
13 14 Nov – 18 Nov 14 Bab 10 (VB 3)
Presentasi Kemajuan
14 21 Nov – 25 Nov 15
Tugas Besar
Presentasi Tugas
15 28 Nov – 2 Des 16 Responsi 2
Besar
16 5 Des – 17 Des 17 & 18 UAS
Aturan Penilaian
Variabel Bobot
1. Pretest 10
2. Latihan 5
3. Tugas Take Home 15
4. Responsi 1 20
5. Responsi 2 20
6. UTS 15
7. UAS 15
Aturan Perkuliahan
1. Tugas harus diasistensikan minimum 1 kali. Jika tidak asistensi, maka nilai
tugas dipotong 50% (lembar asistensi harus dikumpul).
2. Tugas dengan isi sama (menyalin), maka nilai dibagi rata (oleh asisten).
3. Inhall (pindah kelas) maksimum 2 kali, dengan menyampaikan
pemberitahuan tertulis (surat) terlebih dahulu.
4. Tidak masuk (izin/sakit) maksimum 3 kali.
5. Tidak ada pretest/tugas/ujian susulan.
6. Tidak ada Remedial.
7. Pretest, Latihan dan Tugas Take Home setiap minggunya diupload di situs
kuliah.
1
Bab I
Dasar Pemrograman
1. Pendahuluan
Pemrograman Komputer. Pemrograman Komputer adalah aktivitas untuk membuat
Program Komputer. Program Komputer terdiri dari serangkaian instruksi atau perintah pada
komputer yang dapat membuat komputer menyelesaikan tugas tertentu. Pada umumnya
program komputer digunakan untuk menyelesaikan masalah tertentu, sehingga pada akhir
program yang telah dijalankan komputer dapat menghasilkan penyelesaian masalah tersebut.
Agar dapat memerintah komputer dalam penyelesaian masalah, manusia sebagai
pemakai komputer harus dapat berkomunikasi dengan komputer yang dipakainya. Akan
tetapi, komputer hanya dapat menjalankan perintah dalam ‘bahasa’ yang dikenalnya yaitu
bahasa mesin, ‘bahasa’ yang disusun berdasarkan dua kondisi yaitu arus listrik on atau off.
Bahasa ini dikenal dengan sebutan bahasa aras rendah (low-level language). Pemakai
komputer tentunya terbiasa berkomunikasi dengan bahasa ibunya, sehingga terlampau sulit
untuk dapat berkomunikasi dengan komputer dalam bahasa mesin. Sehingga untuk
menjembatani hal ini, disusunlah yang disebut dengan bahasa pemrograman. Di antara
beberapa bahasa pemrograman yang ada, sebagian dekat ke bahasa mesin dan sebagian
dekat ke bahasa manusia. Dekat artinya cenderung sama, sehingga juga mudah dipahami
oleh asal pengguna bahasa tersebut, komputer atau manusia. Karena bahasa pemrograman
banyak dikembangkan oleh manusia yang berbahasa ibu bahasa Inggris, bahasa manusia
yang didekati oleh bahasa pemrograman tentunya adalah bahasa Inggris juga. Bahasa-
bahasa pemrograman yang dekat dengan bahasa mesin dikelompokkan dalam bahasa aras
menengah (middle-level language), contoh : Assembly dan C. Sedangkan bahasa yang dekat
dengan bahasa manusia dikelompokkan dalam bahasa aras tinggi (high-level language),
contoh : BASIC (Beginners All-purpose Symbolic Instruction Code), FORTRAN (FORmula
TRANslator), COBOL (COmmon Business Oriented Language), Pascal, PL-I, dan Prolog.
Program Komputer dapat dituliskan dengan menggunakan bahasa pemrograman
apapun, asalkan proses yang diinginkan sudah tepat. Penerjemahan dari bahasa aras
tinggi/menengah ke bahasa aras rendah, dilakukan oleh komputer itu sendiri dengan
menggunakan program yang telah dibuat oleh pembuat bahasa. Ada dua jenis program
penerjemah yaitu compiler dan interpreter. Compiler menerjemahkan terlebih dahulu
keseluruhan baris-baris program menjadi bahasa aras rendah, baru menjalankan perintah-
perintahnya. Interpreter menerjemahkan dan menjalankan perintah baris demi baris.
Meskipun bahasa pemrograman satu dan lainnya berbeda dalam aturan penulisannya,
hal itu dapat dipelajari dengan mudah dengan cara membiasakan diri dalam mentaati aturan-
aturan yang telah disusun oleh pembuatnya. Aturan penulisan bahasa pemrograman
biasanya disertakan saat membeli paket perangkat lunak bahasa pemrograman tersebut
dalam bentuk buku petunjuk (Manual/Reference Books) atau dapat dibaca pada menu help
saat program bahasa pemrograman tersebut dijalankan.
Hal yang terpenting dalam menyusun program komputer adalah penyusunan urutan
langkah-langkah logis yang jelas dan terperinci dalam pemecahan masalah atau yang dikenal
dengan nama algoritma. Logis merupakan kata kunci dalam definisi algoritma. Logis berarti
nilai kebenaran dari langkah-langkah yang disusun harus dapat ditentukan, benar atau salah.
Perlu diingat bahwa komputer yang bekerja dengan dasar on dan off, sehingga hanya
mengenal dua kondisi mutlak tersebut benar atau salah. Komputer tidak mengenal penilaian
2
relatif seperti sedikit salah, mungkin benar, agak benar, dsb. Otak manusia normal dapat
menilai apakah suatu pernyataan logis atau tidak logis. Jadi, dengan menggunakan tata cara
penalaran yang baik algoritma sebaiknya disusun. (Munir dan Lidya, 1997)
Mendefinisikan Permasalahan
Menyusun Program
a. Mendefinisikan Permasalahan
Langkah ini merupakan langkah terpenting dan mendasari langkah-langkah yang lain.
Pendefinisian di sini berarti menentukan permasalahan yang ada kemudian memecahnya
menjadi hasil akhir (output) yang dikehendaki, data masukan (input) yang diperlukan, dan
dengan cara apa input dapat berubah menjadi output. Ketiga hal yang harus disebutkan dalam
langkah ini, haruslah dinyatakan dengan jelas. Artinya tidak ada hal yang tidak dapat
dimengerti atau bermakna ganda bagi manusia berotak normal.
b. Menyiapkan Algoritma
Seperti telah dijelaskan dibagian awal, algoritma adalah urutan langkah-langkah logis
yang jelas dan terperinci dalam pemecahan masalah. Dalam membuatnya harus
dipertimbangkan kemampuan atau batasan yang dimiliki oleh komputer maupun bahasa
pemrograman yang digunakan dalam berbagai hal, antara lain :
- kemampuan melakukan operasi aritmatika (terkadang terbatas pada operasi
penjumlahan, pengurangan, perkalian dan pembagian)
- kemampuan membandingkan dua hal, dan menentukan alternatif aktivitas
berdasarkan hasil pembandingan tersebut
3
- kemampuan memindahkan data dalam memory (ingatan komputer), yaitu bagian
komputer yang dapat digunakan untuk menyimpan instruksi dan data
- kemampuan menerima input dan mengeluarkan output
Algoritma yang baik, dapat menggabungkan kemampuan atau batasan komputer yang ada
untuk menyelesaikan masalah serumit apapun juga. Untuk itu, terkadang diperlukan beberapa
tahapan untuk menyempurnakan algoritma yang telah dibuat.
Hal lain yang perlu diperhatikan adalah komputer tidak mempunyai ingatan akan
masa lalu. Berbeda dengan otak manusia yang terus bekerja sehingga mempunyai ingatan
akan hal-hal yang telah dilakukannya, komputer tidak demikian. Asumsi bahwa komputer
hanya dapat berlogika dasar saja dan belum mengetahui segala sesuatu harus menjadi
pertimbangan dasar dalam membuat algoritma.
Sebelum proses dilanjutkan ke tahapan yang selanjutnya, algoritma perlu diuji
kebenarannya dengan cara membandingkan hasil pemikiran langsung otak manusia normal
dengan hasil langkah-langkah algoritma tersebut berdasarkan logika dasar. Algoritma
dikatakan telah benar apabila terhadap masukan dengan banyak variasi, hasil pembandingan
tersebut menunjukkan hal yang sama.
Pada umumnya, algoritma ditulis dengan bahasa sehari-hari manusia dan pada setiap
langkah yang ada diberi awalan nomor untuk menunjukkan urutan langkah dan identitas.
Dalam sebuah nomor sebaiknya hanya berisi satu perintah yang spesifik dan berbeda dengan
perintah pada nomor-nomor yang lain. Untuk lebih jelasnya dapat dilihat pada contoh 1-1.
4
PREPARATION Menyatakan semua
perubahan di luar data
d. Menyusun Program
Dalam tahap ini, algoritma atau diagram alir yang telah dibuat diubah menjadi baris-
baris program sesuai dengan aturan bahasa pemrograman yang dikehendaki. Perlu
ditegaskan, dalam kuliah ini tidak dibahas aturan penulisan bahasa pemrograman tertentu
akan tetapi lebih menitikberatkan pada menyusun algoritma program untuk memecahkan
masalah, yaitu langkah-langkah logis yang jelas dan terperinci dalam pemecahan masalah,
dengan baik dan benar serumit apapun masalah yang dihadapi.
Untuk memberikan gambaran yang jelas dan memberikan penguasaan terhadap satu
bahasa pemrograman, dalam kuliah ini digunakan contoh-contoh dan latihan dengan
menggunakan bahasa pemrograman BASIC khususnya untuk Compiler Quick Basic 4.5.
5
Langkah ini tidak dilakukan setelah langkah pertama sampai langkah kelima selesai,
akan tetapi pada akhir setiap langkah itu sendiri perlu didokumentasikan hasil langkah
tersebut. Hal ini perlu diperlukan karena jarang terdapat suatu program yang dapat dibuat
dengan sekali jalan, artinya pada suatu waktu kadang kala perlu kembali pada tahap yang
sebelumnya khususnya setelah langkah kelima.
Untuk memberikan gambaran keenam tahapan pemrograman komputer tersebut di
atas, berikut ini terdapat dua contoh kasus yang membahas dengan rinci tahap demi tahap
yang telah dibicarakan terkhusus aktivitas pertama sampai dengan aktivitas ketiga. Dan untuk
semakin membiasakan diri dengan menganalisis masalah untuk dipecahkan dengan program
komputer, di akhir bab ini terdapat beberapa latihan pemecahan kasus yang dapat dikerjakan.
Mendefinisikan Permasalahan
Dari sederetan bilangan sebagai input, tentukan berapa jumlah bilangan positif, berapa jumlah
bilangan negatif, dan berapa jumlah bilangan nol sebagai output-nya.
Menyiapkan Algoritma
Untuk dapat mengerjakan tugas tersebut digunakan pencacah (counter) untuk masing-masing
kelompok yang akan ditentukan jumlahnya yaitu pencacah positif, pencacah negatif dan
pencacah nol. Algoritma yang digunakan untuk mengubah pencacah apabila terdapat suatu
bilangan yang dievaluasi adalah sebagai berikut :
1. Mulai
2. Jika bilangan positif, tambahkan angka satu ke pencacah positif
3. Jika bilangan negatif, tambahkan angka satu ke pencacah negatif
4. Jika bilangan nol, tambahkan angka satu ke pencacah nol
5. Selesai
Jika algoritma tersebut langsung dijalankan pada komputer, tidak akan berjalan dengan
normal. Karena komputer tidak dapat dengan langsung mengidentifikasi jenis bilangan
tersebut. Untuk menentukan jenis bilangan positif/negatif/nol, perlu digunakan kemampuan
komputer untuk membandingkan dua hal, sehingga algoritma perlu diubah menjadi :
1. Mulai
2. Jika bilangan > 0, tambahkan angka satu ke pencacah positif
3. Jika bilangan < 0, tambahkan angka satu ke pencacah negatif
4. Jika bilangan = 0, tambahkan angka satu ke pencacah nol
5. Selesai
Untuk mengevaluasi sederetan bilangan, algoritma di atas perlu ditambah beberapa baris lagi,
sehingga menjadi :
1. Mulai
2. Atur pencacah positif, pencacah negatif, pencacah nol berisi angka nol
3. Baca satu bilangan dari deretan bilangan yang belum diproses; Jika sudah tidak ada
bilangan lagi, lakukan langkah 7
4. Jika bilangan > 0, tambahkan angka satu ke pencacah positif dan kembali ke langkah
3
6
5. Jika bilangan < 0, tambahkan angka satu ke pencacah negatif dan kembali ke langkah
3
6. Jika bilangan = 0, tambahkan angka satu ke pencacah nol dan kembali ke langkah 3
7. Tampilkan isi pencacah positif, pencacah negatif, dan pencacah nol.
8. Selesai
Karena otak manusia sudah dapat merekam pengalaman masa lalu, dapat dengan cepat
ditentukan bahwa deretan tersebut terdiri dari 4 bilangan positif, 3 bilangan negatif, dan 1
bilangan nol. Untuk pembuktian algoritma, ketujuh langkah tersebut dilakukan pada barisan
tersebut, selengkapnya dalam tabel 1-2. Hasil akhirnya ternyata telah sama dengan hasil
identifikasi oleh otak manusia. Sehingga langkah ini dapat diakhiri sampai disini.
Pencacah
Langkah Bilangan Positif Negatif Nol
1 - - - -
2 - 0 0 0
3 16 0 0 0
4 16 1 0 0
3 3 1 0 0
4 3 2 0 0
3 -7 2 0 0
4 -7 2 0 0
5 -7 2 1 0
3 0 2 1 0
4 0 2 1 0
5 0 2 1 0
6 0 2 1 1
3 4 2 1 1
4 4 3 1 1
3 -6 3 1 1
4 -6 3 1 1
5 -6 3 2 1
7
3 -2 3 2 1
4 -2 3 2 1
5 -2 3 3 1
3 8 3 3 1
4 8 4 3 1
3 - 4 3 1
7 - 4 3 1
8 - 4 3 1
Mulai
POSCTR = 0
NEGCTR = 0
ZEROCTR = 0
Cetak
Tidak POSCTR,
Ada BIL ?
NEGCTR,
ZEROCTR
Ya
Baca BIL
Selesai
ZEROCTR = ZEROCTR + 1
Gambar 1-2. Diagram Alir Program Menentukan Jumlah Bilangan Positif, Negatif, dan
Nol pada Sederetan Bilangan
Mendefinisikan Permasalahan
Dengan mencatat waktu (jam:menit:detik) saat memulai percakapan dan waktu saat
mengakhiri percakapan sebagai input, ditentukan lamanya waktu percakapan
(jam:menit:detik) sebagai output-nya.
Menyiapkan Algoritma
Bila dilihat dan dipikirkan dengan otak manusia normal yang sedikit terlatih kemampuan
aritmatikanya, tentunya akan dengan cepat diperoleh algoritma sebagai berikut :
1. Mulai
8
2. Baca waktu saat memulai percakapan, misalkan j1:m1:d1
3. Baca waktu saat mengakhiri percakapan, misalkan j2:m2:d2
4. Hitung waktu percakapan (j3:m3:d3) sebagai selisih antara (j2:m2:d2) dengan
(j1:m1:d1)
5. Tampilkan waktu percakapan (j3:m3:d3)
6. Selesai
Akan tetapi, apabila algoritma di atas dipertimbangkan lagi untuk operasional dengan
komputer akan timbul permasalahan yang mendasar yaitu pada langkah ketiga. Otak manusia
yang terlatih mungkin telah mempunyai ingatan tentang cara mengurangkan jam dengan jam.
Agar algoritma dapat dioperasikan dengan komputer maka ingatan tersebut haruslah
dijabarkan dalam algoritma. Misalnya untuk menghitung selisih antara dua waktu, dilakukan
dengan mengubah masing-masing waktu dalam satuan detik, mengurangkannya, kemudian
mengubah kembali hasil selisih tersebut ke dalam bentuk jam:menit:detik. Sehingga algoritma
tersebut di atas dijabarkan menjadi
1. Mulai
2. Baca waktu saat memulai percakapan, misalkan j1:m1:d1
3. Baca waktu saat mengakhiri percakapan, misalkan j2:m2:d2
4. Konversi j1:m1:d1 ke dalam jumlah detik (det1)
5. Konversi j2:m2:d2 ke dalam jumlah detik (det2)
6. Hitung waktu percakapan (det3) sebagai selisih antara det2 dengan det1
7. Konversi det3 ke dalam bentuk j3:m3:d3
8. Tampilkan waktu percakapan (j3:m3:d3)
9. Selesai
Algoritma di atas masih belum sempurna untuk dioperasionalkan dengan komputer, karena
pada langkah 4,5 dan 7 cara mengubah antara dua bentuk penulisan waktu tersebut belum
jelas. Sekali lagi, untuk manusia yang sudah terbiasa untuk mengingatnya hal tersebut bukan
masalah, akan tetapi bagi komputer yang tidak punya ingatan akan masa lalu hal tersebut
adalah masalah besar! Untuk itu, langkah-langkah tersebut perlu dijabarkan dengan lebih teliti
:
1. Mulai
2. Baca waktu saat memulai percakapan, misalkan j1:m1:d1
3. Baca waktu saat mengakhiri percakapan, misalkan j2:m2:d2
4. Hitung det1 = j1 x 3600 + m1 x 60 + d1
5. Hitung det2 = j2 x 3600 + m2 x 60 + d2
6. Hitung det3 = det2 - det1
7. Hitung j3 = det3 div 3600
8. Hitung m3 = (det3 mod 3600) div 60
9. Hitung d3 = (det3 mod 3600) mod 60
10. Tampilkan waktu percakapan (j3:m3:d3)
11. Selesai
Pada langkah 7 – 9 di atas terdapat dua operator div (hasil bagi bulat) dan mod (sisa hasil
bagi) yang akan dibahas lebih lanjut pada bab selanjutnya.
9
Apakah algoritma yang terakhir ini sudah baik dan benar ? Silahkan diuji dan kalau belum baik
dan benar bagian mana yang harus disempurnakan ?
Mulai
Baca j1:m1:d1
Baca j2:m2:d2
det1 = j1 x 3600 + m1 x 60 + d1
det2 = j2 x 3600 + m2 x 60 + d2
Tampilkan j3:m3:d3
Selesai
10
Bila komputer menggunakan sistem operasi Windows, klik Start - Program - MS DOS
Prompt untuk menyiapkan DOS prompt.
Aktifkan folder/directory tempat QB berada lalu aktifkan editor Quick Basic
- Bila dari harddisk, C: QB
- Bila dari disket di drive A, A: QB
Tekan tombol Esc satu kali untuk menghapus dialog box, sehingga diperoleh tampilan
editor Quick Basic. Setelah tampil editor Quick Basic tersebut, maka pemrogram sudah
dapat membuat program.
b. Penyusunan Program
Program disusun sesuai dengan algoritma atau diagram alir yang telah dibuat dengan
tata bahasa yang dimengerti oleh komputer, dalam kuliah ini akan digunakan bahasa BASIC
dengan Compiler QB-45. Program dituliskan pada editor Quick Basic yang sudah disiapkan
terlebih dahulu dengan cara seperti telah di bahas sebelumnya.
d. Pelaksanaan Program
Untuk melaksanakan (mengeksekusi) program, tekan tombol fungsi F5 satu kali.
Setelah program selesai dikerjakan, pada layar monitor bagian bawah akan muncul komentar
“Press any key to continue” yang bertujuan untuk memberitahu pemrogram untuk menekan
sembarang tombol untuk kembali ke editor Quick Basic lagi. Untuk melihat lagi tampilan
program tekan tombol fungsi F4 satu kali, dan untuk kembali ke editor tekan F4 sekali lagi.
e. Menyimpan Program
Berkas program dapat disimpan di media disket atau harddisk. Di dalam disket,
program tersebut disimpan sebagai file. Karena isi setiap disket atau harddisk tidak terbatas
11
hanya satu file, maka setiap file harus mempunyai nama unik untuk identifikasi. Tujuannya
untuk membedakan satu file dengan file lainnya, dimana pemberian nama file harus tunduk
pada peraturan yang berlaku dalam sistem operasi DOS, seperti :
tidak melebihi delapan karakter, contoh : TUGAS
boleh berisikan angka atau abjad
abjad boleh ditulis besar atau kecil, tapi keduanya akan dianggap abjad kecil
Untuk setiap nama file program, Quick Basic memberikan ekstensi yang terdiri dari tiga
karakter, yaitu : BAS.
Untuk menyimpan pertama kali sebuah program yang ditulis dengan Quick Basic,
maka tekanlah urutan tombol sebagai berikut : Alt File Save As, maka kemudian akan muncul
sebuah dialog box ditengah layar dengan menanyakan nama file sebagai berikut :
File name : _
Lalu ketikkanlah nama file untuk menyimpan program tersebut, misal disimpan di disket kerja
di drive C
File name : C:TUGAS
Apabila setelah program disimpan pertama kali tersebut, ingin diulang
penyimpanannya, maka tekanlah tombol Alt File Save.
12
Contoh 1-2. Menentukan Lamanya Waktu Percakapan Telepon (Lanjutan)
Jika seseorang memulai percakapan pada pukul 2:55:30 dan mengakhiri pada pukul
3:1:27, buatlah program komputer dalam QB 4.5 yang dapat menghitung lamanya waktu
percakapan.
Program Komputer
Sesuai dengan algoritma pada contoh di atas, dapat dibuat program komputer dalam QB 4.5
seperti di bawah ini.
CLS
j1 = 2
m1 = 55
d1 = 30
j2 = 3
m2 = 1
d2 = 27
det1 = j1 * 3600 + m1 * 60 + d1
det2 = j2 * 3600 + m2 * 60 + d2
det3 = det2 - det1
j3 = det3 \ 3600
m3 = (det3 MOD 3600) \ 60
d3 = (det3 MOD 3600) MOD 60
PRINT j3; m3; d3
END
0 5 57
Mendefinisikan Permasalahan
Dari sebuah bilangan yang menyatakan besarnya suhu dalam derajat Celsius sebagai input,
akan ditentukan nilai ekivalen suhu tersebut dalam derajat Fahrenheit sebagai output-nya.
Menyiapkan Algoritma
Untuk dapat mengerjakan tugas tersebut digunakan persamaan berikut ini, dengan variabel
F adalah besarnya suhu dalam derajat Fahrenheit dan C adalah besarnya suhu dalam derajat
Celsius.
9
F C 32
5
Sehingga Algoritma yang digunakan adalah sebagai berikut :
13
1. Mulai
2. Baca (masukkan) suhu dalam derajat Celsius, misalkan sama dengan (simpan dalam
variabel) C.
3. Hitung F = 9/5*C + 32
4. Tampilkan suhu dalam derajat Fahrenheit (F)
5. Selesai
Program Komputer
Sesuai dengan algoritma di atas, dapat dibuat program komputer dalam QB 4.5 seperti di
bawah ini.
CLS
INPUT “Celsius = ”; C
F = C * 9 / 5 + 32
PRINT “Fahrenheit = ”; F
END
4. Latihan
Buatlah secara urut semua tahap pembuatan program komputer (yang paling penting adalah
algoritma/diagram alir dan program dalam QB 4.5) untuk menyelesaikan masalah-masalah di
bawah ini :
1. Menghitung luas dan keliling lingkaran jika diketahui jari-jarinya r = 35 cm.
4. Menghitung hambatan total paralel dengan tiga buah tahanan, dengan masukan R1 = 1
, R2 = 2 , dan R3 = 3 .
5. Menghitung biaya yang dikeluarkan untuk membuat sebuah tabung dengan tutup dan alas
jika harga bahan (plat) per meter perseginya adalah Rp. 12.000,-. Diinginkan tabung
tersebut memiliki diameter 2 m dan tinggi 3 m.
6. Menghitung biaya yang dikeluarkan dalam pembuatan suatu kerangka kubus, jika harga
per meter logam yang dipakai untuk membuat kerangka adalah Rp 2.500,- dan sisi-sisi
kubus 4 m.
7. Menghitung biaya yang dikeluarkan dalam penggunaan bensin jika kecepatan sebuah
mobil diketahui 110 km/jam dan t=240 menit (4 jam). Jika 1 liter bensin Rp5.000,- dapat
digunakan untuk 22 km.
8. Menghitung kecepatan mobil saat t=5 detik dengan percepatan 5 km/s2 dan kecepatan
awal 2 km/s.
14
Bab II
Elemen dan Struktur Dasar Program
Pada bagian ini, akan dibahas elemen-elemen dasar yang menyusun sebuah program
komputer. Pembahasan elemen dasar program komputer tidak dapat dilepaskan dari elemen
dasar algoritma. Apabila faktor keterbatasan dari komputer sudah dipertimbangkan dalam
membuat algoritma, seperti pada contoh 1-1 dan contoh 1-2, baris-baris program komputer
tidak akan berbeda jauh dengan baris-baris algoritma tersebut. Untuk membatasi, dianggap
bahwa algoritma yang disusun telah mempertimbangkan faktor komputer yang disebut
algoritma program, sehingga elemen dasar program tidak berbeda atau sama dengan elemen
dasar algoritma program.
Selain komponen-komponen dasar yang menyusun program, kita dapat mencermati
program/algoritma sebagai beberapa kesatuan baris-baris perintah yang biasa disebut
dengan struktur program. Di akhir bab ini, akan dibahas struktur dasar yang biasa menyusun
sebuah program.
a. Perintah
Perintah adalah instruksi yang memerintah komputer untuk melakukan hal-hal
tertentu. Perintah dapat meliputi banyak hal, seperti mengolah data yang tersimpan dalam
variabel, mengoperasikan variabel, membaca data dari perangkat masukan, menampilkan
data ke perangkat keluaran, dll. Biasanya satu baris algoritma program hanya terdiri dari satu
perintah yang spesifik.
b. Konstanta
Konstanta adalah suatu nilai yang besarnya tetap selama algoritma program tersebut
dijalankan.
c. Variabel
Variabel adalah tempat untuk menyimpan harga suatu data saat algoritma program
dijalankan. Selama algoritma program berjalan, variabel yangtelah diberi nama
khusustersebut, dapat diubah-ubah isinya. Tetapi perubahannya terbatas pada tipe data yang
sama. (Tipe data akan dibahas tersendiri pada akhir bab ini) Artinya, sebuah variabel tidak
dapat digunakan untuk menyimpan dua data yang berbeda tipenya tentunya pada saat yang
berlainan.
d. Operator
Operator adalah suatu proses pengolahan satu atau dua nilai data yang berupa
konstanta atau variabel yang menghasilkan nilai data yang lain. Contoh dari operator adalah
penjumlahan (+) dan pengurangan (–). Terdapat beberapa macam operator yang ada, dengan
catatan penggunaannya terbatas pada tipe data yang diproses.
15
e. Ekspresi
Ekspresi adalah gabungan operator, konstanta dan variabel yang menghasilkan
sebuah nilai tunggal. Ekspresi dibedakan berdasarkan jenis nilai yang diolah dan
dihasilkannya, yaitu ekspresi aritmatik, ekspresi logika, dan ekspresi relasional. Ekspresi
aritmatik menghasilkan nilai numeris dari nilai numeris, ekspresi logika menghasilkan nilai
logika dari nilai logika, dan ekspresi relasional menghasilkan nilai logika dari nilai yang lain.
Penggunaan dan contoh berbagai macam ekspresi dapat dilihat pada bahasan tentang tipe
data berikut ini.
2. Tipe Data
Secara umum, untuk dapat menyelesaikan permasalahan yang ada program komputer
bekerja dengan cara mengolah obyek/data di dalam variabel-variabel yang didefinisikan.
Sehingga untuk dapat membuat program komputer yang baik, perlu pengenalan yang
mendalam tentang 'data macam apa' yang dapat diolah dengan program yaitu tipe datanya.
Secara umum terdapat 6 jenis tipe data, yaitu : bilangan logik (logic), bilangan bulat (integer),
bilangan riil (real), karakter (character), string (string), dan tipe bentukan (user-defined).
a. Bilangan Logik
Bilangan logik disebut juga boolean (dari nama ahli matematika Robert Boole). Tipe
data ini hanya mengenal dua nilai yaitu : benar (true) dan salah (false). Istilah bilangan muncul
karena kita dapat menyatakan benar dengan angka 1 dan salah dengan angka 0.
Operator yang dapat digunakan dalam tipe data ini adalah not, and, or, xor, eqv, dan
imp. Hasil operasi dengan bilangan logik menghasilkan nilai dalam bilangan logik juga. Hasil
operasi untuk masing-masing operator tersebut dengan menggunakan a dan b yang
merupakan variabel bertipe bilangan logik terdapat pada tabel berikut ini.
Tidak semua bahasa pemrograman mengenal variabel dan konstanta dalam tipe data
ini, akan tetapi operator dan ekspresi logika seperti di atas tetap dikenal dan digunakan
untuk melakukan pengendalian terhadap jalannya program. Cara mengendalikan jalannya
algoritma program dengan ekspresi logika akan dibicarakan pada Bab selanjutnya.
Bila dalam sebuah ekspresi logika terdapat beberapa operator logika yang digunakan
secara bersama-sama, prioritas urutan pengerjaan antara operator tersebut adalah operator
not, and, or, xor, eqv, dan imp. Dengan catatan bahwa prioritas utama adalah operator yang
berada di antara dua tanda kurung, ( ).
16
a. not p and r
b. not (p and r)
c. p and q xor r and p
d. p and (q xor r) and p
e. q eqvnot r or p
f. not r imp p and not q
Jawaban:
a. not p and r
Dalam ekspresi ini, terdapat dua operator logika yaitu not dan and tanpa tanda kurung.
Prioritas urutan pengerjaan operator tersebut adalah operator not dikerjakan terlebih
dahulu, lalu operator and. Karena p bernilai benar, maka not p bernilai salah.
Sehingga not p and r bernilai salah.
b. not (p and r)
Meskipun ekspresi ini mirip dengan ekspresisoal a, namun adanya tanda kurung
membuat nilai ekspresi ini sangat berbeda dengan soal a. Karena terdapat tanda
kurung urutan pengerjaan operator dalam ekspresi tersebut adalah operator and yang
terdapat dalam tanda kurung terlebih dahulu, baru setelah itu operator not dikerjakan.
Karena p bernilai benar dan r bernilai salah, maka p and r bernilai salah. Sehingga
not (p and r) mempunyai benar.
c. p and q xor r and p
Dalam ekspresi ini terdapat tiga buah operator yang terdiri dari dua macam operator
yang urutan prioritas pengerjaannya adalah and dan xor. Sehingga seolah-olah
ekspresi tersebut dapat dituliskan menjadi (p and q) xor (r and p) karena operator and
harus dikerjakan terlebih dahulu. p and q bernilai benar dan r and p bernilai salah,
sehingga ekspresi ini bernilai benar.
d. p and (q xor r) and p
Meskipun ekspresi ini mirip dengan ekspresi soal c, namun dengan adanya tanda
kurung membuatnya jauh berbeda. Ekspresi q xor r yang berada dalam tanda kurung,
mempunyai nilai benar. Kemudian dua operator and yang berurutan dikerjakan
dengan urutan kiri ke kanan. Untuk yang pertama, p and (q xor r) mempunyai nilai
benar. Akhirnya, p and (q xor r) and p mempunyai nilai akhir benar.
e. q eqv not r or p
Dari ketiga operator yang ada dalam ekspresi di atas, operator not merupakan
operator yang mendapatkan prioritas pengerjaan yang pertama. Dalam hal ini not r
mempunyai nilai benar. Urutan pengerjaan selanjutnya adalah operator or. Untuk
ekspresi ini not r or p bernilai benar. Sehingga q eqv not r or p mempunyai nilai benar.
17
Tipe data ini sudah dikenal dalam kehidupan sehari-hari, khususnya dalam bidang
matematika. Bilangan Bulat (Integer) adalah bilangan yang tidak mengandung pecahan
desimal.
Dalam definisi matematika, bilangan bulat mempunyai batasan interval yang tidak
terhingga, (-,). Namun karena keterbatasan komputer dalam memproses angka, setiap
bahasa pemrograman selalu membatasi interval untuk tipe data ini dan membaginya menjadi
beberapa sub-tipe.
Operator yang dapat digunakan dalam tipe data ini meliputi dua macam operator yaitu
operator aritmetika (yang menghasilkan bilangan bulat dari dua bilangan bulat)dan operator
relasional (yang menghasilkan bilangan logik dari dua ekspresi aritmatika atau bilangan
bulat).
Operator aritmetika yang dapat digunakan adalah + (tambah), – (kurang), * (kali), /
(bagi), \atau div (pembagian integer), dan mod (sisa hasil bagi).
Operator relasional yang dapat digunakan adalah < (lebih kecil), atau <= (lebih kecil
atau sama dengan), > (lebih besar), atau >= (lebih besar atau sama dengan), = (sama
dengan), dan atau <> (tidak sama dengan).
Hirarki dari operator aritmatika mulai dari yang tertinggi (dikerjakan pertama kali)
adalah kali dan bagi (sederajat), sisa hasil bagi, lalu tambah dan kurang (sederajat).
Disamping itu tanda kurung merupakan prioritas yang paling tinggi dan apabila terdapat
operator yang sederajat dikerjakan dari kiri ke kanan.
Secara umum apabila dalam suatu ekspresi terdapat ketiga macam operator, hirarki
pengerjaan operatornya adalah operator aritmatika, operator relasional, dan operator logika
kecuali bila terdapat tanda kurung, ().
18
f. benar
g. benar
h. salah
i. salah
j. benar
k. 1
l. 2
m. 0
n. 2
c. Bilangan Riil
Tipe data ini juga sudah dikenal dalam kehidupan sehari-hari, khususnya dalam bidang
matematika. Seperti halnya bilangan bulat, setiap bahasa pemrograman juga membatasi
interval untuk tipe data ini dan membaginya menjadi beberapa sub-tipe.
Operator aritmetika yang dapat digunakan adalah + (tambah), – (kurang), * (kali), dan
/ (bagi). Sedangkan operator relasional yang dapat digunakan adalah < (lebih kecil), atau
<= (lebih kecil atau sama dengan), > (lebih besar), atau >= (lebih besar atau sama dengan),
dan atau <> (tidak sama dengan). Hirarki dari operator aritmetika, relasional, dan logika
yang berlaku dalam tipe data ini sama dengan yang berlaku dalam tipe data bilangan bulat.
d. Karakter
Tipe data ini meliputi seluruh bentuk alphanumeris yang dikenal oleh komputer,
misalnya : ‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘$’, ‘%’, ‘?’, ‘#’. Daftar karakter
selengkapnya yang berjumlah 256 karakter terdapat dalam tabel ASCII.
Operator yang berlaku dalam tipe data ini hanyalah operator relasional. Karena
keseluruhan karakter terdaftar dalam tabel ASCII dengan urutan tertentu, urutan itulah yang
menunjukkan relasi <, >, , , =, pada tipe data ini. Pada pengoperasiannya urutan tersebut
akan menentukan karakter yang akan dikerjakan terlebih dahulu.
Beberapa bahasa pemrograman tidak mengenal tipe data ini, termasuk bahasa
pemrograman BASIC.
Jawaban
Hasildariekspresitersebut di atas adalah
a. benar
b. salah
c. benar
d. benar
e. salah
19
e. String
String adalah deretan karakter dengan panjang tertentu. Meskipun sebenarnya
panjang karakter dalam string tidak dibatasi, namun karena keterbatasan komputer dalam
memproses data, setiap bahasa pemrograman melakukan pembatasan.
Operator yang berlaku dalam tipe data ini adalah operator penyambungan (+) dan
operator relasional. Operator penyambungan, meskipun tandanya sama dengan tanda
operator jumlah aritmatika, namun pengertiannya berbeda. Operator ini berarti menyambung
dua string menjadi satu string. Operator relasional pada tipe data string sama sifatnya dengan
operator relasional pada tipe data karakter.
Jawaban
Hasildariekspresitersebut di atasadalah
a. ‘BulbaSaur’
b. ‘DigimonTamers’
c. ‘12’
d. salah
e. benar
f. Bentukan (User-Defined)
Pembuat program dapat membuat sendiri tipe data yang akan dipergunakan dalam
programnya. Tipe data bentukan ini merupakan gabungan dari tipe data yang ada, misalnya
gabungan antara string dengan integer. Nilai yang bisa disimpan sebagai tipe data ini juga
merupakan gabungan antara nilai pada tipe data yang digabungkan. Demikian halnya tentang
operator, masing-masing elemen dalam tipe data ini dapat dioperasikan dengan operator yang
dapat dilakukan pada masing-masing tipe data yang digabungkan.
20
juga dengan harganya. Adapun tanda-tanda khusus tersebut dapat dilihat pada pembahasan
masing-masing tipe data di bawah ini.
Nama di dalam variabel dan konstanta, sama seperti halnya semua elemen dasar
program, digunakan untuk membedakan elemen yang satu dengan elemen yang lain. Untuk
menjadi sebuah nama elemen program harus memenuhi syarat sebagai berikut :
1. Spesifik, artinya sebuah nama harus berbeda dengan nama yang lain : nama variabel,
konstanta, fungsi, dll termasuk perintah.
2. Karakter yang bisa digunakan adalah huruf, angka. Karakter yang lain tergantung bahasa
pemrograman : garis bawah (_) atau titik (.). Bahasa QB 4.5 hanya memperbolehkan
penggunaan titik.
3. huruf besar dan huruf kecil dianggap sama.
4. panjang tergantung bahasa pemrograman. Bahasa QB 4.5 memperbolehkan panjang
maksimal 64 karakter.
a. Bilangan Bulat
Bahasa BASIC mengenal dua sub-tipe Bilangan Bulat yaitu Integer dan Long Integer.
Integer mempunyai batasan bilangan dari –32768 sampai +32767, sedangkan Long Integer
dengan batasan –2147483648 sampai + 2147483647. Untuk mendeklarasikan variabel
Integer digunakan perintahDIM NamaVariabel AS INTEGER, sedangkan untuk variabel Long
Integer digunakan perintahDIM NamaVariabel AS LONG.
Untuk mengisikan angka yang bertipe data ini digunakan akhiran khusus. Akhiran
tanda % digunakan untuk Integer, dan akhiran tanda & digunakan untuk Long Integer. Contoh
: 10% menunjukkan sebuah harga yang bertipe Integer, sedangkan 100& menunjukkan
sebuah harga yang bertipe Long Integer.
b. Bilangan Riil
Bahasa BASIC mengenal dua sub-tipe Bilangan Riil yaitu Single Precision dan Double
Precision. Single Precision mempunyai batasan bilangan dari –3.37E+38 sampai +3.37E+38,
sedangkan Double Precision dengan batasan –1.67D+308 sampai +1.67D+308. (1E+10
sama artinya dengan 1D+10 yaitu 1.1010) Untuk mendeklarasikan variabel Single Precision
digunakan perintahDIM NamaVariabel AS SINGLE, sedangkan untuk variabel Double
Precision digunakan perintahDIM NamaVariabel AS DOUBLE.
Seperti halnya bilangan bulat untuk membedakan keduanya, pada angka yang
mengikuti tipe data ini diberi akhiran dengan tanda khusus. Akhiran tanda ! menunjukkan sub-
tipe Single Precision dan akhiran # menunjukkan sub-tipe Double Precision. Contoh : 10!
menunjukkan sebuah harga yang bertipe Single Precision, sedangkan 100# menunjukkan
sebuah harga yang bertipe Double Precision.
c. String
Dalam bahasa BASIC, string dibedakan menjadi dua yaitu Variable-length string dan
Fixed-length string. Persamaan antara keduanya adalah panjangnya maksimumnya
sebanyak 32767 karakter, dan perbedaannya adalah panjang karakter yang bisa berubah-
ubah pada Variable-length string dan panjang karakter yang tetap pada Fixed-length string.
Untuk mendeklarasikan variabel Variable-length String digunakan perintahDIM
NamaVariabel AS STRING, sedangkan untuk variabel Fixed-length String digunakan
perintahDIM NamaVariabel AS STRING*n. n adalah panjang string yang dipakai.
Untuk menggunakan tipe data ini, sebuah harga harus diapit dengan tanpa petik ganda
("). Contoh : "10" menunjukkan sebuah harga yang bertipe string.
21
Contoh 2-5. Pendeklarasian Variabel
Lihat kembali program komputer dalam Contoh 1-2 yang ada di halaman 12.
Tambahkanlah deklarasi variabel/konstanta seperlunya pada program tersebut!
‘DeklarasiVariabel
DIM j1 AS INTEGER, m1 AS INTEGER, d1 AS INTEGER
DIM j2 AS INTEGER, m2 AS INTEGER, d2 AS INTEGER
DIM j3 AS INTEGER, m3 AS INTEGER, d3 AS INTEGER
DIM det1 AS LONG, det2 AS LONG, det3 AS LONG
‘DeklarasiKonstanta
CONST jam = 3600
CONST menit = 60
‘Program
CLS
j1 = 2
m1 = 55
d1 = 30
j2 = 3
m2 = 1
d2 = 27
det1 = j1 * jam + m1 * menit + d1
det2 = j2 * jam + m2 * menit + d2
det3 = det2 - det1
j3 = det3 \ jam
m3 = (det3 MOD jam) \ menit
d3 = (det3 MOD jam) MOD menit
PRINT j3; m3; d3
END
22
d. Bentukan (User-Defined)
Bahasa BASIC menyediakan fasilitas untuk membentuk tipe data sendiri untuk para
pembuat program yang mahir. Seperti telah dijelaskan di atas, tipe data ini merupakan
gabungan dari tiga tipe data yang dikenali BASIC. Untuk dapat membentuk tipe data sendiri,
digunakan bentuk umum perintah seperti di bawah ini :
TYPE NamaTipe
NamaElemen1 AS TipeData
NamaElemen2 AS TipeData
:
NamaElemenN AS TipeData
END TYPE
e. Larik (Array)
Larik (Array) bukan merupakan salah satu bentuk tipe data, tetapi merupakan salah
satu cara untuk menyatakan variabel. Dengan cara ini, sejumlah harga dengan tipe dan sifat
yang sama dapat disimpan dalam sebuah nama variabel. Identitas masing-masing harga
dinyatakan dalam indeks yang bertipe integer. Misalnya : X(1) = 10, X(2) = 15, X(3) = 100,
dst. Cara penulisan seperti ini banyak digunakan dalam bidang perhitungan vektor (dengan
larik satu dimensi), matriks (dengan larik dua dimensi), statistika (untuk data berindeks), dan
pemodelan matematis (dengan variabel berindeks, dapat mencapai larik n dimensi). Kunci
dalam penggunaan larik adalah kemampuan untuk memanipulasi/menggunakan indeks
semaksimal mungkin untuk menyelesaikan masalah yang ada.
Untuk dapat menggunakan larik dalam program, deklarasi variabel yang telah
dijelaskan sebelumnya sedikit dimodifikasi untuk memberi nilai indeks. Untuk larik satu
dimensi dengan jumlah indeks = Jumlah, digunakan perintah deklarasi :
‘Deklarasi Konstanta
CONST jam = 3600
CONST menit = 60
23
‘Program
CLS
j(1) = 2
m(1) = 55
d(1) = 30
j(2) = 3
m(2) = 1
d(2) = 27
det(1) = j(1) * jam + m(1) * menit + d(1)
det(2) = j(2) * jam + m(2) * menit + d(2)
det(3) = det(2) - det(1)
j(3) = det(3) \ jam
m(3) = (det(3) MOD jam) \ menit
d(3) = (det(3) MOD jam) MOD menit
PRINT j(3); m(3); d(3)
END
24
Gambar 2-1. Diagram Alir Struktur Runtunan
Untuk menggunakan struktur ini dalam bahasa BASIC cukup dituliskan perintah-
perintah yang bersangkutan dari atas ke bawah.
Ekspresi Benar
Logika
Salah
Latihan
a. Penentuan nilai ekspresi dalam beberapa tipe data
Sebelum dapat menyusun program dengan baik, yang kemungkinan berisi dengan
berbagai macam ekspresi, kemampuan untuk dapat menentukan harga dari bermacam
ekspresi hendaknya dikuasai terlebih dahulu. Untuk itu tentukanlah harga ekspresi-ekspresi
di bawah ini.
1. a. 4+4/4*2
b. (5+5)/(5*2)
c. 6/2– 4*2
d. 6/(2– 3)*2
e. 6/(2– 3*2)
f. ((4+3)/(6+5/5)+15) mod 3
2. a. 6+2/2*3 7 div 1
b. 6+2/2*3 > 7 div 1
c. 3+4/4*3–8 8 mod 2
d. 3+4/4*3–8 < 8 mod 2
e. 3 – 9 div 2 – 4 = 0 div 2
f. (3 – 9) div (2 – 4) 0 mod 2
g. (44\3)* 2 mod 4
h. 2+4/5*6< 10 div 3
26
3. a. not (8+5 > 10 div 3)
b. (5 10/2) and (4*2 8)
c. (10+3*5 100 mod 3) or (6/2+1 = 2)
d. (3 < 8) xor (9 < 9)
e. (5 5) eqv (3 3)
f. (1+2/2-1 = 3) imp (15 3*4+1)
g. 10 mod 3\2 or 12\3 div 7
b. Pendeklarasian Variabel
Lihat kembali program komputer latihan soal no. 1 – 4 pada Bab I, identifikasi semua
variabel dan konstanta yang terdapat pada masing-masing program. Kemudian tentukanlah
jenis data dari masing-masing elemen tersebut. Setelah itu sempurnakanlah program dengan
mendeklarasikan semua konstanta dan variabel yang diperlukan dalam program.
1. Menentukan jenis suatu bilangan (merupakan input), bilangan genap atau bilangan ganjil.
Contoh kasus : input bilangan =21; jenisbilangan = bilanganganjil.
2. Menentukan jumlah digit dari suatu bilangan (merupakan input yang besarnya antara 0
sampai 100.000). Contoh kasus : input bilangan = 234; banyaknya digit = 3.
4. Menentukan jenis suatu tahun, kabisat atau bukan. Dalam tahun masehi yang kita pakai
akan ditemui tahun kabisat setiap 4 tahun sekali, dengan pengecualian tahun-tahun
kelipatan 100 yang bukan merupakan kelipatan 400. Buatlah program untuk mengetahui
apakah suatu tahun merupakan tahun kabisat atau bukan.
5. Menentukan apakah suatu segitiga sama sisi atau tidak yang akan dibentuk oleh tiga buah
titik dengan koordinat yang berbeda pada bidang koordinat dua dimensi?
27
7. Menampilkan 9 bilangan genap yang pertama.
28
Bab III
Input dan Output
Telah sedikit disinggung dalam Bab II, bahwa cara pembuat program menggunakan
komputer untuk menyelesaikan masalah adalah dengan memerintahkan komputer untuk
mengolah obyek/data melalui variabel-variabel yang didefinisikan. Secara umum, dalam
setiap program akan terdapat sejumlah data yang ‘dimasukkan’ke dalamnya (yang sering
disebut dengan istilah input), kemudian setelah data tersebut mengalami pengolahan (yang
sering disebut dengan istilah process), akan terdapat sejumlah hasil yang ‘dikeluarkan’ dari
program tersebut (yang sering disebut dengan istilah output). Sehingga bila diilustrasikan,
sebuah program komputer akan bekerja dengan prinsip dasar seperti gambar di bawah ini.
Bila kembali dicermati tahap pertama dari proses pembuatan program komputer
(mendefinisikan permasalahan) dalam Bab I, terlihat bahwa tiga hal tersebut (Input-Process-
Output) merupakan hal yang sangat penting sehingga ditentukan pertama kali dalam
keseluruhan tahapan proses pembuatan program komputer. Kemudian pada tahap berikutnya
(menyiapkan algoritma/diagram alir), Process yang merupakan proses/cara mengubah Input
menjadi Output dijabarkan lebih terperinci dalam baris-baris algoritma/diagram alir yang
disiapkan.
Dalam algoritma/diagram alir, Input dan Output sangat mudah untuk dinyatakan. Akan
tetapi sering kali hal ini dapat menimbulkan masalah yang besar bila bekerja dalam bahasa
pemrograman. Untuk itulah di dalam Bab ini akan dibicarakan dengan agak terperinci
perintah-perintah (Statements) Input dan Output dalam Quick BASIC 4.5. Secara umum
perintah-perintah tersebut dalam prosesnya akan menggunakan media-media (peripheral) IO
(Input-Output) standard yang dikenal oleh komputer seperti papan ketik (keyboard), file yang
tersimpan dalam disket (floppydisk maupun hard disk), layar monitor (screen), dan printer.
1. Perintah Input
Secara umum, semua Perintah Input mempunyai tujuan untuk
memasukkan/menyimpan suatu nilai ke dalam suatu variabel saat perintah tersebut
dijalankan. Asal dari nilai tersebut mungkin dari dalam baris perintah/program itu sendiri, dari
keyboard, atau dari file yang sudah ada. Berikut ini akan dijelaskan Perintah Input : LET,
SWAP, INPUT, dan READ - DATA
a. Perintah LET
Perintah LET digunakan untuk memasukkan sebuah nilai/ekspresi ke dalam sebuah
variabel dari baris perintah yang sama. Nilai/ekspresi yang akan dimasukkan harus
mempunyai tipe data yang sama dengan variabel (tipe data variabel diatur dalam bagian
deklarasi variabel). Dalam penggunaannya perintah LET boleh tidak dituliskan. Bentuk umum
perintah :
29
LET NamaVar = Ekspresi/Nilai
atau setara dengan
NamaVar = Ekspresi/Nilai
END
b. Perintah SWAP
Perintah SWAP digunakan untuk menukar isi dua variabel yang telah dimasukkan
isinya sebelumnya. Tipe data dua variabel yang akan ditukar harus sama. Bentuk umum
perintah :
SWAP NamaVar1, NamaVar2
‘Deklarasi Variabel
DIM A AS LONG, B AS LONG
‘Program
CLS
A = 5
B = 10
PRINT A, B
SWAP A, B 30
PRINT A, B
END
Karena variabel A semula bernilai 2, dan variabel B bernilai 5, dan setelah perintah
SWAP dikerjakan variabel A bernilai 5 dan B bernilai 2, maka output dari program tersebut
adalah sebagai berikut :
5 10
10 5
c. Perintah INPUT
Perintah INPUT digunakan untuk membaca nilai data yang diketikkan lewat papan
ketik dan memasukkan nilai data tersebut pada suatu variabel yang ditulis di belakang
perintah INPUT. Dengan perintah INPUT program dapat membaca data yang bertipe apa
saja. Nilai data String tidak perlu diletakkan diantara tanda kutip (“), kecuali jika String tersebut
berisi tanda baca. Tanda baca koma digunakan untuk memisahkan suatu nilai data dengan
data yang lain.
Bentuk umum perintah :
'Deklarasi Variabel
DIM BIL AS INTEGER, UMUR AS INTEGER
DIM NAMA AS STRING, ALAMAT AS STRING
DIM A AS STRING, KOTA AS STRING
'Program
CLS
INPUT BIL
INPUT NAMA
INPUT ALAMAT
PRINT
INPUT "Masukkan Nilai A ="; A
INPUT "Masukkan Dua Bilangan ="; BIL, UMUR
PRINT
INPUT "NAMA ANDA = ", NAMA
INPUT "ALAMAT ANDA = ", ALAMAT
INPUT "KOTA ANDA = ", KOTA
INPUT ; "UMUR ANDA = ", UMUR
PRINT " TAHUN"
END
Jika program di atas dijalankan, pada layar output akan muncul tanda tanya ? yang
menunjukkan bahwa program menunggu anda memasukkan nilai data untuk variabel-variabel
31
yang ditulis di belakang INPUT. Setelah nilai data dimasukkan tekan tombol <enter> untuk
melanjutkan ke perintah berikutnya. Berikut ini adalah contoh eksekusi program tersebut :
? 99
? Rere
? Babarsari
Dari contoh di atas, buatlah kesimpulan tentang arti tanda titik koma (;) setelah
perintah INPUT, Ekspresi String di antara tanda kutip (“ … “), tanda koma setelah Ekspresi
String yang dapat digunakan bergantian dengan tanda titik koma!
Catatan yang lain adalah : banyaknya nilai data yang diketikkan pada papan ketik
harus sama dengan banyaknya variabel yang akan menerima nilai-nilai data tersebut, dan
tipe masing-masing data harus sesuai dengan tipe variabel. Jika ketentuan ini dilanggar maka
akan tampil pesan kesalahan “Redo From Start”, yang berarti harus mengetikkan nilai-nilai
data tersebut kembali (pada baris tersebut saja).
Jika perintah DATA tidak ada, maka kompiler akan memberikan pesan kesalahan “Out
Of Data”. Jika banyaknya variabel lebih besar dari banyaknya nilai data yang akan
dimasukkan maka pesan kesalahan “Out Of Data” juga akan muncul, dan pelaksanaan
program dihentikan. Sebaliknya jika banyaknya variabel lebih sedikit dibanding dengan
banyaknya nilai data, kelebihannya akan diabaikan.
Perintah DATA dapat diletakkan dimana saja dari badan program, tetapi disarankan
untuk menjadikan satu kumpulan perintah DATA dan meletakkannya di awal atau akhir
program untuk mempermudah pencarian.
Perintah READ - DATA dapat digunakan untuk membaca deretan nilai yang berbeda
jenisnya. Tetapi tipe variabel dalam perintah READ dan tipe data dalam perintah DATA harus
sesuai. Jika tipenya tidak sama akan menyebabkan kesalahan : “Type Mismatch” atau
“Syntax Error” atau kesalahan jenis data atau kesalahan pemotongan angka (truncation
error).
32
Nilai data yang tertera pada perintah DATA hanya dapat dibaca satu kali saja dengan
perintah READ dalam satu kali eksekusi program. Untuk dapat membaca kembali nilai data
digunakan perintah RESTORE.
Bentuk umum :
RESTORE (label / nomor baris)
Jika tidak didefinisikan label atau nomor baris, maka perintah RESTORE akan
mengembalikan pembacaan data pada perintah DATA yang pertama.
‘Deklarasi Variabel
DIM A AS LONG, B AS LONG
‘Program
CLS
READ A, B
PRINT A, B
SWAP A, B
PRINT A, B
END
Hal yang sama terdapat pada contoh program di bawah ini, terdapat kesalahan dalam
penggunaan perintah READ – DATA. Cobalah jalankan program tersebut, lihat pesan
kesalahannya, kemudian coba perbaiki kesalahan yang ada.
‘Deklarasi Variabel
DIM A AS LONG, B AS LONG, C AS LONG, D AS LONG
‘Program
CLS
READ A, B, C, D
PRINT A, B, C, D
END
‘Data
DATA 15, 25, 35
Hal yang sama terdapat pada contoh program di bawah ini, terdapat kesalahan dalam
penggunaan perintah READ – DATA.
33
‘Deklarasi Variabel
DIM A AS INTEGER, B AS LONG,
DIM C AS STRING, D AS STRING
‘Program
CLS
READ A, B, C, D
PRINT A, B, C, D
END
‘Data
DATA UAJY, 20, 30, Mahasiswa
Bila program di atas dijalankan, program akan berhenti dan akan muncul pesan
kesalahan “Type Mismatch” atau “Syntax Error”. Hal ini disebabkan karena variabel pertama
yang berada dalam perintah READ (Variabel A) mempunyai tipe Integer, sedangkan nilai data
pertama yang akan dibaca merupakan String.
Hal lain yang perlu dicermati adalah variabel ketiga dalam perintah READ (Variabel C)
yang merupakan variabel String. Meskipun nilai data yang dimasukkan adalah nilai 10, nilai
ini tetaplah merupakan deretan karakter, bukan merupakan bilangan, sehingga nilai ini hanya
bisa dioperasikan sebagai string.
Sebuah contoh program dan output program dengan perintah READ – DATA yang
salah adalah sebagai berikut :
‘Deklarasi Variabel
DIM A AS INTEGER, B AS LONG,
DIM C AS STRING, D AS STRING
‘Program
CLS
READ A, B, C, D
PRINT A, B, C, D
END
‘Data
DATA 1.125, 30, Mahasiswa, UAJY
1 30 Mahasiswa UAJY
Bila program di atas dijalankan, memang tidak muncul pesan kesalahan apapun.
Tetapi apabila dicermati output program tersebut, khususnya pada penampilan variabel A
terdapat suatu kejanggalan. Nilai Data yang tertulis untuk variabel A adalah 1.125, akan tetapi
yang tertampil di layar output adalah harga 1. Hal ini terjadi karena A merupakan variabel
Integer yang tidak mengenal fraksi pecahan (desimal). Sehingga sebuah nilai desimal yang
akan dimasukkan ke dalam variabel tersebut dibulatkan terlebih dahulu. Kesalahan seperti ini
disebut dengan truncation error. Hal ini harus diantisipasi dengan cara mendeklarasikan
variabel yang tepat. Misalnya untuk program di atas, kita deklarasikan A sebagai SINGLE.
34
Contoh 3-4. Penggunaan Perintah READ – DATA dan RESTORE
Berikut ini adalah contoh penggunaan perintah RESTORE dalam program yang
menggunakan perintah READ – DATA. Program di bawah ini menggunakan style (gaya)
penulisan BASIC yang paling tradisional yaitu dengan menggunakan nomor pada awal setiap
baris program. Versi awal dari keluarga compiler BASIC seperti BASICA dan GW-BASIC
mengharuskan penggunaan nomor baris seperti di bawah ini, dan penggunaan nomor masih
diperbolehkan dalam QB 4.5 meskipun sifatnya hanya optional.
Pada baris perintah nomor 10, 70, 110, 200, 260 (penggunaan nomor memudahkan
untuk melakukan kutipan seperti ini) terdapat perintah dengan keyword REM yang sama
tugasnya dengan tanda petik tunggal (‘) yang sudah sering digunakan, yaitu untuk
memberikan keterangan tambahan dalam program karena semua karakter setelah perintah
tersebut tidak akan dijalankan sebagai baris program. Keterangan/Komentar seperti ini
sangat memudahkan pendokumentasian program itu sendiri, terutama untuk program-
program besar.
35
330 END
ERIC 100
RERE 90
VINCENT 80
DIO 70
100 90 80 70
Perintah DATA terdapat pada bagian awal program ini, sedangkan perintah RESTORE
ada pada baris perintah nomor 210 dan 260. Cermati tugasnya masing-masing. Cobalah pula
untuk menghilangkan satu demi satu perintah RESTORE tersebut dan jalankanlah program
tersebut, cermati apa yang terjadi!
2. Perintah Output
Secara umum, semua Perintah Output mempunyai tujuan untuk
menampilkan/mengeluarkan nilai yang tersimpan suatu variabel ke media Output yang ada
saat perintah tersebut dijalankan. Penampilan isi variabel tersebut dapat digabungkan dengan
isi varibel lain ataupun berbentuk ekspresi. Adapun media Output yang bisa digunakan antara
lain layar monitor (screen), printer, dan file. Berikut ini akan dijelaskan dua perintah Output :
PRINT, LPRINT.
a. Perintah PRINT
Perintah PRINT digunakan untuk menampilkan/mencetak sederetan ekspresi ke layar
monitor. Bentuk umum perintah :
Seperti telah dijelaskan pada bab II, ekspresi yang dimaksud di sini adalah gabungan
operator, konstanta dan variabel yang menghasilkan sebuah nilai tunggal. Ekspresi yang bisa
ditampilkan apa adanya dengan perintah ini hanyalah ekspresi yang menghasilkan nilai string
dan nilai numerik. Sedangkan ekspresi yang menghasilkan nilai logika, nilainya akan
ditampilkan sebagai simbol –1 untuk benar/true dan 0 untuk salah/false.
Tanda pemisah titik koma akan menyebabkan ekspresi kedua (atau ekspresi
berikutnya) dicetak tepat setelah ekspresi pertama (atau ekspresi sebelumnya). Untuk
ekspresi numerik sebelum dan sesudahnya diberi satu spasi kosong, sedangkan untuk
ekspresi string tanpa ada spasi kosong.
Tanda koma akan menyebabkan ekspresi kedua (atau ekspresi berikutnya) dicetak
pada awal zona kolom layar monitor berikutnya. Secara normal layar monitor dapat dibagi
36
menjadi 25 baris (1 - 25) dan 80 kolom (1-80). Daerah sepanjang 80 karakter kolom dibagi
dalam 6 zona. Zona I - V terdiri dari 14 karakter, sedangkan zona VI terdiri dari 10 karakter.
Apabila tidak ada ekspresi setelah perintah PRINT, di layar monitor akan tercetak satu
baris kosong.
100
1.125
9 101.125
9 101.125
0
-1
37
Angkatan = 2013
Pemakaian tanda koma (,) atau tanda titik koma (;) untuk memisahkan ekspresi yang
satu dengan ekspresi yang lain pada perintah PRINT seringkali kurang memenuhi kebutuhan,
karena banyaknya spasi yang akan dicetak. Seringkali kita menginginkan adanya spasi yang
banyaknya bisa kita atur sesuai kebutuhan. Hal ini bisa dilaksanakan dengan menyisipkan
perintah TAB(n) atau SPC(n) sebelum ekspresi yang akan ditampilkan dengan perintah
PRINT.
Perintah TAB(n) menunjukkan bahwa nilai ekpresi sesudah perintah ini akan dicetak
pada kolom ke n. Sedangkan perintah SPC(n) digunakan untuk memberi jarak sebanyak n
spasi antara satu ekspresi dengan ekspresi yang lain.
Sedangkan untuk mencetak karakter tertentu dengan jumlah tertentu, kita bisa
menggunakan perintah STRING$(n, “karakter”/kode ASCII) di dalam ekspresi setelah
perintah PRINT.
10 CLS
20 PRINT "123456789012345678901234567890"
30 PRINT TAB(3); "Universitas"; TAB(15); "Atma Jaya"
40 PRINT SPC(3); "Universitas"; SPC(5); "Atma Jaya"
50 PRINT TAB(3); 25
60 PRINT STRING$(30, "*")
70 PRINT STRING$(15, "AB")
80 PRINT STRING$(30, 205)
90 PRINT STRING$(10, "205")
100 END
123456789012345678901234567890
Universitas Atma Jaya
Universitas Atma Jaya
25
******************************
AAAAAAAAAAAAAAA
------------------------------
2222222222
38
Bandingkan antara perintah TAB pada baris 30 program dengan perintah SPC pada baris 40
program, lihat perbedaan yang ada pada output program! Cermati juga perintah TAB yang
diikuti ekspresi numerik pada baris 50! Dari baris 70 dan 90, kita dapat mempelajari bahwa
apabila string yang dipakai, hanya karakter pertama saja yang diambil untuk diulangi sejumlah
n kali. Bandingkan juga antara baris 80 yang menggunakan kode ASCII (Kode ASCII
selengkapnya dapat dilihat melalui menu Help QB 4.5) dan 90 yang menggunakan string!
Untuk menghasilkan tampilan yang lebih baik dan lebih mudah di atur, perintah USING
“format“; ekspresi dapat digunakan setelah perintah PRINT. “format“ merupakan string
yang menunjukkan format tampilan yang akan dicetak. Sedangkan ekspresi merupakan
daftar ekspresi (bisa lebih dari satu) yang nilainya akan dicetak. Beberapa tanda yang dapat
dimasukkan dalam “format” USING terdapat dalam Tabel berikut ini.
Tabel 3-1. Tabel Tanda Format dan Kegunaan dalam Perintah USING
Dalam pemakaian format #, jika tanda # lebih sedikit dibanding dengan banyaknya angka
dalam ekspresi yang akan dicetak, keseluruhan angka dari ekspresi tersebut tetap akan
dicetak dengan tambahan tanda % di depan angka pertama. Format selengkapnya dapat
dilihat pada Menu Help QB 4.5.
39
CLS
PRINT USING "###"; 1234
PRINT USING "####"; 1234
PRINT USING "######"; 1234
PRINT USING "$##,###"; 1234
PRINT USING "###,###,###.##"; 1234567.89123#
Nama$ = "Eric Gunarto"
N = 99
PRINT
PRINT USING "Nama = \ \ dengan nilai ###.#"; Nama$; N
PRINT USING "! "; "Universitas";
PRINT USING "! "; "Atma";
PRINT USING "! "; "Jaya";
PRINT USING "! "; "Yogyakarta"
PRINT USING "&"; "Universitas Atma Jaya Yogyakarta"
END
%1234
1234
1234
$ 1,234
1,234,567.89
b. Perintah LPRINT
Perintah LPRINT digunakan untuk menampilkan/mencetak sederetan ekspresi ke
printer, apabila terdapat alat ini yang terhubung dan dalam kondisi on/nyala dengan komputer
yang digunakan. Bentuk umum perintah LPRINT sama dengan perintah PRINT (kecuali kata
kuncinya), demikian pula semua variasi yang dipakai dengan perintah PRINT (TAB, SPC,
STRING$, USING) dapat dipakai dengan perintah LPRINT.
40
3. Latihan
a. Penyempurnaan Program
Lihat kembali program komputer latihan soal no. 1 – 4 pada Bab I, yang telah diperbaiki
dengan menambahkan deklarasi variabel pada latihan no. b pada Bab II. Dengan
pengetahuan yang telah diperoleh dalam bab ini, sempurnakanlah program-program tersebut
pada bagian input dan outputnya sehingga program mempunyai sifat ‘general solver’ (dapat
digunakan untuk menyelesaikan masalah-masalah sejenis secara umum, misal untuk no. 1
dapat untuk menyelesaikan masalah tersebut berapapun panjang jari-jari lingkaran) dan
tampilannya menjadi ‘user-friendly’ (mudah dipakai oleh orang lain, bahkan yang tidak bisa
membuat program sekalipun).
1. Mengkonversi panjang dalam yard, kaki, dan inchi menjadi ke dalam satuan meter.
Sebagai contoh, jika pengguna memasukkan 3 yard, 2 kaki, dan 8 inchi, maka program
menampilkan 3,556 meter. Masukkan dari program ini adalah panjang dalam yard, kaki,
dan inchi. Keluaran dari program ini adalah panjang dalam meter.
2. Menentukan suhu suatu ruangan dalam derajat Fahrenheit, Reamur dan Kelvin, apabila
telah diketahui suhu ruangan tersebut dalam derajat Celcius. Input pada program ini
adalah suhu dalam derajat Celcius dan keluarannya adalah suhu dalam Fahrenheit,
Reamur dan Kelvin.
3. Menampilkan jumlah hari, jam, menit, dan detik dari masukan yang berupa lamanya waktu
dalam detik. Sebagai contoh masukan 100.000 detik akan menghasilkan keluaran: 1 hari,
3 jam, 46 menit dan 40 detik.
4. Menghitung berat badan ideal mahasiswa. Data yang diinputkan adalah nama
mahasiswa, umur mahasiswa (dalam tahun), dan tinggi badan (dalam cm). Output dari
program adalah nama mahasiswa, umur mahasiswa (dalam tahun), dan tinggi badan
(dalam m, 2 digit dibelakang koma), berat badan ideal (dalam kg) . Rumus berat badan
ideal dalam kg adalah 90% * (tinggi badan(cm) – 100)
5. Menghitung nilai akhir seorang mahasiswa, dengan input Nama Mahasiswa, Nilai Tugas,
Nilai UTS dan Nilai UAS. Nilai akhir mahasiswa dihitung dengan prosentase nilai: 30%
tugas, 30% UTS, 40% UAS. Tampilkan sebagai output semua variabel yang ada.
6. Buatlah program untuk menampilkan KTM Anda dengan menggunakan perintah READ–
DATA. Output berupa: Nama, NPM, Prog. Studi, Fakultas, Alamat
7. Bagian pembuatan nota perusahaan suplier peralatan bengkel “LABPO” mengalami
kesulitan dalam membuat rincian nota untuk para pembeli. Atasan menerapkan peraturan
bahwa pembeli minimal harus membeli 5 jenis barang (@ max. 999 unit). Bantulah
mereka untuk membuat sebuah program dengan menginputkan nama barang, jumlah
barang yang dibeli, dan harga per-barang, sebanyak 5 kali, dan output berupa: harga
41
total per-barang, serta harga total seluruhnya. Gunakan perintah print using untuk
menampilkannya!
8. Komunitas anda akan mengikuti pertandingan mengejar cinta. Teman-teman Anda
mengetahui Anda sedang belajar pemrograman dan meminta Anda membuatkan
program untuk membuat format surat izin agar dapat mengikuti pertandingan mengejar
cinta. Buatlah program ini dengan input berupa Nama dan No. Mahasiswa. Batasi nama
hanya sebanyak 15 karakter saja (petunjuk: gunakan PRINT USING).
Contoh input dan output:
INPUT
Masukkan Nama : VinCos
Masukkan NIM : 7777
OUTPUT
Dengan hormat,
Bersamaan dengan surat ini, saya yang bertanda tangan di bawah ini:
Nama : VinCos
No.Mahasiswa : 7777
menyatakan bahwa saya tidak bisa mengikuti mata kuliah yang Bapak ajar, karena
harus mengikuti pertandingan mengejar cinta dalam rangka hari valentine. Demikian
surat ini saya buat, atas perhatian Bapak saya mengucapkan 'maacih eaaa!!!’.Muaachh
:* …
VinCos
42
Bab IV
Struktur Pemilihan
dengan IF … THEN … ELSE … END IF
Dalam bab II telah dijelaskan bahwa terdapat tiga macam struktur dasar yang dapat
menyusun program komputer, yaitu : Struktur Runtunan (Sequence), Struktur Pemilihan
(Selection), dan Struktur Perulangan (Repetition). Sampai pada Bab III, struktur yang telah
digunakan untuk menyusun program (baik contoh maupun latihan) hanyalah Struktur
Runtunan saja.
Dalam bab ini, akan dibahas tentang Struktur Pemilihan di mana terdapat suatu
persyaratan yang merupakan operator logika yang digunakan untuk mengatur jalannya
program. Apabila syarat tersebut dipenuhi (atau operator logika tersebut bernilai benar)
serangkaian baris perintah dikerjakan dan apabila syarat tersebut tidak dipenuhi (operator
logika tersebut bernilai salah) rangkaian baris perintah yang lain dikerjakan.
Dalam bahasa BASIC, Struktur tersebut di atas ekivalen dengan bentuk umum perintah
berikut ini :
43
melakukan perintah apa-apa jika bernilai salah, bentuk perintahnya akan menjadi satu baris
saja :
Benar
Ekspresi Logika
Salah
Sedangkan untuk gambar 4-2, yang hanya melakukan satu perintah saja jika ekspresi logika
syaratnya bernilai benar dan juga hanya melakukan satu perintah saja jika bernilai salah,
bentuk perintahnya akan menjadi :
IF Ekspresi Logika THEN Perintah jika EL Benar ELSE Perintah jika EL Salah
Benar
Ekspresi Logika
Salah
44
Ekspresi Salah Ekspresi Salah Ekspresi Salah
Logika 1 Logika 2 Logika n
Dalam bahasa BASIC, Struktur tersebut di atas ekivalen dengan bentuk umum perintah
berikut ini :
Program Komputer
CLS
DIM nama AS STRING
DIM pretest AS SINGLE, laporan AS SINGLE, TB AS SINGLE
DIM na AS SINGLE, nilai AS STRING
PRINT "Program untuk menentukan nilai akhir praktikum seorang
mahasiswa"
PRINT
PRINT "Masukkan data mahasiswa"
PRINT "-------------------------"
INPUT "Nama mahasiswa : ", nama
INPUT "Nilai pretest : ", pretest
INPUT "Nilai laporan : ", laporan
INPUT "Nilai tugas besar : ", TB
na = .3 * pretest + .4 * laporan + .3 * TB
46
Blok IF … END IF pada program di atas dapat disederhanakan menjadi :
IF na>= 80 THEN
nilai = "A"
ELSEIF na>= 70 THEN
nilai = "B"
ELSEIF na>= 55 THEN
nilai = "C"
ELSEIF na>= 40 THEN
nilai = "D"
ELSEIF na< 40 THEN
nilai = "E"
END IF
Penyederhanaan program di atas dapat dilakukan dengan syarat urutan dalam blok IF…END
IF tidak boleh dibalik atau teracak. Apabila ada urutan yang terbalik maka program tidak dapat
memberikan hasil seperti yang diinginkan, misalnya program diubah menjadi:
CLS
DIM nama AS STRING
DIM pretest AS SINGLE, laporan AS SINGLE, TB AS SINGLE
DIM na AS SINGLE, nilai AS STRING
PRINT "Program untuk menentukan nilai akhir praktikum seorang
mahasiswa"
PRINT
PRINT "Masukkan data mahasiswa"
PRINT "-------------------------"
INPUT "Nama mahasiswa : ", nama
INPUT "Nilai pretest : ", pretest
INPUT "Nilai laporan : ", laporan
INPUT "Nilai tugas besar : ", TB
na = .3 * tugas + .4 * uts + .3 * uas
IF na >= 55 THEN
nilai = "C"
ELSEIF na >= 80 THEN
nilai = "A"
ELSEIF na >= 70 THEN
nilai = "B"
ELSEIF na >= 40 THEN
nilai = "D"
ELSEIF na < 40 THEN
nilai = "E"
END IF
REM -- menampilkan nilai mahasiswa
47
PRINT "Nilai akhir :"; na
PRINT "Nilai huruf : "; nilai
END
sekilas program di atas sama dengan program sebelumnya tetapi, apabila dijalankan ternyata
memberikan hasil yang salah. Misalnya nilai akhir menghasilkan angka 80, dalam keluaran
program akan muncul nilai dalam huruf yaitu C. Hal ini terjadi karena program akan menguji
nilai akhir mulai dari kriteria teratas, sehingga nilai akhir 80 adalah benar menurut syarat 1
yaitu 55. Meskipun kriteria setelahnya adalah benar tetapi program akan berhenti dan
menampilkan output jika sudah menemukan yang sesuai kriteria.
4. Kombinasi Struktur
Bila dicermati diagram-diagram alir Struktur Pemilihan yang dibahas dalam bab ini,
dapat dilihat bahwa di dalam setiap struktur tersebut mungkin terdapat Struktur Runtunan.
Sebagai ilustrasi : pada gambar 4-1 terdapat dua rangkaian terpisah baris perintah yang juga
mengikuti struktur runtunan di dalam struktur pemilihan (satu rangkaian dikerjakan jika syarat
benar dan satu rangkaian dikerjakan jika syarat salah).
Di dalam statemen IF…THEN…ELSE…END IF juga dimungkinkan adanya statemen
IF…THEN…ELSE…END IF yang lain, yang berarti baha di dalam struktur pemilihan
dimungkinkan adanya struktur pemilihan yang lain. Antara struktur pemilihan yang satu
dengan struktur pemilihan yang lain tidak boleh saling berpotongan / bersilangan.
Gambar 4.6 adalah contoh struktur pemilihan di dalam struktur pemilihan yang saling
bersilangan.
48
Gambar 4-6. Diagram Alir Dua Struktur Pemilihan yang Bersilangan
Latihan
a. Mengubah Algoritma/Diagram Alir menjadi Program
Lihat kembali algoritma/diagram alir yang telah dibuat pada latihan soal Bab II no. c. 1 – 4.
Dengan pengetahuan akan perintah struktur pemilihan yang dibicarakan pada Bab ini,
ubahlah algoritma/diagram alir tersebut menjadi sebuah program komputer yang baik.
b. Modifikasi Program
Lihat kembali program komputer latihan soal Bab III no. b. 4, dan 5. Ubahlah sedikit
program-program tersebut, sehingga input – outputnya untuk masing-masing nomor
adalah sebagai berikut :
4. Input : nama mahasiswa, umur mahasiswa (dalam tahun), tinggi badan (dalam cm),
berat badan (dalam kg).
Output : berat badan ideal (dalam kg), status (dalam kurus, ideal, atau gemuk).
Catatan : Seseorang dikatakan berstatus ideal bila berat badannya mendekati berat
badan ideal ( 2%), kurus bila kurang dari nilai tersebut, dan gemuk bila lebih dari nilai
tersebut.
5. Input : Nama Mahasiswa, Nilai Tugas, Nilai UTS dan Nilai UAS.
Output : Nilai akhir mahasiswa dalam angka dan huruf serta status kelulusan
Dengan ketentuan Seorang mahasiswa dikatakan sudah lulus dan tidak perlu
mengulang jika nilai akhir mahasiswa tersebut minimal B. jika nilai mahasiswa C, maka
statusnya lulus tapi disarankan untuk remidi. Jika nilai mahasiswa adalah D atau E,
mahasiswa tersebut tidak lulus. Nilai angka dan nilai huruf ditentukan seperti pada
contoh 4-1.
1. DIGIVOLUTION menyewakan cd dan dvd film, lagu, software dan games dengan tarif
Rp 1700,00/kaset untuk 3 hari penyewaan. Keterlambatan pengembalian setelah 3
49
hari dikenakan denda Rp 500,00/hari/kaset. Buatlah sebuah program komputer
dengan input nama pelanggan, jumlah kaset yang disewa, tanggal peminjaman, dan
tanggal pengembalian. Outputnya adalah total biaya,sewa dan denda (jika kena
denda), yang harus dibayarkan oleh pelanggan tersebut!
Buatlah sebuah program komputer dengan input nama karyawan, golongan, status
perkawinan, dan jumlah anak untuk 6 orang karyawan instansi tersebut; dan output
gaji total seluruh karyawan tersebut!
50
5. Tetangga anda, Vincent, mendengar bahwa Anda sedang mempelajari pemrograman.
Dia meminta Anda membuatkan sebuah program untuk menghitung jumlah order
bahan yang masuk pada gudangnya oleh 3 vendor yang berbeda. Patrick memberikan
persentase order untuk vendor A 25%, vendor B 45% dan vendor C 30%.
Total biaya = 25% A + 45% B + 30% C
Program Anda harus dapat digunakan oleh pegawai untuk memasukkan Nama
Vendor, Jumlah bahan yang diorder dari masing-masing vendor, dan Harga vahan
masing-masing vendor. Output berupa: Jumlah yang harus dibayar kepada masing-
masing vendor dan Total biaya.
6. Raditya hartono adalah seorang pakar cinta yang terkenal di Desa Asmara. Sekarang
Radit sedang galau karena ada pasiennya yang meminta diramalkan kecocokannya
dengan pacarnya berdasarkan tinggi badan dan berat badan. Radit pun berdoa agar
mendapat pencerahan untuk menjawab masalah pasiennya tersebut. Di dalam
pencerahannya dikatakan bahwa pasangan ideal adalah pasangan yang tinggi si
cowok lebih tinggi 3 cm dikalikan selisih umur si cowok dan si cewek, dan berat si
cowok lebih berat 2.5 kg dikalikan dengan selisih umur si cowok dan si cewek.
Akhirnya Radit pun bermaksud untuk membuat program untuk menyelesaikan
permasalahan pasiennya ini. Bantu Radit dong untuk membuat program dengan
Ketentuan :
Input :
- Nama cowok dan cewek
- Umur cowok dan cewek
- Tinggi cowok dan cewek
- Berat badan cowok dan cewek
Apabila kriteria tinggi badan tidak memenuhi, katakan bahwa “Tinggi badan kalian
yang membuat kalian tidak bisa bersatu”
Apabila kriteria berat badan tidak memenuhi, katakan bahwa “Berat badan kalian
yang membuat kalian tidak bisa bersatu”
Apabila kriteria berat badan dan tinggi badan tidak memenuhi, katakan bahwa
“Selamanya kalian tidak bisa bersatu”
Apabila kedua kriteria terpenuhi, katakan bahwa “Sebenarnya kalian pasangan
yang serasi tetapi kalian tetap tidak mungkin bisa bersatu”
7. Anda adalah seorang agen Densus 88 yang menyamar di markas teroris, dan Anda
ingin mengirimkan daftar buron Densus 88 yaitu :
1.Eric; 2. Hengki; 3.Vincent; 4.Dio; 5.Rudolf
Dan juga daftar senjata yang diperjual belikan di sekitar markas Anda yaitu :
1. Glock18
2. Deagle
3. MAC 10
4. M16
5. Bom Flashbang
6. Machine Gun
7. Shotgun Magnum
8. Helmet + Kevlar
51
Agar tidak ketahuan orang lain, Anda harus membuat sebuah program ber-password
untuk membuka program berisi informasi rahasia Anda itu. Password program tersebut
adalah “monkeyd” program harus dapat membaca password dalam huruf besar
maupun kecil. Jika password salah, akan muncul kalimat bahwa password ditolak.
Ada tiga buah menu setelah password benar:
1. Daftar buron,
2. Daftar senjata,
3. Keluar dari program.
8. Valen kini akhirnya bisa move on, saat ini dia sedang mencari belahan hatinya yang
baru. Sudah banyak yang mengantri di depan gerbang hatinya tetapi terlalu banyak
pilihan. Indah jadi BINGUNG!!!. Sebagai teman yang baik, kamu ingin membantu
Valen dalam menentukan pilihan dengan membuatkannya sebuah program ramalan
yang isinya adalah ramalan kecocokan. Ramalan dihitung berdasarkan selisih
banyaknya karakter dari nama Valen dan nama wanita yang menjadi calon.
9. Reyno baru saja mendapat gaji mengajar dari Universitas Atma Jaya Yogyakarta,
dengan gaji tersebut dia ingin pergi berlibur. Tetapi dia masih bingung ingin pergi ke
Solo atau Surabaya. Dia akan berangkat menggunakan kereta api.
52
BAB V
Struktur Pemilihan dengan
SELECT CASE … END SELECT
54
Ada beberapa cara khusus untuk menyatakan nilai setelah kata kunci CASE.
Untuk menyatakan interval/range/antara nilai/ekspresi digunakan bentuk perintah
CASE Awal TO Akhir
Misalnya : CASE 1 TO 10, CASE 2*A TO 3+B. Sedangkan untuk menyatakan relasi
digunakan bentuk perintah
CASE IS Relasi
Misalnya : CASE IS = 10, CASE IS <= 2*A+A^2.
Sedangkan untuk menyatakan gabungan (OR) dari beberapa nliai, digunakan
tanda baca koma (,) antara nilai tersebut. Bentuk umumnya :
CASE Nilai1, Nilai2, Nilai3, ...
Misalnya : CASE IS = 10, 1 TO 10, 2*A TO 3+B
CASE ELSE
PRINT “TERIMA KASIH”
END SELECT
55
Apakah output darikeduaperintahtersebut?
Output dari program di atas adalah: A < B. Mengapa demikian?
Blok perintah SELECT CASE…END SELECT akan menjalankan statemen yang
nilainya memenuhi ungkapan yang mengikuti SELECT CASE. Dalam hal ini
ungkapan tersebut bernilai 2 dan nilai-nilai yang mengikuti CASE yang memenuhi
ungkapan tersebut adalah nilai < B dan = C. Dari dua nilai tersebut nilai < B –lah
yang dijalankan karena nilai tersebut dibaca terlebih dulu. Setelah membaca nilai
tersebut, program keluar dari blok perintah SELECT CASE…END SELECT.
Contoh 5-2: Program menghitung Luas dan Keliling Segi Empat
Program di bawah ini, menggunakan menu pilihan untuk memilih apa yang akan
dihitung: luas atau keliling segi empat.
DIM pil AS INTEGER
DIM r1 AS SINGLE, luas AS SINGLE
DIM r2 AS SINGLE, keliling AS SINGLE
DO
CLS
PRINT "Menu pilihan :"
PRINT "1. Menghitung luas segi empat"
PRINT "2. Menghitung keliling segi empat"
PRINT "3. Selesai"
INPUT "Masukkan pilihan anda (1-3) : ", pil
SELECT CASE pil
CASE 1
CLS
PRINT "Menghitung luas segi empat"
PRINT "-------------------------"
INPUT ; "Masukkan sisi 1 segi empat (dalam cm) : "; s1
INPUT ; “Masukkan sisi 2 segi empat (dalam cm) : “; s2
luas = s1 * s2
PRINT "Luas segi empat = "; luas; "cm persegi"
DO
LOOP UNTIL INKEY$<>""
CASE 2
CLS
PRINT "Menghitung keliling segi empat"
PRINT "-----------------------------"
INPUT ; "Masukkan sisi 1 segi empat (dalam cm) : "; s1
INPUT ; “Masukkan sisi 2 segi empat (dalam cm) : “; s2
keliling = 2 * s1 + 2 * s2
PRINT "Keliling segi empat = "; keliling; "cm"
DO
LOOP UNTIL INKEY$<>""
CASE 3
END
END SELECT
LOOP
END
56
LATIHAN
a. Memodifikasi Program
Lihat kembali program yang telah dibuat pada latihan soal BAB IV bagian b no 4
dan 6. Dengan pengetahuan akan perintah struktur pemilihan yang dibicarakan
pada bab ini, ubahlah program tersebut menjadi sebuah program komputer
dengan sistem menu pilihan, misalnya terdapat menu pilihan untuk :
- memasukkan data
- menampilkan hasil
- selesai
b. Penyusunan Algoritma,Flowchart,dan Program
Untuk masalah-masalah di bawah ini, susunlah Algoritma dan Flowchart
terlebih dahulu sebelum membuat program komputernya. Gunakan semua
perintah yang telah dikenal untuk membuat program terbaik (algoritma yang benar,
deklarasi variabel yang tepat, perintah yang tepat, tampilan output yang interaktif,
penggunaan subprogram, dll)
1. Buatlah program dengan menu pilihan utama (1-4) sebagai berikut :
1. Menu untuk segitiga siku-siku, didalamnya berisi :
a. Menghitung luas segitiga siku-siku
b. Menghitung keliling segitiga siku-siku
c. Kembali ke menu utama
2. Menu untuk kubus, didalamnya berisi :
a. Menghitung luas permukaan kubus
b. Menghitung volume kubus
c. Kembali ke menu utama
3. Menu untuk tabung, didalamnya berisi :
a. Menghitung luas permukaan tabung
b. Menghitung volume tabung
c. Kembali ke menu utama
4. Selesai
2. PT. Kereta Api Indonesia bekerja sama dengan sebuah agen tiket online KlikTiket
untuk pemesan tiket tujuan Solo dan Purwokerto. Agen tiket tersebut menerapkan
diskon untuk semua pemesan yang merupakan member dari agen tiket tersebut,
diskon yang didapat adalah 5% Untuk pemesanan tiket hanya dengan
memasukan 6 digit kode tiket. Dengan ketentuan sebagai berikut;
Digit 1-3 : Merupakan kode kota tujuan
Digit 4-5 : Merupakan kode kereta
Digit 6 : Merupakan kode kelas
Tujuan Kode Kereta Jam Kelas Harga
Solo (SLO) Prameks II (PR) 21:50 Bisnis (B) Rp. 125.000,-
Ekonomi (E) Rp. 75.000,-
Argo Lawu (AL) 14:30 Bisnis (B) Rp. 175.000,-
57
Ekonomi (E) Rp. 80.000,-
Lodaya (LD) 07:50 Bisnis (B) Rp. 145.000,-
Ekonomi (E) Rp. 70.000,-
Purwokerto Turangga (TR) 07:45 Bisnis (B) Rp. 185.000,-
(PWT)
Ekonomi (E) Rp. 90.000,-
Argo Wilis (AW) 11:45 Bisnis (B) Rp. 200.000,-
Ekonomi (E) Rp. 95.000,-
Mutiara Selatan (MS) 20:35 Bisnis (B) Rp. 225.000,-
Ekonomi (E) Rp. 100.000,-
Buatlah sebuah program komputer dengan input nama, status member, dan kode
tiket. Dengan output nama, status member, tujuan, nama kereta, kelas, jam
berangkat, biaya tiket, diskon, dan biaya setelah diskon.
3. Buat program untuk membedakan input (input merupakan 1 karakter berupa angka
atau huruf). Apabila berupa huruf, tentukan apakah huruf tersebut konsonan atau
vokal dan merupakan huruf kecil atau besar (kapital). Apabila berupa angka,
bedakan apakah angka tersebut genap atau ganjil dan merupakan bilangan positif,
nol, atau negatif. Gunakan Fungsi intrinsik VAL untuk mengubah string ke numerik.
4. Buat program untuk mengeja suatu bilangan 4 digit. Contoh :
Input = 6447
Ouput = Enam Ribu – Empat Ratus – Empat Puluh – Tujuh
5. Sebuah Rental Motor di Babarsari menyewakan 4 varian motor yaitu : Mio, Beat,
Vario, dan Revo. Dengan waktu penyewaan yang tersedia adalah 1 jam, 6 jam dan
1 hari dan 2 hari. Jika waktu penyewaannya adalah selama 1 hari dan 2 hari
masing-masing akan mendapatkan diskon 5% dan 10%. Harga tarif Rental Motor
Tata sebagai berikut :
Yamaha Mio :
Tarif 1 jam : Rp. 10.500,-
Tarif 6 jam : Rp. 21.000,-
Tarif 1 hari : Rp. 50.000,-
Tarif 2 hari : Rp. 110.000,-
Honda Beat :
Tarif 1 jam : Rp. 9.000,-
Tarif 6 jam : Rp. 18.000,-
Tarif 1 hari : Rp. 40.000,-
Tarif 2 hari : Rp. 90.000,-
Honda Vario :
Tarif 1 jam : Rp. 10.000,-
Tarif 6 jam : Rp. 20.000,-
Tarif 1 hari : Rp. 45.000,-
Tarif 2 hari : Rp. 100.000,-
58
Honda Revo :
Tarif 1 jam : Rp. 9.500,-
Tarif 6 jam : Rp. 19.000,-
Tarif 1 hari : Rp. 42.000,-
Tarif 2 hari : Rp. 95.000,-
Buatlah sebuah program komputer dengan input nama penyewa, jenis motor, dan
lama waktu sewa; dan sebagai output adalah nama penyewa, jenis motor, total
pembayaran, diskon yang didapat, dan total pembayaran setelah diskon.
6. Buatlah program ramalan jodoh. Input berupa namamu, nama gebetan, dan
gender-mu. Ramalan ditentukan dari jumlah karakter nama kalian dengan
ketentuan :
Bila jumlah karakter nama gebetanmu < jumlah karakter namamu dan gender
gebetanmu perempuan tampilkan RAMALAN 1
Bila jumlah karakter nama gebetanmu < jumlah karakter namamu dan gender
gebetanmu laki-laki tampilkan RAMALAN 2
Bila jumlah karakter nama gebetanmu > jumlah karakter namamu dan gender
gebetanmu perempuan tampilkan RAMALAN 3
Bila jumlah karakter nama gebetanmu > jumlah karakter namamu dan gender
gebetanmu laki-laki tampilkan RAMALAN 4
Isi ramalan 1-4 dibuat terserah Anda.
59
Bab VI
Struktur Perulangan dengan FOR … NEXT
Dalam bab II telah dijelaskan bahwa terdapat tiga macam struktur dasar yang
dapat menyusun program komputer, yaitu : Struktur Runtunan (Sequence), Struktur
Pemilihan (Selection), dan Struktur Perulangan (Repetition). Sampai pada Bab V,
struktur yang telah digunakan untuk menyusun program (baik contoh maupun latihan)
hanyalah Struktur Runtunan dan Struktur Pemilihan. Dalam bab ini, akan dibahas
sebuah Struktur Perulangan khusus, di mana terdapat serangkaian baris perintah (blok
perintah/blok statemen) yang diulang berdasarkan persyaratan khusus tertentu.
Var = Awal
T
Var > Akhir
60
Dengan mengetahui berapa nilai Awal, Akhir, dan Counter, dapat diperkirakan
berapa kali blok statemen tersebut diulangi. Misalnya harga Awal = 1, harga Akhir =
10, harga Counter = 1, maka blok statemen yang akan diulangi sebanyak 10 kali.
Dari bentuk umum, jika kata STEP dan counter tidak ditulis, maka counter
dianggap bernilai 1. Dalam pemakaian FOR … NEXT berlaku ketentuan :
Jika nilai Awal < Akhir, Counter harus > 0
Jika nilai Awal > Akhir, Counter harus < 0
DIM J AS INTEGER
DIM K AS INTEGER
CLS
FOR J = 0 TO 2
K=J+1
PRINT K
NEXT J
END
61
DIM A AS INTEGER
DIM B AS INTEGER
DIM J AS INTEGER
DIM K AS INTEGER
CLS
A=0
B=2
FOR J = A TO B
K=J+1
PRINT K
NEXT J
END
Dari contoh di atas, dapat dilihat bahwa Awal dan Akhir pada baris statemen
FOR tidak harus berbentuk bilangan tetapi dapat juga berbentuk nama variabel
asalkan isi dari variabel tersebut didefinisikansebelumnya.
DIM J AS SINGLE
DIM L AS SINGLE
CLS
FOR J = 0 TO 2 STEP 0.5
L=J+1
PRINT L
NEXT J
END
Dari contoh diatas, dapat dilihat output berurutan dari 1 sampai 3 dengan
pertambahan nilai 0.5, ini karena nilai J bertambah setiap pengulanganya sebesar 0.5
(step 0.5).
62
Pelanggaran atas dua ketentuan di atas menyebabkan tidak dapat berjalannya
program dengan baik. Ada kemungkinan kecil BASIC dapat mengeksekusi program
tersebut, tetapi logika program menjadi kacau.
Cermati gambar 6-2 untuk memberikan gambaran tentang perulangan
tersarang dan gambar 6-3 untuk memberikan gambaran tentang perulangan yang
berpotongan.
63
b) perulangan tersarang tidak berpotongan
FOR I = 1
FOR J = 1 TO 10
PRINT I, J, I * J
NEXT J
NEXT I
c) perulangan tersarang dengan variabel yang sama
FOR I = 1 TO 10
FOR I = 1 TO 10
PRINT I, I, I * I
NEXT I
NEXT I
Catatan yang lain adalah, dalam perulangan tersarang banyaknya kata FOR
harus sesuai dengan banyaknya kata NEXT dengan variabel kendali yang sama. Akan
tetapi dapat juga ditulis seperti berikut :
FOR I = 1
FOR J = 1 TO 10
PRINT I, J, I * J
NEXT J, I
Pada contoh di atas, jika ditulis NEXT I, J maka perulangan akan berpotongan.
64
DIM I, J AS INTEGER
CLS
FOR I = 1 TO 1000
PRINT I, SQR(I)
FOR J = 1 TO 10000
NEXT J
IF INKEY$ <> “” THEN EXIT FOR
NEXT I
END
Program di atas akan mencetak hasil 1 sampai 1000 dengan akarnya. Secara
normal, program di atas akan dikerjakan sampai nilai > 1000. Jika diinginkan program
hanya mencetak nilai sampai 10, maka setelah nilai 10 dan akar 10 tercetak, harus
dihentikan dengan menekan sembarang tombol, sehingga kondisi yang dinyatakan
dalam statemen IF menjadi benar dan statemen EXIT FOR akan dikerjakan. Proses
eksekusi langsung melompat keluar dari batas statemen FOR … NEXT.
CLS
INPUT "Jumlah Data = ", N
DIM Nama(N) AS STRING, Nilai(N) AS SINGLE
PRINT
'Memasukkan Data
FOR i = 1 TO N
PRINT " Nama -"; i; "= ";
INPUT "", Nama(i)
PRINT "Nilai -"; i; "= ";
INPUT "", Nilai(i)
NEXT i
'Menampilkan Data
65
PRINT
PRINT "Nama Nilai "
PRINT "------------------"
txt = "\ \ ###.## "
FOR i = 1 TO N
PRINT USING txt; Nama(i); Nilai(i)
NEXT i
END
Sebagai salah satu contoh output program tersebut adalah sebagai berikut :
Jumlah Data = 3
Nama - 1 = Vincent
Nilai - 1 = 90
Nama - 2 = Dolep
Nilai - 2 = 80.5
Nama - 3 = Nico
Nilai - 3 = 75.333
Nama Nilai
------------------
Vincent 90.00
Dolep 80.50
Nico 75.33
66
baris2 :no. baris dari elemen terakhir
kolom1 :no. kolom dari elemen pertama
kolom2 :no. kolom dari elemen terakhir
tipe :tipe data masing-masing elemen
Pembacaan elemen matriks (larik dimensi dua) dapat dibaca per baris atau
dibaca per kolom (tergantung indeksnya). Jika menggunakan statemen READ-DATA,
perlu hati-hati dalam menuliskan nilai datanya, karena kesalahan dalam menuliskan
urutan nilai data akan berakibat fatal. Cermati contoh 6-7 dan 6-8.
DIM I AS INTEGER
DIM J AS INTEGER
DIM MATRIKSA(3,3) AS INTEGER
FOR I = 1 TO 3
FOR J = 1 TO 3
READ MATRIKSA(I,J)
NEXT J
NEXT I
DATA 1,2,3
DATA 4,5,6
DATA 7,8,9
67
NEXT J
DATA 1,4,7
DATA 2,5,8
DATA 3,6,9
FOR I=1 TO 3
FOR J=1 TO 3
PRINT
MATRIKSA(I,J)
NEXT J
NEXT I
memberikan hasil semua elemen larik akan ditulis ke bawah dengan setiap baris
hanya terdiri dari sebuah nilai elemen.
Untuk memahami hasil diatas, perlu diingat kembali bagaimana statemen PRINT
bekerja. Jika di belakang argumen tidak terdapat tanda baca koma atau titik koma,
maka setelah mencetak nilai argumen, statemen PRINT langsung akan pindah ke
beris berikutnya. Dengan demikian perlu diletakkan tanda koma atau titik koma di
belakang argumen yang dicetak, misalnya :
FOR I=1 TO 3
FOR J=1 TO 3
PRINT
MATRIKSA(I,J);
NEXT J
NEXT I
MATRIKSA(I,J);
NEXT J
PRINT
NEXT I
68
Tanda baca titik koma (;) statemen PRINT MATRIKSA(I,J) maksudnya supaya data
dicetak satu baris, sedang statemen PRINT setelah statemen NEXT J diperlukan
untuk berpindah baris.
Latihan
a. Modifikasi Program
1. Lihat kembali program komputer latihan soal Bab III no. b. 2. Modifikasilah program
tersebut, sehingga didapatkan output yang berupa tabel konversi derajat dimulai
dari 0C sampai 81C dengan interval 9C.
2. Lihat kembali program komputer latihan soal Bab III no. b. 4, dan 5. Modifikasilah
program-program tersebut, sehingga dapat mengolah sejumlah data (N data).
Misalnya untuk soal no. 5, dapat digunakan untuk menentukan nilai akhir dari 10
mahasiswa.
2. Buatlah program untuk menghitung nilai pecahan mata uang. Input dari
program ini adalah jumlah uang, sedangkan outputnya adalah detail pecahan
dari uang tersebut. Misalnya : dengan input Jumlah uang Rp 779.000,00, akan
dihasilkan output sebagai berikut :
7 lembar Rp 100000
1 lembar Rp 50000
7 lembar Rp 20000
0 lembar Rp 10000
1 lembar Rp 5000
4 lembar Rp 1000
0 lembar Rp 500
0 lembar Rp 100
Sisa uang = Rp 0
Jumlah lembaran = 20 lembar
69
3. Buatlah program untuk melakukan operasi-operasi matriks sederhana, seperti
menjumlahkan matriks, mengurangi matriks, mentranspose matriks,
mengalikan dua matriks, dengan ukuran matriks yang bervariasi.
B
Y A. X
N
dengan X = jumlah data x
Y = jumlah data y
XY = jumlah data x kali y
X2 = jumlah x kuadrat
N = banyak data
70
7. Buatlah program untuk membuat piramida angka dengan input berupa jumlah
tingkat piramida dan output sbb.:
Tingkat piramida = 5
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
71
Bab VII
Struktur Perulangan dengan DO … LOOP
Seperti telah dijelaskan dalam Bab II, bahwa di dalam struktur perulangan
terdapat serangkaian baris perintah yang diulang berdasarkan persyaratan (ekspresi
logika) tertentu. Dalam Bab VI, juga telah dibahas salah satu bentuk khusus perintah
struktur perulangan dalam QB 4.5.
Dalam Bab ini akan dibahas struktur perulangan secara umum, di mana
pengulangan dapat terjadi baik pada nilai ekspresi logika benar maupun pada nilai
ekspresi logika salah, dan ekspresi logika dapat ditempatkan pada awal maupun akhir
pengulangan. Dengan demikian terdapat empat kemungkinan struktur perulangan,
yang masing-masing akan dibahas beserta perintah yang bersesuaian meskipun
sebenarnya perintah dasarnya sama yaitu DO … LOOP.
Ekspresi
Benar
Logika
Salah
72
Ekspresi
Salah
Logika
Benar
Ekspresi
Benar Logika
Salah
73
Bentuk umum perintah struktur ini adalah
DO
:
:
LOOP WHILE Ekspresi Logika
DO
:
:
LOOP UNTIL Ekspresi Logika
Ekspresi
Salah Logika
Benar
Permasalahan
Dengan memasukkan jumlah bilangan ganjil yang ingin ditampilkan (n), n bilangan
ganjil pertama ditampilkan sebagai output-nya.
74
Struktur Pengulangan DO UNTIL … LOOP
Algoritma
1. Mulai
2. Lakukan deklarasi untuk variabel I sebagai integer dan n sebagai integer
3. Memasukkan harga n
4. Mengatur I = 1
5. Jika I > n maka kerjakan langkah 9, jika tidak kerjakan langkah 6
6. Cetak 2 * I
7. I = I + 1
8. Ulangi langkah 4
9. Selesai
Program Komputer
DIM I AS INTEGER, n AS INTEGER
PRINT “Program Menampilkan n Bilangan Genap Pertama”
INPUT “n = “; n
I=1
DO UNTIL I > n
PRINT 2 * I
I=I+1
LOOP
END
Program Komputer
DIM I AS INTEGER, n AS INTEGER
PRINT “Program Menampilkan n Bilangan Genap Pertama”
INPUT “n = “; n
I=1
DO WHILE I <= n
PRINT 2 * I
I=I+1
LOOP
END
75
Struktur Pengulangan dengan DO … LOOP WHILE …
Algoritma
1. Mulai
2. Lakukan deklarasi untuk variabel I sebagai integer dan n sebagai integer
3. Memasukkan harga n
4. Mengatur I = 1
5. Cetak 2 * I
6. I = I + 1
7. Jika I <= n maka ulangi langkah 5, jika tidak kerjakan langkah 8
8. Selesai
Program Komputer
DIM I AS INTEGER, n AS INTEGER
PRINT “Program Menampilkan n Bilangan Genap Pertama”
INPUT “n = “; n
I=1
DO
PRINT 2 * I
I=I+1
LOOP WHILE I <= n
END
Program Komputer
DIM I AS INTEGER, n AS INTEGER
PRINT “Program Menampilkan n Bilangan Genap Pertama”
INPUT “n = “; n
I=1
DO
PRINT 2 * I
I=I+1
LOOP UNTIL I > n
END
76
5. Keluar dari Struktur Perulangan dengan Perintah EXIT
Secara normal, proses perulangan dalam struktur perulangan akan dihentikan
apabila syarat penghentian proses perulangan tersebut telah dapat dipenuhi. Akan
tetapi dimungkinkan pula untuk mengakhiri jalannya (atau keluar dari) struktur
perulangan tanpa harus menunggu syarat tersebut terpenuhi, misalnya pada suatu
persyaratan/kondisi khusus. Hal ini bisa dilakukan dengan menuliskan perintah EXIT
untuk keperluan tersebut. Seperti yang telah dibicarakan dalam Bab VI.3., bentuk
umum untuk keluar dari perintah struktur perulangan FOR … NEXT adalah
EXIT FOR
Sedangkan bentuk umum untuk keluar dari perintah struktur perulangan DO
… LOOP adalah
EXIT DO
Latihan
1 level 0
1 1 level 1
1 2 1 level 2
1 3 3 1 level 3
1 4 6 4 1 level 4
1 5 10 10 5 1 level 5
............. level n
77
5. Buatlah program menentukan faktorial! (gunakan perintah DO…LOOP)
Misalkan 7! = 5040
6. Buatlah program untuk membuat deret sejumlah n suku seperti di bawah ini
1 4 8 11 15 18 22 25 29 ….
78
Bab VIII
Dasar-Dasar Visual Basic 1
1. Mengenal IDE VB 6
IDE (Integrated Developement Environment) Visual Basic merupakan
Lingkungan Pengembangan Terpadu bagi programmer dalam mengembangkan
aplikasinya. Dengan menggunakan IDE programmer dapat membuat user interface,
melakukan koding, melakukan testing dan debuging serta menkompilasi program
menjadi executable. Penguasaan yang baik akan IDE akan sangat membantu
programmer dalam mengefektifkan tugas-tugasnya sehingga dapat bekerja dengan
efisien.
Salah satu cara untuk mengaktifkan IDE Visual Basic adalah menjalankannya
dari Menu Start, pilih menu Program, dan pilih Microsoft Visual Basic 6.0 dan
akhirnya Microsoft Visual Basic 6.0. Sesaat anda aktif di IDE Visual Basic (gambar
8-1). Sebagai langkah awal, pilih Standard EXE dan klik tombol Open.
79
Gambar 8-1. Dialog box New ditampilkan sesaat anda menjalankan IDE VB 6
Sebagaimana dengan proses belajar ini, kita akan fokus pada beberapa jendela yang
penting terlebih dahulu sehingga konsentrasi tidak menjadi pecah, dan peserta belajar
menjadi bingung. Adapun jendela-jendela yang perlu anda perhatikan adalah sebagai
berikut :
80
Menu Bar, digunakan untuk memilih tugas-tugas tertentu seperti menyimpan
project, membuka project, dll
Main Toolbar, digunakan untuk melakukan tugas-tugas tertentu dengan
cepat.
Jendela Project (Project Explorer), jendela ini berisi gambaran dari semua
modul yang terdapat dalam aplikasi anda. Anda dapat menggunakan Ctrl+R
untuk menampilkan jendela project, atau klik View > Project Explorer, ataupun
menggunakan icon ( )
Jendela Form Designer, jendela ini merupakan tempat anda untuk merancang
user interface dari aplikasi anda. Jadi jendela ini menyerupai kanvas bagi
seorang pelukis. Bila jendela ini tidak muncul klik View > Object
Jendela Toolbox, jendela ini berisi komponen-komponen yang dapat anda
gunakan untuk mengembangkan user interface. Bila jendela ini tidak muncul
klik View > Toolbox atau menggunakan icon ( )
Jendela Code, merupakan tempat bagi anda untuk menulis koding. Anda dapat
menampilkan jendela ini dengan menggunakan kombinasi Shift-F7 atau klik
View > Code.
Jendela Properties, merupakan daftar properti-properti object yang sedang
terpilih. Sebagai contohnya anda dapat mengubah warna tulisan (foreground)
dan warna latarbelakang (background). Anda dapat menggunakan F4 untuk
menampilkan jendela properti atau klik View > Properties Window atau
menggunakan icon ( )
Sebagai ilustrasi, anda dapat menganggap sebuah mobil sebagai object yang
memiliki property, method dan event (gambar 8-3).
81
3. Toolbox
Jendela Toolbox merupakan jendela yang sangat penting bagi anda. Dari
jendela ini anda dapat mengambil komponen-komponen (object) yang akan
ditanamkan pada form untuk membentuk user interface. Komponen-komponen yang
ada dalam toolbox membantu anda untuk merancang program dan anda mendapatkan
gambaran yang jelas akan program yang akan anda buat.
Adapun secara garis besar fungsi dari masing-masing intrinsic kontrol tersebut adalah
sebagai berikut :
Pointer bukan merupakan suatu kontrol; gunakan icon ini ketika anda ingin
memilih kontrol yang sudah berada pada form.
PictureBox adalah kontrol yang digunakan untuk menampilkan image dengan
format: BMP, DIB (bitmap), ICO (icon), CUR (cursor), WMF (metafile), EMF
(enhanced metafile), GIF, dan JPEG.
Label adalah kontrol yang digunakan untuk menampilkan teks yang tidak dapat
diperbaiki oleh pemakai. Biasanya digunakan untuk memberi keterangan
obyek-obyek dalam form.
82
TextBox adalah kontrol yang mengandung string yang dapat diperbaiki oleh
pemakai, dapat berupa satu baris tunggal, atau banyak baris. Biasanya
digunakan untuk meng-input text.
Frame adalah kontrol yang digunakan sebagai kontainer bagi kontrol lainnya.
CommandButton merupakan kontrol hampir ditemukan pada setiap form, dan
digunakan untuk membangkitkan event proses tertentu ketika pemakai
melakukan klik padanya.
CheckBox digunakan untuk pilihan yang isinya bernilai yes/no, true/false.
OptionButton sering digunakan lebih dari satu sebagai pilihan terhadap
beberapa option yang hanya dapat dipilih satu.
ListBox mengandung sejumlah item, dan user dapat memilih lebih dari satu
(bergantung pada property MultiSelect).
ComboBox merupakan konbinasi dari TextBox dan suatu ListBox dimana
pemasukkan data dapat dilakukan dengan pengetikkan maupun pemilihan.
HScrollBar dan VScrollBar digunakan untuk membentuk scrollbar berdiri
sendiri.
Timer digunakan untuk proses background yang diaktifkan berdasarkan
interval waktu tertentu. Merupakan kontrol non-visual.
DriveListBox, DirListBox, dan FileListBox sering digunakan untuk membentuk
dialog box yang berkaitan dengan file.
Shape dan Line digunakan untuk menampilkan bentuk seperti garis, persegi,
bulatan, oval.
Image berfungsi menyerupai image box, tetapi tidak dapat digunakan sebagai
kontainer bagi kontrol lainnya. Sesuatu yang perlu diketahui bahwa kontrol
image menggunakan resource yang lebih kecil dibandingkan dengan
PictureBox
Data digunakan untuk data binding
OLE dapat digunakan sebagai tempat bagi program eksternal seperti Microsoft
Excel, Word, dll.
Ketika anda sudah memilih object yang digunakan dalam user interface (UI), maka
anda harus mengatur property object tersebut. Salah satu property yang sering
digunakan pada komponen label dan command adalah Caption, yang digunakan untuk
menampilkan tulisan; sedangkan pada komponen textbox adalah text.
Cara penulisan (syntax) kode program untuk mengatur property sebuah object adalah
sebagai berikut :
Nama_object.property = value
Suatu object dapat menggunakan method tertentu untuk melakukan aksi. Cara
penulisan (syntax) kode program untuk menggunakan method dari sebuah object
adalah sebagai berikut :
Nama_object.method [argument]
Komponen ComboBox dan ListBox memeiliki beberapa method untuk mengatur isi di
dalamnya, yaitu :
83
AddItem : menambah isi sesuai dengan argument yang diberikan berupa
tulisan.
Setiap kali ada isi yang ditambahkan akan diberikan nomer index secara otomatis
dimulai dari 0.
RemoveItem : menghapus isi sesuai dengan argument yang diberikan berupa
nomer index dari isi yang dipilih.Setiap kali ada isi yang dihapus maka nomer index
akan disusun ulang secara otomatis.
Clear : menghapus semua isi (tidak membutuhkan argument)
4. Latihan
A. Membuat salam
UI yang dibuat seperti gambar 8-5.
Jika program dijalankan maka akan muncul tampilan seperti gambar 8-6, dan
jika anda isikan nama anda, misalnya EGUNZ, dan anda klik MASUK, maka akan
muncul tampilan seperti gambar 8-7. Jika anda klik selesai maka akan berakhir.
84
Gambar 8-7. Gambar saat program dijalankan dan klik MASUK
85
Gambar 8-9. Hasil Program Latihan 2.
86
Bab IX
Dasar-Dasar Visual Basic 2
1. Penamaan Object
Secara default, Visual Basic akan memberi nama setiap object yang terdapat
pada user interface yang dibuat oleh pembuat program. Untuk setiap jenis object,
nama yang secara otomatis muncul merupakan urutan JenisObject-Nomor, misalnya
: Form1, Form2, Form3; Label1, Label2, Label3; Text1, Text2, Text3; Command1,
Command2, Command3. Untuk ukuran program yang besar, hal ini dapat
menimbulkan masalah yaitu kacau dalam identifikasi sebuah object.
Untuk menghindari kesulitan identifikasi object, disarankan untuk mengganti
nama object sesuai dengan representasi object tersebut, seperti : Txt_Nama,
Lbl_Pesan, Cmd_Mulai, Cmd_Selesai, dst. Nama sebuah object merupakan value
pada property (Name) object tersebut.
Semua event yang mungkin diantisipasi sebagai pemicu aksi program dalam
suatu object yang ada dapat dilihat dan dipilih melalui combo box disebelah kanan
atas code window, dengan catatan object tersebut aktif pada combo object.
87
Gambar 12-2. Code Window saat menampilkan daftar Event
Semua method dan property yang bisa digunakan pada suatu object, akan
muncul dengan sendirinya dalam list ketika nama object telah diketikkan dalam code
dan diakhiri dengan tanda titik (.).Sehingga dapat menghindari kesalahan dalam
pengetikan object. Untuk property diawali dengan icon dan method diawali dengan
icon .
Gambar 12-3. Code Window saat menampilkan daftar Method dan Property
Txt_Nama.Text = ”Ita”
Txt_Nama.Text = Nama$ + ”Christy”
Txt_Nama.Text = UCase$(Txt_Input.Text)
Meksipun berbagai macam ekspresi dapat digunakan untuk mengubah nilai dari object
property, akan tetapi untuk proses program yang panjang hal ini mungkin agak
merepotkan. Untuk keperluan tersebut, disarankan untuk melakukan proses transfer
nilai object property dari dan ke variabel seperti gambar 12-4. Dengan cara yang
diusulkan ini, proses dalam program hanya menitikberatkan pada manipulasi variabel
saja. Memang diperlukan usaha tambahan untuk memasukkan nilai dari object
property ke dalam variabel sebagai input program dan mengembalikan nilai dari
variabel ke object property sebagai output, tetapi hal ini akan mempermudah proses
88
pembuatan program dan pelacakan kesalahan. Hal yang perlu diperhatikan adalah
tipe dari variabel dan object property diusahakan agar sama. Perintah untuk
memindahkan object property ke variabel adalah :
NamaVariabel = NamaObject.Property
Object
INPUT Variabel
Property
Proses
Object
OUTPUT Variabel
Property
89
berupa sub maupun function. Ingat kembali perbedaan mendasar antara sub dan
function! Subprogram dapat menjadi milik sebuah form saja, dengan menuliskan pada
code window untuk form yang bersangkutan dan dengan menggunakan kata kunci
Private di depan nama subprogram. Bentuk dasar penulisan sub dan function adalah
sebagai berikut :
Untuk membuat subprogram dapat digunakan untuk semua form yang terlibat
dalam project, subprogram harus dituliskan dalam Modules atau menggunakan kata
kunci Public di depan nama subprogram. Untuk memulai membuat modules, dapat
dilakukan langkah berikut : pada project explorer klik kanan Project, kemudian pilih
menu Add – Module. Hal yang perlu diperhatikan adalah saat menyimpan project,
seperti halnya form, module juga perlu untuk disimpan secara tersendiri.
90
Jika diinginkan untuk bekerja dengan jumlah form yang lebih dari satu, untuk
membuat form baru pada saat design caranya adalah pada project explorer klik kanan
Forms, kemudian pilih menu Add – Form.
91
Bab X
Dasar-Dasar Visual Basic 3
92
AddItem
Method ini digunakan untuk menyisipkan/menambah item pada ListBox.
Bentuk umum dari method ini adalah
NamaList.AddItem text[,index]
Apabila item tersebut akan diletakkan pada posisi terakhir dalam list
digunakan perintah
Lst_Barang.AddItem “Notebook”
Dalam penggunaan method ini, perlu diperhatikan juga nilai dari property
Sorted.
RemoveItem
Method ini digunakan untuk membuang sebuah item pada ListBox.
Bentuk umum dari method ini adalah
NamaList.RemoveItem (index)
Index digunakan untuk menunjukkan posisi item pada ListBox yang akan
dibuang. Misalnya untuk membuang item yang saat ini sedang dipilih
pada Lst_Barang digunakan perintah
Lst_Barang.RemoveItem (Lst_Barang.ListIndex)
Clear
Method ini digunakan untuk membuang seluruh item pada ListBox.
Bentuk umum dari method ini adalah
NamaList.Clear
93
(a) (b) (c)
Gambar 13-1. (a) Tampilan Simple Combo serta Tampilan Dropdown
sebelum (b) dan sesudah (c) tombol panah di-click
94
Command button panah dalam menu editor ( ), digunakan
untuk menggeser posisi menu (naik atau turun) dan level menu (kanan atau
kiri). Command button Next digunakan untuk menambah menu pada posisi
yang paling bawah, command button Insert digunakan untuk menyisipkan
menu, dan command button Delete digunakan untuk menghapus menu.
Satu-satunya event yang dapat menjadi pemicu aksi dalam menu adalah
event click. Dalam code program bentuk perintah umumnya adalah :
Property Setting
95
Contoh 10-1.Penggunaan Komponen Timer
lbl_nama
lbl_hari
lbl_tgl lbl_tahun
lbl_bulan
lbl_jam
Timer1
Gambar 13-3. Form Jam Sebelum Program dijalankan
Deklarasi
Dim sekarang As Variant
Properties
Timer 1:
Interval = 1000
Lbl_jam :
lbl_jam.caption = “ 00 : 00 : 00”
Code Program
Private Sub Timer1_Timer()
sekarang = Now
lbl_hari.Caption = Format(sekarang, "ddd")
lbl_bulan.Caption = Format(sekarang, "mmm")
lbl_tahun.Caption = Format(sekarang, "yyyy")
lbl_tgl.Caption = Format(sekarang, "d")
lbl_jam.Caption = Format(sekarang, "h:mm:ss")
End Sub
96
FUNGSI TAMBAHAN PADA QUICK BASIC 4.5
outputnya adalah:
SEPERTI INI
outputnya adalah:
gunarto
3. Menghitung jumlah huruf pada sebuah variable (LEN)
contoh :
dim a as string
a = “komputer”
b = len(a)
print b
outputnya adalah:
8
outputnya adalah:
a = kencur
b = kenc
c = nc
d = ncur
97
5. Membangkitkan bilangan random (RND)
contoh :
cls
randomize timer
a = rnd * 10
print a
outputnya:
5.540277
(catatan: perintah rnd mengeluarkan bilangan antara 0-1, apabila anda ingin
mengeluarkan bilangan random antara 1-100 maka gunakan rumus:
rnd * 100, demikian pula seterusnya)
outputnya adalah:
happy holiday
(dengan warna tulisan hijau)
ada 15 warna untuk quick basic 4.5 lihat pd help-index-color
outputnya adalah :
12
98
10. Menggunakan perintah SLEEP
contoh :
cls
print “hahahaha”
sleep 2
print “hihihhihi”
end
catatan: angka yang diletakkan setelah perintah sleep menunjukkan satuan detik
ASCII CODE
99