Anda di halaman 1dari 20

Modul 2

Subprogram
Praktikum Algoritma dan Struktur Data
Jurusan Matematika Fakultas Sains dan Teknologi
TA. 2020/2021
UIN Sunan Gunung Djati Instruktur/ Asisten:
Bandung

A. Tujuan
1. Mahasiswa memahami konsep subprogram, berupa prosedur dan fungsi.
2. Mahasiswa dapat memisahkan bagian-bagian subprogram.
3. Mahasiswa dapat membuat subprogram dengan bahasa Java terhadap contoh-contoh
program sederhana

B. Pokok Bahasan
Subprogram: Prosedur dan Fungsi, dan fungsi rekursif.

C. Tugas Pendahuluan
1. Masih ingatkah Anda pengertian algoritma dan program? Jelaskan.
2. Apakah kaitan algoritma dengan program? Jelaskan.
3. Pernahkan Anda membuat program yang sangat panjang?
4. Perhatikan lirik lagu Indonesia Raya berikut:
Indonesia Raya Chorus:
Indonesia raya
Indonesia tanah airku Merdeka merdeka
Tanah tumpah darahku Tanahku negriku yang kucinta
Di sanalah aku berdiri
Jadi pandu ibuku Indonesia raya
Merdeka merdeka
Indonesia kebangsaanku Hiduplah Indonesia raya
Bangsa dan tanah airku
Marilah kita berseru
Indonesia bersatu

Hiduplah tanahku
Hiduplah negriku
Bangsaku rakyatku semuanya
Bangunlah jiwanya
Bangunlah badannya
Untuk Indonesia raya

Chorus
Chorus

Pada lagu tersebut, Anda tentu akan menyanyikannya secara lengkap dengan Chorus
yang dinyanyikan 2x di akhir.

1|M o d u l 2 : S u b p r o g r a m
5. Saat membuat program besar dan terdapat beberapa baris program yang ditulis
berulang kali, namun diletakkan di beberapa tempat berbeda. Apakah struktur
algoritma loop masih akan dipilih? Jelaskan.
6. Apakah Anda masih ingat istilah subprogram? Gali kembali informasi tentang
subprogram kemudian jelaskan:
a. Apakah yang dimaksud dengan subprogram?
b. Bagaimana menuliskan subprogram?
c. Bagaimana memanggil subprogram agar dapat dipakai di program lain?
d. Berikan contoh subprogram sederhana

D. Materi

Subprogram
Subprogram adalah bagian-bagian program yang lebih kecil, namun berdiri sendiri,
dan dapat dipanggil dari program lain. Subprogram digunakan untuk menyederhanakan
baris perintah, terutama untuk program yang dipanggil berulang kali, serta memberikan
kemudahan untuk mengelola program, baik menulis, mengevaluasi dan memodifikasi
program.
Subprogram ada dua macam, yaitu prosedur (procedure) dan fungsi (function).
Prosedur adalah subprogram yang mengerjakan aktifitas spesifik dan menghasilkan
sesuatu. Sedangkan fungsi (function) adalah subprogram yang merupakan transformasi
dari beberapa nilai menjadi satu nilai yang dikembalikan ke program pemanggil.
Sehingga, perbedaan dari prosedur dan fungsi hanya pada ada atau tidaknya nilai balik.

Gambar 1. Ilustrasi Subprogram

Dalam subprogram, terkadang diperlukan parameter. Parameter merupakan


variabel yang hanya dikenali dalam subprogram. Parameter berfungsi untuk
memudahkan pertukaran data antara subprogram dengan program utama yang
memanggilnya. Penulisan parameter yang lebih dari satu, dipisahkan dengan tanda koma.

2|M o d u l 2 : S u b p r o g r a m
Dalam pemrograman, terdapat dua jenis parameter, yaitu parameter formal dan
parameter aktual.
1. Parameter formal merupakan variabel yang terdefinisi dalam subprogram dan
berguna untuk menerima nilai dari parameter aktual.
2. Parameter aktual adalah variabel yang menjadi parameter dalam pemanggilan
subprogram dan berguna untuk mengirim nilai ke parameter formal.
Parameter ini dapat dipanggil menggunakan nilai (by value) dan by refference.

