Pernahkah anda melakukan undian doorprize disuatu acara yang anda selenggarakan?


Pada umumnya, undian doorprize dilakukan dengan mencetak dua kupon pada masing-masing nomor undian. Satu untuk dibagikan kepada peserta undian dan satu lagi disimpan pada sebuah kotak undian yang ada dipanitia.
Namun cara tersebut memiliki beberapa kelemahan yaitu panitia harus mencetak dua nomor dan menyiapkan kotak untuk menampung kupon yang akan diundi oleh panitia. Cara tersebut juga bisa terindikasi adanya kecurangan karena yang mengundi adalah seorang manusia yang sesekali bisa melihat nomor undian yang diambil dari dalam kotak undian tersebut.

Pada kesempatan ini, saya akan menulis cara membuat undian doorprize menggunakan PHP. Adapun beberapa keuntungannya yaitu panitia hanya mencetak satu kupon yang akan diberikan kepada peserta undian, proses undian tidak akan terjadi kecurangan karena yang proses undian adalah sistem melalui panitia, kemudian hasil undiannya bisa kita publish secara realtime melalui tabel yang telah kita sediakan di website.

Yuk, langsung saja kita coba membuat undian doorprize dengan PHP.

Langkah pertama adalah membuat file koneksi dengan nama file koneksi.php

    
<?php
// menghubungi database
$hubungi_database = mysql_connect("localhost", "root", "");
// memilih database
$pilih_database = mysql_select_db("doorprize");
?>
    

Langkah kedua adalah membuat tombol KIRIM di halaman utama yang berfungsi untuk proses undian oleh sistem serta tombol PEMENANG untuk melihat pemenang undian dengan nama file index.php


<?php
// membuat tombol KIRIM untuk melakukan undian dan tombol PEMENANG untuk melihat pemenang 
echo"
<!DOCTYPE html>
<html lang='en'>
    <head>
        <title>Membuat undian Doorprize dengan PHP</title>
        <meta charset='utf-8'>
        <meta name='viewport' content='width=device-width, initial-scale=1'>
        <link rel='stylesheet' href='css/bootstrap.min.css'>
        <script src='https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js'></script>
        <script src='https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js'></script>
        <script src='js/bootstrap.min.js'></script>
    </head>
    <body>
        <div class='container'>
            <form action='hasil.php' method='post' enctype='multipart/form-data'>
                <div class='form-group '>
                    <div>
                        <button type='submit' name='submit'  class='btn btn-primary' style='margin-top: 50px;'><strong>KIRIM</strong></button>
                        <a href='/pemenang.php' class='btn btn-success' style='margin-top: 50px;'><strong>PEMENANG</strong></a>
                    </div>
                </div>
            </form>
        </div>
    </body>
</html>
";
?>
    

Langkah ketiga adalah membuat file dengan nama file hasil.php untuk menampikan hasil undian

        
<?php
echo"
<!DOCTYPE html>
<html lang='en'>
    <head>
        <title>Membuat undian Doorprize dengan PHP</title>
        <meta charset='utf-8'>
        <meta name='viewport' content='width=device-width, initial-scale=1'>
        <link rel='stylesheet' href='css/bootstrap.min.css'>
        <script src='https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js'></script>
        <script src='https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js'></script>
        <script src='js/bootstrap.min.js'></script>
    </head>
    <body>
";
    // menghubungkan ke file koneksi.php
    include 'koneksi.php';
    // melakukan cek bahwa halaman hasil.php dijalankan karena user melakukan klik tombol KIRIM yang ada di halaman index.php
    if (!isset($_POST['submit'])) {
        header("location:/");
    }
    else {
        // proses acak nomor undian berdasarkan kupon doorprize yang telah disebarkan yaitu sebanyak 5 kupon (1 s/d 5) - silahkan disesuaikan dengan kebutuhan anda
        $doorprize = (rand(1, 5));
        // melihat database dengan nomor undian yang keluar apakah sudah pernah keluar atau belum
        $cek_doorprize = mysql_query("SELECT * FROM undian WHERE nomor_kupon = '$doorprize' AND status = 'YES'");
        // jika sudah pernah keluar maka kembali kehalaman utama (index.php)
        if (mysql_num_rows($cek_doorprize) > 0) {
            header("location:/");
        }
        // jika belum pernah keluar maka menyimpan kedatabase dan membuat session yang akan di kirim ke halaman simpan.php
        else {
            $simpan = mysql_query("INSERT INTO undian (nomor_kupon, status) VALUES ('$doorprize', 'NO')");
            mysql_close();
            session_start();
            $_SESSION['hasil_undian'] = $doorprize;
        }
        // menampilkan halaman konfirmasi ke peserta undian dan menyerahkan hadian undian doorprize kemudian menyimpan data pemenang undian ke database
        echo "
        <div class='container'>
            <form action='simpan.php' method='post' enctype='multipart/form-data'>
                <div class='col-sm-2'>
                    <div class='form-group'>
                        <h1><strong> $doorprize </strong></h1>
                    </div>
                    <div class='form-group'>
                        <input type='text' class='form-control' placeholder='Nama Pemenang' name='nama_penerima' autofocus required>
                    </div>
                    <div class='form-group'>
                        <button type='submit' name='submit' class='btn btn-primary'><strong>SIMPAN</strong></button>
                    </div>
                </div>
            </form>
        </div>
    </body>
</html>
        ";
    }
?>
    

