Generate QR Code Menggunakan PHP

QR Code merupakan singkatan dari quick response code. QR Code juga merupakan bentuk evolusi kode batang dari satu dimensi menjadi dua dimensi.

Generate QR Code Menggunakan PHP

Tutorial PHP Lanjutan Part 40 : Generate QR Code Menggunakan PHP

Tutorial PHP Lanjutan Part 40 : Generate QR Code Menggunakan PHP -  Hello everyone selamat datang kembali diwebsite saya belajarwithib.my.id, pada seri kali ini kita akan masih mempelajari mengenai PHP dan kita sudah masuk ketahap lanjutan sekarang saya akan membuat materi baru dengan judul Generate QR Code Menggunakan PHP.

QR Code merupakan singkatan dari quick response code. QR Code juga merupakan bentuk evolusi kode batang dari satu dimensi menjadi dua dimensi. QR code mampu menampilkan teks pada pengguna, membuka URL, menyimpan kontak ke buku telepon, dan masih banyak lagi. QR code dinilai lebih praktis dibanding barcode karena mampu menyimpan lebih banyak data. Nah sekarang kita akan belajar bagaimana cara membuat QR code menggunakan PHP.

Simak terus materi nya ya!

Generate QR Code Menggunakan PHP

Untuk membuat QR Code menggunakan PHP kita memerlukan sebuah library untuk membantu kita yaitu library phpqrcode jadi kamu harus mendownload library tersebut dulu ya.

Membuat Halaman Utama

Kita buat halaman yang isinya form dan hasil dari QR code nya, disini saya masih menggunakan bootstrap untuk membantu dalam desain webnya agar pengerjaan jadi lebih mudah dan saya menggunakan CDN untuk memanggil file bootstrapnya jadi jika kamu mengikuti tutorial ini laptop/computer kamu harus terhubung ke internet ya.

Sekarang buatlah file dengan nama index.php lalu ketikanlah code seperti dibawah ini:

Index.php


<!doctype html>
  <html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!-- Bootstrap CSS -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-KyZXEAg3QhqLMpG8r+8fhAXLRk2vvoC2f3B09zVXn8CA5QIVfZOJ3BCsw2P0p/We" crossorigin="anonymous">

    <title>Generate QR Code Menggunakan PHP</title>
  </head>
  <body>
    <div class="container">
      <div class="card mt-5">
        <div class="card-header">
          Generate QR Code Menggunakan PHP
        </div>
        <div class="card-body">
          <div class="row">
            <div class="col-md-6">
              <form id="form_qrcode" method="post">
                <div class="mb-3">
                  <label><b>Isi QR Code</b></label>
                  <input type="text" class="form-control" id="konten" name="konten" placeholder="Masukkan disini...">
                </div>
                <button type="submit" class="btn btn-primary">Generate</button>
              </form>
            </div>
            <div class="col-md-6">
              <div class="mb-3">
                <label><b>Hasil QR Code</b></label>
                <div id="hasil"></div>
              </div>
            </div>
          </div>
          <p class="text-center mt-2"><a href="https://www.belajarwithib.my.id/" target="_blank" style="text-decoration:none;">www.belajarwithib.my.id</a></p>
        </div>
      </div>
    </div>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
  <script type="text/javascript">
    $(document).ready(function(){

      $(document).on('submit', '#form_qrcode', function(event){
        event.preventDefault();
        var konten = $('#konten').val();
        $.ajax({
          url:"qr_code.php",
          method:'POST',
          data:{
            konten:konten
          },
          success:function(data){
            $('#form_qrcode')[0].reset();
            $('#hasil').html(data);  
          }
        });
      });
    });
  </script>
</body>
</html>

Pada code dibawah ini saya masih menggunakan AJAX agar generate barcodenya tanpa Refresh dan saya menggunakan fungsi preventDefault() untuk mencegah terjadinya perubahan terhadap DOM apabila AJAX mengeluarkan respon gagal.


  <script type="text/javascript">
    $(document).ready(function(){

      $(document).on('submit', '#form_qrcode', function(event){
        event.preventDefault();
        var konten = $('#konten').val();
        $.ajax({
          url:"qr_code.php",
          method:'POST',
          data:{
            konten:konten
          },
          success:function(data){
            $('#form_qrcode')[0].reset();
            $('#hasil').html(data);  
          }
        });
      });
    });
  </script>

