PERTEMUAN I
Sejarah Bahasa BASIC
BASIC singkatan dari Beginners All Purpose Symbolic Instruction Code merupakan bahasa tingkat tinggi (high level language) yang bersifat interpreter. Bahasa BASIC diciptakan oleh John G. Kemeny dan Thomas E. Kurtz dari Darmouth Collage, USA. Bahasa ini memang dikenal sangat mudah di pahami dan dipahami.
Saat mengalami perkembangan yang sangat pesat, BASIC memiliki banyak versi yang beredar di pasaran di antaranya BASICA, CBASIC, GBASIC, MBASIC, QUICK BASIC, GW-BASIC, dan sebagainya. Namun yang paling populer adalah BASICA dan QUICK BASIC (QBASIC) yang berjalan pada sistem operasi MS-DOS atau IBM PC-DOS. Modul ini sendiri disusun mengacu pada versi QBASIC milik Micosoft.
Konsep Dan Struktur Program BASIC
BASIC adalah bahasa pemrograman yang terstruktur. Selain itu bahasa ini mendukung teknik pemrograman modular atau prosedural yang ditandai dengan tersedianya fasilitas untuk membuat suatu prosedur atau sub program.
Struktur program BASIC diawali dengan bagian pendeklarasian variabel, kemudian bagian tubuh program tempat meletakkan statement atau instruksi-intruksi untuk sebuah program dan diakhiri oleh statement END. Jika dibuat bagan terlihat sebagai berikut:
DIM nama_variabel AS tipe_databagian pendeklarasian
..
atau pendefinisaian variabel
no_baris1 Statement_1 bagian penulisan instruksi
no_baris2 Statement_2 atau statement
..
END
- akhir program
Stament END tidak harus berada di akhir baris program, fungsinya adalah untuk mengakhiri program dan kembali ke sistem operasi. Untuk pembuatan prosedur atau sub program pada QBASIC ditulis pada jendela terpisah dari modul utama QBASIC secara otomatis akan menciptakan jendela tersendiri saat pendefinisian prosedur dengan statement SUB dan dipanggil dari modul utama. Nomor baris boleh tidak ditulis dalam QBASIC kecuali untuk lompatan alur program.
Variabel adalah besaran atau simbol yang digunakan untuk menyimpan suatu nilai.
BASIC memiliki aturan atau kententuan untuk penulisan nama variabel yang akan dideklarasikan, yaitu:
1. Maksimum panjangnya 40 karakter.
2. Terdiri dari huruf, angka, dan titik, tetapi karakter pertama harus huruf.
3. Tidak boleh menggunakan spasi atau blank di antara karakter-karakter.
4. Tidak boleh ada karakter khusus, kecuali %, !, # dan $ yang harus diletakkan diakhir nama variabel yang menunjukkan jenis variabelnya.
5. Tidak boleh sama dengan BASIC reserved words, yaitu kata-kata yang sudah menjadi milik BASIC untuk tugas tertentu. Reserved word terdiri dari statement, function, keyword dan meta command.
Contoh nama variabel yang dianggap sah yaitu : total, NAMA, Kelas1, bil% ,dan kata$.
Contoh nama variabel yang dianggap tidak sah yaitu : $Gaji, 2Tahunan, Nama Peg, Dim, dan COLOR.
BASIC tidak mengenal huruf besar atau kecil dalam penulisan variabelnya walaupun namanya sama. Misalnya variabel TOTAL dianggap sama dengan variabel total.
Bentuk umum pendeklarasian variabel adalah :
DIM nama_variabel1[(subskrip)] [AS tipe_data] [,nama_variabel2[(subskrip)] [AS tipe_data]] ..
Keterangan simbol bentuk umum (sintaks):
Notasi '[ ]' ; berarti bersifat optional, boleh ditulis atau tidak.
Notasi '{ }' ; berarti dipilih salah satu dari sekian option yang ada didalamnya.
Notasi '' ; berarti dapat diulang-ulang (dst).
Tipe data adalah jenis data yang disimpan variabel. Jika dideklarasikan tanpa menyebutkan tipe datanya QBASIC menganggap variabel tersebut bertipe numerik.
Tipe data dalam BASIC, yaitu:
1. Integer ; bilangan bulat 16-bit antara -32768 s.d. 32767.
2. Long ; bilangan bulat 32-bit
3. Single ; floating point 32-bit antara 2.938736 x10-39 s.d 1.701412 x1038 .
4. Double; floating point 64-bit antara 2.9358745877055719 x10-39 s.d 1.701411834604692 x1038.
5. String * n ; untai kata yang terdiri dari huruf dan angka dengan panjang n bytes(karakter).
Untuk mendeklarasikan variabel 1 karakter digunakan tipe data no. 5 dengan n=1. Setelah variabel dideklarasikan variabel tersebut bisa dimanipulasi atau dilihat nilainya, contoh lihat program berikut:
DIM I AS INTEGER, nama AS STRING *20
DIM F AS SINGLE
I=4
F=10.5
nama="Budi"
PRINT I
PRINT nama;F
END
Output program tersebut adalah :
4
Budi 10.5
Statement PRINT memerintahkan komputer untuk menampilkan nilai variabel ke layar monitor. Sintaks statement PRINT :
PRINT [{expressionlist | variabel }] [{; | , }]
Statement PRINT memiliki beberapa variasi penulisan seperti pada program berikut :
DIM I AS INTEGER, nama AS STRING *20
DIM F AS SINGLE
I=4
F=10.55
nama="Budi"
PRINT nama;F
PRINT nama,F
PRINT nama;I;
PRINT F
PRINT "Nilai";TAB(7);nama;TAB(15);F
PRINT USING "##.#";F
PRINT USING "Rp. ####.##";F
END
Output program tersebut adalah:
Budi 10.55
Budi 10.55
Budi 4 10.55
Nilai Budi 10.55
10.6
Rp. 10.55
Untuk memasukkan nilai variabel dengan keyboard oleh user digunakan statement INPUT. Nilai yang diinput akan disimpan ke variabel yang dituju. Format penginputan dengan statement INPUT ini mjuga memiliki beberapa format. Bentuk umum INPUT :
INPUT [;] ["prompt/judul" {; | ,}] nama_variabel
Cntohnya :
DIM I AS INTEGER, nama AS STRING *20
Dim no AS INTEGER
INPUT "NAMA : ", nama
INPUT "Umur "; I
INPUT no
PRINT nama
PRINT I
PRINT no
END
Output program :
NAMA : Budi
Umur ? 20
?12
Budi
20
12
Operator dalam BASIC
Operator dapat berupa tanda operasi aritmatika ataupun menunjukkan hubungan logika antara dua elemen. Operator aritmatika yang ditulis berdasarkan prioritas pemrosesan terdiri dari :
1. ^ (Pangkat)
2. * (Kali) dan / (Bagi)
3. + (Tambah) dan - (Kurang).
Contoh penjelasan prioritas operator aritmatika :
1. 2 * 4 ^ 2 = 2 * (4 ^ 2) = 32 ; bukan (2 * 4) ^ 2 = 64
2. (8 / 2) ^ 2 = 16
3. 9 + 8 * 2 + 1 = 9 + (8 * 2) + 1= 26 ; bukan (9 + 8) * 2 + 1= 35 atau (9 + 8)*(2 + 1) = 51
4. 3 * (3 + 2) = 15
5. b ^ 2 - 4 * a * c = (b ^ 2) - (4 * a * c)
6. (6 ^ 2 + 8 ^ 2) ^ 0.5 = 10
Contoh penggunaan operator ini dapat dilihat pada program sederhana berikut :
DIM Luas AS SINGLE
DIM Sisi AS SINGLE, Jari AS SINGLE
INPUT "Masukan Panjang Sisi => ",Sisi
Luas = Sisi ^ 2
PRINT "Luas Bujur Sangkar = " ; Luas
INPUT "Masukan Panjang Jari-Jari => ",Jari
Luas = 22 / 7 * Jari ^ 2
PRINT "Luas Lingkaran = " ; Luas
END
Output dari program tersebut adalah:
Masukan Panjang Sisi => 4
Luas Bujur Sangkar = 16
Masukan Panjang Jari-Jari => 7
Luas Bujur Sangkar = 154
Pertama kali program meminta user untuk memasukan nilai untuk panjang sisi melalui keyboard dan diinput dengan nilai 4 kemudian ditampilkan hasil perhitungan luas bujur sangkar sesuai dengan rumus yang digunakan pada baris keempat program. Hasil perhitungan disimpan pada variabel Luas. Hal ini juga dilakukan untuk mencari luas lingkaran hanya user diminta memasukkan nilai jari-jariya.
Sedangkan operator hubungan (relational operator) biasanya digunakan untuk membandingan dua buah elemen. Operator hubungan ini terdiri dari :
1. > (Lebih besar dari)
2. < (Kurang dari)
3. >= (Lebih besar atau sama dengan)
4. 5
PRINT 2 ^ 2 = 2 * 2
PRINT "HELLO" = "HALLO"
PRINT "A" < "C"
PRINT (2 < 4) AND (0 > 5)
PRINT NOT(0)
PRINT -1 XOR 0
END
Output program adalah:
-1
0
-1
0
-1
0
-1
-1
Jika menggunakan operator hubungan terhadap nilai string, maka yang dibandingkan adalah urutan alpabethnya seperti pada baris keempat dan kelima program di atas.
Statement
Stament dalam BASIC merupakan pernyataan yang mengandung perintah untuk melaksanakan tujuan tertentu. Kumpulan dari statement membentuk suatu program. Contoh statement PRINT untuk menampilkan bilangan atau string ke layar monitor.
Beberapa contoh statement dalam QBASIC dapat dilihat pada menu Help>Index, terdapat daftar reserved word yang berurutan berdasar abjad. Sebuah statement dapat dilihat dari reserved word yan diakhiri kata 'Statement'.
Contoh beberapa statement :
StatementSintaks
CLS
CLS [{ 1 | 2 | 3}]
Membesihkan layar
COLOR COLOR [foreground] [, background]
Memberi warna teks dan latar
belakang teks
SOUNDSOUND frekuensi ,durasi
Mengeluarkan suara dari speaker
CONSTCONST var_konstanta=ekspresi ..
Mendeklarasikan variabel
konstan
READ
READvar_list
Membaca nilai variabel pada
statement DATA
DATA
DATA konstanta_list
Memberikan nilai variabel pada
statement READ letaknya di
bagian mana saja dari program
END
END [{DEF|FUNCTION|SUB|SELECT|TYPE}]Mengakhiri program ,sub prog.,
fungsi, TYPE, atau SELSECT
GO TOGO TO no_baris
Melompat ke baris yang dituju
LET
LET variabel=ekspresi
Memberikan harga suatu variabel
REM
REM catatan_kalimat
Memberikan catatan program
yang tidak dieksekusi komputer
LOCATELOCATE [baris][,kolom]
meletakan kursor aktif pada baris
dan kolom tertentu pada layar
STOP
STOP
mengkahiri program dari bagian.
Array
Array adalah sekumpulan data sejenis/setipe yang disimpan dalam sebuah variabel berindeks. Tiap indeks atau subskrips menyimpan sebuah nilai. Indeks dapat berbentuk satu dimensi (one dimensional) atau lebih dari satu dimensi (multi dimensional). Indeks terkecil dimulai dari 0.
Cara pendeklarasian variabel array sama dengan pendeklarasian variabel pada umumnya, yaitu dengan statement DIM hanya nama variabelnya diikuti dengan nilai dalam tanda kurung '( )' yang menunjukkan jangkauan indeksnya. Misalnya :
DIM Bil(4) AS INTEGER
DIM Nama(2,2) AS STRING * 15
DIM Matrik(4,3,2) AS SINGLE
Variabel Bil adalah array dimensi satu dengan tipe integer. Variabel Bil ini memiliki 5 indeks/subskrip mulai dari Bil(0) sampai dengan Bil(4) yang masing-masing menyimpan sebuah nilai integer. Sedangkan Nama berdimensi 2 bertipe string. Indeksnya berjumlah 9 dimulai dari Nama(0,0), Nama(0,1), dst sampai dengan Nama(2,2).
Pengaksesan vaiabel array untuk memanipulasi atau menampilkan nilainya adalah dengan menyebutkan indeksnya. Contohnya :
DIM Nilai(2) AS SINGLE
Nilai(0) = 70
Nilai(1) = 60
Nilai(2) = (Nilai(0) + Nilai(1)) / 2
PRINT "Nilai-1 = "; Nilai(0)
PRINT "Nilai-2 = "; Nilai(1)
PRINT "Rata-Rata = "; Nilai(2)
ENDRecord
Record adalah data terstruktur yang mengandung sekumpulan data yang berbeda jenis atau tipe yang disimpan dalam sebuah tipe data. Sekumpulan data ini kemudian disebut sebagai field-field dari record. Record adalah tipe data yang bisa dibuat oleh user sendiri. Selanjutnya tipe data ini digunakan untuk mendeklarasikan variabel sama seperti tipe data yang ada.
Untuk mendeklarasikan tipe record digunakan statement TYPE. Field-fieldnya didefinisikan setelah TYPE ini tanpa menggunakan DIM. Bentuk umum statement TYPE :
TYPE usertype
Elemen-1 AS Tipedata
[Elemen-2 AS Tipedata]
.
END TYPEUsertype adalah tipe data baru yang dicipatakan user. Dalam sebuah tipe record minimal memiliki satu buah field/elemen. Selanjutnya dapat dideklarasikan variabel bertipe usertype dengan cara biasa dengan DIM,yaitu:
DIM nama_variabel AS usertype
Pengaksesan nilai elemen dalam record dapat digunakan tanda period/titik (.). Untuk lebih jelasnya lihat contoh program berikut :
TYPE Dat_Mhs
Nama AS STRING * 15
NPM AS STRING * 8
Kelas AS STRING * 5
END TYPE
DIM Mhs AS Dat_Mhs
CLS
INPUT "Nama : " , Mhs.Nama
INPUT "NPM : " , Mhs.NPM
INPUT "Kelas : " , Mhs.Kelas
PRINT "Data Mahasiswa yang dimasukkan "
PRINT "Nama : " ; Mhs.Nama
PRINT "NPM : " ; Mhs.NPM
PRINT "Kelas : " ; Mhs.Kelas
ENDOutput program :
Nama : Budi
NPM : 50499047
Kelas : 1IA01
Data Mahasiswa yang dimasukkanNama : Budi
NPM : 50499047
Kelas : 1IA01
Dat_Mhs adalah sebuah tipe data baru berbentuk record yang memiliki elemen-elemen Nama, NPM, dan Kelas. Kemudian dideklarasikan variabel Mhs bertipe Dat_Mhs sehingga variabel Mhs secara otomatis juga memiliki elemen-elemen Nama, NPM, dan Kelas.
Sebuah tipe record, elemen-elemennya dapat berupa array atau record itu sendiri berupa array. Pada contoh sebelumnya menggunakan data mahasiswa tunggal. Untuk data mahasiswa yang banyak dapat diubah menjadi array. Berikut adalah modifikasi program sebelumnya dimana vairabel Mhs diubah menjadi array pada baris ke-6:
TYPE Dat_Mhs
Nama AS STRING * 15
NPM AS STRING * 8
Kelas AS STRING * 5
END TYPE
DIM Mhs(2) AS Dat_Mhs
DIM I AS INTEGER
CLS
FOR I=0 TO 2
INPUT "Nama : " , Mhs(I).Nama
INPUT "NPM : " , Mhs(I).NPM
INPUT "Kelas : " , Mhs(I).Kelas
PRINT STRING$("-",20)
NEXT I
PRINT "NAMA", "NPM", "KELAS"
FOR I=0 TO 2
PRINT Mhs(I).Nama, Mhs(I).NPM, Mhs(I).Kelas
Next I
ENDOutput program :
Nama : Budi
NPM : 50499047
Kelas : 1IA01
--------------------
Nama : Budi
NPM : 50499047
Kelas : 1IA01
--------------------
Nama : Budi
NPM : 50499047
Kelas : 1IA01
NAMA NPM KELAS
Budi
50499047 1IA01
Dedi
50499065 1IA01
Irma
50499121 1IA01
Seleksi Kondisi
Dalam BASIC, seleksi kondisi dilakukan oleh statement IF..THEN dan SELECT CASE. Kondisi ini berupa suatu ekspresi yang menghasilkan nilai benar (-1) atau salah (0) saja. Ekspresi biasanya menggunakan relational operator atau logic operator.
Bentuk umum statement IF..THEN :
IF kondisi THEN statement1 [ELSE statement2]
Jika dibuat bagan flow chart :
Bentuk lain :
IF kondisi1 THEN
[Blok statement-1]
[ELSEIF kondisi2 THEN
[blok statement-2]]
[ELSE
[blok statement-n]]
END IF
Bentuk flowchartnya :
Bentuk pertama menggunakan statement tunggal. Jika kondisi benar akan melaksanakan statement-1 jika salah akan melaksanakan statement-2. Bentuk kedua adalah bentuk seleksi kondisi bertingkat. Jika kondisi-1 benar akan melaksanakan statement pada blok statement-1, jika tidak maka akan menyeleksi komdisi2. Jika kondisi-2 benar maka blok statement-2 akan dilaksanakan dst. Jika semua kondisi salah maka akan melaksanakan blok statement-n.
Bentuk umum SELECT CASE :
SELECT CASE ekspresi
CASE ekspresi_list1
[Blok statement-1]
[CASE ekspresi_list2
[Blok statement-1]]
[CASE ELSE
[Blok statement-n]]
END SELECTEkspresi-list adalah daftar ekspresi yang dibandingkan nilainya dengan ekspresi yang dites. Ekspresi adalah nilai yang akan dibandingkan dengan nilai tiap-tiap ekspresi_list. Jika terpenuhi atau menghasilkan nilai benar maka akan melaksanakan blok statement di bawahnya. Jika tidak sesuai dengan semua ekspresi_list yang ada maka akan melaksanakan blok statement-n (di bawah CASE ELSE).
Bentuk bagannya:
Contoh program :
DIM Umur AS INTEGER
DIM Nilai AS SINGLE
DIM Peringkat AS INTEGER
Umur = 45
Nilai = 75
Peringkat = 5
IF Umur >= 30 THEN PRINT "Anda Sudah Tua" ELSE PRINT "Anda _ Masih Muda"
IF Nilai >=90 THEN
PRINT "Anda mendapat nilai A"
ELSEIF Nilai >=80 THEN
PRINT "Anda mendapat nilai B"
ELSEIF Nilai >=70 THEN
PRINT "Anda mendapat nilai C"
ELSEIF Nilai >=60 THEN
PRINT "Anda mendapat nilai D"
ELSE PRINT "Anda mendapat nilai E"
END IF
SELECT CASE Peringkat
CASE 1 TO 3
PRINT "Peringkat Anda Istimewa"
CASE 4,5
PRINT "Peringkat Anda Bagus"
CASE 6 TO 10
PRINT "Peringkat Anda Lumayan"
CASE IS > 10
PRINT "Peringkat Anda Buruk"
END SELECT
ENDOutput program :
Anda Sudah Tua
Anda mendapat nilai C
Peringkat Anda Bagus
Perulangan
Stetement perulangan terdiri dari FOR..NEXT, DO..LOOP, dan WHILE..WEND.
FOR..NEXT merupakan perulangan dimana akan berhenti yaitu saat nilai pencacah mencapai nilai akhir yang diinginkan tanpa ada proses penyeleksian. Kita bisa mengetahui berapa kali terjadi perulangan yaitu (nilai_akhir - nilai_awal) * kenaikan.
Bentuk umum statement FOR..NEXT :
FOR pencacah = nilai_awal TO nilai_akhir [STEP kenaikan]
[blok statement]
NEXT pencacah
Jika STEP tidak disebutkan maka kenaikannya adalah 1.
Contoh program :
DIM I AS INTEGER
DIM X AS INTEGER
FOR I=1 TO 5
PRINT "Bilangan ke-" ; I
NEXT I
PRINT "10 Bilangan genap pertama : " ;
FOR X=2 TO 20 STEP 2
PRINT X;
NEXT X
END
Output program :
Bilangan ke-1
Bilangan ke-2
Bilangan ke-3
Bilangan ke-4
Bilangan ke-5
10 Bilangan genap pertama : 2 4 6 8 10 12 14 16 18 20Perulangan DO..LOOP terus dilaksanakan saat kondisi tertentu terpenuhi atau bernilai benar, jika tidak maka proses perulangan akan berhenti. Penyeleksian kondisi dilakukan setelah kata DO atau LOOP. Bentuk umumnya :
DO [{ WHILE | UNTIL } kondisi]
[blok statement]
LOOPAtau
DO
[blok statement]
LOOP [{ WHILE | UNTIL } kondisi]
Bagan flow chart:
Bentuk-1
Bentuk-2
Bentuk-1 adalah looping dengan menggunakan UNTIL, bentuk-2 dengan WHILE. Perbedaannya adalah bentuk-1 proses looping akan berhenti sampai kondisi bernilai benar(Y) dan sebaliknya. Sedangkan bentuk-2 selama kondisi bernilai benar proses looping akan terus dilakukan.
Lihat contoh program berikut :
DIM I AS INTEGER, X AS INTEGER
I=0
DO
I= I + 1
PRINT I;
LOOP UNTIL I=5
X=0
DO WHILE X < 5
X= X + 1
PRINT X;
LOOP
END
Output program :
1 2 3 4 5
1 2 3 4 5Perulangan WHILE..WEND pada dasarnya sama dengan DO WHILE..LOOP. Selama kondisi bernilai benar proses looping terus dilaksanakan. Bentuk umumnya:
WHILE kondisi
[blok statement]
WENDSub Routine
Sub rouitine merupakan kumpulan baris program yang dipanggil dengan statement GO SUB. Sub routin digunakan untuk memanggil baris program yang sering dipanggil. Hal ini lebih baik daripada menuliskan baris program yang sama berkali-kali. Bnetuk umum GO SUB :
GO SUB no_baris
Pemangggilan sub routine juga dapat menggunakan statement ON GO SUB. Bedanya dengan ON GO SUB pemanggilan sub routine terjadi tergantung urutan nomor baris. Bentuk umumnya :
ON ekspresi_integer GOSUB daftar_no_baris
Contoh :
ON 3 GO SUB 15, 12, 20
Sub routine yang dipanggil adalah subroutine baris 20 sesuai urutan daftar nomor baris.
Sub routine diakhiri dengan statement RETURN dan kemudian kembali ke baris program berikut dari baris program yang memanggilnya. Bagian awal sub routine harus dituliskan nomor baris atau labenya. Contohnya :
CLS
DIM I AS INTEGER
PRINT "Budi", "1IA01", "Jakarta"
GO SUB 15
PRINT "Dedi", "1IA02", "Depok"
GO SUB 15
END
15 PRINT STRING$(35 ,"-")
RETURN
Output program :
Budi 1IA01 Jakarta
---------------------------------
Dedi 1IA02 Depok
---------------------------------
Setelah pemanggilan GO SUB pertama pada baris ke-3 untuk mencetak garis, kemudian program mengerjakan baris ke-4 di bawah baris pemanggilan sub routine pertama untuk mencetak data. Kemudian sub routine dipanggil kembali untuk mencetak garis. Setelah RETURN mengerjakan statement END.
Fungsi
Fungsi adalah bagian dari program yang memberikan nilai keluaran. Nilai keluaran ini dapat disimpan pada sebuah variabel, dicetak atau dimanipulasi. Sebuah fungsi dapat dikatakan sebagai ekspresi karena mengandung nilai. Jenis nilai keluaran berbeda-beda tergantung tipe datanya.
Fungsi dibagi menjadi dua yaitu fungsi yang sudah disediakan BASIC dan fungsi yang sengaja diciptakan user (user defined). Kita tidak perlu mendeklarasikan atau mendefinisikan fungsi yang telah ada pada BASIC kita tinggal memanggil dan mendapatkan nilai keluarannya. Fungsi yang telah disediakan jumlahnya cukup banyak (untuk melihat fungsi pada QBASIC pilih menu Help>Index. Lihat daftar kata reserved word yang diakhiri kata 'Function'), contoh beberapa fungsi misalnya lihat tabel berikut :
Fungsi Sintaks
KegunaanABS ABS(ekspresi_numerik) Mengembalikan nilai absolut ekspresi numerik
COS COS(sudut)
Mencari nilai kosinus sudut (dalam radian)
ASC ASC(ekspresi _karakter) Mencari kode ASCII suatu karakter
SQR SQR(ekspersi_numerik) Mencari akar suatu bilangan
CINT CINT(ekspresi_numerik) Mengkonversi bilangan ke bentuk integer(bulat)
CSNG CSNG(ekspresi_numerik) Mengkonversi bilangan ke bentuk floating point single
UCASE$ UCASE$(ekspresi_string) Mengubah tiap huruf dalam kata dengan huruf besar
Dsb
Bentuk umum untuk membuat suatu fungsi :
FUNCTION nama_fungsi [(parameter)]
[blok_statement]
nama_fungsi = ekspresi
[blok_statement]
END FUNCTIONDalam QBASIC penulisan fungsi dilakukan dengan jendela terpisah dari modul utama. Untuk berpindah-pindah dari modul utama ke jendela fungsi tekan tombol F2, lalau pilih pilihan modul yang ada.
Bentuk lain selain fungsi diatas ada fungsi yang dideklarasikan dan ditulis bersama modul utama. Biasanya digunakan untuk fungsi aritmatik. Sebelum dipanggil fungsi ini harus didefinisikan di bagian deklarasi.
Bentuk umumnya:
DEF FNnama_fungsi [(paramenter)] = ekspresi
Atau
DEF FNnama_fungsi [(parameter)]
[Blok statement]
FNnama_fungsi = ekspresi
[Blok statement]
END DEF
Pemanggilan fungsi memberikan nilai kembalian yang bisa disimpan pada variabel, dimanipulasi atau ditampilkan.
Contoh program :
DIM a AS SINGLE, kal AS STRING
DEF FNkuadrat (x) = x^2
DEF FNfaktorial (n)
DIM Hasil AS DOUBLE
Hasil=1
For I%=1 to n
Hasil = Hasil * I%
NEXT I%
FNfaktorial = Hasil
END DEF
CLS
INPUT "Masukan Angka Positif > "; a
PRINT a; "! = "; FNfaktorial(a)
PRINT a; "^2 = "; FNkuadrat (a)
INPUT "Masukan Kalimat > "; kal
PRINT kal; " >> "; besar(kal)
END
FUNCTION besar$ (kata$)
Besar$ = UCASE$ (kata$)
END FUNCTIONOutput program :
Masukan Angka Positif > 5
5 ! = 120
5 ^2= 25
Masukan Kalimat > Lab Informatika
Lab Informatika >> LAB INFORMATIKASub Program
Sub program adalah bagian dari program yang ditulis terpisah dari program utama. Berbeda dengan fungsi sub program tidak mengembalikan nilai keluaran. Sub program sangat berguna untuk menghindari penulisan barisan statement / instruksi yang berulang-ulang. Sub program ini biasa juga disebut sebagai prosedur. Sama dengan fungsi dalam QBASIC sub program ditulis secara terpisah dari modul utama. Untuk berpindah-pindah modul tekan tombol F2.
Pembuatan sub program ditulis setelah statement SUB dan diakhiri dengan END SUB. Bentuk umum penulisan SUB :
SUB nama_sub [(parameter)]
[blok statement]
END SUBDi dalam sub program kita bisa juga mendeklarasikan variabel baru, tetapi bersifat lokal tidak bisa diakses dari modul utama. Pemanggilan nama sub program di dalam modul utama meyebabkan setiap statement dalam blok statement dalam sub program akan dilaksanakan.
Contoh program :
DIM pil AS INTEGER
CLS
LOCATE 5, 15
PRINT "< Menu Utama >"
LOCATE 6, 15
PRINT "1. Menu Pertama"
LOCATE 7, 15
PRINT "2. Menu Kedua"
LOCATE 8, 15
PRINT "3. Menu Ketiga"
LOCATE 9,15
INPUT "Pilihan Anda > "; pil
SELECT CASE pil
CASE 1
Satu
CASE 2
Dua
CASE 3
Tiga
ELSE CASE
PRINT "Pilihan Anda Ngawur !"
END SELECT
END
SUB Satu
PRINT "ANDA MEMILIH MENU PERTAMA"
END SUB
SUB Dua
PRINT "ANDA MEMILIH MENU KEDUA"
END SUB
SUB Tiga
PRINT "ANDA MEMILIH MENU KETIGA"
END SUBOutput program :
< Menu Utama >
1. Menu Pertama
2. Menu Kedua
3. Menu Ketiga
Pilihan Anda > 3
ANDA MEMILIH MENU PERTAMAJika memasukan pilihan selain ketiga nomor tersebut akan tercetak kalimat :
Pilihan Anda Ngawur !
File
File merupakan tempat penyimpanan data-data yang lebih permanen di dalam disk atau tape. Pengertian lain, file adalah kumpulan dari record-record. Beberapa keuntungan menggunakan file ,yaitu:
1. Kita bisa melihat isi data dalam file di kemudian hari karena lebih permanen dari pada penyimpanan dalam memori utama /buffer. Jika komputer dimatikan data dalam buffer akan hilang, sedangkan dengan file tidak hilang karena sudah disimpan secara fisik dalam disk.
2. File dapat menampung jumlah data yang sangat besar, seperti data karyawan, data mahasiswa, dan sebagainya.
3. Data dalam file dapat digunakan secara bersama-sama oleh beberapa program atau aplikasi.
Ada beberapa jenis file dalam BASIC,yaitu :
1. File Sequential ; file yang diakses secara berurutan.
2. File Random ; file yang bisa diakses sccara random tanpa memprhatikan urutan data.
3. File Binary; file dalam bentuk kode-kode binary.
File yang digunakan biasanya bertipe atau berekstension .dat atau .txt.Untuk membuat file dengan BASIC bisa digunakan statement OPEN, bentuk umumnya:
OPEN nama_file [FOR MODE] AS [#nomor_file] [LEN = panjang_record]
Keterangan :
Nama_file ; nama file yang akan dibuat atau dibuka,ditulis berkut direktori filenya. Jika direktori tidak ditulis berarti file dibuat pada direktori aktif.
MODE ; mode penggunaan file , terdiri dari :
INPUT ; jika file dibuat/dibuka untuk dibaca isi datanya.
OUTPUT ; jika file dibuat/dibuka untuk menuliskan / merekam data ke dalam file. Jika nama file yang akan dibuat sudah ada sebelumnya, maka file yang lama akan dihapus.
APPEND ; jika file dibuat/dibuka untk ditambah isinya tanpa menghapus file sebelumnya.
RANDOM ; digunakan untuk pembuatan file random, menyimpan dalam bentuk record.
Setelah sebuah file dibuat atau dibuka,kemudian file bisa ditutup. Dengan menggunakan statement CLOSE. Bnetuk umumnya :
CLOSE [(nomor_file)]
Ada beberapa operasi yang melibatkan file , yaitu:
1. Baca File ; setelah dibuka file dapat dibaca isi datanya dengan statement INPUT #, LINE INPUT #, atau GET. Bentuk umum masing-masing statement :
INPUT #no_file, variabel_list
LINE INPUT # #no_file, variabel_list
GET #no_file, [no_record] [,variabel_list]
LINE INPUT membaca isi file perbaris. Statement GET biasanya untuk membaca file random yang berisi record-record.
2. Tulis File ; penulisan file dapat dilakukan dengan statement PRINT #, PUT ,WRITE . Bentuk umumnya :
PRINT #no_file, variabel_list
PUT #no_file, [no_record] [,variabel_list]
WRITE #no_file, ekspresi
PUT digunakan untuk merekam data ke file random. Sedangkan WRITE untuk merekam data ke file sequewnsial.
3. Tambah File; untuk kepentingan tertentu isi file bisa ditambah datanya tanpa menghapus file lama dan menulis dengan yang baru. Untuk bisa menambah isi file mode pembuakaan file harus ditulis APPEND. Contoh :
OPEN "DATA.DAT" FOR APPEND AS #1
Kemudian untuk menulisnya menggunakan statement yang biasa untuk menulis data, seperti penjelasan no.2.
Contoh program yang membuat dan membaca sebuah file sequensial :
DIM Nama AS STRING *15 , Umur AS INTEGER
DIM Nama2 AS STRING *15 , Umur2 AS INTEGER
Nama = "Budi"
Umur = 21
Nama2 = "Wati"
Umur = 22
' Membuat file
OPEN "C:\QBASIC\data.dat" FOR OUTPUT AS #1
PRINT #1 , Nama
PRINT # 1, Umur
PRINT #1, Nama2, Umur2
CLOSE(1)
'Membaca file
OPEN "C:\QBASIC\data.dat" FOR INPUT AS #1
INPUT #1, nam$
INPUT #1, age%
INPUT #1, temp$
PRINT nam$, age%
PRINT temp$
CLOSE (1)
END
Output program :
Budi
21
Wati 22Isi file C:\QBASIC\data.dat setelah diisi data:
Budi
21
Wati 22Contoh program yang membuat dan membaca sebuah file random :
TYPE Data_Mhs
Nama AS STRING * 15
Kelas AS STRING * 5
END TYPE
DIM dat(1 TO 2) AS Data_Mhs, temp AS Dat_Mhs
'buat file
OPEN "DATA.DAT" FOR RANDOM AS #1
FOR I%=1 TO 2
INPUT "Nama : "; dat(I).Nama
INPUT "Kelas : "; dat(I).Kelas
PUT #1, I%, dat(I)
NEXT I%
CLOSE(1)
'baca file
OPEN "DATA.DAT" FOR RANDOM AS #1
FOR I%=1 TO 2
GET #1,I%, temp
PRINT "Data-";I%
PRINT temp.Nama, temp.Kelas
NEXT I%
CLOSE(1)
ENDOutput program:
Nama : Budi
Kelas : 1IA01
Nama : Wati
Kelas : 1IA02
Data-1 Budi 1IA01
Data-2 Wati 1IA02Beberapa reserved words lain yang berhubungan dengan file :
1. SEEK ; statement untuk menset dan mengetahui pointer record pembacaan atau penulisan pada file. Betnuk umumnya :
SEEK(no_file)
SEEK # no_file, posisi
2. EOF ; fungsi untuk mengetahui apakah pointer record berada di akhir file. Mengmbalikan nilai benar atau salah.Bentuk umumnya :
EOF(no_file)
3. LOF; fungsi untuk mengetahui panjang sebuah file dalam satuan byte. Bentuk umumnya :
LOF(no_file)
4. KILL; statement untuk menghapus file dari dalam program. Statement ini sama dengan perintah Delete dalam DOS. Bentuk umumnya :
KILL nama_file
5. FILES ; statement untuk menampilkan file dalam direktori dari dalam program. Statement ini sama dengan perintah Dir dalam DOS. Bentuk umumnya :
FILES nama_file
Kondisi = true ?
Tidak
Statement2
Ya
Statement1
Blok
Statement -n
T
T
Kondisi n-1= true
Kondisi2= true ?
Kondisi1=true ?
T
Y
Y
Y
Blok Statement (n-1)
Blok Statement1
Blok Statement1
Blok Statement-n
Blok Statement2
Blok Statement1
For I=awal to akhir
Blok statement
Next I
T
Blok statement
Blok statement
Kondisi =true?
Kondisi =true?
Y
T
Y
Top Related