Detail Artikel

Detail Artikel

Berikut adalah struktur tabel yang Anda inginkan:

1. Tabel Hari

Tabel untuk menyimpan daftar nama hari.

sql
CREATE TABLE hari ( id INT AUTO_INCREMENT PRIMARY KEY, nama_hari VARCHAR(50) NOT NULL );

2. Tabel Audio

Tabel untuk menyimpan daftar file audio.

sql
CREATE TABLE audio ( id INT AUTO_INCREMENT PRIMARY KEY, nama_audio VARCHAR(100) NOT NULL, file VARCHAR(255) NOT NULL );

3. Tabel Jam

Tabel untuk menyimpan daftar jam.

sql
CREATE TABLE jam ( id INT AUTO_INCREMENT PRIMARY KEY, nama_jam VARCHAR(50) NOT NULL );

4. Tabel Jadwal

Tabel untuk menyimpan jadwal yang menghubungkan hari, jam, dan audio.

sql
CREATE TABLE jadwal ( id INT AUTO_INCREMENT PRIMARY KEY, hari_jadwal INT NOT NULL, jam_jadwal INT NOT NULL, audio_jadwal INT NOT NULL, FOREIGN KEY (hari_jadwal) REFERENCES hari(id) ON DELETE CASCADE, FOREIGN KEY (jam_jadwal) REFERENCES jam(id) ON DELETE CASCADE, FOREIGN KEY (audio_jadwal) REFERENCES audio(id) ON DELETE CASCADE );

Penjelasan Struktur

  1. Tabel hari: Menyimpan nama hari, seperti "Senin", "Selasa", dll.
  2. Tabel audio: Menyimpan informasi tentang file audio, termasuk nama dan path file.
  3. Tabel jam: Menyimpan nama jam, misalnya "07:00", "08:00", dll.
  4. Tabel jadwal: Menghubungkan tabel hari, jam, dan audio untuk menyusun jadwal bell sekolah.

Jika Anda membutuhkan skrip insert data awal (seeders) untuk tabel hari dan jam, saya bisa bantu buatkan. Apakah Anda ingin melanjutkan ke pengisian data awal atau implementasi model dan controller?

Berikut adalah model untuk masing-masing tabel sesuai dengan struktur yang telah dibuat.


1. Model Hari

File: app/Models/HariModel.php

php
<?php namespace App\Models; use CodeIgniter\Model; class HariModel extends Model { protected $table = 'hari'; protected $primaryKey = 'id'; protected $allowedFields = ['nama_hari']; protected $useTimestamps = false; // Tidak menggunakan created_at dan updated_at }

2. Model Audio

File: app/Models/AudioModel.php

php
<?php namespace App\Models; use CodeIgniter\Model; class AudioModel extends Model { protected $table = 'audio'; protected $primaryKey = 'id'; protected $allowedFields = ['nama_audio', 'file']; protected $useTimestamps = false; // Tidak menggunakan created_at dan updated_at }

3. Model Jam

File: app/Models/JamModel.php

php
<?php namespace App\Models; use CodeIgniter\Model; class JamModel extends Model { protected $table = 'jam'; protected $primaryKey = 'id'; protected $allowedFields = ['nama_jam']; protected $useTimestamps = false; // Tidak menggunakan created_at dan updated_at }

4. Model Jadwal

File: app/Models/JadwalModel.php

php
<?php namespace App\Models; use CodeIgniter\Model; class JadwalModel extends Model { protected $table = 'jadwal'; protected $primaryKey = 'id'; protected $allowedFields = ['hari_jadwal', 'jam_jadwal', 'audio_jadwal']; protected $useTimestamps = false; // Tidak menggunakan created_at dan updated_at /** * Mendapatkan jadwal lengkap dengan relasi ke tabel hari, jam, dan audio. */ public function getJadwalLengkap() { return $this->select('jadwal.*, hari.nama_hari, jam.nama_jam, audio.nama_audio, audio.file') ->join('hari', 'hari.id = jadwal.hari_jadwal') ->join('jam', 'jam.id = jadwal.jam_jadwal') ->join('audio', 'audio.id = jadwal.audio_jadwal') ->findAll(); } }

bell