Bahasa Pemrograman Java

## Pengantar Pemrograman Java

Java adalah sebuah bahasa pemrograman komputer yang berbasis kelas, berorientasi objek dan dirancang untuk dapat berjalan disemua platform (cross-platform). Untuk itu Java merupakan bahasa pemrograman yang populer dan masih terus populer hingga saat ini, terutama dalam ranah pengembangan platform mobile. Dapat dikatakan hampir setiap orang pasti pernah dan sering bertemu Java, dikarenakan implementasinya yang terdapat baik dalam aplikasi handphone lawas, maupun aplikasi smartphone seperti Android sekarang. Java yang menjadi bahasa turunan dari bahasa pemrograman C dan C++ ini, dirancang oleh James Gosling pada tahun 1995 ketika dia masih bekerja di Sun Microsystems. Lisensi Java merupakan GNU GPL(General Public License) sehingga bebas dipakai tanpa biaya.

## Instal Java

Untuk dapat menggunakan Java, kita membutuhkan compiler Java yang dapat mengubah bahasa Java menjadi bahasa mesin yang dapat dimengerti oleh komputer. Selain itu kita membutuhkan beberapa tools lain untuk menjalankan program Java yang kita buat, beberapa library dan banyak lagi untuk mengembangkan aplikasi menggunakan Java. Namun tidak perlu khawatir, semua itu sudah dirangkum dalam satu paket yang bernama Java Development Kit (JDK).

JDK dapat dikatakan paket wajib untuk pengembang mengembangkan perangkat lunak berbasis Java. JDK juga terbagi menjadi beberapa versi sesuai kebutuhan. Beberapa diantaranya yang sering digunakan adalah JSE (Java Standart Edition), JEE (Java Enterprise Edition) dan JME (Java Micro Edition). Dalam kelas ini kita akan menggunakan JSE dan JEE saja.

(Ikuti langkah instal berikut sesuai sistem operasi yang Anda jalankan: Windows, Linux atau MacOS)

1. Download JSE pada halaman berikut.
2. Jalankan installer JDK
3. Atur path direktori JDK pada komputer Anda.

### Contoh Program Hello World

```
class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World!"); // mencetak string ke console.
    }
}

```

Ubah (compile) program di atas menjadi bahasa komputer dengan perintah berikut :

```
javac HelloWorld.java

```

Jika sudah di ubah, jalankan dengan perintah berikut :

```
java HelloWorld

```

Output nya adalah

```
Hello World!

```

## Pernyataan

Seperti bahasa pada umumnya, Java memiliki kata dan kalimatnya sendiri. Dalam pemrograman sebut saja kode dan sintaks. Untuk sintaks sendiri, adalah sebuah aturan atau rangkaian kode dalam satu baris (kalimat dalam bahasa umum) yang menjalankan operasi tertentu. Satu baris sintaks disebut Pernyataan (Statement).

Namun dalam pemrograman, sebuah perangkat lunak/aplikasi tidak dibangun hanya dengan satu file saja, apalagi satu baris program. Dibutuhkan ribuan baris bahkan ratusan file untuk membuat satu aplikasi. Untuk sekumpulan baris-baris pernyataan itu sendiri, yang menyelesaikan satu masalah atau menjalankan satu fungsi tertentu, disebut Blok Program.

Blok Program ini juga memiliki beberapa jenis atau nama lainnya, sesuai dengan fungsinya. Yang akan paling sering Anda dengar adalah Object, Method dan Class (Kelas). Class (Kelas) itu sendiri seperti sebuah template untuk objek-objek dengan fungsi atau tujuan yang sama.

### Tipe Data Variabel

Pada bahasa pemrograman manapun termasuk Java, terdapat tipe-tipe data yang diberikan kepada variabel sebagai identitas. Tipe data menentukan jenis data apa yang seharusnya di tampung oleh variabel tersebut.

Terdapat banyak tipe data pada Java, diantara yang sering dipakai adalah int (bilangan bulat), float (bilangan desimal), double (sama seperti float hanya daya tampung lebih banyak), char (karakter), dan String (untaian karakter). Lebih lengkapnya dapat dilihat pada dokumentasi resmi Oracle. Berikut adalah contoh cara mendeklarasikan variabel:

