Anda di halaman 1dari 12

BAB I PENDAHULUAN

Tujuan Praktikum
o Mampu membuat dan memanggil method dengan atau tanpa menggunakan parameter o Mampu menggunakan berbagai mekanisme untuk penggunaan parameter o Mampu menggunakan fungsi rekursif

Teori Pengantar
Method adalah suatu subrutin yang secara eksklusif diasosiasikan dengan class (disebut static method) dan object (disebut instance method). Method menyediakan mekanisme untuk mengakses dan memanipulasi data enkapsulasi yang di-store dalam suatu objek. Method berisi sekumpulan instruksi terpadu. Di dalam pembuatan method diperlukan keterangan yang mengatur tingkat akses, nilai balik, parameter, serta nama method tersebut. Penulisan program dengan menggunakan method dapat menyederhanakan kodenya. Karena method akan menyusun fungsi sesuai dengan pengelompokan yang diinginkan programmer, kemudian fungsi yang dikelompokkan oleh method itu tinggal dipanggil di Main. Salah satu fungsi utama dari method adalah memberikan nilai balikan atau return value. Jika returrn type bukan void, method tersebut dapat memberikan nilai balikan dengan keyword return. Eksekusi juga akan terhenti jika kata return telah diproses.

Bimo Adi Pradono 31045

www.digizoneku.com

BAB II PEMBAHASAN
Dalam praktikum ini, praktikan membuat 2 program C#: program pertama untuk membuat method dan program kedua untuk melakukan pengujian terhadap method yang sudah dibuat pada program pertama. Untuk lebih jelasnya, sudah dijelaskan dalam pembahasan berikut: 1. Menggunakan parameter yang mengembalikan nilai pada method ____________________________________ Program 1: membuat method LebihBesar ________________________________________________
using System.Collections.Generic; using System.Linq; using System.Text; namespace Guna { class Guna { public static int LebihBesar(int a, int b) { if (a > b) return a; else return b; } } }

Kode di atas adalah pembuatan method LebihBesar di mana prosesnya berupa perbandingan nilai a dan b. Jika a > b, maka nilai yang akan dikembalikan adalah a. Jika tidak, maka nilai yang akan dikembalikan adalah b. ____________________________________ Program 2: menguji method LebihBesar ________________________________________________
using using using using System; System.Collections.Generic; System.Linq; System.Text;

