9 Sep 2010

RUMUS QBASIC

QBasic menyediakan beberapa perintah dan fungsi untuk akses Low Level seperti akses memory langsung maupun akses ke nomor port tertentu.
Walaupun fasilitas Low Level yang disediakan sangat terbatas jika dibandingkan dengan akses Low Level Turbo Pascal maupun C Language.
Akses Low Level sangat menarik bagi programmer-programmer muda,
karena mampu menghasilkan proses-proses yang tidak mungkin
dilakukan dengan menggunakan pemrograman yang normal.#### Beberapa perintah QBasic yang berkaitan dengan akses Low Level adalah :

DEF SEG = alamat_segment

PEEK(alamat_offset), digunakan untuk mengambil data byte yang dari alamat memori segment:offset.

POKE alamat_offset, ekspresi, digunakan untuk mengisi ekspres byte ke alamat memori segment:offset

OUT nomor_port, ekspresi, digunakan untuk mengakses port dengan nilai ekspresi.

INP(nomor_port), digunakan untuk mengambil nilai dari port.

Contoh :

‘Anda dapat mengetahui tanggal ROM BIOS anda dengan menggambil ’8 byte mulai dari alamat FFFF:0005

CLS
PRINT “Tanggal Bios komputer anda :”;
‘Set Data Segment ke hexa FFFFF
DEF SEG = &HFFFF
FOR i = 0 TO 7
‘Mencetak byte per byte dari offset hexa 0005
PRINT CHR$(PEEK(i + 5));
NEXT i

‘Anda dapat mengetahui jumlah RAM komputer anda dengan menggambil ’1 word (1 word = 2 byte) dari alamat 0040:0013 ‘Dalam hal ini RAM adalah konventional Memory’ Set Data Segment ke hexa 0040
DEF SEG = &H40
RAM = PEEK(&H13) + PEEK(&H14) * &H100
PRINT
PRINT “Jumlah konventional Memory :”; RAM; “KB”

‘Pada jaman kejayaan DOS, dan diskete sebagai media penyimpanan, ‘Virus Boot adalah Virus yang sangat terkenal misalnya Virus ‘C Brain, Stoned, MichaelAngelo ‘Salah satu metode melacak keberadaan Virus Boot di memory komputer ‘kita adalah memeriksa konventional Memory komputer ‘Jika jumlahnya < 640, maka komputer dicurigai mengandung Virus Boot ‘Anda dapat menggambil Real Time Clock PC dengan memanfaatkan ‘Port 70H dan 71H, pada register : ‘ 00 RTC seconds ‘ 02 RTC minutes ‘ 04 RTC hours ‘ 06 RTC day of week ‘ 07 RTC day of month ‘ 08 RTC month ‘ 09 RTC year ‘Masukkan register yang akan dibaca/tulis ke port 70h’ baca/tulis pada port 71h PRINT “Tanggal menurut RTC :”; OUT &H70, &H6 PRINT HEX$(INP(&H71)); “/”; OUT &H70, &H8 PRINT HEX$(INP(&H71)); “/”; OUT &H70, &H9 PRINT HEX$(INP(&H71)) DO LOCATE 13, 35 OUT &H70, 0 PRINT HEX$(INP(&H71)); “:”; OUT &H70, 2 PRINT HEX$(INP(&H71)); “:”; OUT &H70, 4 PRINT HEX$(INP(&H71)) LOOP UNTIL INKEY$ <> “”

‘Anda dapat Menghapus Setting BIOS dengan kode berikut ‘ Diambil dari software BIOS 3.1 Crack

‘Catatan : Jangan mencoba program ini tanpa pengetahuan tentang
‘setting BIOS, segala yang anda lakukan adalah resiko anda
‘sendiri

‘mov dx, 070h
‘mov al, 02Eh
‘out dx, al
‘inc dx
‘xor al, al
‘out dx, al
‘mov dx, 070h
‘mov al, 02Fh
‘out dx, al
‘inc dx
‘xor al, al
‘out dx, al
‘int 20h

‘Adapun Kode QBasicnya adalah sebagai berikut :

PRINT “Program reset BIOS”
PRINT “Proses …”
OUT &H70, &H2E
OUT &H71, &H00
OUT &H70, &H2F
OUT &H71, &H00
PRINT “Selesai !”
END

Modul 2- STRUKTUR KENDALI IF

{ Oktober 2, 2007 @ 7:17 am } · { QBasic }
{ Tags: basic, pemograman, QBasic } · { Komentar (1) }

Modul 2 QBasic
STRUKTUR KENDALI IF