Generate QR Code Menggunakan PHP

Saya ingatkan kembali pastikan kamu sudah mendownload library yang kita butuhkan yaitu library phpqrcode.

Jika sudah didownload, sekarang buat lah file dengan nama qr_code.php lalu ketikkan kode seperti dibawah ini:

Qr_code.php


<?php 
// Memanggil Libary
require 'phpqrcode/qrlib.php';

//Nama folder tempat menyimpan file QR CODE
$tempdir = "temp/"; 

//Jika folder tidak ada maka akan dibuat oleh PHP foldernya
if (!file_exists($tempdir)){ 
	mkdir($tempdir);
}
//isi qrcode jika di scan
$isiqrcode = $_POST['konten'];

//Membuat nama file QR CODE
$angka_acak     = rand(1,999);
$qrcode_filename = $angka_acak.'-'.$isiqrcode; 
$name_file= $qrcode_filename.".png";

//Quality QR CODE
$quality=QR_ECLEVEL_H;

// Ukuran QR CODE
$UkuranPixel=10;
$UkuranFrame=2;

QRcode::png($isiqrcode, $tempdir.$name_file, $quality, $UkuranPixel, $UkuranFrame); 
?>
<img src="<?php echo $tempdir.$name_file; ?>">

Pada code dibawah, kita menggunakan fungsi require untuk memanggil library yang kita butuhkan.


// Memanggil Libary
require 'phpqrcode/qrlib.php';

Nah setelah itu kita panggil dulu folder untuk menyimpan QR code yang sudah jadi, apabila folder belum dibuat maka PHP akan membuat foldernya menggunakan fungsi mkdir().


//Nama folder tempat menyimpan file QR CODE
$tempdir = "temp/"; 

//Jika folder tidak ada maka akan dibuat oleh PHP foldernya
if (!file_exists($tempdir)){ 
	mkdir($tempdir);
}

Lalu kita membuat nama file untuk QR Code yang sudah jadi nanti dan disini saya membuatnya berdasarkan angka acak dan nama kontennya agar tidak terjadi file yang sama namanya.


//Membuat nama file QR CODE
$angka_acak     = rand(1,999);
$qrcode_filename = $angka_acak.'-'.$isiqrcode;
$name_file= $qrcode_filename.".png";

Kita dapat menentukan kualitas dari QR code yang akan digenerate nanti, ada beberapa pilihan kualitas yaitu QR_ECLEVEL_L, QR_ECLEVEL_M, QR_ECLEVEL_Q dan QR_ECLEVEL_H. Kalau dari insial huruf terakhirnya mungkin kalian sudah tahu mana yang kualitas LOW Sampai HIGH.


//Quality QR CODE
$quality=QR_ECLEVEL_H;

 Untuk ukuran QR code nya kita juga bisa tentukan, ukuran pixel bisa kamu ubah dari 1-10 dan padding framenya sesuaikan saja sama ukuran QR Code nya namun saya memilih padding framenya 2 karena sudah termasuk ideal bagi saya.


// Ukuran QR CODE
$UkuranPixel=10;
$UkuranFrame=2;

Jika semua sudah disetting sekarang masukan semua variable menjadi parameter didalam Class QRcode::png maka otomatis QR code kamu akan degenerate dan disimpan didalam folder temp


QRcode::png($isiqrcode, $tempdir.$name_file, $quality, $UkuranPixel, $UkuranFrame);

Oke sekarang kita akan uji coba dulu apakah berhasil atau tidak.

Generate QR Code Menggunakan PHP
Halaman utama


Generate QR Code Menggunakan PHP
Hasil konten akan diubah menjadi QR Code


Generate QR Code Menggunakan PHP
Setiap QR Code akan disimpan difolder Temp


Sepertinya program kita berhasil, untuk lebih lengkap nya silahkan sesuaikan sendiri dengan kebutuhan kamu ya.

File Untuk Kebutuhan Belajar

Source CodeGenerate QR Code Menggunakan PHP

Semoga Bermanfaat ya!