Senin, 22 November 2010
Pemrograman Qbasic
Modul 1
DASAR-DASAR QBASIC
Bahasa BASIC dibuat oleh John G.Kemmeny dan Thomas E.Kurtz lebih
dari 20 tahun yang lalu dan merupakan bahasa tingkat tinggi yang
relatif mudah dipelajari dan dimengerti.
Dalam perkembangannya , Bahasa BASIC dikembangkan dalam dua
jenis, yaitu interpreter dan compiler. Interpreter seperti GW-
BASIC pada sistem operasi MS-DOS, maupun BASICA pada sistem
operasi PC-DOS, sedangkan salah satu compilernya yang terkenal
adalah Quick BASIC yang dilengkapi dengan sistem pemrograman
yang terstruktur, Quick Library, on-line help yang terpadu,
editor yang efisien (bisa merapikan teks serta memberitahukan
kesalahan syntax penulisan suatu perintah)
MENGAKTIFKAN QUICK BASIC
Untuk mengaktifkan Quick BASIC diperlukan sistem Quick BASIC yang
minimal terdiri dari file QB.EXE/QBasic.EXE. Jika kita telah
memiliki file tersebut tinggal diberi perintah QB pada Dos
Prompt.
Contoh
A>QB <Enter>
atau
A>QBasic <Enter>
Setelah pemberian perintah tersebut, pemakai akan dihadapkan
kepada suatu editor sebagai tempat pengetikan program yang akan
dikembangkan. Dibagian atas editor terdapat perintah menu yang
dapat diaktifkan dengan Tombol Alt disertai huruf depan dari
masing-masing pilihan.
File
/------------------\
| New Program | memulai program baru
| Open Program... | memuat program dari diskette ke RAM
| Save | menyimpan program ke diskette (file *.BAS)
| Save As... | menyimpan program ke nama yang lain
|------------------|
| Print... | mencetak program ke printer
|------------------|
| Exit | keluar ke Dos permanen
\------------------/
Edit
/----------------------\
| Undo Alt+Backspace | membatalkan perubahan terakhir
| Cut Shift+Del | memotong tulisan Blok ke ClipBoard
| Copy Ctrl+Ins | menduplikasi tulisan Blok ke ClipBoard
| Paste Shift+Ins | menyisip ClipBoard ke posisi Kursor
| Clear Del | menghapus tulisan yang di Blok
|----------------------|
| New SUB... |
| New FUNCTION... |
\----------------------/
Options
/-----------------\
| Display... | mengatur tampilan layar
| Help Set Path | mengatur default Dos Path
| Syntax Checking | mengatur keaktifan pemeriksaan Syntax
\-----------------/
Run
/---------------------\
| Start Shift+F5 | menjalankan program yang aktif
| Restart | mereset memory program
| Continue F5 | melanjutkan program yang terhenti
\---------------------/
MEMBUAT PROGRAM PADA QUICK BASIC
Apa yang dimaksud dengan pemrogram komputer ?
Pemrograman komputer berarti anda memberitahukan kepada komputer
ada yang anda ingin dia lakukan. Untuk memberitahukan komputer
apa yang harus dia lakukan, anda membutuhkan kata-kata khusus
(special words). Kata-kata ini disebut sebagai kata-kata kunci
(key words). Ketika anda menempatkan kata-kata kunci ini dalam
program anda sehingga kelihatan seperti kode khusus (special
code) yang disebut sebagai CODE dan pekerjaan menulis program
disebut CODING.
KATA, DATA, PERINTAH, dan FUNGSI BANTU merupakan komponen utama
suatu program yang saling berinteraksi. Pembuatan program dalam
Quick BASIC tidak terlepas dari keempat komponen di atas dalam
baris-baris perintah yang berkapasitas maksimum 256 character
yang mencakup identitas baris, perintah, dan kata-kata(Remark).
Identitas baris bisa berupa nomor baris (0-65529) [menjaga
kompatibilitas dengan GWBASIC maupun BASICA], dan bisa berupa
label dengan ketentuan :
- Maksimum 40 character, dimulai dengan huruf A..Z, diakhiri
dengan tanda :
- huruf besar/kecil sama, tidak sama dengan reserved word, dan
tidak pakai spasi
Setiap proses yang berhubungan dengan pengolahan data biasanya
memerlukan tempat penampung sementara dalam memory yang disebut
variabel dan dalam pengolahannya diperlukan operator dan fungsi
bantu.
Jenis Type Variabel pada Quick Basic :
/--------------------------------------------------------------------------\
|Data Type |Suffix|Maximum |Minimum | Size|
|--------------------------------------------------------------------------|
| | | |
|Strings | $ | 32,767 chars. | 0 chars. | |
|Integers | % | 32,767 |-32,768 | 2 |
|Long Integers | & | 2,147,483,647 |-2,147,483,648 | 4 |
|Single (7-digit) precision | ! |+3.402823 E+38 |+1.401298 E-45 | 4 |
_ _
|Double (15-digit) precision| # |+1.7976931 D+308|+4.940656 D-324 | 8 |
_ _
|User-Defined Data Types |----------------------------------------------/
\---------------------------/
Nama variabel juga memiliki ketentuan antara lain :
- Maksimum 40 character, diawali dengan huruf A..Z, diakhiri
dengan $, %, &, !, # untuk menunjukan type
- Tidak boleh sama dengan reserved word, tidak boleh pakai spasi
dan spesial character.
Operator pada Quick BASIC dibagi atas 5 jenis, antara lain :
1. Arithmetic operators : melakukan tugas perhitungan
/--------------------\ /----------------------------\
|Operator|Kegunaan | |Operator|Kegunaan |
|--------------------| |----------------------------|
| |
| ^ | Pangkat | | \ | Pembagian integer |
| - | Negatif | | MOD | Sisa bagi |
| * | Perkalian | | + | Penjumlahan |
| / | Pembagian | | - | Pengurangan |
\--------------------/ \----------------------------/
2. Relational operators : membandingkan strings dan nilai numerik
/--------------------------------------\
|Operator|Kegunaan |
|--------------------------------------|
| = | Sama dengan |
| <> | Tidak sama dengan |
| < | Lebih kecil |
| > | Lebih besar |
| <= | Lebih besar atau sama dengan|
| >= | Lebih kecil atau sama dengan|
\--------------------------------------/
Relational operators akan menghasilkan dua kemungkinan nilai
yaitu -1 jika benar dan 0 jika salah.
3. Logical operators : test kondisi dan manipulasi bits
/-----------------------------------------------------\
|Expresi1|Expresi2| NOT | AND | OR | XOR | EQV | IMP |
|-----------------------------------------------------|
| | | | | | |
| T | T | F | T | T | F | T | T |
| T | F | F | F | T | T | F | F |
| F | T | T | F | T | T | F | T |
| F | F | T | F | F | F | T | T |
\-----------------------------------------------------/
Functional operators : operator pelengkap
String operators : mengabung (+), dan membandingkan String
PERINTAH DASAR INPUT OUTPUT
Komputer hanya melaksanakan apa yang diperintahkan pemrogram.
Jadi, dalam membuat program untuk menyelesaikan suatu masalah,
kita harus tahu cara penyelesaiannya. Untuk itu diperlukan tahap-
tahap dalam menyelesaikan masalah tersebut.
INPUT dan OUTPUT merupakan awal dan akhir pengolahan suatu
data. Tanpa proses INPUT, kita tidak dapat memperoleh data untuk
diolah dan data-data yang telah selesai diolah tidak akan berarti
tanpa proses OUTPUT.
Syntax :
INPUT [;]["Prompt"{,|;}], Var list
PRINT [expresion list {,|;}]
Contoh 1 :
REM Program mencari Isi Bujursangkar
INPUT "MASUKKAN SISI BUJURSANGKAR :",S
ISI = S * S
PRINT "ISI DARI BUJURSANGKAR ADALAH :",ISI
END
Contoh 2 :
REM Program Isi Data
INPUT "MASUKKAN NAMA ANDA ";NM$
INPUT "MASUKKAN UMUR ANDA ";UR%
INPUT "MASUKKAN TGL,BLN,THN HARI INI ";TG%,BL%,TH%
PRINT "NAMA : ";NM$
PRINT "UMUR : ";UR%
PRINT "TANGGAL : ";TG%
PRINT "BULAN : ";BL%
PRINT "TAHUN : ";TH%
END
Catatan :
Untuk memberi keterangan pada program dapat digunakan REM atau '
LATIHAN
1. Aktifkan QBasic.EXE, dan anda akan dihadapkan pada suatu
WELCOME dialog box, tekan Esc untuk mengabaikannya. Selanjutnya
anda akan melihat lingkungan kerja QBasic yang terbagi atas dua
bagian : Bagian atas adalah "Jendela Editor" dan Bagian bawah
adalah "Jendela Immedietly".
2. Perhatikan letak kursor sekarang (pada Jendela Editor), tekan
function key (F6) untuk mengaktifkan Jendela Immedietly, dan (F6)
sekali lagi untuk sebaliknya.
3. Ketiklah ekspresi berikut pada jendela immedietly dengan
diawali perintah print (?).
Contoh :
1+2
diketik sebagai
? 1 + 2
Ekspresi : Hasilnya ?
1 + 2 _____ Penjumlahan
2 - 1 _____ Pengurangan
2 * 3 _____ Perkalian
5 / 2 _____ Pembagian
5 \ 2 _____ mengapa ? ____________ Pembagian bulat
5 Mod 2 _____ mengapa ? ____________ Sisa bagi
3^2 _____ Pangkat
1+2*6^2/4-1 _____ Urutan operasi
(1+2)*6^2/4-1 _____ Prioritas operasi
Tuliskan kesimpulan anda tentang :
1. Pembagian bulat ____________________________________________
2. Sisa bagi __________________________________________________
3. Urutan operasi _____________________________________________
4. Prioritas operasi __________________________________________
1 > 2 _____ lebih besar
1 < 1 _____ lebih kecil
2 = 2 _____ sama dengan
2 >= 2 _____ lebih besar atau sama
1 <= 2 _____ lebih kecil atau sama
3 <> 3 _____ tidak sama dengan
Mengapa True (-1) dan False (0) ?
(1 > 2) and (2 = 2) _____ Operasi And
(1 > 2) and (1 < 2) _____ Operasi And
(1 < 2) and (2 = 2) _____ Operasi And
(3 <> 2) and (1 > 2) _____ Operasi And
(1 > 2) and (2 = 2) _____ Operasi Or
(1 > 2) and (1 < 2) _____ Operasi Or
(1 < 2) and (2 = 2) _____ Operasi Or
(3 <> 2) and (1 > 2) _____ Operasi Or
(1 > 2) Xor (2 = 2) _____ Operasi Xor
(1 > 2) Xor (1 < 2) _____ Operasi Xor
(1 < 2) Xor (2 = 2) _____ Operasi Xor
(3 <> 2) Xor (1 > 2) _____ Operasi Xor
(1 > 2) Eqv (2 = 2) _____ Operasi Eqv
(1 > 2) Eqv (1 < 2) _____ Operasi Eqv
(1 < 2) Eqv (2 = 2) _____ Operasi Eqv
(3 <> 2) Eqv (1 > 2) _____ Operasi Eqv
(1 > 2) Imp (2 = 2) _____ Operasi Imp
(1 > 2) Imp (1 < 2) _____ Operasi Imp
(1 < 2) Imp (2 = 2) _____ Operasi Imp
(3 <> 2) Imp (1 > 2) _____ Operasi Imp
Not (1 > 2) _____ Operasi Imp
Not (2 > 2) _____ Operasi Imp
Not (1 > 2) Or (2 = 2) And (3 < 2) ______ Urutan operasi
Tuliskan kesimpulan anda tentang urutan operasi pada operator
logika.
4. Ketiklah ekspresi berikut pada jendela immedietly :
A = 123
B = 1234567890
C% = 32767
D% = 100000 Overflow, mengapa ?
D& = 100000
E$ = "Indoprog"
F$ = 123 Type mismatch, mengapa ?
G = "hendra" Type mismatch, mengapa ?
H_1 = 123 expected : end-of-statement, mengapa ?
nilai ujian = 90 Syntax error, mengapa ?
next = 5 expected : variable or end-of-statement ?
cls = 6 expected : variable or end-of-statement ?
A% = 1.2 Berapa nilai A% ?
A% = 1.5 Berapa nilai A% ?
Tuliskan kesimpulan anda tentang variabel dan nama variabel
5. Ketiklah ekspresi berikut pada jendela immedietly dengan
diawali perintah print (?).
1 + 1 ______
1 + "100" Type mismatch, mengapa ?
"A" + "B" ______
Tuliskan kesimpulan anda operator pada type data.
6. Ketiklah statement berikut pada jendela immedietly
Print "Untuk kemajuan Indonesia"
Hasilnya : __________________________________
Print "Untuk","kemajuan","Indonesia"
Hasilnya : __________________________________
Print "Untuk";"kemajuan";Indonesia"
Hasilnya : __________________________________
Print "Untuk"
Print "Kemajuan"
Print "Indonesia"
Hasilnya : _____________
_____________
_____________
Print "Untuk";
Print "Kemajuan";
Print "Indonesia"
Hasilnya : __________________________________
Print 1,2,3
Hasilnya : __________________________________, mengapa ?
Print 1;2;3
Hasilnya : __________________________________, mengapa ?
Print tab(10),"Hendra";tab(30);"Wijaya"
Hasilnya : __________________________________, mengapa ?
Input nama$
print nama$
Hasilnya :? Hendra
__________________________________
Input "Masukkan nama :", nama$
print nama$
Hasilnya :Masukkan nama : Hendra
__________________________________
Input "Masukkan nama "; nama$
print nama$
Hasilnya :Masukkan nama ? Hendra
__________________________________
Input "Masukkan nama "; nama
print nama
Hasilnya : Masukkan nama ? Hendra
Redo from start, mengapa ?
6. Program anda yang pertama.
Aktifkan ke jendela Editor
Ketiklah CODE berikut :
REM Program saya yang pertama
CLS
PRINT "Hello semua"
END
Simpan CODE diatas ke file Bab1F.Bas (gunakan menu File Save)
Jalankan program diatas (gunakan menu Run Start atau tekan F5)
7. Program dengan proses input/output
Gunakan menu File New untuk memulai program baru
Ketiklah CODE berikut :
REM Program menghitung luas persegi panjang
CLS
INPUT "Masukkan sisi panjang :", panjang
INPUT "Masukkan sisi lebar :", lebar
LUAS = panjang * lebar
PRINT "Luas persegi panjang :", LUAS
END
Simpan CODE diatas ke file Bab1G.Bas
8. Buatlah program menghitung luas lingkaran.
9. Buatlah program konversi suhu Celcius ke Farenheit, Kelvin,
Reamur.
10. Beberapa perintah pengaturan INPUT OUTPUT
Pada tulisan ini tidak diberikan contoh untuk memancing
pertanyaan pada forum diskusi :).
CLS
Membersihkan layar dengan warna latar belakang
COLOR textcolor[,textbackground[,border]]
Mengatur warna tulisan, warna latar belakang, dan
warna border layar. Adapun nomor warna yang disediakan :
/----------------\ /----------------\ /----------------\ /------------------\
| # | Warna | | # | Warna | | # | Warna | | # | Warna |
|----------------| |----------------| |----------------| |------------------|
| | | |
| 0 | Hitam | | 4 | Merah | | 8 | Abu-abu | | 12 | Merah muda |
| 1 | Biru | | 5 | Magenta | | 9 | Biru muda | | 13 | Magenta muda|
| 2 | Hijau | | 6 | Brown | | 10 | Hijau muda| | 14 | Kuning |
| 3 | Cyan | | 7 | Putih | | 11 | Cyan muda | | 15 | Putih terang|
\----------------/ \----------------/ \----------------/ \------------------/
Warna tulisan dapat dibuat berkedip dengan menambahkan 16 pada
nomor warna
Warna latar belakang hanya dapat dipilih nomor 0 s/d 7
Warna border dapat dipilih 0 s/d 15
PRINT USING formatstring; expressionlist[{,|;}]
Mencetak text dan variabel dengan format tertentu
formatstring, ekspresi string yang mengatur format pencetakkan
dengan picture sebagai berikut :
/------------Characters Picture untuk mengatur format data numerik ------------\
| # Menentukan posisi digit | - Diletakan sesudah posisi digit |
| . Menentukan posisi Desimal | mencetak tanda untuk negatif |
| , Memunculkan pemisah ribuan,jutaan | $$ Mencetak $ pada posisi kosong |
| + Menentukan posisi tanda numerik | ** Mencetak * pada posisi kosong |
|^^^^ Mencetak dalam bentuk eksponensial| **$ Combinasi $ dan ** |
|-------------------Characters Picture untuk mengatur format data string-------|
| & Mencetak seluruh string | \ \ Mencetak n+2 character, dimana|
| ! Mencetak huruf pertama dari String | n adalah jumlah spasi \ \ |
\------------------------------------------------------------------------------/
WIDTH kolom,baris
Mengatur lebar text layar 40 atau 80 kolom dan pada monitor EGA
atau VGA mengatur jumlah baris layar 25,43,50 atau 60 (tergantung
pada jenis monitor)
LOCATE [row] [,[col] [,[cursor] [,start [,stop]]]]
Memindahkan kursor pada layar ke posisi baris dan kolom tertentu.
cursor, nilai 0 cursor off, nilai 1 cursor on
start, baris awal kursor 0 s/d 31
stop, baris akhir kursor 0 s/d 31
SPC(n)
Meloncat sejumlah n spasi pada saat pencetakan dengan perintah
print.
TAB(n)
Mencetak output ke kolom n yang ditentukan.
VIEW PRINT baris_teratas To baris_terbawah
Membatasi baris teratas dan terbawah layar untuk memunculkan
tulisan.