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.
Halaman utama |
Hasil konten akan diubah menjadi QR Code |
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!