A. DEFINISI MASALAH
1.
Buatlah program dengan method untuk menghitung nilai
permutasi dan kombinasi dari sebuah nilai yang dimasukkan.
Program Penghitung Permutasi dan Kombinasi
1. Menghitung Permutasi
2. Menghitung Kombinasi
3. Keluar
Masukkan pilihan anda : 1
Masukkan nilai n : 10
Masukkan nilai r :
2
n
nPr = ------------ = 90
( n – r ) !
Maka Hasil Permutasinya adalah : 90
Program Penghitung Permutasi dan Kombinasi
1. Menghitung Permutasi
2. Menghitung Kombinasi
3. Keluar
Masukkan pilihan anda : 2
Masukkan nilai n : 10
Masukkan nilai r :
2
n
nCr = ------------------- = 45
( n – r ) !
x r!
Maka Hasil Kombinasinya adalah : 45
Program Penghitung Permutasi dan Kombinasi
1. Menghitung Permutasi
2. Menghitung Kombinasi
3. Keluar
Masukkan pilihan anda : 3
BUILD SUCCESSFUL (total time : 18 seconds)
2.
Program untuk menentukan apakah bilangan tersebut
bilangan prima atau bukan dengan menginputkan sebuah bilangan yang di inginkan.
Setelah itu program akan mengoutputkan bilangan prima 1-100.
Masukkan bilangan prima : 10
Bilangan 10 termasuk bukan bilangan prima
Program menentukan bilangan prima 1-100
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71
73 79 83 89 97
BUILD SUCCESSFUL (total time : 4 seconds)
A. SOURCE CODE
Tugas Praktikum 5.1
|
|
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
|
package Praktikum5;
import java.util.Scanner;
public class Tugas1 {
public static void main(String[] args) {
int pilihan;
do {
System.out.println("Program
Penghitung Kombinasi dan Permutasi");
System.out.println("1.
Menghitung Permutasi");
System.out.println("2.
Menghitung Kombinasi");
System.out.println("3.
Keluar");
System.out.print("Masukkan
pilihan anda : ");
Scanner in = new
Scanner(System.in);
pilihan = in.nextInt();
if (pilihan == 3) {
System.out.println("Terima kasih...!!!");
break;
} else if (pilihan > 3) {
System.out.println("Inputan tidak sesuai...!!!");
break;
}
System.out.print("Masukkan
nilai n : ");
int n = in.nextInt();
System.out.print("Masukkan
nilai r : ");
int r = in.nextInt();
if (r > n) {
System.out.println("Maaf...!
, Syarat Kombinasi/Permutasi adalah : r <= n");
break;
}
Hitung(pilihan, n, r);
} while (pilihan < 3);
}
public static void Hitung(int pilihan,
int n, int r) {
int m = n - r; //m=(n-r)!
int hasil_n = 1, hasil_r = 1, hasil_m
= 1;
int i;
for (i = 1; i <= n; i++) {
hasil_n *= i; //hasil : n!
}
for (i = 1; i <= r; i++) {
hasil_r *= i; //hasil : r!
}
for (i = 1; i <= m; i++) {
hasil_m *= i; //hasil : m!
}
int permutasi = hasil_n / hasil_m;
int kombinasi = hasil_n / (hasil_m *
hasil_r);
if (pilihan == 1) {
System.out.println(" n!");
System.out.println("nPr =
------ = " + permutasi);
System.out.println(" (n-r)!");
System.out.println("Maka
Hasil Permutasinya adalah = " + permutasi + "\n");
} else {
System.out.println(" n!");
System.out.println("nCr =
----------- = " + kombinasi);
System.out.println(" (n-r)! x r!");
System.out.println("Maka
Hasil Kombinasinya adalah = " + kombinasi + "\n");
}
}
}
|
Tugas Praktikum 5.2
|
|
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
|
package Praktikum5;
import java.util.Scanner;
public class Tugas2 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("Masukkan
bilangan : ");
int bilangan = in.nextInt();
TentukanPrima(bilangan);
BilPrima1_100();
System.out.println();
}
public static void TentukanPrima(int
bilangan) {
int x = 0;
for (int pembagi = 2; pembagi <=
bilangan; pembagi++){
int mod = bilangan % pembagi;
if (mod == 0) {
x++;
}
}
if (x == 1) {
System.out.println("Bilangan
" + bilangan + " Termasuk Prima");
} else {
System.out.println("Bilangan
" + bilangan + " Bukan Termasuk Prima");
}
}
public static int BilPrima1_100() {
int bilangan, pembagi;
System.out.println("Program
menentukan bilangan prima 1-100");
for (bilangan = 0; bilangan <=
100; bilangan++) {
int x = 0;
int mod=0;
for (pembagi = 2; pembagi <=
bilangan; pembagi++){
mod = bilangan % pembagi;
if (mod == 0) {
if (bilangan != pembagi)
{
x = 1;
}
if (x != 1 &&
bilangan == pembagi) {
System.out.print(bilangan + " ");
}
}
}
}
return bilangan;
}
}
|
B. PEMBAHASAN
Tugas Praktikum 5.1
|
|
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
|
Deklarasi
dari package yang bernama Praktikum5.
Melakukan
import dari package Scanner, untuk menggunakan fungsi scanner pada program.
Deklarasi
dari class yang bernama Tugas1.
Deklarasi
dari method/fungsi main, untuk menjalankan program.
Deklarasi
dari variabel yang bernama pilihan dengan tipe data integer untuk menjalankan
proses iterasi do-while pada program.
Proses
perulangan dengan menggunakan fungsi do-while.
Menampilkan
“Program Penghitung Kombinasi dan Permutasi”.
Menampilkan
“1. Menghitung Permutasi”
Menampilkan
“2. Menghitung Kombinasi”
Menampilkan
“3. Keluar”
Menampilkan
perintah untuk memasukan nilai ke variabel pilihan berdasarkan opsi yang
telah di berikan di atas.
Deklarasi variabel Scanner dengan
nama variabel in.
Melakukan
proses penyimpanan nilai yang telah di masukkan ke variabel pilihan.
Proses
seleksi kondisi jika pilihan = 3,
Maka
akan menampilkan “Terima kasih.....”
Dan
program akan berhenti/keluar.
Akhir
dari statement kondisi pertama dan Proses jika pilihan > 3,
Maka
akan menampilkan “Inputan tidak sesuai...”
Dan
program akan berhenti/keluar.
Akhir
dari stetement kondisi ke dua.
Menampilkan
perintah untuk memasukkan nilai ke variabel n.
Deklarasi
dari variabel n dan inisialisasi berdasarkan nilai yang telah diinputkan.
Menampilkan
perintah untuk memasukkan nilai ke variabel r.
Deklarasi
dari variabel r dan inisialisasi berdasarkan nilai yang telah diinputkan.
Proses
seleksi kondisi jika nilai dari variabel n lebih besar dari variabel r,
Maka
akan menampilkan “ Maaf...! , Syarat Kombinasi / Permutasi adalah : r <=
n”
Dan
program berhenti /keluar.
Akhir
dari statement kondisis.
Memanggil
method Hitung dengan memberikan parameter nilai sesuai dengan variabel
pilihan, n dan r yang telah diinputkan di awal.
Perulangan
akan tetap berjalan kondisi pilihan kurang dari 3.
Menutup
deklarasi methode main.
Deklarasi
dari method Hitung, untuk menghituh hasil kombinasi dan permutasi.
Deklarasi
dari variabel m yang bertipe integer yang inisialisasinya adalah hasil
pengurangan antara variabel n dan r (n-r).
Deklarasi
dari 3 variabel yaitu hasil_n, hasil_r dan hasil_m yang masing-masingnya di
inisialisasi awal dengan nilai 1. Variabel ini difungsikan untuk menyimpan
nilai akhir setelah nilai di faktorialkan.
Deklarasi
variabel i untuk proses perulangan.
Proses
perulangan untuk menetukan faktorial dari n. Dengan cara
Melakukan
perkalian antara variabel hasil_n dengan variabel i yang akan terus menerus
diulang sampai kondisi i = n. Dan hasil akhirnya akan di simpan di variabel
hasil_n.
Akhir
dari proses perulangan untuk menentukan faktorial n.
Proses
perulangan untuk menetukan faktorial dari r. Dengan cara
Melakukan
perkalian antara variabel hasil_r dengan variabel i yang akan terus menerus
diulang sampai kondisi i = r. Dan hasil akhirnya akan di simpan di variabel
hasil_r.
Akhir
dari proses perulangan untuk menentukan faktorial r.
Proses
perulangan untuk menetukan faktorial dari m. Dengan cara
Melakukan
perkalian antara variabel hasil_m dengan variabel i yang akan terus menerus
diulang sampai kondisi i = m. Dan hasil akhirnya akan di simpan di variabel
hasil_m.
Akhir
dari proses perulangan untuk menentukan faktorial m.
Deklarasi
dari variabel permutasi dengan inisialisasi nilai hasil dari pembagian
variabel hasil_n dengan hasil_m(hasil_n / hasil_m).
Deklarasi dari variabel kombinasi degan
inisialisasi nilai hasail dari hasil_n dibagi dengan (hasil_m kali hasil_r).
Proses
seleksi kondisi jika pilihan sama dengan 1.
Maka
akan menampilkan “ n! “
Dan
menampilkan “nPr = ------- = “ serta menampilkan nilai variabel permutasi.
Menampilkan
“ (n – r) ! “
Menampilkan
“Maka hasil Permutasinya adalah = “ serta nilai dari variabel permutasi.
Akhir
dari statement kondisi pertama, dan Proses jika kondisi pilihan selain 1.
Maka
akan menampilkan “ n! “
Dan
menampilkan “nCr = ------- = “ serta menampilkan nilai variabel kombinasi.
Menampilkan
“ (n – r) ! “
Menampilkan
“Maka hasil Kombinasinya adalah = “ serta nilai dari variabel kombinasi.
Akhir
dari statemen kondidi pilihan selain 1.
Menutup
deklarasi method Hitung.
Akhir deklarasi class Tugas1.
|
Tugas Praktikum 5.2
|
|
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
|
Deklarasi
dari package yang bernama Praktikum5.
Melakukan
import dari package Scanner, untuk menggunakan fungsi scanner pada program.
Deklarasi
dari class yang bernama Tugas2.
Deklarasi
dari method/fungsi main, untuk menjalankan program.
Deklarasi variabel Scanner dengan
nama variabel in.
Menampilkan
perintah untuk memasukan nilai ke variabel bilangan.
Deklarasi
dari variabel bilangan dan sekeligus inisialisasi variabel dengan nilai yang
telah diinputkan.
Melakukan
pemanggilan method TentukanPrima dengan parameter nilai sesuai dengan nilai
dari variabel bilangan.
Melakukan
pemanggilan method BilPrima1_100.
Perintah
menampilkan ganti baris.
Menutup
deklarasi mehod main
Deklarasi
dari method TentukanPrima denga parameter berupa variabel integer.
Deklarasi
variabel x dengan inisialiasasi awal 0.
Proses
perulangan untuk melakukan modulus bilangan yang telah di masukkan dengan
angka pembagi yang terus berubah sampai kondisi terpenuhi, perulangan akan
berhenti setelah kondisi variabel pembagi sama dengan bilangan.
Deklarasi
dari variabe mod dengan inisialisasi nilai hasil dari modulus bilangan dengan
pembagi.
Proses
seleksi kondisi jika hasil modulus sama dengan 0,
Maka
variabel x akan di incrementkan.
Akhir
dari statemen seleksi kondisi.
Akhir
dari proses perulangan.
Proses
seleksi kondisi jika nilai dari variabel x sama dengan 1,
Maka
akan menampilkan “Bilangan termasuk prima”
Akhir
dari satement kondisi pertama dan Jika kodisi nilai dari variabel x selain 1,
Maka
akan menampilkan “Bilangan bukan termasuk prima”.
Akhir
dari statemet kondis else.
Menutup
deklarasi method TentukanPrima.
Dekalarasi
dari method BilPrima1_100.
Deklarasi
dari dua variabel yang bertipe integer yang bernama bilangan dan pembagi.
Menampilkan
“Program menentukan bilangan prima 1-100”
Proses
perulangan untuk menentukan diantara bilanga 1 sampai 100 mana yang termasuk
bilangan prima.
Deklarasi
dari variabel x dengan inisialisasi niali awal 0.
Deklarasi
dari variabel mod dengan inisialisasi niali awal 0.
Proses
perulangan untuk melakukan modulus bilangan yang telah diperoleh dari loop
pertama, dengan angka pembagi yang terus berubah sampai kondisi terpenuhi,
perulangan akan berhenti setelah kondisi variabel pembagi sama dengan
bilangan.
Proses
modulus bilangan dengan pembagi yang disimpan pada variabel mod.
Proses
seleksi kondisi jika nilai dari modulus sama dengan 0,
Maka
akan masuk pada nested seleksi kondisi jika bilangan tidak sma dengan
pembagi,
Maka
nilai dari variabel x sama dengan 1.
Akhir
dari statemen seleksi kondisi pertama.
Masuk
pada proses seleksi kondisi selanjutnya yaitu, jika nilai dari negasi 1 dan
bilangan sama dengan pembagi,
Maka
akan menampilkan nilai dari varibel bilangan.
Akhir
dari statemen seleksi kondisi kedua.
Akhir
dari statemen seleksi kondisi modulus.
Akhir
dari perulangan pembagi.
Akhir
dari perulangan bilangan.
Mengembalikan
nilai dari variabel bilangan.
Menutup
deklarasi method BilPrima1_100.
Akhir deklarasi class Tugas2.
|
C. SCREENSHOT
PROGRAM
Tugas
Praktikum 5.1
Tugas
Praktikum 5.2
D. PRAKTIKUM
Data dan Analisis hasil percobaan :
A.
Method Void
1.
Jalankan program method void dan benahi jika menemukan
kesalahan!
Jawaban
:
Ada kesalah pada method volBalok kurang penambahan
modifier static yang digunakan untuk mengakses anggota baik variable ataupun
method ( prosedur atau fungsi ) pada class tertentu tanpa harus membuat suatu
objek dari class itu. dengan menggunakan modifier(static) kita dapat langsung
menggunakan variable ataupun method.
2.
Apa perbedaan dari kedua method void pada program diatas?
Jelaskan!
Jawaban
:
Untuk method void pertama yaitu
volPrismaSegitiga menggunakan modifier(static) jadi ketika melakukan pemangilan
pada method main bisa dikakukan secara langsung tanpa membuat objek dari calss
tersebut. Sedangkan untuk method kedua yaitu volBalok tidak mengunakan modifier
maka ketika kita kan memangil method tesebut pada method main kita harus
membuat objek dari class tersebut (Prak_void nama_objek = new Prak_void();) setelah
itu baru kita panggi method yang akan digunakan dengan cara
(nama_objek.volBalok;)
3.
Jelaskan alur kerja program method void tersebut!
Jawaban
:
Pada program prak_void keseluruhan coding tidak
ditempatkan pada method main saja, melainkan adanya penambahan method baru
untuk menjalankan fungsi tersendiri, pada method main hanya menyediakan alur
program setelah user melakukan pemilihan maka method main akan langsung
mengarahkan pada method yang dituju.
4.
Gantilah method void volBalok menjadi method yang
menghitung luas, keliling dan sisi miring segitiga siku-siku dengan output 2
angka dibelakang koma!
Jawaban
:
5.
Gantilah method void volPrismaSegitiga menjadi method
yang menghitung luas, keliling segitiga sembarang dengan output 2 angka
dibelakang koma!
Jawaban
:
B.
Method Return Value
1.
Jalankan program method return value dan benahi jika
menemukan kesalahan!
Jawaban
:
Ada kesalah pada method showData kurang penambahan
modifier static yang digunakan untuk mengakses anggota baik variable ataupun
method ( prosedur atau fungsi ) pada class tertentu tanpa harus membuat suatu
objek dari class itu. dengan menggunakan modifier(static) kita dapat langsung
menggunakan variable ataupun method.
2.
Jelaskan alur kerja program method return value tersebut!
Jawaban
:
Method return value mengembalikan suatu nilai
ketika kembali ke program utamanya disertai dengan membawa suatu nilai.
3.
Tambahkan masukan untuk menambahkan tempat tanggal lahir
untuk menentukan umur. Apabila umur >20 berstatus “Adult” , umur < 20
berstatus “teen”!
Jawaban
:
4.
Jelaskan perbedaan penggunaan method void dengan return
value!
Jawaban
:
Method void merupakan sebuah method yang
tidak mengembalikan nilai yang ada pada method tersebut. Sedangkan Method
return value merupakan method yang mengembalikan suatu nilai ketika kembali ke
program utamanya disertai dengan membawa suatu nilai.
C.
Method Return Value Berparameter Array
1.
Jalankan program method return value berparameter array
dan benahi jika menemukan kesalahan!
Jawaban
:
Tidak ada kesalahan.
2.
Jelaskan alur kerja program method return value
berparameter array tersebut!
Jawaban
:
Method return value dengan menggunakan parameter array
pada dasarnya sama seperti method return value berparameter variable hanya saja
tipe data nilai yang kembali berupa array atau integer.
3.
Tambahkan method untuk mengurutkan angka dari yang
terbesar ke terkecil!
Jawaban
:
4.
Jelaskan perbedaan penggunaan method return value dengan
method return value yang berparameter array!
Jawaban
:
Perbedaanya hanya berupa parameter yang akan diproses
pada method.
D.
Method Rekursif
1.
Jalankan kelas Input dan benahi jika menemukan kesalahan!
Jawaban
:
Tidak ada kesalahan.
2.
Jelaskan alur kerja program method rekursif tersebut!
Jawaban
:
Method rekursif memanggil dirinya sendiri untuk melakukan
proses.
3.
Ubahlah program tersebut menjadi program interaktif
menggunakan inputan user!
Jawaban
:
4.
Buatlah program yang mencetak deret Fibonacci yang di
dalamnya terdapat method rekursif. Deret Fibonacci merupakan suatu deret dimana
bilangan berikutnya adalah hasil dari penjumlahan 2 bilangan sebelumnya!
Jawaban
:
5.
Jelaskan perbedaan penggunaan method return value dengan
method rekursif!
Jawaban
:
Method return value merupakan method yang
mengembalikan suatu nilai ketika kembali ke program utamanya disertai dengan
membawa suatu nilai. Sedangkan Method rekursif merupakan suatu method/statement
yang berfungsi untuk memanggil dirinya sendiri.
E. KESIMPULAN
Method adalah bagian – bagian kode yang dapat dipanggil
ole program utama atau dari method lainnya untuk menjalankan fungsi yang
spesifik. Dengan menggunakan method dapat membuat program menjadi lebih mudah
dimengerti dan mudah dalam pendokumentasian.
Jenis-jenis method adalah sebagai berikut :
-
Method Void
Suatu method yang tidak mengembalikan nilai yang ada pada
method tersebut.
Modifier void Nama_method (parameter){
Statement;
}
-
Method Return Value
Suatu method yang mengembalikan suatu nilai ketika
kembali ke program utamanya disertai dengan membawa suatu nilai.
Modifier tipe_data Nama_method (parameter){
Statement;
return Nama_variabel;
}
-
Method Return Value Menggunakan Array Parameter
pada dasarnya sama seperti method return value
berparameter variable hanya saja tipe data nilai yang kembali berupa array atau
integer.
Modifier tipe_data[] Nama_method (parameter []){
Statement;
return Nama_variabel;
}
-
Method Rekursif
Suatu method/statement yang berfungsi untuk memanggil
dirinya sendiri.
Modifier tipe_data Nama_method (parameter){
Statement;
return Nama_method;
}
Perbedaan antara method void dengan method return value
adalah hanya pada pada pengembalian nilai, Method void merupakan sebuah method
yang tidak mengembalikan nilai yang ada pada method tersebut. Sedangkan Method return value merupakan method yang mengembalikan
suatu nilai ketika kembali ke program utamanya disertai dengan membawa suatu
nilai.
Fungsi rekursif adalah method mengulang dirinya sendiri.
Mrthod ini memanggil dirinya sendiri untuk melakukan proses berulang-ulang.
Kasus sederhana yang sering muncul adalah proses berulang-ulang menghitung
hasil faktorial.
Lihat Selengkapnya
Semoga Bermanfaat salam : Arif Andrian
No comments