Sobatcoding.com - Cara Membuat QR Code Sederhana dengan Codeigniter 4
Kalian pasti sudah tidak asing dengan QR Code. Yup QR Code banyak sekali kita dijumpai dan diaplikasikan hampir disetiap tempat. Baik di tempat umum, produk kemasan atau surat juga telah menggunakan QR Code. Bahkan QR code juga semakin populer penggunaannya dalam dunia digital marketing dibandingkan barcode karena kemampuannya untuk menampung informasi yang lebih besar.
Cara penggunaan QR code pun cukup mudah. Hanya dengan memindai kode yang ada di dalamnya dengan ponsel yang dilengkapi dengan kamera dan aplikasi pembaca QR code.
Setelah dipindai, QR code diterjemahkan menjadi informasi yang dapat ditindaklanjuti.
Dan kali ini kita akan coba belajar membuat QR Code sederhana menggunakan Codeigniter 4 dan library QR Code.
Pengertian umum QR Code adalah suatu kode matriks dua dimensi yang didalamnya mampu menyimpan informasi hingga ribuan karakter alfanumerik. Berbeda dengan QR Code, Barcode adalah matriks satu dimensi yang hanya mampu menyimpan 20 angka saja. Itulah perbedaan dasar antara QR Code dan Barcode.
Sumber : https://accurate.id/ekonomi-keuangan/qr-code-adalah/
Untuk pembuatan QR Code perhatikan langkah-langkah berikut ini :
composer require endroid/qr-code
Tunggu hingga proses download selesai.
<?php
namespace App\Controllers;
use Endroid\QrCode\Color\Color;
use Endroid\QrCode\Encoding\Encoding;
use Endroid\QrCode\ErrorCorrectionLevel\ErrorCorrectionLevelLow;
use Endroid\QrCode\QrCode;
use Endroid\QrCode\Label\Label;
use Endroid\QrCode\Logo\Logo;
use Endroid\QrCode\RoundBlockSizeMode\RoundBlockSizeModeMargin;
use Endroid\QrCode\Writer\PngWriter;
class QrBarcode extends BaseController
{
public function index()
{
$writer = new PngWriter();
// Create QR code
$qrCode = QrCode::create('Data')
->setEncoding(new Encoding('UTF-8'))
->setErrorCorrectionLevel(new ErrorCorrectionLevelLow())
->setSize(300)
->setMargin(10)
->setRoundBlockSizeMode(new RoundBlockSizeModeMargin())
->setForegroundColor(new Color(0, 0, 0))
->setBackgroundColor(new Color(255, 255, 255));
// Create generic logo
$logo = Logo::create( FCPATH .'/logo.png')
->setResizeToWidth(150);
// Create generic label
$label = Label::create('Sobatcoding.com')
->setTextColor(new Color(255, 0, 0));
$result = $writer->write($qrCode, $logo, $label);
$dataUri = $result->getDataUri();
echo '<img src="'.$dataUri.'" alt="Sobatcoding.com">';
}
}
$result->saveToFile( FCPATH .'/qrcode.png');
Script di atas berfungsi untuk menyimpan file Qr code ke folder public.
Full kodenya seperti berikut :
<?php
namespace App\Controllers;
use Endroid\QrCode\Color\Color;
use Endroid\QrCode\Encoding\Encoding;
use Endroid\QrCode\ErrorCorrectionLevel\ErrorCorrectionLevelLow;
use Endroid\QrCode\QrCode;
use Endroid\QrCode\Label\Label;
use Endroid\QrCode\Logo\Logo;
use Endroid\QrCode\RoundBlockSizeMode\RoundBlockSizeModeMargin;
use Endroid\QrCode\Writer\PngWriter;
class QrBarcode extends BaseController
{
public function index()
{
$writer = new PngWriter();
// Create QR code
$qrCode = QrCode::create('Data')
->setEncoding(new Encoding('UTF-8'))
->setErrorCorrectionLevel(new ErrorCorrectionLevelLow())
->setSize(300)
->setMargin(10)
->setRoundBlockSizeMode(new RoundBlockSizeModeMargin())
->setForegroundColor(new Color(0, 0, 0))
->setBackgroundColor(new Color(255, 255, 255));
// Create generic logo
$logo = Logo::create( FCPATH .'/logo.png')
->setResizeToWidth(150);
// Create generic label
$label = Label::create('Sobatcoding.com')
->setTextColor(new Color(255, 0, 0));
$result = $writer->write($qrCode, $logo, $label);
$result->saveToFile( FCPATH .'/qrcode.png');
}
}
Untuk kasus di atas image yang saya gunakan ada di dalam folder public. Untuk penggunaan image yang disimpan di folder writable bisa gunakan contoh di bawah
$logo = Logo::create( WRITEPATH .'/uploads/logo.png')
->setResizeToWidth(150);
Contoh di atas adalah image ada di dalam folder writable/uploads/. Pastikan path image yang kalian gunakan sudah benar dan bisa di akses via browser.
Sangat mudah bukan.
Sekian tutorial kali ini. Jika teman-teman memiliki pertanyaan atau saran mengenai artikel ini, jangan ragu untuk meninggalkan komentar pada form di bawah ini.
Semoga bermanfaat.
Komentar 11