Langkah keempat yaitu membuat file dengan nama file simpan.php untuk menyimpan nama pemenang undian doorprize


<?php
echo"
<!DOCTYPE html>
<html lang='en'>
    <head>
        <title>Membuat undian Doorprize dengan PHP</title>
        <meta charset='utf-8'>
        <meta name='viewport' content='width=device-width, initial-scale=1'>
        <link rel='stylesheet' href='css/bootstrap.min.css'>
        <script src='https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js'></script>
        <script src='https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js'></script>
        <script src='js/bootstrap.min.js'></script>
    </head>
    <body>
";
    // menghubungkan ke file koneksi.php
    include 'koneksi.php';
    // memulai seesion pada halaman simpan.php
    session_start();
    // melakukan cek bahwa halaman simpan.php dijalankan karena user melakukan klik tombol SIMPAN yang ada di halaman hasil.php
    if (!isset($_POST['submit'])) {
        header("location:/");
    }
    // melakukan cek bahwa nama pemenang yang ada di halaman hasil.php sudah di isi
    if (!isset($_POST['nama_penerima'])) {
        header("location:javascript://history.go(-1)");
    }
    else {
        // mengambil nama pemenang yang telah diinput pada halaman hasil.php
        $nama_penerima = ucwords(strtolower($_POST['nama_penerima']));
        // membuat status nama pemenang menjadi #N/A apabila sudah dipanggil namun tidak ada konfirmasi dan keterangan menjadi hangus apabila user input simbol minus (-) di form nama pemenang
        if ($nama_penerima == "-") {
            $nama_pemenang = "#N/A";
            $keterangan = "Hangus";
        }
        else {
            $nama_pemenang = $nama_penerima;
            $keterangan = "";
        }
        // menyimpan nama pemenang kedalam database
        $simpan_pemenang = mysql_query("UPDATE undian SET nama_penerima = '$nama_penerima', status = 'YES', keterangan = '$keterangan' WHERE nomor_kupon = $_SESSION[hasil_undian] AND status = 'NO'");
        // kembali ke halaman index.php
        header("location:/");
        mysql_close();
        echo "
    </body>
</html>
        ";
    }
?>
    

Langkah selanjutnya adalah membuat tabel untuk menampilkan nama-nama pemenang undian doorprize dengan nama file pemenang.php


<?php
echo"
<!DOCTYPE html>
<html lang='en'>
    <head>
        <title>Membuat undian Doorprize dengan PHP</title>
        <meta charset='utf-8'>
        <meta name='viewport' content='width=device-width, initial-scale=1'>
        <link rel='stylesheet' href='css/bootstrap.min.css'>
        <script src='https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js'></script>
        <script src='https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js'></script>
        <script src='js/bootstrap.min.js'></script>
    </head>
    <body>
";
    // menghubungkan ke file koneksi.php
    include 'koneksi.php';
    // membuka database hasil undian dengan status YES
    $doorprize = mysql_query("SELECT * FROM undian WHERE status = 'YES' ORDER BY id ASC");
        // membuat tabel pemenang doorprize
        echo "
        <div class='container'>
            <a href='/' class='btn btn-success' role='button' style='margin-top: 50px; margin-bottom: 50px;'><strong>KEMBALI</strong></a>
            <div class='table-responsive'>
                <table class='table table-hover'>
                    <thead class='table thead-dark'>
                        <tr>
                            <th style='text-align: center;'>Nomor Kupon</th>
                            <th>Nama Pemenang</th>
                            <th style='text-align: center;'>Tanggal</th>
                            <th style='text-align: center;'>Jam</th>
                            <th style='text-align: center;'>Keterangan</th>
                        </tr>
                    </thead>
                    <tbody>
";
                    // melakukan perulangan untuk data yang ditemukan
                    while ($tampil_pemenang = mysql_fetch_array($doorprize)) {
                        // menampilkan data yang ditemukan
                        echo "
                        <tr>
                            <td style='text-align: center;'>" . $tampil_pemenang['nomor_kupon'] . "</td>
                            <td>" . $tampil_pemenang['nama_penerima'] . "</td>
                            <td style='text-align: center;'>" . date('d F Y', strtotime($tampil_pemenang['waktu'])) . "</td>
                            <td style='text-align: center;'>" . date('H:i:s', strtotime($tampil_pemenang['waktu'])) . "</td>
                            <td style='text-align: center;'>" . $tampil_pemenang['keterangan'] . "</td>
                        </tr>
                        ";
                    }
                    mysql_close();
echo "                        
                    </tbody>
                </table>
            </div>
        </div>
    </body>
</html>
";
?>
    

Langkah terakhir adalah membuat tabel undian didalam database doorprize, silahkan anda import script berikut ke database doorprize anda


CREATE TABLE `undian` (
  `id` int(3) NOT NULL,
  `nama_penerima` varchar(40) NOT NULL,
  `nomor_kupon` int(3) NOT NULL,
  `waktu` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `status` varchar(3) NOT NULL,
  `keterangan` varchar(6) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

ALTER TABLE `undian`
  ADD PRIMARY KEY (`id`);

ALTER TABLE `undian`
  MODIFY `id` int(3) NOT NULL AUTO_INCREMENT;
    

Download demo DISINI


Terima kasih telah membaca materi ini yang berjudul Membuat undian Doorprize dengan PHP dan jangan lupa bagikan melalui sosial media anda dengan klik icon yang berada dibawah judul materi ini.

Kritik dan saran silahkan kirim ke WhatsApp, Instagram atau Facebook.