BAB[5] 165150200111033 INSAN NURZAMAN BANGGA ADI PRATAMA

(1)

LABORATORIUM PEMBELAJARAN ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER

UNIVERSITAS BRAWIJAYA

BAB

: METHOD

NAMA

: INSAN NURZAMAN BANGGA ADI PRATAMA

NIM

: 165150200111033

TANGGAL

: 02/12/2016

ASISTEN

: - AHMAD WICAKSANA

-ARDA SATATA F

-DAVID BERNHARD

A. DEFINISI MASALAH

1. Buatlah program dengan method untuk menghitung nilai permutasi dan kombinasi dari sebuah nilai yang dimasukkan


(2)

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

B. SOURCE CODE

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 package Method; import java.util.Scanner; public class Soal1 {

public static void main(String[] args) { Scanner scan = new Scanner(System.in); int i = 0;

do {

System.out.println("Program Penghitung Kombinasi dan Permutasi");

System.out.print("1.Menghitung Permutasi \n" + "2.Menghitung Kombinasi \n"

+ "3.Keluar \n"

+ "Masukan Pilihan Anda : "); int x = scan.nextInt();

switch (x) {

case 1: Permutasi();break; case 2: Kombinasi();break; case 3: i++;break;

}

}while(i == 0); }

public static void Permutasi(){

Scanner scan = new Scanner(System.in); System.out.print("Masukan nilai n : "); int n = scan.nextInt();

System.out.print("Masukan nilai r : "); int r = scan.nextInt();

int hasil, hasil2,hasil3; int bilangan = n;

int bilangan2 = n-r;

hasil = faktorial(bilangan); hasil2= faktorial(bilangan2); hasil3 = hasil / hasil2;

System.out.println(" n! ");

System.out.println("nPr = --- = " + hasil3 ); System.out.println(" (n-r)! ");

System.out.println("Maka Hasil Permutasinya adalah " + hasil3);

System.out.println(""); }


(3)

42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 if (bil==1) return 1; else

return (bil * faktorial(bil-1)); }

public static void Kombinasi() {

Scanner scan = new Scanner(System.in); System.out.print("Masukan nilai n : "); int n = scan.nextInt();

System.out.print("Masukan nilai r : "); int r = scan.nextInt();

int a = n-r;

int hasil6 = faktorial(n)/ (faktorial(a) * faktorial(r)); System.out.println(" n! ");

System.out.println("nPr = --- = " + hasil6 ); System.out.println(" (n-r)!r! ");

System.out.println("Maka Hasil Kombinasinya adalah "+ hasil6 ); System.out.println(""); } }

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 package Method; import java.util.Scanner; public class Soal2 {

public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.print("Masukan angka : "); int a = scan.nextInt();

prima(a);}

static void prima(int a) { String c = null;

for (int x = 2; x <= 100; x++) {

if( x == 2 || x == 3 || x == 5 || x == 7) { c = "termasuk";

}else if ( x % 2 == 0 || x % 3 == 0 || x % 5 == 0 || x % 7 == 0){

c ="tidak termasuk"; }else if ( x % 2 == 1){ c = "termasuk"; }else {

c = "tidak termasuk"; }

}System.out.println("Bilangan " +a+ " " + c + " bilangan prima");

System.out.println("Program menentukan bilanga prima 1 - 100");

for (int x = 2; x <= 100; x++) {

if( x == 2 || x == 3 || x == 5 || x == 7) { System.out.print(x+" ");

}else if ( x % 2 == 0 || x % 3 == 0 || x % 5 == 0 || x % 7 == 0){

System.out.print(""); }else if ( x % 2 == 1){

System.out.print(x + " "); }else {


(4)

35

36 System.out.print("");}}}}

C. PEMBAHASAN

1.

1 2 3 4 5 6 7 8 10 14 15 16 17 18 20 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 41 42 43 44 45

Class bearada dalam package Method

Memasukan nilai variabel dari keybord menggunakan kelas Scanner Deklarasi class dengan nama Soal1

Metode main() untuk menjalankan program dengan args sebagai argument dengan elemen bertipe String.

Pembuatan instan kelas dengan nama ‘scan’

Deklarasi variabel i yang benilai 0 dengan tipe data integer Proses looping do

Proses mencetak ‘Program Penghitung Kombinasi dan Permutasi’

