Qr Code atau singkatan dari Quick Response Code merupakan jenis barcode dalam bentuk 2 dimensi yang digunakan untuk menampung informasi suatu data. Qr Code dapat digunakan untuk berbagai keperluan seperti membuat Virtual Card yang berisi data pribadi, nomor telpon, email dan lainnya. Jika Qr Code dipindai (discan) oleh kamera Qr Code scanner, maka data tersebut akan ditampilkan, yang nantinya akan diarahkan sesuai dengan isi datanya. Misalnya jika data berisi URL, maka akan diarahkan menuju halaman website, jika berisi nomor telpon maka akan diarahkan menuju kontak telpon sehingga dapat dilakukan pemanggilan via telpon, jika berisi email maka akan diarahkan menuju aplikasi email lengkap dengan alamat email yang dituju beserta konten email yang akan dikirimkan.
Qr Code pertama kali dikenal dan dikembangkan oleh suatu perusahaan otomotif jepang (Denso Wave) pada tahun 1994. Qr Code yang dikembangkan akhirnya banyak dipakai oleh perusahaan lainnya dikarenakan kemampuan penyimpanan data yang jauh lebih banyak jika dibandingkan dengan standar barcode pada umumnya.
Pada barcode normal (barcode 1 dimensi) hanya menyimpan data dalam bentuk nomor digit yang terbatas (di bawah 100 character). Barcode dengan type symbology EAN Code dengan 13 character, Code 39 dengan 20 s.d 23 character, Code 128 dengan 45 s.d 80 character. Namun Qr Code mempunyai kemampuan menampung data yang jauh lebih banyak (lebih dari 2000 character) tergantung jenis Error Correction Level yang digunakan.
Untuk membuat Qr Code generator, saya menggunakan library php-qrcode. Library ini akan menghasilkan file gambar Qr Code dalam bentuk png secara langsung. Saat proses pengujian dengan kamera Qr Code Scanner, hasil gambar yang berhasil digenerate, dapat discan dengan baik.
Proses pembuatan gambar Qr Code, menggunakan sistem Class yang harus dipanggil pada via library php-qrcode yang dibuat dengan sistem OOP (Object Oriented Programming) PHP. Pemanggilan class cukup menggunakan :
QRcode::png("Qr_content", "the_filename.png", "H", 6, 4);
Parameter ke-1 adalah konten dari Qr Code. Parameter ke-2 adalah nama file yang akan disimpan (lengkap dengan direktorinya). Parameter ke-3 adalah Error Correction Level ("H" / high). Paramater ke-4 adalah lebar pixel (6). Parameter ke-5 adalah margin (4).
Pada parameter Error Correction Level, parameter ini mempunyai kemampuan untuk mengembalikan (restore) data jika kode yang dihasilkan rusak atau kotor. Nilainya dapat disesuaikan dengan tingkat keakuratan proses pemindaian. "L" (Low) artinya 7% dari byte data dapat dikembalikan. "M" (Medium) artinya 15% dari byte data dapat dikembalikan. "Q" (Quartile) artinya 25% dari byte data dapat dikembalikan. "H" (High) artinya 30% dari byte data dapat dikembalikan.
Berikut ini file index.php yang digunakan pengguna untuk memasukkan konten Qr Code:
Kode Script :
1. <!DOCTYPE html>
2. <html>
3. <head>
4. <meta charset="utf-8">
5. <title>Membuat QRcode Dengan PHP</title>
6. <link href="https://fonts.googleapis.com/css2?family=Roboto&display=swap" rel="stylesheet">
7. <link href="style.css" rel="stylesheet">
8. </head>
9. <body>
10. <h3>Membuat QRcode Generator Dengan PHP</h3>
11. <p>
12. <form method="post" action="">
13. <fieldset>
14. <p>
15. <label for="qr_code_data">Masukkan Konten Data QRcode</label>
16. <input type="text" name="qr_code_data" id="qr_code_data" minlength="4" required value="<?php $val=isset($_POST['generate']) ? $_POST['qr_code_data'] : ""; echo $val; ?>">
17. </p>
18. <p>
19. <input type="submit" name="generate" id="btn_submit" value="Generate QRCode">
20. </p>
21. </fieldset>
22. </form>
23. </p>
24. <p>
25. <?php
26. if (isset($_POST['generate'])){
27. include "php-qrcode-library/qrlib.php";
28. /*create folder*/
29. $tempdir="img-qrcode/";
30. if (!file_exists($tempdir))
31. mkdir($tempdir, 0755);
32. $file_name=date("Ymd").rand().".png";
33. $file_path = $tempdir.$file_name;
34.
35. QRcode::png($_POST['qr_code_data'], $file_path, "H", 6, 4);
36. /* param (1)qrcontent,(2)filename,(3)errorcorrectionlevel,(4)pixelwidth,(5)margin */
37.
38. echo "<p class='result'>Result :</p>";
39. echo "<p><img src='".$file_path."' /></p>";
40. }
41. ?>
42. </body>
43. </html>
Penataan elemen HTML nya menggunakan CSS (style.css) :
CSS
1. *,#btn_submit{
2. font-family: 'Roboto', sans-serif;
3. }
4.
5. fieldset label {
6. display: block;
7. margin: 5px 0px;
8. }
9.
10. fieldset input#qr_code_data
11. {
12. width: 220px;
13. height: 33px;
14. border: 1px solid #ddd;
15. margin: 5px 0px;
16. padding: 0px 5px;
17. }
18. #btn_submit{
19. display: inline;
20. margin-right: 10px;
21. background-color: #4682B4;
22. color: white;
23. border-radius:3px;
24. opacity: 0.8;
25. padding: 10px 40px;
26. border: none;
27. outline: none;
28. cursor: pointer;
29. }
30. #btn_submit:hover,a:hover{
31. opacity: 1;
32. }
33. .result{
34. margin-left:10px;
35. }
Penjelasan :
Pada file index.php, Elemen <form> dengan metode post diciptakan sebagai tempat memasukkan konten Qr Code. Konten Qr Code ditempatkan pada input type text dengan nama qr_code_data. Form akan disubmit dengan tujuan dirinya sendiri (action="") sebagai pemroses Qr Code generator (baris ke-12 s.d 24).
Saat pengguna menekan tombol Generate QRCode, maka halaman akan direload dengan metoda post sebagai metoda pengiriman datanya. Baris ke-27, digunakan untuk melakukan penyertaan file (include) yang berisi libray php-qrcode. Baris selanjutnya digunakan untuk membuat folder dan juga nama file yang digunakan untuk menamai file Qr Code yang akan dihasilkan. Kemudian QRcode::png(param1,dst); merupakan pemanggilan Class pada library yang digunakan untuk menghasilkan gambar Qr Code dalam bentuk png secara langsung.
Saat pengguna pertama kali melakukan load halaman index.php :
Saat Pengguna berhasil memasukkan konten barcode, akan menghasilkan tampilan :
Demikian artikel tentang cara membuat Qr Code generator dengan PHP. Semoga bermanfaat . Silahkan di sini, untuk mendapatkan source code-nya. Materi source code terdiri atas library php-qrcode, dan juga file-file pendukung.
0
4.912
Halaman Terkait
Mengirim Komentar
Setiap pengunjung situs ini dapat memposting komentar disini, namun tidak semua komentar dapat ditampilkan. Gunakan kalimat baku bahasa Indonesia yang mudah dimengerti. Dilarang memposting kalimat yang berisi ujaran kebencian, SARA, pornografi, perjudian dan spam. Komentar harus sesuai dengan topik. Untuk bahasan lainnya yang lebih mendalam dapat menggunakan sarana forum. Anda dapat mengirimkan suatu pertanyaan dan member lainnya akan menjawab pertanyaan Anda.Paling Banyak Dibaca
Tags
News Letters
Silahkan masukkan email Anda untuk berlangganan informasi kami
Polling
Visitor Live Chat
admin(04 Mar 2021 at 10:52 am)
Silahkan anda memberikan masukkan chat (obrolan) pada fasilitas chat ini. Konten bebas, sopan dan menghargai pendapat orang lain..
_Dicky (06 Mar 2021 at 03:24 pm)
Said : Oops, It's nice content
billy_123 (06 Mar 2021 at 03:26 pm)
Said : Anyone, can you explain about HTMl.. what is it???
_Dicky (06 Mar 2021 at 03:27 pm)
Said : HTML is abbreviation ..
_Dicky (06 Mar 2021 at 03:28 pm)
Said : It's Stand for Hyper text mark up language..
billy_123 (06 Mar 2021 at 03:28 pm)
Said : It's so clear right now..
billy_123 (06 Mar 2021 at 03:29 pm)
Said : and what about CSS
_Dicky (06 Mar 2021 at 03:29 pm)
Said : css for styling sheet guys..
rizky yuda (07 Mar 2021 at 12:30 pm)
Said : Konten cukup menambah wawasan...
suryadi (13 Mar 2021 at 06:46 pm)
Said : Boleh request artikel cara koneksi database msyql ke php..
Nettie Rutherfo (08 Apr 2021 at 12:30 pm)
Said : Auto
Tedy (29 Mei 2021 at 12:09 pm)
Said : nice blog and articles..
Ms. Doyle Mann (02 Jun 2021 at 09:56 pm)
Said : card
flowrie_skylee (12 Jun 2021 at 01:24 pm)
Said : nice content
Nelson Schaefer (12 Jul 2021 at 04:01 pm)
Said : JSON
ooppp (18 Jul 2021 at 11:44 pm)
Said : 000popooppi
Mrs. Jeff Boehm (01 Agt 2021 at 11:01 am)
Said : fuchsia
dharma (07 Sept 2021 at 05:16 pm)
Said : ini support PHP 8?
admin (12 Sept 2021 at 12:50 pm)
Said : #dharma masih dalam ruang lingkup PHP versi 7.
Namun untuk ke depannya akan dipertimbangkan agar support PHP 8, jika perubahan dari PHP 7 ke PHP 8 memang dirasa sangat signifikan.
sadas (13 Jan 2022 at 09:48 am)
Said : Hello
sutiyono (15 Jan 2022 at 09:36 am)
Said : konten cukup menarik.
Fuad (08 Mar 2022 at 05:00 pm)
Said : Maksih bang kontennya, sangat membantu.
admin (10 Mar 2022 at 12:18 pm)
Said : #Fuad Sama sama bang.. terima kasih sudah mampir di blog ini..
Ferdian (09 Mei 2022 at 11:31 pm)
Said : bang bisa tolong buatkan contoh tamplate kirim email verifikasi gak?
admin (10 Mei 2022 at 09:44 pm)
Said : Bang #Ferdian, artikelnya belum dibuat. Tapi ada kesamaan konsep yang dapat ditemukan pada halaman : Membuat Form Newsletters Interaktif Dengan Kode Verifikasi Dikirim Via Email,
Silahkan download source code dan file penunjangnya di sana. dan coba kembangkan untuk mengirimkan verifikasi via email untuk penggunaan yang lainnya.
Peringatan!
Apakah ingin menghapus komentar ini?