Koneksi Database Java dan MySQL
22:21 | Author: Unknown

Dalam membangun sebuah aplikasi yang besar tentu kita memerlukan sebuah database management System untuk mengelola data-data yang diperlukan. Salah satu database management system yang sangat terkenal adalah MySQL.

Sekarang saya akan membahas tentang bagaimana koneksi database antara bahasa pemrograman java dan MySQL. Dalam melakukan koneksi database dari java ke MySQL menggunakan JDBC, maka kita harus lebih dulu menginstall JDBC driver dan MySQL.

Jika kita menggunakan IDE, Netbeans misalnya maka biasanya JDBC sudah terinstall pada saat kita menginstall IDE tersebut.

KONEKSI DATABASE JAVA DENGAN MySQL


Kalo sudah terinstall semua, maka kita langsung menuju ke source code nya…

yang harus dilakukan pada saat melakukan koneksi database dengan bahasa pemrograman java adalah kita harus me-load atau mengaktifkan driver JDBC terlebih dahulu :



Class.forName("com.mysql.jdbc.Driver");


Setelah kita me-load driver jdbc nya koneksi ke database dapat dilakukan dengan perintah berikut :


Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/database","root","");

Parameter pertama merupakan url atau informasi database, yang meliputi jenis dbms,host, dan nama database.

Parameter kedua merupakan username, dan parameter ketiga merupakan password untuk koneksi ke database.

Untuk lebih jelas, source code yang lebih lengkap dapat dilihat di bawah ini :

MySQLConnection.java

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

/**
*
* @author Wahyu Sumartha
*/
public class MySQLConnection {
private String url = "jdbc:mysql://localhost:3306/sekolah";
private String host = "localhost";
private int port = 3306;
private String username = "root";
private String password = "vertrigo";
private String database = "sekolah";
private Connection conn = null;

public MySQLConnection(){
try {
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
} catch (InstantiationException ex) {
Logger.getLogger(MySQLConnection.class.getName()).log(Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
Logger.getLogger(MySQLConnection.class.getName()).log(Level.SEVERE, null, ex);
}
} catch (ClassNotFoundException ex) {
Logger.getLogger(MySQLConnection.class.getName()).log(Level.SEVERE, null, ex);
}
}

public Connection getConn() {
if(conn==null){
try {
conn = DriverManager.getConnection(getUrl(), getUsername(), getPassword());
} catch (SQLException ex) {
Logger.getLogger(MySQLConnection.class.getName()).log(Level.SEVERE, null, ex);
}
}
return conn;
}

public void setConn(Connection conn) {
this.conn = conn;
}

public String getDatabase() {
return database;
}

public void setDatabase(String database) {
this.database = database;
}

public String getHost() {
return host;
}

public void setHost(String host) {
this.host = host;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}

public int getPort() {
return port;
}

public void setPort(int port) {
this.port = port;
}

public String getUrl() {
return url;
}

public void setUrl(String url) {
this.url = url;
}

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}

}


Fungsi Main Untuk Mencoba Koneksi

Test.java

import com.mysql.jdbc.Connection;

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author Wahyu Sumartha
*/
public class Test {

public static void main(String[] args) {
MySQLConnection msqlc = new MySQLConnection();
Connection conn = null;
msqlc.setUrl("jdbc:mysql://localhost:3306/sekolah");
msqlc.setUsername("root");
msqlc.setPassword("vertrigo");
try {
msqlc.setConn(conn);
msqlc.getConn();
System.out.println("Koneksi Berhasil");
} catch (Exception e) {
e.printStackTrace();
System.out.println("Koneksi Gagal");
}
}
}



Jika Koneksi Berhasi maka Output yang dihasilkan adalah string Koneksi Berhasil, Tetapi jika koneksi gagal maka Output nya adalah String Koneksi Gagal.

Readmore...

Block Transposition

Block Transposition merupakan salah satu algoritma kriptografi klasik. Block Transposition menggunakan metode kriptografi simetrik, yaitu metode kriptografi yang menggunakan kunci yang sama dalam proses enkripsi dan deskripsi.
Proses Enkripsi Block Transposition

Dalam melakukan enkripsi plainteks dituliskan per kolom sesuai panjang kunci dan urutannya.. misalnya Plain Teks : Aku Bukanlah Dewa Kunci : kripto kemudian Kunci diberi indeks sesuai dengan urutan alfabet

k r i p t o

2 5 1 4 6 3 Nah jika kita sudah memberikan indeks pada kunci, kemudian kita akan membuat matriks dari plainteks dengan jumlah kolom sama dengan jumlah kunci