Proses mencetak ‘1.Menghitung Permutasi 2.Menghitung Kombinasi 3.KeluarMasukan Pilihan Anda :’

Proses menginputkan nilai kedalam variabel x dengan tipe data integer Proses switch untuk memilih case berdasarkan inputan user

Proses mencocokan nilai switch dengan case 1 yang berisi method permutasi dilanjutkan dengan break

Proses mencocokan nilai switch dengan case 2 yang berisi method kombinasi dilanjutkan dengan break

Proses mencocokan nilai switch dengan case 3 yang berisi increment variabel I untuk menghentikan looping do-while

Proses looping while untuk cek kondisi dengan nilai apabila i = 0 maka program terus berulang

Method void dengan nama Permutasi

Memasukan nilai variabel dari keybord menggunakan kelas Scanner Proses mencetak ‘masuka nilai n : ‘

Proses menginputkan nilai kedalam variabel n dengan tipe data integer Proses mencetak ‘masukan nilai r : ‘

Proses menginputkan nilai kedalam variabel r dengan tipe data integer Proses deklarasi variabel hasil,hasil2,hasil3 dengan tipe data integer Deklarasi variabel bilangan dengan nilai n dan tipe data integer

Deklarasi variabel bilangan2 dengan nilai n – r yang bertpe data integer Memasukan hasil dari method faktorial kedalam variabel hasil

Memasukan hasil dari method faktorial2 kedalam variabel hasil2

Proses menghitung nilai dari variabel hasil dibagi nilai dari variabel hasil2 dan disimpan kedalam variabel hasil3

Proses mencetak ‘n!’

Proses mencetak ‘nPr = --- = ‘ dan memanggil nilai dari variabel hasil3 Proses mencetak ‘n-r!’

Proses mencetak ‘Maka Hasil Permutasinya adalah’ dan memanggil nilai dari variabel hasil3

Proses mencetak garis baru

Proses membuat method public static int dengan nama faktorial dan berparameter bil dengan tipe data integer

Proses seleksi kondisi if (bil == 1) Proses membalikkan nilai return 1

Proses menjebatani statement yang akan digunakan apabila if bernilai salah Proses membalikkan nilai return (bil * faktorial(bil-1));


(5)

47 48 49 50 51 52 53 54 55 56 57 58 60

Pembuatan method void dengan nama Kombinasi

Pembuatan instan kelas dengan nama ‘scan’ untuk menginput data Proses mencetak ‘masuka nilai n : ‘

Proses menginputkan nilai kedalam variabel n dengan tipe data integer Proses mencetak ‘masukan nilai r : ‘

Proses menginputkan nilai kedalam variabel r dengan tipe data integer

Proses menghitung nilai n – r dan hasilnya disimpan kedalam variable a dengan tipe data integer

Proses menhtitung factorial(n) dibagi dengan dalam kurung faktorial(a) dikali faktorial (r)

Proses mencetak ‘n!’

Proses mencetak ‘nPr = --- = ‘ dan memanggil nilai dari variabel hasil3 Proses mencetak ‘n-r!’

Proses mencetak ‘Maka Hasil Permutasinya adalah’ dan memanggil nilai dari variabel hasil3

Proses mencetak garis baru

2.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 19 20 22 24 26 27 28 29 31

Class berada dalam package Method

Memasukan nilai variabel dari keybord menggunakan kelas Scanner Deklarasi class dengan nama Soal1

Metode main() untuk menjalankan program dengan args sebagai argument dengan elemen bertipe String.

Pembuatan instan kelas dengan nama ‘scan’ Proses mencetak ‘Masukan angka : ‘

Proses memasukkan nilai kedalam variabel a dengan tipe data integer Proses memanggil method prima

Proses membuat method static void prima dengan paramater a beritpe integer Deklarasi variabel c dengan tipe data String dan bernilai null

Proses pengulangan for dengan x yang bertipe data integer sebagai variabel peentu yang memiliki nilai awal 2 dan memiliki batasan x <= 100 serta nilai bertambah terus sejumlah 1

Proses seleksi jika x = 2 atau x = 3 atau x = 5 atau x = 7

Jika kondisi if bernilai benar maka program akan menuju statement variabel c Proses seleksi jika x % 2 = 0 atau x % 3 = 0 atau x % 5 = 0 atau x % 7 = 0 Jika kondisi if bernilai benar maka program akan menuju statement variabel c Proses seleksi kondisi jika x % 2 = 1

