Fungsi Matematika Dasar
Calista Donna 'Aaqilah
25082010133
Pararel C
package pkg.fungsimatematikadasar;
public class FungsiMatematikaDasar {
// 1. Penjumlahan Dua Bilangan
public static double tambah(double a, double b) {
return a + b;
}
// 2. Pengurangan Dua Bilangan
public static double kurang(double a, double b) {
return a - b;
}
// 3. Perkalian Dua Bilangan
public static double kali(double a, double b) {
return a * b;
}
// 4. Pembagian Dua Bilangan
public static double bagi(double a, double b) {
if (b == 0) {
// Menangani pembagian dengan nol
throw new IllegalArgumentException("Pembagi tidak boleh nol.");
}
return a / b;
}
// 5. Perpangkatan (a^n) - Hanya untuk n integer positif/nol
public static long pangkat(int basis, int eksponen) {
if (eksponen < 0) {
// Contoh sederhana, asumsikan eksponen non-negatif
throw new IllegalArgumentException("Eksponen harus non-negatif untuk fungsi ini.");
}
long hasil = 1;
// Menggunakan loop
for (int i = 0; i < eksponen; i++) {
hasil *= basis;
}
return hasil;
}
// 6. Faktorial (n!)
public static long faktorial(int n) {
if (n < 0) {
throw new IllegalArgumentException("Bilangan harus non-negatif.");
}
long hasil = 1;
// Menggunakan loop
for (int i = 2; i <= n; i++) {
hasil *= i;
}
return hasil;
}
// 7. Nilai Mutlak (Absolute Value)
public static double nilaiMutlak(double x) {
// Menggunakan if/else case
if (x < 0) {
return -x;
} else {
return x;
}
}
// 8. Pembulatan ke Bawah (Floor)
public static int bulatkanKeBawah(double x) {
int hasil = (int) x;
// Jika bilangan negatif dan ada desimal (misal -3.5, hasil: -3, harusnya -4)
if (x < 0 && x != hasil) {
hasil--;
}
return hasil;
}
// 9. Mencari Nilai Minimum dari Array
public static int cariMinimum(int[] data) {
if (data == null || data.length == 0) {
throw new IllegalArgumentException("Array data tidak boleh kosong.");
}
int min = data[0];
// Menggunakan loop dan perbandingan (if)
for (int i = 1; i < data.length; i++) {
if (data[i] < min) {
min = data[i];
}
}
return min;
}
// 10. Jumlah Deret Aritmatika (Sum of Arithmetic Series)
// S_n = n/2 * (2*a + (n-1)*d)
public static long jumlahDeretAritmatika(int sukuPertama, int beda, int jumlahSuku) {
if (jumlahSuku <= 0) {
return 0;
}
// Formula sederhana: n/2 * (2*a + (n-1)*d)
// Kita gunakan perkalian dan pembagian sederhana
long nilaiDalamKurung = (2L * sukuPertama) + ((long)(jumlahSuku - 1) * beda);
return ((long)jumlahSuku * nilaiDalamKurung) / 2;
}
// 11. (Ekstra) Mencari Sisa Pembagian (Modulo)
public static int modulo(int a, int b) {
if (b == 0) {
throw new IllegalArgumentException("Pembagi tidak boleh nol.");
}
int hasil = a / b;
return a - (hasil * b);
}
// Metode main untuk menguji semua fungsi
public static void main(String[] args) {
System.out.println("--- Uji Fungsi Matematika Kustom ---");
System.out.println("1. Tambah (5.5 + 4.5): " + tambah(5.5, 4.5));
System.out.println("2. Kurang (10.0 - 3.2): " + kurang(10.0, 3.2));
System.out.println("3. Kali (6.0 * 7.0): " + kali(6.0, 7.0));
System.out.println("4. Bagi (20.0 / 4.0): " + bagi(20.0, 4.0));
try {
System.out.println("5. Pangkat (2^5): " + pangkat(2, 5)); // 32
} catch (IllegalArgumentException e) {
System.out.println("Pangkat error: " + e.getMessage());
}
try {
System.out.println("6. Faktorial (5!): " + faktorial(5)); // 120
} catch (IllegalArgumentException e) {
System.out.println("Faktorial error: " + e.getMessage());
}
System.out.println("7. Nilai Mutlak (-7.8): " + nilaiMutlak(-7.8));
System.out.println("8. Bulatkan Ke Bawah (-3.5): " + bulatkanKeBawah(-3.5)); // -4
int[] dataMin = {4, 1, 9, 0, 5};
System.out.println("9. Cari Minimum {4, 1, 9, 0, 5}: " + cariMinimum(dataMin)); // 0
// Suku Pertama=2, Beda=3, Jumlah Suku=4 -> 2 + 5 + 8 + 11 = 26
System.out.println("10. Jumlah Deret Aritmatika (a=2, b=3, n=4): " + jumlahDeretAritmatika(2, 3, 4)); // 26
System.out.println("11. Modulo (10 % 3): " + modulo(10, 3)); // 1
}
}
.png)
.png)
.png)
.png)
.png)
.png)
Comments
Post a Comment