Prosedur (Procedure)
Prosedur adalah subprogram yang mengerjakan aktifitas spesifik dan
menghasilkan sesuatu. Prosedur tidak mengembalikkan nilai ke program pemanggil,
sehingga hanya user yang dapat melihat hasilnya.
Prosedur ditulis sebagaimana algoritma program ditulis, yaitu
1. Judul, berisi kata “Procedure” yang diikuti nama prosedur serta keterangan tentang isi
prosedure, meliputi IS dan FS dari prosedure yang ditulis.
2. Kamus lokal, berisi variable-variabel, kontanta atau subprogram lain yang akan
digunakan pada prosedur secara “lokal”.
3. Deskripsi, berisi perintah yang dilakukan dalam prosedur.

Prosedure dipanggil dengan menyebutkan nama dan parameternya (jika ada).

Prosedure nama_prosedur (daftar_parameter)


{penjelasan tentang isi prosedur, IS dan FS dari prosedur}

Kamus Lokal:
{nama-nama variable yang digunakan dalam subprogram}

Deskripsi:
{berisi baris perintah yang dilakukan prosedur}

Contoh 1:
Procedure Voltage (Input A, R: integer; Output V: integer)
{IS: diberikan nilai hambatan R dan arus A yang telah
terdefinisi}
{FS: memproses R dan A shg menghasilkan nilai tegangan V=R*A}

Kamus Lokal:
-

Deskripsi:
V → R*A

Program Voltage_Utama
{program yang membaca nilai hambatan R dan arus A, kemudian
menghitung voltase-nya}

Kamus:
R, A, V: integer
Procedure Voltage(Input A, R: integer; Output V: integer)

3|M o d u l 2 : S u b p r o g r a m
Deskripsi:
input(A, R)
Voltage(A, R, V) {memanggil Procedure Voltage}
output(V)

Contoh 2:
Procedure TUKAR (Input/output a, b: integer)
{IS: diberikan nilai a=A dan b=B}
{FS: nilai a=B dan b=A}

Kamus Lokal:
temp : integer

Deskripsi:
temp ← a
a ← b
b ← temp

Program Tukar_Utama
{program membaca dua nilai dalam variable x dan y, kemudian
menukarnya}

Kamus:
x, y: integer
Procedure TUKAR(Input/output a,b: integer)

Deskripsi:
input(x,y)
TUKAR(x,y) {memanggil Procedure TUKAR}
output(x,y)

Catatan: variable a, b pada prosedur TUKAR adalah parameter formal, sedangkan


variable x, y pada Program Tukar_Utama adalah parameter aktual.

Fungsi (function)
Secara umum konsep fungsi dalam pemrograman sama dengan fungsi dalam
matematika. Dalam matematika, fungsi sering didefinisikan sebagai aturan yang
menghubungkan suatu himpunan dengan himpunan lainnya. Fungsi memiliki domain dan
range. Selain itu, fungsi juga dinotasikan dengan nama, parameter, formula dan nilai
fungsi.

Gambar 1. Contoh fungsi dalam matematika.

4|M o d u l 2 : S u b p r o g r a m
Dalam tingkat yang lebih tinggi, fungsi dapat digunakan untuk menyederhanakan
penulisan suatu persamaan yang kompleks. Misalkan g ( x)  2 f ( x)   f ( x)2  4 dengan
f(x) seperti yang didefinisikan pada Gambar 5.1. Maka dengan mensubstitusi f(x) pada
g(x), diperoleh g ( x)  9 x 4  36 x 3  18x 2  12 x  4 . Selain itu, kita dapat menggunakan
f(x) dan g(x) jika diperlukan pada persamaan lain.
Dalam pemrograman, fungsi (function) adalah subprogram yang merupakan
transformasi dari beberapa nilai menjadi satu nilai yang dikembalikan ke program
pemanggil. Jadi, fungsi akan mengembalikan nilai ke program pemanggil, sehingga
program utama dapat menggunakannya jika diperlukan pada perintah berikutnya..
Seperti prosedur, fungsi ditulis sebagaimana algoritma program ditulis, yaitu
1. Judul, berisi kata “Function” yang diikuti nama fungsi, parameter serta tipe nilai balik
fungsi.
2. Kamus lokal, berisi variable-variabel, konstanta atau subprogram lain yang akan
digunakan pada fungsi secara “lokal”.
3. Deskripsi, berisi perintah yang dilakukan dalam fungsi.

Fungsi dipanggil dengan menyebutkan nama dan parameternya (jika ada), serta
variable untuk nilai balik, jika diperlukan.