Jika kondisi if bernilai benar maka program akan menuju statement variabel c Jika kondisi tidak terpenuhi maka akan statement else akan bekerja

Jika kondisi if bernilai benar maka program akan menuju statement variabelc Proses mencetak ‘Bilangan dan ‘bilangan prima’ serta akan memanggil nilai dari variabel a dan c untuk dicetak

Proses mencetak ‘Program menentukan bilanga prima 1 – 100

Proses pengulangan for dengan x yang bertipe data integer sebagai variabel peentu yang memiliki nilai awal 2 dan memiliki batasan x <= 100 serta nilai bertambah terus sejumlah 1

Proses seleksi jika x = 2 atau x = 3 atau x = 5 atau x = 7

Jika kondisi if bernilai benar maka program akan mencetak x dan spasi Proses seleksi jika x % 2 = 0 atau x % 3 = 0 atau x % 5 = 0 atau x % 7 = 0 Jika kondisi if bernilai benar maka program akan mencetak spasi


(6)

32 33 34 35

Proses seleksi kondisi jika x % 2 = 1

Jika kondisi if bernilai benar maka program akan mencetak x dan spasi Jika kondisi tidak terpenuhi maka akan statement else akan bekerja Jika kondisi if bernilai benar maka program akan mencetak spasi

D. SCREENSHOT PROGRAM

Soal No 1


(7)

E. PRAKTIKUM

A. Method Void

1. Jalankan program method void dan benahi jika menemukan kesalahan! Program sebelum diperbaiki


(8)

Pada program tersebut terdapat kesalahan pada baris ke 22 yang menyatakan bahwa method volbalok tidak dapat di akses dikarenakan pada method volbalok tidak terdapat method static.


(9)

Setelah program diperbaiki dengan cara menambahkan method static pada method volbalok maka program dapat berjalan.

2. Apa perbedaan dari kedua method void pada program diatas? Jelaskan!

Perbedaannya yaitu pada methode volprismasegitiga method bersifat private yang artinya tidak dapat diakses oleh kelas lain. Sedangkan pada method volbalok methode bersifat public yang artinya dapat diakses oleh kelas lain.

3. Jelaskan alur kerja program method void tersebut! Alur kerja program method void tersebut sebagai berikut:

1) User menginputkan angka sesuai dengan anga pilihannya 2) Program akan mencocokan angka pilihan user pada switch case 3) Program akan memanggil methode sesuai angka inputan user

4) Program akan menjalankan proses – proses yanga terdapat pada methode yang dipilih

5) Program akan kembali kepada program utama

6) Program akan berhenti apabila user menginput angka 3

4. Gantilah method void volBalok menjadi method yang menghitung luas, keliling dan sisi miring segitiga siku-siku dengan output 2 angka dibelakang koma!


(10)

5. Gantilah method void volPrismaSegitiga menjadi method yang menghitung luas, keliling segitiga sembarang dengan output 2 angka dibelakang koma!


(11)

B. Method Return Value

1. Jalankan program method return value dan benahi jika menemukan kesalahan! Program sebelum diperbaiki


(12)

Pada program tersebut terdapat kesalahan di baris 22, 23, 25, 27 sehingga membuat error ketika program dijalankan. Kesalahan teresebut dapat diperbaiki dengan cara

memperbaiki tulisan Public menjadi public dan menambahkan kata method static. Program setelah diperbaiki

2. Jelaskan alur kerja program method return value tersebut! Alur kerja program method return value tersebut sebagai berikut :

1) Program akan meminta user untuk menginputkan nim , nama, dan jurusan. 2) Hasil inputan akan di simpan di dalam method showData


(13)

3. Tambahkan masukan untuk menambahkan tempat tanggal lahir untuk menentukan umur. Apabila umur >20 berstatus “Adult” , umur < 20 berstatus “teen”!


(14)

4. Jelaskan perbedaan penggunaan method void dengan return value!

Perbedaan method void dengan return value yaitu pada method void tidak memiliki nilai balik. Sedangkan method return value memiliki nilai balik.


(15)

C. Method Return Value Berparameter Array

1. Jalankan program method return value berparameter array dan benahi jika menemukan kesalahan!


(16)

Program setelah diperbaiki

