Merancang Basis Data


Setelah memahami hierarki dan komponen basis data mari kita mencoba menganalisa rancangan struktur basis data dari aplikasi Sistem Informasi Nilai Raport. 

Tabel-tabel yang diperlukan dalam membuat aplikasi raport sederhana diantaranya:

Nama tabel Keterangan dan field
Tabel siswa Menyimpan data siswa seperti: id_siswa, nis, nama, jenis_kelamin, tanggal_lahir, alamat, dan id_kelas
Tabel kelas Menyimpan data kelas berupa id_kelas, nama_kelas, dan wali_kelas
Tabel guru Menyimpan data guru: id_guru, nama_guru, nomor_hp
Tabel mata pelajaran Menyimpan data mapel: id_mapel, nama_mapel, id_guru_pengampu
Tabel nilai Menyimpan nilai siswa untuk setiap mapel. id_nilai, id_siswa, id_mapel, semester, tahun_ajaran, nilai_harian, nilai_UTS, nilai_UAS, nilai akhir
Tabel user Untuk login dan mengatur otoritas pengguna. Berisi data: id_user, username, password, level, id_guru, id_siswa


Jika kita perhatikan, ada beberapa field yang sama dari tabel-tabel yang berbeda. Field tersebut berfungsi sebagai penghubung (relasi) dari satu tabel ke tabel yang lain. Field utama diatur sebagai PK (Primary Key) dan field yang akan terhubung diatur sebagai FK (Foreign Key). 

Perhatikan bagan relasi antar tabel berikut ini:

tb_siswa.id_siswa terhubung dengan tb_nilai.id_siswa dan tb_user.id_siswa;

tb_mapel.id_mapel terhubung dengan tb_nilai.id_mapel;

tb_kelas.id_kelas terhubung dengan tb_siswa.id_kelas;

tb_guru.id_guru terhubung dengan tb_mapel.id_guru_pengampu dan tb_user.id_guru;

Field-field yang berhubungan harus memiliki tipe data dan panjang data yang sama pada masing-masing tabel yang memilikinya. Misalnya, jika id_siswa pada tb_siswa memiliki tipe data INT (25) [baca: integer 25 karakter], maka tipe data id_siswa pada tabel tb_kelas dan tb_nilai harus INT (25) juga. Begitu seterusnya.


Pada pembahasan hierarki basis data, kita ingat diantara tipe data yang umum digunakan adalah INT, STRING (CHAR, VARCHAR, TEXT), DATETIME, dan BOOLEAN. Tipe data INT, CHAR, dan VARCHAR sebaiknya ditambahkan panjang data yang diijinkan.


Pembuatan tabel-tabel diatas jika ditulis dalam query MySQL maka sebagai berikut:

  1. Tabel siswa (tb_siswa)
  2. CREATE TABLE tb_siswa (
    id_siswa INT(11),
    nis INT(12),
    nama VARCHAR(250),
    jenis_kelamin VARCHAR (25),
    tanggal_lahir DATETIME,
    alamat TEXT,
    kelas VARCHAR(25),
    PRIMARY KEY (id_siswa) );

  3. Tabel kelas (tb_kelas)
  4. CREATE TABLE tb_kelas (
    id_kelas INT (11),
    nama_kelas VARCHAR (25),
    wali_kelas VARCHAR (50),
    PRIMARY KEY (id_kelas) );

  5. Tabel guru (tb_guru)
  6. CREATE TABLE tb_guru (
    id_guru INT (11),
    nama VARCHAR (250),
    nomor_hp VARCHAR (25),
    PRIMARY KEY (id_guru) );

  7. Tabel mata pelajaran (tb_mapel)
  8. CREATE TABLE tb_mapel (
    id_mapel INT (11),
    nama_mapel VARCHAR (250),
    id_guru_pengampu INT (11),
    PRIMARY KEY (id_mapel));

  9. Tabel nilai (tb_nilai)
  10. CREATE TABLE tb_nilai (
    id_nilai INT (11),
    id_siswa INT (11),
    id_mapel INT (11),
    semester VARCHAR (25),
    tahun_ajaran VARCHAR (11),
    nilai_harian INT (2),
    nilai_UTS INT (2),
    nilai_UAS INT (2),
    nilai_akhir INT (2),
    PRIMARY KEY (id_nilai) );

  11. Tabel user (tb_user)
  12. CREATE TABLE tb_user (
    id_user INT(11),
    username VARCHAR (250),
    password VARCHAR (250),
    level VARCHAR (50),
    id_guru INT (11),
    id_siswa INT (11),
    PRIMARY KEY (id_user) );

Query SQL diatas bisa kamu coba lewat phpmyadmin yang sudah bundle pada XAMPP.

Pada Tugas 2 nanti kamu diminta merancang database sederhana sebuah aplikasi. 


Previous: Koneksi Database

Next: Tugas 2 - Merancang Basis Data

Comments

Post a Comment

Popular posts from this blog

Bahasa Basis Data

Tugas 1 - Praktikum CRUD