Codeigniter 4 : Membuat QR Menggunakan Library QR Code

Codeigniter 4 : Membuat  QR Menggunakan Library QR Code

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. 

 

Apa itu 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/

 

Pembuatan QR Code

Untuk pembuatan QR Code perhatikan langkah-langkah berikut ini :

  1. Download library QR Code di link berikut ini https://github.com/endroid/qr-code dengan menggunakan composer dengan perintah sebagai berikut :
    composer require endroid/qr-code​

    Tunggu hingga proses download selesai.

  2. Buatlah sebuah controller bernama QRBarcode.php dan isikan dengan kode berikut ini :
    <?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">';
    
        }
    
    }​
  3. Jalankan php spark serve
  4. Masuk ke browser kalian masing-masing dan masukkan URL http://localhost:8080/qrbarcode
  5. Jika berhasil output dari script sebelumnya adalah sebagai berikut
    QR Code
    https://belajarci4.appsobatcoding.com/qrcode
  6. Jika kalian ingin simpan QR Code ke disk lokal tambahkan script seperti berikut.
    $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.