Function nama_fungsi (daftar_parameter_input)→ tipe_hasil


{spesifikasi fungsi}

Kamus Lokal:
{nama-nama variable yang digunakan dalam fungsi}

Deskripsi:
{berisi baris perintah yang dilakukan fungsi}
Perintah_1
Perintah_2
… …
Perintah_n
→ nilai_balik

Contoh:
Function fungsi_kuadrat (x: integer) → integer
{menghitung nilai fungsi kuadrat berbentuk x^2+2x-3 dari suatu
bilangan x}

Kamus Lokal:
-

Deskripsi:
→ x*x + 2*x – 3 {nilai balik}

Program hitung_fungsi
{program akan menampilkan hasil perkalian suatu bilangan k dengan
fungsi x^2+2x-3 untuk suatu k dan x yang diinputkan user dari
keyboard}

5|M o d u l 2 : S u b p r o g r a m
Kamus:
k, a, hasil : integer
fungsi_kuadrat(x:integer) → integer

Deskripsi:
input(a, k)
hasil ← k* fungsi_kuadrat(a) {memanggil fungsi_kuadrat}
output(hasil)

Catatan: variable x pada fungsi_kuadrat adalah parameter formal, sedangkan variable


a pada Program hitung_fungsi adalah parameter aktual.

Fungsi Rekursif
Fungsi rekursif adalah salah satu jenis fungsi yang memanggil dirinya sendiri.
Rekursif biasanya digunakan secara konseptual dengan menyederhanakan permasalahan
pemrograman, meski kadang penggunaan pengulangan konvensional akan bekerja lebih
cepat.
Contoh:
Function faktorial (x: int)  int
{diberikan x berupa bilangan bulat, menghasilkan nilai faktorial
dari x}

Kamus Lokal: -

Algoritma:
if (x=1 or x=0)
1
else
 (x*faktorial(x-1))

Program Rekursif
{diberikan x berupa bilangan bulat, menghasilkan nilai faktorial
dari x}

Kamus:
a : int
Function factorial(x: int)  int

Algoritma:
input(a)
output (faktorial(a))

Subprogram dalam Java


Penulisan subprogram bahasa pemrograman umumnya dinyatakan oleh syntax yang
sama untuk prosedur maupun fungsi. Sehingga, kita dapat menentukan apakah
subprogram yang dibuat adalah prosedur atau fungsi dengan melihat ada/tidak nilai balik
yang dikirim ke program pemanggil. Umumnya, pemanggilan subprogram dilakukan
dengan menuliskan nama_subprogram dan parameter (jika ada).

Dalam Java yang memiliki konsep pemrograman berorientasi objek, subprogram


disebut method. Dalam Java, subprogram dan program utama dapat disimpan dalam satu
class yang sama maupun berbeda. Pemanggilan method dalam Java sangat tergantung
6|M o d u l 2 : S u b p r o g r a m
pada modifier (hak akses) yang dimiliki class dan method, sehingga tidak semua method
dapat diakses oleh sembarang class.
Modifier yang biasa digunakan dalam Java adalah:
1. Default : class dan method dapat diakses di class lain dengan paket yang sama.
2. Public: class dan metho dapat diakses oleh siapapun dari method dan class manapun.
3. Protected: class dan method hanya dapat diakses oleh method-method pada class
tersebut dan sub-sub class-nya saja.
4. Private: method-nya hanya dapat diakses di class itu saja.
5. Final: modifier untuk class, variabel dan method yang tidak dapat diubah dan ditimpa.

Selain modifier, method dalam Java juga memiliki beberapa kata kunci lain untuk
dapat diakses, yaitu:
1. Static, artinya method tersebut adalah milik class, bukan contoh dari class. Sehingga,
pemanggilan method bertipe static pada class yang sama bisa langsung dilakukan
dengan menuliskan nama method dan parameternya (jika ada), tetapi pemanggilan
pada class lain memerlukan pendefinisian objek baru pada class terlebih dahulu. Jika
kata kunci “static” tidak disertakan, maka kita perlu mendefinisikan objek baru untuk
class tersebut. Pendefinisian objek pada class baru dilakukan dengan:

nama_class nama_objek = new nama_class(parameter_jika_ada)

2. Void, artinya method tidak mengembalikan nilai. Void serupa dengan pendefinisian
prosedur. Jika method akan mengembalikan nilai, maka kata void diganti dengan tipe
data nilai balikan / return di akhir method.