Program tersebut terdapat kesalahan pada import dan Java yang seharusnya java. 2. Jelaskan alur kerja program method return value berparameter array tersebut!

Alur kerja dari program method return value berparameter array tersebut sebagai berikut: 1) Pada main method telah tersedia array dengan nama variabel arr dan telah berisi

sejumlah angka acak (tidak berurut berdasarkan besar kecilnya)

2) Membuat metode yang bernama sort dengan nilai arr berada di dalamnya 3) Program menuju methode sort dengan parameter berupa array dengan nama

variabel acak dan bertipe data integer 4) Nilai awal bil1 dan bil2 = 0

5) Selama bil1 < banyaknya variabel acak maka bil2 = bil1

6) Selama bil2< banyaknya variabel acak maka jika nilai atau isi array dari dari variabel acak kurang dari bil2 variabel acak maka acak [bil1] yang nilainya disimpan dalam variabel bertipe data integer nilainya akan sama dengan acak[bil2]

7) Bil2 terus bertamabah1

8) Bil 1 terus bertamabah1 dan variabel acak nilainya dikembalikan oleh return 9) Dan di method main array arr[i] akan dipanggil kembali untuk dicetak


(17)

3. Tambahkan method untuk mengurutkan angka dari yang terbesar ke terkecil!

4. Jelaskan perbedaan penggunaan method return value dengan method return value yang berparameter array!

Pada method return value, parameter adalah inputan atau nilai yang sudah ditentukan sebelumnya oleh user sedangkan method return value berparameter array parameter berupa array.

D. Method Rekursif

1. Jalankan kelas Input dan benahi jika menemukan kesalahan!

2. Jelaskan alur kerja program method rekursif tersebut! Alur kerja dari program method rekursif yatu sebagai berikut:

1) Deklarasi variabel hasil dengan tipe data integer

2) Inisialisasi dan deklarasi variabel bilangan dengan tipe data integer dan nilai 5 3) Memangil method faktorial dengan cara membungkus dalam variabel hasil 4) Proses yang dilakukan di dalam method fakorial yang berparameter bil dengan


(18)

3. Ubahlah program tersebut menja di program interaktif menggunakan inputan user!

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!

5. Jelaskan perbedaan penggunaan method return value dengan method rekursif! Method return value merupakan yang mengembalikkan suatu nilai ketika kembali ke program utamanya disertai dengan mengembalikka suatu nilai. Sedangkan Method rekursif merupakan suatu method / statement yang berfungsi untuk memanggil dirinya sendiri.

F. KESIMPULAN

Tipe – tipe method dalam java ada empat yaitu: 1. Method void

Method void merupakan sebuah method yang tidak mengembalikan nilai yang ada pada method tersebut.

Cara menuliskan method void yaitu

public / private static void nama_metode(parameter / tipe argumen){ pernyataan_1

…..

Pernyataan_n; }


(19)

Method return value merupakan method yang mengembalikan suatu nilai ketika kembali ke program utamanya disertai dengan membawa suatu nilai.

Cara menuliskan method return value yaitu

public/private static tipe_nama nama_method(parameter/tipe argumen) { pernyataan_1;

…..

pernyataan_n; return; }

3. Method Return Menggunakan Parameter Array

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.

Cara menuliskan method return menggunakan parameter array yaitu public/private static tipe_nama nama_method(parameter array) { pernyataan_1;

…..

pernyataan_n; return; }

4. Method Rekursif

Method rekursif merupakan suatu method/statement yang berfungsi untuk memanggil dirinya sendiri.

public/private static tipe_nama nama_method(parameter/tipe argumen) { if(argumen == 1)

return 1; else

return (argumen * nama_method(argumen-1));

}

Pada method void tidak memiliki nilai bali sedangkan pada method return value memiliki nilai balik

Fungsi adalah sekumpulan kode yang ditujukan untuki melaksanakan suatu tugas tertentu yang melekat dalam suatu objek dan kode – kode tersebut akan dijalankan apabila namanya di panggil. Sebagai contoh yaitu fungsi Math.Sqrt() , dengan fungsi ini kita dapat dengan mudah mencari akar dua dari suatu bilangan.


(1)

4. Jelaskan perbedaan penggunaan method void dengan return value!

Perbedaan method void dengan return value yaitu pada method void tidak memiliki nilai balik. Sedangkan method return value memiliki nilai balik.


