Kelas & Method PART th week Estu Sinduningrum ST,MT

dokumen-dokumen yang mirip
Pertemuan 04. Pemrograman Dasar 2012

KELAS-KELAS DASAR. kelas String Buffer, kelas character, kelas number,

Pemrograman Berorientasi Objek. Beni Suranto, S.T.

Method. Pemrograman Dasar Sistem Informasi PTIIK Herman Tolle

ARRAY. 7 th week Estu Sinduningrum ST,MT

SUMBER BELAJAR PENUNJANG PLPG

LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA FAKULTAS ILMU KOMPUTER UNIVERSITAS BRAWIJAYA

Function, Array & Object in JavaScript

Pemrograman. Pertemuan-3 Fery Updi,M.Kom

LAPORAN PRAKTIKUM PEMROGRAMAN DASAR TIPE-TIPE FUNGSI ATAU METHOD

public class contohstring1 { public static void main (String[]args) { String kata1; String kata2; String kata3; //desklarasi String

Percabangan & Perulangan

MODUL II FUNGSI NUMERIK. A. TUJUAN Memahami mengenai penggunaan numerik. Membuat program numerik sederhana menggunakan VB.

Pertemuan 4 Array pada Java

LAPORAN PRAKTIKUM ALGORITMA DAN PEMROGRAMAN ( Implementasi Rekursi Pada Java)

FUNGSI II. Variabel Statis. Sifat variabel statis: Sintaks: static tipe_data nama_variabel; Contoh: static int angka;

KATA PENGANTAR. Penulis. Raizal Dzil Wafa M.

Pemrograman Berorientasi. Class dan Obyek 2

Method / Fungsi / Sub Program

Fungsi Rekursif PEMROGRAMAN DASAR. Dr. Eng. Herman Tolle, ST., MT. Sistem Informasi PTIIK UB Semester Ganjil 2014/2015

ALGORITMA DAN STRUKTUR DATA POINTER DAN FUNCTION

Penyeleksi Kondisi / Percabangan

SEKILAS JENIS-JENIS OPERATOR OPERATOR PENUGASAN OPERATOR ARITMATIKA OPERATOR MAJEMUK

A. TUJUAN PEMBELAJARAN 1. Memahami mengenai konsep rekursif 2. Mampu memecahkan permasalahan dengan konsep rekursif

E STRUKTUR DATA & E PRAKTIK STRUKTUR DATA. Pointer & Function. Alfa Faridh Suni, S.T., M.T. PTIK

BAHASA PEMROGRAMAN JAVA

MODUL III ARRAYLIST TUGAS PENDAHULUAN

BAB II VARIABEL DAN TIPE DATA

KENDALI PROSES. Untuk mengatur arus program, pemrograman java menyediakan struktur perulangan (looping), kondisional, percabangan, dan lompatan.

FUNGSI. Blok fungsi juga diawali dengan kata cadangan Begin dan di akhiri dengan kata cadangan End dan titik koma.

LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA PENGENALAN OBJECT ORIENTED PROGRAMMING

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

Pertemuan 2 Struktur Kontrol Percabangan

Rekursif. Rekursif adalah salah satu metode dalam dunia matematika dimana definisi sebuah fungsi mengandung fungsi itu sendiri.

Algoritma Pemrograman 2B (Pemrograman C++)

Algoritma Pemrograman

2 TIPE DATA DAN VARIABEL

PEMROGRAMAN JAVA. Yoannita, S.Kom. Input Kondisi (IF-ELSE, SWITCH)

Modul Praktikum 5 Pemograman Berorientasi Objek

Modul Praktikum 3 Pemograman Berorientasi Objek

A. TUJUAN 1. Menjelaskan tentang prinsip dasar fungsi. 2. Menjelaskan tentang.parameter formal dan parameter aktual

Bahasa Pemrograman 2.

Modul Praktikum 4 Pemograman Berorientasi Objek

A. TUJUAN PEMBELAJARAN 1. Memahami mengenai konsep rekursif 2. Mampu memecahkan permasalahan dengan konsep rekursif

IKG2I4 / Software Project I

Bahasa Pemrograman 2.

Algoritma Pemrograman

Modul 3: Kendali program dan teknik. penyimpanan data

Dasar Pemrograman Java

MODUL 6 PERULANGAN. A. String. 1. Instansiasi dan Inisialisasi. M0601xxyyy.jar

Percabangan dan Perulangan

SYNTAX PHP Rumus dan Matematika

Konsep Pemrograman. Bab 7. Fungsi1. Konsep Pemrograman Politeknik Elektronika Negeri Surabaya 2006 PENS-ITS. Umi Sa adah

Turbo C adalah tool yang dipakai untuk membuat code program dalam bahasa C ataupun C++. Berikut adalah jendela utama Turbo C

MODUL VII MATH CLASS ACTION SCRIPT 2.0

Elemen Dasar Dalam Bahasa Java

KONSEP DASAR. menyusunnya menjadi potongan-potongan mudah untuk ditangani dibanding. conquer.

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

Pemrograman Dasar L A T I H A N M E T H O D / F U N G S I M E T H O D R E K U R S I F

TIPE DATA PADA JAVA. Pertemuan (K-04/L-04)

BAHASA PEMROGRAMAN JAVA PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM YOGYAKARTA

Modul 4: Lebih Dalam lagi tentang Class, Objek dan Method

Perulangan / Looping

Array Multidimensi. Pemrograman Dasar. Java

PEMROGRAMAN JAVA : VARIABEL DAN TIPE DATA

1. Mana diantara pilihan-pilihan berikut ini yang merupakan penulisan loop yang benar?

PEMAHAMAN DASAR DASAR JAVA

FUNGSI. tipe Tipe nilai yang dihasilkan oleh fungsi. Jika tidak dinyatakan, hasil fungsi dianggap bilangan bulat (int)

MODUL PRAKTIKUM. MODUL I - VIII Modul penuntun dan bahan praktikum matakuliah algoritma dan pemograman

BAB 3 TYPE DATA, VARIABLE DAN OPERATOR

BAB 8 Argumen dari Command-line

Modul 3 Flow Control dan Input

Bahasa Pemrograman :: Dasar Pemrograman Java

A. TUJUAN PEMBELAJARAN 1. Memahami mengenai konsep rekursif 2. Mampu memecahkan permasalahan dengan konsep rekursif

OPERASI PERNYATAAN KONDISI

Identifier, Keywords, Variabel, Tipe Data Primitif dan Operator PBO. Ramos Somya

PRAKTIKUM 1. Dasar-Dasar Matlab. (-), perkalian (*), pembagian (/) dan pangkat (^). Simbol ^ digunakan untuk

Algoritma Pemrograman

Algoritma Pemrograman. Fery Updi,M.Kom

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN JAVA 2

REKURSIF. Arkham Zahri Rakhman, S.Kom., M.Eng. Rev.: Dr. Fazat Nur Azizah

PENYELEKSIAN /PERCABANGAN & PERULANGAN Part II. 5 th week Estu Sinduningrum ST,MT

Pertemuan 2 (2) : Membuat Class dan mengakses Anggota Class

SATUAN ACARA PERKULIAHAN (SAP) Mata Kuliah : Struktur Data Kode : TIS3213 Semester : III Waktu : 1 x 3 x 50 Menit Pertemuan : 3

Array. Pengantar. int a, b, c, d, e;

int fungsi_2() { int main() { fungsi_1(); fungsi_2(); return 0;

BAB 2 PERINTAH DASAR BAHASA C. %d = type data varibel

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-5 Rekursif

VI. FUNGSI. Fungsi Main ( ) Fungsi a ( ) Fungsi b ( ) Fungsi c ( ) Fungsi c1 ( ) Fungsi c2 ( ) Fungsi c3 ( ) Bentuk umumnya :

PEMBAHASAN UJIAN TENGAH SEMESTER PEMROGRAMAN BERBASIS OBYEK Dosen : Tim Dosen PBO

PERTEMUAN II ARRAY, PERCABANGAN, DAN PERULANGAN TUJUAN PRAKTIKUM

Membuat dan Menggunakan Class

Mengenal Subroutine pada Pemrograman C Dian Wirdasari

SUB PROGRAM (FUNGSI)

MODUL PRAKTIKUM ALGORITMA DAN STRUKTUR DATA April 1, 2010 BAB 8 REKURSIF

Modul 2. [access specifier] [tipe data] [nama variabel];

BAB V Tujuan 5.1 Rekursi Dasar

Pada bahasa pemrograman C++, dapat dibuat program dengan beberapa sub-program sesuai dengan keinginan dengan menggunakan fungsi.

PROCEDURE DAN FUNCTION

MODUL 10 Fungsi 10.1 Kompetensi 10.2 Alat Dan Bahan: 10.3 Ulasan Teori: Dasar Fungsi Deklarasi Fungsi

Transkripsi:

Kelas & Method PART 2 12 th week Estu Sinduningrum ST,MT

Memanggil Method Konstruktor Lain Bila konstruktor B ingin menduplikasi behavior yang dimiliki oleh konstruktor A pada kelas yang sama, maka B harus memangggil A. Gunakan keyword this untuk memanggil konstruktor.

Method finalizer Objek dalam program yang sedang dieksekusi memiliki waktu hidup (life time). Objek tercipta pada saat Anda menginstans suatu kelas (dengan Operator new) dan akan dihapuskan pada saat objek dikumpulkan untuk sampah (Garbage Collection) atau bila memory yang ditempatinya telah diklaim oleh objek/bagian program lainnya

Method finalizer Method yang dibubuhi modifier finalize ini dapat dikatakan juga sebagai lawan/kebalikan dari method konstruktor. Bila Method konstruktor akan-menginisialisasi objek dengan parameter awal, maka method finalizer dipanggil sesaat sebelum Objek dihancurkan. Bentuk Umum: protected void finalize() throws Throwable { super.finalize(); }

Method Main Setelah selesai mengetik source code aprikasi, langkah berikutnya adalah mengkompile dan menjalankan program rersebut. Kompilasi dilakukan dengan Java Kompiler yang akan mengubah fire source code (*java) berformat plain text menjadi file byte cocle (*.crass). File *.class ini selaniutnya siap dieksekusi oleh Java Interpreter. Pada saat kompilasi, pertama-tama kompiler akan mencari bagian program yang disebut sebagai method utama (main method). Main method ini memiliki bentuk standard, yakni: public static void main(string [] argurnents) { Statement body dari main method; }

Method public static void Penjelasan Karena method ini merupakan bagian dari program yang pertama dicari oleh kompiler, maka main method harus dapat dilihat atau visible oleh kelas mana pun. Semua objek yang diinstans dari suatu kelas yang mengandung main method akan memiliki parameterparameter yang sama. Bila suatu kelas mendukung main method dan di dalam main method tersebut terdapat statement untuk menginstansiasi objek dari kelas tersebut, maka main method akan bersifat eksklusif, tidak ikut "diserahkan" kepada objek tersebut. Jelas bahwa main method ini tidak mengembalikan suatu nilai.

Method dari Kelas Math Selain method yang dapat Anda buat sendiri, Java juga memiliki banyak method standard sebagai referensi. Di antaranva adalah fungsi-fungsi matematika yang terdapat di dalam Math class, yakni trigonometri (sin, cos, tan, asin, acos, atan), eksponensial, dan beberapa method tambahan (max,min, abs, random, round). Di samping itu, terdapat juga konstanta matematika seperti PI (3.14) untuk merepresentasikan sudut/ lingkaran dan E adalah konstanta Euclid (2.72) untuk logaritma natural. Karena kelas Math ini terkandung daram package java.lang yang merupakan default package, maka untuk memanggil method dan konstanta- nya, cukup dengan format Math.nama.Method, contoh Math.abs(), Math.sin(), Math.PI, dan seterusnya.

Method Trigonometri Dalam trigonometri Anda mengenal dua dimensi pengukuran sudut, yakni derajat dan radian. Umumnya, dalam perhitungan matematis Anda terbiasa bekerja dengan menggunakan derajat. Nilai yang Anda ketikkan dari keyboard juga diperlakukan sebagai derajat. Namun, method-method trigonometri Java memerrukan birangan yang berupa radian sebagai argumen inputnya. Oleh karena, Anda perlu mengkonversi terlebih dahulu besaran derajat tersebut menjadi radian.

Method Trigonometri Hubungan antara derajat dan radian adalah: [] adalah konstanta sudut yang besarnya = 3.14.. Dari hubungan kesetaraan terrihai bahwa nilai sudut z dalam derajat, akan sama dengan (2[]/360) * z radian, jadi Anda perlu mengalikan nilai input argumen dengan faktor []/180. Java telah menyediakan 2 method konversi; toradians dan todegrees untuk mengkonversi sudut. Method yang Anda butuhkan saat ini adalah toradians.

Netbeans 17 :

/** Estu Sinduningrum, ST, MT * Title : Program Trigonomatri * Deskripsi : Menampilkan beberapa perhitungan * fungsi Trigonometri (sin, cos, tan, * asin, acos, atan, konversi sudut). */ import java.text.decimalformat; class Trigonometri { /** Main Method */ public static void main(string[] args) { // Mendeklarasikan beberapa variabel double sudut, sudutderajat, sudutradian, hasilsin, hasilcos, hasiltan, hasilasin, hasilacos, hasilatan; System.out.println("\nPROGRAM MENGHITUNG FUNGSI SUDUT"); System.out.println("-------------------------------\n"); System.out.print("Masukkan sudut :"); sudut = InputConsole.readDouble(); // Mengkonversi euduts derajat menjadi radian sudutradian = Math. toradians (sudut); sudutderajat = Math.toDegrees(sudutRadian) ; // Sinus dari sudut hasilsin = Math.sin(sudutRadian) ; // Cosinus dari sudut hasilcos = Math.cos(sudutRadian) ; // Tan dari sudut hasiltan = Math.tan(sudutRadian) ; // Asinus dari sudut hasilasin = Math.asin(hasilSin) ; // Acos dari sudut hasilacos = Math.acos(hasilCos) ; // Asinus dari sudut hasilatan = Math.atan(hasilTan) ; // Mengubah fornst do:ble statrdard menjadi double // dengan tiga digit desimal dengan memanfaatkan method // 'format' pada kelas DecimalFormat. DecimalFormat digitpresisi = new DecimalFormat ( "0,000" );

System.out.println("\nFUNGSI TRIGONOMETRI"); System.out.println("--------------------\n"); System.out.println("Sinus dari sudut : " + sudut + " adalah " + digitpresisi.format (hasilsin)) ; System.out.println("Cosinus dari sudut : " + sudut + " adalah " + digitpresisi.format (hasilcos)) ; System.out.println("Tan dari sudut : " + sudut + " adalah " + digitpresisi.format (hasiltan)) ; System.out.println("Arc Sinus dari : "+ digitpresisi.format(hasilsin)+"adalah"+ digitpresisi.format(math.todegrees (hasilasin))); System.out.println("Arc Cosinus dari : "+ digitpresisi.format(hasilcos)+"adalah"+ digitpresisi.format(math.todegrees (hasilacos))); System.out.println("Arc Tan dari : "+ digitpresisi.format(hasiltan)+"adalah"+ digitpresisi.format(math.todegrees (hasilatan))); } }

Method Pembulatan Ada beberapa method yang dapat digunakan untuk pembulatan bilangan, yaitu: 1) abs () Method ini akan mengembalikan nilai absolut dari suatu argumen. Bila argumen bernilai positif, maka nilai yang dikembalikan adalah nilai argumen tersebut, sedangkan bila negatif, maka bilangan tersebut akan dijadikan positif terlebih dahulu. Ada empat bentuk abs sesuai dengan tipe datanya,yaitu: static int abs(int i) static long abs(long l) stetic float abs(float f) static double abs(double d)

Method Pembulatan 2) ceil() Method ini akan mengembalikan nilai double yang terkecil yang tidak lebih kecil daripada argumen d dan sama dengan integer matematika (bilangan bulat desimal). static double ceil(double d) Contoh: ceil(7.3) = 8 ceil(-l.3) = -7

Method Pembulatan 3) floor() Kebalikan dari ceil(), method floor() mengembalikan nilai double terbesar yang tidak lebih besar daripada argumen d dan sama dengan inteqer matematika (bilangan bulat desimal). Bentuk : static double floor(double d) Contoh: floor(7.3) = 7 floor(-7.3) = 8

Method Pembulatan 3) round() Mengembalikan nilai integer yang paling dekat dengan argurmen. Bentuk : static int round(float f) static long round(double f) Contoh: round(7.3) = 7 round(7.6) = 8