```
public class MyProgram {
	public static void main(String[] args) {
		int age = 24;
		System.out.println(age);
	}
}

```

## Operasi Aritmatika

Jika sebelumnya pada kelas Algoritma kita hanya belajar mengubah bentuk operasi aritmatika, sekarang kita belajar untuk mengimplementasikanya dalam pemrograman. Perlu diperhatikan bahwa beberapa operasi mungkin akan memiliki simbol yang berbeda, tergantung bahasa pemrograman yang dipakai.

Contoh Operasi Aritmatika:

```
public class ArithmeticOperation{
    public static void main(String[] args){
        int a, b, add, min, mul, div, mod;
        double sqr, sqt;
        a = 30;
        b = 5;
        add = a + b;
        min = a - b;
        mul = a * b;
        div = a / b;
        sqr = Math.pow(5, 3); //Memerlukan kelas khusus untuk akar dan pangkat
        sqt = Math.sqrt(25);
        mod = a % b;
        System.out.println("" + add);
        System.out.println("" + min);
        System.out.println("" + mul);
        System.out.println("" + div);
        System.out.println("" + sqr);
        System.out.println("" + sqt);
        System.out.println("" + mod);
    }
}

```

## Objek dan Method

Java adalah bahasa pemrograman berorientasi objek. Salah satu artinya adalah bahwa java dapat memanggil objek untuk mengakses data atau melakukan tugas tertentu, baik objek tersebut dalam satu kelas, kelas lain, atau bahkan file lain.

Pada contoh sebelumnya kita membuat program untuk operasi artimatika. Pada contoh kali ini, kita akan mengubah sedikit program tersebut dengan memasukan tiap operasi ke dalam sebuah method.

```
public class UnconditionalBranch {
   public static void main(String[] args){
       System.out.println("Hasil dari penjumlahan: " + addMethod());
       System.out.println("Hasil dari pengurangan: " + minMethod());
       System.out.println("Hasil dari perkalian: " + mulMethod());
       System.out.println("Hasil dari pembagian: " + divMethod());
   }

   public static int addMethod(){
       int add = 5 + 6;
       return add;
   }

   public static int minMethod(){
       int min = 6 - 5;
       return min;
   }

   public static int mulMethod(){
       int mul = 5 * 6;
       return mul;
   }

   public static int divMethod(){
       int div = 30/5;
       return div;
   }
}

```

## Percabangan

Percabangan adalah salah satu hal yang berperan penting dalam membuat sebuah program menjadi dinamis. Percabangan memungkinkan pemrogram (kita) untuk membuat alternatif aksi yang dapat diambil apabila kondisi yang diharapkan tidak terjadi. Terdapat beberapa bentuk percabangan dalam Java, diantaranya adalah:

1. If
2. If - Else
3. If - If else - Else
4. Switch case

Perbedaan dari 3 jenis percabangan pertama hanya pada seberapa panjang atau kompleks keputusannya. Apabila hanya diperlukan untuk menentukan satu keputusan, dan jika kondisi yang dimaksud tidak terpenuhi program tidak akan melakukan apa-apa, bentuk percabangan if tunggal seperti dibawah dapat digunakan.

```
if(boolean expression){
       statement1;
       statement2;
       ......
       statementn;
}

```

Untuk pengambilan antara dua keputusan, bentuk umum dari percabangan di bawah ini dapat digunakan.

```
if(boolean expression){
       statement1;
       statement2;
       ......
       statementn;
} else {
       statement1;
       statement2;
       ......
       statementn;
}

```

Untuk pengambilan keputusan jamak (lebih dari dua), bentuk umum dari percabangan di bawah ini dapat digunakan.

```
if(boolean expression1){
       statement1;
       statement2;
       ......
       statementn;
} else if(boolean expression2){
       statement1;
       statement2;
       ......
       statementn;
} else if(boolean expressionn){
       statement1;
       statement2;
       ......
       statementn;
} else {
       statement1;
       statement2;
       ......
       statementn;
}

```

