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