Method max dan min Method max() akan mengembalikan nilai yang terbesar di antara dua bilangan, sedangkan method min() akan mengembalikan nilai yang terkecil di antara dua bilangan. Bentuk method max(): static int max(int a, int b) static long max(long a, long b) stetic float max(float a, float b ) static double max(double a, double b ) Bentuk method min(): static int min(int a, int b) static long min(long a, long b) stetic float min(float a, float b ) static double min(double a, double b )

a) pow pangkat Bentuk : b) Method ini exp pangkat eksponensial Bentuk : Method Perpangkatan, Akar, dan Eksponensial static double pow (double a, double b) static double exp (double a)

Method Perpangkatan, Akar, dan Eksponensial Method ini mengembalikan hasil pangkat eksponensial e dengan bilangan a. log --logaritma berbasis e Bentuk : static double log (double a) Method ini mengembalikan hasil logaritma e dari bilangan a. sqrt --akar Bentuk : static double sqrt (double a) Method ini mengernbalikan hasil akar pangkat dua dari suatu argumen a.

Bentuk: Method Random Generator static double random() Method ini akan mengembalikan suatu bilangan acak (random) yang. lebih besar daripada atau sama dengan 0.0 dan lebih kecil daripada atau sama dengan 1.0. Jadi, range nilai kembalinya adalah 0.0 <= <=r xx

