0% menganggap dokumen ini bermanfaat (0 suara)
73 tayangan31 halaman

Crud PHP Tuts For All

Dokumen tersebut memberikan panduan pembuatan proyek CRUD (Create, Retrieve, Update, Delete) sederhana menggunakan PHP dan HTML. Terdapat beberapa tahapan yang perlu dilakukan seperti persiapan perangkat lunak, membuat folder dan database, serta membuat tabel-tabel di dalam database.

Diunggah oleh

Inonelmr 08
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
73 tayangan31 halaman

Crud PHP Tuts For All

Dokumen tersebut memberikan panduan pembuatan proyek CRUD (Create, Retrieve, Update, Delete) sederhana menggunakan PHP dan HTML. Terdapat beberapa tahapan yang perlu dilakukan seperti persiapan perangkat lunak, membuat folder dan database, serta membuat tabel-tabel di dalam database.

Diunggah oleh

Inonelmr 08
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 31

PANDUAN PEMROGRAMAN PHP 2023

BAGIAN I
CRUD DENGAN PHP DAN HTML

Proyek yang akan kita buat sebagai materi belajar adalah project CRUD (Create, Retrieve/Read,
Update dan Delete) sederhana dengan menggunakan bahasa pemrograman PHP.
Ada beberapa tahap yang perlu dipersiapkn dalam pembuatan project ini adalah sebagai berikut:
1.1 Kebutuhan Software
a. Web Server dan DBMS = XAMPP
XAMPP dapat diunduh dari laman apachefriends.org atau dari laman sourceforge.net.
b. Text Editor = Notepad++ (Recommended)
Notepad++ dapat diunduh dari laman notepad-plus-plus.org
c. Browser = Google Chrome (Recommended)
Browser Google Chrome dapat diunduh dari laman google.co.id
d. MySQL Tool = SQLyog (optional)
SQLyog dapat diunduh dari laman webyog.com atau dari laman github.com

1.2 Persiapan
Hal-hal penting yang harus dipersiapakan untuk pembuatan project CRUD ini selain kebutuhan
software di atas adalah:
1.2.1 Membuat Folder
Persiapan membuat folder ini sangat penting karena folder ini akan berfungsi sebagai wadah
untuk menampung file-file utama dan file-file pendukung project yang akan dibuat. Buat nama folder
sesuai format berikut ini crud_php_MK_KLS
MK = Singkatan nama Matakuliah
PT = Pemrograman Terstruktur
PBD = Praktikum Basis Data
MABD = Manajemen dan Administrasi Basis Data
PMW = Pemrograman Mobile Web
KLS = Nama Kelas. Misalnya kelas A, B, C dan seterusnya

PENTING !!!
Contoh: Untuk matakuliah Pemrograman Mobile Web Kelas G, maka penulisan nama
foldernya adalah crud_php_pmw_g (semuanya huruf kecil/lower case dan
menggunakan simbol underscore “_” sebagai pengganti spasi).
Misalnya matakuliah yang anda program adalah adalah Pemrograman Terstruktur
Kelas A maka nama folder yang harus anda buat adalah crud_php_pt_a sesuai format.

Jika sudah memahami format penulisan nama folder di atas maka berikutnya adalah membuat
folder sesuai kasus yang diangkat sebagai contoh yaitu kasus matakuliah Pemrograman Mobile Web
Kelas G

Powered By GladiatorSoft – Donzi Antonio 1


PANDUAN PEMROGRAMAN PHP 2023
1. Buka Windows explorer lalu buat folder sesuai kasus ini di dalam root directory 📁 C:\xampp\
htdocs\crud_php_pmw_g

CATATAN:
Bagian yang di-highlight warna MERAH pada penulisan nama folder di atas disesuaikan
dengan nama matakuliah dan nama kelas anda

2. Buat juga dua sub folder di dalamnya yaitu folder config dan modul
3. Di dalam folder modul, buat lagi sub folder dengan nama jenjang, prodi dan mahasiswa

Struktur folder crud_php_pmw_g sebagai berikut:

C:\xampp\htdocs
- crud_php_pmw_g
- config
- modul
- jenjang
- prodi
- mahsiswa

Gambar 1. Struktur folder crud_php_pmw_g

1.2.2 Membuat Database


Untuk pembuatan nama database ini disesuaikan dengan nama folder di atas dengan format
db_crud_MK_KLS. Karena dalam kasus ini nama matakuliahnya adalah Pemrograman Mobile Web Kelas
G maka nama database yang harus dibuat adalah db_crud_pmw_g (semuanya huruf kecil/lower case
dan menggunakan simbol underscore “_” sebagai pengganti spasi).
Cara membuatnya adalah sebagai berikut:
1. Buka aplikasi XAMPP
2. Jalankan Apache dan MySQL
3. Buka halaman phpMyAdmin di browser dengan link URL sebagai berikut:
http://localhost/phpmyadmin
4. Klik pada tab menu Databases atau boleh langsung menuju link ini
http://localhost/phpmyadmin/index.php?route=/server/databases
5. Ketikkan nama database pada bagian Database name yaitu db_crud_php_pmw_g

CATATAN:
Bagian yang di-highlight warna MERAH pada penulisan nama database di atas disesuaikan dengan
nama matakuliah dan nama kelas anda

Powered By GladiatorSoft – Donzi Antonio 2


PANDUAN PEMROGRAMAN PHP 2023

Gambar 2. Jendela form database name

6. Klik tombol Create di sebelah kanan textbox Database name untuk mulai proses pembuatan
database. Jika proses berhasil maka tampak jendela Create table dan anda diminta untuk
membuatkan tabel-tabel yang dibutuhkan di dalam database yang baru dibuat tersebut.

Gambar 3. Jendela form create table

1.2.3 Membuat Tabel


Dari jendela Database Sctructure pada gambar 3 di atas, tambahkan tabel-tabel berikut ini.
Tabel 1. Tabel tbl_jenjang

Powered By GladiatorSoft – Donzi Antonio 3


PANDUAN PEMROGRAMAN PHP 2023

tbl_jenjang
Name Type Length/Values Null Index A_I
kode_jenjang Varchar 3 No Primary No
nama_jenjang Varchar 50 No - No

Tabel 2. Tabel tbl_prodi

