Misalkan struktur tabel Anda sebagai berikut: Buat dua model untuk berinteraksi dengan database: Buat controller yang mengatur proses pencarian dan menampilkan nilai siswa. Form untuk mencari berdasarkan Menampilkan hasil nilai siswa berdasarkan kode siswa. Buat rute di Form Cari: Di halaman pertama ( Controller: Model: Ini adalah cara dasar untuk menampilkan nilai siswa berdasarkan Berikut adalah SQL untuk membuat struktur database sesuai dengan tabel yang Anda sebutkan, yaitu tabel Tabel Penjelasan: Tabel Penjelasan: Berikut adalah contoh data untuk kedua tabel tersebut: Untuk menjalankan SQL di database, Anda bisa menggunakan tools seperti: Anda bisa menjalankan perintah SQL tersebut untuk membuat tabel dan mengisi data dalam database. Jika Anda ingin menambahkan fitur lain seperti validasi untuk nilai (misalnya, memastikan nilai berada dalam rentang 0-100), Anda dapat menambahkan aturan lebih lanjut dalam aplikasi atau menggunakan trigger di database. Dengan skema ini, Anda dapat melakukan query untuk mendapatkan nilai siswa berdasarkan Berikut adalah ekspor dari seluruh catatan yang telah dijelaskan sebelumnya dalam format HTML, yang memuat tag . Struktur Database
Tabel
siswa
id kode_siswa nama 1 12345 Budi 2 67890 Siti Tabel
nilai
id kode_siswa mapel nilai 1 12345 Matematika 85 2 12345 Bahasa Indonesia 90 3 67890 Matematika 78 2. Membuat Model
SiswaModel
dan NilaiModel
.Model
SiswaModel.php
<?php
namespace App\Models;
use CodeIgniter\Model;
class SiswaModel extends Model
{
protected $table = 'siswa';
protected $primaryKey = 'id';
protected $allowedFields = ['kode_siswa', 'nama'];
// Fungsi untuk mencari siswa berdasarkan kode_siswa
public function getSiswaByKode($kode_siswa)
{
return $this->where('kode_siswa', $kode_siswa)->first();
}
}
Model
NilaiModel.php
<?php
namespace App\Models;
use CodeIgniter\Model;
class NilaiModel extends Model
{
protected $table = 'nilai';
protected $primaryKey = 'id';
protected $allowedFields = ['kode_siswa', 'mapel', 'nilai'];
// Fungsi untuk mendapatkan nilai siswa berdasarkan kode_siswa
public function getNilaiByKode($kode_siswa)
{
return $this->where('kode_siswa', $kode_siswa)->findAll();
}
}
3. Membuat Controller
Controller
SiswaController.php
<?php
namespace App\Controllers;
use App\Models\SiswaModel;
use App\Models\NilaiModel;
class SiswaController extends BaseController
{
public function index()
{
return view('siswa/form_cari');
}
public function tampilkanNilai()
{
// Ambil input kode_siswa dari form
$kode_siswa = $this->request->getPost('kode_siswa');
$siswaModel = new SiswaModel();
$nilaiModel = new NilaiModel();
// Cek apakah siswa ada di database
$siswa = $siswaModel->getSiswaByKode($kode_siswa);
if (!$siswa) {
return redirect()->to('/')->with('error', 'Siswa tidak ditemukan.');
}
// Ambil nilai berdasarkan kode_siswa
$nilai = $nilaiModel->getNilaiByKode($kode_siswa);
// Kirim data ke view
return view('siswa/hasil_nilai', ['siswa' => $siswa, 'nilai' => $nilai]);
}
}
4. Membuat View
View
form_cari.php
kode_siswa
.<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Cari Nilai Siswa</title>
</head>
<body>
<h1>Cari Nilai Siswa</h1>
<form action="<?= site_url('siswa/tampilkanNilai') ?>" method="post">
<label for="kode_siswa">Kode Siswa:</label>
<input type="text" name="kode_siswa" id="kode_siswa" required>
<button type="submit">Cari</button>
</form>
<?php if (session()->getFlashdata('error')): ?>
<div style="color: red;"><?= session()->getFlashdata('error'); ?></div>
<?php endif; ?>
</body>
</html>
View
hasil_nilai.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Nilai Siswa</title>
</head>
<body>
<h1>Nilai Siswa: <?= esc($siswa['nama']); ?> (Kode: <?= esc($siswa['kode_siswa']); ?>)</h1>
<h2>Daftar Nilai</h2>
<table border="1">
<thead>
<tr>
<th>Mapel</th>
<th>Nilai</th>
</tr>
</thead>
<tbody>
<?php foreach ($nilai as $n): ?>
<tr>
<td><?= esc($n['mapel']); ?></td>
<td><?= esc($n['nilai']); ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<br>
<a href="<?= site_url('/') ?>">Kembali</a>
</body>
</html>
5. Rute (Routing)
app/config/Routes.php
untuk mengarahkan ke controller.$routes->get('/', 'SiswaController::index');
$routes->post('siswa/tampilkanNilai', 'SiswaController::tampilkanNilai');
6. Penjelasan
form_cari.php
), pengguna diminta memasukkan kode_siswa
untuk mencari data siswa. Form ini mengirimkan data ke controller menggunakan metode POST
.SiswaController::tampilkanNilai
akan menangani form yang dikirim, mengambil data siswa dan nilai berdasarkan kode_siswa
, dan menampilkan hasilnya di halaman berikutnya (hasil_nilai.php
).SiswaModel
dan NilaiModel
digunakan untuk mengambil data dari tabel siswa
dan nilai
di database.7. Testing
kode_siswa
di form cari.kode_siswa
ditemukan, aplikasi akan menampilkan daftar nilai siswa.kode_siswa
menggunakan CodeIgniter 4. Pastikan untuk menguji dan menyesuaikan sesuai kebutuhan aplikasi Anda.You said:
ChatGPT said:
siswa
dan tabel nilai
.1. Tabel
siswa
siswa
akan menyimpan informasi tentang siswa, seperti id
, kode_siswa
, dan nama
.CREATE TABLE siswa (
id INT AUTO_INCREMENT PRIMARY KEY,
kode_siswa VARCHAR(20) NOT NULL UNIQUE,
nama VARCHAR(100) NOT NULL
);
id
: Sebagai primary key yang auto increment.kode_siswa
: Kolom untuk menyimpan kode unik untuk setiap siswa.nama
: Kolom untuk menyimpan nama siswa.kode_siswa
diatur agar memiliki nilai unik.2. Tabel
nilai
nilai
akan menyimpan informasi nilai setiap siswa untuk setiap mata pelajaran.CREATE TABLE nilai (
id INT AUTO_INCREMENT PRIMARY KEY,
kode_siswa VARCHAR(20) NOT NULL,
mapel VARCHAR(100) NOT NULL,
nilai INT NOT NULL,
FOREIGN KEY (kode_siswa) REFERENCES siswa(kode_siswa) ON DELETE CASCADE
);
id
: Sebagai primary key yang auto increment.kode_siswa
: Kolom yang merujuk ke kode_siswa
di tabel siswa
. Ini adalah foreign key yang menghubungkan tabel nilai
dengan tabel siswa
.mapel
: Kolom untuk menyimpan nama mata pelajaran.nilai
: Kolom untuk menyimpan nilai yang diperoleh siswa dalam mata pelajaran tertentu.kode_siswa
mengacu pada kolom kode_siswa
di tabel siswa
. Jika data siswa dihapus, maka data nilai yang terkait dengan siswa tersebut juga akan dihapus (ON DELETE CASCADE
).3. Contoh Data
Data untuk Tabel
siswa
:INSERT INTO siswa (kode_siswa, nama) VALUES
('12345', 'Budi'),
('67890', 'Siti');
Data untuk Tabel
nilai
:INSERT INTO nilai (kode_siswa, mapel, nilai) VALUES
('12345', 'Matematika', 85),
('12345', 'Bahasa Indonesia', 90),
('67890', 'Matematika', 78);
4. Skema Relasi:
kode_siswa
yang unik di tabel siswa
.nilai
memiliki kolom kode_siswa
yang merujuk ke tabel siswa
. Setiap entri di tabel nilai
mewakili nilai siswa untuk mata pelajaran tertentu.siswa
dan nilai
adalah one-to-many, yaitu satu siswa dapat memiliki banyak nilai di tabel nilai
.5. Menjalankan SQL di Database
6. Penyesuaian
kode_siswa
dengan mudah.You said:
ChatGPT said:
<pre>
atau entitas HTML <
sesuai permintaan Anda.<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Catatan SQL dan CodeIgniter 4</title>
</head>
<body>
<h1>Catatan SQL dan
You said:
ChatGPT said:
You said:
ChatGPT said:
Komentar
Tuliskan Komentar Anda!