Sehingga, notasi untuk menuliskan subprogram dalam java adalah sebagai berikut.
modifier kata_kunci nama_method (parameter_formal_jika_ada){
Daftar_variable_lokal
Perintah_1
Perintah_2
Perintah_3
….
Perintah_n
return nilai_balik //jika_ada
}

Tabel 1. Contoh penggunaan subprogram/method dalam Java.


1 import java.util.Scanner;
2 class BelajarSubprogram{ // awal class
3 public static void tampil (String nama){ //awal method
tampil
4 /* method bernama tampil yang meminta parameter nama,
5 yang dapat diakses dari kelas manapun yang tidak memiliki
nilai balik (void)
6 */
7 System.out.println("Selamat datang, " +nama);
8 } //akhir method tampil
9 //------------------------------------

7|M o d u l 2 : S u b p r o g r a m
10 public static double luaspersegi (double sisi){
11 /* method bernama luaspersegi, yang dapat diakses
12 dari kelas manapun yang memiliki nilai balik bernama luas
yang bertipe double
13 */
14 double luas = sisi*sisi;
15 return luas;
16 }

17 //--------------------------------------------
18 private double luassegitiga(double alas, double tinggi){
19 double luas = (alas*tinggi)/2;
20 return luas;
21 }
22 //------------------------------------------
23 public static void main(String arg[]){
24 Scanner scn = new Scanner(System.in);
25 System.out.print("Masukkan nama Anda : " );
26 String n = scn.nextLine();
27 tampil(n);
28 System.out.print("Masukkan panjang sisi persegi
Anda : ");
29 double s = scn.nextDouble();
30 double l = luaspersegi(s);
31 System.out.println("Luas persegi Anda adalah " +l);
32 System.out.println(" ");
33 System.out.println("Selanjutnya, akan menghitung
segitiga");
34 System.out.print("Masukkan alas : ");
35 double a = scn.nextDouble();
36 System.out.print("Masukkan nilai tinggi : ");
37 double t = scn.nextDouble();
38 BelajarSubprogram bs = new BelajarSubprogram();
39 System.out.println("Luas segitiga Anda adalah " +
bs.luassegitiga(a,t));
40 }
41 }

Jika method memiliki kata kunci void maka method tersebut memiliki struktur
subprogram prosedur. Sedangkan method yang memiliki kata kunci berupa tipe data,
maka method tersebut memiliki struktur subprogram fungsi. Hal tersebut juga dapat
ditandai dengan adanya perintah return (nilai balik).

Ingat!!!

8|M o d u l 2 : S u b p r o g r a m
E. Praktikum

Perhatian!!
Untuk menuliskan kode/syntax Java Script, pastikan Anda telah menginstal JDK di
laptop/PC Anda. Bagi pemilik ponsel Android, dapat menggunakan Jvdroid atau compiler
java lainnya.

Sub-sesi 1: Konsep Subprogram


[Catatan: Pengenalan konsep subprogram dengan pendekatan subprogram dalam Python]
1. Misalkan didefinisikan satu bait lirik sebagai bagian dari sebuah lagu, seperti pada kolom
berikut.
Definisikan: Chorus1
Trek-dung... trek-dung...
Trek-dung tra-la-la...
a. Apakah nama subprogram di atas? ______________
b. Adakah parameter yang digunakan pada subprogram di atas? (Ada/ Tidak Ada)
c. Jika subprogram tersebut di panggil seperti pada tabel berikut.
Tuliskan hasil pemanggilan subprogram
disini.
Chorus1
Burung kakaktua
Hinggap di jendela
Nenek sudah tua
Giginya tinggal dua...

Ulangi 2x
Chorus1

9|M o d u l 2 : S u b p r o g r a m
2. Perhatikan lirik lagu berikut.
Aku punya anjing kecil
Kuberi nama Helly
Ia senang bermain-main
Sambil berlari-lari
Helly! Guk! Guk! Guk!
Kemari! Guk! Guk! Guk!
Ayo lari-lari...
Helly! Guk! Guk! Guk!
Kemari! Guk! Guk! Guk!
Ayo lari-lari...
Dari lagu di atas, dapat dibuat suatu subprogram.
Definisikan subprogram disini. Tuliskan pemanggilan subprogram
disini.

a. Apa nama subprogram yang Anda buat? ______________________


b. Apakah Anda menggunakan parameter? (Ya/ Tidak)
c. Apa yang dilakukan subprogram Anda? Jelaskan.

3. Didefinisikan subprogram seperti berikut.


Definisikan: Chorus2 (n)
Ulangi n kali
Chorus1
Tuliskan apa yang akan ditampilkan oleh potongan algoritma berikut ini.
Burung kakaktua Tuliskan hasil pemanggilan subprogram disini.
Chorus2 (2)
Hinggap di jendela
Nenek sudah tua
Giginya tinggal dua...
Chorus2 (3)

10 | M o d u l 2 : S u b p r o g r a m
4. Ingat kembali ketika Anda diminta menuliskan kode untuk mengantar Ikhwan ke masjid.
Diketahui blok kode berikut.

Tuliskan blok kode untuk membantu Ikhwan sampai ke mesjid sambil menjemput teman-
temannya, dimana satu blok jemput_teman hanya berlaku untuk menjemput seorang
teman saja. (Cat: Angka di bentuk rumah adalah jumlah teman yang harus dijemput.)
a.

b.

5. Definisikan suatu blok kode baru untuk “jemput”, yang meminta parameter
jumlah_teman, seperti berikut.
Definisikan: jemput (jml_teman)
Ulangi sampai jml_teman == 0
jemput_teman
jml_teman = jml_teman - 1
a. Apakah nama subprogram yang didefinisikan? _____________
b. Apakah subprogram tersebut memiliki parameter? (Ya/ Tidak)*
c. Jika Ya, apakah nama parameternya? _______________
d. Termasuk jenis parameter aktual atau parameter formal? _________________
e. Termasuk subprogram jenis ke-….. (prosedur/ fungsi)*
*Lingkari jawaban yang tepat
11 | M o d u l 2 : S u b p r o g r a m
f. Tuliskan dalam pseudocode:
Procedure ________ (Input _________; Output ___________)

{IS: __________________________________________________}

{FS: __________________________________________________}

Kamus Lokal:

Deskripsi:

g. Misalkan kita akan menjemput 4 orang teman, bagaimana memanggil subprogram di


atas?

6. Berdasarkan soal no. 5, kita memiliki blok kode sebagai berikut.

Dengan subprogram jemput dan blok kode di atas, tuliskan kembali blok kode untuk
mengerjakan kembali soal no. 4.
a.

12 | M o d u l 2 : S u b p r o g r a m
b.

7. Perhatikan subprogram sebagai berikut.


Definisikan: jemput (jml_teman)
terjemput = 0
Ulangi sampai jml_teman == 0
jemput_teman
terjemput = terjemput + 1
jml_teman = jml_teman - 1
return terjemput
a. Apakah nama subprogram yang didefinisikan? _____________
b. Apakah subprogram tersebut memiliki parameter? (Ya/ Tidak)*
c. Jika Ya, apakah nama parameternya? _______________
d. Termasuk jenis parameter aktual atau parameter formal? _________________
e. Termasuk subprogram jenis ke-….. (prosedur/ fungsi)*
*Lingkari jawaban yang tepat
f. Adakah variable yang hanya terdefinisi di dalam subprogram? (Ada/ Tidak)
Jika ada, sebutkan nama dan tipe datanya.

*) Jawaban poin ini merupakan isi untuk Kamus Lokal

g. Tuliskan dalam pseudocode:


Function ________ (__________________)→ _______________
{___________________________________________________________
_____________}

Kamus Lokal:

Deskripsi:

13 | M o d u l 2 : S u b p r o g r a m
h. Misalkan kita akan menjemput 4 orang teman, bagaimana memanggil subprogram di
atas? Dan bagaimana hasilnya akan disimpan?

8. Buatlah program pemanggil subprogram soal pada no.7, yang akan menjumlahkan teman
yang berhasil dijemput untuk rute ikhwan berikut.
a.

b.

Sub-sesi 2: Subprogram dalam Java

Catatan:
Sebagai langkah awal memahami subprogram dalam java::
 Subprogram dalam java dikenal sebagai method. Jadi, penyebutan method artinya
subprogram, baik procedure maupun fungsi.
 Modifier class dan method yang digunakan adalah private atau public.
 Gunakan kata kunci static di setiap method.

9. Buatlah java Script bernama BelajarSubprogram.


10. Perhatikan:
Procedure garis (input/output: -)
{IS: -, FS: menampilkan garis yang dibentuk oleh 43 simbol “=”
dilayar}

14 | M o d u l 2 : S u b p r o g r a m
Kamus Lokal:
-

Deskripsi:
for i ← 1 to 43
output(“=”)
newline()

a. Apakah nama subprogram di atas? _______________


b. Apakah subprogram di atas memiliki parameter? (Ada/ Tidak)
Jika ada, lengkapi tabel berikut:
Parameter ke- Nama parameter Tipe data parameter
1
2
3

c. Jika akan menuliskannya dalam bahasa Java, maka rumuskan hal berikut:
Komponen Status*) Kata Kunci*)
Hak akses method Umum/ pribadi class public / private
Nilai balik Ada/ tidak void / int / double / boolean/ char
*) lingkari salah satu.

