BAB 5 - Pemrograman Dasar : PROGRAM DENGAN MENGGUNAKAN METHOD

Share:

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.



Untuk lihat versi lengkapnya klik link dibawah ini:

Lihat Selengkapnya


Semoga Bermanfaat salam : Arif Andrian

No comments