Anda di halaman 1dari 23

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
Namalabel dapat berupa nomor baris
Untuk menjalankan subrutin, digunakan
GOSUB
4
NamaLabel :
Pernyataan1
Pernyataan2

RETURN
GOSUB NamaLabel
5


GOSUB NamaLabel
PernyataanX


NamaLabel :
Pernyataan1
Pernyataan2

RETURN
Program Utama /
Pemanggil Subrutin
Subrutin
1
2
3
6
CLS
GOSUB Garis
FOR i = 1 TO 3
Print i
NEXT i
GOSUB Garis
END

Garis :
PRINT STRING(80, =)
RETURN

Output :
===============================
1
2
3
===============================
Prosedur Fungsi (FUNCTION)
Subprogram yang apabila dipanggil
dalam suatu pernyataan akan
memberikan nilai balik (return value)
7
Fungsi
Argumen/
Parameter
Nilai Balik
Definisi Fungsi (FUNCTION)
NamaFungsi juga menentukan tipe nilai
baliknya
DaftarParameter bersifat optional
Nilai balik dari fungsi sesuai dengan nilai
Ungkapan
8
FUNCTION NamaFungsi[(DaftarParameter)]
[BlokPernyataan]
NamaFungsi = Ungkapan
END FUNCTION
9
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
Parameter Formal & Aktual
10
FUNCTION Pangkat(a, b)
Pangkat = a ^ b
END FUNCTION
Parameter Formal
Pangkat(2, 3)
Pangkat(x, y)
Parameter Aktual
11
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

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
Pernyataan untuk memanggil prosedur
subrutin menggunakan CALL
13
SUB NamaProsedur[(DaftarParameter)]
BlokPernyataan
END SUB
CALL NamaProsedur[(DaftarArgumen)]
14


CALL Pros1(2)
PernyataanX


SUB Pros1(x)
Pernyataan1
Pernyataan2

END SUB
Program Utama /
Pemanggil Subrutin
Prosedur
1
2
3
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
16
CLS
N$ = Qbasic
PRINT Coba$(N$)
PRINT N$
END

FUNCTION Coba$(x$)
N$ = X$ + Lokal
Coba$ = N$
END FUNCTION


Output :
QBasic Lokal
Qbasic

CLS
PRINT Statis, N
PRINT Statis, N
PRINT Statis, N
END

FUNCTION Statis
STATIC N
N = N + 1
Statis = N
END FUNCTION

Output :
1 0
2 0
3 0
17
CLS
N$ = Qbasic
PRINT Coba$(N$)
PRINT N$
END

FUNCTION Coba$(x$)
SHARED N$
N$ = X$ + Lokal
Coba$ = N$
END FUNCTION

Output :
QBasic Lokal
QBasic Lokal
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
19
CLS
Nilai% = 256

PRINT Nilai = ; Nilai%
PRINT Nilai + 1 = ; PlusSatu(Nilai%)
PRINT Nilai = ; Nilai%

FUNCTION PlusSatu(X%)
X% = X% + 1
PlusSatu = X%
END FUNCTION

Nilai = 256
Nilai + 1 = 257
Nilai = 257
Nilai berubah
By Value
20
CLS
Nilai% = 256

PRINT Nilai = ; Nilai%
PRINT Nilai + 1 = ; PlusSatu((Nilai%))
PRINT Nilai = ; Nilai%

FUNCTION PlusSatu(X%)
X% = X% + 1
PlusSatu = X%
END FUNCTION

Nilai = 256
Nilai + 1 = 257
Nilai = 256
Nilai tidak berubah
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
23
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

Anda mungkin juga menyukai