menampilkan

. Struktur Database

Misalkan struktur tabel Anda sebagai berikut:

Tabel siswa

idkode_siswanama
112345Budi
267890Siti

Tabel nilai

idkode_siswamapelnilai
112345Matematika85
212345Bahasa Indonesia90
367890Matematika78

2. Membuat Model

Buat dua model untuk berinteraksi dengan database: SiswaModel dan NilaiModel.

Model SiswaModel.php

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
<?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

Buat controller yang mengatur proses pencarian dan menampilkan nilai siswa.

Controller SiswaController.php

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

Form untuk mencari berdasarkan kode_siswa.

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>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

Menampilkan hasil nilai siswa berdasarkan kode siswa.

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)

Buat rute di app/config/Routes.php untuk mengarahkan ke controller.

php
$routes->get('/', 'SiswaController::index'); $routes->post('siswa/tampilkanNilai', 'SiswaController::tampilkanNilai');

6. Penjelasan

  1. Form Cari: Di halaman pertama (form_cari.php), pengguna diminta memasukkan kode_siswa untuk mencari data siswa. Form ini mengirimkan data ke controller menggunakan metode POST.

  2. Controller: SiswaController::tampilkanNilai akan menangani form yang dikirim, mengambil data siswa dan nilai berdasarkan kode_siswa, dan menampilkan hasilnya di halaman berikutnya (hasil_nilai.php).

  3. Model: SiswaModel dan NilaiModel digunakan untuk mengambil data dari tabel siswa dan nilai di database.

7. Testing

  1. Buka aplikasi dan masukkan kode_siswa di form cari.
  2. Jika kode_siswa ditemukan, aplikasi akan menampilkan daftar nilai siswa.
  3. Jika tidak ditemukan, akan muncul pesan kesalahan.

Ini adalah cara dasar untuk menampilkan nilai siswa berdasarkan kode_siswa menggunakan CodeIgniter 4. Pastikan untuk menguji dan menyesuaikan sesuai kebutuhan aplikasi Anda.

You said:
bagaimana sql data basenya
ChatGPT said:
ChatGPT

Berikut adalah SQL untuk membuat struktur database sesuai dengan tabel yang Anda sebutkan, yaitu tabel siswa dan tabel nilai.

1. Tabel siswa

Tabel siswa akan menyimpan informasi tentang siswa, seperti id, kode_siswa, dan nama.

sql
CREATE TABLE siswa ( id INT AUTO_INCREMENT PRIMARY KEY, kode_siswa VARCHAR(20) NOT NULL UNIQUE, nama VARCHAR(100) NOT NULL );

Penjelasan:

  • 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

Tabel nilai akan menyimpan informasi nilai setiap siswa untuk setiap mata pelajaran.

sql
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 );

Penjelasan:

  • 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.
  • Foreign Key: Kolom 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

Berikut adalah contoh data untuk kedua tabel tersebut:

Data untuk Tabel siswa:

sql
INSERT INTO siswa (kode_siswa, nama) VALUES ('12345', 'Budi'), ('67890', 'Siti');

Data untuk Tabel nilai:

sql
INSERT INTO nilai (kode_siswa, mapel, nilai) VALUES ('12345', 'Matematika', 85), ('12345', 'Bahasa Indonesia', 90), ('67890', 'Matematika', 78);

4. Skema Relasi:

  • Setiap siswa memiliki kode_siswa yang unik di tabel siswa.
  • Tabel nilai memiliki kolom kode_siswa yang merujuk ke tabel siswa. Setiap entri di tabel nilai mewakili nilai siswa untuk mata pelajaran tertentu.
  • Relasi antara tabel siswa dan nilai adalah one-to-many, yaitu satu siswa dapat memiliki banyak nilai di tabel nilai.

5. Menjalankan SQL di Database

Untuk menjalankan SQL di database, Anda bisa menggunakan tools seperti:

  • PhpMyAdmin
  • MySQL Workbench
  • Command Line Interface (CLI) MySQL

Anda bisa menjalankan perintah SQL tersebut untuk membuat tabel dan mengisi data dalam database.

6. Penyesuaian

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 kode_siswa dengan mudah.

You said:
ekspor ke html semua catatan diatas,,yg memuat tag pre atau &lt
ChatGPT said:
ChatGPT

Berikut adalah ekspor dari seluruh catatan yang telah dijelaskan sebelumnya dalam format HTML, yang memuat tag <pre> atau entitas HTML &lt; sesuai permintaan Anda.

html
<!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

Artikel Popular

Advertisement