Sub Program (Modul)
- Sebuah program yang kompleks umumnya akan didekomposisi menjadi beberapa sub program yang lebih sederhana.
- Sub program itu disebut juga modul terkadang bersifat independen terhadap program utama.
- Pemrograman yang menggunakan modul disebut dengan pemrograman modula
- Modul dapat digunakan oleh program lain yang membutuhkannya.
- Dalam bahasa pemrograman modul dapat dikategori menjadi prosedur dan fungsi.
Prosedur
- Prosedur adalah program yang mengerjakan aktivitas yang spesifik yang menghasilkan efek netto
- Efek netto yaitu perubahan kondisi awal menjadi kondisi akhir setelah prosedur dijalankan
- Prosedur bukan program yang berdiri sendiri , sehingga untuk menjalankan prosedur dengan dipanggil di program utama.
Contoh Program Tanpa Prosedur
Input(uts, uas, tugas)
nilaiAkhir_0.3uts+o.5uas+0.2tugas
Output(nilaiAkhir)
If nilaiAkhir>=85 then nilaiHuruf_’A’
Else if If nilaiAkhir>=70 then nilaiHuruf_’B’
Else if If nilaiAkhir>=50 then nilaiHuruf_’C’
Else if If nilaiAkhir>=30 then nilaiHuruf_’D’
Else nilaiHuruf_’E’
End If
Output(nilaiHuruf)
Prosedur Hitung Nilai
Procedure HITUNGNILAI
Input(uts, uas, tugas)
nilaiAkhir_0.3uts+o.5uas+0.2tugas
Output(nilaiAkhir)
Prosedur Nilai Huruf
Procedure NILAIHURUF
If nilaiAkhir>=80 then nilaiHuruf_’A’
Else if If nilaiAkhir>=70 then nilaiHuruf_’B’
Else if If nilaiAkhir>=50 then nilaiHuruf_’C’
Else if If nilaiAkhir>=30 then nilaiHuruf_’D’
Else nilaiHuruf_’E’
End If
Output(nilaiHuruf)
Penulisan Prosedur dalam Java
_ Prosedur dapat ditulis diatas program utama maupun
Dibawahnya
_ Dengan format
public static void namaProsedur(){
...
}
_ Misalnya
public static void HitungLuas(){
int panjang=10;
int lebar=5;
System.out.println(“Luas = “+panjang*luas);
}
CONTOH :
1. import java.util.Scanner;
2. public class ContohProsedur{
3. //deklarasi variabel global yang bisa dikenali disemua bagian program
4. public static double nilaiAkhir=0;
5. public static char nilaiHuruf=' ';
6. //prosedur Hitung Nilai
7. public static void HitungNilai(){
8. Scanner keyboard=new Scanner(System.in);
9. System.out.print("Nilai UTS : ");
10. double uts = keyboard.nextDouble();
11. System.out.print("Nilai UAS : ");
12. double uas = keyboard.nextDouble();
13. System.out.print("Nilai Tugas : ");
14. double tugas = keyboard.nextDouble();
15. nilaiAkhir=0.3*uts+0.5*uas+0.2*tugas;
16. System.out.printf("Nilai Akhir %.2f : \n" ,nilaiAkhir);
17. }
18. //Prosedur Nilai Huruf
19. public static void NilaiHuruf(){
20. if (nilaiAkhir>=85) nilaiHuruf='A';
21. else if (nilaiAkhir>=70) nilaiHuruf='B';
22. else if (nilaiAkhir>=50) nilaiHuruf='C';
23. else if (nilaiAkhir>=30) nilaiHuruf='D';
24. else nilaiHuruf='E';
25. System.out.println("Nilai Huruf : "+nilaiHuruf);
26. }
27. //Program Utama
28. public static void main(String[] args){
29. HitungNilai();
30. NilaiHuruf();
31. }
32. }
OUTPUT
Identifier Global dan Lokal
- Konsekuensi penggunaan sub program adalah adanya identifier (variabel atau konstanta) global dan lokal
- Identifier global adalah identifier yang dikenali di semua bagian program, pada program diatas contohnya adalah nilaiAkhir dan nilaiHuruf
- Identifier lokal adalah identifier yang hanya dikenali oleh sub program yang mendeklarasikannya, contohnya adalah uts, uas dan tugas yang hanya dikenali oleh prosedur hitungNilai.
Fungsi
- Fungsi adalah sub program yang mengembalikan (return) sebuah nilai bertipe data primitif (int, float, double, boolean, string, atau char)
- Mirip dengan fungsi dalam matematika yang tugasnya mengubah nilai input menjadi nilai output
- Umumnya fungsi disertai penggunaan parameter untuk input data
Fungsi Hitung Nilai
Function HITUNGNILAI(a,b,c: double): double
na=a*0.3+b*0.5+c*0.2;
return(na)
Fungsi Nilai Huruf
Function NILAIHURUF(na: double): char
If nilaiAkhir>=80 then nilaiHuruf_’A’
Else if If nilaiAkhir>=70 then nh_’B’
Else if If nilaiAkhir>=50 then nh_’C’
Else if If nilaiAkhir>=30 then nh_’D’
Else nh_’E’
End If
return(nh)
Program Utama
Input(uts, uas, tugas)
nilaiAkhir = HITUNGNILAI(uts,uas,tugas)
Output (nilaiAkhir)
Output (NILAIHURUF(nilaiAkhir))
CONTOH
- import java.util.Scanner;
- public class ContohFungsi{
- //Fungsi Hitung Nilai
- public static double HitungNilai(double a, double b,double c){
- double na = a*0.3+b*0.5+c*0.2;
- return (na);
- }
- //FungsiNilai Huruf
- public static char NilaiHuruf(double na){
- char nh = ' ';
- if (na>=85) nh='A';
- else if (na>=70) nh='B';
- else if (na>=50) nh='C';
- else if (na>=30) nh='D';
- else nh='E';
- return(nh);
- }
- //Program Utama
- public static void main(String[] args){
- Scanner keyboard = new Scanner(System.in);
- System.out.print("Nilai UTS : ");
- double uts = keyboard.nextDouble();
- System.out.print("Nilai UAS : ");
- double uas = keyboard.nextDouble();
- System.out.print("Nilai Tugas : ");
- double tugas = keyboard.nextDouble();
- double nilaiAkhir = HitungNilai(uts,uas,tugas);
- System.out.printf("Nilai Akhir : %.2f \n",nilaiAkhir);
- System.out.println("Nilai Huruf : "+NilaiHuruf(nilaiAkhir));
- }
- }
OUTPUT
Parameter
Parameter dapat digunakan baik di fungsi maupun prosedur. Ada 2 jenis parameter yaitu parameter aktual dan parameter formal.
- Parameter aktual digunakan saat memanggil prosedur, melalui parameter ini data dikirim baik berupa konstanta atau variabel
- Parameter formal digunakan pada saat mendeklarasikan nama prosedur, melalui parameter ini data diterima dari parameter aktual, selalu berupa variabel, melakukan casting otomatis dengan urutan