Singkatan dari Beginners All-purpose Symbolic Instruction Code. Bila kita menggunakan bahasa pemrogramman ini maka ektensiannya adalah .Bas, misal : kls.bas dimana kls adalah nama berkas atau filenya Dalam basic kita sering menemukan kata Variabel, Ada 2 jenis variable 1. Variabel bilangan/numerik : berupa angka atau bilangan nyata 2. Variabel untai kata/string : berupa huruf dari A sampai Z Untuk membedakan antara keduanya, biasanya variabel string diberi tambahan symbol $, misal : nama$, almt$, dll Memberi harga suatu variabel Ada 3 cara, yaitu dengan : Let, Read-Data serta Input Contoh dengan Let : 10 Let A = 2 20 Let B = 5 30 Let C = A + B 40 Print C 50 End RUN contoh dengan Read-Data 10 Read A, B 20 Data 2, 5 30 C = A + B 40 Print C 50 End RUN
NOTE : 10, 20, 30 dstnya adalah Nomor Baris atau Line Number
Harga suatu variabel boleh berubah selama berlangsungnya program 10 Data 4, 7 20 Read A, B 30 Print A 40 A = B 50 Print A 60 Print B 70 End RUN Variabel yang sama terdapat pada kedua ruas, misal : 10 Data 3, 7 20 Read A, B 30 A = A + 1 60 Print A 70 A = A + B 80 Print A note : utk selanjutnya kata Run tidak perlu ditulis
40 Print A 50 A = A + 1
90 End Run
dlm program
Dalam program, ruas kiri harus menyatakan nama suatu variabel sedangkan ruas kanan dapat berupa suatu perhitungan Contoh : A = B + A + C + 1, adalah benar A + 1 = B + C , adalah salah Nama suatu variabel harus diawali dengan huruf berikutnya boleh gabungan huruf dengan angka Statement Print Statement ini digunakan untuk mencetak atau mengeluarkan hasil atau output yang dapat berupa harga atau nilai, dapat juga mencetak tepat seperti apa yang ada dalam tanda petik 10 Data 2, 6 20 Read A, B 30 Print B 40 Print Budi Utomo 50 Print B 60 Print A = ; A 70 Print B =, B 80 End Setelah kata Print tidak ada perintah yang mengikutinya mempunyai arti loncat satu baris Outputnya : B Budi Utomo 6 A=2 B= 6
Statement REM Agar program lebih mudah dimengerti, kita dapat memberikan keterangan-keterangan dengan menggunakan statement REM. Selama pelaksanaan program baris yang ada statement ini tidak diproses 10 REM Program untuk mengubah Fahrenheit menjadi celcius 20 REM program ini dibuat oleh Bahrudin 30 Data 59 40 Read F 50 C = (F-32) * 5/9 60 Print F; Fahrenheit sama dengan;C;Celcius 70 End Outputnya : 59 Fahrenheit sama dengan 15 Celcius Perhatikan program-program di bawah ini : 20 Print Raya 10 Print Indonesia 30 End 10 Data 4, 6 20 Read A, B 30 C = AB 50 End 60 RUN Outputnya : illegal instruction in line 30 note : bagaimana outputnya?
40 Print C
Notasi dan Ekspresi Matematik Prioritas 1 2 3 Operasi Perpangkatan Perkalian, pembagian Jumlah, kurang Simbol # atau * * atau ^ *, / +, -
Apabila sebuah ekspresi mengandung tanda kurung, maka operasi di dalam tanda kurung akan dilaksanakan terlebih dahulu Bilangan Besar Di dalam basic, tanda koma tidak diperlukan untuk menyatakan suatu bilangan. Misal : empat belas ribu ditulis 14000 bukan 14,000 Suatu bilangan didalam ukuran tertentu (paling sedikit dalam jutaan ) harus ditulis dalam suatu notasi eksponential khusus Contoh : 750000000 ditulis 7.5E+8 dimana E+8 menunjukkan 10 pangkat 8 atau dapat juga ditulis 75E+9 .0000000125 dapat ditulis 1.25E-8 Fungsi INT Fungsi integer (fungsi bilangan bulat) berguna untuk menghapuskan bagian pecahan dari suatu bilangan Contoh : INT(5.7) = 5, INT(-3.2) = -3
Fungsi SQR Fungsi ini digunakan untuk mencari akar kuadrat dari suatu bilangan Variabel atau ekspresi yang kita gunakan baik pada fungsi INT atau fungsi SQR harus berada didalam tanda kurung, misal INT(A) atau SQR(B), sedangkan INTX atau SQRA adalah salah
Statement Alih Kontrol 1. Alih Kontrol tanpa syarat : statement GO TO Apabila komputer melaksanakan statement berbentuk GO TO , maka akan meloncat ke baris yang nomor barisnya tertera pada statement tsb 10 A = 5 20 B = 8 30 Print A 40 GO TO 70 50 Print B 60 Print BASIC 70 End Outputnya : 5
20 Print X 30 IF X = 5 THEN 60 40 X = X + 1 50 GO TO 20 60 End Pada contoh program diatas terdapat bagian yang dilaksanakan berulang kali ( baris 20 sampai baris 50 ) dikenal dengan istilah LOOP atau LOOPING atau pemutaran kembali Di dalam basic relasi lebih besar atau sama dengan ditulis >= serta lebih kecil atau sama dengan ditulis <=, sedangkan tidak sama dengan ditulis dengan <> Dalam IF THEN dapat ditulis IF(kondisi) THEN(statement) Contoh : IF A > 75 THEN Print Lulus IF A < 70 THEN B = A * 4 LOOP
Tetapi dalam GO TO selalu diikuti dengan nomor baris, tidak boleh statement. Contoh : GO TO 20, ini benar karena 20 menunjukan nomor baris. GO TO End atau GO TO print, GO TO B = A * 4, ini adalah contoh yang salah Jadi sesudah GOTO selalu diikuti dengan Nomor Baris Sedangkan IF-THEN, sesudah THEN boleh nomor baris atau statement
IF-THEN-ELSE Contoh : IF A > B THEN PRINT A ELSE X = X + 1 Apabila A lebih besar dari B maka komputer akan mencetak harga A, kemudian langsung melaksanakan statement pada baris dibawahnya dengan meloncati statement ELSE. Namun bila A tidak lebih besar dari B, statement THEN diloncati, langsung melaksanakan statement ELSE Berikut ini program untuk menentukan bilangan mana yang lebih besar 10 Data ..., 20 Read A, B 30 IF A > B THEN PRINT A ELSE PRINT B 40 End
Contoh : IF 2 > X AND X > 8 THEN PRINT B IF A > 10 OR B > 13 THEN 90 IF A > 7 AND NOT ( B = 7 ) THEN C = A + B Pada kondisi berganda mengandung AND, statement disebelah kanan THEN dilaksanakan hanya bila kedua kondisi benar Untuk OR, statement disebelah kanan THEN dilaksanakan apabila salah satu atau kedua kondisi benar Contoh : 10 Data 20 Read A 30 IF 15 <= A AND A<= 20 THEN 50 40 Print Bukan Remaja : GO TO 60 50 Print Remaja 60 End Bila datanya kita isi angka 18 maka outputnya Remaja, sedangkan bila datanya kita isi angka 21 maka outputnya adalah Bukan Remaja karena syaratnya adalah diatas 15 dan kurang atau sama dengan 20
Statement INPUT Salah satu statement untuk memberikan harga pada suatu variabel, tetapi didalam program kita tidak perlu menuliskan datanya spt pada let ataupun read-data.
Apabila kita ketik RUN, maka akan tampak pada layar suatu tanda tanya (?) : RUN ?3 9 Contoh yang lain : 10 PRINT AMBIL SEBUAH BILANGAN 20 INPUT X 30 PRINT KUADRATNYA ADALAH; X * X 40 END OUTPUTNYA : AMBIL SEBUAH BILANGAN ?9 KUADRATNYA ADALAH 81
30 PRINT JUMLAHNYA ADALAH; A + B 40 END OUTPUTNYA : AMBIL 2 BILANGAN ? 43, 25 JUMLAHNYA ADALAH 68
LATIHAN SOAL : 1. Seorang pekerja menerima upah 500 rupiah perjam apabila ia bekerja 40 jam atau kurang. Apabila ia bekerja lebih dari 40 jam, kelebihan jam akan dihitung sebagai lembur dan dibayar 700 rupiah perjam. Jadi misalnya ia bekerja 35 jam akan memperoleh 35 * 500 = 17500 rupiah dan apabila ia bekerja 47 jam ia akan memperoleh 40 * 500 + (47-40) * 700 = 24900 rupiah Buatlah flowchart serta programmnya
2.
Bagaimana programmnya dan tentukan outputnya 3. Buat program yang hasilnya sbb : 5 kuadrat sama dengan 25 7 kuadrat sama dengan 49 dan seterusnya, sampai dengan
4. Tulis dalam basic dengan menggunakan notasi eksponential a. 48,000,000 b. .0000312 c. 776,000,000 d. .0321415
5. Harga sebuah pensil 75 rupiah dan harga sebuah buku 175 rupiah. Buatlah program untuk menghitung uang yang harus dibayar guna pembelian 4 buah pensil dan 7 buah buku dimana hasil yang diharapkan adalah tercetak 4 Pensil dan 7 Buku berharga 1525 rupiah 6. Buat program untuk mengubah jam dan menit menjadi menit saja dengan data 3, 25 sehingga output yang diharapkan adalah : 3 jam dan 25 menit sama dengan 205 menit 7. Buatlah flowchart dan program basic utk membuat barisan Fibonacci yang dimulai dengan suku pertama = 0 dan suku kedua = 1. Suku berikutnya diperoleh sebagai jumlah 2 suku terdahulu. Jadi barisan Fibonacci adalah : 0, 1, 1, 2, 3, 5, 8, PENGGUNAAN FLAG DAN COUNTER
Suatu program dapat mempunyai lebih dari satu baris data. Baris data dapat ditempatkan di sembarang tempat sebelum END. Sebelum program dijalankan, komputer menempatkan data sesuai dengan urutan ketika kita menuliskannya. Setiap kali statement READ dilaksanakan, maka komputer akan mengambil data untuk diberikan kepada variabel pada statement READ tersebut. Contoh : 10 DATA 3 20 READ X,Y
BERAPA OUTPUTNYA ? 3 9 7 4
Selama program berlangsung, ketika sampai pada statement READ dan ternyata data yang belum dipakai tidak cukup untuk diberikan kepada variabel maka komputer akan mencetak berita kesalahan OUT OF DATA serta berhenti tanpa menyelesaikan program tersebut Contoh : 10 DATA 3,4,5 20 READ X,Y 30 PRINT X;Y 40 READ A,B 50 PRINT A;B 60 END Note : OUT OF DATA merupakan suatu berita kesalahan OUTPUTNYA : 3 4
OUT OF DATA
Bagaimana hasil dari program berikut ini : 10 READ A,B 20 PRINT A;B 30 READ A,B 40 PRINT A;B 10 DATA 7,8,2 20 REM LOOP 30 READ X 40 PRINT X 10 READ A,B 20 PRINT A;B 30 READ A,B 40 PRINT A
50 GO TO 30 60 END
Cara mengatasi agar tidak terjadi out of data adalah dengan menggunakan panji/flag sebagai tanda berakhirnya data. Panji atau flag tsb bisa berupa bilangan atau kata Contoh ; 10 S = 0 20 DATA 3,5,7,999 30 READ X 40 IF X = 999 THEN 70 50 S = S + X 60 GO TO 30 70 PRINT S =:s 80 END
S = 15
Kita dapat membuat suatu variabel yang fungsinya khusus sebagai kantong penghitung, dan biasanya harga awal dari variabel tersebut adalah nol. Setiap kali pemutaran, harga variabel selalu bertambah (atau selalu berkurang). Variabel ini disebut variabel COUNTER. Selain itu
ada satu variabel lagi sebagai variabel penjumlah disebut AKUMULATOR dimana ciri dari akumulator adalah menggunakan 2 variabel sedangkan counter menggunakan 1 variabel 10 DATA 4,7,9,12,13,999 20 REM S = JUMLAH 30 REM C = BILANGAN KE 40 S= 0 : C = 0 50 REM LOOP 60 READ X 70 IF X = 999 THEN 110 80 S = S + X 90 C = C + 1 100 GO TO 60 110 PRINT S / C 120 END Apakah perbedaan dari kedua program di bawah ini ? 10 DATA 2,5,7,13,999 20 C = 0 30 REM LOOP 40 READ X 50 IF X=999 THEN 80 60 C = C + 1 70 GO TO 40 10 DATA 2,5,7,13,999 20 C = 0 30 REM LOOP 40 READ X 50 C = C + 1 60 IF X =999 THEN 80 70 GO TO 40 Note : S adalah Akumulator C adalah Counter Outputnya : ? 9 dari 45/5
80 PRINT C 90 END
80 PRINT C 90 END
RESTORE
Sampai saat ini, statement yang kita pelajari tidak mempunyai kemampuan untuk membaca ulang data yang telah dibaca. Sehingga apabila data telah dibaca seluruhnya serta kita masih menggunakan READ maka akan tampil berita kesalahan OUT OF DATA. Statement RESTORE dapat kita gunakan sehingga statement READ berikutnya memperoleh data mulai dari awal himpunan data. Jadi RESTORE mempunyai fungsi adalah membaca ulang dari awal dari data yang pernah dibaca bukan membaca sisa data 10 READ X,Y 20 PRINT X;Y 30 RESTORE 40 READ A,B,C 50 PRINT A;B;C 60 DATA 2,3,4,5 70 END OUTPUTNYA : 2 3 2 3 4
1.
Lengkapi program di bawah ini sehingga dapat menghitung banyaknya bilangan-bilangan yang lebih besar dari 3 10 N = 0 20 READ X 30 IF X = 999 THEN 80 40 IF X > . THEN . 50 60 N = .. 70 GO TO 20 80 PRINT N 90 DATA 1,4,2,3,5,6,5,9,2,999 100 END
2.
S=s+b
3.
Bila kita mengambil sembarang bilangan positif, apabila ia merupakan bilangan genap maka bagilah ia dengan 2 tetapi bila ganjil maka kalikan dengan 3 kemudian tambah 1. Prosedur ini berulang-ulang dikerjakan, maka cepat atau lambat pasti diperoleh hasil bilangan adalah 1. Barisan ini disebut dengan barisan Ulam, Jadi buatlah buatlah program dan flowchartnya untuk mencetak barisan ulam ini sampai bilangan 1 tercapai, (ambil angka pertama adalah 22) Buatlah program untuk membentuk 10 suku barisan 1, 8, 27. 64, 125, ..
4.
Badan Loop
Contoh : 10 FOR K=1 TO 9 STEP 2 20 PRINT K 30 NEXT K 40 END OUTPUTNYA : ? Contoh yang lain : 10 N = 3 20 FOR K = N TO 3 * N 2 atau 3 to 7 30 PRINT K; 40 NEXT K 50 END OUTPUTNYA : ?3 4 5 6 7 10 FOR M=2 TO 4 STEP .5 20 PRINT M 30 NEXT M 40 END 10 FOR I =4 TO 1 STEP -1 20 PRINT I 30 NEXT I 40 END
VARIABEL STRING
Sejauh ini kita hanya memberikan harga berupa bilangan kepada suatu variabel dan disebut Variabel Numerik. Selain dari variabel ini, kita dapat pula memberikan harga kepada suatu variabel disebut Variabel String. Ciri dari variabel ini adalah harus diakhiri dengan symbol dolar ($), misalnya A$, K$ dan sebagainya. Contoh : 10 A$ = SALEMBA 20 B$ = JAKARTA 30 PRINT A$ 40 PRINT B$ 50 END OUTPUTNYA : SALEMBA JAKARTA
Contoh : 10 PRINT NAMA DOSEN, BAHASA PEMROGRAMAN 20 READ A$, B$ 30 IF A$ = XXX THEN 70 40 PRINT A$, B$ 50 GO TO 20 60 DATAHADI,COBOL,ANI,BASIC,DANI.FORTRAN,XXX,ZZZ 70 END OUTPUTNYA : NAMA DOSEN HADI ANI DANI BAHASA PEMROGRAMAN COBOL BASIC FORTRAN
STATEMENT INPUT
CONTOH : 10 PRINT SIAPA NAMAMU? 20 INPUT N$ 30 PRINT NAMAMU; N$ 40 PRINT SELAMAT PAGI 50 END Ketik RUN dan ketika di enter SIAPA NAMAMU? ? ( kita ketik nama , misal ANI) ANI
CONTOH : 10 X$ = JAKARTA 20 READ N$ 30 IF N$ = BENDERA THEN 90 40 IF N$ > X$ THEN 60 50 GO TO 20 60 PRINT N$ 70 GO TO 20 80 DATA SOLO, MALANG, BOGOR, MEDAN, DENPASAR, ANYER, CIREBON,
VARIABEL BERSUBSKRIP
Nama variabel bersubskrip terdiri dari huruf yang dilengkapi dibelakangnya dengan subskrip berupa bilangan bulat positif (di dalam tanda kurung ), misalnya A(1), A(2) dan lain-lain. Misal : 10 X(1) = 3 20 X(2) = 8 30 X(3) = 4 40 X(4) = 9 50 PRINT X(3);X(2) 60 END CONTOH PROGRAM YANG LAIN : 10 DATA 17, 15, 3, 10, 6 20 FOR K = 1 TO 5 30 READ A(K) 40 PRINT A(K) 50 NEXT K 60 END Berapa hasil dari program di bawah ini : 10 DATA 4, 7, 9 20 FOR K = 1 TO 3 30 READ P(K) 40 NEXT K 10 DATA 7, 5, 8, 3 20 B = 0 30 FOR K = 1 TO 4 40 READ X(K) OUTPUTNYA : 17 15 3 10 6 OUTPUTNYA : 4 8
Menggunakan Variabel Bersubskrip Untuk Menyimpan Data yg digunakan dua kali 10 DATA 90, 70, 77, 85, 78 20 REM S ADALAH JUMLAH NILAI 25 S = 0 30 FOR K = 1 TO 5 40 READ N(K) 45 S = S + N(K) 50 NEXT K 60 R = S / 5 70 PRINT RATA-RATA KELAS; R 80 A = 0 90 FOR L = 1 TO 5 100 IF N(L) < R THEN 120 110 A = A + 1 120 NEXT L 130 PRINT A; ORANG DI ATAS RATA-RATA 140 END OUTPUTNYA ?
Menggunakan Variabel Bersubskrip sebagai Counter 10 DATA 1, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 999 20 C(1) = 0 30 C(2) = 0 40 READ X 50 IF X = 999 THEN 80 60 C(X) = C(X) + 1 70 GO TO 40 80 PRINT CALON, JUMLAH SUARA 90 PRINT 1 , C(1) 100 PRINT 2 , C(2) 110 END
OUTPUTNYA :
CALON 1 2
JUMLAH SUARA 6 7
Variabel String Bersubskrip 10 DATA KEN AROK, KEN DEDES, TOHJAYA, ANUSAPATI, AMETUNG 20 FOR K = 1 TO 5 30 READ R$(K) 40 NEXT K 50 PRINT R$(2) 60 PRINT R$(4) 70 END OUTPUTNYA ? KEN DEDES ANUSAPATI
GO SUB
Statement go sub akan mengalihkan pelaksanaan program ke suatu kumpulan baris yang berurutan disebut dengan subroutine. Baris terakhiri dari subroutine harus merupakan statement Return. Apabila komputer tiba pada statement return, maka akan kembali ke baris yang berada tepat di bawah statement go sub tersebut. Contoh : 10 N = 3 20 GO SUB 80 30 PRINT ASKI
Bagaimanakah hasil dari program di bawah ini : 10 N = 12 20 GO SUB 200 30 PRINT MERDEKA 40 N = N + 3
50 GO SUB 300 60 GO SUB 200 70 IF N > 20 THEN 400 80 GO TO 40 200 X = N 210 PRINT X * X 220 RETURN 300 X = N 310 PRINT X * X 320 RETURN 400 END OUTPUTNYA ?
ON K GO TO
Statement seperti IF X = 3 THEN 70, menghadapkan pada dua cabang ( yaitu bercabang ke baris 70 atau ke baris tepat di bawah statement IF tersebut ). Statement ON K GO TO 40, 50, 90, 120 misalnya menghadapkan komputer pada empat cabang yaitu baris 40, 50, 90 atau 120. Apabila harga K = 1, maka akan bercabang ke baris 40 K = 2, maka akan bercabang ke baris 50 K = 3, maka akan bercabang ke baris 90 K = 4, maka akan bercabang ke baris 120 Contoh :
10 PRINT ANDA JUARA KEBERAPA 20 INPUT Z 30 IF Z < 5 THEN 50 40 Z = 4 50 ON Z GO TO 60, 80, 100,120 60 M$ = EMAS 70 GO TO 140 80 M$ = PERAK 90 GO TO 140 100 M$ = PERUNGGU 110 GO TO 140 120 PRINT ANDA TIDAK MEDAPAT APA-APA 130 GO TO 150 140 PRINT MENDAPAT MEDALI; M$ 150 END
NOTE : 1. Bila pada ON K GO TO, harga K bukan bilangan bulat maka komputer akan melaksanakan INT (K). Jadi misalnya K = 2.8, maka pada ON K GO TO 200, 400, 500, 700 akan dilaksanakan baris 400 karena INT (2.8) = 2 2. Bila harga K lebih kecil atau lebih besar dari yang diperolehkan, misalnya K = 5 pada ON K GO TO 25, 45, 75 maka akan muncul berita kesalahan
ON K GO SUB
Statement ON K GO SUB 700, 800, 900 akan menghadapkan komputer pada : Jika K = 1, akan bercabang ke subroutine yang bermula pada baris 700 K = 2, akan bercabang ke subroutine yang bermula pada baris 800 K = 3, akan bercabang ke subroutine yang bermula pada baris 900
Field Literal
10 : AKAR KUADRAT DARI ## ADALAH #.## 20 FOR K = 1 TO 3 30 R = SQR (K) 40 PRINT USING 10, K, R 50 NEXT K 60 END OUTPUTNYA : AKAR KUADRAT DARI 01 ADALAH 1.00 AKAR KUADRAT DARI 02 ADALAH 1.41 AKAR KUADRAT DARI 03 ADALAH 1.73
Field String
10 DATA ARNOLD, 4217, PETER, 9214, JANE, 1312 20 NAMA PEGAWAI 30 ##### 40 PRINT USING 20 NO.PEGAWAI ####
50 FOR K = 1 TO 3 60 READ N$(K), N(K) 70 PRINT USING 30, N$(K), N(K) 80 NEXT K 90 END OUTPUTNYA : NAMA PEGAWAI ARNOL PETER JANE NO.PEGAWAI 4217 9214 1312
Contoh : 10 N = 7 20 PRINT TAB(3); SALEMBA; TAB(N*3); RAYA 30 END OUTPUTNYA : SALEMBA RAYA
Kolom 3
kolom 21
Contoh yang lain : 10 FOR K = 1 TO 7 20 IF K = 4 THEN 50 30 PRINT TAB(K); + ; TAB(8-K); + 40 GO TO 60 50 PRINT TAB(4); + 60 NEXT K 70 END