## Perulangan

Dalam merancang sebuah program, terdapat beberapa tugas yang akan terus diulang hingga waktu tertentu.

```
for(condition){
       statement1;
       statement2;
       ......
       statementn;
}

```

```
while(condition){
       statement1;
       statement2;
       ......
       statementn;
}

```

```
do{
       statement1;
       statement2;
       ......
       statementn;
} while(condition)

```

## Larik (Array)

```
public class ArraySample {
    public static void main(String[] args){
        int[] arr = {1,2,3,4,5,6};
        System.out.println("Cetak array ke-5: " + arr[5]);
    }
}

```

## Input Output (I/O)

```
import java.util.Scanner;

public class BasicIO{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);

        System.out.print("Enter your no: ");
        int no = sc.nextInt();
        System.out.print("Enter your name: ");
        String name = sc.next();
        System.out.print("Enter your fee: ");
        double fee = sc.nextDouble();
        System.out.println("No: " + no + "\n" + "Name: " + name + "\n" + "Fee : " + fee);
    }
}

```

## Graphical User Interface (GUI)

```
import javax.swing.*;

public class HelloSwing {
    private static void createAndShowGUI() {
        JFrame frame = new JFrame("HelloSwing");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JLabel label = new JLabel("Hello World");
        frame.getContentPane().add(label);
        frame.setSize(500, 300);
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGUI();
            }
        });
    }
}

```

## Java Database

```
//STEP 1. Import required packages
import java.sql.*;

public class JDBCExample {
  // JDBC driver name and database URL
  static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
  static final String DB_URL = "jdbc:mysql://localhost/";

  //  Database credentials
  static final String USER = "username";
  static final String PASS = "password";

  public static void main(String[] args) {
  Connection conn = null;
  Statement stmt = null;
  try{
     //STEP 2: Register JDBC driver
     Class.forName("com.mysql.jdbc.Driver");

     //STEP 3: Open a connection
     System.out.println("Connecting to database...");
     conn = DriverManager.getConnection(DB_URL, USER, PASS);

     //STEP 4: Execute a query
     System.out.println("Creating database...");
     stmt = conn.createStatement();

     String sql = "CREATE DATABASE STUDENTS";
     stmt.executeUpdate(sql);
     System.out.println("Database created successfully...");
  }catch(SQLException se){
     //Handle errors for JDBC
     se.printStackTrace();
  }catch(Exception e){
     //Handle errors for Class.forName
     e.printStackTrace();
  }finally{
     //finally block used to close resources
     try{
        if(stmt!=null)
           stmt.close();
     }catch(SQLException se2){
     }// nothing we can do
     try{
        if(conn!=null)
           conn.close();
     }catch(SQLException se){
        se.printStackTrace();
     }//end finally try
  }//end try
  System.out.println("Goodbye!");
}//end main
}//end JDBCExample

```

```
Connecting to database...
Thu Nov 09 07:37:42 WIB 2017 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
Creating database...
Database created successfully...
Goodbye!

```

## Referensi

Java Wikipedia - https://en.wikipedia.org/wiki/Java\_(programming\_language)

JDK Download - http://www.oracle.com/technetwork/java/javase/downloads/index.html

JDK Install Tutorial NTU - https://www3.ntu.edu.sg/home/ehchua/programming/howto/JDK\_Howto.html

Java Programming Wikibooks - https://en.wikibooks.org/wiki/Java\_Programming

Scanner Package Java Javatpoint - https://www.javatpoint.com/Scanner-class

Swing from Tutorialspoint - https://www.tutorialspoint.com/swing

Using Swing Components - https://docs.oracle.com/javase/tutorial/uiswing/components/index.html

MySQL Connector - https://dev.mysql.com/downloads/connector/

MySQL Java Connector Install Ubuntu - https://help.ubuntu.com/community/JDBCAndMySQL

JDBC Create Database - https://www.tutorialspoint.com/jdbc/jdbc-create-database.htm