• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

Jaranguda

Belajar Mengajar

  • Home
  • Sponsor/Jasa
  • Tentang

Membuat Contoh Script Pencarian dengan CodeIgniter 4

Last Updated on 25 October 2020 By tommy Leave a Comment

Kali ini kita akan membuat sebuah pencarian sederhana di CodeIgniter 4, ada banyak perubahan yang perlu dilakukan bila anda pindah dari CodeIgniter versi 2/3 ke CodeIgniter 4. Beberapa diantaranya
– Penggunaan .env untuk menyimpan variabel
– Penggunaan composer
– PHP minimal 7.2+
– Server development menggunakan spark, seperti artisan di Laravel

Sebelum memulai tutorial ini pastikan PHP, MySQL/MariaDB sudah terinstall di system anda.

Install CodeIgniter 4

Install CodeIgniter 4 dengan composer

composer create-project codeigniter4/appstarter pencarian

setelah selesai, folder baru dengan nama pencarian akan muncul. Pindah ke folder tersebut untuk memulai proses pembuatan scriptnya.
Mirip seperti Laravel, CodeIgniter 4 sudah menggunakan dotenv (.env) untuk menyimpan konfigurasinya. Copy file env menjadi .env, di linux/MacOS caranya

cp env .env

Buat User dan Database

Database yang akan digunakan adalah MariaDB, kita perlu membuat database dan user baru untuk aplikasi yang akan kita buat. Hal ini sangat penting agar tidak bercampur dengan aplikasi lainnya.
Login sebagai MySQL root, lalu jalankan perintah dibawah ini

# buat database baru
create database pencarian;
# buat user untuk database 
GRANT ALL PRIVILEGES ON pencarian.* TO "pencarian"@"localhost" IDENTIFIED BY "JARANGUDACOM";

mysql membuat user dan database codeigniter

Konfigurasi Database di CodeIgniter 4

Di folder project pencarian yang tadi dibuat terdapat file .env, buka file tersebut lalu edit/tambahkan

database.default.hostname = localhost
database.default.database = pencarian
database.default.username = pencarian
database.default.password = JARANGUDACOM
database.default.DBDriver = MySQLi

Import Data Dummy

Sebagai contoh kita akan mengimport data dummy yang sudah dipersiapkan dibawah ini. Login ke database pencarian

mysql -h localhost -u pencarian -p pencarian

copy paste file dibawah ini