d. Tuliskan dalam syntax java.


format:
hak_akses ada_tidak_nilai_balik nama_method (parameter_method){
perintah_program
}
Contoh:

private static void garis(){


for (int i=1; i<=43; i++)
System.out.print("=");
System.out.println(" ");
}

e. Tuliskan method pada bagian 10.d, pada java script BelajarSubprogram yang Anda
buat. Tambahkan pula method main() seperti di bawah ini, kemudian eksekusi.
public static void main (String[] arg){
garis();
System.out.println("Jurusan Matematika UIN Sunan Gunung
Djati ");
garis();
}

15 | M o d u l 2 : S u b p r o g r a m
11. Dengan langkah seperti pada no. 10, tuliskan kode untuk method berikut.

Procedure garis_baru (input: jml: integer, c: char; output:-)


{IS: -, FS: menampilkan garis dilayar sepanjang variable jml
dengan pola garis c}

Kamus Lokal:
-

Deskripsi:
for i ← 1 to jml
output(c)
newline()

a. Apakah nama subprogram di atas? _______________


b. Apakah subprogram di atas memiliki parameter? (Ada/ Tidak)
Jika ada, lengkapi tabel berikut:
Parameter ke- Nama parameter Tipe data parameter
1
2
3

c. Jika akan menuliskannya dalam bahasa Java, maka rumuskan hal berikut:
Komponen Status*) Kata Kunci*)
Hak akses method Umum/ pribadi class public / private
Nilai balik Ada/ tidak void / int / double / boolean/ char
*) lingkari salah satu.

