Archive

Archive for the ‘programming’ Category

[0.1 + 0.2 != 0.3] misteri floating point..!!

October 29, 2016 Leave a comment

float

Berapa hasil penjumlahan 0.1 + 0.2?  Sudah pasti jawabannya 0.3. Lalu bila kita ingin membandingkan apakah 0.1 + 0.2 = 0.3?  Jawabannya juga sudah tidak diragukan lagi, pasti “sama”. Tapi pernahkah kita benar-benar mencoba membuat program untuk membandingkan hasi kalkulasi seperti ini? Apa benar jawabannya adalah “sama”? ternyata tidak selalu jawabannya adalah sama.. 😐

Mungkin bagi yang pernah buat program yang memproses bilangan desimal (pecahan) pernah mengalami kegalauan saat hasil kalkulasi yang seharusnya benar malah menunjukkan keanehan, mmm.. okey mungkin tidak semua orang pernah melakukan kesalahan ini, paling tidak dulu saya pernah mengalami.. 😀

Read more…

Koneksi database MySQL menggunakan Java

June 29, 2014 1 comment

Beberapa saat yang lalu, saya iseng ngebantuin seseorang yang lagi mau belajar koneksi Java ke database MySQL. Jadi yah terpaksalah sedikit buka-buka lagi memori lama seputar Java, nyambi ngabuburit.. 😀

Jadi kurang lebih begini, untuk koneksi ke database menggunakan java, kita membutuhkan driver databasenya. Dalam hal ini kita membutuhkan driver database MySQL. Driver ini seharusnya sudah ada pada default sdk java, sehingga kita tinggal memanggilnya saja dengan perintah class.forName(). Perintah ini harus berada di dalam blok try{} atau dalam method yang melakukan thrown ClassNotFoundException.

try {

String driver = “com.mysql.jdbc.Driver”;
Class.forName(driver);

}

Khusus untuk sdk java versi 7, sebetulnya class ini sudah bisa di load secara otomatis, sehingga perintah di atas ini tidak perlu dituliskan. Selanjutnya adalah membuat connection string-nya di dalam blok try{} atau pada method yang melakukan thrown SQLException dengan kode sebagai berikut:

try {

Connection conn = null;
String dbname = “db_koneksi”; //sesuaikan dengan nama database
String url = “jdbc:mysql://localhost:3306/” + dbname;
String user = “root”; // user mysql
String pass = “”; // passowrd mysql
conn = DriverManager.getConnection(url,user,pass);

}

Nah dengan begitu koneksi dari Java ke MySQL sudah berhasil terbentuk. Selanjutnya bagaimana menjalankan kueri dasar SQL dengan java berdasarkan koneksi tadi?

Oke sekarang kita memerlukan library sql pada java dengan meng-import-nya terlebih dahulu di awal kode program seperti ini:

import java.sql.*;

Kemudian menyiapkan string sql  di dalam blok try{} atau pada method yang melakukan thrown SQLException seperti berikut:

