Panduan Lengkap: Membuat QR Code dengan PHP QR Code

Catur IT Solution 15 Januari 2025 10 menit membaca PHP, QR Code, Tutorial

Daftar Isi

Pengenalan PHP QR Code

PHP QR Code adalah library open source yang memungkinkan developer untuk menghasilkan kode QR secara dinamis menggunakan PHP. Library ini ringan, mudah diimplementasikan, dan tidak memerlukan dependensi eksternal seperti GD Library (meskipun dapat memanfaatkannya jika tersedia).

QR Code (Quick Response Code) adalah sistem barcode matrix dua dimensi yang dapat menyimpan berbagai jenis informasi seperti URL, teks, nomor telepon, atau data lainnya. Dengan PHP QR Code, Anda dapat mengintegrasikan generasi QR Code langsung ke dalam aplikasi web Anda.

Catatan: PHP QR Code mendukung semua standar QR Code dan dapat menghasilkan kode dalam berbagai ukuran dan tingkat koreksi error.

Persiapan dan Instalasi

Download Library

Pertama, download library PHP QR Code dari sumber resminya:

https://sourceforge.net/projects/phpqrcode/

Struktur Direktori

Setelah mengekstrak, Anda akan mendapatkan struktur file seperti ini:

phpqrcode/
├── qrlib.php
├── qrconfig.php
├── qrtools.php
├── index.html
└── ... file lainnya

Include ke Project

Pindahkan folder phpqrcode ke direktori project Anda dan include file utama:

<?php
// Include library QR Code
include_once 'phpqrcode/qrlib.php';
?>

Implementasi Dasar

Membuat QR Code Sederhana

Berikut adalah contoh dasar membuat QR Code dan menyimpannya sebagai file gambar:

<?php
// Include library
include_once 'phpqrcode/qrlib.php';

// Konten yang akan diencode ke QR Code
$content = "https://iscatur.my.id";

// Nama file output
$filename = "qrcode.png";

// Generate QR Code
QRcode::png($content, $filename);

echo "QR Code berhasil dibuat: <img src='$filename'>";
?>

Parameter QRcode::png()

Fungsi QRcode::png() menerima beberapa parameter:

Parameter Deskripsi Default
$text Konten yang akan diencode Wajib
$outfile Nama file output (false untuk output langsung) false
$level Level koreksi error (L, M, Q, H) L
$size Ukuran QR Code (1-10) 3
$margin Margin dalam pixel 4

Kustomisasi QR Code

Mengatur Level Koreksi Error

PHP QR Code mendukung 4 level koreksi error:

<?php
// QR Code dengan level koreksi error High
QRcode::png('https://iscatur.my.id', 'qrcode_h.png', 'H');

// QR Code dengan level koreksi error Medium  
QRcode::png('https://iscatur.my.id', 'qrcode_m.png', 'M');
?>

Mengatur Ukuran dan Margin

<?php
// QR Code dengan ukuran besar dan margin kecil
QRcode::png('Data untuk QR Code', 'qrcode_custom.png', 'Q', 8, 2);

// Parameter: content, filename, errorlevel, size, margin
?>

Fitur Lanjutan

Output Langsung ke Browser

Anda dapat mengoutput QR Code langsung ke browser tanpa menyimpan file:

<?php
// Output langsung ke browser
header('Content-Type: image/png');
QRcode::png('https://iscatur.my.id');
?>

QR Code dengan Logo

Berikut contoh menambahkan logo di tengah QR Code:

<?php
// Generate QR Code terlebih dahulu
QRcode::png('https://iscatur.my.id', 'temp_qr.png', 'H', 10, 2);

// Load QR Code dan logo
$qr = imagecreatefrompng('temp_qr.png');
$logo = imagecreatefrompng('logo.png');

// Ukuran logo (max 30% dari QR Code)
$qr_width = imagesx($qr);
$logo_size = $qr_width * 0.3;

// Posisi logo di tengah
$logo_x = ($qr_width - $logo_size) / 2;
$logo_y = ($qr_width - $logo_size) / 2;

// Copy logo ke QR Code
imagecopyresampled($qr, $logo, $logo_x, $logo_y, 0, 0, $logo_size, $logo_size, imagesx($logo), imagesy($logo));

// Simpan hasil
imagepng($qr, 'qrcode_with_logo.png');

// Hapus file temporary
unlink('temp_qr.png');

echo "QR Code dengan logo berhasil dibuat!";
?>

Contoh Aplikasi Lengkap

Berikut adalah contoh implementasi lengkap generator QR Code dengan form input:

<?php
// Generator QR Code Sederhana
if(isset($_POST['generate'])) {
    include_once 'phpqrcode/qrlib.php';
    
    $content = $_POST['content'];
    $size = isset($_POST['size']) ? $_POST['size'] : 6;
    $level = isset($_POST['level']) ? $_POST['level'] : 'L';
    
    // Buat nama file unik
    $filename = 'qrcodes/qr_' . time() . '.png';
    
    // Pastikan folder qrcodes ada
    if(!is_dir('qrcodes')) {
        mkdir('qrcodes', 0755, true);
    }
    
    // Generate QR Code
    QRcode::png($content, $filename, $level, $size, 2);
    
    echo "<div class='success'>QR Code berhasil dibuat!</div>";
    echo "<img src='$filename' alt='QR Code'>";
}
?>

<!DOCTYPE html>
<html>
<head>
    <title>QR Code Generator</title>
</head>
<body>
    <h1>Generator QR Code</h1>
    <form method="post">
        <label>Konten:</label>
        <input type="text" name="content" required>
        
        <label>Ukuran:</label>
        <select name="size">
            <option value="4">Kecil</option>
            <option value="6" selected>Sedang</option>
            <option value="8">Besar</option>
            <option value="10">Ekstra Besar</option>
        </select>
        
        <label>Level Error Correction:</label>
        <select name="level">
            <option value="L">Low (7%)</option>
            <option value="M">Medium (15%)</option>
            <option value="Q">Quartile (25%)</option>
            <option value="H">High (30%)</option>
        </select>
        
        <button type="submit" name="generate">Buat QR Code</button>
    </form>
</body>
</html>

Kesimpulan

PHP QR Code adalah solusi yang powerful dan mudah untuk mengintegrasikan generasi QR Code ke dalam aplikasi PHP Anda. Dengan library ini, Anda dapat:

Dengan mengikuti panduan ini, Anda sekarang memiliki pengetahuan yang cukup untuk mengimplementasikan QR Code generator dalam project PHP Anda. Selamat mencoba!