Netbeans 18 :

/** Estu Sinduningrum, ST, MT * Title : Program MethodMath * Deskripsi : Menampilkan beberapa perhitungan * fungsi matematika (abs, log, pow, sqt, * random, round, max, min) * dalam perhitungan. */ class DemoMethodMath{ public static void main(string[] args) { double a, b, c, d, e, f,g; double hasilabs, hasilln, hasilpow, hasilsqrt hasilrandom; double hasilround1, hasilround2, hasilceil1, hasilceil2; double hasilfloor1, hasilfloor2, hasilmax, hasilmin; // Mengambil nilai absolute a = -164.72; hasilabs = Math.abs(a); // Mengambil logaritma natural (E) dari suatu nilai b = Math.E*Math.E; hasilln = Math.log(b); // Menghasilkan nilai c dipangkat d c = 10; d = 3; hasilpow = Math.pow (c,d); // Menghasilkan akar pangkat 2 dari suatu nilai e = 625; hasilsqrt = Math.sqrt(e); // Menghasilkan sebarang bilangan acak (random) hasilrandom = Math.random(); // Membulatkan nilai koma desimal ke integer terdekat f = 3.4988; hasilround1 = Math.round(f); hasilround2 = Math.round(a) ; // Membulatkan ke integar terdekat yang > argumen g = -f; hasilceil1 = Math.ceil(f); hasilceil2 = Math.ceil(g);

// Estu Membulatkan Sinduningrum, ke ST, intseger MT terdekat yang < argumen hasilfloor1 = Math.floor(f); hasilfloor2 = Math.floor(g); // Mengambil nilai terbesar dari dua bilangan hasilmax = Math.max(a,b) ; // Mengambil nilai terkecil dari dua bilangan hasilmin = Math.min(a,b) ; System.out.println("\nDEMO PENGGUNAAN BEBERAPA METHOD MATH"); System.out.println("------------------------------------\n"); System.out.println("Hasil Absolute dari :"+ a +"="+ hasilabs); System.out.println("Hasil Log Natural dari :"+ b +"="+ hasilln); System.out.println("Hasil Pemangkatan dari :"+ c +" dipangkat"+d+"="+ hasilpow); System.out.println("Hasil Akar dari :"+ e +" ="+ hasilsqrt); System.out.println("Nilai Random :" + hasilrandom); System.out.println("Hasil Pembulatan 'Round' :"+ f +"="+ hasilround1+"\t, "+a+"="+ hasilround2); System.out.println("Hasil Pembulatan 'Ceil' :"+ f +"="+ hasilceil1+"\t, "+a+"="+ hasilceil2); System.out.println("Hasil Pembulatan 'Floor' :"+ f +"="+ hasilfloor1+"\t, "+a+"="+ hasilfloor2); System.out.println("Nilai Max dari :"+ a +"dan"+ b +"="+ hasilmax); System.out.println("Nilai Min dari :"+ a +"dan"+ b +"="+ hasilmin); } }

Beberapa Aplikasi Method Math

Netbeans 19 :

/** Estu Sinduningrum, ST, MT * Title : Standart Deviasi * Deskripsi : Menghitung Standart Deviasi */ public class StandardDeviasi { /** Main Method */ public static void main(string[] args) { System.out.println("\nPROGRAM MAIN dan STANDARD DEVIASI\n"); System.out.print("Masukkan jumlah bilangan:"); int jumlahelemen = InputConsole.readInt(); System.out.println("-------------------------------"); // Mendeklarasikan array untuk bilangan yang akan diproses double[] arraybilangan = new double[ jumlahelemen ]; for(int i = 0; i < jumlahelemen; i++) { int indeks = 1; System.out.print("Masukkan elemen ke-" + (indeks+=i)+"\t :"); arraybilangan [i] = InputConsole.readDouble(); } // Mencetak elemen-elenen cetakarray (arraybilangan); //Menampilkan Mean dan Standard Deviasi System.out.println("Mean (Ratarata):"+mean(arrayBilangan)); System.out.println("Standard Deviasi:"+ sdeviasi(arraybilangan)); } /** Method untuk menghitung Standard Deviasi */ public static double sdeviasi (double[]x) { double mean = mean(x); double squaresum = 0; for (int i = 0; i < x.length; i++) {

squaresum += Math.pow(x[i] - mean,2); } return Math.sqrt(squareSum)/(x.length - 1); } /** Method untuk menghitung Mean */ public static double mean (double[] x ) { double sum = 0; for (int i =0; i < x.length; i++) sum += x[i]; return sum/x.length; } /** Method untuk mencetak array */ public static void cetakarray (double[] x ) { System.out.println("\nNilai yang dimasukkan adalah:"); System.out.println("-------------------------------"); System.out.print("["); for (int i = 0; i< x.length; i++) System.out.print(x[i]+""); System.out.print("]"); System.out.println("\n"); } }

Game: Menebak Mata Dadu Agar Anda tidak jenuh belajar Java, marilah Anda buat game menebak jumlah mata dari dua dadu yang dilemparkan. Namun sebelumnya, ini hanya sekedar permainan, bukan untuk dijadikan ajang taruhan. Dua dadu yang dilemparkan memiliki kemungkinan jumlah mata sebagai berikut; Keterangan: Angka yang dicetak miring adalah kemungkinan jumlah yang dihasilkan dari mata dadu pertama + mata dadu kedua.

Netbeans 20 :

/** Estu Sinduningrum, ST, MT * Title : Tebak Dadu * Deskripsi : Menebak hasil penjumlahan * dari guliran dua dadu */ public class TebakDadu { /** Main Method */ public static void main(string[] args) { System.out.println("\nPROGRAM MENEBAK JUMLAH DUA DADU"); System.out.println("------------------------------- \n"); System.out.print("Masukkan tebakan anda [2-12] :"); int tebakan = InputConsole.readInt(); if(( tebakan >0) && (tebakan<=12)) { TebakDadu td = new TebakDadu(); int hasilguliran = td.gulirduadadu(); if(tebakan== hasilguliran) System.out.println("\nHebat... tebakan anda benar!!!"); else { System.out.println("Maaf... anda belum beruntung"); System.out.println("Hasil guliran dua dadu adalah :"+ hasilguliran); } } else System.out.println("Anda memasukkan bilangan "+ "yang invalid!!!"); } // Method Menggulirkan dua dadu dan menjumlahkan // hasil. public int gulirduadadu () { int dadu1, dadu2, jumlahduadadu; dadu1 = 1+(int) (Math.random()*6); dadu2 = 1+(int) (Math.random()*6); jumlahduadadu = dadu1 +dadu2; return jumlahduadadu; } }

Tipe Kembalian Deskripsi Method Kelas Math Static double asin(double a) Mengembalikan nilai arc sinus dari suatu sudut (dalam radian). Static double atan(double a) Mengembalikan nilai arc tangent dari suatu sudut (dalam radian). Static double atan2(double y, double x) Mengubah koordinat rectangular (x, y) menjadi polar (r, theta). Static double ceil(double a) Mengembalikan nilai double terkecil yang tidak kurang dari dan sama dengan bilangan bulat integer. Static double cos(double a) Mengembalikan nilai cosinus dari suatu sudut (dalam radian). Static double exp(couble a) Mengembalikan nilai pangkat eksponensial Euler e raised terhadap suatu nilai double. Static double floor(double a) Mengembalikan nilai double yang terbesar yang tldak lebih dari pada argument dan sama dengan bilangan bulat integer.

Tipe Kembalian Deskripsi Method Kelas Math Static double IEEE remainder(double f1, double f2) Menghitung sisa operasi pada terhadap dua argumen sesuai dengan stancard IEEE754 Static double log(double a) mengembalikan nilai logaritma natural (berbasis e) dari suatu nilai double. Static double max(double a, double b) Mengembalikan nilai terbesar di antara dua nilai double. Static float max(float a, float b) Mengembalikan nilai terbesar di antara dua nilai float. Static int max(int a, int b) Mengembalikan nilai terbesar diantara dua nilai int. Static long max(long a, long b) Mengembalikan nilai terbesar di antara dua nilai long. Static float min(float a, float b) Mengembalikan nilai terkecil di antara dua nilai float. Static int min(int a, int b) Mengembalikan nilaiterkecil di antara dua nilai int.

Tipe Kembalian Deskripsi Method Kelas Math Static long min(long a, long b) Mengembalikan nilai terkecil di antara dua nilai long. Static double pow(double a, double b) Mengembalikan nilai hasil perpangkatan argumen pertama terhadap argumen kedua Static double random0 Mengembalikan sebarang nilai double bertanda positif, >= 0.0 dan < 1.0. Static double rint(double a) Mengembalikan nilai double yang terdekat dengan nilai argumen dan sama dengan bilangan bulat integer. Static long round(double a) Mengembalikan nilai long terdekai dengan argumen. Static int round(float a) Mengembalikan nilai int terdekat dengan argumen (pembulatan). Static double sin(double a) Mengembalikan nilai sinus dari suatu sudut (dalam radian).

Tipe Kembalian Deskripsi Method Kelas Math Static double sqrt(double a) Mengembalikan nilai positif akar darisuatu nilai double. Static double tan(double a) Mengembalikan nilai tangent dari suatu sudut (dalam radian). Static double Static double todegrees(double angrad) Mengubah sudut yang diukur dalam radians menjadi derajat. toradians(double angdeg) Mengubah sudut yang diukur dalam derajat menjadi radians.

Rekursi: Method Memanggil Diri Sendiri Selain dapat memanggil method lainnya, suatu method dapat juga memanggil diri sendiri. Proses ini dinamakan rekursi. REKURSI : Adalah proses yang terjadi ketika suatu method memanggil diri sendiri.

Beberapa Masalah Klasik Faktorial Bila Anda pemah mempelajari teori kemungkinan (probabilitas) tentu tidak asing dengan konsep faktorial. Sistem perhitungan faktorial memiliki ketentuan sebagai berikut:

Beberapa Masalah Klasik Berdasarkan ketentuan diatas, bisa Anda tuliskan beberapa konsekuensi yang menyertaiya. Jika nilai faktorial suatu bilangan sama dengan hasil perkalian bilangan tersebut dengan bilangan-bilangan sebelumnya, selama bernilai Positif, maka: (n-2)! = (n-2) x (n-3) x (n-4)... (n-1)! =(n-1)x(n-2)! n! = n x (n-1)!

Beberapa Masalah Klasik Bagaimana membuat algoritma programnya? Dengan memperhatikan pola di atas cara yang paling efisien untuk mengalikan bilangan-bilangan faktorial adalah dengan membulat fungsi perkalian yang dapat memaggil diri sendiri. proses tersebut terus dikerjakan dengan indeks yang menurun akan berhenti setelah tercapai n = k.

Beberapa Masalah Klasik factorial (int n) { If (n==0) // Statemen yang akan menghentikan rekursi return 1; Else Return n*factorial (n-1); // Memanggil method factorial Secara rekursif }

Netbeans 21 :

/** *Title : Faktorial Suatu Bilangan * Deskripsi : Menghitung Hasil Factorial Suatu Bilangan */ public class Faktorial { /** Main Method */ public static void main(string[] args) { System.out.println("\nPROGRAM MENGHITUNG FAKTORIAL"); System.out.println("----------------------------\n"); // Mengintruksikan user untuk memasukkan suatu integer >= 0 System.out.print("Masukkan bilangan integer >0:"); int n = InputConsole.readInt(); /** Method rekursi untuk menghitung hasil *factorial dari n */ static double faktorial(int n) { if (n==0)// kondisi yang menghentikan rekursi return 1; else return n*faktorial(n-1); } } System.out.println("Nilai Faktorial dari"+ n +"adalah" + faktorial(n)); }

Deret Fibonacci Deret Fibonacci adalah deretan bilangan yang dihasilkan dari penjumlahan dua bilangan sebelumnya. Deret ini dimulai dengan bilangan 0 dan 1, dan berturut-turut akan dihasilkan bilangan (0+1), (l+l), (l+2), (2+3), dan seterusnya. Bilangan-bilangan yang menyusun deret Fibonacci disebut juga sebagai Bilangan Fibonaci. Selanjutnya Anda akan membuat method sedemikian rupa, sehingga Anda bisa mengacu kepada suatu bilangan. Fibonacci proses ini dilakukan dengan memanggil nama method tersebut dan menyebutkan indeknya, contoh fib(0), fib(3), fib(100), dan sebagainya. Bagaimana algoritmanya? Berdasarkan pola fibonacci, fib(0) = 0; fib(l) = 1; fib(n) = fib(n-l) + fib(n-2); n >= 2

Sekali lagi, Anda akan menggunakan pola rekursi untuk memecahkan masalah tersebut. Pola fib(n-1)+fib(n-2); n >= 2 bermakna untuk mencari bilangan Fibonacci ke-n. Anda harus mengerjakan proses perhitungan untuk dua bilangan sebelum indeks ke n (dengan indeks menurun). Proses akar terus dikerjakan dan berakhir bila n = 2 atau menghasilkan fib(0). Sebagai ilustrasi Anda akan menghitung nilai bilangan fibonaci ke-7. Maka urutannya adalah: fib(7) = fib(6) + fib(5); fib(6)=fib(5)+fib(4); fib(5)=fib(4)+fib(3); fib(4)=fib(3)+fib(2); fib(3) = fib(2) + fib( l): fib(2)=fib(l)+fib(0); fib(1) = 0; fib(0)= 1;

Netbeans 22 :

/** * Title : Deret Fibonaci * Deskripsi : Mendemonstrasikan * perhitungan untuk * memperoleh Bilangan Fibonaci ke-n */ public class Fibonaci { /** Main Method */ public static void main(string[] args) { System.out.println("\nPROGRAM FIBONACI"); System.out.println("----------------\n"); // Membaca indeks bilangan Fibonaci System.out.print("Masukkan indeks bilangan Fibonaci :"); int n = InputConsole.readInt(); // Menghitung dan menampilkan bilangan Fibonaci System.out.println("Bilangan Fibonaci pada indeks "+ n + " adalah " +fib(n)); } /** Method menghitung bilangan Fibonaci */ public static long fib(long n) { if ((n ==0) (n==1)) // Kondisi yang menghentikan rekursi return n; else return fib(n-1) + fib(n-2); } }

Menara Hanoi Menara Hanoi adalah istilah yang digunakan untuk menggambarkan suatu tumpukan balok atau cakram yang tersusun seperti sebuah piramid. Sebagai ilustrasi, tinjaulah Menara Hanoi yang tersusun dari 3 balok. Pada bagian dasarnya, terdapat balok dengan penampang terluas, di ujungnya balok dengan penampang tersempit, dan di bagian tengahnya, balok dengan luas penampang di antara keduanva.

Menara Hanoi Ide selanjutnya yang menjadi inti permasalahan dalam Menara Hanoi adalah memindahkan balok-balok tersebut ke posisi baru, sedemikian rupa sehingga pada posisi tersebut, balok-balok itu akan tersusun kembali menjadi Menara Hanoi yang sama. Berikut ini adalah ketentuan umum dari Fenomena Pemindahan Menara Hanoi: 1. Anggap terdapat n balok penyusun Menara Hanoi. Masing-masing balok memiliki luas penampang berbeda yang Anda beri label 1,2, 3, dan seterusnya. Indeks dimulai dari ujung atas. 2. Diberikan tiga posisi untuk menempatkan balok-balok tersebut (A, B, C). Posisi A digunakan sebagai posisi awal untuk menyusun Menara Hanoi pertama kali. 3. Selanjutnya, Menara Hanoi pada posisi A akan dipindahkan ke posisi B. 4. Pemindahan tersebut harus memenuhi kaidah sebagai berikut:

4. Pemindahan tersebut harus memenuhi kaidah sebagai berikut: Pada setiap langkah, hanya boleh satu balok yang dipindahkan. Tidak boleh terjadi balok dengan luas penampang yang lebih kecil ditaruh sebagai alas untuk balok yang lebih besar. Diijinkan untuk menggunakan posisi C sebagai transit sementara untuk balok sebelum ditaruh di posisi barunya (B). Apabila saat proses pemindahan masih berlangsung posisi A sudah kosong, (seluruh balok terkumpul pada posisi B dan C), maka A boleh dijadikan tempat transit sementara. Posisi B dapat juga dianggap sebagai tempat transit sernentara, bila selama proses belum selesai) balok terkumpul pada A dan C. Pada akhir proses pemindahan, hanya terdapat satu menara Hanoi, yaitu pada posisi B, sementara posisi A dan C kosong (tidak memiliki balok sisa satu pun).

Aturan Pemindahan Menara Hanoi: Memindahkan seluruh balok dari posisi A ke B. Pada setiap langkah hanya boleh satu balok dipindahkan. Tidak boleh balok kecil menjadi alas bagi balok besar. Posisi C boleh dijadikan transit sementara. Posisi A dan B bisa juga dijadikan transit sementara apabila saat proses pemindahan masih berlangsung, semua balok terkumpul pada dua posisi lainnya.

Bagaimana Algoritmanya? Bila hanva diberikan balok densan jumlah sedikit, Anda dapat secara sederhana (manual) menyusunya. Untuk n = 1, balok tunggal tersebut dapat langsung Anda pindahkan dari A ke B. Bila n = 2. balok terkecil Anda letakkan pada posisi C terlebih dahulu, selanjutnya balok terbesar Anda pindahkan ke B. Terakhir balok terkecil pada posisi C dipindahkan ke posisi B. Untuk n = 3, telah Anda bahas sebelumnya. Sebelumnya pada menara Hanoi dengan jumlah balok n, algoritmanya dapat diuraikan menjadi tiga subprogram yang dikerjakan secara sekuensial sebagai berikut: 1. Pindahkan sejumlah n-1 balok yang pertama, dari A ke c dengan pertolongan posisi B sebagai transit sementara. 2. Memindahkan balok dari A ke B. 3. Memindahkan n-1 balok dari C ke B dengan bantuan posisi A sebagai transit sementara.

Netbeans 23 :

/** * Title : Menara Hanoi * Deskripsi : Mendemonstrasikan solusi untuk * masalah Menara Hanoi */ public class MenaraHanoi { /** Main Method */ public static void main(string[] args) { System.out.println("\nPROGRAM MENARA HANOI"); System.out.println("--------------------\n"); // Membaca jumlah balok (n) System.out.print("Masukkan jumlah balok :"); int n = InputConsole.readInt(); // Memindahkan balok secara rekursif System.out.println("Perpindahan balok :"); System.out.println("-------------------"); memindahkanbalok(n,'a','b','c'); } // Method untuk memindahlan sejumlah n balok dari menaraasal // ke menaratujuan dengan bantuan menarabantuan public static void memindahkanbalok(int n, char menaraasal, char menaratujuan, char menarabantuan) { if (n==1) // kondisi yang menghentikan rekursi System.out.println("Memindahan balok"+ n + " dari "+ menaraasal + " ke " + menaratujuan); else { memindahkanbalok (n-1, menaraasal, menarabantuan, menaratujuan); System.out.println("Memindahan balok"+ n + " dari " + menaraasal +" ke " + menaratujuan); memindahkanbalok (n-1, menarabantuan, menaratujuan, menaraasal); } } }

TERIMA KASIH