diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8473cae --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +#Compiled class file +*.class diff --git a/ArrayBubbleSort.java b/ArrayBubbleSort.java new file mode 100644 index 0000000..7fc1f70 --- /dev/null +++ b/ArrayBubbleSort.java @@ -0,0 +1,41 @@ +public class ArrayBubbleSort { + public static void main (String[] args) { + if (args.length < 1) { + System.err.println("Array of Number to be sorted"); + return; + } + + //https://en.wikipedia.org/wiki/Bubble_sort + + // int[] arrayBubble -> Mendeklarasi variabel array + // arrayBubble = new int[10] -> Menginstansiasi object array + int[] arrayBubble = new int[args.length+1]; + for (int i = 0; i < args.length; i++) { + arrayBubble[i] = Integer.parseInt(args[i]); + } + + //boolean swapped = false; + int swapped; + do { + swapped = 0; + for (int i = 0; i < arrayBubble.length - 1; i++) { + if (arrayBubble[i] > arrayBubble[i+1] ) { + // sort tanpa temp -> pakai XOR + int temp = arrayBubble[i]; + arrayBubble[i] = arrayBubble[i+1]; + arrayBubble[i+1] = temp; + swapped ++; + } + } + + // for (int i = 1; i < arrayBubble.length; i++) { + // System.out.print(arrayBubble[i] + " "); + //} + //System.out.println(""); + } while (swapped != 0); + + for (int i = 1; i < arrayBubble.length; i++) { + System.out.print(arrayBubble[i] + " "); + } + } +} \ No newline at end of file diff --git a/ForFactorial.java b/ForFactorial.java new file mode 100644 index 0000000..6393f81 --- /dev/null +++ b/ForFactorial.java @@ -0,0 +1,16 @@ +public class ForFactorial { + public static void main (String[] args){ + if (args.length != 1) { + System.err.println("ForFactorial "); + return; + } + + + int number = Integer.parseInt(args[0]); + long ansFactorial = 1; + for (long i = 1; i <= number ; i++ ) { + ansFactorial *= i; + } + System.out.println("Factorial: " + ansFactorial); + } +} \ No newline at end of file diff --git a/ForFactorialRecursive.java b/ForFactorialRecursive.java new file mode 100644 index 0000000..e77c145 --- /dev/null +++ b/ForFactorialRecursive.java @@ -0,0 +1,28 @@ +public class ForFactorialRecursive { + public static void main (String[] args){ + if (args.length != 1) { + System.err.println("ForFactorial "); + return; + } + + int number = Integer.parseInt(args[0]); + ForFactorialRecursive hello = new ForFactorialRecursive(); + int ans = hello.factorial(number); + System.out.println("Factorial Recursive: " + ans); + } + + /*cara memanggil fungsi dalam main: + https://www.homeandlearn.co.uk/java/java_method_calling.html + 1. function dibuat static + 2. memanggil di main dengan "new HelloWorld().factorial" + */ + + public int factorial (int n) { + if (n >= 1) { + return (n * factorial(n-1)); + } + else { + return 1; + } + } +} \ No newline at end of file diff --git a/HelloWorld.java b/HelloWorld.java new file mode 100644 index 0000000..0c4223c --- /dev/null +++ b/HelloWorld.java @@ -0,0 +1,5 @@ +public class HelloWorld { + public static void main (String[] args){ + System.out.println("Hello World!"); + } +} \ No newline at end of file diff --git a/IfNilai.java b/IfNilai.java new file mode 100644 index 0000000..3e7967c --- /dev/null +++ b/IfNilai.java @@ -0,0 +1,37 @@ +public class IfNilai { + // ambil inputan melalui args + + public static void main(String[] args){ + int score; + + if (args.length != 1){ + System.out.println("IfNilai "); + } + //else { + score = Integer.parseInt(args[0]); + //} + + + + + //if 0-20 E, 21-40 D, 41-60 C, 61-80 B, 81-100 A + if (score >=0 && score <=20) { + System.out.println("Nilai E"); + } + else if (score >=21 && score <=40) { + System.out.println("Nilai D"); + } + else if (score >=41 && score <=60) { + System.out.println("Nilai C"); + } + else if (score >=61 && score <=80) { + System.out.println("Nilai B"); + } + else if (score >=81 && score <=100) { + System.out.println("Nilai A"); + } + else { + System.out.println("Nilai tidak tahu!"); + } + } +} \ No newline at end of file diff --git a/ListTestCollection.java b/ListTestCollection.java new file mode 100644 index 0000000..e474279 --- /dev/null +++ b/ListTestCollection.java @@ -0,0 +1,30 @@ +import java.util.*; + +public class ListTestCollection { + public static void main (String[] args) { + List names = new ArrayList<>(); + names.add("ABC"); + names.add("Budi"); + names.add("Andy"); + + for (String name : names) { + System.out.println(name); + } + + Set stringSet = new HashSet<>(); + stringSet.add("String 1"); + stringSet.add("String 1"); + for (String string : stringSet) { + System.out.println(string); + } + + Map scoreByName = new HashMap<>(); + scoreByName.put("Budi", 100); + scoreByName.put(null, 2); + scoreByName.put("Budi", 43); + + for(Map.Entry entry : scoreByName.entrySet()) { + System.out.println(entry.getKey() + ": " + entry.getValue()); + } + } +} \ No newline at end of file diff --git a/SwitchJumlahHari.java b/SwitchJumlahHari.java new file mode 100644 index 0000000..f968fdc --- /dev/null +++ b/SwitchJumlahHari.java @@ -0,0 +1,47 @@ +public class SwitchJumlahHari { + public static void main (String[] args){ + if (args.length != 2){ + System.err.println("SwitchJumlahHari dalam angka"); + return; + } + + //jumlah hari dalam bulan (termasuk kabisat hanya kelipatan 4) + int bulan = Integer.parseInt(args[0]); + int tahun = Integer.parseInt(args[1]); + int jumlahHari; + + // https://www.geeksforgeeks.org/switch-statement-in-java/ + + switch (bulan){ + case 4: + case 6: + case 9: + case 11: + jumlahHari = 30; + break; + case 1: + case 3: + case 5: + case 7: + case 8: + case 10: + case 12: + jumlahHari = 31; + break; + case 2: + //https://en.wikipedia.org/wiki/Leap_year + // if (tahun % 4 == 0) jumlahHari = 29; + // else jumlahHari = 28; + if ((tahun % 4 == 0) && !(tahun % 100 == 0) && (tahun % 400 == 0)) { + jumlahHari = 29; + } + else jumlahHari = 28; + + break; + default : + jumlahHari = 0; + } + + System.out.println("Terdapat " + jumlahHari + " hari"); + } +} \ No newline at end of file diff --git a/SwitchKalender.java b/SwitchKalender.java new file mode 100644 index 0000000..f86ac4e --- /dev/null +++ b/SwitchKalender.java @@ -0,0 +1,55 @@ +public class SwitchKalender { + public static void main(String[] args){ + + if (args.length != 1) { + System.out.println("Masukkan bulan"); + } + + int bulan = Integer.parseInt(args[0]); + String namaBulan; + switch(bulan) { + case 1 : + namaBulan = "Januari"; + break; + case 2 : + namaBulan = "Februari"; + break; + case 3 : + namaBulan = "Maret"; + break; + case 4 : + namaBulan = "April"; + break; + case 5 : + namaBulan = "Mei"; + break; + case 6 : + namaBulan = "Juni"; + break; + case 7 : + namaBulan = "Juli"; + break; + case 8 : + namaBulan = "Agustus"; + break; + case 9 : + namaBulan = "September"; + break; + case 10 : + namaBulan = "Oktober"; + break; + case 11 : + namaBulan = "November"; + break; + case 12 : + namaBulan = "Desember"; + break; + default : + namaBulan = "Tidak ada"; + } + + System.out.println("Bulan: " + namaBulan); + + + } +} \ No newline at end of file