d. Tuliskan dalam syntax java.

e. Tuliskan method pada bagian 11.d, pada java script BelajarSubprogram yang Anda
buat sebelumnya. Gantilah perintah pada method main() menjadi seperti di bawah ini,
kemudian eksekusi.
public static void main (String[] arg){
garis_baru(45, ‘+’);
System.out.println("Jurusan Matematika UIN Sunan Gunung
Djati ");
garis_baru(45, ‘-‘);
}

16 | M o d u l 2 : S u b p r o g r a m
12. Perhatikan syntax Java berikut.
// method fx
private static int fx(int x){
return x*x+2*x-3;
}

Berdasarkan pertama tabel di atas, tentukan:


a. Nama subprogram yang ditambahkan adalah ______________
b. Apakah subprogram di atas memiliki parameter formal? (Ada/ Tidak)
Jika ada, lengkapi tabel berikut:
Parameter ke- Nama parameter Tipe data parameter
1
2

c. Jika akan menuliskannya dalam bahasa Java, maka:


Komponen Status*) Artinya
Hak akses method public / private

Nilai balik Ada/ tidak

Tipe nilai balik void / int /


(jika ada) double /
boolean/ char
*) lingkari salah satu.

d. Berdasarkan kodenya, subprogram di atas berupa ____________ *(Prosedure/ fungsi)


e. Tuliskan pseudocode dari method di atas*).
Prosedure/Function ___________________
{ _________________

}
Kamus Lokal:

Deskripsi:

*) Sesuaikan dengan aturan penulisan algoritma.

13. Berdasarkan soal no. 9 hingga 12, tuliskan pseudocode program pemanggil bagi
subprogram-subprogram tersebut.
Program ___________________
{ _________________
}

17 | M o d u l 2 : S u b p r o g r a m
Kamus:

Deskripsi:

14. Lengkapi method main() bagi class BelajarSubprogram di atas menjadi:


a. Jenis garis pada subprogram garis_baru() ditentukan oleh user, dengan menginput jml
dan bentuk karakternya dari keyboard
b. Nilai fx dicari dari a yang diinput dari keyboard oleh user.
Sehingga dapat menghasilkan tampilan seperti berikut.