Struktur Kendali memegang peranan yang sangat penting dalam
pembuatan program dengan komputer, tanpa adanya struktur kendali
kita hanya dapat membuat program yang sederhana dimana prosesnya
hanya dijalankan dari baris pertama sampai selesai. Pada kasus-
kasus tertentu, ada kalanya baris tertentu tidak boleh
dilaksanakan apabila kondisi tidak dipenuhi, ataupun baris-baris
tertentu harus diulang sampai suatu kondisi terpenuhi.

TEST PILIHAN

Dengan perintah test pilihan seorang programer dapat menentukan
jalur-jalur proses yang harus dikerjakan oleh komputer
berdasarkan logika tertentu.

1. Pilih Tambahan

If ekspresi logika Then
Statement

End If

Berfungsi menentukan apakah kondisi (ekspresi logika) memenuhi
syarat untuk melaksanakan Statement-Statement yang di samping IF
Then ataupun berada dalam Block IF Then-End If.

Contoh :

PTKP = 240000

If Nikah$ = “Y” Then
PTKP = PTKP + 120000
End If

Keterangan : Jika status nikah adalah “Y” (Ya), maka PTKP
(Penghasilan Tidak Kena Pajak) ditambah 120000

2. Pilih Antara Dua

IF ekspresi logika Then
Statement1

Else
Statement2

End If

Berfungsi menentukan Block Statement mana yang akan dilaksanakan
komputer, jika ekspresi logika menghasilkan nilai Benar maka
Statement1 akan dilaksanakan dan sebaliknya dengan Statement2.

Contoh :

If JlhAnak > 3 Then
PTKP = PTKP + (3 * 120000)
Else
PTKP = PTKP + (JlhAnak * 120000)
End If

Keterangan : Jika Jumlah Anak diatas 3 Orang, maka PTKP ditambah
360000, sebaliknya adalah JlhAnak dikali 120000.

3. Pilih Antara Banyak

IF ekspresi logika 1 Then
Statement1

ElseIF ekspresi logika 2 Then
Statement2

Else
Endif

Berfungsi menentukan Block statement yang mana akan dijalankan
oleh komputer sesuai dengan ekspresi logika yang menghasilkan
nilai benar.

Contoh :

PKP = Penghasilan – PTKP ‘ Penghasilan Kena Pajak 1 Bulan
PKPT = PKP * 12 ‘ Penghasilan Kena Pajak 1 Tahun

If PKPT <= Then PPH = 0 ElseIF PKPT <= 25000000 Then PPH = PKP * 0.05 ElseIF PKPT <= 50000000 Then PPH = 1250000 + (PKPT-25000000)* 0.1 ElseIF PKPT <= 100000000 Then PPH = 1250000 + 2500000 + (PKPT-50000000)*0.25 ElseIF PTKP <= 200000000 Then PPH = 1250000 + 2500000 + 7500000 + (PKPT-100000000)*0.25 Else PPH = 1250000 + 2500000 + 7500000 + 25000000 + (PKPT- 100000000)*0.35 End If PPHB = PPH / 12 ‘ Pajak Penghasilan Bulan Tersebut Keterangan : PPH dihitung berdasarkan PKPT atau Select Case Variabel Case ekspresi 1 Statement1 … Case ekspresi 2 Statement2 … … Case Else … End Select Contoh : Select Case PKPT Case <= 0 PPH = 0 Case <= 25000000 PPH = PKP * 0.05 Case <= 50000000 PPH = 1250000 + (PKPT-25000000)* 0.1 Case <= 100000000 PPH = 1250000 + 2500000 + (PKPT-50000000)*0.15 Case <= 200000000 PPH = 1250000 + 2500000 + 7500000 + (PKPT-100000000)*0.25 Case ELSE PPH = 1250000 + 2500000 + 7500000 + 25000000 + (PKPT- 100000000)*0.35 End Select Contoh Lain : Input “Masukkan Hari (1-7)”, Hari Select Case Hari Case 1 Print “Senin” Case 2 Print “Selasa” Case 3 Print “Rabu” Case 4 Print “Kamis” Case 5 Print “Jumat” Case 6 Print “Sabtu” Case 7 Print “Minggu” Case Else Print “Tidak ada” End Select Modul 1- Dasar Qbasic { Oktober 2, 2007 @ 4:06 am } · { QBasic } { Tags: basic, pemograman, QBasic } · { Komentar (2) } BAHASA PEMROGRAMAN BASIC dengan Quick BASIC Oleh : Hendra, ST. 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

atau