tbl_prodi
Name Type Length/Values Null Index A_I
kode_prodi Varchar 2 No Primary No
nama_prodi Varchar 50 No - No
kode_jenjang Varchar 3 No - No

Tabel 3. Tabel tbl_mahasiswa

tbl_mahasiswa
Name Type Length/Values Null Index A_I
nim Varchar 8 No Primary No
nama_mahasisw Varchar 60 No - No
a
jenis_kelamin Varchar 10 No - No
tempat_lahir Varchar 30 No - No
tanggal_lahir Date - No - No
kode_prodi Varchar 2 No - No

1.2.3.1 Membuat Tabel Tbl_jenjang


Melanjutkan dari proses pada gambar 3 di atas, untuk membuat tabel tbl_jenjang pada
phpMyAdmin, ikuti langkah-langah berikut ini:
1. Ketikkan nama tabel pada textbox Name yaitu tbl_jenjang
2. Tentukan jumlah kolom atau field yang akan dibuat untuk tabel tbl_jenjang ini pada spinner
Number of columns yaitu 2. Di sini diinputkan angka 2 karena jumlah field yang akan
diinputkan berjumlah 2 field yaitu field kode_jenjang dan field nama_jenjang (lihat struktur
tabel tbl_jenjang pada daftar Tabel 1)
3. Langkah terakhir adalah klik tombol Go untuk mulai membuat tabel tbl_jenjang

Ketiga langkah di atas dapat diihat pada gambar 4 berikut ini:

Powered By GladiatorSoft – Donzi Antonio 4


PANDUAN PEMROGRAMAN PHP 2023

Gambar 4. Jendela form create table dan langkah-langkahnya

Setelah tombol Go diklik maka tampil form isian untuk menginputkan kedua field yang diminta
pada proses pembuatan tabel pada langkah kedua di atas. Kedua field ini adalah kode_jenjang dan
nama_jenjang.

Gambar 5. Jendela form create field pada table tbl_jenjang

Ikuti langkah-langkah berikut ini untuk mengisi form pada gambar 5 di atas.
1. Ketikkan kode_jenjang di bagian nama pada baris pertama
2. Pilih tipe data pada combo Type. Di sini anda harus memilih tipe data VARCHAR (lihat
struktur tabel tbl_jenjang pada daftar Tabel 1)

Powered By GladiatorSoft – Donzi Antonio 5


PANDUAN PEMROGRAMAN PHP 2023
3. Ketikkan angka 3 pada textbox Length/Values VARCHAR (lihat struktur tabel tbl_jenjang
pada daftar Tabel 1)
Bagian Length/Values ini diinputkan angka 3 karena batas maksimal daya tampung untuk
field ini hanya 3 karakter misalnya D-3, D-4, S-1 dan seterusnya.

Untuk langkah ke-4 sampai langkah ke-6, ikuti langkah ke-1 sampai langkah ke-3 di atas
dengan mengikuti aturan yang tertera pada tabel daftar Tabel 1.

Gambar 6. Jendela form create field pada table tbl_jenjang dan isiannya

4. Tentukan primary key pada tabel tbl_jenjang.


Perhatikan Tabel 1, tampak bahwa Index pada baris kode_jenjang bernilai primary. Ini
berarti anda harus menentukan field kode_jenjang sebagai primary key.
Caranya adalah pilih PRIMARY pada dropdown select Index, lalu jika muncul kotak dialog
Add Index klik tombol Go lalu terakhir klik tombol Save untuk mengakhiri proses
pembuatan tabel tbl_jenjang.

Powered By GladiatorSoft – Donzi Antonio 6


PANDUAN PEMROGRAMAN PHP 2023

Gambar 7. Jendela form create field pada table tbl_jenjang dan add index

1.2.3.2 Membuat Tabel Tbl_prodi


Untuk membuat tabel tbl_prodi ini, caranya sama dengan cara membuat tabel tbl_jenjang di atas
dan mengikuti struktur tabel tbl_jenjang pada daftar Tabel 2.

1.2.3.3 Membuat Tabel Tbl_mahasiswa


Jika tabel tbl_prodi telah dibuat sesuai dengan cara membuat tabel tbl_jenjang di atas maka
pembuatan tabel mahasiswa ini juga sama persis proses pembuatannya seperti cara membuat kedua
tabel sebelumnya dengan mengikuti struktur tabel tbl_mahasiswa pada daftar Tabel 3.

1.2.4 Membuat Database dan Tabel dengan Perintah SQL (Optional)


Selain menggunakan langkah-langkah di atas untuk membuat database dan tabel-tabelnya, anda
dapat juga menggunakan perintah SQL/Query untuk membuatnya. Caranya adalah sebagai berikut:
1. Buka halaman phpMyAdmin di browser
2. Klik pada tab menu SQL atau boleh langsung menuju link ini
http://localhost/phpmyadmin/index.php?route=/server/sql
3. Salin semua script berikut ini

-- SALIN MULAI DARI SINI --

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";


START TRANSACTION;
SET time_zone = "+00:00";

CREATE DATABASE IF NOT EXISTS `db_crud_pmw_g` DEFAULT CHARACTER SET utf8mb4


COLLATE utf8mb4_general_ci;
USE `db_crud_pmw_g`;

-- --------------------------------------------------------

Powered By GladiatorSoft – Donzi Antonio 7


PANDUAN PEMROGRAMAN PHP 2023
--
-- Table structure for table `tbl_jenjang`
--

DROP TABLE IF EXISTS `tbl_jenjang`;