try {

Statement s = null;
s = conn.createStatement();
String tableName = “Books”;
String selTable = “SELECT * FROM ” + tableName;
s.execute(selTable);
ResultSet rs = s.getResultSet();
while((rs!=null) && (rs.next())) {

System.out.println(rs.getString(1) + ” : ” + rs.getString(2) + ” : ” + rs.getString(3) ;

}

}

Setelah menyelesaikan semua kode program yang dibutuhkan, jangan lupa kita menambahkan kode untuk menutup semua koneksi ke database yang telah dibentuk di dalam blok try{} atau method yang melakukan thrown SQLExcetion dengan perintah seperti berikut:

try {

s.close();
conn.close();

}

Jangan lupa juga bila kita menggunakan blok try{} maka harus ditangkap dalam blok catch{} minimal untuk printStackTrace seperti berikut:

catch (Exception ex) {

ex.printStackTrace();

}

 

 

Oke bila dirangkum dari keseluruhan jalan cerita tadi, maka kurang lebih syntax lengkap yang dibutuhkan adalah seperti berikut:

import java.sql.*;
try {

String driver = “com.mysql.jdbc.Driver”;
Class.forName(driver);
Connection conn = null;
String dbname = “db_koneksi”; //sesuaikan dengan nama database
String url = “jdbc:mysql://localhost:3306/” + dbname;
String user = “root”; // user mysql
String pass = “”; // passowrd mysql
conn = DriverManager.getConnection(url,user,pass);
Statement s = null;
s = conn.createStatement();
String tableName = “Books”;
String selTable = “SELECT * FROM ” + tableName;
s.execute(selTable);
ResultSet rs = s.getResultSet();
while((rs!=null) && (rs.next())) {

System.out.println(rs.getString(1) + ” : ” + rs.getString(2) + ” : ” + rs.getString(3);

}
s.close();
conn.close();

}
catch (Exception ex) {

ex.printStackTrace();

}

Nah, tidak susah kan? 🙂

Belajar implementasi Stack menggunakan Java API Collection

November 27, 2013 Leave a comment

Alpro menjadi salah satu mata kuliah di kampus semester ini. Materinya mulai dari bahasa C dan Pascal, kemudian sekarang lanjut dengan Java. Karena merasa belum terbiasa dengan Java, maka diputuskan untuk belajar bareng dengan rekan-rekan lain yang dirasa sudah lebih menguasai materinya. Jadilah hari ini di kampus belajar penggunaan stack, queue, ArrayList, dan HashMap dengan bahasa Java.

Materinya sebenarnya tidak terlalu banyak, tapi mungkin faktor “ga terbiasa” membuat otak agak kewalahan. Biar belajarnya ga sia-sia – hari ini inget besok lupa – jadi mending ditulis aja di sini sebagai reminder seandainya suatu saat kelupaan.

Mungkin langsung aja ke bahasan Stack. Di sini kita mencoba menggunakan Java API Collection yang telah tersedia lengkap, salah satunya library mengenai Stack. Syntaxnya kurang lebih seperti ini:

import java.util.Stack;

public class TesStack {
public static void main(String[] args) {
/*
# membuat objek st bertipe Stack dengan item bertipe Integer
*/
Stack<Integer> st = new Stack<Integer>();

/*
# memanggil method push yang dimiliki oleh Stack
*/
st.push(10);
st.push(20);
st.push(30);

System.out.println(st.size()); // # akan mengeluarkan output “3”
System.out.println(st.pop()); // # akan mengeluarkan output “30” (sekaligus mengurangi size Stack)
System.out.println(st.size()); // # akan mengeluarkan output “2”
System.out.println(st.peek()); // # akan mengeluarkan output “20” (tidak mengurangi size Stack)
System.out.println(st.size()); // # akan mengeluarkan output “2”
}
}

pada code  diatas, kita lihat ada import java.util.Stack; supaya kita bisa menggunakan tipe data Stack secara langsung. Dengan cara ini kita tidak perlu repot-repot membuat sendiri class Stack, karena class tersebut termasuk atribut dan methodnya sudah disediakan oleh java.

Tipe Stack ini memiliki beberapa method yang bisa diakses secara public yaitu push yang digunakan untuk menambahkan record baru pada Stack. Sedangkan method pop merupakan method untuk membaca record Stack yang paling atas kemudian mengeluarkannya dari Stack. Selain pus dan pop ada juga method Size untuk membaca ukuran Stack. Method lain adalah peek, yaitu untuk membaca record terakhir yang masuk, namun tidak melakukan pengurangan terhadap jumlah elemen Stack.

mungkin masih banyak hal lain yang bisa dieksploitasi dari Stack pada Java, namun karena keterbatasan waktu dan kapasitas otak jadi sepertinya kali ini cukup mencatat mengenai Stack dulu saja. 🙂

Categories: programming Tags: , ,