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 | S ize| |----------------------------------------------------------------------- ---| | | | | |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 mu da | | 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 te rang| \----------------/ \----------------/ \----------------/ \-------------- ----/ 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 neg atif | | , Memunculkan pemisah ribuan,jutaan | $$ Mencetak $ pada posisi k osong | | + Menentukan posisi tanda numerik | ** Mencetak * pada posisi k osong | |^^^^ 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.