081296718180 mastrie90@gmail.com

Proyek Java dimulai tahun 1991 oleh James Gosling, bernama Oak, diubah menjadi Green, akhirnya menjadi Java yang terinspirasi dari asal kopi yang diminum dari Pulau Jawa, sehingga logo Java bentuknya seperti secangkir kopi, Java versi pertama (1.0) dirilis pada tahun 1996 dan terus berkembang sampai JAVA SE 15 tahun 2020, Java merupakan bahasa pemrograman yang dikembangkan dari bahasa C yang menggunakan paradigma OOP (Object Oriented Programming)

untuk menjalankan program JAVA diperlukan JVM (Java Virtual Machine) yang merupakan mesin virtual untuk menjalankan program Java, adapun proses yang dilakukan saat coding java antara lain :

  • Menulis kode program Java, menghasilkan file dengan nama Program.java
  • Melakukan Compile, file Program.java kemudian di-compiledengan compiler (javac) dan akan menghasilkan file Program.class
  • Menjalankan Program,file Program.class merupakan file yang berisi bytecode yang akan dieksekusi oleh JVM, sehingga program berjalan

Peralatan yang dibutuhkan untuk coding Java antara lain :

Struktur program Java secara umum dibagi menjadi 4 bagian, yaitu :

  • Deklarasi Package, merupakan sebuah folder yang berisi sekumpulan program Java, dilakukan saat membuat program atau aplikasi, nama package mengikuti nama domain yang mengeluarkan program, penulisan nama domain dibalik, lalu diikuti nama programnya, misalnya : package id.my.trie.program;
  • Impor Library, merupakan sekumpulan class dan fungsi yang bisa kita gunakan dalam membuat program, misalnya : import java.util.Scanner;
  • Bagian Class, setiap program harus dibungkus di dalam class agar nanti bisa dibuat menjadi objek, Blok class dibuka dengan tanda kurung kurawal { kemudian ditutup atau diakhiri dengan }, yang diisi dengan method atau fungsi-fungsi dan juga variabel, misalnya :
    class NamaProgram {
        public static void main(String args[]){
            System.out.println("Hello World");
        }
    }
  • Method Main, atau fungsi main() merupakan blok program yang akan dieksekusi pertama kali, dan wajib dibuat agar bisa dieksekusi, Method main() memiliki parameter args[]. Parameter ini nanti akan menyimpan sebuah nilai dari argumen di command line, misalnya :
    public static void main(String args[]){
        System.out.println("Hello World");
    }