CREATE TABLE `tbl_jenjang` (
`kode_jenjang` varchar(3) NOT NULL,
`nama_jenjang` varchar(50) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- --------------------------------------------------------

--
-- Table structure for table `tbl_prodi`
--

DROP TABLE IF EXISTS `tbl_prodi`;


CREATE TABLE `tbl_prodi` (
`kode_prodi` varchar(2) NOT NULL,
`nama_prodi` varchar(50) DEFAULT NULL,
`kode_jenjang` varchar(3) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- --------------------------------------------------------

--
-- Table structure for table `tbl_mahasiswa`
--

DROP TABLE IF EXISTS `tbl_mahasiswa`;


CREATE TABLE `tbl_mahasiswa` (
`nim` varchar(8) NOT NULL,
`nama_mahasiswa` varchar(60) DEFAULT NULL,
`jenis_kelamin` varchar(10) DEFAULT NULL,
`tempat_lahir` varchar(30) DEFAULT NULL,
`tanggal_lahir` date DEFAULT NULL,
`kode_prodi` varchar(4) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

--
-- Indexes for dumped tables
--

--
-- Indexes for table `tbl_jenjang`
--
ALTER TABLE `tbl_jenjang`
ADD PRIMARY KEY (`kode_jenjang`);

--
-- Indexes for table `tbl_prodi`
--
ALTER TABLE `tbl_prodi`
ADD PRIMARY KEY (`kode_prodi`);

--

Powered By GladiatorSoft – Donzi Antonio 8


PANDUAN PEMROGRAMAN PHP 2023
-- Indexes for table `tbl_mahasiswa`
--
ALTER TABLE `tbl_mahasiswa`
ADD PRIMARY KEY (`nim`);

COMMIT;

-- SALIN SAMPAI DI SINI --

CATATAN:
Bagian yang di-highlight warna Merah pada script di atas adalah nama database yang harus diganti
sesuai dengan format aturan penulisan nama database yaitu db_crud_MK_KLS. Namun untuk
mengganti nama database ini harus berhati-hati agar tidak kehilangan tanda petik tunggal (`) yang
mengapiti nama database yang dituliskan dan perhatikan pula agar tidak ada spasi kosong antara
tanda petik dengan nama database.
CCC
4. Paste/tempelkan script yang disalin tadi ke dalam jendela SQL query.
Jangan lupa untuk mengganti nama databasenya sesuai kasus yaitu nama matakuliah dan nama
kelas anda lalu klik tombol Go

Gambar 8. Jendela SQL query

5. Hasil dari proses eksekusi script di atas adalah sebagai berikut

Powered By GladiatorSoft – Donzi Antonio 9


PANDUAN PEMROGRAMAN PHP 2023

Gambar 9. Jendela tree view database db_crud_pmw_g

1.3 Menulis Script PHP


Untuk mulai menulis script PHP, buka teks editor anda (Notepad++) lalu ketikkan script-script yang
diminta sesuai yang tertera di dalam tutorial ini
1.3.1 File-File Konfigurasi
File konfigurasi yang dimaksud di sini adalah file-file yang dikumpulkan di dalam folder config
untuk kebutuhan CRUD secara umum.
1.3.1.1 File Koneksi
File ini berisi script untuk melakukan koneksi PHP dengan database MySQL. Scriptnya adalah
sebagai berikut

<!-- SALIN MULAI DARI SINI -->


<?php
$server = "localhost";
$user = "root";
$password = "";
$nama_database = "db_crud_pmw_g";
$db = mysqli_connect($server, $user, $password, $nama_database);

if( !$db ){
die("Gagal terhubung dengan database: " . mysqli_connect_error());
}
?>

<!-- SALIN SAMPAI SINI -->

CATATAN:
Bagian yang di-highlight warna MERAH pada penulisan nama database di atas disesuaikan dengan
nama matakuliah dan nama kelas anda

Powered By GladiatorSoft – Donzi Antonio 10


PANDUAN PEMROGRAMAN PHP 2023

Script di atas diketikkan atau disalin ke dalam text editor dan disimpan dengan nama
koneksi.php ke dalam folder yang telah dibuat sesuai matakuliah dan kelas 📁 C:\xampp\htdocs\
crud_php_pmw_g\konfig\koneksi.php
PENJELASAN:
File koneksi.php ini sebagai penghubung antara PHP dengan MySQL menggunakan
fungsi mysqli_connect() dengan parameter alamat server, user, password, dan nama database. Secara
default nama server adalah localhost, nama user adalah root. Nama user, password maupun nama
database dapat diganti sesuai kebutuhan

1.3.1.2 File Fungsi


Buat juga sebuah dokumen baru pada text editor lalu ketikkan atau salin script berikut ini ke
dalamnya

<!-- SALIN MULAI DARI SINI -->

<?php
function cek_kode($namaTabel, $namaField, $nilaiField)
{
include "koneksi.php";
$sql = "SELECT * FROM $namaTabel WHERE $namaField='$nilaiField'";
$query = mysqli_query($db, $sql);
$row = mysqli_fetch_assoc($query);
return (is_array($row) && count($row)>0);
}

?>
<!-- SALIN SAMPAI DI SINI -->

Script di atas dapat diketikkan atau disalin ke dalam text editor dan disimpan dengan nama
fungsi.php ke dalam folder yang telah dibuat sesuai nama matakuliah dan kelas 📁 C:\xampp\htdocs\
crud_php_pmw_g\konfig\fungsi.php

PENJELASAN :
Fungsi cek_kode di atas adalah fungsi yang dibuat untuk memeriksa apakah sebuah data
berdasarkan kode tertentu (primary key) apakah sudah ada di dalam tabel atau belum sehingga tidak
terjadi duplikasi data pada saat penyimpanan data.
function cek_kode($namaTabel, $namaField, $nilaiField)
$namaTabel : Parameter ini mewakili nama suatu tabel tertentu misalnya tabel
tbl_mahasiswa
$namaField : Parameter ini mewakili nama suatu field tertentu. Field/kolom ini adalah
field yang akan dicari data di dalamnya misalnya field nim pada tabel
tbl_mahasiswa
$nilaiField : Parameter ini mewakili nilai suatu field tertentu yang akan dicari kecocokan
nilainya pada field tertentu. Nilai field ini biasanya dikirimkan dari form
setelah terjadi proses $_POST atau $_GET

Powered By GladiatorSoft – Donzi Antonio 11


PANDUAN PEMROGRAMAN PHP 2023
Ketiga parameter di atas sifatnya dinamis artinya nama tabel, nama filed maupun nilai field dapat
berubah-ubah sesuai kebutuhan. Misalnya untuk mencari kecocokan nilai inputan nim pada field nim
yang terdapat pada tabel tbl_mahasiswa maka penulisan fungsi ini menjadi:

cek_code("tbl_mahasiswa", "nim", "22130018")


Jika mahasiswa dengan NIM 22130018 ditemukan di dalam tabel tbl_mahasiswa dalam field nim
maka fungsi cek_code akan mengembalikan nilai TRUE yang berarti nim ini sudah terdaftar pada tabel
tbl_mahasiswa

include "koneksi.php";

Potongan bari script di atas digunakan untuk memanggil file koneksi.php. Alasan pemanggilan file
ini dalam fungsi cek_kode, karena fungsi cek_kode ini membutuhkan koneksi dengan database yaitu
berhubungan dengan pemeriksaan data di dalam tabel dan field tertentu sehingga file ini sangat
dibutuhkan.
1.3.1.2.1 CRUD Jenjang
Ada beberapa 6 file yang harus dibuat untuk menunjang proses CRUD jenjang yang disimpan di
dalam folder 📁 C:\xampp\htdocs\crud_php_pmw_g\modul\jenjang yaitu:
 daftar_data_read.php - Untuk menampilkan daftar data dari tabel (Read/Retrieve)
 form_tambah.php - Form untuk input data baru (Create)
 proses_tambah_create.php - Untuk menambahkan data baru ke dalam tabel (Create)
 form_edit.php - Form untuk edit/ubah data (Update)
 proses_edit_update.php - Untuk merubah isi data yang sudah ada (Update)
 proses_hapus_delete.php - Untuk menghapus data dari tabel (Delete)
Karena kepanjangan dari CRUD adalah Create, Read/Retrieve, Update dan Delete maka keenam
file di atas memiliki peran masing-masing dalam proses CRUD ini. Setiap kelompok file dalam proses
CRUD dibedakan berdasarkan warna teks.
C:\xampp\htdocs
- crud_php_pmw_g
- config
- modul
- jenjang
- prodi
- mahsiswa
- daftar_data_read.php
- form_edit.php
- proses_edit_update.php
- proses_hapus_delete_php
- proses_tambah_create.php
Gambar 10. Struktur folder jenjang file-filenya

1. Source Code
a. File daftar_data_read.php

<!-- SALIN MULAI DARI SINI -->


<!-- daftar_data_read.php -->
<?php
include "../../config/koneksi.php";
session_start();

Powered By GladiatorSoft – Donzi Antonio 12


PANDUAN PEMROGRAMAN PHP 2023
$sessData = !empty($_SESSION['sessData'])?$_SESSION['sessData']:'';
if(!empty($sessData['pesan']['isi_pesan'])){
$nilai_isi_pesan = $sessData['pesan']['isi_pesan'];
$nilai_tipe_pesan = $sessData['pesan']['tipe_pesan'];
unset($_SESSION['sessData']['pesan']);
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Belajar CRUD</title>
</head>
<body>
<header>
<h3>Daftar Data Jenjang</h3>
</header>
<?php
if( !empty($nilai_isi_pesan) && !empty($nilai_tipe_pesan) ){
echo '<b>'.strtoupper($nilai_tipe_pesan) .'!!!<b> '.
$nilai_isi_pesan;
}
?>
<p>
<a href="form_tambah.php">[+] Tambah Data</a>
</p>
<table border="1">
<thead>
<tr>
<th>No</th>
<th>Kode</th>
<th style="width:60%">Nama</th>
<th style="width:100px">Aksi</th>
</tr>
</thead>
<tbody>
<?php
$sql = "SELECT * FROM tbl_jenjang ORDER BY kode_jenjang ASC";
$query = mysqli_query($db, $sql);
$no_urut = 1;
while($baris = mysqli_fetch_array($query)){
?>
<tr>
<td><?=$no_urut?></td>
<td><?=$baris['kode_jenjang']?></td>
<td><?=$baris['nama_jenjang']?></td>
<td>
<a href="form_edit.php?id=<?=$baris['kode_jenjang']?
>">Edit</a> |
<a href="proses_hapus_delete.php?id=<?
=$baris['kode_jenjang']?>"
onclick="return confirm('Apakah anda yakin ingin
menghapus data ini?')">
Hapus
</a>
</td>
</tr>
<?php

Powered By GladiatorSoft – Donzi Antonio 13


PANDUAN PEMROGRAMAN PHP 2023
$no_urut++;
}
?>
</tbody>
</table>
<p>Total Record: <b><?=mysqli_num_rows($query) ?></b></p>
</body>
</html>
<!-- daftar_data_read.php -->
<!-- SALIN SAMPAI DI SINI -->

Ketik atau salin script di atas ke dalam text editor lalu simpan dengan nama daftar_data_read.php
di folder 📁 C:\xampp\htdocs\crud_php_pmw_g\modul\jenjang\daftar_data_read.php

PENJELASAN :

<?php
//panggil file koneksi.php yang tersimpan di dalam folder config
include "../../config/koneksi.php";
//membuka session untuk menyimpan data di memory
session_start();
/*
periksa dan simpan nilai $_SESSION['sessData'] ke dalam
variabel baru bernama $sessData
*/
$sessData = !empty($_SESSION['sessData'])?$_SESSION['sessData']:'';
//periksa apakah nilai variabel $sessData dengan key pesan tidak sedang kosong
if(!empty($sessData['pesan']['isi_pesan'])){
/*
jika tidak kosong maka buat dua variabel baru yaitu
$nilai_isi_pesan untuk menampung isi pesan dan variabel
$nilai_tipe_pesan untuk menampung tipe pesan dari
varibel $sessData di atas
*/
$nilai_isi_pesan = $sessData['pesan']['isi_pesan'];
$nilai_tipe_pesan = $sessData['pesan']['tipe_pesan'];
//hapus session sessData yang memiliki key pesan
unset($_SESSION['sessData']['pesan']);
}

?>

<!-- SCRIPT LAIN DI SINI ----------!>

<?php

/*
jika variabel $nilai_isi_pesan dan variabel $nilai_tipe_pesan
tidak sedang kosong maka
*/
if( !empty($nilai_isi_pesan) && !empty($nilai_tipe_pesan) ){
/*
tampilkan teks yang diambil dari nilai variabel $nilai_tipe_pesan

Powered By GladiatorSoft – Donzi Antonio 14


PANDUAN PEMROGRAMAN PHP 2023
yang dicetak tebal dan dikonversi ke huruf kapital
dan tampilkan juga nilai dari variabel $nilai_isi_pesan
*/
echo '<b>'.strtoupper($nilai_tipe_pesan) .'!!!<b> '.$nilai_isi_pesan;
}

?>

<!-- SCRIPT LAIN DI SINI ----------!>

<?php
//buat variabel bernama $sql untuk menuliskan perintah SQL
$sql = "SELECT * FROM tbl_jenjang ORDER BY kode_jenjang ASC";
//buat variabel $query untuk menampung hasil eksekusi perintah SQL di atas
$query = mysqli_query($db, $sql);
//set nilai awal nomor urut dengan angka 1
$no_urut = 1;
/*
simpan hasil eksekusi $query ke dalam array bernama $baris lalu
lakukan proses looping/perulangan sebanyak jumlah baris data
yang ada di dalam tabel
*/
while($baris = mysqli_fetch_array($query)){
?>
<tr>
//isi nilai dari variabel $no_urut
<td><?=$no_urut?></td>
//isi nilai kode_jenjang yang diambil dari array baris
<td><?=$baris['kode_jenjang']?></td>
//isi nilai kode_jenjang yang diambil dari array baris
<td><?=$baris['nama_jenjang']?></td>
<td>
/*
buat link ke file form_edit.php dan mengirimkan parameter
id dengan nilai dari kode_jenjang untuk setiap baris
dalam setiap kali looping
*/
<a href="form_edit.php?id=<?=$baris['kode_jenjang']?
>">Edit</a> |
<a href="proses_hapus_delete.php?id=<?=$baris['kode_jenjang']?
>"
onclick="return confirm('Apakah anda yakin ingin menghapus
data ini?')">
Hapus
</a>
</td>
</tr>
<?php
//tambahkan nilai no_urut dengan 1 setiap kali putaran atau looping
$no_urut++;
}
?>

Powered By GladiatorSoft – Donzi Antonio 15


PANDUAN PEMROGRAMAN PHP 2023
b. File form_tambah.php

<!-- SALIN MULAI DARI SINI -->


<!-- form_tambah.php -->
<!DOCTYPE html>
<html>
<head>
<title>Belajar CRUD</title>
</head>
<body>
<header>
<h3>Form Tambah Data</h3>
</header>
<form action="proses_tambah_create.php" method="POST">
<p>
<label for="kode_jenjang">Kode Jenjang: </label>
<input type="text" name="kode_jenjang" placeholder="Cth: S-1"
value="" size="8" size="8" maxlength="3" required />
</p>
<p>
<label for="nama_jenjang">Nama Jenjang: </label>
<input type="text" name="nama_jenjang" placeholder="Nama Jenjang"
value="" size="60" required />
</p>
<p>
<input type="submit" value="Simpan Data" name="simpan" />
</p>
</form>
</body>
</html>
<!-- form_tambah.php -->
<!-- SALIN SAMPAI DI SINI -->

Ketik atau salin script di atas ke dalam text editor lalu simpan dengan nama form_tambah.php di
folder 📁 C:\xampp\htdocs\crud_php_pmw_g\modul\jenjang\form_tambah.php

PENJELASAN :
<!-- SCRIPT LAIN DI SINI ----------!>
<!--
jika form ini di-submit dengan menekan tombol Simpan Data maka
akan mengirimkan data-data pada form ini ke file proses_tambah_create.php
dengan metode pengiriman datanya adalah $_POST
-->
<form action="proses_tambah_create.php" method="POST">
<p>
<label for="kode_jenjang">Kode Jenjang: </label>
/* elemen name="kode_jenjang" ini akan ditangkap
oleh proses_tambah_create.php dengan perintah
$_POST['kode_jenjang'];
*/
<input type="text" name="kode_jenjang" placeholder="Cth: S-1" value=""
size="8" size="8" maxlength="3" required />
</p>

Powered By GladiatorSoft – Donzi Antonio 16


PANDUAN PEMROGRAMAN PHP 2023
<p>
<label for="nama_jenjang">Nama Jenjang: </label>
<input type="text" name="nama_jenjang" placeholder="Nama Jenjang"
value="" size="60" required />
</p>
<p>
<!-- tombol Simpan Data bernama simpan-->
<input type="submit" value="Simpan Data" name="simpan" />
</p>
</form>
<!-- SCRIPT LAIN DI SINI ----------!>

c. File proses_tambah_create.php

<!-- SALIN MULAI DARI SINI -->


<!-- proses_tambah_create.php -->
<?php
session_start();
include "../../config/koneksi.php";
include "../../config/fungsi.php";
if(isset($_POST['simpan'])){
$kode_jenjang = $_POST['kode_jenjang'];
$nama_jenjang = $_POST['nama_jenjang'];
$cek=cek_kode('tbl_jenjang', 'kode_jenjang', $kode_jenjang);
if($cek){
$sessData['pesan']['tipe_pesan'] = 'warning';
$sessData['pesan']['isi_pesan'] = 'Maaf, data dengan Kode <b>'.
$kode_jenjang.'</b> sudah ada di dalam tabel';
$_SESSION['sessData'] = $sessData;
header('Location: daftar_data_read.php');
exit();
}
$sql = "INSERT INTO tbl_jenjang (kode_jenjang, nama_jenjang)
VALUES ('$kode_jenjang', '$nama_jenjang')";
$query = mysqli_query($db, $sql);
if( $query ) {
$sessData['pesan']['tipe_pesan'] = 'success';
$sessData['pesan']['isi_pesan'] = 'Proses penambahan data baru
berhasil disimpan.';
} else {
$sessData['pesan']['tipe_pesan'] = 'error';
$sessData['pesan']['isi_pesan'] = 'Proses penambahan data baru gagal
disimpan.';
}
} else {
$sessData['pesan']['tipe_pesan'] = 'error';
$sessData['pesan']['isi_pesan'] = 'Maaf, akses dilarang...';
}
$_SESSION['sessData'] = $sessData;
header('Location: daftar_data_read.php');
?>
<!-- proses_tambah_create.php -->
<!-- SALIN SAMPAI DI SINI -->

Powered By GladiatorSoft – Donzi Antonio 17


PANDUAN PEMROGRAMAN PHP 2023

Ketik atau salin script di atas ke dalam text editor lalu simpan dengan nama
proses_tambah_create.php di folder 📁 C:\xampp\htdocs\crud_php_pmw_g\modul\jenjang\
proses_tambah_create.php

PENJELASAN :
<?php
//membuka session untuk menyimpan data ke memory
session_start();
//panggil file koneksi.php agar terhubung dgn database
include "../../config/koneksi.php";
//panggil file fungsi.php
include "../../config/fungsi.php";
//jika tombol Simpan Data pada form_tambah.php diklik maka
if(isset($_POST['simpan'])){
/*
buat variabel $kode_jenjang, nilainya dikirim dari
form form_tambah.php yaitu elemen yang bernama kode_jenjang
(name="kode_jenjang")
*/
$kode_jenjang = $_POST['kode_jenjang'];
//idem
$nama_jenjang = $_POST['nama_jenjang'];
/*
buat variabel $cek untuk memeriksa kode dengan fungsi cek_kode
yang tersimpan di dlm file fungsi.php
*/
$cek=cek_kode('tbl_jenjang', 'kode_jenjang', $kode_jenjang);
//jika nilai yang dikembalikan dari variabel $cek adalah TRUE (data ada di
tabel) maka
if($cek){
//buat array utk menyimpan pesan
$sessData['pesan']['tipe_pesan'] = 'warning';
$sessData['pesan']['isi_pesan'] = 'Maaf, data dengan Kode <b>'.
$kode_jenjang.'</b> sudah ada di dalam tabel';
//simpan array di atas ke session sessData
$_SESSION['sessData'] = $sessData;
//alihkan halaman ke daftar_data_read.php lalu hentikan proses ke
baris berikut
header('Location: daftar_data_read.php');
exit();
}
/*
buat perintah SQL untuk menyimpan data ke dalam tabel yaitu:
sisipkan ke dalam tbl_jenjang yaitu kode_jenjang, nama_jenjang
dengan nilai diambil dari variabel $kode_jenjang, $nama_jenjang.
variabel $kode_jenjang dan $nama_jenjang
*/
$sql = "INSERT INTO tbl_jenjang (kode_jenjang, nama_jenjang)
VALUES ('$kode_jenjang', '$nama_jenjang')";
//buat variabel $query untuk mengeksekusi perintah SQL di atas
$query = mysqli_query($db, $sql);
if( $query ) {
//jika query berhasil dieksekusi maka buat array dgn pesan ini

Powered By GladiatorSoft – Donzi Antonio 18


PANDUAN PEMROGRAMAN PHP 2023
$sessData['pesan']['tipe_pesan'] = 'success';
$sessData['pesan']['isi_pesan'] = 'Proses penambahan data baru
berhasil disimpan.';
} else {
//jika tidak berhasil maka buat array dgn pesan ini
$sessData['pesan']['tipe_pesan'] = 'error';
$sessData['pesan']['isi_pesan'] = 'Proses penambahan data baru gagal
disimpan.';
}
} else { //jika tombol Simpan Data pada form_tambah.php tidak diklik maka
//buat array dgn pesan ini
$sessData['pesan']['tipe_pesan'] = 'error';
$sessData['pesan']['isi_pesan'] = 'Maaf, akses dilarang...';
}
//simpan variabel $sessData ke dalam $_SESSION
$_SESSION['sessData'] = $sessData;
//beralih ke halaman daftar_data_read.php
header('Location: daftar_data_read.php');
?>

d. File form_edit.php

<!-- SALIN MULAI DARI SINI -->


<!-- form_edit.php -->
<?php
include "../../config/koneksi.php";
if( !isset($_GET['id']) ){
$sessData['pesan']['tipe_pesan'] = 'error';
$sessData['pesan']['isi_pesan'] = 'Maaf, akses dilarang...';
$_SESSION['sessData'] = $sessData;
header('Location: daftar_data_read.php');
exit();
}
$id = $_GET['id'];
$sql = "SELECT * FROM tbl_jenjang WHERE kode_jenjang='$id'";
$query = mysqli_query($db, $sql);
$baris = mysqli_fetch_assoc($query);
if( mysqli_num_rows($query) < 1 ){
die("data tidak ditemukan...");
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Belajar CRUD</title>
</head>
<body>
<header>
<h3>Form Edit Data</h3>

Powered By GladiatorSoft – Donzi Antonio 19


PANDUAN PEMROGRAMAN PHP 2023
</header>
<form action="proses_edit_update.php" method="POST">
<p>
<label for="kode_jenjang">Kode Jenjang: </label>
<input type="text" name="kode_jenjang" placeholder="Kode Jenjang"
value="<?php echo $baris['kode_jenjang'] ?>" size="8" readonly />
</p>
<p>
<label for="nama_jenjang">Nama Jenjang: </label>
<input type="text" name="nama_jenjang" placeholder="Nama Jenjang"
value="<?php echo $baris['nama_jenjang'] ?>" size="60" required />
</p>
<p>
<input type="submit" value="Edit Data" name="edit" />
</p>
</form>
</body>
</html>
<!-- form_edit.php -->
<!-- SALIN SAMPAI DI SINI -->

Ketik atau salin script di atas ke dalam text editor lalu simpan dengan nama form_edit.php di
folder 📁 C:\xampp\htdocs\crud_php_pmw_g\modul\jenjang\form_edit.php

PENJELASAN :
<?php
//panggil file koneksi.php agar terhubung dgn database
include "../../config/koneksi.php";
//memriksa apakah parameter id telah didefinisikan
if( !isset($_GET['id']) ){
//jika belum maka buat array untuk menyimpan pesan
$sessData['pesan']['tipe_pesan'] = 'error';
$sessData['pesan']['isi_pesan'] = 'Maaf, akses dilarang...';
//simpan array di atas ke session sessData
$_SESSION['sessData'] = $sessData;
//alihkan halaman ke daftar_data_read.php lalu hentikan proses ke baris
berikut
header('Location: daftar_data_read.php');
exit();
}
/*
buat variabel $id dan set nilainya diambil dari parameter id
dgn metode $_GET
*/
$id = $_GET['id'];
//buat perintah SQL untuk memilih data dari tabel
/*
pilih semua field dari tbl_jenjang bilamana kode_jenjang
sama dengan nilai dari variabel $id
*/
$sql = "SELECT * FROM tbl_jenjang WHERE kode_jenjang='$id'";
//buat variabel $query untuk mengeksekusi perintah SQL di atas
$query = mysqli_query($db, $sql);

Powered By GladiatorSoft – Donzi Antonio 20


PANDUAN PEMROGRAMAN PHP 2023
/* buat variabel $baris untuk menyimpan hasil $query ke dlm array asosiatif
dimana index-nya merepresentasikan nama kolom yang diseleksi
dan array ini yang akan digunakan untuk mengisi nilai/value
utk setiap elemen yg ada di form
*/
$baris = mysqli_fetch_assoc($query);
//jika jumlah record kurang dari 1 alias tidak ada data maka
if( mysqli_num_rows($query) < 1 ){
//cetak pesan lalu hentikan proses ke baris berikut
die("data tidak ditemukan...");
}
?>
<!-- SCRIPT LAIN DI SINI ----------!>

/*
jika form ini di-submit dengan menekan tombol Edit Data maka
akan mengirimkan data-data pada form ini ke file proses_edit_update.php
dengan metode pengiriman datanya adalah $_POST
*/

<form action="proses_edit_update.php" method="POST">


<p>
<label for="kode_jenjang">Kode Jenjang: </label>
<!-- value="<?php echo $baris['kode_jenjang'] ?>" ini diambil dari
array asosiatif di atas kemudian nilainya diisikan pada elemen ini
-->
<input type="text" name="kode_jenjang" placeholder="Kode Jenjang"
value="<?php echo $baris['kode_jenjang'] ?>" size="8" readonly />
</p>
<p>
<label for="nama_jenjang">Nama Jenjang: </label>
<input type="text" name="nama_jenjang" placeholder="Nama Jenjang"
value="<?php echo $baris['nama_jenjang'] ?>" size="60" required />
</p>
<p>
<!-- tombol Edit Data bernama edit-->
<input type="submit" value="Edit Data" name="edit" />
</p>
</form>

e. File proses_edit_update.php

<!-- SALIN MULAI DARI SINI -->


<!-- proses_edit_update.php -->
<?php
session_start();
include "../../config/koneksi.php";
if(isset($_POST['edit'])){
$kode_jenjang = $_POST['kode_jenjang'];
$nama_jenjang = $_POST['nama_jenjang'];
$sql = "UPDATE tbl_jenjang SET
kode_jenjang='$kode_jenjang',
nama_jenjang='$nama_jenjang'

Powered By GladiatorSoft – Donzi Antonio 21


PANDUAN PEMROGRAMAN PHP 2023
WHERE kode_jenjang='$kode_jenjang'";
$query = mysqli_query($db, $sql);
if( $query ) {
$sessData['pesan']['tipe_pesan'] = 'success';
$sessData['pesan']['isi_pesan'] = 'Proses perubahan data berhasil di-
update.';
} else {
$sessData['pesan']['tipe_pesan'] = 'error';
$sessData['pesan']['isi_pesan'] = 'Proses perubahan data gagal di-
update.';
}
} else {
$sessData['pesan']['tipe_pesan'] = 'error';
$sessData['pesan']['isi_pesan'] = 'Maaf, akses dilarang...';
}
$_SESSION['sessData'] = $sessData;
header('Location: daftar_data_read.php');
?>
<!-- proses_edit_update.php -->
<!-- SALIN SAMPAI DI SINI -->

Ketik atau salin script di atas ke dalam text editor lalu simpan dengan nama
proses_edit_update.php di folder 📁 C:\xampp\htdocs\crud_php_pmw_g\modul\jenjang\
proses_edit_update.php

PENJELASAN :
<?php
//membuka session untuk menyimpan data ke memory
session_start();
//panggil file koneksi.php agar terhubung dgn database
include "../../config/koneksi.php";
//jika tombol Edit Data pada form_edit.php diklik maka
if(isset($_POST['edit'])){
/*
buat variabel $kode_jenjang, nilainya dikirim dari
form form_edit.php yaitu elemen yang bernama kode_jenjang
(name="kode_jenjang")
*/
$kode_jenjang = $_POST['kode_jenjang'];
//idem
$nama_jenjang = $_POST['nama_jenjang'];
/*
buat perintah SQL untuk merubah data yaitu:
rubah data dari tabel tbl_jenjang
isikan field kode_jenjang dengan nilai dr variabel $kode_jenjang
isikan field nama_jenjang dengan nilai dr variabel $nama_jenjang
bilamana nilai pada field kode_jenjang = nilai dr variabel
$kode_jenjang
*/
$sql = "UPDATE tbl_jenjang SET
kode_jenjang='$kode_jenjang',
nama_jenjang='$nama_jenjang'
WHERE kode_jenjang='$kode_jenjang'";

Powered By GladiatorSoft – Donzi Antonio 22


PANDUAN PEMROGRAMAN PHP 2023
//buat variabel $query untuk mengeksekusi perintah SQL di atas
$query = mysqli_query($db, $sql);
if( $query ) {
//jika query berhasil dieksekusi maka buat array dgn pesan ini
$sessData['pesan']['tipe_pesan'] = 'success';
$sessData['pesan']['isi_pesan'] = 'Proses perubahan data berhasil di-
update.';
} else {
//jika tidak berhasil maka buat array dgn pesan ini
$sessData['pesan']['tipe_pesan'] = 'error';
$sessData['pesan']['isi_pesan'] = 'Proses perubahan data gagal di-
update.';
}
} else { //jika tombol Edit Data pada form_edit.php tidak diklik maka
//buat array dgn pesan ini
$sessData['pesan']['tipe_pesan'] = 'error';
$sessData['pesan']['isi_pesan'] = 'Maaf, akses dilarang...';
}
//simpan variabel $sessData ke dalam $_SESSION
$_SESSION['sessData'] = $sessData;
//beralih ke halaman daftar_data_read.php
header('Location: daftar_data_read.php');
?>

f. File proses_hapus_delete.php

<!-- SALIN MULAI DARI SINI -->


<!-- proses_hapus_delete.php -->
<?php
session_start();
include "../../config/koneksi.php";
if( isset($_GET['id']) ){
$id = $_GET['id'];
$sql = "DELETE FROM tbl_jenjang WHERE kode_jenjang='$id'";
$query = mysqli_query($db, $sql);
if( $query ){
//jika query berhasil dieksekusi maka buat array dgn pesan ini
$sessData['pesan']['tipe_pesan'] = 'success';
$sessData['pesan']['isi_pesan'] = 'Data berhasil dihapus.';
} else {
//jika tidak berhasil dieksekusi maka buat array dgn pesan ini
$sessData['pesan']['tipe_pesan'] = 'error';
$sessData['pesan']['isi_pesan'] = 'Data gagal dihapus.';
}
} else {
$sessData['pesan']['tipe_pesan'] = 'error';
$sessData['pesan']['isi_pesan'] = 'Maaf, akses dilarang...';
}
$_SESSION['sessData'] = $sessData;
header('Location: daftar_data_read.php');
?>
<!-- proses_hapus_delete.php -->
<!-- SALIN SAMPAI DI SINI -->

Powered By GladiatorSoft – Donzi Antonio 23


PANDUAN PEMROGRAMAN PHP 2023

Ketik atau salin script di atas ke dalam text editor lalu simpan dengan nama
proses_hapus_delete.php di folder 📁 C:\xampp\htdocs\crud_php_pmw_g\modul\jenjang\
proses_hapus_delete.php

PENJELASAN :
<?php
//membuka session untuk menyimpan data ke memory
session_start();
//panggil file koneksi.php agar terhubung dgn database
include "../../config/koneksi.php";
//memriksa apakah parameter id telah didefinisikan
if( isset($_GET['id']) ){
/*
jika sudah, buat variabel $id dan set nilainya diambil dari
parameter id dgn metode $_GET
*/
$id = $_GET['id'];
//buat perintah SQL untuk menghapus data dari tabel
/*
hapus data dari tbl_jenjang bilamana kode_jenjang
sama dengan nilai dari variabel $id
*/
$sql = "DELETE FROM tbl_jenjang WHERE kode_jenjang='$id'";
//buat variabel $query untuk mengeksekusi perintah SQL di atas
$query = mysqli_query($db, $sql);
if( $query ){
//jika query berhasil dieksekusi maka buat array dgn pesan ini
$sessData['pesan']['tipe_pesan'] = 'success';
$sessData['pesan']['isi_pesan'] = 'Data berhasil dihapus.';
} else {
//jika tidak berhasil dieksekusi maka buat array dgn pesan ini
$sessData['pesan']['tipe_pesan'] = 'error';
$sessData['pesan']['isi_pesan'] = 'Data gagal dihapus.';
}
} else {//jika parameter id belum didefinisikan maka
//buat array dgn pesan ini
$sessData['pesan']['tipe_pesan'] = 'error';
$sessData['pesan']['isi_pesan'] = 'Maaf, akses dilarang...';
}
//simpan variabel $sessData ke dalam $_SESSION
$_SESSION['sessData'] = $sessData;
//beralih ke halaman daftar_data_read.php
header('Location: daftar_data_read.php');
?>

Powered By GladiatorSoft – Donzi Antonio 24


PANDUAN PEMROGRAMAN PHP 2023
2. Hasil
a. Hasil daftar_data_read.php
Untuk melihat hasil program CRUD Jenjang dapat dilakukan dengan mengetikkan perintah
berikut pada address bar browser.
http://localhost/crud_php_pmw_g/modul/jenjang/daftar_data_read.php

Hasilnya adalah:

Gambar 11. Tampilan daftar data jenjang

Powered By GladiatorSoft – Donzi Antonio 25


PANDUAN PEMROGRAMAN PHP 2023

b. Hasil form_tambah.php
Jika link [+] Tambah Data pada gambar 11 di atas diklik maka akan tampil
form_tambah.php dan isikan data yang diminta untuk menambahkan data baru ke dalam
tabel tbl_jenjang

Gambar 12. Tampilan form tambah data baru

Powered By GladiatorSoft – Donzi Antonio 26


PANDUAN PEMROGRAMAN PHP 2023
Jika tombol Simpan Data diklik maka data inputan pada form akan dikirim ke file
proses_tambah_create.php kemudian dialihkan ke file daftar_data_read.php seperti
tampak pada gambar 13 berikut ini

Gambar 13. Tampilan daftar_data_read setelah proses penambahan data baru

c. Hasil form_edit.php
Jika link Edit pada gambar 13 di atas diklik maka akan tampak form_edit.php sebagai
berikut

Powered By GladiatorSoft – Donzi Antonio 27


PANDUAN PEMROGRAMAN PHP 2023
Gambar 14. Tampilan form edit_data.php

Jika nama jenjang pada form di atas diubah maka akan tampak seperti gambar berikut ini

Gambar 15. Tampilan form edit_data.php saat data diedit

Powered By GladiatorSoft – Donzi Antonio 28


PANDUAN PEMROGRAMAN PHP 2023
Dan jika tombol Edit Data diklik maka program akan mengirimkan data file
proses_edit_update.php dan akan dialihkan lagi ke halaman daftar_data_read.php seperti
tampak pada gambar 16 berikut ini

Gambar 16. Tampilan form daftar_data_read untuk menghapus data

Powered By GladiatorSoft – Donzi Antonio 29


PANDUAN PEMROGRAMAN PHP 2023
d. Hasil proses_hapus_delete.php
Jika link Hapus pada gambar 16 di atas diklik maka akan muncul jendela konfirmasi
penghapusan data.

Gambar 17. Tampilan konfirmasi hapus

Jika tombol OK pada konfirmasi diklik maka data akan dikirimkan ke file
proses_hapus_delete.php dan proses akan dialihkan ke dafftar_data_read.php seperti
tampak pada gambar 18 berikut ini.

Powered By GladiatorSoft – Donzi Antonio 30


PANDUAN PEMROGRAMAN PHP 2023

Gambar 18. Tampilan daftar_data_read.php setelah proses hapus

Eksekusi program CRUD Jenjang dengan menuliskan link berikut pada address bar browser
localhost/crud_php_pmw_g/modul/jenjang/daftar_data_read.php

Powered By GladiatorSoft – Donzi Antonio 31

Anda mungkin juga menyukai