F. Kesimpulan
Tuliskan kesimpulan yang Anda peroleh dari hasil praktikum pada modul ini.

G. Laporan
Laporan yang disusun harus menjawab pertanyaan berikut. Jika perlu, sertakan gambar
dan tabel. Jawablah pertanyaan berikut ini.
1. Jelaskan tentang subprogram dan jenis-jenisnya, beserta ilustrasinya.
2. Berikan beberapa contoh subprogram, berupa fungsi dan procedure, jelaskan
komponennya dan buat algoritmanya.
3. Tuliskan algoritma lengkap untuk memanggil subprogram pada bagian 2 laporan.
4. Tuliskan kode Java untuk contoh-contoh yang Anda buat.
5. Jelaskan tentang fungsi rekursif, tuliskan method java untuk fungsi rekursif yag
dibahas pada bagian Materi modul ini.
6. Eksplorasilah penggunaan modifier dan efek pemilihan kata kunci pada kode Java.
18 | M o d u l 2 : S u b p r o g r a m
Ket:
 Gambar boleh mengambil dari internet dan sertakan referensi yang digunakan.
 Gambar dicetak dan ditempel pada buku tugas.
 Penulisan judul tabel diletakkan di atas tabel, sedangkan judul gambar diletakkan di
bawah gambar.

H. Latihan
1. Buatlah algoritma dan program untuk menampilkan deret fibbonaci sebanyak n suku
menggunakan rekursif dan tanpa rekursif.
2. Buatlah kelas bangun datar yang berisi method-method untuk menghitung luas
setiap bangun datar, seperti segitiga, persegi panjang dan lingkaran. Kemudian
method main() untuk memanggil method tersebut.
[Hint: sajikan dalam bentuk menu dan subprogram, sehingga user yang akan
memilih bangun datar apa yang akan dihitung luasnya].

I. Tugas
Perhatikan cerita berikut.
Program Bank Algoria Mandiri menerima inputan berupa nama nasabah dan saldo
awal. Kemudian muncul menu:
1. Tarik Tunai
2. Simpan Uang
Jika user memilih menu 1, program meminta inputan jumlah uang yang akan diambil
dan menampilkan sisa saldo. Aturan pengambilan uang sebagai berikut:
- Jika uang yang diambil > Rp 500.000,00 maka mendapat potongan saldo Rp
2.500,00.
- Jika uang yang diambil > Rp 1.000.000,00 maka mendapat potongan saldo Rp
5.000,00.
Pengambilan uang tidak boleh menyisakan saldo Rp 50.000,00.
Jika user memilih menu 2, program meminta inputan jumlah uang yang akan disimpan
dan menampilkan sisa saldo.

Buatlah program untuk menyelesaikan masalah pada cerita tersebut dengan menyajikan
operasi tarik tunai dan simpan uang sebagai method, dan keduanya dipanggil dalam
method main().
[Hint: uang disimpan dengan tipe data long]

J. Materi Selanjutnya
Pemrograman Berorientasi Objek (Object Oriented Programming - OOP)

K. Referensi
Arief Fatchul Huda. 2013. Modul: Praktikum Algoritma Komputer. Bandung: Jurusan
Matematika FST UIN Sunan Gunung Djati.
Arief F.H dan Qonita U.S. 2019. Modul: Praktikum Dasar-dasar Pemrograman. Bandung:
Matematika, FST, UIN Sunan Gunung Djati.
Bambang HAryanto. 2005. Esensi-esensi Bahasa Pemrograman Java. Bandung: Penerbit
INFORMATIKA.

19 | M o d u l 2 : S u b p r o g r a m
Burry Burd. 2005. Beginning Programming with Java for Dummies, 2 nd Edition. Wiley
Publishing.
Dian Nuraiman. 2014. Modul Praktikum Dasar-dasar Pemrograman. Bandung: FST, UIN
Sunan Gunung Djati.
Dian Nuraiman. 2012. Modul Praktikum Struktur Data dan Algoritma. Bandung: FST,
UIN Sunan Gunung Djati.
Siti Rofiqoh Fitriyani. 2016. Modul Praktikum Algoritma dan Struktur Data. Bandung:
FST, UIN Sunan Gunung Djati

20 | M o d u l 2 : S u b p r o g r a m

Anda mungkin juga menyukai