CREATE TABLE `users` (
  `id` INT(11) NOT NULL,
  `first_name` VARCHAR(50) DEFAULT NULL,
  `last_name` VARCHAR(50) DEFAULT NULL,
  `email` VARCHAR(50) DEFAULT NULL,
  `password` VARCHAR(50) DEFAULT NULL,
  `country` VARCHAR(50) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
--
-- Dumping data for table `users`
--
INSERT INTO `users` (`id`, `first_name`, `last_name`, `email`, `password`, `country`) VALUES
(1, 'Winston', 'Bebis', '[email protected]', 'RCOWs2uJq7', 'Indonesia'),
(2, 'Ethelyn', 'Henrys', '[email protected]', 'ZwirrolHMukN', 'Russia'),
(3, 'Vittorio', 'Vellender', '[email protected]', 'hz7uqNpZ', 'Brazil'),
(4, 'Gearalt', 'Scinelli', '[email protected]', 'noer33vU', 'Poland'),
(5, 'Fey', 'Stevens', '[email protected]', 'j1afGfuw7Ve7', 'China'),
(6, 'Bentley', 'Ditt', '[email protected]', 'BUR6fv0A', 'Portugal'),
(7, 'Tonya', 'Rye', '[email protected]', 'X5tmZ9jDcS', 'China'),
(8, 'Juline', 'Roughey', '[email protected]', 'kjRRO45jeD0w', 'Indonesia'),
(9, 'Alic', 'Wevell', '[email protected]', 'TzSWEfZWy8vQ', 'China'),
(10, 'Norbie', 'Gelder', '[email protected]', '4jYZi2rj', 'Albania'),
(11, 'Emmalynn', 'Gabler', '[email protected]', 'Uri553LlQO', 'Sweden'),
(12, 'Sibelle', 'Bernardo', '[email protected]', 'Lbiznun', 'Ukraine'),
(13, 'Laurie', 'Spooner', '[email protected]', 'IpkvoEL96BXc', 'China'),
(14, 'Othilie', 'Eckly', '[email protected]', '27kZgqGFJMmL', 'Venezuela'),
(15, 'Artus', 'Pennycook', '[email protected]', 'QOs7uRh5yLKB', 'Mali'),
(16, 'Vincenz', 'Osler', '[email protected]', 'Gu5QCXHQ', 'China'),
(17, 'Isidro', 'Hemphall', '[email protected]', 'NQ4KEqzc', 'France'),
(18, 'Pinchas', 'Le Guin', '[email protected]', 'ZsfzyYqo', 'China'),
(19, 'Rorie', 'Aleksandrev', '[email protected]', 'dstH8RB5', 'South Africa'),
(20, 'Mayer', 'Pitkethly', '[email protected]', 'OHjZtbmX5gt', 'Canada'),
(21, 'Karol', 'Baiden', '[email protected]', 'EZ1iIWBYV1p6', 'Morocco'),
(22, 'Franciska', 'Peeters', '[email protected]', 'QJX2b8DfGs', 'Russia'),
(23, 'Chlo', 'Kennford', '[email protected]', 'NU8YjWQF', 'Portugal'),
(24, 'Wolfie', 'Lownds', '[email protected]', '1D00dQaOaO', 'Greece'),
(25, 'Sherri', 'Hellens', '[email protected]', 'Ee7nls3', 'Poland'),
(26, 'Emory', 'Semark', '[email protected]', 'VAIBfR8uO', 'Tajikistan'),
(27, 'Jakie', 'Hulks', '[email protected]', 'jI5ylhi', 'China'),
(28, 'Leticia', 'Mathie', '[email protected]', 'euFzcmE', 'Indonesia'),
(29, 'Raimondo', 'Milier', '[email protected]', '3fNmX69MpoiF', 'Poland'),
(30, 'Fawn', 'Cush', '[email protected]', 'odFVlovDiSj9', 'China');
 
ALTER TABLE `users`
  ADD PRIMARY KEY (`id`);
 
ALTER TABLE `users`
  MODIFY `id` INT(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=31;
COMMIT;

Membuat Model

Buat file model baru dengan nama UserModel.php di folder app/Models/

<?php namespace App\Models;
 
use CodeIgniter\Model;
 
class UserModel extends Model
{
    protected $table = 'users';
}

model diatas agar kita mudah mengakses table users yang tadi dibuat, untuk pencarian ini, file model tersebut sudah cukup.

Membuat Controller

Buat satu file controller baru dengan nama User.php di folder app/Controllers/. File di controller ini bisa kita bilang merupakan backend dari aplikasi sederhana yang kita buat

<?php namespace App\Controllers;
 
use App\Models\UserModel;
 
class User extends BaseController
{
    public function index()
    {
        return view('pencarian');
    }
 
    public function cari()
    {
        $users = new UserModel();
        $cari = $this->request->getGet('cari');
        $data = $users->where('country', $cari)->findAll();
        return view('hasil_pencarian', compact('data'));
    }
}

dari script diatas $users->where('country', $cari)->findAll(); melakukan query SELECT * FROM users WHERE country="$cari" untuk mengambil data berdasarkan firstname, lastname atau lainnya tinggal merubah dibagian country, sesuai dengan nama kolom tabel.

function index fungsi tersebut untuk menampilkan halaman HTML yang akan kita buat kemudian, sementara function cari berguna untuk melakukan query ke model UserModel dan menyimpan datanya di variable $data

Membuat View

Bagian terakhir disini kita membuat tampilan untuk user atau biasa disebut frontend. File yang akan kita buat diletakkan di app/Views/.

1. File pencarian.php, file ini akan ditampilkan sewaktu mengakses /user di browser. File ini berisi file HTML, dan memang isinya hanya HTML aja

<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/5.0.0-alpha2/css/bootstrap.min.css" integrity="sha384-DhY6onE6f3zzKbjUPRc2hOzGAdEf4/Dz+WJwBvEYL/lkkIsI3ihufq9hk9K4lVoK" crossorigin="anonymous">
    <title>Script Pencarian dengan CodeIgniter 4 &raquo; Jaranguda.com</title>
  </head>
  <body>
    <div class="container">
        <br>
        <h3>Pencarian</h3>
        <hr>
        <form  action="<?php echo base_url('user/cari')?>" action="GET">
          <div class="mb-3">
            <label for="cari">data yang dicari</label>
            <input type="text" class="form-control" name="cari" aria-describedby="cari">
          </div>
          <button type="submit" class="btn btn-primary" value="Cari">Submit</button>
        </form>
    </div>
  </body>
</html>

file html pencarian codeigniter

2. File hasil_pencarian.php, file ini yang akan dipanggil untuk menampilkan hasil pencarian setelah user mengklik tombol Submit.

<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/5.0.0-alpha2/css/bootstrap.min.css" integrity="sha384-DhY6onE6f3zzKbjUPRc2hOzGAdEf4/Dz+WJwBvEYL/lkkIsI3ihufq9hk9K4lVoK" crossorigin="anonymous">
    <title>Script Pencarian dengan CodeIgniter 4 &raquo; Jaranguda.com</title>
  </head>
  <body>
    <div class="container">
    <br>
    <h3>Hasil Pencarian</h3>
    <hr>
 
    <table class="table">
    <thead>
    <tr>
        <th>Nama Lengkap</th>
        <th>Email</th>
        <th>Password</th>
        <th>Negara</th>
    </tr>
    </thead>
    <?php
    if(count($data)>0) {
        foreach ($data as $user) {
            echo "<tr>";
            echo "<td>" . $user['first_name'] . ' ' .  $user['last_name'] . "</td>";
            echo "<td>" . $user['email'] . "</td>";
            echo "<td>" . $user['password'] . "</td>";
            echo "<td>" . $user['country'] . "</td>";
            echo "</tr>";
        }
    }
    else {
        echo "Data tidak ditemukan";
    }
    ?>
    </table>
 
 
    </div>
  </body>
</html>

hasil pencarian codeigniter

Tulisan menarik lainnya

  • Membuat Pencarian dengan CodeIgniter 3

    Script searching/pencarian ini adalah porting dari script Pencarian Laravel 5, jadi databasenya diambil dari sana…

  • Membuat Pencarian dengan Laravel 5

    Database yang akan kita gunakan adalah dborang dari tutorial Membuat Pagination di Laravel 5. Membuat…

  • Membuat Form dengan Codeigniter

    Studi kasus kali ini adalah pembuatan form pendaftaran user di website. Database menggunakan MySQL. Buat…

  • Membuat Script Kontak Form dengan PHP

    Dengan menambahkan kontak form di website yang dibuat, bisa menjadi alternative untuk berkomunikasi dengan pemilik…

Filed Under: PHP

Reader Interactions

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Primary Sidebar

Pencarian

Tanya Jawab tentang DevOps SRE CPE, gabung di https://t.me/devopsindonesia

Terbaru

  • Cara Mengganti Port Screen Sharing macOS
  • Cara Menonaktifkan Pager di macOS
  • Cara Mengupdate Nama Apple silicon-as-a-Service Scaleway
  • Cara Force Delete Namespace di Kubernetes
  • Install PHP MariaDB di Mac Monterey

Komentar

  • mazda on Tutorial Lengkap Install Mail Server Postfix Dovecot MariaDB di CentOS 7
  • adi on Menggunakan Mikrotik Sebagai SSH Client
  • aris u on Solusi Simple Queue Mikrotik Tidak Berjalan
  • Bowo on Cara Mematikan SSID Molecool Balifiber
  • aris on Solusi Simple Queue Mikrotik Tidak Berjalan

Tulisan Populer

  • Password Router Huawei HG8245H5 Indihome 1.2m views
  • Password Terbaru ZTE F609 Indihome 784.5k views
  • Password Superadmin Huawei HG8245A 318.2k views
  • Cara Setting Manual Modem GPON ZTE F609 Indihome 273k views
  • Cara Setting Wireless ZTE F609 Indihome 257.1k views
  • Mengaktifkan Port LAN di Huawei HG8245 Indihome 169.8k views
  • Akses UseeTV Indihome via Wireless ZTE F609 156.8k views
  • Kemana Menghilangnya Saldo BCA 50 ribu 153.1k views
  • Cara Reset Password ZTE F609 Indihome 147.5k views
  • Cara Setting DHCP Server Modem/Router ZTE F609 113.5k views

Kategori

  • Delphi
  • dll
  • Gambas
  • Internet
  • Java
  • Lazarus
  • Linux
  • PHP
  • Review
  • Teknologi

Sponsor

kadal.id
carakami.com
kuotabisa.com
Untuk jadi sponsor, hubungi kita lewat halaman sponsor
© 2021. Jaranguda
  • Linux
  • PHP
  • Internet
  • Teknologi
  • Delphi
  • Gambas
  • Java