ALGORITMA PEMROGRAMAN 3
POLYMORPHISM DAN PHYTAGOREAN JAVA
KELOMPOK :
AMIN PUJO SAKTI (20112710)
FAJAR YUDHI PURNOMO (22112733)
M. RIAN NUR FATAH (25112074)
NIKO SANTOSO (25112321)
- Buka program netbeans, kemudian new project > java > java application, beri nama pada :
- Codingan PolymorphismToy.java
package toy;
public class PolymorphismToy{
static void test(){
RectangleToy theRectangle = new RectangleToy(100,200);
SquareToy theSquare = new SquareToy(100);
CircleToy theCircle = new CircleToy(100);
printGeometry(theRectangle);
printGeometry(theSquare);
printGeometry(theCircle);
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
test();
}
static void printGeometry(GeometryToy theG){
System.out.println(“========================================”);
System.out.println(“Geometri : “+theG.getGeometry());
System.out.println(“Luas geometri : “+theG.area());
System.out.println(“keliling geometri : “+theG.circumference());
System.out.println(“========================================”);
}
}
abstract class GeometryToy{
abstract public String getGeometry();
abstract public double area();
abstract public double circumference();
}
class RectangleToy extends GeometryToy{
double width, height;
public RectangleToy (double newWidth, double newHeight){
width = newWidth;
height = newHeight;
}
public String getGeometry(){
return “Persegi panjang”;
}
public double area(){
return width * height;
}
public double circumference(){
return 2 * (width + height);
}
}
class SquareToy extends GeometryToy{
double side;
public SquareToy (double newSide){
side = newSide;
}
public String getGeometry(){
return “Bujur Sangkar”;
}
public double area(){
return side * side;
}
public double circumference(){
return 4 * side;
}
}
class CircleToy extends GeometryToy{
final double PI=3.14159;
double radius;
public CircleToy (double newRadius){
radius = newRadius;
}
public String getGeometry(){
return “Lingkaran”;
}
public double area(){
return PI * radius * radius;
}
public double circumference(){
return 2.0 * PI * radius;
// TODO code application logic here
}
}
- Penjelasan statment
Public class Polymorphismtoy {
- Modifier public :berarti metod tersebut dipanggil bisa untuk semua class.
- Pada definisi class, merupakan class yang memuat metod main(), dan nama file disimpan dengan nama class public
- Pada definisi metod, bermakna bahwa metod tersebut dapat diakses dari luar class yang bersangkutan
- Pada daefinisi data, bermakna data tersebut dapat diakses dari luar class
Static void test() {
- Modifier static pada metod : berarti metod tersebut dapat dipanggil hanya dari dalam class yang sama
- Modifier void pada metod: berarti Metod tersebut tidak ada return valuenyaatau bisa juga disebut type datayang tidak mempunyai nilai balik.
RectangleToy theRectangle
SquareToy theSquare
CircleToy
3 nama itu merupakan nama objek dari class PolymorphismToy.
System.out.println(“=============================================”);
System.out.println(“Geometri :”+theG.getGeometry());
System.out.println(“Luas Geometri :”+theG.area());
Sysytem.out.println(“Keliling geomteri :”+theG.circumference());
System.out.println(“=============================================”);
Itu merupakan encapsulation ..Encaptulation: konsep dalam OOP yang bertujuan membungkus (mang-kapsul) data dan metode dalam suatu class sehingga data dan metode yang tersembunyi dalam class tidak dapat diases dari luar class.
Abstract class GeometryToy {
abstract class / kelas abstrak, sesuai namanya adalah kelas yang belum jelas spesifikasinya.
kelas abstrak digunakan untuk membuat sebuah kelas yang memiliki method yang belum jelas implementasinya. berikut ini aturan nya :
- jika sebuah kelas memiliki method abstrak maka kelas itu harus menjadi kelas abstrak.
- sebuah kelas abstrak dapat saja memiliki method yang tidak abstrak.
- jika sebuah kelas abstrak diturunkan menjadi kelas konkret, maka semua method abstrak dari kelas abstrak haruslah ditulis ulang / dibuat ulang di kelas konkretnya dan diberi detail dari methodnya.
- jika method abstrak di turunkan dan kelas turunannya adalah kelas abstrak, maka tidak perlu menulis ulang method yang abstrak.
sementara itu dulu aturan yang harus dipahami ketika anda membuat kelas abstrak dan menggunakan kelas abstrak, aturan – aturan lain akan anda temui ketika anda mulai membuatnya.
Public double area() { => Untuk mencari tinggi dan lebar area.
Public double circumference() { => Untuk Mencari tinggi dan lebar cicrcumference.
Return “Persegi panjang”; => mengembalikan nilai persegi panjang, keluar dari method fungsi informasi.
Private adalah kode yang sesuai dengan namanya, akses ini bersifat private. dengan kata lain data maupun method hanya dapat diakses oleh kelas yang dimilikinya saja.
- kemudian klik kanan pada Project toy > new > java class\
-
- Kemudian finish
- Lalu ketikan kode program dibawah.
public class PhytagoreanTripletToy {private int number=0;private int numberOfTriplet=0;final int MAX_OF_TRIPLETS = 100;private int[] tripletA = new int [MAX_OF_TRIPLETS];private int[] tripletB = new int [MAX_OF_TRIPLETS];private int[] tripletC = new int [MAX_OF_TRIPLETS];public PhytagoreanTripletToy(int number) {this.number = number;bruteForce();}public int getNumberOfTriplet(){return numberOfTriplet;}public int getNumber() {return number;}public void bruteForce(){for (int i=1;i<=number;i++){for (int j=1;j<=number;j++){for (int k=1;k<=number;k++){if (i*i == (j*j + k*k)){tripletA[numberOfTriplet] = i;tripletB[numberOfTriplet] = j;tripletC[numberOfTriplet] = k;}}}}}public String toString(){String str=”";for (int i=0;i<numberOfTriplet;i++)str += tripletA[i]+”\t”+tripletB[i]+”\t”+tripletC[i]+”\n”;return str;}static void test(){System.out.println(new PhytagoreanTripletToy(10));}public static void main(String[] args){test();}}- Penjelasan Statement
public class PhytagoreanTripletToy {- Class di beri nama PhytagoreanTripletToyprivate int number=0;private int numberOfTriplet=0;final int MAX_OF_TRIPLETS = 100;- Variable number dan numberOfTriple bertipe data int(interger)private int[] tripletA = new int [MAX_OF_TRIPLETS];private int[] tripletB = new int [MAX_OF_TRIPLETS];private int[] tripletC = new int [MAX_OF_TRIPLETS]
public PhytagoreanTripletToy(int number) {this.number = number;bruteForce();}- Kata kunci this dipergunakan pada pembuatan kelas dan digunakan untuk menyatakan objek sekarang. Untuk menghindari variabel yang sama antara variabel class dengan variabel property.public int getNumberOfTriplet(){return numberOfTriplet;}public int getNumber() {return number;}- Method Set dan Get sebenarnya adalah suatu method untuk mengubah dan mendapatkan nilai suatu variabel.- Dalam JAVA, statement Return ini digunakan untuk keluar dari eksekusi kode program yang terdapat dalam sebuah method.public void bruteForce(){for (int i=1;i<=number;i++){for (int j=1;j<=number;j++){for (int k=1;k<=number;k++){if (i*i == (j*j + k*k)){tripletA[numberOfTriplet] = i;tripletB[numberOfTriplet] = j;tripletC[numberOfTriplet] = k;}}}}}- Public void Suatu anggota kelas (class member) dideklarasikan sebagai public, maka anggota tersebut akan bisa digunakan oleh siapa saja, yaitu baik oleh kelas yang sama, kelas lain maupun lingkungan luar kelas. Sehingga anggota kelas (class member) yang dideklarasikan sebagai public akan bisa diakses oleh sembarang object lain.- Fungsi increment adalah, sebuah fungsi yang akan selalu menambahkan nilai 1 pada variabel yang dikenai oleh fungsi tersebut. Dalam kasus di atas, variabel yang dikenai oleh fungsi increment adalah variabel i, dan fungsi decrement adalah sebaliknya.- int i;Proses pendeklarasian variabel yang akan kita gunakan dalam program. Semua variabel yang akan digunakan harus dideklarasikan terlebih dahulu. Dalam kasus kali ini, kita hanya membutuhkan 1 variabel saja yaitu variabel i, maka yang kita deklarasikan pun cuma 1 variabel saja.- for (int i=1;i<=number;i++){Variabel i yang sudah dideklarasikan tadi di atas, akan langsung dimasukkan ke dalam perulangan.- If dan case digunakan jika ingin membuat suatu perbandingan atau membuat pilihan pada suatu nilai. If dan case mempunyai tujuan yang sama yaitu percabangan. Semua tergantung kita mau pilih yang mana karena output program sama saja. Bedanya hanya pada penulisan sintak program .public String toString(){String str=”";for (int i=0;i<numberOfTriplet;i++)str += tripletA[i]+”\t”+tripletB[i]+”\t”+tripletC[i]+”\n”;return str;}static void test(){System.out.println(new PhytagoreanTripletToy(10));}public static void main(String[] args){test();}}- System.out.println(new PhytagoreanTripletToy(10));Akan menampilkan tulisan “Hasil Fungsi FOR ke – …..” ke layar monitor . Titik titik (…..) akan diisi oleh nilai i.- String adalah tipe data untuk teks yang merupakan gabungan huruf, angka, whitespace (spasi), dan berbagai karakter. Fungsi ini digunakan untuk membuat identifier String/teks.Tampilan selanjutnya dari program java membuat PhytagoreanToy.java yang sudah dapat di jalankan atau di run dengan menggunakan NetBeans :Maka outputnya seperti ini :