Artikel, Bootstrap, Free Download, OOP, PHP, PHP Sistem, SQLite

CRUD PHP Menggunakan PDO dengan Database SQLite

Postingan kali ini akan kita bedah secara ringan tentang CRUD (Cread Read Update and Delete) Pemrograman PHP menggunakan PDO (PHP Data Object) dengan database SQLite. Seperti biasa pada kebanyakan sistem yang sudah saya kembangkan sebelumnya selalu menggunakan Database MySQL, sekarang seperti apa sih rasanya menggunakan database SQLite? Yap, untuk alamat officialnya silakan kunjungi di https://www.sqlite.org/index.html, walau rasanya terlambat untuk membedah database ini dalam satu buah artikel, namun tidak ada salahnya untuk mencoba hal baru yang patut untuk dilahap. Jarang juga jika anda browsing artikel yang menyajikan sajian CRUD Complit dengan PDO dan teknik OOP tentunya.

# Persiapan

  1. Sistem Operasi, Saya menggunakan Windows 10 Pro.
  2. XAMPP 7.4 atau terbaru.
  3. Editor, saya menggunakan Sublime Text 3.
  4. Browser, Google Chrome masih menjadi pilihan utama saya.
  5. DB Browser SQLite https://sqlitebrowser.org/

# Database

Kita akan mempersiapkan database terlebih dahulu sebelum membuat Sistem CRUD sebagaimana topik artikel ini. Untuk perintah database tidak jauh berbeda dengan MySQL, hanya lebih sederhana dan perintah yang lebih singkat.

Buatlah sebuah file baru dengan nama install.php, file ini akan kita jadikan instalasi untuk membuat file database dengan exkstensi .sqlite3

$dbfile = "db.sqlite3";
$koneksi = new PDO("sqlite:" . $dbfile . "");

$tb_mhsw = "CREATE TABLE IF NOT EXISTS tb_mhsw (
	mhsw_id INTEGER NOT NULL,
	mhsw_nim TEXT NOT NULL,
	mhsw_nama TEXT NOT NULL,
	mhsw_alamat TEXT NOT NULL,
	created_at TEXT DEFAULT '0000-00-00',
	updated_at TEXT DEFAULT '0000-00-00',
	PRIMARY KEY (mhsw_id),
	UNIQUE (mhsw_nim))";
$koneksi->exec($tb_mhsw);

Untuk melihat hasil database, anda bisa gunakan aplikasi yang juga sangat mudah untuk digunakan, DB Browser SQLite https://sqlitebrowser.org/ yang dirancang khusus untuk SQLite, Download aplikasi, Install dan buka file database yang telah dibuat sebelumnya

# Koneksi

Selanjutnya kita buat file koneksi dari PHP ke Database SQLite. Pada CRUD yang dirancang ini, saya menggunakan konsep Object Oriented Programming (OOP), perhatikan struktur folder berikut ini dari sistem CRUD yang dirancang.

├─ app
│  ├─ Controller.php
│  ├─ Mahasiswa.php
│  └─ Route.php
├─ db
│  ├─ db.sqlite3
│  └─ install.php
├─ inc
│  ├─ config.php
│  └─ router.php
├─ layout
│  ├─ assets  
│  └─ index.php
├─ .htaccess
├─ DONASI.txt
├─ README.md
├─ composer.json
├─ index.php
├─ mhsw_detail.php
├─ mhsw_edit.php
├─ mhsw_input.php
├─ mhsw_proses.php
├─ mhsw_tampil.php
├─ screenshot.jpg
└─ web_main.php

Class Controller.php

Class Controller untuk menghubung PHP ke database SQLite

<?php

namespace App;
use PDO;

class Controller {

	protected $db;

	public function __construct()
	{

        if (session_id() == "") {
            session_start();
        }

		try {
			$this->db = new PDO("sqlite:" . ROOT . "db/db.sqlite3");
		} catch (PDOException $e) {
			die ("Database tidak terhubung!");
		}
	}
}

Class Mahasiswa.php

Untuk menghandle proses CRUD pada table Mahasiswa, saya membuat sebuah file Mahasiswa.php yang menyimpan class Mahasiswa


<?php 

namespace App;
use Carbon\Carbon;

class Mahasiswa extends Controller {

	public function __construct()
	{
		parent::__construct();
	}

