diff --git a/src/H071221039/Pertemuan_5/BangunRuang.java b/src/H071221039/Pertemuan_5/BangunRuang.java new file mode 100644 index 0000000..ec3ab15 --- /dev/null +++ b/src/H071221039/Pertemuan_5/BangunRuang.java @@ -0,0 +1,101 @@ +package H071221039.Pertemuan_5; +public class BangRuang { + public double hitungLuas(){ + return 0; + } + public double hitungVolume(){ + return 0; + } +} + +class Kubus extends BangRuang { + private double sisi; + + public Kubus() {} + + public void setSisi(double sisi) { + this.sisi = sisi; + } + + @Override + public double hitungLuas() { + return 6 * sisi * sisi; + } + + @Override + public double hitungVolume() { + return sisi * sisi * sisi; + } +} + +class Balok extends BangRuang { + private double panjang; + private double lebar; + private double tinggi; + + public Balok() {} + + public void setPanjang(double panjang) { + this.panjang = panjang; + } + public void setLebar(double lebar) { + this.lebar = lebar; + } + public void setTinggi(double tinggi) { + this.tinggi = tinggi; + } + + @Override + public double hitungLuas() { + return 2 * ((panjang * lebar) + (panjang * tinggi) + (lebar * tinggi)) ; + } + + @Override + public double hitungVolume() { + return panjang * lebar * tinggi; + } +} + +class Bola extends BangRuang { + private double jari; + + public Bola() {} + + public void setJari(double jari) { + this.jari = jari; + } + + @Override + public double hitungLuas() { + return 4 * Math.PI * jari * jari; + } + + @Override + public double hitungVolume() { + return 4/3 * Math.PI * jari * jari * jari; + } +} + +class Tabung extends BangRuang { + private double jari; + private double tinggi; + + public Tabung() {} + + public void setJari(double jari) { + this.jari = jari; + } + public void setTinggi(double tinggi) { + this.tinggi = tinggi; + } + + @Override + public double hitungLuas() { + return 2 * Math.PI * jari * (jari + tinggi); + } + + @Override + public double hitungVolume() { + return Math.PI * jari * jari * tinggi; + } +} \ No newline at end of file diff --git a/src/H071221039/Pertemuan_6/Car.java b/src/H071221039/Pertemuan_6/Car.java new file mode 100644 index 0000000..da0b904 --- /dev/null +++ b/src/H071221039/Pertemuan_6/Car.java @@ -0,0 +1,17 @@ +package H071221039.Pertemuan_6; +class Car implements Moveable{ + protected int totalForwardGear; + protected String color; + protected int maxSpeed; + + Car(int totalForwardGear, String color,int maxSpeed){ + this.totalForwardGear = totalForwardGear; + this.color = color; + this.maxSpeed = maxSpeed; + } + + @Override + public void move(){ + System.out.println("Mobil Berakselerasi"); + } +} diff --git a/src/H071221039/Pertemuan_6/Diagram.png b/src/H071221039/Pertemuan_6/Diagram.png new file mode 100644 index 0000000..ae3a6a3 Binary files /dev/null and b/src/H071221039/Pertemuan_6/Diagram.png differ diff --git a/src/H071221039/Pertemuan_6/Dog.java b/src/H071221039/Pertemuan_6/Dog.java new file mode 100644 index 0000000..e4411d5 --- /dev/null +++ b/src/H071221039/Pertemuan_6/Dog.java @@ -0,0 +1,96 @@ +package H071221039.Pertemuan_6; +interface Moveable{ + void move(); + // void describe(); +} + +abstract class Dog { + protected int position; + protected int averageLength; + + public Dog(int position, int averageLength){ + this.position = position; + this.averageLength = averageLength; + } + public abstract void describe(); +} + +class Pitbull extends Dog implements Moveable{ + public Pitbull(int position, int averageLength) { + super(position, averageLength); + } + + @Override + public void move(){ + position+=3; + } + + @Override + public void describe(){ + System.out.println("Ras\t\t: Pitbull"); + System.out.println("Rata panjang\t: " + this.averageLength); + System.out.println("Sifat\t\t: Agresif"); + System.out.println("Asal\t\t: Amerika Serikat"); + System.out.println("Posisi\t\t: " + this.position); + } +} + +class SiberianHusky extends Dog implements Moveable{ + public SiberianHusky(int position, int averageLength) { + super(position, averageLength); + } + + @Override + public void move(){ + position+=2; + } + + @Override + public void describe(){ + System.out.println("Ras\t\t: Siberian Husky"); + System.out.println("Rata panjang\t: " + this.averageLength); + System.out.println("Sifat\t\t: Ramah"); + System.out.println("Asal\t\t: Siberia"); + System.out.println("Posisi\t\t: " + this.position); + } +} + +class Bulldog extends Dog implements Moveable{ + public Bulldog(int position, int averageLength) { + super(position, averageLength); + } + + @Override + public void describe(){ + System.out.println("Ras\t\t: Bulldog"); + System.out.println("Rata panjang\t: " + this.averageLength); + System.out.println("Sifat\t\t: Bersahabat"); + System.out.println("Asal\t\t: Inggris"); + System.out.println("Posisi\t\t: " + this.position); + } + + @Override + public void move() { + position+=1; + } +} + +class GermanShepherd extends Dog implements Moveable{ + public GermanShepherd(int position, int averageLength) { + super(position, averageLength); + } + + @Override + public void move(){ + position+=3; + } + + @Override + public void describe(){ + System.out.println("Ras\t\t: German Shepherd"); + System.out.println("Rata panjang\t: " + this.averageLength); + System.out.println("Sifat\t\t: Pandai"); + System.out.println("Asal\t\t: Jerman"); + System.out.println("Posisi\t\t: " + this.position); + } +} diff --git a/src/H071221039/Pertemuan_6/Main.java b/src/H071221039/Pertemuan_6/Main.java new file mode 100644 index 0000000..c69f5f9 --- /dev/null +++ b/src/H071221039/Pertemuan_6/Main.java @@ -0,0 +1,26 @@ +package H071221039.Pertemuan_6; +public class Main { + public static void main(String[] args) { + System.out.println("=".repeat(40)); + System.out.println("INI DARI CLASS RAS"); + Pitbull pitbull = new Pitbull(0,50); + pitbull.move(); + pitbull.move(); + pitbull.describe(); + + System.out.println("=".repeat(40)); + System.out.println("INI DARI CLASS SMARTPHONE"); + Smartphone smartphone = new Smartphone(5_000_000, "Mito"); + smartphone.move(); + System.out.printf("Harga\t: Rp. %s%n",smartphone.price); + System.out.println("Brand\t: " + smartphone.brand); + + System.out.println("=".repeat(40)); + System.out.println("INI DARI CLASS CAR"); + Car car = new Car(5, "Hijau Sage", 240); + car.move(); + System.out.println("Gear toal\t: " + car.totalForwardGear); + System.out.println("Warna\t\t: " + car.color); + System.out.printf("Max Speed\t: %s km/jam", car.maxSpeed); + } +} diff --git a/src/H071221039/Pertemuan_6/Smartphone.java b/src/H071221039/Pertemuan_6/Smartphone.java new file mode 100644 index 0000000..58f7977 --- /dev/null +++ b/src/H071221039/Pertemuan_6/Smartphone.java @@ -0,0 +1,15 @@ +package H071221039.Pertemuan_6; +class Smartphone implements Moveable { + protected int price; + protected String brand; + + Smartphone(int price, String brand){ + this.price = price; + this.brand = brand; + } + + @Override + public void move() { + System.out.println("Smartphone Berpindah"); + } +} diff --git a/src/H071221039/Pertemuan_7/AttackType.java b/src/H071221039/Pertemuan_7/AttackType.java new file mode 100644 index 0000000..12fd8d5 --- /dev/null +++ b/src/H071221039/Pertemuan_7/AttackType.java @@ -0,0 +1,7 @@ +package H071221039.Pertemuan_7; +enum AttackType{ + MELE, + RANGE, + FROST, + FIRE +} diff --git a/src/H071221039/Pertemuan_7/Character.java b/src/H071221039/Pertemuan_7/Character.java new file mode 100644 index 0000000..afbd556 --- /dev/null +++ b/src/H071221039/Pertemuan_7/Character.java @@ -0,0 +1,20 @@ +package H071221039.Pertemuan_7; +public abstract class Character { + protected String name; + protected double attackPower; + + Character(){} + + Character(String name, double attackPower){ + this.name = name; + this.attackPower = attackPower; + } + + + public String getName() { + return name; + } + + abstract double attack(); + abstract double attack(AttackType attackType); +} diff --git a/src/H071221039/Pertemuan_7/Fighter.java b/src/H071221039/Pertemuan_7/Fighter.java new file mode 100644 index 0000000..8932061 --- /dev/null +++ b/src/H071221039/Pertemuan_7/Fighter.java @@ -0,0 +1,27 @@ +package H071221039.Pertemuan_7; +public class Fighter extends Character { + + Fighter(){ + } + Fighter(String name, double attackPower){ + super(name, attackPower); + + } + + @Override + double attack(){ + return attackPower; + } + @Override + double attack(AttackType attackType){ + if(attackType == AttackType.MELE){ + return attackPower * 2; + } else if(attackType == AttackType.RANGE){ + return attackPower; + } else { + return 0; + } + } +} + + diff --git a/src/H071221039/Pertemuan_7/Food.java b/src/H071221039/Pertemuan_7/Food.java new file mode 100644 index 0000000..532622c --- /dev/null +++ b/src/H071221039/Pertemuan_7/Food.java @@ -0,0 +1,33 @@ +package H071221039.Pertemuan_7; +interface Food { + int getprice(); +} + +class Pizza implements Food { + int price = 50000; + + @Override + public int getprice() { + return price; + + } +} + +class Steak implements Food { + int price = 30000; + + @Override + public int getprice() { + return price; + + } +} + +class Burger implements Food { + int price = 15000; + + @Override + public int getprice() { + return price; + } +} \ No newline at end of file diff --git a/src/H071221039/Pertemuan_7/FoodFactory.java b/src/H071221039/Pertemuan_7/FoodFactory.java new file mode 100644 index 0000000..a68e738 --- /dev/null +++ b/src/H071221039/Pertemuan_7/FoodFactory.java @@ -0,0 +1,14 @@ +package H071221039.Pertemuan_7; +public class FoodFactory { + public static Food getFood(FoodType type) { + if (type == FoodType.BURGER) { + return new Burger(); + } else if (type == FoodType.PIZZA) { + return new Pizza(); + } else if (type == FoodType.STEAK) { + return new Steak(); + } else { + throw new IllegalArgumentException("Invalid food type: " + type); + } + } +} diff --git a/src/H071221039/Pertemuan_7/FoodType.java b/src/H071221039/Pertemuan_7/FoodType.java new file mode 100644 index 0000000..5f7712a --- /dev/null +++ b/src/H071221039/Pertemuan_7/FoodType.java @@ -0,0 +1,6 @@ +package H071221039.Pertemuan_7; +enum FoodType{ + BURGER, + PIZZA, + STEAK +} diff --git a/src/H071221039/Pertemuan_7/Mage.java b/src/H071221039/Pertemuan_7/Mage.java new file mode 100644 index 0000000..846798c --- /dev/null +++ b/src/H071221039/Pertemuan_7/Mage.java @@ -0,0 +1,28 @@ +package H071221039.Pertemuan_7; +public class Mage extends Character { + Mage(String name, double attackPower){ + super(name, attackPower); + } + + @Override + double attack(){ + return attackPower; + } + + @Override + double attack(AttackType attackType){ + if(attackType == AttackType.FROST){ + return attackPower * 2; + } else if(attackType == AttackType.FIRE){ + return attackPower * 3; + } else { + return 0; + } + } + + void showDetail(){ + System.out.println("Ini mage"); + } + + +} diff --git a/src/H071221039/Pertemuan_7/Main1.java b/src/H071221039/Pertemuan_7/Main1.java new file mode 100644 index 0000000..17523fe --- /dev/null +++ b/src/H071221039/Pertemuan_7/Main1.java @@ -0,0 +1,28 @@ +package H071221039.Pertemuan_7; +public class Main1 { + public static void printAttack(Character character) { + if (character instanceof Fighter){ + System.out.printf("Saat melee, %s menyerang dengan %s power.%n",character.name,character.attack(AttackType.MELE)); + System.out.printf("Saat ranged, %s menyerang dengan %s power.%n%n",character.name,character.attack(AttackType.RANGE)); + } if (character instanceof Mage){ + System.out.printf("Saat fire, %s menyerang dengan %s power.%n",character.name,character.attack(AttackType.FIRE)); + System.out.printf("Saat frost, %s menyerang dengan %s power.%n%n",character.name,character.attack(AttackType.FROST)); + } +} + + public static void main(String[] args) { + Character[] characters = new Character[5]; + characters[0] = new Fighter("Terizla", 8); + characters[1] = new Mage("Parsha", 20); + characters[2] = new Fighter("Masha", 18); + characters[3] = new Fighter("Edith", 12); + characters[4] = new Mage("Lunox", 18); + // Mage mage = (Mage)characters[1]; + // mage.showDetail(); + + for (Character character : characters) { + printAttack(character); + } + } +} + diff --git a/src/H071221039/Pertemuan_7/Main2.java b/src/H071221039/Pertemuan_7/Main2.java new file mode 100644 index 0000000..1bac4b8 --- /dev/null +++ b/src/H071221039/Pertemuan_7/Main2.java @@ -0,0 +1,12 @@ +package H071221039.Pertemuan_7; +public class Main2 { + public static void main(String[] args) { + Product produk1 = new Product("Bon Cabe", "Rp. 9000", "12-04-2024"); + Product produk2 = new Product("Ultra Milk", 8700, "04-02-2024"); + Product produk3 = new Product("Chitato",8.999,"09-11-2023"); + + System.out.printf("Product 1 : %s - %s - %s%n", produk1.getName(), produk1.getPrice(), produk1.getExpiryDate()); + System.out.printf("Product 2 : %s - %d - %s%n", produk2.getName(), produk2.getPrice(), produk2.getExpiryDate()); + System.out.printf("Product 3 : %s - %.3f - %s", produk3.getName(), produk3.getPrice(), produk3.getExpiryDate()); + } +} diff --git a/src/H071221039/Pertemuan_7/Main3.java b/src/H071221039/Pertemuan_7/Main3.java new file mode 100644 index 0000000..4518d21 --- /dev/null +++ b/src/H071221039/Pertemuan_7/Main3.java @@ -0,0 +1,18 @@ +package H071221039.Pertemuan_7; +import java.util.ArrayList; +import java.util.List; + +public class Main3 { + public static void main(String[] args) { + Food burger = FoodFactory.getFood(FoodType.BURGER); + Food pizza = FoodFactory.getFood(FoodType.PIZZA); + Food steak = FoodFactory.getFood(FoodType.STEAK); + + List foods = new ArrayList<>(); + foods.add(burger); + foods.add(pizza); + foods.add(steak); + int total = Restaurant.calculateTotal(foods); + System.out.println("Total harga makanan: " + total); + } +} diff --git a/src/H071221039/Pertemuan_7/Product.java b/src/H071221039/Pertemuan_7/Product.java new file mode 100644 index 0000000..9b4e4c6 --- /dev/null +++ b/src/H071221039/Pertemuan_7/Product.java @@ -0,0 +1,21 @@ +package H071221039.Pertemuan_7; +public class Product { + private String name; + private T price; + private String expiryDate; + + public Product(String name, T price, String expiryDate) { + this.name = name; + this.price = price; + this.expiryDate = expiryDate; + } + public String getName() { + return name; + } + public T getPrice() { + return price; + } + public String getExpiryDate() { + return expiryDate; + } +} diff --git a/src/H071221039/Pertemuan_7/Restaurant.java b/src/H071221039/Pertemuan_7/Restaurant.java new file mode 100644 index 0000000..c7b9019 --- /dev/null +++ b/src/H071221039/Pertemuan_7/Restaurant.java @@ -0,0 +1,12 @@ +package H071221039.Pertemuan_7; +import java.util.List; + +public class Restaurant { + public static int calculateTotal(List foods) { + int total = 0; + for (Food food : foods) { + total += food.getprice(); + } + return total; + } +}