modul basic all

29
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_data bagian 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

Upload: gozal-nurramaditya

Post on 18-Dec-2015

283 views

Category:

Documents


6 download

DESCRIPTION

Bahasa Pemrograman Basic

TRANSCRIPT

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

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

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

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

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

PRINT

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)

PRINT

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

PRINT

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