A>QBasic

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 kecil atau sama dengan| | >= | Lebih besar 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 >> ISI itu bisa di ganti apa apa karena ISI adalah nama VARIABEL
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. MODUL 8 PENGOLAHAN SEQUENTIAL FILE File merupakan fasilitas penyimpanan data pada external storage yang bersifat permanen, jika dibandingkan dengan penyimpanan ke RAM yang sifatnya sementara. Dengan pemakaian file kita dapat menghemat pemakaian RAM komputer yang memiliki jumlah yang terbatas serta dapat melakukan dokumentasi untuk jangka waktu yang panjang. Pada QBasic pengolahan file dapat dibagi atas tiga jenis, yaitu : 1. SEQUENTIAL FILE 2. RANDOM FILE 3. BINARY FILE Pada Sequential file (file urut) proses pengolahannya dilakukan secara linier dari awal sampai akhir, tanpa bisa kembali kebagian sebelumnya, kecuali proses dimulai lagi dari awal. Jadi dalam pengolahan datanya bersifat first in first out, artinya pembacaan data dari file ini harus dimulai dari data yang paling awal. Pada umumnya pengolahan data yang menggunakan file sebagai media INPUT maupun OUTPUT memiliki tiga tahap, yaitu : 1. Tahap membuka file (OPEN) 2. Tahap memproses (INPUT/OUTPUT) 3. Dan yang terakhir adalah tahap menutup file (CLOSE) Membuka File SEQUENTIAL Untuk membuka file sequential yang akan diproses dapat digunakan penulisan sebagai berikut : Syntax : Open filename [FOR mode] AS [#]filenum dimana mode terdiri dari : INPUT, membuka file untuk proses INPUT OUTPUT, membuka file baru untuk proses OUTPUT APPEND, membuka file untuk untuk proses OUTPUT dimana data baru ditambahkan pada bagian akhir. Contoh : Open “Siswa.Dat” For Append AS #1 Akan membuka Siswa.Dat sebagai OUPUT dimana data baru ditambahkan pada bagian akhir. Jika file Siswa.Dat belum ada, maka akan dibuat yang baru. Proses INPUT/OUTPUT Perintah proses INPUT/OUTPUT pada sequential file sangat tergantung kepada bentuk perlakuan terhadap data. Untuk penulisan yang berorientasi pada baris, anda dapat menggunakan perintah PRINT, dan pembacaanya dapat menggunakan LINEINPUT. Penulisan yang berorientasi kepada data, anda dapat menggunakan perintah WRITE dan INPUT untuk proses pembacaannya. Syntax : PRINT #filenumber,[USING stringexpressin;]expression list WRITE #filenumber[,expressionlist] INPUT #filenumber, variablelist LINEINPUT #filenumber, variable-string Contoh : Write #1, “920403024?,”Hendra”,80,90 menulis ke file nomor 1, dan data dapat dibaca kembali dengan perintah : Input #1,Nim$,Nama$,Teori,Praktek Catatan : Anda dapat menggunakan fungsi bantu EOF(filenumber) untuk memeriksa apakah berada diposisi akhir file. Proses CLOSE Untuk menutup file dapat digunakan perintah CLOSE. Syntax : CLOSE #filenumber Contoh : CLOSE #1 menutup file nomor 1. Contoh : ‘PROGRAM MENGISI DATA KE FILE SISWA.DAT OPEN “SISWA.DAT” FOR APPEND AS #1 DO PRINT “DATA SISWA KE -”;I INPUT “NO.INDUK :”,NOINDUK$ IF NOINDUK$ “” THEN INPUT “NAMA :”,NAMA$ INPUT “TEORI :”,TEORI INPUT “PRAKTEK :”,PRAKTEK WRITE #1,NOINDUK$,NAMA$,TEORI ENDIF LOOP UNTIL NOINDUK$ = “” CLOSE #1 END ‘PROGRAM BACA DATA DARI SISWA.DAT DAN MENCETAK KE LAYAR CLS OPEN “SISWA.DAT” FOR INPUT AS #1 PRINT “——————————————————————-” PRINT “NO.INDUK NAMA TEORI PRAKTEK RATA-RATA LULUS “ PRINT “——————————————————————-” POLA$=”\ \ \ \ ###.## ###.## ###.## \ \ “ VIEW PRINT 4 TO 23 WHILE NOT EOF(1) INPUT #1, NO_INDUK$,NAMA$,TEORI,PRAKTEK RATA = (TEORI+PRAKTEK)/2 IF RATA < 60 THEN LULUS$=”TIDAK” ELSE LULUS$ = “YA” ENDIF PRINT USING POLA$;NO_INDUK$;NAMA$;TEORI;PRAKTEK;RATA;LULUS$ WEND CLOSE #1 END Modul 9- PENGOLAHAN FILE ACAK { Oktober 2, 2007 @ 8:24 am } · { QBasic } { Tags: basic, pemograman, QBasic } · { Komentar (1) } MODUL 9 PENGOLAHAN FILE ACAK Pada file sequential pengolahan datanya bersifat FIFO, tetapi dalam pengolahan data kadang-kadang diperlukan proses pengolahan yang sifatnya acak sehingga pengolahannya dapat dilakukan dengan cepat dan sederhana. File sequential banyak digunakan pada ekspor/impor data antar sistem dimana format pada sistem yang satu tidak dikenali oleh sistem lain, sehingga data dari suatu sistem perlu diekspor dalam bentuk teks, kemudian diimpor kembali oleh sistem lain. Pada pengolahan seperti ini tentu saja proses pengolahannya bersifat FIFO. Pengolahan data yang membutuhkan pencarian, pengurutan dan perbaikan data tentu saja sulit menggunakan proses pengolahan FIFO, karena akan menggunakan sumber daya yang besar dan menjadi rumit. Pada pengolahan data seperti ini sangat dibutuhkan proses pemasukan maupun pengambilannya berdasarkan alamat data tersebut. Agar data dapat diambil dengan cepat, tentu saja dalam penyimpannannya membutuhkan keteraturan, yaitu setiap data memiliki ukuran yang sama, sehingga alamat data dapat didapatkan dengan cepat. FILE ACAK File acak didalam pengolahannya data ditempatkan dalam bentuk record yang memiliki panjang yang tertentu. Dengan sistem pengolahan yang demikian suatu record data dapat langsung dibaca ataupun ditulis tanpa harus memproses record sebelumnya. Dalam hal ini type data record akan berperan. Contoh : TYPE SISWA NOINDUK AS STRING * 10 NAMA AS STRING * 15 TEORI AS SINGLE PRAKTEK AS SINGLE RATA AS SINGLE END TYPE Dim DAT As SISWA Perintah pengolahan file ACAK 1. Perintah membuka file ACAK Sebelum suatu file randon dapat digunakan harus dibuka, jika file tersebut belum ada, maka akan dibuat yang baru. Adapun perintah membuka file ACAK adalah sebagai berikut : OPEN namafile FOR RANDOM AS [#]filenum [LEN=reclen] Contoh : OPEN “SISWA.REC” FOR RANDOM AS #1 LEN = LEN(DAT) Membuka file “siswa.rec” untuk diolah secara acak sebagai file nomor 1 dan ukuran tiap record adalah sama dengan ukuran variabel DAT. 2. Mendapatkan jumlah record pada file ACAK yang telah terbuka. JlhRec = LOF(1)/LEN(DAT) Jumlah record dalam file ACAK adalah ukuran keseluruhan file ACAK dibagi dengan ukuran tiap record. 3. Perintah input/output pada file ACAK Perintah menulis data PUT [#]filenum[,nomorrecord][,variable] Contoh : DAT.NOINDUK = “920403024? DAT.NAMA = “Hendra” DAT.TEORI = 70 DAT.PRAKTEK = 80 DAT.RATA = (DAT.TEORI+DAT.PRAKTEK)/2 PUT #1,JlhRec+1,DAT Menyimpan data dari variabel DAT ke file ACAK nomor 1, sebagai record baru pada akhir file (JlhRec+1). Perintah membaca data GET [#]filenum[,nomorrecord][,variabel] Contoh : GET #1,1,DAT Membaca data record nomor 1 dari file ACAK nomor 1 ke variabel DAT. 4. Perintah menutup file ACAK Setelah selesai digunakan, file ACAK perlu ditutup untuk memastikan semua data ditulis ke media penyimpanan, dan memberikan indikator EOF. Contoh : CLOSE #1 Menutup file acak nomor 1. Contoh sederhana program pengolahan data dengan file ACAK. ‘PROGRAM MENGISI DATA KE FILE SISWA.REC TYPE SISWA NOINDUK AS STRING * 10 NAMA AS STRING * 15 TEORI AS SINGLE PRAKTEK AS SINGLE RATA AS SINGLE END TYPE DIM DAT AS SISWA DIM NOINDUK AS STRING OPEN “SISWA.REC” FOR RANDOM AS #1 LEN = LEN(DAT) RECNO = LOF(1)/LEN(DAT) DO PRINT “DATA SISWA KE -”;I INPUT “NO.INDUK :”,NOINDUK IF NOINDUK “” THEN DAT.NOINDUK = NOINDUK INPUT “NAMA :”,DAT.NAMA INPUT “TEORI :”,DAT.TEORI INPUT “PRAKTEK :”,DAT.PRAKTEK DAT.RATA = (DAT.TEORI+DAT.PRAKTEK)/2 PUT #1,RECNO+1,DAT RECNO = RECNO + 1 ENDIF LOOP UNTIL NOINDUK = “” CLOSE #1 END ‘PROGRAM MENGURUT DATA DI FILE SISWA.REC TYPE SISWA NOINDUK AS STRING * 10 NAMA AS STRING * 15 TEORI AS SINGLE PRAKTEK AS SINGLE RATA AS SINGLE END TYPE DIM DAT1 AS SISWA DIM DAT2 AS SISWA OPEN “SISWA.REC” FOR RANDOM AS #1 LEN = LEN(DAT) JD = LOF(1)/LEN(DAT) FOR I = (JD-1) TO 1 STEP -1 Sempurna = 1 FOR J = 1 TO I STEP 1 GET #1,J,DAT1 GET #1,J+1,DAT2 IF DAT1.NAMA > DAT2.NAMA THEN
PUT #1,J,DAT2
PUT #1,J+1,DAT1
Sempurna = 0
ENDIF
NEXT J
If Sempurna = 1 Then
I = 0
End IF
NEXT I
CLOSE #1
END

‘PROGRAM BACA DATA DARI SISWA.REC DAN MENCETAK KE LAYAR
CLS
TYPE SISWA
NOINDUK AS STRING * 10
NAMA AS STRING * 15
TEORI AS SINGLE
PRAKTEK AS SINGLE
RATA AS SINGLE
END TYPE
DIM DAT AS SISWA
OPEN “SISWA.REC” FOR RANDOM AS #1 LEN = LEN(DAT)
JD = LOF(1)/LEN(DAT)
PRINT ——————————————————————-”
PRINT “NO.INDUK NAMA TEORI PRAKTEK RATA-RATA ULUS “
PRINT “——————————————————————-”
POLA$=”\ \ \ \ ###.## ###.## ###.## \ \ “
VIEW PRINT 4 TO 23
FOR I = 1 TO JD STEP 1
GET #1,I,DAT
IF DAT.RATA 48 jam diberikan Bonus = (jam kerja – 48) * 5000/jam
- jika jam kerja < 48 jan dikenakan Potongan = (48 – jam kerja) * 1000/jam - Total Gaji = Gaji Pokok + Bonus – Potongan Output yang diharapkan : P.T. JAYA WIJAYA JL. Kemerdekaan Barat No. 12 ============================ LAPORAN GAJI PEGAWAI ======================================================== Nama Gol Jam Gaji Bonus Potongan Total Pegawai Kerja Pokok (Rp) (Rp) (Rp) ——————————————————– Suryajaya C 50 350,000 10,000 – 360,000 Sutiman B 48 200,000 – - 200,000 ======================================================== Total : 560,000 ======================================================== Modul 10- PENGOLAHAN FILE BINARY { Oktober 2, 2007 @ 8:20 am } · { QBasic } { Tags: basic, pemograman, QBasic } · { Komentar (1) } Modul 10 PENGOLAHAN FILE BINARY Selain pengolahan data Sequential dan Random, QBasic juga menyediakan pengolahan yang bersifat Binary. Pada pengolahan yang bersifat Binary, file dapat dibaca/ditulis secara per-Byte pada posisi yang diinginkan, sehingga tidak terikat kepada urutan maupun struktur data. Pengolahan yang bersifat Binary banyak digunakan untuk keperluan- keperluan khusus yang membutuhkan akses langsung ke satuan data di tingkat Byte. Misalnya membuat program Enkripsi dan Dekripsi file, pada proses Enkripsi, isi suatu file disandikan byte-per- byte sehingga tidak dapat dikenali lagi secara normal oleh sistem yang membuatnya. Agar isi file tersebut dapat dikenali kembali, maka diperlukan proses Dekripsi yang mengembalikannya ke keadaan semula. Pengolahan yang bersifat Binary juga banyak digunakan pada pembuatan program AntiVirus, Crack, Game Cheat yang membutuhkan akses ke byte level. 1. Perintah membuka file Binary Seperti pada pengolahan file umumnya, sebelum digunakan file binary harus dibuka dengan perintah sebagai berikut : OPEN namafile FOR BINARY AS [#]filenum Contoh : OPEN “Sandi.bin” FOR BINARY AS #1 Membuka file “Sandi.bin” untuk diolah secara binary sebagai file nomor 1. 2. Mendapatkan jumlah byte pada file binary yang telah terbuka. JlhByte = LOF(1) Fungsi LOF (Length Of File) akan mengembalikan ukuran file binary dalam ukuran byte. Catatan : 1 KB = 1024 Byte, 1 MB = 1024*1024 3. Perintah input/output pada file Binary Perintah menulis data PUT [#]filenum[,posisi][,variable] Contoh : MyData = 10 PUT #1, 101, MyData Menulis karakter ASCII 10 (line feed) pada posisi byte ke 101 dalam file nomor 1. Contoh Lain : Dim MyChar As String*1 MyChar = Chr$(10) Put #1, 101, MyChar Perintah membaca data GET [#]filenum[,posisi][,variabel] Contoh : Dim MyChar As String*1 GET #1, 101, MyChar Membaca data byte posisi ke dari file nomor 1 ke variabel MyChar. 4. Perintah menutup file Binary Setelah selesai digunakan, file Binary perlu ditutup untuk memastikan semua data ditulis ke media penyimpanan, dan memberikan indikator EOF. Nb. Untuk mempercepat proses I/O, sistem operasi menyediakan memory buffer sebagai tempat pembacaan dan penulisan sementara. Perintah Close untuk memastikan semua data dari buffer benar-benar ditulis ke media penyimpanan. Contoh : CLOSE #1 Menutup file binary nomor 1. Contoh : ‘Program Enkripsi dan Dekripsi dengan kunci NOT DIM Source AS STRING DIM Target AS STRING DIM FSize AS LONG DIM MyChar AS STRING * 1 CLS PRINT “Program Enkripsi/Dekripsi Data” PRINT “Menggunakan operator NOT” PRINT “————————” INPUT “Masukkan Source :”, Source INPUT “Masukkan Target :”, Target IF Source = Target THEN PRINT “Nama file source tidak boleh sama dengan target” ELSE OPEN Source FOR BINARY AS #1 ‘Buka source sebagai 1 OPEN Target FOR BINARY AS #2 ‘Buka target sebagai 2 FSize = LOF(1) ‘Mendapatkan ukuran file 1 FOR I = 1 TO FSize GET #1, I, MyChar ‘Baca byte posisi ke i ‘dari source MyChar = CHR$(255 – ASC(MyChar)) ‘Enkripsi dengan NOT PUT #2, I, MyChar ‘Tulis ke posisi ke i ‘Pada Target NEXT I CLOSE #1 CLOSE #2 PRINT PRINT “Proses Selesai” END IF END ‘Program Menghilangkan Password file *.Mdb Microsoft Access 97 Dim nama As String Dim huruf As String*1 INPUT “Masukkan nama file :”,nama IF Dir$(nama) = “” THEN PRINT “File “;nama;” tidak ada !” ELSE OPEN nama FOR BINARY AS #1 huruf = Chr$(134) PUT #1, 66, huruf CLOSE #1 PRINT “Password “;nama;” telah dihilangkan !” END IF END Modul 11- PENGOLAHAN FILE KOMUNIKASI { Oktober 2, 2007 @ 7:57 am } · { QBasic } { Tinggalkan sebuah Komentar } Modul 11 QBASIC PENGOLAHAN FILE KOMUNIKASI Pada QBasic tersedia fasilitas untuk melakukan komunikasi data melalui interface RS232 pada Serial Port COM1 dan COM2 yang diperlakukan seperti pengolahan file. Pada fasilitas perkantoran peralatan seperti PABX dapat dihubungkan dengan PC melalui interface RS232 pada Serial Port COM1 maupun COM2 untuk mendapatkan CMDR log dari pemakaian telepon. Dengan menggunakan fasilitas pada QBasic, anda dapat membuat program untuk membaca data CMDR dari Serial Port COM1 maupun COM2 untuk disimpan maupun diolah menjadi informasi yang lebih baik, misalnya perhitungan tarif pemakaian telepon tiap individu. 1. Perintah membuka dan menginisialisasi saluran komunikasi Perintah OPEN COM harus dilakukan sebelum peralatan dapat digunakan untuk komunikasi melalui interface RS232. OPEN “COMn: list1 list2? FOR RANDOM AS [#]nomor] dimana : n adalah nomor port komunikasi yang ingin dibuka (1 = COM1, 2 = COM2). list1 adalah parameter komunikasi yang sering digunakan : [baud] [,[parity] [,[data] [,[stop]]]] baud adalah baud rate dari peralatan yang dibuka : 75, 110, 150, 300, 600, 1200, 2400, 4800, 9600 parity adalah metode dari pemeriksaan pariti : N (none) E (even) O (odd) S (space) M (mark) PE (enable error checking) data adalah jumlah data bit setiap byte : 5, 6, 7, 8 stop adalah jumlah stop bit : 1, 1.5, 2 Defaultnya: 300 baud, even parity, 7 data bits, 1 stop bit. list2 adalah parameter komunikasi yang jarang digunakan yang dipisahkan dengan koma. Option Description ASC Opens the device in ASCII mode. BIN Opens the device in binary mode. CD[m] Sets the timeout period (in milliseconds) on the Data Carrier Detect (DCD) line. CS[m] Sets the timeout period (in milliseconds) on the Clear to Send (CTS) line. DS[m] Sets the timeout period (in milliseconds) on the Data Set Ready (DS) line. LF Sends a line-feed character after a carriage return. OP[m] Specifies how long (in milliseconds) OPEN COM waits for all communications lines to become open. RB[n] Sets the size (in bytes) of the receive buffer. RS Suppresses detection of Request to Send (RTS). TB[n] Sets the size (in bytes) of the transmit buffer. Contoh : OPEN “COM1:300,N,8,1,CD0,CS0,DS0,OP0,RS,TB2048,RB2048? FOR RANDOM AS #1 Akan membuka Serial Port COM1 sebagai file nomor 1, mengenai parameter komunikasi sangat bergantung kepada setting pabrik peralatan tersebut. Membaca dari peralatan yang terbuka INPUT$(n,nomor) dimana n adalah jumlah karakter yang dibaca. nomor adalah nomor file yang terbuka. Contoh : A$ = Input$(1,1) Dimana akan menbaca 1 huruf dari file nomor 1 Mengirim data ke peralatan yang terbuka Anda dapat menggunakan perintah print untuk mengirim data ke peralatan yang terbuka. Print #nomor, ekspresi Contoh : Print #1, “A” Akan mengirim huruf “A” ke file nomor 1 Memeriksa keberadaan data pada Receive Buffer file komunikasi. Anda dapat menggunakan fungsi LOC(nomorfile) untuk mengetahui apakah input buffer dalam keadaan kosong atau berisi data. Contoh : OPEN “COM1:300,N,8,1,CD0,CS0,DS0,OP0,RS,TB2048,RB2048? FOR RANDOM AS #1 DO tekan$ = INKEY$ IF tekan$ “” THEN PRINT #1, tekan$; ‘Kirim apa yang ditekan END IF IF LOC(1) 0 THEN ‘Jika ada data pada Recieve Buffer baca$ = INPUT$(1, 1) ‘Baca satu huruf PRINT baca$; END IF LOOP CLOSE #1 Program diatas adalah contoh Chatting sederhana melalui kabel LapLink antara dua komputer yang dihubungkan melalui COM1. Menutup file Untuk menutup file, anda dapat menggunakan perintah close. Close #nomor Contoh : Close #1 Contoh program komunikasi RS232 antara Pabx Rolm vscbx dengan PC melalui COM1, untuk maintenance : OPEN “COM1:300,E,7,1,CD0,CS0,DS0,OP0,RS,TB2048,RB2048? FOR RANDOM AS #1 DO tekan$ = INKEY$ IF tekan$ “” THEN PRINT #1, tekan$; ‘Kirim apa yang ditekan END IF IF LOC(1) 0 THEN ‘Jika ada data pada Recieve Buffer baca$ = INPUT$(1, 1) ‘Baca satu huruf PRINT baca$; END IF LOOP CLOSE #1 Contoh program komunikasi RS232 antara Pabx Rolm vscbx dengan PC melalui COM2, untuk CMDR Log : OPEN “COM2:1200,E,7,1,CD0,CS0,DS0,OP0,RS,TB2048,RB2048? FOR RANDOM AS #1 OPEN “CMDR.LOG” FOR BINARY AS #2 JlhByte = LOF(2) DO tekan$ = INKEY$ IF LOC(1) 0 THEN ‘Jika ada data pada Recieve Buffer baca$ = INPUT$(1, 1) ‘Baca satu huruf JlhByte = JlhByte + 1 PUT #2, JlhByte, Baca$ PRINT baca$; END IF LOOP UNTIL tekan$ “” CLOSE #1 CLOSE #2 Modul 12 – Penanganan Error { Oktober 2, 2007 @ 7:40 am } · { QBasic } { Tags: basic, pemograman, QBasic } · { Tinggalkan sebuah Komentar } MODUL 12 QBASIC PENANGANAN ERROR Sebagai manusia normal tidak akan terlepas dari berbagai kesilapan, demikian juga seorang programmer dalam pengembangan program dapat saja berbuat berbagai kesalahan maupun kesilapan. Berdasarkan jenisnya kesalahan dalam pemrograman terbagi menjadi tiga yaitu : 1. Syntax Error, adalah kesalahan yang disebabkan oleh kesalahan tata cara penulisan tanda baca, kesalahan pemakaian operator dan nilai. Kesalahan jenis ini akan dengan mudah dideteksi oleh kompiler maupun interpreter. 2. Logical Error, adalah kesalahan yang disebabkan oleh kesalahan logika maupun model atau metode yang digunakan untuk pemrosesan data, sehingga menyebabkan informasi yang dihasilkan menjadi salah. Kesalahan ini tidak dapat dideteksi oleh kompiler maupun interpreter, kesalahan ini disadari setelah melihat penyimpanan pada saat proses maupun hasil proses. Contoh : N = 1 Do Print N N = N + 2 Loop Until N = 10 Program diatas tidak pernah berhenti, karena nilai N tidak pernah sama dengan 10. Kesalahan Logika dapat juga terjadi karena kesalahan pengetikan nama variabel, dan ini merupakan salah satu kelemahan bahasa pemrograman Basic, jika dibandingan dengan Pascal maupun C Language dimana variabel harus dideklarasikan terlebih dahulu. Contoh : GajiPokok = 1000000 Bonus = 10000 GajiBersih = GajiPokol + Bonus Print GajiBersih ‘Hasilnya 10000, bukan 1010000 3. Runtime Error, adalah kesalahan yang disebabkan oleh tidak tersedianya sumber daya atau kondisi yang normal bagi program untuk berjalan dengan baik, misalnya kekurangan memori komputer, disk full, atau pintu drive tidak terkunci, dll. Sebagai programmer yang baik, tentu saja harus mampu menghasilkan program dengan tingkat kesalahan yang minimal, dan usaha untuk meminimalisasi tingkat kesalahan program disebut proses debug. Pada QBasic tersedia berbagai fasilitas untuk menangani kesalahan yang mungkin dilakukan oleh programmer, misalnya : 1. Fasilitas Syntax Checking pada menu Option yang sangat berguna untuk mendeteksi kesalahan jenis “Syntax Error”. 2. Menu Debug, yang memiliki fasilitas yang sangat bermanfaat untuk melacak Logical Error, tetapi keberhasilannya sangat tergantung kepada pemahaman programmer akan masalah yang terjadi. Adapun fasilitas pada menu Debug adalah sebagai berikut : a. Step atau F8, digunakan untuk menjalankan program baris per baris, sehingga programmer dapat mengamati alur program secara baris perbaris sambil mengevaluasi hasil output yang dihasilkan. b. Procedure Step atau F10, digunakan untuk menjalankan program baris per baris tanpa masuk ke bagian sub rutin, artinya sub rutin dianggap sebagai satu baris dari program. Fasilitas ini digunakan jika programmer telah yakin pada kebenaran sub rutin yang dibuat, sehingga proses pencarian lebih terfokus pada bagian tertentu. c. Trace On, digunakan untuk memberikan sorotan pada baris yang sedang dijalankan. d. Toggle BreakPoint, digunakan untuk menandai baris dimana proses eksekusi Pause dan masuk ke modus Step, fasilitas ini dapat digunakan programmer untuk memperkecil jangkauan pencarian kesalahan dengan modus Step karena tidak perlu melakukan Step dari awal, tetapi Step dilakukan mulai pada baris dimana sumber kesalahan dicurigai. e. Clear Breakpoint, digunakan untuk menghapus semua Breakpoint. f. On Error Goto label, digunakan untuk error handling, dimana jika terjadi kesalahan, maka proses program dialihkan ke label tertentu, dan jenis kesalahan dapat ditelusuri dari fungsi ERR yang akan mengembalikan nomor kesalahan, dan proses dapat diulangi dengan RESUME atau RESUME NEXT , dan anda dapat juga menggunakan On Error Resume Next untuk mengabaikan kesalahan. Fasilitas ini cocok untuk mengatasi Run Time Error, Contoh : ON ERROR GOTO Salah OPEN “A:Sumber.Dat” FOR INPUT AS #1 DO WHILE NOT EOF(1) LINE INPUT #1, Baris$ PRINT Baris$ LOOP END Salah: SELECT CASE ERR CASE 53 PRINT “File Sumber.Dat tidak ada” END CASE 71 PRINT “Drive tidak siap, [U]lang, [B]atal”; INPUT tanya$ IF tanya$ = “U” OR tanya$ = “u” THEN RESUME ELSE END END IF END SELECT END Catatan : Nomor Error dapat dilihat pada bagian Help QBasic “Runtime Error Code”
Anda sedang membaca Artikel tentang RUMUS QBASIC, jika Anda menyukai Artikel di blog ini, silahkan masukkan email Anda dibawah ini untuk berlangganan gratis via email, dengan begitu Anda akan mendapat kiriman artikel baru.

0 komentar:

Posting Komentar

 
Related Posts Plugin for WordPress, Blogger...