Subprogram QBasic Nuraini Purwandari 1 Subprogram Program kecil
Subprogram QBasic Nuraini Purwandari 1
Subprogram • Program kecil yang melakukan tugas tertentu dan merupakan bagian dari program secara keseluruhan • Keuntungan : – Mudah dikodekan – Mudah dipahami – Penghematan kode program 2
Bentuk Subprogram • Subrutin • Prosedur subrutin (SUB Procedure) • Prosedur fungsi (FUNCTION Procedure) 3
Subrutin Nama. Label : Pernyataan 1 Pernyataan 2 … RETURN • Namalabel dapat berupa nomor baris • Untuk menjalankan subrutin, digunakan GOSUB Nama. Label 4
Program Utama / Pemanggil Subrutin … GOSUB Nama. Label Pernyataan. X … 1 3 Nama. Label : Pernyataan 1 Pernyataan 2 2 … RETURN 5
CLS GOSUB Garis FOR i = 1 TO 3 Print i NEXT i GOSUB Garis END Garis : PRINT STRING(80, “=”) RETURN Output : ================ 1 2 3 ================ 6
Prosedur Fungsi (FUNCTION) • Subprogram yang apabila dipanggil dalam suatu pernyataan akan memberikan nilai balik (return value) Argumen/ Parameter Nilai Balik Fungsi 7
Definisi Fungsi (FUNCTION) FUNCTION Nama. Fungsi[(Daftar. Parameter)] [Blok. Pernyataan] Nama. Fungsi = Ungkapan END FUNCTION • Nama. Fungsi juga menentukan tipe nilai baliknya • Daftar. Parameter bersifat optional • Nilai balik dari fungsi sesuai dengan nilai Ungkapan 8
CLS Hasil = Pangkat(2, 3) PRINT “ 2 pangkat 3 = “; Hasil PRINT “ 2 pangkat 4 = “; Pangkat(2, 4) END FUNCTION Pangkat(a, b) Pangkat = a ^ b END FUNCTION Output : 2 pangkat 3 = 8 2 pangkat 4 = 16 9
Parameter Formal & Aktual FUNCTION Pangkat(a, b) Pangkat = a ^ b END FUNCTION Parameter Formal Parameter Aktual Pangkat(2, 3) Pangkat(x, y) 10
CLS INPUT a, b PRINT Maks(a, b) PRINT Maks(b, a) END FUNCTION Maks(x, y) IF x > y then Maks = x Else Maks = y END IF END FUNCTION 11
Prosedur Subrutin (SUB) • Bisa memiliki parameter seperti pada fungsi (function) • Tidak memerlukan perintah RETURN • Setiap definisi prosedur subrutin akan diletakkan terpisah terhadap program utama pada saat diedit 12
Definisi Prosedur Subrutin SUB Nama. Prosedur[(Daftar. Parameter)] Blok. Pernyataan END SUB • Pernyataan untuk memanggil prosedur subrutin menggunakan CALL Nama. Prosedur[(Daftar. Argumen)] 13
Program Utama / Pemanggil Subrutin Prosedur … CALL Pros 1(2) Pernyataan. X … 1 3 SUB Pros 1(x) Pernyataan 1 Pernyataan 2 2 … END SUB 14
Variabel Lokal, Statis dan Global • Lokal, hanya berlaku dalam suatu prosedur • Statis, hanya berlaku dalam suatu prosedur tetapi nilai yang tersimpan di dalamnya tetap dipertahankan seusai prosedur tersebut dipanggil • Global, berlaku baik di program utama maupun di dalam suatu prosedur 15
CLS N$ = “Qbasic” PRINT Coba$(N$) PRINT N$ END CLS PRINT Statis, N END FUNCTION Coba$(x$) N$ = X$ + “ Lokal” Coba$ = N$ END FUNCTION Statis STATIC N N = N + 1 Statis = N END FUNCTION Output : QBasic Lokal Qbasic Output : 1 2 3 0 0 0 16
CLS N$ = “Qbasic” PRINT Coba$(N$) PRINT N$ END FUNCTION Coba$(x$) SHARED N$ N$ = X$ + “ Lokal” Coba$ = N$ END FUNCTION Output : QBasic Lokal 17
Melewatkan Parameter • By Reference (secara referensi), – parameter dapat diubah dari dalam prosedur • By Value (secara nilai), – parameter tidak dapat diubah dari dalam prosedur 18
By Reference CLS Nilai% = 256 PRINT “Nilai = “; Nilai% PRINT “Nilai + 1 = “; Plus. Satu(Nilai%) PRINT “Nilai = “; Nilai% FUNCTION Plus. Satu(X%) X% = X% + 1 Plus. Satu = X% END FUNCTION Nilai = 256 Nilai + 1 = 257 Nilai berubah 19
By Value CLS Nilai% = 256 PRINT “Nilai = “; Nilai% PRINT “Nilai + 1 = “; Plus. Satu((Nilai%)) PRINT “Nilai = “; Nilai% FUNCTION Plus. Satu(X%) X% = X% + 1 Plus. Satu = X% END FUNCTION Nilai = 256 Nilai + 1 = 257 Nilai = 256 Nilai tidak berubah 20
EXIT SUB dan EXIT FUNCTION • EXIT SUB, keluar dari prosedur SUB • EXIT FUNCTION, keluar dari prosedur FUNCTION 21
Rekursi • Proses memanggil diri sendiri • Diterapkan pada prosedur (SUB maupun FUNCTION) 22
CLS INPUT “Masukkan bilangan N = “, N% PRINT N%; ”! = “; Faktorial(N%) END FUNCTION Faktorial(X%) IF X% = 0 THEN Faktorial = 1 ELSE Faktorial = X% * Faktorial(X% - 1) END IF END FUNCTION Masukkan bilangan N = 3 3! = 6 23
- Slides: 23