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:
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 TesterPercobaan 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 tabLINES 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
\qPercobaan 5.4 — Masuk kembali ke MySQL dan aktifkan database
mysql -h localhost -u root -pUSE 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.