Tuesday, October 22, 2013

Membuat QR Code Menggunakan Java

Kode QR atau biasa dikenal dengan istilah QR Code adalah bentuk evolusi kode batang dari satu dimensi menjadi dua dimensi. Penggunaan kode QR sudah sangat lazim di Jepang Hal ini dikarenakan kemampuannya menyimpan data yang lebih besar dari pada kode batang sehingga mampu mengkodekan informasi dalam bahasa Jepang sebab dapat menampung huruf kanji. Kode QR telah mendapatkan standardisasi internasional dan standardisasi dari Jepang berupa ISO/IEC18004 dan JIS-X-0510 dan telah digunakan secara luas melalui ponsel di Jepang.
QR merupakan singkatan dari quick response atau respons cepat, yang sesuai dengan tujuannya adalah untuk menyampaikan informasi dengan cepat dan mendapatkan respons yang cepat pula. 
Kode QR adalah suatu jenis kode matriks atau kode batang dua dimensi yang dikembangkan oleh Denso Wave, sebuah divisi Denso Corporationyang merupakan sebuah perusahaan Jepang dan dipublikasikan pada tahun 1994.
Kode QR memiliki kapasitas tinggi dalam data pengkodean, yaitu mampu menyimpan semua jenis data, seperti data numerik, data alphabetis, kanji,kana,hiragana,simbol,dan kode biner. Secara spesifik, kode QR mampu menyimpan data jenis numerik sampai dengan 7.089 karakter, data alphanumerik sampai dengan 4.296 karakter, kode binari sampai dengan 2.844 byte, dan huruf kanji sampai dengan 1.817 karakter.

Contoh Script untuk membuat QR Code seperti dibawah ini :


import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;
import java.io.File;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.nio.charset.CharacterCodingException;
import java.nio.charset.Charset;
import java.nio.charset.CharsetEncoder;

/**
 *
 * @author xxx
 */
public class Qr_code {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
    Charset charset = Charset.forName("ISO-8859-1");
    CharsetEncoder encoder = charset.newEncoder();
    byte[] b = null;
    try {
        // Convert a string to ISO-8859-1 bytes in a ByteBuffer
        ByteBuffer bbuf = encoder.encode(CharBuffer.wrap("Awaluddin Rizal"));
        b = bbuf.array();
    } catch (CharacterCodingException e) {
        System.out.println(e.getMessage());
    }

    String data = null;
    try {
        data = new String(b, "ISO-8859-1");
    } catch (UnsupportedEncodingException e) {
        System.out.println(e.getMessage());
    }

    // get a byte matrix for the data
    BitMatrix matrix = null;
    int h = 100;
    int w = 100;
    com.google.zxing.Writer writer = new QRCodeWriter();
    try {
        matrix = writer.encode(data, 
        com.google.zxing.BarcodeFormat.QR_CODE, w, h);
    } catch (com.google.zxing.WriterException e) {
        System.out.println(e.getMessage());
    }

    String filePath = "D:\\qr_png.png";
    File file = new File(filePath);
    try {
        MatrixToImageWriter.writeToFile(matrix, "PNG", file);
        System.out.println("printing to " + file.getAbsolutePath());
    } catch (IOException e) {
        System.out.println(e.getMessage());
    }
}
}
Setelah program dijalankan hasilnya berupa file image seperti gambar dibawah ini  :







Untuk Librarynya bisa didownload disini

sumber text : http://id.wikipedia.org/wiki/Kode_QR

2 comments:

Note: Only a member of this blog may post a comment.