Skip to content

Aktivitas Praktikum

Pada bagian ini, mahasiswa akan mempraktikkan secara langsung seluruh inti percobaan yang terdapat dalam modul pertemuan 2. Aktivitas disusun secara bertahap, mulai dari membuat tabel sederhana, menentukan tipe data dan constraint, membuat relasi antar tabel, memodifikasi struktur tabel, hingga memasukkan, mengubah, menyalin, mengganti, dan menghapus data. Kerjakan setiap aktivitas secara berurutan agar hubungan antara struktur tabel dan manipulasi data dapat dipahami dengan baik.

Sebelum mulai praktik, pastikan Anda sudah masuk ke MySQL melalui terminal dan siap bekerja pada database latihan.

Aktivitas 1 — Membuat Database dan Tabel Dasar

Percobaan 1.1 — Membuat database latihan

CREATE DATABASE PRAK2;
USE PRAK2;

Gunakan perintah ini untuk membuat database kerja dan langsung mengaktifkannya sebagai database aktif.

Percobaan 1.2 — Membuat tabel dasar

CREATE TABLE TABLE1(
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(30) NOT NULL,
    salary FLOAT(10,2) DEFAULT 1000000
);

Tabel ini digunakan untuk mengenalkan struktur dasar tabel, penggunaan AUTO_INCREMENT, PRIMARY KEY, NOT NULL, dan DEFAULT dalam satu definisi.

Percobaan 1.3 — Memeriksa struktur tabel

DESCRIBE TABLE1;

Perintah ini digunakan untuk melihat struktur tabel yang telah dibuat.

Aktivitas 2 — Mengenal Tipe Data dan Primary Key

Percobaan 2.1 — Membuat tabel dengan primary key langsung pada kolom

CREATE TABLE TABLE2(
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(30)
);

Pada percobaan ini, kolom id langsung didefinisikan sebagai PRIMARY KEY dan AUTO_INCREMENT.

Percobaan 2.2 — Memeriksa struktur TABLE2

DESCRIBE TABLE2;

Gunakan perintah ini untuk memastikan bahwa id telah menjadi primary key.

Percobaan 2.3 — Membuat tabel dengan primary key terpisah

CREATE TABLE TABLE3(
    id INT AUTO_INCREMENT,
    name VARCHAR(30),
    PRIMARY KEY (id)
);

Percobaan ini memperlihatkan bentuk lain penulisan primary key, yaitu mendefinisikannya setelah daftar kolom.

Percobaan 2.4 — Memeriksa struktur TABLE3

DESCRIBE TABLE3;

Bandingkan hasilnya dengan TABLE2 untuk melihat bahwa kedua cara tersebut sama-sama valid.

Aktivitas 3 — Memberikan Constraint UNIQUE dan IF NOT EXISTS

Percobaan 3.1 — Membuat tabel dengan UNIQUE

CREATE TABLE cars(
    id INT PRIMARY KEY AUTO_INCREMENT,
    plate VARCHAR(10),
    brand VARCHAR(10),
    UNIQUE (plate)
);

Constraint UNIQUE digunakan untuk memastikan bahwa nilai pada kolom plate tidak boleh sama.

Percobaan 3.2 — Memeriksa struktur tabel cars

DESC cars;

Perintah ini digunakan untuk memastikan bahwa kolom plate telah memiliki constraint UNIQUE.

Percobaan 3.3 — Memasukkan data pertama ke tabel cars

INSERT INTO cars VALUES (1, 'AB-1234-CD', 'Toyota');

Percobaan 3.4 — Mencoba memasukkan data duplikat pada kolom UNIQUE

INSERT INTO cars VALUES (2, 'AB-1234-CD', 'Suzuki');

Percobaan ini digunakan untuk melihat bagaimana MySQL menolak data dengan nilai plate yang sama.

Percobaan 3.5 — Menggunakan IF NOT EXISTS

CREATE TABLE IF NOT EXISTS TABLE1(
    id INT AUTO_INCREMENT,
    name VARCHAR(30) NOT NULL,
    salary FLOAT(10,2) DEFAULT 1000000
);

Gunakan perintah ini untuk mencoba membuat ulang tabel yang sudah ada tanpa memunculkan error pembuatan ganda.

Percobaan 3.6 — Membuat tabel baru dengan IF NOT EXISTS

CREATE TABLE IF NOT EXISTS TABLE4(
    id INT AUTO_INCREMENT,
    name VARCHAR(30) NOT NULL,
    salary FLOAT(10,2) DEFAULT 1000000
);

Percobaan 3.7 — Menampilkan seluruh tabel

SHOW TABLES;

Periksa apakah TABLE4 berhasil dibuat dan TABLE1 tidak dibuat ulang.

Aktivitas 4 — Membuat Tabel dari Hasil Query

Percobaan 4.1 — Membuat tabel sumber employee

CREATE TABLE employee(
    id INT AUTO_INCREMENT PRIMARY KEY,
    first_name VARCHAR(15),
    last_name VARCHAR(15),
    start_date DATE,
    end_date DATE,
    salary FLOAT(8,2),
    city VARCHAR(10),
    description VARCHAR(15)
);

Tabel ini akan menjadi sumber data untuk beberapa percobaan berikutnya.

Percobaan 4.2 — Memeriksa struktur tabel employee

DESCRIBE employee;

Percobaan 4.3 — Menyiapkan file employee.txt

Simpan data berikut ke dalam file employee.txt dengan pemisah tab:

employee.txt
1	Jason	Martin	1996-07-25	2006-07-25	1234.56	Toronto	Programmer
2	Alison	Mathews	1976-03-21	1986-02-21	6661.78	Vancouver	Tester
3	James	Smith	1978-12-12	1990-03-15	6544.78	Vancouver	Tester
4	Celia	Rice	1982-10-24	1999-04-21	2344.78	Vancouver	Manager
5	Robert	Black	1984-01-15	1998-08-08	2334.78	Vancouver	Tester
6	Linda	Green	1987-07-30	1996-01-04	4322.78	New York	Tester
7	David	Larry	1990-12-31	1998-02-12	7897.78	New York	Manager
8	James	Cat	1996-09-17	2002-04-15	1232.78	Vancouver	Tester

Percobaan 4.4 — Mengimpor data dari file ke tabel employee

Perintah ini digunakan untuk mengisi tabel employee dari file teks, jika dibuat menggunakan sistem operasi Linux atau macOS.

LOAD DATA INFILE '/app/mysql/employee.txt'
INTO TABLE employee
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n';

Jika menggunakan sistem operasi windows, gunakan perintah berikut.

LOAD DATA INFILE '/app/mysql/employee.txt'
INTO TABLE employee
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\r\n';

Jadi:

FIELDS TERMINATED BY '\t' → pemisah antar kolom adalah tab
LINES TERMINATED BY '\n' atau '\r\n' → pemisah antar baris data

Percobaan 4.5 — Menyalin data ke tabel baru dengan SELECT

CREATE TABLE employee_copy AS
SELECT *
FROM employee
WHERE start_date BETWEEN '1970-01-01' AND '1990-12-31';

Percobaan ini digunakan untuk membuat tabel baru langsung dari hasil query pada tabel employee.

Percobaan 4.6 — Menampilkan daftar tabel

SHOW TABLES;

Percobaan 4.7 — Menampilkan isi tabel employee_copy

SELECT * FROM employee_copy;

Aktivitas 5 — Membuat Temporary Table

Percobaan 5.1 — Membuat temporary table

CREATE TEMPORARY TABLE TEMPTBL(
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(30)
);

Temporary table hanya terlihat pada sesi koneksi yang sedang aktif.

Percobaan 5.2 — Mencoba membaca isi temporary table

SELECT * FROM TEMPTBL;

Percobaan 5.3 — Keluar dari MySQL

\q

Percobaan 5.4 — Masuk kembali ke MySQL dan aktifkan database

mysql -h localhost -u root -p
USE PRAK2;

Percobaan 5.5 — Mencoba mengakses temporary table setelah koneksi baru

SELECT * FROM TEMPTBL;

Percobaan ini digunakan untuk membuktikan bahwa temporary table tidak lagi tersedia setelah koneksi sebelumnya ditutup.

Aktivitas 6 — Membuat Tabel dengan Foreign Key

Percobaan 6.1 — Membuat tabel models

CREATE TABLE models (
    modelid SMALLINT NOT NULL AUTO_INCREMENT,
    name VARCHAR(40) NOT NULL,
    PRIMARY KEY (modelid)
) ENGINE=InnoDB;

Percobaan 6.2 — Memeriksa struktur tabel models

DESC models;

Percobaan 6.3 — Membuat tabel orders dengan foreign key

CREATE TABLE orders (
    id SMALLINT NOT NULL PRIMARY KEY,
    modelid SMALLINT NOT NULL,
    description VARCHAR(40),
    FOREIGN KEY (modelid) REFERENCES models (modelid)
    ON UPDATE CASCADE
    ON DELETE CASCADE
) ENGINE=InnoDB;

Tabel orders memiliki foreign key modelid yang mereferensi primary key pada tabel models.

Percobaan 6.4 — Memeriksa struktur tabel orders

DESC orders;

Percobaan 6.5 — Menambahkan data ke tabel models

INSERT INTO models VALUES (1, 'testsatu');

Percobaan 6.6 — Menambahkan data ke tabel orders

INSERT INTO orders VALUES (1, 1, 'deskripsisatu');

Percobaan 6.7 — Menghapus data parent untuk menguji ON DELETE CASCADE

DELETE FROM models WHERE modelid = 1;

Percobaan 6.8 — Memeriksa isi tabel orders

SELECT * FROM orders;

Percobaan ini digunakan untuk melihat bahwa data pada tabel child ikut terhapus ketika data parent dihapus.

Aktivitas 7 — Memodifikasi Struktur Tabel dengan ALTER TABLE

Percobaan 7.1 — Membuat tabel TABLE5

CREATE TABLE TABLE5(
    id INT
);

Percobaan 7.2 — Menambahkan kolom baru

ALTER TABLE TABLE5
ADD name VARCHAR(5);

Percobaan 7.3 — Menambahkan kolom setelah kolom tertentu

ALTER TABLE TABLE5
ADD first_name VARCHAR(30) AFTER id;

Percobaan 7.4 — Mengganti nama kolom dan definisinya

ALTER TABLE TABLE5
CHANGE name last_name VARCHAR(30);

Percobaan 7.5 — Memodifikasi definisi kolom

ALTER TABLE TABLE5
MODIFY first_name VARCHAR(15),
MODIFY last_name VARCHAR(15);

Percobaan 7.6 — Menambahkan primary key

ALTER TABLE TABLE5 ADD PRIMARY KEY (id);

Percobaan 7.7 — Menghapus kolom

ALTER TABLE TABLE5 DROP first_name;

Percobaan 7.8 — Memeriksa struktur tabel TABLE5

DESC TABLE5;

Aktivitas 8 — Mengganti Nama Tabel, Mengosongkan Isi, dan Menghapus Tabel

Percobaan 8.1 — Mengganti nama tabel

ALTER TABLE employee_copy RENAME senior_employee;

Percobaan 8.2 — Menampilkan daftar tabel

SHOW TABLES;

Percobaan 8.3 — Membuat ulang employee_copy dari employee

CREATE TABLE employee_copy AS
SELECT * FROM employee;

Percobaan 8.4 — Menghapus seluruh data pada tabel

TRUNCATE TABLE employee_copy;

Percobaan 8.5 — Menghapus tabel

DROP TABLE employee_copy;

Aktivitas 9 — Memasukkan Data dengan INSERT

Percobaan 9.1 — INSERT dengan seluruh kolom

INSERT INTO employee VALUES (
    9,
    'James',
    'Bond',
    '1982-04-21',
    '2002-09-23',
    1234.56,
    'London',
    'Spy'
);

Pada percobaan ini, jumlah nilai harus sama dengan jumlah kolom pada tabel.

Percobaan 9.2 — INSERT dengan menyebutkan kolom tertentu

INSERT INTO employee
(first_name, last_name, start_date, end_date, salary, city, description)
VALUES
('Hercule', 'Poirot', '1973-05-23', '2001-08-09', 4312.98, 'Brussels', 'Detective');

Percobaan ini menunjukkan bahwa kolom id dapat diisi otomatis karena bersifat AUTO_INCREMENT.

Percobaan 9.3 — INSERT beberapa baris sekaligus

INSERT INTO employee (first_name, last_name, start_date, end_date, salary, city, description) VALUES
('Lincoln', 'Rhyme', '1999-05-25', '2011-07-13', 3212.98, 'New York', 'Forensics'),
('Sherlock', 'Holmes', '1923-08-12', '1945-07-21', 4123.21, 'London', 'Detective');

Percobaan 9.4 — Menampilkan seluruh data employee

SELECT * FROM employee;

Aktivitas 10 — Menyalin Data dari Tabel Lain

Percobaan 10.1 — Membuat tabel employee2

CREATE TABLE employee2 (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(15),
    city VARCHAR(20)
);

Percobaan 10.2 — Menyalin data dari employee ke employee2

INSERT INTO employee2
(id, name, city)
SELECT id, CONCAT(first_name,' ',last_name), city
FROM employee;

Percobaan 10.3 — Menampilkan isi tabel employee2

SELECT * FROM employee2;

Aktivitas 11 — Mengubah Data dengan UPDATE

Percobaan 11.1 — Mengubah nilai berdasarkan kondisi tertentu

UPDATE employee2
SET city = 'Ottawa'
WHERE city = 'Vancouver';

Percobaan ini digunakan untuk mengubah semua data kota yang semula Vancouver menjadi Ottawa.

Percobaan 11.2 — Mengubah nilai berdasarkan nilai saat ini

UPDATE employee
SET salary = salary + 1;

Percobaan ini menunjukkan bahwa kolom dapat diperbarui berdasarkan nilai yang sudah dimiliki sebelumnya.

Percobaan 11.3 — Menampilkan data setelah update

SELECT salary FROM employee;

Aktivitas 12 — Mengganti Data dengan REPLACE

Percobaan 12.1 — Mengganti data berdasarkan primary key

REPLACE INTO employee2 (id, name, city)
VALUES (12, 'Sherlock Holmes', 'Manchester');

Perintah REPLACE digunakan untuk menggantikan data yang memiliki nilai sama pada primary key atau unique key.

Percobaan 12.2 — Menampilkan isi tabel employee2

SELECT * FROM employee2;

Aktivitas 13 — Menghapus Data dengan DELETE

Percobaan 13.1 — Menghapus data berdasarkan kondisi

DELETE FROM employee2
WHERE city = 'New York';

Perintah ini digunakan untuk menghapus baris data tertentu berdasarkan kondisi yang diberikan.

Percobaan 13.2 — Menampilkan isi tabel setelah delete

SELECT * FROM employee2;

Catatan Akhir Aktivitas

Seluruh percobaan pada halaman ini disusun mengikuti alur modul pertemuan 2, mulai dari pembuatan tabel, penetapan constraint, pembuatan relasi, modifikasi struktur tabel, hingga manipulasi data menggunakan INSERT, UPDATE, REPLACE, dan DELETE. Dengan menyelesaikan seluruh aktivitas ini, mahasiswa diharapkan tidak hanya mampu menjalankan perintah secara teknis, tetapi juga memahami fungsi, tujuan, dan konteks penggunaannya dalam pengelolaan tabel dan data pada MySQL.