LAPORAN PRAKTIKUM PEMROGRAMAN DASAR TIPE-TIPE FUNGSI ATAU METHOD Disusun oleh : Nama : Ach Fauzan NIM : 135150201111002 Asisten 1 : Fadel Trivandi Dipantara Asisten 2 : Karid Nurvenus Asisten 3 : Apiladosi Priambodo Dosen Pengampu : Sutrisno, Ir., MT LABORATORIUM KOMPUTER DASAR PROGRAM TEKNOLOGI INFORMASI DAN ILMU KOMPUTER UNIVERSITAS BRAWIJAYA 2013 Pengesahan Tanggal: Asisten
Definisi Masalah Buatlah sebuah program dengan 3 pilihan menu, yang setiap menunya memanggil method/fungsi dari tiga sub program di bawah ini. 1. Buat program yang memiliki suatu fungsi untuk menentukan apakah suatu bilangan itu termasuk bilangan prima atau bukan. Kemudian tampilkan bilangan prima dari 1 sampai 100, hitung jumlahnya dan cari rata-ratanya. 2. Buat program yang memiliki suatu fungsi rekursif untuk mencetak suatu deret fibbonacci. Deret fibbonacci adalah suatu deret dimana bilangan berikutnya merupakan penjumlahan 2 bilangan sebelumnya. (mis : 1, 1, 2, 3, 5, 8, 13, 21, 33,...) 3. Buat program untuk mencetak bilangan amisabel dari 1 sampai 1000. Bilangan amisabel adalah bilangan yang jumlah faktor-faktornya sama dengan bilangan itu sendiri. Contoh: 1 = 1 6 = 1 + 2 + 3 28 = 1 + 2 + 4 + 7 + 14 Source Code Menu Bab IV 1 2 3 4 5 6 7 8 9 10 11 12 13 14 import java.util.scanner; public class Laporan_Bab4 { public static void main(string[] args) { Scanner in = new Scanner(System.in); int pilihan; //membuat menu bab IV do{ System.out.println("*** MENU BAB IV ***\n"); System.out.println("---------------------- ----------"); System.out.println("1. soal 001 (bilangan prima)"); System.out.println("2. soal 002 (bilangan fibonacci)"); System.out.println("3. soal 003 (bilangan amisabel)"); System.out.println("4. keluar dari program"); System.out.println("-------------------");
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 System.out.print("masukan pilihan anda : "); pilihan = in.nextint(); switch(pilihan){ case 1 :BilPrim001();break; case 2 :BilFibonacci002();break; case 3 :Amisabel003();break; case 4 : System.out.println ("...:::terima kasih:::... ") ;break; default : System.out.println("maaf input yang anda masukkan tidak ada di MENU\n"); while(pilihan!=4); //method bilangan prima private static void BilPrim001(){ Scanner in = new Scanner(System.in); System.out.println("_.: Program Menentukan Bilangan Prima :._"); System.out.print("masukan angka : "); int angka= in.nextint(); //menentukan bilangan prima boolean prima= true; for(int i=2; i<angka ;i++){ if (angka%i==0){ prima = false; break; if (prima) System.out.println(angka +" adalah bilangan prima"); else System.out.println(angka +" bukan bilangan prima\n"); //menampilkan bilangan prima 1-100 System.out.println("bilangan prima 1-100"); int jumlah=0,n=0; for (int i=1; i<=100; i++){ int a=0; for(int j=1; j<=i; j++){ if ((i%j)==0){ a++; if ((a==2)&&(i!=1)){ System.out.print(i+" "); //menentukan jumlah bilangan prima 1-100 jumlah += i; //menentukan banyak bilangan prima 1-100 n ++;
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 //menghitung rata-rata bilangan prima int rerata = jumlah/n; System.out.println(); //menampilkan hasil System.out.println("maka rata-rata = jumlah / n"); System.out.println(" = "+jumlah+"/"+n); System.out.println(" = "+rerata); System.out.println(); //method bilangan fibonacci private static void BilFibonacci002(){ Scanner in = new Scanner(System.in); System.out.println("_.:Program Penentu Deret Fibonacci:._"); System.out.print("Masukkan batas : "); int k = in.nextint(); //menentukan deret fibonacci System.out.print("Deret Fibonacci : "); for(int i=1; i<=k; i++) System.out.print(fibonacci(i) + " "); System.out.println( \n ); //method Fibonacci yang akan digunakan untuk mencetak deret fibonacci private static int fibonacci(int n){ int j; if(n==1 n==2) j=1; else j = fibonacci(n-1) + fibonacci(n-2); return j; //method bilangan amisabel private static void Amisabel003(){ System.out.println("_.:Program Penentu bilangan amisabel 1-1000:._"); for (int a=1;a<=1000;a++){ if (amisabel(a)){ System.out.print(a+" = "); //for untuk memfaktorkan bilangan amisabel for(int b=1;b<=a;b++){ if(a%b==0){ System.out.print(b); if (a==1 a/b==2)
100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 break; System.out.print(" + "); System.out.println(); System.out.println(); //method amisabel yang akan dipanggil untuk mencetak bilangan amisabel private static boolean amisabel(int a){ int sum=0; if (a==1) return true; else{ for(int b=1;b<a;b++) if (a%b==0) sum +=b; if (sum==a) return true; else return false;
Pembahasan Menu Bab III 1 2-3 4 5 6 7 8 9 10 11 12 13 14 15-16 17 18 19 20 21 22 23 24 25 26 27 28 Melakukan import dari package Scanner Deklarasi kelas dan method main Deklarasi variabel Scanner dengan nama variabel input Deklarasi variabel int dengan nama pilihan komentar Melakukan perintah looping do-while untuk dikerjakan terlebih dahulu Perintah untuk menampilkan sebuah kalimat _MENU BAB IV_ Perintah untuk menampilkan ----------------------------------------- Perintah untuk menampilkan 1. Soal 001(Bilangan prima) Perintah untuk menampilkan 2. Soal 002(bilangan Fibonacci) Perintah untuk menampilkan 3. Soal 003 (bilangan amisabel) Perintah untuk menampilkan 4. Keluar dari program Perintah untuk menampilkan ----------------------------------------- Perintah untuk mencetak masukan variabel pilihan dan perintah untuk memasukkan inputan dengan scanner pada variabel pilihan Melakukan perintah switch untuk memilih pilihan yang akan di case-kan dibawahnya Perintah pilihan Case 1, jika di inputkan 1 maka yang akan dijalankan method BilPrim001 Perintah pilihan Case 2, jika di inputkan 2 maka yang akan dijalankan method BilFibonacci002 Perintah pilihan Case 3, jika di inputkan 3 maka yang akan dijalankan method BilAmisabel003 Perintah pilihan Case 4, jika di inputkan 4 maka program akan mencetak tulisan...:::terima kasih:::... Perintah default, jika input tidak sesuai dengan menu maka program akan mencetak tulisan maaf input yang anda masukan tidak ada di MENU Tutup kurung kurawal untuk menutup statement blok Perintah while, jika input bernilai true maka akan di ulang trus dan akan berhenti jika input bernilai false (pilihan!=4) Tutup kurung kurawal untuk menutup method main komentar Deklarasi private method BilPrim001 Deklarasi variabel Scanner dengan nama variabel input
29 30-31 32 33 34 35 36 37 38-39 40-41 42 43 44 45 46 47 48 49 50 51-52 53 54 55 56 57 58 59 60 61 62 63 Perintah untuk mencetak tulisan _.:program menentukan bilangan prima:._ Perintah untuk mencetak masukan variabel pilihan dan perintah untuk memasukkan inputan dengan scanner pada variabel angka Deklarasi variabel Boolean dengan nama prima = true Perintah looping for dengan nilai awal i=2 dengan batas i<=nilai dari inputan variabel angka dan i akan terus ditambah 1 sampai memenuhi batas Jika variabel angka dibagi i sama dengan 0 Maka variabel prima bernilai false Tutup kurung kurawal untuk menutup perulangan for Jika prima maka akan ditampilkan nilai angka adalah bilangan prima Jika buka prima maka akan ditampilkan nilai angka bukan bilangan prima Perintah untuk mencetak tuilisan bilangan prima 1-100 Deklarasi variabel int dengan nama variabel jumlah dan n Perintah looping for dengan nilai awal i=1 dengan batas i<=100 dan i akan terus ditambah 1 sampai memenuhi batas Deklarasi variabel int dengan nama a= 0 Perintah looping for (nested loop) dengan nilai awal j=1 dengan batas j<=i dan j akan terus ditambah 1 sampai memenuhi batas Jika nilai dari variabel i dibagi j sama dengan 0 maka nilai variabel a akan ditambah 1 Kurung kurawal untuk menutup statement Kurung kurawal untuk menutup looping for yang kedua(nested loop) Jika a = 2 atau i tidak sama dengan 1 maka akan dicetak/ dimunculkan nilai i dan space Menghitung jumlah bilangan prima Menghitung banyak bilangan prima Kurung kurawal untuk menutup blok statement Kurung kurawal untuk mengakhiri looping for Operasi matematika untuk menghitung nilai rata-rata bilangan prima Perintah untuk ganti baris Perintah untuk menampilkan kalimat maka rata-rata =
64 65 66 67 68 69 70 71 72-73 74 75 76 77 78 79 80 81 82 83 85 87 88 89 90 91 92 93 95 96 97- jumlah/n Perintah untuk menampilkan tulisan = dan nilai jumlah / nilai n Perintah untuk menampilkan nilai variabel rerata Perintah untuk ganti garis baru Kurung kurawal untuk menutup method BilPrim001 Deklarasi private method BilFibonacci002 Deklarasi variabel Scanner dengan nama variabel input Perintah untuk mencetak tulisan _.:program penentu deret Fibonacci :._ Perintah untuk mencetak masukan variabel batas dan perintah untuk memasukkan inputan dengan scanner pada variabel batas Perintah untuk mencetak tulisan deret Fibonacci : Perintah looping for dengan nilai awal i =1 dengan batas i<= nilai variabel batas dan i akan terus ditambah 1 sampai memenuhi batas Perintah untuk mencetak hasil dari method fibonacci Perintah untuk ganti baris sebanyak 2 baris Kurung kurawal untuk menutup method BilFibonacci002 Deklarasi private method Fibonacci dengan membawa / menyimpan nilai int n Deklarasi variabel j Jika variabel n bernilai 1 atau 2 maka b=variabel j sama dengan 1 Jika tidak maka variabel j = nilai variabel Fibonacci (n-1)+ Fibonacci(n-2) Return j berfungsi untuk menyimpan hasil dari variabel j Tutup kurung kurawal untuk menutup method private method Fibonacci Deklarasi private method BilAmisabel003 Perintah untuk mencetak tulisan _.:program penentu bilangan amisabel 1-1000:._ Perintah looping for dengan nilai awal a=1 dengan batas a<=1000 dan a akan terus ditambah 1 sampai memenuhi batas Jika bernilai sesuai dengan method amisabel maka akan dimunculkan nilai a dan tanda = Perintah looping for (nested loop) dengan nilai awal b=1 dengan batas b<=a dan b akan terus ditambah sampai memenuhi batas Jika nilai variabel a dibagi b = 0 maka akan dimunculkan/dicetak
88 99-101 102 103 104 105 106 107 108 109 110 112 113 114 115 116 117-118 119 120 121 122 123 124 125 nilai b Jika nilai variabel a=1 atau jika a dibagi b =2 maka nested loop akan berhenti dan mencetak tanda + Kurung kurawal untuk mengakhiri/ menutup blok statement Kurung kurawal untuk menutup nested loop Perintah untuk ganti baris Kurung kurawal untuk menutup blok statement Kurung kurawal untuk menutup looping for Perintah untuk ganti baris Kurung kurawal untuk menutup method BilAmisabel003 Deklarasi private method amisabel dengan membawa/ menyimpan varibel a Deklarasi variabel int dengan nama sum Jika nilai variabel a = 1 Maka return(hasil akan dikembalikan) bernilai true Jika tidak maka akan dilakukan perintah selanjutnya Perintah looping for dengan nilai awal b=1 dengan batas b < a dan nilai variabel b akan terus ditambah 1 sampai memenuhi batas Jika nilai variabel a dibagi b = 0 maka nilai bvariabel sum = sum + b Jika nilai variabel sum = a Maka return (hasil akan dikembalikan) bernilai true Jika salah atau tidak memenuhi syarat Maka return (hasil akan dikembalikan) bernilai false Kurung kurawal untuk menutup blok statement Kurung kurawal untuk menutup method amisabel Kurung kurawal untuk menutup method main Laporan_bab4 Screenshoot Program Menu Bab IV
Kesimpulan Fungsi / method merupakan suatu program yang terletak terpisah dari blok program utama, tetapi tetap merupakan bagian dari program yang dibuat. Dengan menggunakan fungsi dapat membuat program menjadi lebih mudah dipahami. Di dalam pemrograman java ada 3 jenis akses method diantaranya: private void, protect void dan public void. Private void Dengan menggunakan method tingkat akses private, maka method tersebut hanya dapat diakses oleh kelas yang dimilikinya saja. Protect void Dengan menggunakan method tingkat akses protect, maka method tersebut hanya dapat diakses oleh kelas yang dimilikinya dan kelas-kelas yang terkait dengan kelas method tersebut. Public void Dengan menggunakan method tingkat akses public, maka method tersebut bisa diakses oleh kelas mana saja yang ada pada bagian program. Setiap method menghasilkan suatu data dengan tipe tertentu yang disebut return, apabila tidak menghasilkan nilai maka return maka nilai akan diganti dengan void.