Aturan Penulisan Sintaks Java, meliputi :

  • Case Sensitive, artinya huruf besar atau kapital dan huruf kecil dibedakan,Gaya penulisan case (case style) yang digunakan oleh Java adalah :
    • camelCase, misalnya : String namaSaya = “Dian”;
    • PascalCase, misalnya : class HelloWOrld {//...}
    • ALL UPPER, misalnya : public final String DB_NAME = “petanikode”;
  • String, merupakan kumpulan dari karakter, penulisannya :
    • Tanda petik ganda ("...") untuk membuat string, misalnya “Hello world”
    • Tanda petik tunggal ('...') untuk membuat karakter, misalnya ‘Hello world’
  • Komentar, merupakan bagian program yang tidak akan dieksekusi oleh komputer, digunakan untuk : Memberi keterangan pada kode program; Menonaktifkan fungsi tertentu; Membuat dokumentasi. Penulisannya menggunakan : Garis miring ganda (//) untuk komentar satu baris; Garis miring bintang (/*...*/) untuk komentar yang lebih dari satu baris. Contoh :
    public static void main(String args[]){
        // ini adalah komentar satu baris
        System.out.println("Hello World");
        // komentar akan diabaikan oleh komputer
        // berikut ini fungsi yang di-non-aktifkan dengan komentar 
        // System.out.println("Hello World");
        /*
        Ini adalah penulisan komentar
        yang lebih dari
        satu baris
        */
    }
  • Blok program, merupakan kumpulan dari statement dan ekspresi yang dibungkus menjadi satu, dibuka dengan kurung kurawal { dan ditutup dengan }, Contohnya :
    // blok program main
    public static void main(String args[]){
        System.out.println("Hello World");
        System.out.println("Hello Kode");
        // blok program if
        if( true ){
            System.out.println('True');
        }
        // blok program for
        for ( int i = 0; i<10; i++){
            System.out.println("Perulangan ke"+i);
        }
    }
  • Statement dan ekspresi, merupakan bagian terkecil dalam program, diakhiri dengan titik koma (;), Contohnya :
    System.out.println("Apa kabar?");
    var x = 3;
    var y = 8;
    var z = x + y;

JAVA menyediakan fungsi untuk membuat program, antara lain :

  • Fungsi Input, dibedakan menjadi 2 kelompok, yaitu teks dan GUI, yang meliputi class :
    • Class Scanner, merupakan class yang menyediakan fungsi-fungsi untuk mengambil input dari keyboard, misalnya :
      // mengimpor Scanner ke program
      import java.util.Scanner;
      public class DataKaryawan {
          public static void main(String[] args) {
              // deklarasi variabel
              String nama, alamat;
              int usia, gaji;
              // membuat scanner baru
              Scanner keyboard = new Scanner(System.in);
              // Tampilkan output ke user
              System.out.println("### Pendataan Karyawan PT. Petani Kode ###");
              System.out.print("Nama karyawan: ");
              // menggunakan scanner dan menyimpan apa yang diketik di variabel nama
              nama = keyboard.nextLine();
              // Tampilkan outpu lagi
              System.out.print("Alamat: ");
              // menggunakan scanner lagi
              alamat = keyboard.nextLine();
              System.out.print("Usia: ");
              usia = keyboard.nextInt();
              System.out.print("Gaji: ");
              gaji = keyboard.nextInt();
    • Class BufferReader, digunakan untuk membaca input dari keyboard, file dan jaringan, yang terletak di dalam paket java.io, misalnya :
      import java.io.BufferedReader;
      import java.io.IOException;
      import java.io.InputStreamReader;
      public class ContohBufferReader {
          public static void main(String[] args) throws IOException {
              String nama;
              // Membuat objek inputstream
              InputStreamReader isr = new InputStreamReader(System.in);
              // membuat objek bufferreader
              BufferedReader br = new BufferedReader(isr);
              // Mengisi variabel nama dengan Bufferreader
              System.out.print("Inputkan nama: ");
              nama = br.readLine();
              // tampilkan output isi variabel nama
              System.out.println("Nama kamu adalah " + nama);
          }
      }
    • Class Console, hanya bisa digunakan di lingkungan console saja, seperti Terminal dan CMD, misalnya :
      import java.io.Console;
      public class InputConsole {
          public static void main(String[] args) {
              String nama;
              int usia;
              // membuat objek console
              Console con = System.console();
              // mengisi variabel nama dan usia dengan console
              System.out.print("Inputkan nama: ");
              nama = con.readLine();
              System.out.print("Inputkan usia: ");
              usia = Integer.parseInt(con.readLine());
              // menampilkan isi variabel nama dan usia
              System.out.println("Nama kamu adalah: " + nama);
              System.out.println("Saat ini berusia " + usia + " tahun");
          }
      }
  • Fungsi Output, untuk menampilkan input, yang terdiri dari beberapa fungsi, antara lain :
    • Fungsi System.out.print(), akan menampilkan teks apa adanya, misalnya :
      public static void main(String[] args) {
              System.out.print("ini teks yang dicetak dengan print()");
      }
    • Fungsi System.out.println(), akan menampilkan teks dengan ditambah baris baru, misalnya :
      public static void main(String[] args) {
              System.out.println("sedangkan ini teks yang dicetak dengan println()");
      }
    • Fungsi System.out.format(), untuk menggabungkan String yang lebih kompleks, misalnya :
      public class FormatString {
          public static void main(String[] args) {
              String namaDepan = "Petani";
              String namaBelakang = "Kode";
              System.out.format("Nama saya %s %s %n", namaDepan, namaBelakang);
          }
      }

Variabel dan tipe data pada JAVA meliputi :

  • Tipe data pada Java, terdiri dari :
    • char: Tipe data karakter, contoh Z
    • int: angka atau bilangan bulat, contoh 29
    • float: bilangan desimal, contoh 2.1
    • double: bilangan desimal juga, tapi lebih besar kapasitasnya, contoh 2.1
    • String: kumpulan dari karakter yang membentuk teks, contoh Hello World!
    • boolean: tipe data yang hanya bernilai true dan false
  • Aturan yang harus diikuti dalam penulisan variabel, antara lain :
    • Nama variabel tidak boleh menggunakan kata kunci dari Java (reserved word) seperti ifforswitch, dll.
    • Nama variabel boleh menggunakan huruf, angka (0-9), garis bawah (underscore), dan symbol dollar ($), namun penggunaan garis bawah dan symbol lebih baik dihindari.
    • Nama variabel harus diawali dengan huruf kecil, karena Java menggunakan gaya CamelCase.
    • Apabila nama variabel lebih dari 1 suku kata, maka kata ke-2 dituliskan dengan diawali dengan huruf besar dan seterusnya, contoh namaVariabel
  • Konversi, mengubah type data ke jenis yang lain

Ada enam jenis kelompok operator dalam pemrograman Java, yaitu :

  • Operator Aritmatika, digunakan untuk melakukan operasi aritmatika, terdiri dari : penjumlahan (+), pengurangan (-), perkalian (*), pembagian (\), sisa bagi (%), misalnya :
    import java.util.Scanner;
    public class OperatorAritmatika {
        public static void main(String[] args) {
            int angka1;
            int angka2;
            int hasil;
            Scanner keyboard = new Scanner(System.in);
            System.out.print("Input angka-1: ");
            angka1 = keyboard.nextInt();
            System.out.print("Input angka-2: ");
            angka2 = keyboard.nextInt();
            // penjumlahan
            hasil = angka1 + angka2;
            System.out.println("Hasil = " + hasil);
            System.out.print("Input angka-1: ");
            angka1 = keyboard.nextInt();
            System.out.print("Input angka-2: ");
            angka2 = keyboard.nextInt();
            // pengurangan
            hasil = angka1 - angka2;
            System.out.println("Hasil = " + hasil);
             System.out.print("Input angka-1: ");
            angka1 = keyboard.nextInt();
            System.out.print("Input angka-2: ");
            angka2 = keyboard.nextInt();
            // perkalian
            hasil = angka1 * angka2;
            System.out.println("Hasil = " + hasil);
            System.out.print("Input angka-1: ");
            angka1 = keyboard.nextInt();
            System.out.print("Input angka-2: ");
            angka2 = keyboard.nextInt();
            // Pembagian
            hasil = angka1 / angka2;
            System.out.println("Hasil = " + hasil);
            System.out.print("Input angka-1: ");
            angka1 = keyboard.nextInt();
            System.out.print("Input angka-2: ");
            angka2 = keyboard.nextInt();
            // Sisa Bagi
            hasil = angka1 % angka2;
            System.out.println("Hasil = " + hasil);
        }
    }
  • Operator Penugasan (Assignment Operator), fungsinya untuk memberikan tugas pada variabel tertentu, biasanya untuk mengisi nilai, terdiri dari : pengisian nilai (=), isi penjumlahan (+=), isi pengurangan (-=), isi perkalian (*=), isi pembagian (\=), isi sisa bagi (%=), misalnya :
    public class OperatorPenugasan {
        public static void main(String[] args) {
            int a;
            int b;
            // Pengisian nilai
            a = 5;
            b = 10;
            // penambahan
            b += a;
            // sekarang b = 15
            System.out.println("Penambahan : " + b);
            // pengurangan
            b -= a;
            // sekarang b = 10 (karena 15-5)
            System.out.println("Pengurangan : " + b);
            // perkalian
            b *= a;
            // sekarang b = 50 (karena 10*5)
            System.out.println("Perkalian : " + b);
            // Pembagian
            b /= a;
            // sekarang b=10
            System.out.println("Pembagian : " + b);
            // Sisa bagi
            b %= a;
            // sekarang b=0
            System.out.println("Sisa Bagi: " + b);
        }
    }
  • Operator Pembanding, dikenal dengan operator relasi, nilai yang dihasilkan dari operator ini berupa boolean, yaitu : true dan false, terdiri dari : lebih besar (>), lebih kecil (<), sama dengan (==), tidak sama dengan (!=), lebih besar sama dengan (>=),lebih kecil sama dengan (<=), misalnya :
    public class OperatorPembanding {
        public static void main(String[] args) {
            int nilaiA = 12;
            int nilaiB = 4;
            boolean hasil;
            // apakah A lebih besar dari B?
            hasil = nilaiA > nilaiB;
            System.out.println(hasil);
            // apakah A lebih kecil dari B?
            hasil = nilaiA < nilaiB;
            System.out.println(hasil);
            // apakah A lebih besar sama dengan B?
            hasil = nilaiA >= nilaiB;
            System.out.println(hasil);
            // apakah A lebih kecil sama dengan B?
            hasil = nilaiA <= nilaiB;
            System.out.println(hasil);
            // apakah nilai A sama dengan B?
            hasil = nilaiA == nilaiB;
            System.out.println(hasil);
            // apakah nilai A tidak sama dengan B?
            hasil = nilaiA != nilaiB;
            System.out.println(hasil);
        }
    }
  • Operator Logika, digunakan untuk membuat operasi logika, terdiri dari : and (&&), or (||), negasi (!)
  • Operator Bitwise, digunakan untuk operasi bit (biner) berlaku untuk tipe data intlongshortchar, dan byte terdiri dari : AND (&), OR (|), negasi (~), XOR (^), Left Shift (<<), Right Shift (>>), Left Shift unsigned (<<<), Right Shift unsigned (>>>),
  • Operator Ternary, seperti membuat pertanyaan, simbolnya menggunakan tanda tanya (?) dan titik-dua (:) untuk memisah jawabannya, misalnya :
    public class OperatorTernary {
        public static void main(String[] args) {
            boolean suka = true;
            String jawaban;
            // menggunakan operator ternary
            jawaban = suka ? "iya" : "tidak";
            // menampilkan jawaban
            System.out.println(jawaban);
        }
    }
    

Percabanagan dalam JAVA ada 3 jenis, yaitu :

  • Percabangan IF, hanya memiliki satu pilihan, hanya akan dikerjakan kalau kondisinya benar, misalnya :
    import java.util.Scanner;
    public class Hadiah {
        public static void main(String[] args) {
            // membuat variabel belanja dan scanner
            int belanja = 0;
            Scanner scan = new Scanner(System.in);
            // mengambil input
            System.out.print("Total Belanjaan: Rp ");
            belanja = scan.nextInt();
            // cek apakah dia belanja di atas 100000
            if ( belanja > 100000 ) {
                System.out.println("Selamat, anda mendapatkan hadiah!");
            }
            System.out.println("Terima kasih...");
        }
    }
  • Percabangan IF/ELSE, memiliki pilihan alternatif kalau kondisinya salah, misalnya :
    import java.util.Scanner;
    public class CekKelulusan {
        public static void main(String[] args) {
            // membuat variabel dan Scanner
            int nilai;
            String nama;
            Scanner scan = new Scanner(System.in);
            // mengambil input
            System.out.print("Nama: ");
            nama = scan.nextLine();
            System.out.print("Nilai: ");
            nilai = scan.nextInt();
            // cek apakah dia lulus atau tidak
            if( nilai >= 70 ) {
                System.out.println("Selemat " + nama + ", anda lulus!");
            } else {
                System.out.println("Maaf " + nama + ", anda gagal");
            }
        }
    }
  • Percabangan IF/ELSE/IF atau SWITCH/CASE, memiliki lebih dari dua pilihan, misalnya :
    import java.util.Scanner;
    public class HitungGrade {
        public static void main(String[] args) {
            // membuat variabel dan scanner
            int nilai;
            String grade;
            Scanner scan = new Scanner(System.in);
            // mengambil input
            System.out.print("Inputkan nilai: ");
            nilai = scan.nextInt();
            // tentukan grade-nya
            if ( nilai >= 90 ) {
                grade = "A";
            } else if ( nilai >= 80 ){
                grade = "B+";
            } else if ( nilai >= 70 ){
                grade = "B";
            } else if ( nilai >= 60 ){
                grade = "C+";
            } else if ( nilai >= 50 ){
                grade = "C";
            } else if ( nilai >= 40 ){
                grade = "D";
            } else {
                grade = "E";
            }
            // cetak hasilnya
            System.out.println("Grade: " + grade);
        }
    }
    atau :
    import java.util.Scanner;
    public class LampuLalulintas {
        public static void main(String[] args) {
            // membuat variabel dan Scanner
            String lampu;
            Scanner scan = new Scanner(System.in);
            // mengambil input
            System.out.print("Inputkan nama warna: ");
            lampu = scan.nextLine();
            switch(lampu){
                case "merah":
                    System.out.println("Lampu merah, berhenti!");
                    break;
                case "kuning":
                    System.out.println("Lampu kuning, harap hati-hati!");
                    break;
                case "hijau":
                    System.out.println("Lampu hijau, silakan jalan!");
                    break;
                default:
                    System.out.println("Warna lampu salah!");
            }
        }
    }
    
  • Percabangan dalam Percabangan (Nested), atau sering disebut nested if, misalnya :
    import java.util.Scanner;
    public class Kasir {
        public static void main(String[] args) {
            // deklarasi variabel dan Scanner
            int belanjaan, diskon, bayar;
            String kartu;
            Scanner scan = new Scanner(System.in);
            // mengambil input
            System.out.print("Apakah ada kartu member: ");
            kartu = scan.nextLine();
            System.out.print("Total belanjaan: ");
            belanjaan = scan.nextInt();
            // proses
            if (kartu.equalsIgnoreCase("ya")) {
                if (belanjaan > 500000) {
                    diskon = 50000;
                } else if (belanjaan > 100000) {
                    diskon = 15000;
                } else {
                    diskon = 0;
                }
            } else {
                if (belanjaan > 100000) {
                    diskon = 5000;
                } else {
                    diskon = 0;
                }
            }
            // total yang harus dibayar
            bayar = belanjaan - diskon;
            // output
            System.out.println("Total Bayar: Rp " + bayar);
        }  
    }
  • Menggunakan Operator Logika dalam Percabangan, bisa membuat percabangan menjadi lebih singkat, misalnya :
    public class Tilang {
        public static void main(String[] args) {
            boolean SIM = false;
            boolean STNK = true;
            // cek apakah dia akan ditilang atau tidak
            if(SIM == true){
                if( STNK == true ) {
                    System.out.println("Tidak ditilang!");
                }
            } else {
                System.out.println("Anda ditilang!");
            }
        }
    }

Perulangan dalam pemrograman JAVA dibagi menjadi dua jenis, yaitu :

  • Counted loop: Perulangan yang jumlah pengulangannya terhitung atau tentu, terdiri dari :
    • perulangan For, misalnya :
      class Bintang{
          public static void main(String[] args){
              for(int i=0; i <= 5; i++){
                  System.out.println("*****");
              }
          }
      }
    • perulangan For each, misalnya :
      public class PerulanganForeach {
          public static void main(String[] args) {
              // membuat array
              int angka[] = {3,1,42,24,12};
              // menggunakan perulangan For each untuk menampilkan angka
              for( int x : angka ){
                  System.out.print(x + " ");
              }
          }
      }
  • Uncounted loop: Perulangan yang jumlah pengulangannya tidak terhitung atau tidak tentu, terdiri dari :
    • perulangan While, misalnya :
      int i = 0;
      while ( i <= 10 ){
          // blok kode yang akan diulang
          System.out.println('Perulangan ke-' + i);
          // increment nilai i
          i++;
      }
    • perulangan Do/While, misalnya :
      public class PerulanganDoWhile {
          public static void main(String[] args) {
              // membuat variabel
              int i = 0;
              do {
                  System.out.println("perulangan ke-" + i);
                  i++;
              } while ( i <= 10);
          }
      }
  • Parulangan Bersarang (Nested Loop), misalnya :
    public class PerulanganBersarang {
        public static void main(String[] args) {
            // membuat variabel
            int x, y;
            // melakukan parulang sebnayan x dan y kali
            for (x = 0; x <= 5; x++){
                for( y = 0; y <= 3; y++){
                    System.out.format("Perulangan [x=%d, y=%d] %n", x, y);
                }
            }
        }
    }

Array adalah sebuah variabel yang bisa menyimpan banyak data dalam satu variabel, menggunakan indeks untuk memudahkan akses terhadap data yang disimpannya, Indeks array selalu dimulai dari 0, menggunakan kurung siku [] untuk membuat array, macamnya meliputi :

  • Array multi dimensi, merupakan array yang memiliki lebih dari satu dimensi, atau array di dalam array, misalnya :
    import java.util.Scanner;
    public class RuangKelas {
        public static void main(String[] args) {
            // Membuat Array dan Scanner
            String[][] meja = new String[2][3];
            Scanner scan = new Scanner(System.in);
            // mengisi setiap meja
            for(int bar = 0; bar < meja.length; bar++){
                for(int kol = 0; kol < meja[bar].length; kol++){
                    System.out.format("Siapa yang akan duduk di meja (%d,%d): ", bar, kol);
                    meja[bar][kol] = scan.nextLine();
                }
            }
            // menampilkan isi Array
            System.out.println("-------------------------");
            for(int bar = 0; bar < meja.length; bar++){
                for(int kol = 0; kol < meja[bar].length; kol++){
                    System.out.format("| %s | \t", meja[bar][kol]);
                }
                System.out.println("");
            }
            System.out.println("-------------------------");
        }
    }
  • Array list, merupakan sebuah class yang memungkinkan membuat sebuah objek untuk menampung apapun, untuk menggunakan Array List, harus mengimpornya terlebih dahulu, misalnya :
    import java.util.ArrayList;
    public class Doraemon {
        public static void main(String[] args) {
            // membuat objek array list
            ArrayList kantongAjaib = new ArrayList();
            // Mengisi kantong ajaib dengan 5 benda
            kantongAjaib.add("Senter Pembesar");
            kantongAjaib.add(532);
            kantongAjaib.add("tikus");
            kantongAjaib.add(1231234.132);
            kantongAjaib.add(true);
            // menghapus tikus dari kantong ajaib
            kantongAjaib.remove("tikus");
            // Menampilkan isi kantong ajaib
            System.out.println(kantongAjaib);
            // menampilkan banyak isi kantong ajaib
            System.out.println("Kantong ajaib berisi "+ kantongAjaib.size() +" item");
        }
    }

Prosedur/fungsi/method yang selanjutnya disebut fungsi, dapat memecah program menjadi sub-sub program, sehingga kita bisa membuat program lebih efisien, dimana :

  • Prosedur adalah sebutan untuk fungsi yang tidak mengembalikan nilai. Fungsi ini biasanya ditandai dengan kata kunci void.
  • Fungsi adalah sebutan untuk fungsi yang mengembalikan nilai.
  • Method adalah fungsi yang berada di dalam Class. Sebutan ini, biasanya digunakan pada OOP

misalnya :

class BelajarFungsi {
    
    // membuat fungsi ucapSalam()
    static void ucapSalam(){
        System.out.println("Selamat Pagi");
    }
    // membuat fungsi main()
    public static void main(String[] args){
        // memanggil/eksekusi fungsi ucapSalam()
        ucapSalam();
    }
}