k r i p t o

2 5 1 4 6 3

A k u B u k

a n l a h D

e w a * * *

Dari matriks yang sudah dibuat maka kita dapat menentukan chiper teks berdasarkan nomor kolom pada index setiap kunci.

Kolom 1 (Kolom i ) : ula

Kolom 2 (Kolom k) : Aae

Kolom 3 (kolom o) : kD*

Kolom 4 (kolom p) : Ba*

Kolom 5 (kolom r) : knw

Kolom 6 (kolom t) : uh*

maka chiper teks nya : ulaAaekD*Ba*knwuh*

ketika sudah paham dengan teori nya , pertanyaannya sekarang bagaimana implementasi programnya ??? hehe implementasi programnya sangat mudah, kita hanya perlu memasukkan plainteks ke dalam matriks dua dimensi, kemudian mensorting berdasarkan index kuncin ya . Untuk lebih lengkapnya di bawah ini merupakan source code Enkripsi block Transposition dengan menggunakan bahasa pemrograman java :
Source code Enkripsi Block Transposition



/*
*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.wahyu.Cryptho;

/**
*
* @author Wahyu Sumartha
*/


public class BlockTransposition {

private String key;
private String plainTeks;
private String cipherTeks = "";
private int[] integerKey;
private String tempKey;
private String tempPlainTeks;
private int baris;
private int kolom;
private String[][] matriks;
private int index = 0;
private int indexOfMin;

public void init() {
cipherTeks = "";
key = "";
plainTeks = "";
index = 0;
}
//isi matriks dengan karakter spasi

public void initMatriks() {
for (int i = 0; i < baris; i++) {
for (int j = 0; j < kolom; j++) {
matriks[i][j] = " ";
}
}
}

public String removeSpace(String var) {
String tempVar = "";
for (int i = 0; i < var.length(); i++) {
if (var.charAt(i) != ' ') {
tempVar += var.charAt(i);
}
}
return tempVar;

}

public int getIndexOfMin() {
int min = 100;
int indexMin = 0;
for (int i = 0; i < integerKey.length; i++) {
if (min > integerKey[i]) {
min = integerKey[i];
indexMin = i;
}
}
return indexMin;
}

public void setTempPlainTeks(String tempPlainTeks) {
this.tempPlainTeks = tempPlainTeks;
}

public String getTempPlainTeks() {
return tempPlainTeks;
}

public String getPlainTeks() {
plainTeks = removeSpace(getTempPlainTeks());
return plainTeks;
}

public void setTempKey(String tempKey) {
this.tempKey = tempKey;
}

public String getTempKey() {
return tempKey;
}

public String getKey() {
key = removeSpace(getTempKey());
return key;
}

public void isiMatriks() {
initMatriks();
getPlainTeks();
getKey();
kolom = getKey().length();
//menentukan jumlah baris
if (getPlainTeks().length() % getKey().length() == 0) {
baris = (getPlainTeks().length() / getKey().length());
} else if (getPlainTeks().length() % getKey().length() != 0) {
baris = (getPlainTeks().length() / getKey().length()) + 1;
}
matriks = new String[baris][kolom];
//Isi Matriks
for (int i = 0; i < baris; i++) {
for (int j = 0; j < kolom; j++) {
if (index < plainTeks.length()) {
matriks[i][j] = plainTeks.substring(index, index + 1);
index++;
} else {
matriks[i][j] = "*";
}

}
}

//cetak matriks
for (int i = 0; i < baris; i++) {
for (int j = 0; j < kolom; j++) {
System.out.print(matriks[i][j] + " ");
}
System.out.print("\n");
}
}

public String enkrip() {
integerKey = new int[key.length()];
for (int i = 0; i < key.length(); i++) {
integerKey[i] = Integer.parseInt(key.substring(i, i + 1));
System.out.print(integerKey[i] + " ");
}

System.out.println();
for (int i = 0; i < integerKey.length; i++) {
indexOfMin = getIndexOfMin();
integerKey[indexOfMin] = 100;
System.out.print(indexOfMin + " ");
for (int x = 0; x < baris; x++) {
cipherTeks += matriks[x][indexOfMin];

}
}


System.out.println("Chiper Teks : " + cipherTeks);
return cipherTeks;
}
}


Itu untuk enkripsi kalo deskripsi nya silahkan teman2 kembangkan sendiri..hehe.. Nanti kalo sempat akan saya posting deskripsi nya... OK

Readmore...