Senin, Agustus 26, 2019


Apa itu method rekursif?
Method rekursif adalah method yang memanggil method itu sendiri (memanggil dirinya sendiri).

Mengapa dibuat rekursif?
Supaya lebih simple dan lebih mudah direalisasikan, karena beberapa masalah lebih mudah diselesaikan menggunakan rekursif. Contohnya, pada kasus pelacakan direktori atau sistem file, pelacakan pada pohon, dan beberapa algoritma pengurutan data.

Bagaimana rekursif bekerja?
Java menggunakan internal stack of activation records (dapat dibayangkan sebagai kertas yang memiliki informasi tentang method), misalnya pada nilai parameter, variabel lokal, dan program counter (PC).
Activation records berbentuk stack (tumpukan). Ketika program belum dijalankan, maka tumpukan (stack) masih bernilai 0. Setiap kali method dipanggil, sebuah activation records dibuat dan dimasukkan ke dalam sebuah tempat yang dinamakan tumpukan (stack). Kemudian ketika program selesai dijalankan (build succesfull), maka stack akan kembali bernilai 0.

contoh :

public static void main(String args[]){
count(0);
System.out.print();
}

public static void count(int index){
System.out.print(index);
 if(index<2){
count(index+1);
}
}

Syarat ketika sebuah method rekrusif tidak memanggil dirinya sendiri yaitu dengan adanya base case (untuk membatasi sehingga perulangan memanggil method berhenti, karena tidak memenuhi syarat lagi). Jika base case tidak diprogram untuk membatasi perulangan, maka akan terjadi eror (stack over flow).








Selasa, Agustus 20, 2019

Case :


Terdapat tiga maskapai penerbangan yaitu G, L, S. Masing-masing maskapai menerapkan harga tiket yang berbeda untuk masing-masing tujuan yang berbeda. Ketentuannya adalah sebagai berikut :  
 
•     Maskapai G tujuan Jakarta menerapkan harga tiket Rp 1.250.000
•     Maskapai G tujuan Bali menerapkan harga tiket Rp 1.000.000
•     Maskapai G tujuan Makasar menerapkan harga tiket Rp 1.500.000
•     Maskapai L tujuan Jakarta menerapkan harga tiket Rp 500.000
•     Maskapai L tujuan Bali menerapkan harga tiket Rp 400.000
•     Maskapai L tujuan Makasar menerapkan harga tiket Rp 900.000
•     Maskapai S tujuan Jakarta menerapkan harga tiket Rp 600.000
•     Maskapai S tujuan Bali menerapkan harga tiket Rp 800.000
•     Maskapai S tujuan Makasar menerapkan harga tiket Rp 900.000

Ketiga maskapai tersebut juga menerapkan biaya tambahan untuk bagasi yang melebihi 15 kg dengan ketentuan maskapai G Rp 20.000/kg, maskapai L Rp 10.000/kg, maskapai S Rp 15.000/kg. Buatlah program untuk menghitung biaya yang harus dikeluarkan seseorang berdasarkan permasalahan diatas! 


Dari case di atas, dapat di buat algoritma seperti berikut :


Algoritma pembayaran tiket pesawat
     1.      Masukkan maskapai penerbangan
     2.      Masukkan tujuan
     3.      Masukkan berat barang di bagasi
     4.      Jika maskapai penerbangan = G, lanjut ke nomor 5, jika tidak lanjut ke nomor 10
     5.      Jika tujuan=Jakarta, tampilkan harga tiket=1250000, jika tidak jalankan nomor 6
     6.      Jika tujuan=Bali, tampilkan harga tiket=1000000, jika tidak jalankan nomor 7
     7.      Jika tujuan=Makassar, tampilkan harga tiket=1500000
     8.      Jika berat barang di bagasi lebih dari 15 kg, kalikan berat barang dengan 20000
     9.      Tampilkan harga tiket, harga bayar bagasi dan harga total, selesai
     10.  Jika maskapai penerbangan = L, lanjut ke nomor 11, jika tidak lanjut ke nomor 16
     11.  Jika tujuan=Jakarta, tampilkan harga tiket=500000, jika tidak jalankan nomor 12
     12.  Jika tujuan=Bali, tampilkan harga tiket=400000, jika tidak jalankan nomor 13
     13.  Jika tujuan=Makassar, tampilkan harga tiket=900000
     14.  Jika berat barang di bagasi lebih dari 15 kg, kalikan berat barang dengan 10000
     15.  Tampilkan harga tiket, harga bayar bagasi dan harga total, selesai
     16.  Jika maskapai penerbangan = S, lanjut ke nomor 5, jika tidak lanjut ke nomor 22
     17.  Jika tujuan=Jakarta, tampilkan harga tiket=600000, jika tidak jalankan nomor 18
     18.  Jika tujuan=Bali, tampilkan harga tiket=800000, jika tidak jalankan nomor 19
     19.  Jika tujuan=Makassar, tampilkan harga tiket=900000
     20.  Jika berat barang di bagasi lebih dari 15 kg, kalikan berat barang dengan 15000
     21.  Tampilkan harga tiket, harga bayar bagasi dan harga total, selesai
     22.  Tampilkan “Input salah”


 Penyelesaian program di Java Netbeans 8.2 :






 


Package (case 6), adalah sebuah wadah suatu program, sedangkan dalam penulisan program terdapat kelas (case 14) dan kelas utama (16).
Untuk mengimport/memanggil Scanner digunakan import java.util.Scanner (case 8), kemudian kita beri nama Scanner tersebut dengan Scanner a = new Scanner(System.in); (case 17).
Deklarasi variable ditunjukkan di (case 19, case 20) dengan masing-masing variable maskapai dan tujuan bertipe string, serta variable jumlah bagasi, variable bayar yang memuat perhitungan pembayaran, dan variable total pembayaran serta harga tiket yang bertipe int.
(Case 22, case 24, case 26) adalah perintah untuk menampilkan masukan, dan masukan tersebut di ambil dari input keyboard (case 23, case 25, case 27).
Dalam kasus ini, digunakan switch case dan if else di dalam switch case.
Untuk switch case pertama mengidentifikasi input maskapai apakah maskapai yang diinput dari keyboard  G, L atau S. (Case 30, case 54, case 78).
Untuk switch case kedua mengidentifikasi input tujuan apakah Jakarta, Bali atau Makassar. (Case 32, case 36, case 40) untuk case maskapai G, (case 56, case 60, case 64) untuk case maskapai L, dan (case 80, case 84, case 88) untuk case maskapai S.
Kemudian masih ada lagi fungsi if else untuk menentukan apakah seorang klien memerlukan biaya tambahan untuk membayar bagasi (case 45-case 52), (case 69-case 76), (case 93-case 100).

Output program :






Formulir Kontak

Nama

Email *

Pesan *

Popular Posts

Followers