	public function tampil()
	{

		$stmt = $this->db->prepare("SELECT * FROM tb_mhsw");
		$stmt->execute();

		$data = array();
		while ($rows = $stmt->fetch()) {
			$data[] = $rows;
		}

		return $data;

	}

	public function input()
	{

		$mhsw_nim = $_POST['mhsw_nim'];
		$mhsw_nama = $_POST['mhsw_nama'];
		$mhsw_alamat = $_POST['mhsw_alamat'];
		$created_at = Carbon::now();

		$sql = "INSERT INTO tb_mhsw (mhsw_nim, mhsw_nama, mhsw_alamat, created_at) VALUES (:mhsw_nim, :mhsw_nama, :mhsw_alamat,:created_at)";						
		$stmt = $this->db->prepare($sql);
		$stmt->bindParam(":mhsw_nim", $mhsw_nim);
		$stmt->bindParam(":mhsw_nama", $mhsw_nama);
		$stmt->bindParam(":mhsw_alamat", $mhsw_alamat);
		$stmt->bindParam(":created_at", $created_at);
		$stmt->execute();

		return false;
	}

	public function edit($id)
	{

		$stmt = $this->db->prepare("SELECT * FROM tb_mhsw WHERE mhsw_id=:mhsw_id");
		$stmt->bindParam(":mhsw_id", $id);
		$stmt->execute();

		$row = $stmt->fetch(); 

		return $row;

	}

	public function update()
	{
		$mhsw_id = $_POST['mhsw_id'];
		$mhsw_nim = $_POST['mhsw_nim'];
		$mhsw_nama = $_POST['mhsw_nama'];
		$mhsw_alamat = $_POST['mhsw_alamat'];
		$updated_at = Carbon::now();

		$sql = "UPDATE tb_mhsw SET mhsw_nim=:mhsw_nim, 
				mhsw_nama=:mhsw_nama,
				mhsw_alamat=:mhsw_alamat,
				updated_at=:updated_at
				WHERE mhsw_id=:mhsw_id";
		$stmt = $this->db->prepare($sql);		
		$stmt->bindParam(":mhsw_nim", $mhsw_nim);
		$stmt->bindParam(":mhsw_nama", $mhsw_nama);
		$stmt->bindParam(":mhsw_alamat", $mhsw_alamat);
		$stmt->bindParam(":updated_at", $updated_at);
		$stmt->bindParam(":mhsw_id", $mhsw_id);
		$stmt->execute();

		return false;
	}

	public function detail($id)
	{

		$stmt = $this->db->prepare("SELECT * FROM tb_mhsw WHERE mhsw_id=:mhsw_id");
		$stmt->bindParam(":mhsw_id", $id);
		$stmt->execute();

		$row = $stmt->fetch(); 

		return $row;
	}
}

# Create

Desain form input terdapat pada file mhsw_input.php dengan tampilan sebagai berikut :

# Read

Desain form tampil data terdapat pada file mhsw_tampil.php dengan tampilan form sebagai berikut:

# Update

Desain form edit terdapat pada file mhsw_edit.php dengan tampilan form sebagai berikut :

# Delete

Untuk membuat tombol delete, kita tidak perlu file khusus, cukup tambahkan perintah Delete pada class yang sudah kita rancang.

# Autoload

Dalam perancangan contoh sistem ini, saya menggunakan Composer dan psr-4, agar lebih mudah dalam menajemen Class, Library dan Updating

# Kesimpulan

Merancang sistem berbasis web menggunakan database SQLite cukup mudah dan elegan. Sesuai dengan fitur yang dibangun oleh perancang SQLite : small, fast, self-contained, high-reliability, full-featured, SQL database engine. Untuk program yang tidak membutuhkan resource database yang besar, maka SQLite merupakan sebuah pilihan yang tepat.

Jika anda tertarik untuk mencoba sistem sederhana ini, Silakan download full source code pada link di bawah ini (memuat iklan)

Download Full Source Code

About Suendri

Owner Gosoftware Media sebelumnya bernama Phpbego Foundation

Discussion

No comments yet.

Tinggalkan Komentar

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Follow Gosoftware Media Blog on WordPress.com

Enter your email address to follow this blog and receive notifications of new posts by email.

Join 816 other followers

Archives

%d bloggers like this: