Search This Blog

Home » » Koneksi Database Laravel dan MySQl

Koneksi Database Laravel dan MySQl

 Studi Kasus:


Ilustrasi Relasi

  • Satu Mahasiswa dapat mengambil banyak Mata Kuliah melalui tabel KRS.
  • Satu Mata Kuliah dapat diambil oleh banyak Mahasiswa melalui tabel KRS.

-- ==========================================

-- 1. PEMBUATAN DATABASE

-- ==========================================

CREATE DATABASE IF NOT EXISTS db_akademik;

USE db_akademik;

 

-- ==========================================

-- 2. PEMBUATAN TABEL INDUK (PARENT TABLES)

-- ==========================================

 

-- Tabel Mahasiswa

CREATE TABLE mahasiswa (

    id_mahasiswa INT AUTO_INCREMENT PRIMARY KEY,

    nim VARCHAR(15) UNIQUE NOT NULL,

    nama_mahasiswa VARCHAR(100) NOT NULL

);

 

-- Tabel Mata Kuliah

CREATE TABLE mata_kuliah (

    id_matkul INT AUTO_INCREMENT PRIMARY KEY,

    kode_matkul VARCHAR(10) UNIQUE NOT NULL,

    nama_matkul VARCHAR(100) NOT NULL

);

 

-- ==========================================

-- 3. PEMBUATAN TABEL PERANTARA (JUNCTION TABLE)

-- ==========================================

 

-- Tabel KRS (Kartu Rencana Studi) dengan Foreign Key

CREATE TABLE krs (

    id_krs INT AUTO_INCREMENT PRIMARY KEY,

    id_mahasiswa INT NOT NULL,

    id_matkul INT NOT NULL,

   

    -- Menghubungkan Foreign Key ke tabel mahasiswa dan mata_kuliah

    CONSTRAINT fk_mahasiswa FOREIGN KEY (id_mahasiswa)

        REFERENCES mahasiswa(id_mahasiswa)

        ON DELETE CASCADE ON UPDATE CASCADE,

    CONSTRAINT fk_matkul FOREIGN KEY (id_matkul)

        REFERENCES mata_kuliah(id_matkul)

        ON DELETE CASCADE ON UPDATE CASCADE

);

 

-- ==========================================

-- 4. CONTOH PENGISIAN DATA (DML)

-- ==========================================

 

-- Masukkan data mahasiswa

INSERT INTO mahasiswa (nim, nama_mahasiswa) VALUES

('230101', 'Budi Santoso'),

('230102', 'Siti Rahma'),

('230103', 'Ahmad Fauzi');

 

-- Masukkan data mata kuliah

INSERT INTO mata_kuliah (kode_matkul, nama_matkul) VALUES

('IF101', 'Pemrograman Web'),

('IF102', 'Basis Data'),

('IF103', 'Algoritma Pemrograman');

 

-- Masukkan data KRS (Relasi Many-to-Many)

INSERT INTO krs (id_mahasiswa, id_matkul) VALUES

(1, 1), -- Budi mengambil Pemrograman Web

(1, 2), -- Budi mengambil Basis Data

(2, 1), -- Siti mengambil Pemrograman Web

(2, 3), -- Siti mengambil Algoritma Pemrograman

(3, 2); -- Ahmad mengambil Basis Data

 

-- ==========================================

-- 5. CONTOH QUERY MENAMPILKAN DATA (JOIN)

-- ==========================================

 

SELECT

    m.nim,

    m.nama_mahasiswa,

    mk.kode_matkul,

    mk.nama_matkul

FROM krs k

JOIN mahasiswa m ON k.id_mahasiswa = m.id_mahasiswa

JOIN mata_kuliah mk ON k.id_matkul = mk.id_matkul;

Langkah 1: Konfigurasi Koneksi Database (.env)

Buka file .env di root project Laravel Anda, lalu sesuaikan bagian konfigurasi database agar terhubung ke database db_akademik:

DB_CONNECTION=mysql

DB_HOST=127.0.0.1

DB_PORT=3306

DB_DATABASE=db_akademik

DB_USERNAME=root

DB_PASSWORD=

Langkah 2: Membuat Model dan Migration

Gunakan Artisan CLI untuk membuat Model Mahasiswa sekaligus file migration-nya:

php artisan make:model Mahasiswa -m

Langkah 3: Membuat Controller (Resource Controller)

Buat Controller dengan opsi --resource agar otomatis menghasilkan fungsi CRUD (index, create, store, show, edit, update, destroy):

php artisan make:controller MahasiswaController –resource

Langkah 4: Menambahkan Route

Buka file routes/web.php, lalu daftarkan resource route untuk controller tersebut

Langkah 5: Membuat Tampilan (Views Blade)

Buat folder baru bernama mahasiswa di dalam direktori resources/views/. Di dalam folder tersebut, buat tiga file utama:

  1. resources/views/mahasiswa/index.php (Menampilkan tabel data & tombol hapus)
  2. resources/views/mahasiswa/create.php (Form input data baru)
  3. resources/views/mahasiswa/edit.blade.php (Form ubah data)
Selengkapnya:
Link
Jika Anda menyukai Artikel di blog ini, Silahkan klik disini untuk berlangganan gratis via email, dengan begitu Anda akan mendapat kiriman artikel setiap ada artikel yang terbit di Creating Website
Comments
0 Comments

0 komentar:

 
Support : Creating Website | Johny Template | Mas Template
Copyright © 2012. Bahan Ajar - All Rights Reserved
Template Modify by Agung Baitul H (0898-1983-200)
Proudly powered by Blogger E-Mail agung.abl@bsi.ac.id