PEMROGRAMAN DASAR Sistem Informasi PTIIK UB Semester Ganjil 2014/2015
Method / Fungsi / Sub Program Dr. Eng. Herman Tolle, ST., MT Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya
Programming is FUN!
7 Aspek Dasar Pemrograman 1. 2. 3. 4. 5. 6. 7. 8.
Membaca Input Data Menampilkan Output Data Melakukan proses perhitungan (Compute) Penyimpanan Data (Store) Penyeleksi Kondisi (Percabangan) Perulangan (Repetisi) Array Method – Fungsi
Definisi Metode: Sekumpulan baris kode program yang mempunyai fungsi tertentu dan dapat dipanggil dari fungsi utama (main function) • Dapat dipanggil berulang kali • dapat memproses data (variabel) yang dikirim dari main function
Manfaat Method / Function Prosedur • Menyederhanakan struktur program • Mempermudah kendali program jika bekerja dengan source code yang panjang Fungsi • Mendefiniskan fungsi-fungsi tertentu Prosedur/Fungsi • Dapat digunakan secara berulang dalam main program
Tipe Method • Prosedur: – sekumpulan proses – fungsi yang tidak mengembalikan suatu nilai
• Fungsi: – Sekumpulan proses dan mengembalikan nilai tertentu
• Dalam bahasa Java / C++, semua method disebut sebagai function (fungsi).
Deklarasi Method Modifier – return value – namaMethod –(parameter/argumen) { // block Statement } public static void main (String[] args) { //statement-statement }
Keterangan • Modifier = Hak Akses: public, protected, private • static dan non static • return value = Nilai balikan jika metode melakukan suatu kalkulasi dan mempunyai nilai yang disimpan, jika tidak ada return maka menggunakan kata kunci void • Parameter/Argumen = Variabel yang dilewatkan dari luar metode atau yang digunakan di dalam metode
Fungsi yang tidak mengembalikan nilai (Fungsi VOID) modifier – void – namaMethod – [parameter/argumen] { // Block Statement }
private static void InputData() { }
Fungsi yang mengembalikan nilai (tipedata & return) modifier – tipedata – namaMethod – [parameter/argumen] { // Block Statement return …. ; } private static int HitungLuas(int Panjang, int Lebar) { return Panjang * Lebar; } private static float HitungLuas(int jariJari) { float luas = 0.5 * 3.1419 * jariJari; return luas; }
Contoh: Program Menghitung Volume Kubus class VolumeKubus { public static void main(String args[]) { Scanner masukan = new Scanner(System.in); // Input panjang sisi System.out.print("Masukkan panjang sisi: "); int sisi = masukan.nextInt(); // hitung volume int volume = sisi*sisi*sisi; // cetak hasil System.out.printf(“Volume Kubus = %d \n“,volume); }
Program Hitung Volume Kubus dengan Fungsi import java.util.Scanner; public class VolumeKubus { private static int volume;
Variabel global
public static void main(String args[]) { int rusuk; rusuk = inputSisi(); Penyederhanaan volume = volumeKubus(rusuk); struktur program cetakHasil(); }
private static int inputSisi() { Scanner masukan = new Scanner(System.in); System.out.print("Masukkan panjang sisi: "); int sisi = masukan.nextInt(); return sisi; } private static int volumeKubus(int sisi) { int hasil = sisi*sisi*sisi; return hasil; } private static void cetakHasil() { System.out.printf("Volume Kubus = %d \n", volume); } }
Program Hitung Volume Kubus dengan Fungsi
import java.util.Scanner; public class VolumeKubus { // private static int volume; public static void main(String args[]) { int rusuk; rusuk = inputSisi(); int volume = volumeKubus(rusuk); cetakHasil(volume); }
private static int inputSisi() { Scanner masukan = new Scanner(System.in); System.out.print("Masukkan panjang sisi: "); int sisi = masukan.nextInt(); return sisi; } private static int volumeKubus(int sisi) { int hasil = sisi*sisi*sisi; return hasil; } private static void cetakHasil(int vol) { System.out.printf("Volume Kubus = %d \n", vol); } }
Memanggil Method •Prosedur Tanpa Parameter: nama_method(); •Prosedur Dengan Parameter nama_method (parameter1,parameter2);
•Fungsi yang ditampung hasilnya volume = volumeKubus(rusuk);
•Output langsung hasil fungsi System.out.println(“Hasil = “+ volumeKubus(rusuk)); System.out.printf(“Hasil = %d“, volumeKubus(rusuk));
Cakupan Variabel • Variabel Lokal: variabel yang hanya digunakan dalam scope blok program terbatas • Variabel Global: variabel yang dapat digunakan pada seluruh bagian dari program dalam satu class yang sama
Latihan • Buat program yang menampilkan Tabel Konversi suhu Celcius ke Fahrenheit (1 sampai 100), Konversi Suhu Fahrenheit ke Celcius (32 sampai 120)
Latihan public static void main (String [] args) { System.out.println(“Celcius to Fahrenheit “); for (i=1; i<=100; i++) { System.out.printf(“ %d = %f ”, i, celcius2Fahrenheit(i)); } System.out.println(“Fahrenheit to Celcius“); for (i=32; i<=120; i++) { System.out.printf(“ %d = %f ”, i, Fahrenheit2Celcius(i)); } } public static double celcius2Fahrenheit(int C) { return (C * 9.0 / 5) + 32; }
public static double Fahrenheit2Celcius(int F) { return (F – 32 ) * 5 / 9; }
OVERLOADING FUNGSI
Overloading Function • Satu nama Fungsi tetapi memiliki beberapa implementasi yang dapat dibuat berdasarkan perbedaan parameter input atau perbedaan tipe data keluaran • Misalnya: public static int max(int x, int y) { if x>y return x else return y }
public static double max(double x, double y) { if x>y return x else return y }
public class Lingkaran { public static void main(String []args) { int r = inputJejari(); double Luas = luasLingkaran(r); double Luas2 = luasLingkaran(5.5); cetakLuas(Luas2); } private static double luasLingkaran(int r) { return (3.14*r*r); } private static double luasLingkaran(double r) { return (3.14*r*r); } private static int inputJejari() { Scanner masukan = new Scanner(System.in); System.out.print("Masukkan Jejari: "); int jejari = masukan.nextInt(); return jejari; } private static void cetakLuas(double luas) { System.out.print(“Luas Lingkaran = %f“, luas); }
Variasi Overloading Function Nama fungsi sama, tetapi: • Tipe data input berbeda • Tipe data yg output dikembalikan (return) berbeda • Jumlah parameter berbeda (ada yg 1, ada yg 2, dst) • Jumlah parameter dan tipe data berbeda
Membuat Program dengan Beberapa Menu Pilihan
SUB PROGRAM – MEMPERMUDAH KENDALI PROGRAM
Mempermudah Kendali Program • Menggunakan fungsi dan prosedur untuk kendali program berbasis menu do
• Ulangi – – – – – –
Input pilih Jika pilih: 1. Input Data 2. Proses Data 3. Cetak Data 9. Keluar
• Sampai pilih = 9
System.out.print(“Pilih Menu = ”); pilih = input.nextInt(); switch (pilih) { case 1: InputData(); break; case 2: UrutData(); break; case 3: CetakData(); break; case 9: CetakExit(); break; default: System.out.println(“Pilihan salah”);
} while (pilih<>9)
Latihan Input Data Array Cetak Data Array INPUT Tanya Jumlah Data Ulangi Sebanyak Jumlah Data, untuk Tanya data ke-i, baca data ke-i
CETAK Ulangi Sebanyak Jumlah Data, untuk Cetak data ke-i
public static void main (String [] args) { Scanner masukan = new Scanner(System.in); System.out.print(“Berapa Jumlah Data?”); int N = masukan.nextInt(); int[] data; for (i=0; i
for (i=1; i<=n; i++) total = total + Y[i-1]; return total / n;
}
Tugas Kelas D • Membuat Program dengan Menu: 1. 2. 3. 4. 5.
Input Data Urut Data Terkecil (QuickSort) Urut Data Terbesar (BubbleSort) Cetak Data Keluar
• Gunakan function (prosedur) untuk setiap item menu. • Deadline: 1 Desember 2013, dikirim ke email dosen • File Laporan (doc) + screenshot • Format judul email: SID-nim-tugas5
Tugas Kelas F • Membuat Program dengan Menu: 1. 2. 3. 4. 5.
Input Data (array n) Urut Terkecil (QuickSort) Urut Terbesar (BubbleSort) Cetak Data Keluar
• Gunakan function (prosedur) untuk setiap item menu. • Deadline: 9 Desember 2013, dikirim ke email dosen (
[email protected]) • File Laporan (doc) + screenshot • Format judul email & nama file doc: SIF-nim-tugas5
Tugas Kelas E • Membuat Program dengan Menu: 1. 2. 3. 4. 5.
Input Data Urut Terkecil (QuickSort) Urut Terbesar (BubbleSort) Cetak Data Keluar
• Gunakan function (prosedur) untuk setiap item menu. • Deadline: 26 November 2013, dikirim ke email dosen • File Laporan (doc) + screenshot • Format judul email: SIE-nim-tugas5