namespace Guna { public class Coba { public static void Main() { int x; //input nilai 1 int y; //input nilai 2 int lebihbesar; //hasil dari lebihbesar()

Bimo Adi Pradono 31045

www.digizoneku.com

//mengambil nilai variabel x dari input Console.WriteLine("Masukkan angka pertama: "); x = int.Parse(Console.ReadLine()); //mengambil nilai variabel y dari input Console.WriteLine("Masukkan angka kedua: "); y = int.Parse(Console.ReadLine()); //memanggil method LebihBesar() untuk membandingkan nilai x dan y lebihbesar = Guna.LebihBesar(x, y); //menampilkan nilai kembalian yang lebih besar Console.WriteLine("Nilai yang lebih besar adalah " + lebihbesar); Console.ReadLine(); } } }

Kode di atas, membandingkan 2 input angka (x dan y) yang memperoleh nilai dari masukan keyboard dengan cara memanggil method LebihBesar (di mana method LebihBesar berisi pembanding nilai 2 int variabel). ___________ Run Program ___________

2. Menggunakan method dengan reference parameter ____________________________________ Program 1: membuat method Tukar ________________________________________________
using using using using System; System.Collections.Generic; System.Linq; System.Text;

namespace Guna { class Guna { public static void Tukar(ref int a, ref int b) { int temp = a; a = b; b = temp; } } }

Bimo Adi Pradono 31045

www.digizoneku.com

Jalan logikanya: nilai dari variabel a disimpan di temp, nilai variabel b menjadi nilai variabel a, dan nilai yang sebelumnya telah tersimpan di temp diberikan ke variabel b. Method di atas diuji dengan: ____________________________________ Program 2: menguji method Tukar ________________________________________________
using using using using System; System.Collections.Generic; System.Linq; System.Text;

namespace Guna { public class Coba { public static void Main() { int x; //input nilai 1 int y; //input nilai 2 int lebihbesar; //hasil dari lebihbesar() //mengambil nilai variabel x dari input Console.WriteLine("Masukkan angka pertama: "); x = int.Parse(Console.ReadLine()); //mengambil nilai variabel y dari input Console.WriteLine("Masukkan angka kedua: "); y = int.Parse(Console.ReadLine()); //memanggil method LebihBesar() lebihbesar = Guna.LebihBesar(x, y); Console.WriteLine("\nNilai yang lebih besar adalah lebihbesar); //print hasil variabel sebelum ditukar Console.WriteLine("\nSebelum ditukar: " + x + ", " //memanggil method Tukar sehingga proses penukaran //akan terjadi Guna.Tukar(ref x, ref y); //print hasil variabel setelah ditukar Console.WriteLine("Setelah ditukar: " + x + ", " + Console.ReadLine(); } } }

" +

+ y); nilai variabel

y);

___________ Run Program ___________

Bimo Adi Pradono 31045

www.digizoneku.com

3. Menggunakan method denga output parameter ____________________________________ Program 1: membuat method Faktorial ________________________________________________
using using using using System; System.Collections.Generic; System.Linq; System.Text;

namespace Guna { class Guna { //method LebihBesar public static int LebihBesar(int a, int b) { if (a > b) return a; else return b; } //method Tukar public static void Tukar(ref int a, ref int b) { int temp = a; a = b; b = temp; } //method Faktorial public static bool Faktorial(int n, out int jawaban) { int k; //deklarasi variabel untuk loop counter int f; //deklarasi variabel untuk hasil perhitungan bool ok = true; //true jika berhasil, false jika gagal //periksa nilai dari input if (n < 0) ok = false; //hitung nilai faktorial sebagai hasil perkalian dari //semua angka dai dua sampai n

Bimo Adi Pradono 31045

www.digizoneku.com

//blok try try { checked { f = 1; //loop counter for (k = 2; k <= n; ++k) { //hasil perhitungan, f dikali k dan hasilnya disimpan //di f tiap kali loop counter terjadi f = f * k; } } } //blok catch catch (Exception) { //jika terjadi kesalahan dalam perhitungan, //tangkap disini. //Semua exception ditangani dengan cara //yang sama: //atur hasil menjadi nol dan mengembalikan //nilai false f = 0; ok = false; } //masukkan nilai hasil ke variabel jawaban jawaban = f; //kembali ke caller return ok; } } }

Method Faktorial merupakan method untuk memfaktorialkan angka. Untuk lebih jelasnya bisa dilihat dari method di bawah ini: ____________________________________ Program 2: menguji method Faktorial ________________________________________________
using using using using System; System.Collections.Generic; System.Linq; System.Text;

namespace Guna { public class Coba { public static void Main()

Bimo Adi Pradono 31045

www.digizoneku.com

{ int x; int y; int lebihbesar; int f; bool ok; //input nilai 1 //input nilai 2 //hasil dari lebihbesar() //hasil Faktorial //faktorial berhasil atau gagal

//mengambil nilai variabel dari input (penjelasan sama dg //sebelumnya) Console.WriteLine("Masukkan angka pertama: "); x = int.Parse(Console.ReadLine()); Console.WriteLine("Masukkan angka kedua: "); y = int.Parse(Console.ReadLine()); //memanggil method LebihBesar() dan menampilkan hasilnya lebihbesar = Guna.LebihBesar(x, y); Console.WriteLine("\nNilai yang lebih besar adalah " + lebihbesar); Console.WriteLine("\nSebelum ditukar: " + x + ", " + y); //memanggil method Tukar() dan menampilkan hasilnya Guna.Tukar(ref x, ref y); Console.WriteLine("Setelah ditukar: " + x + ", " + y); //memberikan input untuk faktorial Console.WriteLine("\nAngka untuk faktorial: "); x = int.Parse(Console.ReadLine()); //memanggil method Faktorial() ok = Guna.Faktorial(x, out f); //hasil output faktorial ditentukan dari boolean ok if (ok) //menampilkan ini jika true Console.WriteLine("\nFaktorial(" + x + ") = " + f); else //menampilkan ini jika false Console.WriteLine("\nTidak bisa menghitung faktorial ini.");

Console.ReadLine(); } } }

___________ Run Program ___________

Bimo Adi Pradono 31045

www.digizoneku.com

4. Tugas: Menambah Fungsi Rekursif _________________________________________ Program 1: membuat method FaktorialRekursif _______________________________________________________
using using using using System; System.Collections.Generic; System.Linq; System.Text;

namespace Guna { class Guna { //method LebihBesar, yang membandingkan nilai 2 variabel public static int LebihBesar(int a, int b) { if (a > b) return a; else return b; } //method Tukar, yang menukar nilai 2 variabel public static void Tukar(ref int a, ref int b) { int temp = a; a = b; b = temp; } //method Faktorial, yang memfaktorkan nilai variabel public static bool Faktorial(int n, out int jawaban) { int k; //loop counter int f; //hasil perhitungan bool ok = true; //true jika berhasil, false jika gagal //periksa nilai dari input if (n < 0) ok = false; //hitung nilai faktorial sebagai hasil perkalian dari //semua angka dai dua sampai n

Bimo Adi Pradono 31045

www.digizoneku.com

try { checked { f = 1; for (k = 2; k <= n; ++k) { f = f * k; } } } catch (Exception) { //jika terjadi kesalahan dalam perhitungan, //tangkap disini. //Semua exception ditangani dengan cara //yang sama: //atur hasil menjadi nol dan mengembalikan //nilai false f = 0; ok = false; } //masukkan nilai hasil jawaban = f; //kembali ke caller return ok; } //method FaktorialRekursif, sama dengan method Faktorial //hanya ditambah fungsi rekursif public static bool FaktorialRekursif(int n, out int f) { bool ok = true; //mengenali input negatif if (n < 0) { f = 0; ok = false; } if (n <= 1) f = 1; else { try { int pf; checked { ok = FaktorialRekursif(n - 1, out pf); f = n * pf; } } catch (Exception)

Bimo Adi Pradono 31045

www.digizoneku.com

{ //ketika terjadi kesalahan. Atur error //flag dan kembali ke nol f = 0; ok = false; } } return ok; } } }

_________________________________________ Program 2: menguji method FaktorialRekursif _______________________________________________________ - Program yang digunakan sama dengan yang digunakan untuk menguji method Faktorial sebelumnya. ___________ Run Program ___________ Hasil run-nya sama dengan hasil run method Faktorial sebelumnya:

Tentang rekursi: o Program rekursif memiliki kemampuan untuk melakukan pemanggilan terhadap dirinya sendiri. o Setiap saat terjadi pemangilan terhadap dirinya sendiri, program rekursif melakukan pekerjaan yang lebih kecil. Argumen yang dilewatkan akan semakin kecil. Secara garis besar, method ketiga dan method rekursi ini sama. Perbedaannya hanyalah dalam logika proses perkalian untuk mencapai nilai faktorial. Singkat cerita, fungsi program rekursif adalah supaya bisa melakukan pemanggilan pada dirinya sendiri (di mana ketika melakukan pemanggilan dirinya sendiri, pekerjaan yang dilakukan akan lebih kecil) sehingga meningkatkan performa program.

Bimo Adi Pradono 31045

www.digizoneku.com

BAB III JAWABAN PERTANYAAN


1. Jelaskan sekumpulan dan jenis-jenis method dilihat dari jenis masukannya, keluarannya dan parameternya!
Jawab: Instance method dalam implementasi yang tipikal adalah method yang melewatkan reference tersembunyi ke tempat object (class atau instance class) tersebut berada. Jadi, bisa mengakses data yang berasosiasi dengan instance method. Abstract method adalah suatu method dengan kode dummy yang tidak mempunyai implementasi. Sering digunakan sebagai placeholder untuk diganti nantinya oleh subclass dari atau suatu prototype object yang mengimplementasikan abstract method. Accessor method adalah method yang biasanya kecil, sederhana, dan menyediakan isi yang dibutuhkan untuk membuat suatu object bisa diakses (diambil) dari bagian lain di dalam program. Constructor method, (di-support oleh banyak bahasa pemrograman) berfungsi sebagai otomatisasi selama pembuatan (construction) instance suatu class. Beberapa bahasa pemrograman punya syntax khusus untuk konstruktor. Kalau di Java, C++, C#, ActionScript, and PHP, konstruktornya punya nama yang sama dengan kelasnya. Destructor method merupakan kebalikan dari konstruktor, yaitu berfungsi untuk menghancurkan (destruction) suatu instance dari kelas.

2. Apakah makna rekursi dalam latihan yang dilakukan di atas?


Jawab: Rekursif memiliki kemampuan untuk melakukan pemanggilan terhadap dirinya sendiri. Contohnya bisa dilihat pada method FaktorialRekursif yang melakukan perhitungan faktorial dengan menambahkan fungsi rekursif. Intinya, rekursi mirip dengan loop, hanya saja rekursif memanggil method tersebut di dalam method yang sama.

Bimo Adi Pradono 31045

www.digizoneku.com

BAB IV KESIMPULAN
1. Method dideklarasikan di dalam kelas. 2. Penggunaan method dapat menyederhanakan program. 3. Ada dua jenis variable: reference type dan value type. 4. Variabel reference type juga harus dikelarasikan di dalam kelas. 5. Perulangan dalam method dapat digantikan dengan fungsi rekursif. 6. Fungsi rekursif adalah fungsi yang bisa memanggil dirinya sendiri.

Bimo Adi Pradono 31045

www.digizoneku.com