Jumat, 13 Desember 2013

laporan pemrograman dasar fungsi java



LAPORAN PRAKTIKUM PEMROGRAMAN DASAR
PROGRAM MENGGUNAKAN FUNGSI


Disusun oleh :

Nama                           : Andrianto Setiawan
NIM                             : 135150201111153
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






A.    Definisi Masalah

1.       (Soal di PDF) 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.       (Soal di PDF) 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

B.     Source Code


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
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

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
100
101
102
103
104
105
106
107
108
109
110
import java.util.Scanner;
public clas laporanBab4 {
    public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
      System.out.println("PROGRAM MENGGUNAKAN
      FUNGSI");
      System.out.println("===================");
      int pilih = 9;   
      do {
      System.out.println("Pilihan Soal yg
      Tersedia");
      System.out.println("1. Soal 1");
      System.out.println("2. Soal 2");
      System.out.println("3. Soal 3");
      System.out.println("4. Keluar");
      System.out.println("Soal yg diminta = ");
pilih = in.nextInt();
switch (pilih) {
      case 1 : soalSatu(); break;
      case 2 : soalDua(); break;
      case 3 : soalTiga(); break;
      case 4 : System.out.println("=========");
      break;
      default : System.out.println("Pilihan tidak
     ada");
     }
    } while (pilih!=4);
   }
     private static void soalSatu(){
      Scanner in = new Scanner(System.in);
      System.out.println("BILANGAN PRIMA");
      int bil;
      boolean prima = true;
      System.out.println("Masukan Bilangan = ");
      bil = in.nextInt();
      for (int i=2; i<bil; i++){
       if ((bil%i)==0){
       prima = false; break;}
      if (prima)
       System.out.print(bil + "adalah bilangan
       Prima");
      Else
       System.out.print(bil + "bukan bilangan
       Prima");
           tampilanPrima();
    }
   }
     private static void tampilanPrima(){
      System.out.print("Bilangan Prima 1-100");
      int sum=0,n=0;
      for (int i=1; i<100; i++){
         int x=0;
      for (int j=1; j<100; j++){
         if (i%j==0)
             x++;
   }
      if (x==2&&i!=1){
        System.out.print(i +" ");
        sum+=i;
        n++;}
  }
   System.out.println("Jumlah bilangan prima = "+
   sum);
   double rata = sum/n;
   System.out.printf("Rata-rata bilangan prima =
   %.0f ",rata);
  }
    private static void soalDua(){
     Scanner in = new Scanner(System.in);
     System.out.println("BILANGAN FIBBONACCI");
      System.out.print("Masukkan jumlah yang
      ingin ditampilkan: ");
      int bil = in.nextInt();
      for(int i=1;i<=bil;i++){
      System.out.print(fibonacci(i) + " ");
   }
  }
     private static int fibonacci(int bil){
       int x;
       if(bil==1 || bil==2)
           x=1;
       else
         x = fibonacci(bil-1) + fibonacci(bil-2);
         return x;
   }
     private static void soalTiga(){
      System.out.println("BILANGAN AMISABEL");
      System.out.print("Amisabel 1-1000 = ");
      for (int i=1; i<1000; i++){
         if (amisabel(i)){
           System.out.print(i +"=");
      for (int j=1; j<=i; j++){
         if (i%j==0){
           System.out.print(j+" ");
           if (i==1||i/j==2)
              break;
           System.out.print(" + ");
         }
        }
       }
      }
     }
      private static boolean amisabel(int i){
        int z=0;
        if (i==1)
           return true;
        else {
          for (int j=1; j<i; j++)
            if (i%j==0)
            z+=j;
          if (z==i)
             return true;
          else
             return false;
      }
     }
    }
  }
 }

C.    Pembahaasan

1
2-3
4
5-6

7
8-23

15


16

17

18

19

20

21

25
26
28
27
30-31


29

32


33-34


35-36


37-38


39
42
43
44

45


46
47


48-49

51-54





56
57


58

60
61
62
63-64


65-66




69


70
71-72

73-74




75
77
78
79
80


81

83


84

86-87


88
94


95
96

98-99



100-101

102-103
104-105
Melakukan import dari package Scanner
Dekalarasi kelas dan method main
Deklarasi variabel Scanner dengan nama variabel in
Perintah untuk menampilkan menu program yakni program

Deklarasi variabel integer dengan nama pilih (diinisialisasi 9)
Perintah untuk melakukan perulangan secara terus menerus ketika pilihan yang diinputkan bukan 4
Perintah untuk mencetak masukan pilih menu program yang diinginkan dan perintah untuk memasukkan inputan dengan scanner pada variabel pilih
Pernyataan switch dengan kondisi sesuai dengan inputan pada variabel pilihan
Pada inputan pilih=1, maka akan memanggil fungsi/method dari soalSatu dan perintah break
Pada inputan pilih=2, maka akan memanggil fungsi/method dari soalDua dan perintah break
Pada inputan pilih=3, maka akan memanggil fungsi/method dari soalTiga dan perintah break
Pada inputan pilih =4, maka akan muncul perintah untuk menapilkan “===============” dan perintah break
Dan pada inputan pilihan selain 1,2, 3, atau 4 maka akan muncul perintah untuk menampilkan “pilihan tidak ada”
Deklarasi fungsi atau method soalSatu
Deklarasi variabel Scanner dengan nama variabel in
Deklarasi variabel int dengan nama bil
Perintah untuk menampilkan “BILANGAN PRIMA”
Perintah untuk mencetak masukan bilangan yang diinginkan dan perintah untuk memasukkan inputan dengan scanner pada variabel bil
Deklarasi variabel boolean dengan nama prima dengan inisialisasi true atau benar
Perintah untuk melakukan perulangan pada variabel i yang telah dideklarasi int dan diinisialisasi 2 hingga batas perulangan sesuai dengan bilangan yang diinputkan pada variabel bil
Pernyataan if dengan kondisi jika hasil bagi bil dengan i bersisa 0 maka variabel prima bernilai false dan dilakukan break atau keluar dari perulangan
Pernyataan if dengan kondisi jika variabel prima benar, maka akan mencetak pernyataan bilangan yang diinputkan adalah adalah bilangan prima
Pernyataan else dengan kondisi jika kondisi sebelumnya bernilai salah maka akan muncul pernyataan bilangan yang diinputkan bukan bilangan prima
Melakukan pemanggilan fungsi/method dari tampilanPrima
Deklarasi fungsi/method tampilanPrima
Perintah untuk menampilkan bilangan prima 1-100
Deklarasi variabel int dengan nama sum dan n yang masing-masing diinisialisai 0
Perintah untuk melakukan perulangan pada variabel i yang telah dideklarasi int dan diinisialisasi 1 hingga batas perulangan pada bilangan 100
Deklarasi variabel int dengan nama x yang diinisialisai 0
Perintah untuk melakukan perulangan pada variabel j yang telah dideklarasi int dan diinisialisasi 1 hingga batas perulangan pada bilangan 100
Pernyataan if dengan kondisi jika hasil bagi i dengan j bersisa 0 maka x akan ditambah 1 secara berkala
Pernyataan if dengan kondisi jika x bernilai 2 dan i bukan bernilai 1 maka akan menampilkan i yang tidak habis dibagi j(prima), melakukan operasi matematika sum dengan inisialisai variabel sum ditambah i yang tampil, dan n ditambah 1 secara berkala yang bertindak sebagai banyaknya bilangan prima yang muncul
Mencetak hasil penjumlahan, variabel sum
Deklarasi variabel double dengan nama rata dan dinisialisai dengan operasi matematika pembagian antara variabel sum dengan n
Mencetak hasil pembagian, variabel rata dengan format tanpa angka dibelakang koma
Deklarasi fungsi atau method soalDua
Deklarasi variabel Scanner dengan nama variabel in
Perintah untuk menampilkan “BILANGAN FIBONACCI”
Perintah untuk mencetak masukan jumlah yang ingin ditampilkan dan perintah untuk memasukkan inputan dengan scanner pada variabel bil
Perintah untuk melakukan perulangan pada variabel i yang telah dideklarasi int dan diinisialisasi 1 hingga batas perulangan sesuai dengan yang diinputkan pada bil dan akan mencetak bilangan fibonacci dari pemanggilan terhadap fungsi fibonacci(i)
Deklarasi fungsi atau method fibonacci dengan int dan argumen i dengan int(nilai i diambil dari pernyataan for sebelum perulangan)
Deklarasi int dengan nama x
Pernyataan if dengan kondisi i bernilai 1 atau i bernilai 2 maka x  dinisialisasi 1
Pernyataan else dengan kondisi pernyataan sebelumnya bernilai salah maka x diinisialisasi dengan operasi matematika penjumlahan dari i yang dikurangi 1 dan i yang dikurangi 2 (nilai i diambil dari perulangan sebelum dilakuakn pemanggilan fungsi pada kelas sebelumnya
Pernyataan kembali ke program dengan membawa nilai x
Deklarasi fungsi atau method soalTiga
Perintah untuk menampilkan “BILANGAN AMISABEL”
Perintah untuk menampilkan Bilangan amisabel dari 1-1000
Perintah untuk melakukan perulangan pada variabel i yang telah dideklarasi int dan diinisialisasi 1 hingga batas perulangan bilangan 1000
Pernyataan if dengan kondisi nilai dari pemanggilan terhadap fungsi amisabel(i) dan bernilai benar maka akan mencetak i
Perintah untuk melakukan perulangan pada variabel j yang telah dideklarasi int dan diinisialisasi 1 hingga batas perulangan nilai i
Pernyataan if dengan kondisi jika i dibagi j bersisa 0 maka akan mencetak variabel j
Pernyataan if dengan kondisi jika i bernilai 1 atau i dibagi j = 2 maka akan dilaksanakan pernyataan break atau berhenti perulangan
Perintah untuk mencetak +
Deklarasi fungsi atau method amisabel dengan boolean dan argumen i dengan int (nilai i diambil dari pernyataan for sebelum perulangan)
Deklarasi int dengan nama z dan diinisalisai 0
Pernyataan if dengan kondisi jika i benilai 1 maka akan kembali ke program dengan nilai benar
Pernyataan else dengan kondisi jika ekspresi sebelumnya bernilai salah maka akan dilaksanakan perintah perulangan pada variabel j yang dideklarasi int dan diinisialisai 1 hingga batas perulangan nilai i
Pernyataan if dengan kondisi jika i variabel i dibagi j bersisa 0 maka variabel z akan diinisialisai melalui operasi matematika antar variabel z dengan j
Pernyataan if dengan kondisi jika nilai z = i maka akan kembali ke program dengan nilai benar
Pernyataan else dengan kondisi jika ekspresi sebelumnya bernilai salah maka akan kembali ke program dengan nilai salah






 





D.    Screenshoot Program


 

bner1.png

bner.png


E.     Kesimpulan

Fungsi adalah  prosedur yang dibuat dalam suatu class. Setiap fungsi menghasilkan suatu nilai dengan tipe data tertentu yang disebut Return tipe. Dalam java terdapat tiga akses yaitu private,protected, dan public.
Dengan menggunakan fungsi tingkat akses private, maka data dan fungsi tersebut hanya dapat diakses oleh kelas yang dimilikinya saja.
Suatu fungsi yang menggunakan tingkat akses protected dapat diakses oleh kelas yang dimilikinya saja dan juga kelas-kelas  yang masih memiliki keturunan.
Tingkat public merupakan kebalikan dari tingkat private. Fungsi dapat diakses oleh semua bagian dalam program
Fungsi rekursif adalah proses dimana fungsi tersebut memanggil dirinya sendiri. Memakai teknik rekursif memang lebih mudah, tetapi memakan memori yang lebih besar daripada teknik looping for.

Tidak ada komentar:

Posting Komentar