(2)

C. Method Return Value Berparameter Array

1. Jalankan program method return value berparameter array dan benahi jika menemukan kesalahan!


(3)

Program setelah diperbaiki

Program tersebut terdapat kesalahan pada import dan Java yang seharusnya java. 2. Jelaskan alur kerja program method return value berparameter array tersebut!

Alur kerja dari program method return value berparameter array tersebut sebagai berikut: 1) Pada main method telah tersedia array dengan nama variabel arr dan telah berisi

sejumlah angka acak (tidak berurut berdasarkan besar kecilnya)

2) Membuat metode yang bernama sort dengan nilai arr berada di dalamnya 3) Program menuju methode sort dengan parameter berupa array dengan nama

variabel acak dan bertipe data integer 4) Nilai awal bil1 dan bil2 = 0

5) Selama bil1 < banyaknya variabel acak maka bil2 = bil1

6) Selama bil2< banyaknya variabel acak maka jika nilai atau isi array dari dari variabel acak kurang dari bil2 variabel acak maka acak [bil1] yang nilainya disimpan dalam variabel bertipe data integer nilainya akan sama dengan acak[bil2]

7) Bil2 terus bertamabah1

8) Bil 1 terus bertamabah1 dan variabel acak nilainya dikembalikan oleh return 9) Dan di method main array arr[i] akan dipanggil kembali untuk dicetak


(4)

3. Tambahkan method untuk mengurutkan angka dari yang terbesar ke terkecil!

4. Jelaskan perbedaan penggunaan method return value dengan method return value yang berparameter array!

Pada method return value, parameter adalah inputan atau nilai yang sudah ditentukan sebelumnya oleh user sedangkan method return value berparameter array parameter berupa array.

D. Method Rekursif

1. Jalankan kelas Input dan benahi jika menemukan kesalahan!

2. Jelaskan alur kerja program method rekursif tersebut! Alur kerja dari program method rekursif yatu sebagai berikut:

1) Deklarasi variabel hasil dengan tipe data integer

2) Inisialisasi dan deklarasi variabel bilangan dengan tipe data integer dan nilai 5 3) Memangil method faktorial dengan cara membungkus dalam variabel hasil 4) Proses yang dilakukan di dalam method fakorial yang berparameter bil dengan


(5)

3. Ubahlah program tersebut menja di program interaktif menggunakan inputan user!

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!

5. Jelaskan perbedaan penggunaan method return value dengan method rekursif! Method return value merupakan yang mengembalikkan suatu nilai ketika kembali ke program utamanya disertai dengan mengembalikka suatu nilai. Sedangkan Method rekursif merupakan suatu method / statement yang berfungsi untuk memanggil dirinya sendiri.

F. KESIMPULAN

Tipe – tipe method dalam java ada empat yaitu: 1. Method void

Method void merupakan sebuah method yang tidak mengembalikan nilai yang ada pada method tersebut.

Cara menuliskan method void yaitu

public / private static void nama_metode(parameter / tipe argumen){ pernyataan_1

…..

Pernyataan_n; }


(6)

Method return value merupakan method yang mengembalikan suatu nilai ketika kembali ke program utamanya disertai dengan membawa suatu nilai.

Cara menuliskan method return value yaitu

public/private static tipe_nama nama_method(parameter/tipe argumen) { pernyataan_1;

…..

pernyataan_n; return; }

3. Method Return Menggunakan Parameter Array

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.

Cara menuliskan method return menggunakan parameter array yaitu public/private static tipe_nama nama_method(parameter array) { pernyataan_1;

…..

pernyataan_n; return; }

4. Method Rekursif

Method rekursif merupakan suatu method/statement yang berfungsi untuk memanggil dirinya sendiri.

public/private static tipe_nama nama_method(parameter/tipe argumen) { if(argumen == 1)

return 1; else

return (argumen * nama_method(argumen-1));

}

Pada method void tidak memiliki nilai bali sedangkan pada method return value memiliki nilai balik

Fungsi adalah sekumpulan kode yang ditujukan untuki melaksanakan suatu tugas tertentu yang melekat dalam suatu objek dan kode – kode tersebut akan dijalankan apabila namanya di panggil. Sebagai contoh yaitu fungsi Math.Sqrt() , dengan fungsi ini kita dapat dengan mudah mencari akar dua dari suatu bilangan.