You are on page 1of 83

LAPORAN PRAKTIKUM

PROGRAM APLIKASI I (MYSQL)

Dosen :
LUKMAN HAKIM, ST, M.Kom.

Disusun oleh :
Andjar Prabowo (08567002)

SEKOLAH TINGGI INFORMATIKA DAN MANAJEMEN KOMPUTER


JAYAKARTA
JAKARTA
2008
LAPORAN PRAKTIKUM

PERTEMUAN KE I

1.1. Tujuan Praktikum


1. Memperkenalkan kepada mahasiswa cara pengaksesan dan penggunaan DBMS
MySQL.
2. Mahasiswa mengerti tentang fungsi matematika dalam MySQL.

1.2. Dasar Teori


MySQL adalah sebuah program database server yang mampu menerima dan
mengirimkan datanya dengan sangat cepat, multiuser serta menggunakan perintah standar
SQL (Structured Query Language).
SQL adalah sebuah bahasa permintaan database yang terstruktur. Bahasa SQL dibuat
sebagai bahasa yang dapat merelasikan beberapa tabel dalam database maupun merelasikan
antar database. SQL merupakan bahasa permintaan yang digunakan dalam MySQL.
Selain MySQL, ada beberapa program database server yang lain yang menggunakan
bahasa permintaan SQL yaitu Oracle, PostgreSQL, MySQL front, SQL Server, dll. MySQL
memiliki 2 lisensi yaitu FreeSoftware dan Shareware.
Agar MySQL dapat digunakan atau dalam kondisi aktif, maka terlebih dahulu harus
mengaktifkan daemon MySQL yang berupa “lampu lalu lintas”. Hal ini akan terlihat jelas
pada taskbar bagian kanan, terlihat “lampu lalu lintas” menyala. Pengaktifan daemon MySQL
ini diwajibkan untuk diaktifkan agar bahasa SQL dapat digunakan dalam MySQL.
Pengaktifan daemon MySQL dapat dilakukan dengan mengaktifkan file winmysqladmin.exe
yang terdapat pada folder bin dari hasil instalasi MySQL.
Setelah daemon MySQL aktif, langkah pertama adalah menampilkan prompt MySQL
yang digunakan untuk menuliskan perintah-perintah dengan bahasa SQL. Prompt MySQL ini
secara default merupakan database server yang dapat diakses oleh siapapun. Prompt MySQL
dapat dimunculkan dengan mengaktifkanfile mysql.exe yang terdapat pada folder bin.
1.3. Langkah-Langkah Praktikum
1. Mahasiswa mengamati apakah daemon MySQL telah aktif atau belum. Jika belum
aktif, maka mahasiswa mengaktifkan terlebih dahulu.
2. Mahasiswa menampilkan prompt MySQL, yang berguna untuk menuliskan program
dengan bahasa SQL.
3. Mahasiswa mengikuti semua instruksi pada bagian 1.4. dalam praktikum 1 ini.

1.4. Program-Program MySQL


1. Cara mengaktifkan daemon MySQL :
Dapat dilakukan dengan mengaktifkan file winmysqladmin.exe yang ada di folder bin
dari instalasi MySQL, atau jika ditulis dalam DOS :
C: \mysql\bin> winmysqladmin.exe (Tekan Enter)
Maka akan muncul tampilan jendela seperti di bawah ini

Atau bila jendela di atas diminimize, maka pada taskbar akan terlihat “lampu lalu
lintas” menyala seperti terlihat di bawah ini :
2. Cara mengaktifkan prompt MySQL
Klik-lah file mysql.exe pada folder bin yang terdapat di drive C atau jika melalui
DOS prompt dapat dilakukan langkah berikut:
C:\>cd mysql (tekan Enter), maka akan muncul :
C:\ mysql > cd bin (tekan Enter), maka akan muncul :
C:\ mysql\bin\mysql.exe (tekan Enter), maka akan muncul :
mysql>
Prompt mysql inilah yang berfungsi untuk memasukkan perintah-perintah permintaan
kepada database, yang berwujud program dam bahasa SQL.
3. Mengenal versi MySQL
mysql>SELECT VERSION();
memberikan hasil sebagai berikut :
+------------+
| VERSION() |
+------------+
| 3.23.47-nt |
+------------+
1 row in set (0.38 sec)

4. Mengetahui waktu (jam)


mysql>SELECT NOW();
hasilnya seperti gambar di bawah ini :
+---------------------+
| NOW() |
+---------------------+
| 2008-09-24 20:20:39 |
+---------------------+
1 row in set (0.35 sec)

5. Mengetahui Tanggal, Bulan dan Tahun


mysql>SELECT CURRENT_DATE;
perintah di atas memberikan hasil sebagai berikut :
+--------------+
| CURRENT_DATE |
+--------------+
| 2008-09-24 |
+--------------+
1 row in set (0.00 sec)

6. Mengetahui user yang aktif


mysql>SELECT USER();
memberikan hasil sebagai berikut :
+----------------+
| USER() |
+----------------+
| ODBC@localhost |
+----------------+
1 row in set (0.34 sec)
7. Penggunaan fungsi-fungsi matematika
Ketiklah program-program berikut, dan amatilah apa kira-kira faedah dari fungsi-
fungsi matematika yang telah anda ketikkan.

a. mysql>SELECT 30 / 3;
perintah di atas memberikan hasil sebagai berikut :
+--------+
| 30 / 3 |
+--------+
| 10.00 |
+--------+
1 row in set (0.32 sec)

b. mysql>SELECT 20 * 5;
perintah di atas memberikan hasil sebagai berikut :
+------+
| 20*5 |
+------+
| 100 |
+------+
1 row in set (0.00 sec)

c. mysql>SELECT 20 + 50;
perintah di atas memberikan hasil sebagai berikut :
+-------+
| 20+50 |
+-------+
| 70 |
+-------+
1 row in set (0.00 sec)

d. mysql>SELECT 30 – 5;
perintah di atas memberikan hasil sebagai berikut :
+------+
| 30-5 |
+------+
| 25 |
+------+
1 row in set (0.00 sec)

e. mysql>SELECT SIN(30);
perintah di atas memberikan hasil sebagai berikut :
+-----------+
| SIN(30) |
+-----------+
| -0.988032 |
+-----------+
1 row in set (0.00 sec)

f. mysql>SELECT COS(90);
perintah di atas memberikan hasil sebagai berikut :
+------------+
| COS(90) |
+------------+
| -0.448074 |
+------------+
1 row in set (0.05 sec)

g. mysql>SELECT TAN(45);
perintah di atas memberikan hasil sebagai berikut :
+----------+
| TAN(45) |
+----------+
| 1.619775 |
+----------+
1 row in set (0.00 sec)
h. mysql>SELECT ATAN(45);
perintah di atas memberikan hasil sebagai berikut :
+----------+
| ATAN(45) |
+----------+
| 1.548578 |
+----------+
1 row in set (0.00 sec)
i. mysql>SELECT COT(45);
perintah di atas memberikan hasil sebagai berikut :
+------------+
| COT(45) |
+------------+
| 0.61736962 |
+------------+
1 row in set (0.00 sec)
j. mysql>SELECT LEAST(4,3,6,8,3,4,2);
perintah di atas memberikan hasil sebagai berikut :
+----------------------+
| LEAST(4,3,6,8,3,4,2) |
+----------------------+
| 2|
+----------------------+
1 row in set (0.00 sec)
k. mysql>SELECT GREATEST(6,3,4,7,8,5,9,8);
perintah di atas memberikan hasil sebagai berikut :
+---------------------------+
| GREATEST(6,3,4,7,8,5,9,8) |
+---------------------------+
| 9|
+---------------------------+
1 row in set (0.00 sec)
l. mysql>SELECT RADIANS(45);
perintah di atas memberikan hasil sebagai berikut :
+------------------+
| RADIANS(45) |
+------------------+
| 0.78539816339745 |
+------------------+
1 row in set (0.00 sec)
m. mysql>SELECT MOD(12,3);
perintah di atas memberikan hasil sebagai berikut :
+-----------+
| MOD(12,3) |
+-----------+
| 0|
+-----------+
1 row in set (0.00 sec)

n. mysql>SELECT EXP(4);
perintah di atas memberikan hasil sebagai berikut :
+-----------+
| EXP(4) |
+-----------+
| 54.598150 |
+-----------+
1 row in set (0.00 sec)

o. mysql>SELECT POW(4,2);
perintah di atas memberikan hasil sebagai berikut :
+-----------+
| POW(4,2) |
+-----------+
| 16.000000 |
+-----------+
1 row in set (0.33 sec)

8. Kerjakan persamaan berikut dengan MySQL


a. 3 +5*4/4
mysql> SELECT 3+5*4/4;
+---------+
| 3+5*4/4 |
+---------+
| 8.00 |
+---------+
1 row in set (0.00 sec)

b. 5%3+4*5-2
mysql> SELECT 5%3+4*5-2;
+-----------+
| 5%3+4*5-2 |
+-----------+
| 20 |
+-----------+
1 row in set (0.00 sec)
9. Jika x = 10, carilah hasil persamaan berikut :
a. x5 + x4 + x3 + x2 + x + 5
mysql> SELECT pow(10,5)+pow(10,4)+pow(10,3)+pow(10,2)+10+5;
+----------------------------------------------+
| pow(10,5)+pow(10,4)+pow(10,3)+pow(10,2)+10+5 |
+----------------------------------------------+
| 111115.000000 |
+----------------------------------------------+
1 row in set (0.00 sec)

b. x4 + 5 * 5 + cos(30)
mysql> SELECT pow(10,4) + 5 * 5 + cos(30);
+-----------------------------+
| pow(10,4) + 5 * 5 + cos(30) |
+-----------------------------+
| 10025.154251 |
+-----------------------------+
1 row in set (0.00 sec)

c. x3 + x2 + 5 % 2 * cos(0)
mysql> SELECT pow(10,3) + pow(10,2) + 5 % 2 * cos(0);
+----------------------------------------+
| pow(10,3) + pow(10,2) + 5 % 2 * cos(0) |
+----------------------------------------+
| 1101.000000 |
+----------------------------------------+
1 row in set (0.00 sec)

d. x8 + cos(30) + sin(30) + atan(30)


mysql> SELECT pow(10,8) + cos(30) + sin(30) + atan(30);
+------------------------------------------+
| pow(10,8) + cos(30) + sin(30) + atan(30) |
+------------------------------------------+
| 100000000.703695 |
+------------------------------------------+
1 row in set (0.00 sec)

e. x2 + 4x + 3
mysql> SELECT pow(10,2) + 4 * 10 + 3;
+------------------------+
| pow(10,2) + 4 * 10 + 3 |
+------------------------+
| 143.000000 |
+------------------------+
1 row in set (0.00 sec)

f. 20x4 + 3x3 + 4x2 +5


mysql> SELECT 20*pow(10,4)+3*pow(10,3)+4*pow(10,2)+5;
+----------------------------------------+
| 20*pow(10,4)+3*pow(10,3)+4*pow(10,2)+5 |
+----------------------------------------+
| 203405.000000 |
+----------------------------------------+
1 row in set (0.00 sec)

Latihan :
1. 4 x10 + 2 sin(30) +15 cos(45) + 5x * 2
Jika x = 4
mysql> SELECT 4*pow(4,10)+2*sin(30)+15*cos(45)+pow(5,4)*2;
+---------------------------------------------+
| 4*pow(4,10)+2*sin(30)+15*cos(45)+pow(5,4)*2 |
+---------------------------------------------+
| 4195559.903767 |
+---------------------------------------------+
1 row in set (0.00 sec)

2. Y20 + tan(30) * 107 + y atan(30) + 4 y10


Jika y = 5
mysql>SELECT pow(5,20)+tan(30)*pow(10,7)+5*atan(30)+4*pow(5,10);
+----------------------------------------------------+
| pow(5,20)+tan(30)*pow(10,7)+5*atan(30)+4*pow(5,10) |
+----------------------------------------------------+
| 95367406649820.719000 |
+----------------------------------------------------+
1 row in set (0.00 sec)

3. 2 + cos(45) * z + 10 z5 + 10 + 2 z
Jika z = 10
mysql> SELECT 2+cos(45)*10+10*pow(10,5)+10+2*10;
+-----------------------------------+
| 2+cos(45)*10+10*pow(10,5)+10+2*10 |
+-----------------------------------+
| 1000037.253220 |
+-----------------------------------+
1 row in set (0.00 sec)
LAPORAN PRAKTIKUM

PERTEMUAN KE II

2.1. Tujuan Praktikum


1. Mahasiswa mengerti tentang database.
2. Mahasiswa mampu membuat database dan tabel-tabel di dalamnya.

2.2. Dasar Teori


SQL (Structured Query Language) dibagi menjadi dua bentuk query atau permintaan
kepada database :
1. DDL (Data Definition Language)
DDL merupakan metode query yang berguna untuk mendefinisikan data pada sebuah
database. Adapun instruksi SQL yang berhubungan dengan DDL adalah :
a. CREATE : Digunakan untuk melakukan pembuatan database dan tabel
b. DROP : Digunakan untuk melakukan penghapusan tabel dan database
c. ALTER : Digunakan untuk melakukan perubahan struktur tabel yang telah
dibuat, baik itu penambahan field (ADD), mengganti nama field (CHANGE)
ataupun menamakannya kembali (RENAME).
2. DML (Data Definition Language)
DML merupakan metode query yang dapat digunakan apabila DDL telah terjadi,
sehingga dari query ini adalah untuk lakukan pemanipulasian database yang telah ada
atau telah dibuat sebelumnya. Instruksi SQL yang berhubungan dengan DML adalah :
a. INSERT : Digunakan untuk melakukan penginputan / pemasukan data pada
tabel database.
b. UPDATE : Digunakan untuk melakukan pengubahan / peremajaan terhadap data
yang ada pada tabel.
c. DELETE : Digunakan untuk melakukan penghapusan data pada tabel.
Penghapusan dapat terjadi pada setiap record atau seluruh isi tabel.
Database merupakan kumpulan dari tabel-tabel yang saling berelasi. Pada sebuah
tabel dapat terdiri dari field (kolom) dan record (baris). Jadi setiap database dapat terdiri dari
banyak tabel. Langkah berikut ini merupakan urutan yang harus dilalui dalam pembuatan
tabel :
1. Buatlah terlebih dahulu databasenya
mysql>CREATE DATABASE nama_database;
2. Gunakan database yang telah anda definisikan pada no. 1 di atas, sebagai indikasi bahwa
database tersebutlah yang akan diaktifkan.
mysql>USE nama_database;
3. Buat tabel.
mysql>CREATE TABLE nama_tabel(
nama_kolom_1 tipe_data(panjang),
nama_kolom_2 tipe_data(panjang),………(…….));

2.3. Langkah-Langkah Praktikum


1. Mahasiswa mengamati apakah daemon MySQL telah aktif atau belum. Jika belum
aktif, maka mahasiswa mengaktifkan terlebih dahulu.
2. Mahasiswa menampilkan prompt MySQL, yang berguna untuk menuliskan program
dalam bahasa SQL.
3. Mahasiswa mengikuti semua instruksi pada bagian 2.4. dalam praktikum II ini.

2.4. Program-Program MySQL


1. Membuat database bernama Akademik
mysql>CREATE DATABASE Akademik;

Jika muncul tampilan sebagai berikut :


Query OK, 1 row affected (0.00 sec)

maka database Akademik telah tercipta.

2. Melihat database-database, dan mengamati apakah database yang telah dibuat sudah
ada.
mysql>SHOW DATABASES;
+----------+
| Database |
+----------+
| Akademik |
| mysql |
| test |
+----------+
3 rows in set (0.00 sec)

3. Mengaktifkan database Akademik.


mysql>USE Akademik;

Database changed
4. Membuat tabel Mhs
mysql>CREATE TABLE Mhs(
- >NIM INT(10) NOT NULL,
- >Nama VARCHAR(20),
- >Jenis_Kelamin ENUM(‘L’,’P’),
- >Alamat VARCHAR(35),
- >Telepon VARCHAR(15),
- >PRIMARY KEY(NIM));
Query OK, 0 rows affected (0.31 sec)

5. Melihat deskripsi tabel Mhs


mysql>DESCRIBE Mhs;
memberikan hasil sebagai berikut :
+---------------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------+---------------+------+-----+---------+-------+
| NIM | int(10) | | PRI | 0 | |
| Nama | varchar(20) | YES | | NULL | |
| Jenis_Kelamin | enum('L','P') | YES | | NULL | |
| Alamat | varchar(35) | YES | | NULL | |
| Telepon | varchar(15) | YES | | NULL | |
+---------------+---------------+------+-----+---------+-------+
5 rows in set (0.02 sec)
6. Membuat tabel Dosen
mysql> CREATE TABLE Dosen(
- >KodeDosen VARCHAR(10),
- >Nama VARCHAR(20),
- >Alamat VARCHAR(35),
- >Tgl_Lahir DATE,
- >Jabatan VARCHAR(10));
Query OK, 0 rows affected (0.31 sec)

7. Melihat deskripsi tabel Mhs


mysql>DESC Dosen;
memberikan hasil sebagai berikut :
+-----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| KodeDosen | varchar(10) | YES | | NULL | |
| Nama | varchar(20) | YES | | NULL | |
| Alamat | varchar(35) | YES | | NULL | |
| Tgl_Lahir | date | YES | | NULL | |
| Jabatan | varchar(10) | YES | | NULL | |
+-----------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)
LAPORAN PRAKTIKUM

PERTEMUAN KE III

3.1. Tujuan Praktikum


1. Mahasiswa mengerti cara pengisian data pada tabel
2. Mahasiswa mampu membuat database dan tabel, serta mampu mengisi data dalam
tabel

3.2. Dasar Teori


Tabel yang telah dibuat / didefinisikan, akan menjadi tabel kosong. Tabel kosong
tidak memiliki arti apapun, oleh sebab itu perlu diisi.
Dalam mengisi data pada tabel, ada beberapa teknik yang digunakan yaitu diantaranya
adalah memasukkan data per-record, memasukkan data beberapa record sekaligus dan
memasukkan data dari tabel lain.

Berikut adalah penjelasan lebih rinci dari memasukkan data ke dalam tabel :

1. Pengisian data per-record


Pengisian data ini dimaksudkan pada pengisian data satu buah record atau satu buah
baris dalam tabel. Jadi bila ada 10 baris / record, maka pengisian data ini dilakukan 10 kali
agar 10 baris / record ini terisi semua. Syntax (aturan penulisan) dari pengisian data per-
record adalah sebagai berikut:
mysql > INSERT INTO nama_tabel VALUES
(‘Isi_field_1’,’Isi_field_2,’….’,’Isi_field_n’);
Contoh :
mysql > INSERT INTO Mhs VALUES
(‘945114008’,’Gunawan Sudarsono’,’Jatiwaringin’);

2. Pengisian data beberapa record sekaligus


Pengisian data ini dimaksudkan utnuk mengisi / memasukkan data bersama-sama
dalam satu baris perintah. Konsep pengisian data ini bertujuan memasukkan semua data
bersamaan (semua record) dalam sebuah tabel.
Berikut adalah syntax-nya :
mysql > INSERT INTO nama_tabel VALUES
- > (‘Isi_field_1_record1’,’Isi_field_2_record1,’….’,’Isi_field_n_recordn’)
- > (‘Isi_field_1_record2’,’Isi_field_2_record2,’….’,’Isi_field_n_recordn’)
- > (‘Isi_field_1_record3’,’Isi_field_2_record3,’….’,’Isi_field_n_recordn’)
:
:
- > (‘Isi_field_1_recordn’,’Isi_field_2_recordn,’….’,’Isi_field_n_recordn’);
Contoh :
mysql > INSERT INTO Mhs VALUES
(‘945114008’,’Gunawan Sudarsono’,’Jatiwaringin’),
(‘945114001’,’Bambang Gunarso’,’Kuningan, Jabar’),
(‘945114002’,’Intan Nuraini’,’Bekasi’);

3. Pengisian data tabel dari tabel lain


Tujuan dari konsep ini adalah memindahkan data dari tabel lain ke dalam tabel yang
dituju. Fungsi lain adalah berguna dalam mem-back up data yang dianggap penting untuk
didokumentasikan ke dalam tabel lain.
Syntax-nya adalah sebagai berikut :
mysql>INSERT INTO nama_tabel_tujuan (kolom_1,….,kolom_n)
SELECT Kolom-kolom_tabel_sumber FROM nama_tabel_sumber;
Contoh :
mysql> INSERT INTO Jati_diri
SELECT no,nama,alamat FROM Mhs;

4. Menampilkan tabel-tabel dalam database


mysql> SHOW TABLES;

5. Menampilkan isi tabel


mysql> SELECT * FROM nama_tabel;

3.3. Langkah-Langkah Praktikum


1. Mahasiswa mengamati apakah daemon MySQL telah aktif atau belum. Jika belum
aktif, maka mahasiswa mengaktifkan terlebih dahulu.
2. Mahasiswa menampilkan prompt MySQL, yang berguna untuk menuliskan program
dalam bahasa SQL.
3. Mahasiswa mengikuti semua instruksi pada bagian 3.4. dalam praktikum III ini.

3.4. Program-Program MySQL


1. Hapus semua database yang ada
Sebelumnya untuk mengetahui database yang telah ada kita gunakan perintah :
mysql> SHOW DATABASES;
+----------+
| Database |
+----------+
| Akademik |
+----------+
1 row in set (0.00 sec)

Kemudian untuk menghapus database digunakan perintah berikut :

mysql>DROP DATABASE Akademik;


Query OK, 6 rows affected (0.34 sec)

Jika tampil informasi ini maka database akademik telah dihapus, hal ini dapat kita
ketahui dengan melihat database yang ada seperti berikut ini :

mysql>SHOW DATABASES;
Empty set (0.00 sec)
Informasi ini menyatakan tidak ada database dalam komputer / sistem.

2. Buatlah database dengan nama databasenya adalah nama anda sendiri.

mysql > CREATE DATABASE Andjar;


Query OK, 0 rows affected (0.00 sec)

3. Buatlah tabel Mhs dengan nama field-fieldnya adalah NIM, Nama, Jenis_Kelamin,
Alamat, E-mail,Telp, dan IPK. Kemudian isilah tabel-tabel tersebut sebanyak 8 record
dengan cara pengisian per-record.
Untuk membuat tabel perintahnya :
mysql> CREATE TABLE Mhs(
- > NIM INT(10) NOT NULL,
- > Nama VARCHAR(20),
- > JKel ENUM('PRIA','WANITA'),
- > Alamat VARCHAR(25),
- > E_mail VARCHAR(15),
- > Telp CHAR(10),
- > IPK CHAR(4),
- > PRIMARY KEY(NIM));
Query OK, 0 rows affected (0.34 sec)
Sedang untuk memasukkan data per-record perintahnya seperti berikut :
mysql> INSERT INTO Mhs VALUES (1001,'Budi Darmawan’,
-> 'pria','rawamangun','budi@gmail.com','02112345','3,25');
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO Mhs VALUES (1002,'Bambang Thok’,


-> 'pria','rawamangun','bams@yahoo.com','02212345','2,75');
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO Mhs VALUES (1003,'Indah Nuraini',


-> 'WANITA','Bulungan','indah@yahoo.com','02312345','3,75');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO Mhs VALUES (1004,'Mat Juki',


-> 'PRIA','Pasar Senen','juki@gmail.com','02412345','1,85');
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO Mhs VALUES (1005,'Paimin McDonald',


-> 'PRIA','Sentiong','pai@gmail.com','02512345','2,80');
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO Mhs VALUES (1006,'Diandra',


-> 'WANITA','Pulomas','diandra@gmail.com','02612345','3,25');
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO Mhs VALUES (1007,'Jay Jaya',


-> 'PRIA','Kramat Pulo','jaya@plasa.com','02712345','2,25');
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO Mhs VALUES (1008,'Sabrina','WANITA',


-> 'Melawai','sabrina@plasa.com','02812345','2,75');
Query OK, 1 row affected (0.00 sec)

4. Lihatlah isi tabelnya.


mysql> SELECT * FROM Mhs;
+------+-----------------+--------+-------------+-----------------+----------+------+
| NIM | Nama | JKel | Alamat | E_mail | Telp | IPK |
+------+-----------------+--------+-------------+-----------------+----------+------+
| 1001 | Budi Darmawan | PRIA | jatinegara | budi@gmail.com | 02112345 | 3,25 |
| 1002 | Bambang Thok | PRIA | rawamangun | bams@yahoo.com | 02212345 | 2,75 |
| 1003 | Indah Nuraini | WANITA | Bulungan | indah@yahoo.com | 02312345 | 3,75 |
| 1004 | Mat Juki | PRIA | Pasar Senen | juki@gmail.com | 02412345 | 1,85 |
| 1005 | Paimin McDonald | PRIA | Sentiong | pai@gmail.com | 02512345 | 2,80 |
| 1006 | Diandra | WANITA | Pulomas | diandra@gmail.c | 02612345 | 3,25 |
| 1007 | Jay Jaya | PRIA | Kramat Pulo | jaya@plasa.com | 02712345 | 2,25 |
| 1008 | Sabrina | WANITA | Melawai | sabrina@plasa.c | 02812345 | 2,75 |
+------+-----------------+--------+-------------+-----------------+----------+------+
8 rows in set (0.00 sec)

5. Buatlah tabel Data_Diri dengan nama field-fieldnya adalah NIM, Nama, JKel,
Alamat. Kemudian isilah tabel tersebut sebanyak 4 record, dengan cara pengisian
beberapa record sekaligus.
mysql> create table Data_Diri(
-> NIM INT(10),
-> Nama VARCHAR(20),
-> JKel ENUM('PRIA','WANITA'),
-> Alamat VARCHAR(25));
Query OK, 0 rows affected (0.00 sec)

Untuk memasukkan data beberapa record sekaligus digunakan perintah seperti di


bawah ini :
mysql> INSERT INTO Data_Diri VALUES
-> (1009,'Lydia Sabri','WANITA','Jelambar'),
-> (1010,'Luki Rahmat','PRIA','Poncol'),
-> (1011,'Ana Ivanovic','WANITA','Grogol'),
-> (1012,'Putri Ayu','WANITA','Depok');
Query OK, 4 rows affected (0.00 sec)
Records: 4 Duplicates: 0 Warnings: 0

6. Lihatlah isi tabelnya


mysql> SELECT * FROM Data_Diri;
+------+--------------+--------+----------+
| NIM | Nama | JKel | Alamat |
+------+--------------+--------+----------+
| 1009 | Lydia Sabri | WANITA | Jelambar |
| 1010 | Luki Rahmat | PRIA | Poncol |
| 1011 | Ana Ivanovic | WANITA | Grogol |
| 1012 | Putri Ayu | WANITA | Depok |
+------+--------------+--------+----------+
4 rows in set (0.00 sec)

7. Pindahkan semua isi / data tabel Data_Diri ke dalam tabel Mhs


mysql> INSERT INTO Mhs (NIM,Nama,JKel,Alamat)
-> SELECT NIM,Nama,JKel,Alamat FROM Data_Diri;
Query OK, 4 rows affected (0.00 sec)
Records: 4 Duplicates: 0 Warnings: 0

8. Lihatlah isi tabelnya

mysql> SELECT * FROM Mhs;


+------+-----------------+--------+-------------+-----------------+----------+------+
| NIM | Nama | JKel | Alamat | E_mail | Telp | IPK |
+------+-----------------+--------+-------------+-----------------+----------+------+
| 1001 | Budi Darmawan | PRIA | jatinegara | budi@gmail.com | 02112345 | 3,25 |
| 1002 | Bambang Thok | PRIA | rawamangun | bams@yahoo.com | 02212345 | 2,75 |
| 1003 | Indah Nuraini | WANITA | Bulungan | indah@yahoo.com | 02312345 | 3,75 |
| 1004 | Mat Juki | PRIA | Pasar Senen | juki@gmail.com | 02412345 | 1,85 |
| 1005 | Paimin McDonald | PRIA | Sentiong | pai@gmail.com | 02512345 | 2,80 |
| 1006 | Diandra | WANITA | Pulomas | diandra@gmail.c | 02612345 | 3,25 |
| 1007 | Jay Jaya | PRIA | Kramat Pulo | jaya@plasa.com | 02712345 | 2,25 |
| 1008 | Sabrina | WANITA | Melawai | sabrina@plasa.c | 02812345 | 2,75 |
| 1009 | Lydia Sabri | WANITA | Jelambar | NULL | NULL | NULL |
| 1010 | Luki Rahmat | PRIA | Poncol | NULL | NULL | NULL |
| 1011 | Ana Ivanovic | WANITA | Grogol | NULL | NULL | NULL |
| 1012 | Putri Ayu | WANITA | Depok | NULL | NULL | NULL |
+------+-----------------+--------+-------------+-----------------+----------+------+
12 rows in set (0.00 sec)

Latihan :
1. Tampilkan dari tabel Mhs field Nama dengan inisial huruf depan “A”
mysql> SELECT * FROM Mhs
-> WHERE Nama LIKE "A%";
+------+--------------+--------+--------+--------+------+------+
| NIM | Nama | JKel | Alamat | E_mail | Telp | IPK |
+------+--------------+--------+--------+--------+------+------+
| 1011 | Ana Ivanovic | WANITA | Grogol | NULL | NULL | NULL |
+------+--------------+--------+--------+--------+------+------+
1 row in set (0.00 sec)

2. Tampilkan dari tabel Mhs field Nama dengan inisial huruf tengah “M”
mysql> SELECT * FROM Mhs
-> WHERE Nama LIKE "%M%";
+------+-----------------+------+-------------+----------------+----------+------+
| NIM | Nama | JKel | Alamat | E_mail | Telp | IPK |
+------+-----------------+------+-------------+----------------+----------+------+
| 1001 | Budi Darmawan | PRIA | jatinegara | budi@gmail.com | 02112345 | 3,25 |
| 1002 | Bambang Thok | PRIA | rawamangun | bams@yahoo.com | 02212345 | 2,75 |
| 1004 | Mat Juki | PRIA | Pasar Senen | juki@gmail.com | 02412345 | 1,85 |
| 1005 | Paimin McDonald | PRIA | Sentiong | pai@gmail.com | 02512345 | 2,80 |
| 1010 | Luki Rahmat | PRIA | Poncol | NULL | NULL | NULL |
+------+-----------------+------+-------------+----------------+----------+------+
5 rows in set (0.00 sec)

3. Tampilkan dari tabel Mhs field Nama dengan inisial huruf akhir “A”
mysql> SELECT * FROM Mhs
-> WHERE Nama LIKE "%A";
+------+----------+--------+-------------+-----------------+----------+------+
| NIM | Nama | JKel | Alamat | E_mail | Telp | IPK |
+------+----------+--------+-------------+-----------------+----------+------+
| 1006 | Diandra | WANITA | Pulomas | diandra@gmail.c | 02612345 | 3,25 |
| 1007 | Jay Jaya | PRIA | Kramat Pulo | jaya@plasa.com | 02712345 | 2,25 |
| 1008 | Sabrina | WANITA | Melawai | sabrina@plasa.c | 02812345 | 2,75 |
+------+----------+--------+-------------+-----------------+----------+------+
3 rows in set (0.00 sec)
LAPORAN PRAKTIKUM

PERTEMUAN KE IV

4.1. Tujuan Praktikum


1. Mahasiswa mengerti tentang penggunaan tipe data saat pendefinisian sebuah tabel.
2. Mahasiswa mampu membuat database, dan membuat tabel dengan masing-masing
fieldnya terdiri dari berbagai macam data yang sesuai.

4.2. Dasar Teori


Tipe data merupakan pengidentifikasian jenis data pada semua kolom dalam sebuah
tabel. Setiap kolom dalam sebuah tabel dapat memiliki tipe data yang sama, atau berbeda-
beda tergantung dari datanya.
Tipe data adalah suatu bentuk pemodelan data yang dideklarasikan / diperkenalkan
pada saat melakukan pembuatan tabel. Tipe data ini akan mempengaruhi setiap data yang
akan dimaksukkan ke dalam sebuah tabel. Data yang akan dimasukkan ke setiap kolom
dalam tabel harus sesuai dengan tipe data yang telah dideklarasikan saat membuat tabel.
Pada MySQL, kemampuan tabel dalam menangani penyimpanan jenis data / tipe data
dapat dibagi dalam beberapa bentuk yaitu :
1. Tipe data Numerik
Tipe data yang termasuk di dalamnya adalah TinyInt, SmallInt, MediumInt, Int dan
BigInt. Perbedaan dari tipe data ini adalah jangkauan dalam penanganan data.
2. Tipe data Penanggalan dan Waktu
Tipe data yang termasuk di dalamnya adalah DateTime, Date, TimeStamp, Time dan
Year.
3. Tipe data tergolong data teks
Tipe data yang termasuk di dalamnya adalah TinyText, TinyBlob, Text, Blob,
MediumText, MediumBlob dan LongBlob.
4. Tipe data tergolong data string
Tipe data yang termasuk di dalamnya adalah Varchar, Char, Enum dan Set.

4.3. Langkah-Langkah Praktikum


1. Mahasiswa mengamati apakah daemon MySQL telah aktif atau belum. Jika belum
aktif, maka mahasiswa mengaktifkan terlebih dahulu.
2. Mahasiswa menampilkan prompt MySQL, yang berguna untuk menuliskan program
dalam bahasa SQL.
3. Mahasiswa mengikuti semua instruksi pada bagian 4.4. dalam praktikum IV ini.

Program-Program MySQL
1. Hapus semua database yang ada
Sebelumnya untuk mengetahui database yang telah ada kita gunakan perintah :
mysql> SHOW DATABASES;
+----------+
| Database |
+----------+
| Akademik |
+----------+
1 row in set (0.00 sec)

Kemudian untuk menghapus database digunakan perintah berikut :

mysql>DROP DATABASE Akademik;


Query OK, 6 rows affected (0.34 sec)

Jika tampil informasi ini maka database akademik telah dihapus, hal ini dapat kita
ketahui dengan melihat database yang ada seperti berikut ini :

mysql>SHOW DATABASES;
Empty set (0.00 sec)
Informasi ini menyatakan tidak ada database dalam komputer / sistem.

2. Buatlah database dengan nama databasenya adalah nama anda sendiri.

mysql > CREATE DATABASE Andjar;


Query OK, 0 rows affected (0.00 sec)

3. Buat tabel Penumpang, Kereta, Keberangkatan dan tabel Tujuan


Untuk membuat tabel penumpang instruksinya sebagai berikut:

mysql> create table Penumpang(


-> NoPel int(6) not null primary key,
-> Kursi varchar(3),
-> Gerbong smallint(2),
-> Kereta varchar(20),
-> NoLoko int(6));
Query OK, 0 rows affected (0.36 sec)
Untuk melihat struktur tabel penumpang digunakan perintah :

mysql> desc penumpang;


+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| NoPel | int(6) | | PRI | 0 | |
| Kursi | char(3) | YES | | NULL | |
| Gerbong | smallint(2) | YES | | NULL | |
| Kereta | varchar(20) | YES | | NULL | |
| NoLoko | int(6) | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

Untuk membuat tabel kereta instruksinya sebagai berikut:

mysql> create table Kereta(


-> NoLoko int(6) not null primary key,
-> Kereta varchar(20),
-> Jenis enum('Eksekutif','Bisnis','Ekonomi'));
Query OK, 0 rows affected (0.36 sec)

Untuk melihat struktur tabel kereta digunakan perintah :

mysql> desc kereta;


+--------+--------------------------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+--------------------------------------+------+-----+---------+-------+
| NoLoko | int(6) | | PRI | 0 | |
| Kereta | varchar(20) | YES | | NULL | |
| Jenis | enum('Eksekutif','Bisnis','Ekonomi') | YES | | NULL | |
+--------+--------------------------------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

Untuk membuat tabel keberangkatan dan tabel tujuan instruksinya sebagai berikut:

mysql> create table Keberangkatan(


-> NoLoko int(6) not null primary key,
-> Jam_Kedatangan time,
-> Jam_Keberangkatan time);
Query OK, 0 rows affected (0.00 sec)

mysql> create table Tujuan(


-> NoLoko int(6) not null primary key,
-> Tujuan varchar(20));
Query OK, 0 rows affected (0.01 sec)

Sedangkan untuk melihat struktur tabel keberangkatan dan tabel tujuan digunakan
instruksi seperti berikut :
mysql> desc keberangkatan;
+-------------------+--------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------------+--------+------+-----+---------+-------+
| NoLoko | int(6) | | PRI | 0 | |
| Jam_Kedatangan | time | YES | | NULL | |
| Jam_Keberangkatan | time | YES | | NULL | |
+-------------------+--------+------+-----+---------+-------+
3 rows in set (0.00 sec)

mysql> desc tujuan;


+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| NoLoko | int(6) | | PRI | 0 | |
| Tujuan | varchar(20) | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

4. Tabel-tabel pada point 3 di atas, masukkan data sebanyak minimal 5 record


Untuk memasukkan data ke tabel penumpang instruksinya adalah :
mysql> insert into penumpang values
-> (100100,'15A',2,'Argo Lawu','890020'),
-> (100101,'7A',1,'Argo Anggrek','756101'),
-> (100121,'17C',5,'Kahuripan','156182'),
-> (100195,'2B',2,'Senja Utama','551561'),
-> (100210,'12D',8,'Bima','105201'),
-> (100213,'3D',7,'Progo','552811');
Query OK, 6 rows affected (0.00 sec)
Records: 6 Duplicates: 0 Warnings: 0
Sedangkan berikut ini instruksi untuk melihat data pada tabel penumpang yang baru
dimasukkan :
mysql> select * from penumpang;
+--------+-------+---------+--------------+--------+
| NoPel | Kursi | Gerbong | Kereta | NoLoko |
+--------+-------+---------+--------------+--------+
| 100100 | 15A | 2 | Argo Lawu | 890020 |
| 100101 | 7A | 1 | Argo Anggrek | 756101 |
| 100121 | 17C | 5 | Kahuripan | 156182 |
| 100195 | 2B | 2 | Senja Utama | 551561 |
| 100210 | 12D | 8 | Bima | 105201 |
| 100213 | 3D | 7 | Progo | 552811 |
+--------+-------+---------+--------------+--------+
6 rows in set (0.00 sec)
Untuk memasukkan data ke tabel tujuan instruksinya adalah :

mysql> insert into tujuan values


-> (552811,'Yogyakarta'),
-> (890020,'Solo'),
-> (105201,'Surabaya'),
-> (756101,'Semarang'),
-> (551561,'Yogyakarta'),
-> (156182,'Bandung');
Query OK, 6 rows affected (0.00 sec)
Records: 6 Duplicates: 0 Warnings: 0

Sedangkan berikut ini instruksi untuk melihat data pada tabel tujuan yang baru
dimasukkan :
mysql> select * from tujuan;
+--------+------------+
| NoLoko | Tujuan |
+--------+------------+
| 552811 | Yogyakarta |
| 890020 | Solo |
| 105201 | Surabaya |
| 756101 | Semarang |
| 551561 | Yogyakarta |
| 156182 | Bandung |
+--------+------------+
6 rows in set (0.00 sec)
Untuk memasukkan data ke tabel kereta instruksinya adalah :

mysql> insert into kereta values


-> (105201,'Bima','Eksekutif'),
-> (890020,'Argo Lawu','Eksekutif'),
-> (552811,'Progo','Ekonomi'),
-> (551561,'Senja Utamao','Bisnis'),
-> (756101,'Argo Anggrek','Eksekutif'),
-> (156182,'Kahuripan','Ekonomi');
Query OK, 6 rows affected (0.00 sec)
Records: 6 Duplicates: 0 Warnings: 0

Sedangkan berikut ini instruksi untuk melihat data pada tabel kereta yang baru
dimasukkan :

mysql> select * from kereta;


+--------+--------------+-----------+
| NoLoko | Kereta | Jenis |
+--------+--------------+-----------+
| 105201 | Bima | Eksekutif |
| 890020 | Argo Lawu | Eksekutif |
| 552811 | Progo | Ekonomi |
| 551561 | Senja Utamao | Bisnis |
| 756101 | Argo Anggrek | Eksekutif |
| 156182 | Kahuripan | Ekonomi |
+--------+--------------+-----------+
6 rows in set (0.00 sec)

Untuk memasukkan data ke tabel keberangkatan instruksinya adalah :

mysql> insert into keberangkatan values


-> (552811,'21:00:00','21:10:00'),
-> (756101,'10:15:00','10:30:00'),
-> (156182,'20:00:00','20:10:00'),
-> (551561,'17:00:00','17:20:00'),
-> (890020,'07:25:00','07:40:00');
Query OK, 5 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0

Sedangkan berikut ini instruksi untuk melihat data pada tabel keberangkatan yang
baru dimasukkan :

mysql> select * from keberangkatan;


+--------+----------------+-------------------+
| NoLoko | Jam_Kedatangan | Jam_Keberangkatan |
+--------+----------------+-------------------+
| 552811 | 21:00:00 | 21:10:00 |
| 756101 | 10:15:00 | 10:30:00 |
| 156182 | 20:00:00 | 20:10:00 |
| 551561 | 17:00:00 | 17:20:00 |
| 890020 | 07:25:00 | 07:40:00 |
+--------+----------------+-------------------+
5 rows in set (0.00 sec)
LAPORAN PRAKTIKUM

PERTEMUAN KE V

5.1. Tujuan Praktikum


1. Mahasiswa mengerti dan mampu menggunakan fasilitas bantuan (help).
2. Mahasiswa mengerti cara penggunaan NOTEPAD sebagai editor penulisan instruksi-
instruksi SQL.
3. Mahasiswa mampu membuat database dan tabel, serta mengisi data dalam tabel
dengan editor NOTEPAD.

5.2. Dasar Teori


Untuk membantu para pengguna baru maupun lama, MySQL menyediakan beberapa
fasilitas bantuan yang berguna untuk mendokumentasikan atau memanipulasi server. Fasilitas
bantuan ini dapat diakses dengan instruksi \h atau \? pada prompt mysql. Berikut instruksi
selengkapnya :

mysql> \h atau mysql> \?

Setelah melakukan instruksi help pada prompt mysql, maka akan ditampilkan
perintah-perintah yang berhubungan dengan peerjaan anda selanjutnya, termasuk saat
membuat program SQL dengan editor NOTEPAD, dimana program tersebut disimpan di luar
server MySQL, misal di drive D: , atau folder yang lainnya dalam drive C: . Pengaksesan
program SQL yang berekstensi .sql yang disimpan di luar folder mysql, dapat diakses dengan
instruksi \. (Karakter ini dapat dilihat fungsinya dengan bantuan fasilitas help).
Pembuatan instruksi-instruksi SQL, tidak harus diketik pada prompt mysql>, tetapi
dapat dilakukan dengan media NOTEPAD.
Namun yang perlu anda perhatikan adalah saat proses penyimpanan file pada media
NOTEPAD ini. Cara penyimpanan file adalah dengan menekan menu FILE, kemudian pilih
sub menu SAVE, maka akan muncul window Save As. Pada window ini perhatikan pada
Filename, dimana nama file harus diakhiri dengan ekstensi .sql. Pada window ini yang harus
diperhatikan juga adalah Save As Type, dimana harus dipilih All Files (*.*). Jangan lupa
untuk menyimpan file pada drive atau folder yang telah anda tentukan.

Setelah melakukan penyimpanan dengan editor NOTEPAD, kemudian aktifkan


prompt mysql, dan tulislah instruksi berikut :
mysql> \. C:\my documents\kampus.sql
terlihat pada gambar di ata file kampus.sql disimpan di folder c:\my documents.

5.3. Langkah-Langkah Praktikum


1. Mahasiswa mengamati apakah daemon MySQL telah aktif atau belum. Jika belum
aktif, maka mahasiswa mengaktifkan terlebih dahulu.
2. Mahasiswa menampilkan prompt MySQL, yang berguna untuk menuliskan program
dalam bahasa SQL.
3. Mahasiswa mengikuti semua instruksi pada bagian 5.4. dalam praktikum V ini.
5.4. Program-Program MySQL
Dengan menggunakan editor NOTEPAD, buatlah program sql dari instruksi berikut :
1. Hapus datase test dan buatlah database dengan nama test dengan tabel-tabelnya Berita,
Pustaka dan HonorBuku.

File di atas disimpan dengan nama latihan.sql di drive C:\, kemudian di prompt mysql
tulis instruksi berikut ini :
mysql> \. c:\latihan.sql atau
mysql>source c:\latihan.sql

instruksi di atas menghasilkan seperti berikut :


Query OK, 6 rows affected (0.00 sec)
Query OK, 1 row affected (0.00 sec)
Database changed
Query OK, 0 rows affected (0.00 sec)
+--------------+---------------------------------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+---------------------------------------------+------+-----+---------+----------------+
| No | smallint(4) | | PRI | NULL | auto_increment |
| Tanggal | date | YES | | NULL | |
| Isi_Berita | longtext | YES | | NULL | |
| Jenis_Berita | enum('Politik','Sport','Ekonomi','Hiburan') | YES | | NULL | |
+--------------+---------------------------------------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)
Query OK, 0 rows affected (0.01 sec)

+-----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| No_Induk | smallint(5) | | PRI | 0 | |
| NoTelp | varchar(13) | YES | MUL | NULL | |
| Judul | longtext | YES | | NULL | |
| Pengarang | varchar(25) | YES | | NULL | |
| Penerbit | varchar(25) | YES | | NULL | |
+-----------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

+---------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+-------------+------+-----+---------+----------------+
| No | smallint(4) | | PRI | NULL | auto_increment |
| Pengarang | varchar(25) | YES | | NULL | |
| Judul | longtext | YES | | NULL | |
| Telp | varchar(13) | YES | MUL | NULL | |
| Jumlah | int(10) | YES | | NULL | |
| LisenesiHonor | int(8) | YES | | 1000000 | |
+---------------+-------------+------+-----+---------+----------------+
6 rows in set (0.00 sec)

2. Masukkan data pada tabel-tabel diatas minimal 5 record setiap tabelnya.


File di atas disimpan dengan nama latihan2.sql di drive C:\, kemudian di prompt
mysql tulis instruksi berikut ini :
mysql>source c:\latihan2.sql

instruksi di atas menghasilkan seperti berikut :


Query OK, 5 rows affected (0.00 sec)
Records: 5 Duplicates: 0 Warnings: 0

+----+------------+---------------------------------------------------+--------------+
| No | Tanggal | Isi_Berita | Jenis_Berita |
+----+------------+---------------------------------------------------+--------------+
| 1 | 2008-10-25 | MU vs Celtic 3-0 | Sport |
| 2 | 2008-10-26 | Harga minyak dunia turun | Ekonomi |
| 3 | 2008-10-28 | Artis Wulan Guritno batal jadi caleg | Hiburan |
| 4 | 2008-11-01 | Indonesia juara umum ABG I | Sport |
| 5 | 2008-11-05 | PKS mensyaratkan capres berasal dari kader partai | Politik |
+----+------------+---------------------------------------------------+--------------+
5 rows in set (0.00 sec)

Query OK, 5 rows affected (0.00 sec)


Records: 5 Duplicates: 0 Warnings: 0

+----------+--------------+-------------------+---------------+--------------------+
| No_Induk | NoTelp | Judul | Pengarang | Penerbit |
+----------+--------------+-------------------+---------------+--------------------+
| 10001 | 081712345789 | Perdamaian di NAD | Joko Bodo | Bodo Press |
| 10002 | 081812345789 | Borland delphi | Icuk Sugiarto | Bad Publishers |
| 10003 | 081212345789 | Rahasia Cinta | Dewi Amor | Plagiat Multimedia |
| 10004 | 081312345789 | Belum ada Judul | Wan Abud | Sangrilla |
| 10005 | 081512345789 | Mumet | Mbah Dukun | java publishers |
+----------+--------------+-------------------+---------------+--------------------+
5 rows in set (0.00 sec)

Query OK, 4 rows affected (0.00 sec)


Records: 4 Duplicates: 0 Warnings: 2

+----+---------------+-------------------+--------------+--------+---------------+
| No | Pengarang | Judul | Telp | Jumlah | LisenesiHonor |
+----+---------------+-------------------+--------------+--------+---------------+
| 1 | Joko Bodo | Perdamaian di NAD | 081712345789 | 4| 2000000 |
| 2 | Icuk Sugiarto | Borland delphi | 081812345789 | 2| 1500000 |
| 3 | Dewi Amor | Rahasia Cinta | 081212345789 | 3| 3000000 |
| 4 | Wan Abud | Belum ada Judul | 081312345789 | 1| 1000000 |
+----+---------------+-------------------+--------------+--------+---------------+
4 rows in set (0.00 sec)

Query OK, 1 row affected (0.01 sec)

+----+---------------+-------------------+--------------+--------+---------------+
| No | Pengarang | Judul | Telp | Jumlah | LisenesiHonor |
+----+---------------+-------------------+--------------+--------+---------------+
| 1 | Joko Bodo | Perdamaian di NAD | 081712345789 | 4| 2000000 |
| 2 | Icuk Sugiarto | Borland delphi | 081812345789 | 2| 1500000 |
| 3 | Dewi Amor | Rahasia Cinta | 081212345789 | 3| 3000000 |
| 4 | Wan Abud | Belum ada Judul | 081312345789 | 1| 1000000 |
| 5 | Mbah Dukun | Mumet | 081512345789 | 5| 1000000 |
+----+---------------+-------------------+--------------+--------+---------------+
5 rows in set (0.00 sec)
LAPORAN PRAKTIKUM

PERTEMUAN KE VI

6.1. Tujuan Praktikum


1. Mahasiswa mengerti dan mampu menambah kolom, mengganti nama tabel dan
menghapus data.
2. Mahasiswa juga mampu membuat database, tabel serta memperbaharui (Update) isi
data.

6.2. Dasar Teori


Kadang kala para pembuat database perlu mengubah-ubah tabel baik menambah
kolom, menghapus data atau bahkan mengganti nama tabel, dan tak kalah pentingnya adalah
mempertahankan isi data dalam tabel. Kegiatan mengubah database merupakan suatu hal
yang biasa, dengan tujuan memaksimalkan kinerja database nantinya. Berikut ini adalah
syntax-syntax yang berhubungan dengan kegiatan di atas.
Syntax menambah kolom pada suatu tabel :
mysql>ALTER TABLE nama_tabel ADD nama_field type_data(panjang);
Contoh :
mysql>ALTER TABLE Mhs ADD Nim int(15);
Berikan perintah di bawah ini berfungsi untuk menambahkan suatu kolom dengan peletakan
kolom setelah kolom tertentu.
mysql>ALTER TABLE nama_tabel ADD nama_field type_data(panjang)
>AFTER nama_field;
Berikan perintah di bawah ini berfungsi untuk menambahkan suatu kolom dengan peletakan
kolom pada awal kolom dari suatu tabel.
mysql>ALTER TABLE nama_tabel ADD nama_field type_data(panjang)
>FIRST;
Syntax mengganti nama tabel :
mysql>RENAME TABLE nama_tabel_lama TO nama_tabel_baru;
Syntax menghapus kolom pada suatu tabel
mysql>ALTER TABLE nama_tabel DROP nama_field;
Syntax menghapus data seluruh tabel
mysql>DELETE FROM nama_tabel;
Syntax menghapus kolom pada suatu tabel
mysql>TRUNCATE TABLE nama_tabel;

Syntax menghapus kolom pada suatu tabel


mysql>DELETE FROM nama_tabel WHERE kondisi;
Syntax menghapus kolom pada suatu tabel
mysql>UPDATE nama_tabel SET
>field_1 = ‘data_baru’,
>field_2 = ‘data_baru’,
>....
>field_n = ‘data_baru’;
Syntax menghapus kolom pada suatu tabel
mysql>UPDATE nama_tabel SET
>field_1 = ‘data_baru’,
>field_2 = ‘data_baru’,
>....
>field_n = ‘data_baru’;
>WHERE kondisi;

6.3. Langkah-Langkah Praktikum


1. Mahasiswa mengamati apakah daemon MySQL telah aktif atau belum. Jika belum
aktif, maka mahasiswa mengaktifkan terlebih dahulu.
2. Mahasiswa menampilkan prompt MySQL, yang berguna untuk menuliskan program
dalam bahasa SQL.
3. Mahasiswa mengikuti semua instruksi pada bagian 6.4. dalam praktikum VI ini.

6.4. Program-Program MySQL


1. Buatlah tabel dengan nama Mhs, dengan jumlah field 4, dimana nama fieldnya
berurutan dari kiri ke kanan yaitu Nama, Alamat, JenisKelamin dan Telp.
mysql> create table Mhs(
-> Nama varchar(20),
-> Alamat varchar(35),
-> JenisKelamin enum('Pria','Wanita'),
-> Telp char(13) unique);
Query OK, 0 rows affected (0.35 sec)

mysql> desc Mhs;


+--------------+-----------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-----------------------+------+-----+---------+-------+
| Nama | varchar(20) | YES | | NULL | |
| Alamat | varchar(35) | YES | | NULL | |
| JenisKelamin | enum('Pria','Wanita') | YES | | NULL | |
| Telp | varchar(13) | YES | MUL | NULL | |
+--------------+-----------------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

2. Isilah tabel di atas dengan 5 record


mysql> insert into Mhs values
-> ('Bambang','Jakarta Pusat','Pria','021-123456'),
-> ('Diah','Jakarta Timur','Wanita','021-123457'),
-> ('Andini','Jakarta Utara','Wanita','021-123458'),
-> ('Sheila','Bekasi','Wanita','021-123450'),
-> ('Dono','Tambun','Pria','021-123422');
Query OK, 5 rows affected (2.16 sec)
Records: 5 Duplicates: 0 Warnings: 0

3. Lihatlah isi tabel tersebut, apakah benar-benar sudah terisi 5 record


mysql> select * from Mhs;
+---------+---------------+--------------+------------+
| Nama | Alamat | JenisKelamin | Telp |
+---------+---------------+--------------+------------+
| Bambang | Jakarta Pusat | Pria | 021-123456 |
| Diah | Jakarta Timur | Wanita | 021-123457 |
| Andini | Jakarta Utara | Wanita | 021-123458 |
| Sheila | Bekasi | Wanita | 021-123450 |
| Dono | Tambun | Pria | 021-123422 |
+---------+---------------+--------------+------------+
5 rows in set (0.00 sec)

4. Tambahkan satu buah field dengan nama Keterangan pada akhir kolom

mysql> alter table Mhs add Keterangan longtext;


Query OK, 5 rows affected (0.00 sec)
Records: 5 Duplicates: 0 Warnings: 0

5. Tambahkan satu buah field dengan nama NIM pada awal kolom

mysql> alter table Mhs add NIM int(7) first;


Query OK, 5 rows affected (0.01 sec)
Records: 5 Duplicates: 0 Warnings: 0

6. Tambahkan satu buah field dengan nama Nilai setelah field Nama

mysql> alter table Mhs add Nilai enum('A','B','C','D','E')


-> after Nama;
Query OK, 5 rows affected (0.01 sec)
Records: 5 Duplicates: 0 Warnings: 0

7. Lihatlah isi tabel tersebut, apakah penyisipan / penambahan field benar-benar sudah
terjadi sesuai keinginan.
mysql> desc Mhs;
+--------------+---------------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+---------------------------+------+-----+---------+-------+
| NIM | int(7) | YES | | NULL | |
| Nama | varchar(20) | YES | | NULL | |
| Nilai | enum('A','B','C','D','E') | YES | | NULL | |
| Alamat | varchar(35) | YES | | NULL | |
| JenisKelamin | enum('Pria','Wanita') | YES | | NULL | |
| Telp | varchar(13) | YES | MUL | NULL | |
| Keterangan | longtext | YES | | NULL | |
+--------------+---------------------------+------+-----+---------+-------+
7 rows in set (0.00 sec)

8. Isilah data pada masing-masing field yang baru anda tambahkan


mysql> update Mhs set
-> NIM = 1001001,
-> Nilai = 'A',
-> Keterangan = 'Sangat Baik'
-> where Nama = 'Bambang';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> update Mhs set


-> NIM = 1001002,
-> Nilai = 'A',
-> Keterangan = 'Sangat Baik'
-> where Nama = 'Andini';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> update Mhs set


-> NIM = 1001003,
-> Nilai = 'B',
-> Keterangan = 'Baik'
-> where Nama = 'Sheila';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> update Mhs set


-> NIM = 1001004,
-> Nilai = 'C',
-> Keterangan = 'Cukup'
-> where Nama = 'Diah';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> update Mhs set


-> NIM = 1001005,
-> Nilai = 'D',
-> Keterangan = 'Kurang'
-> where Nama = 'Dono';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

9. Lihatlah isi tabel tersebut, apakah sudah sesuai keinginan

mysql> select * from Mhs;


+---------+---------+-------+---------------+--------------+------------+-------------+
| NIM | Nama | Nilai | Alamat | JenisKelamin | Telp | Keterangan |
+---------+---------+-------+---------------+--------------+------------+-------------+
| 1001001 | Bambang | A | Jakarta Pusat | Pria | 021-123456 | Sangat Baik |
| 1001004 | Diah |C | Jakarta Timur | Wanita | 021-123457 | Cukup |
| 1001002 | Andini | A | Jakarta Utara | Wanita | 021-123458 | Sangat Baik |
| 1001003 | Sheila | B | Bekasi | Wanita | 021-123450 | Baik |
| 1001005 | Dono |D | Tambun | Pria | 021-123422 | Kurang |
+---------+---------+-------+---------------+--------------+------------+-------------+
5 rows in set (0.00 sec)

10. Hapuslah record pada bagian paling bawah tabel


mysql> delete from Mhs
-> where Nama = 'Dono';
Query OK, 1 row affected (0.00 sec)
11. Lihatlah isi tabel tersebut, apakah record paling bawah sudah terhapus

mysql> select * from Mhs;


+---------+---------+-------+---------------+--------------+------------+-------------+
| NIM | Nama | Nilai | Alamat | JenisKelamin | Telp | Keterangan |
+---------+---------+-------+---------------+--------------+------------+-------------+
| 1001001 | Bambang | A | Jakarta Pusat | Pria | 021-123456 | Sangat Baik |
| 1001004 | Diah |C | Jakarta Timur | Wanita | 021-123457 | Cukup |
| 1001002 | Andini | A | Jakarta Utara | Wanita | 021-123458 | Sangat Baik |
| 1001003 | Sheila | B | Bekasi | Wanita | 021-123450 | Baik |
+---------+---------+-------+---------------+--------------+------------+-------------+
4 rows in set (0.00 sec)

12. Hapuslah semua record pada tabel Mhs ini


mysql> delete from Mhs;
Query OK, 0 rows affected (0.00 sec)

13. Lihatlah apakah isi tabel masih ada

mysql> select * from Mhs;


Empty set (0.00 sec)
LAPORAN PRAKTIKUM

PERTEMUAN KE VII

7.1. Tujuan Praktikum


1. Mahasiswa mengerti dan mampu membuat kolom tidak boleh kosong (Not Null),
membuat kolom unik, membuat kolom primer (primary key) dan kolom default.
2. Mahasiswa juga mampu membuat database, tabel serta menciptakan kolom
penambahan otomatis.

7.2. Dasar Teori


Pembahasan berikut cenderung mengarah pada manipulasi kolom / field dalam suatu
tabel. Hal-hal yang dibahas antara lain membuat kolom boleh atau tidak boleh kosong,
membuat kolom unik (unique field), membuat kolom primer (primary key) dan kolom
default. Tidak lupa juga membahas bagaimana menciptakan kolom penambahan otomatis.
Berikut adalah sedikit ulasan dari masing-masing bagian di atas :
Membuat kolom tidak boleh kosong
Suatu kolom sebenarnya memiliki 2 buah kondisi yaitu kolom tersebut boleh kosong
atau tidak boleh kosong saat proses penginputan data. Indikasi untuk kolom boleh
kosong adalah NULL, sedangkan tidak boleh kosong adalah NOT NULL. Indikasi ini
diletakkan saat pendefinisian suatu tabel, yaitu diletakkan di belakang pendefinisian
masing-masing fieldnya.
Membuat kolom unik
Kolom unik diarakan pada penciptaan suatu tabel di mana dua kolom atau lebih pada
suatu record tidak boleh ada data kembar. Kolom unik memiliki prinsip yang serupa
dengan kolom primer (primary key). Pada kolom unik, kolom harus didefinisikan
dengan NOT NULL. Untuk membentuk kolom unik, digunakan kata “Unique” dan
dibeikan pada saat pendefinisan suatu tabel.
Syntax :
mysql>Create Table nama_tabel(
>kolom_1 tipe_data (panjang) NOT NULL,
>kolom_1 tipe_data (panjang),
>…… ……. (…….),
>Unique (kolom_1);
Membuat kolom kunci primer (primary key)
Kolom kunci primer dimanfaatkan untuk mencegah suatu kolom terdapat data
kembar. Perbedaan antara kolom kunci primer dengan kolom unik adalah bahwa pada
kolom kunci primer hanya didefinisikan untuk satu kolom saja, sedangkan kolom unik
jumlah kolom yang didefinisikan lebih dari satu kolom. Syarat utama untuk
menciptakan kolom kunci primer adalah kolom tersebut tidak boleh kosong.
Syntax :
mysql>Create Table nama_tabel(
>kolom_1 tipe_data (panjang) NOT NULL,
>kolom_1 tipe_data (panjang),
>…… ……. (…….),
>Primary key (kolom_1);

Menciptakan kolom penambahan secara otomatis


Kolom yang diciptakan utnuk penambahan secara otomatis harus bertipe data angka
atau integer (termasuk Long Int, Tiny Int). Kata kunci yang dipakai untuk konsep ini
adalah AUTO_INCREMENT. Syarat utama yang harus dipenuhi untuk penciptaan
kolom ini adalah kolom bertipe Integer dan merupakan kolom kunci utama bukannya
kolom unik.
mysql>Create Table nama_tabel(
>kolom_1 tipe_data (panjang) NOT NULL AUTO_INCREMENT,
>kolom_1 tipe_data (panjang),
>…… ……. (…….),
>Primary key (kolom_1);

Menambah isi default


Proses ini merupakan metode pendeklarasian kolom dengan nilai yang sudah ada jika
kolom tersebut tidak diberi masukkan.

Mysql>ALTER TABLE nama_tabel


>ALTER nama_kolom SET DEFAULT ‘Isi Data’;

Contoh :
Jika suatu tabel bernama DATA, dan pada kolom SEX diset dengan kata ‘Pria’
sebagai defaultnya maka perintahnya adalah :
Mysql>ALTER TABLE DATA
>ALTER SEX SET DEFAULT ‘Pria’;

7.3. Langkah-Langkah Praktikum


1. Mahasiswa mengamati apakah daemon MySQL telah aktif atau belum. Jika belum
aktif, maka mahasiswa mengaktifkan terlebih dahulu.
2. Mahasiswa menampilkan prompt MySQL, yang berguna untuk menuliskan program
dalam bahasa SQL.
3. Mahasiswa mengikuti semua instruksi pada bagian 7.4. dalam praktikum VII ini.

7.4. Program-Program MySQL


1. Buatlah database dengan nama bebas.

mysql> create database perusahaan;


Query OK, 1 row affected (0.34 sec)

2. Buatlah 2 buah tabel, masing-masing tabel berisi 5 kolom. Satu tabel satu kolomnya
harus anda tentukan sebagai primary key serta merupakan kolom yang isinya dapat
bertambah secara otomatis, sedangkan tabel yang lainnya 2 kolomnya anda tentukan
sebagai kolom unik.

mysql> create table karyawan(


-> ID smallint(5) not null primary key auto_increment,
-> Nama varchar(25) not null,
-> Inisial varchar(4) unique,
-> Alamat varchar(20),
-> Jabatan varchar(15));
Query OK, 0 rows affected (0.34 sec)

mysql> desc karyawan;


+---------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+----------------+
| ID | smallint(5) | | PRI | NULL | auto_increment |
| Nama | varchar(25) | | | | |
| Inisial | varchar(4) | YES | MUL | NULL | |
| Alamat | varchar(20) | YES | | NULL | |
| Jabatan | varchar(15) | YES | | NULL | |
+---------+-------------+------+-----+---------+----------------+
5 rows in set (0.03 sec)

mysql> create table bagian(


-> KodeBag char(1) not null,
-> NamaBag char(15) unique,
-> Telp char(13) unique,
-> Ruang char(2),
-> Keterangan text);
Query OK, 0 rows affected (0.00 sec)

mysql> desc bagian;


+------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| KodeBag | char(1) | | | | |
| NamaBag | varchar(15) | | MUL | NULL | |
| Telp | varchar(13) | YES | MUL | NULL | |
| Ruang | char(2) | YES | | NULL | |
| Keterangan | text | YES | | NULL | |
+------------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

3. Isilah minimal 5 record pada masing-masing tabel di atas.

mysql> insert into karyawan values


-> ('','Soraya','SRY','Bekasi','Karyawan'),
-> ('','Bambang','BAM','Tambun','Manager'),
-> ('','Djoko','DJOK','Jakarta','Supervisor'),
-> ('','Indah','IN','Jakarta','Karyawan'),
-> ('','Tuti','TUT','Jakarta','Karyawan');
Query OK, 5 rows affected (0.33 sec)
Records: 5 Duplicates: 0 Warnings: 5

mysql> insert into bagian values


-> ('1','Produksi','021-12345','1A','Ada'),
-> ('2','Pemasaran','021-12346','2A','Ada'),
-> ('3','SDM','021-12347','2B','Ada'),
-> ('4','Umum','021-12348','3B','Tidak Ada'),
-> ('5','Promosi','021-12340','1C','Tidak Ada');
Query OK, 5 rows affected (0.01 sec)
Records: 5 Duplicates: 0 Warnings: 0

4. Lihatlah isi masing-masing tabel tersebut.


mysql> select * from karyawan;
+----+---------+---------+---------+------------+
| ID | Nama | Inisial | Alamat | Jabatan |
+----+---------+---------+---------+------------+
| 1 | Soraya | SRY | Bekasi | Karyawan |
| 2 | Bambang | BAM | Tambun | Manager |
| 3 | Djoko | DJOK | Jakarta | Supervisor |
| 4 | Indah | IN | Jakarta | Karyawan |
| 5 | Tuti | TUT | Jakarta | Karyawan |
+----+---------+---------+---------+------------+
5 rows in set (0.49 sec)

mysql> select * from bagian;


+---------+-----------+-----------+-------+------------+
| KodeBag | NamaBag | Telp | Ruang | Keterangan |
+---------+-----------+-----------+-------+------------+
|1 | Produksi | 021-12345 | 1A | Ada |
|2 | Pemasaran | 021-12346 | 2A | Ada |
|3 | SDM | 021-12347 | 2B | Ada |
|4 | Umum | 021-12348 | 3B | Tidak Ada |
|5 | Promosi | 021-12340 | 1C | Tidak Ada |
+---------+-----------+-----------+-------+------------+
5 rows in set (0.00 sec)

5. Tambahkan satu buah kolom pada kedua tabel di atas, dan anda tentukan sebagai
kolom yang berisi default. Kemudian isilah kolom tersebut.
mysql> alter table karyawan add JKel enum('Pria','Wanita') default 'Pria';
Query OK, 5 rows affected (0.01 sec)
Records: 5 Duplicates: 0 Warnings: 0

mysql> insert into karyawan values


-> ('','Dini','DIN','Jakarta','Karyawan','Wanita');
Query OK, 1 row affected (0.00 sec)
mysql> alter table bagian add Gaji int(10) default 1000000;
Query OK, 5 rows affected (0.01 sec)
Records: 5 Duplicates: 0 Warnings: 0

mysql> insert into bagian values


-> ('6','Rahasia','021-12377','3D','Tidak Ada',2500000);
Query OK, 1 row affected (0.00 sec)

6. Lihatlah isi masing-masing tabel setelah penambahan kolom


mysql> select * from bagian;
+---------+-----------+-----------+-------+------------+---------+
| KodeBag | NamaBag | Telp | Ruang | Keterangan | Gaji |
+---------+-----------+-----------+-------+------------+---------+
|1 | Produksi | 021-12345 | 1A | Ada | 1000000 |
|2 | Pemasaran | 021-12346 | 2A | Ada | 1000000 |
|3 | SDM | 021-12347 | 2B | Ada | 1000000 |
|4 | Umum | 021-12348 | 3B | Tidak Ada | 1000000 |
|5 | Promosi | 021-12340 | 1C | Tidak Ada | 1000000 |
|6 | Rahasia | 021-12377 | 3D | Tidak Ada | 2500000 |
+---------+-----------+-----------+-------+------------+---------+
6 rows in set (0.00 sec)

mysql> select * from karyawan;


+----+---------+---------+---------+------------+--------+
| ID | Nama | Inisial | Alamat | Jabatan | JKel |
+----+---------+---------+---------+------------+--------+
| 1 | Soraya | SRY | Bekasi | Karyawan | Pria |
| 2 | Bambang | BAM | Tambun | Manager | Pria |
| 3 | Djoko | DJOK | Jakarta | Supervisor | Pria |
| 4 | Indah | IN | Jakarta | Karyawan | Pria |
| 5 | Tuti | TUT | Jakarta | Karyawan | Pria |
| 6 | Dini | DIN | Jakarta | Karyawan | Wanita |
+----+---------+---------+---------+------------+--------+
6 rows in set (0.00 sec)
LAPORAN PRAKTIKUM

PERTEMUAN KE VIII

8.1. Tujuan Praktikum


1. Mahasiswa mengerti dan mampu membuat database dan tabel, serta mengetahui
fungsi-fungsi matematika.
2. Mahasiswa juga mampu mengimplementasikan fungsi matematika untuk
memanipulasi suatu tabel, misal fungsi COUNT, SUM, AVG, MAX DAN MIN.

8.2. Dasar Teori


Pada pertemuan ke 1 telah dibahas mengenai fungsi matematika. Pada pertemuan ke
VII kali ini, ingin dicapai bagaimana menghubungkan fungsi matematika dengan tabel-tabel
yang ada di dalam suatu database.
Pada prinsipnya hubungan fungsi matematika yang terdiri dari fungsi COUNT, SUM,
AVG, MAX dan MIN ini berguna untuk memanipulasi suatu tabel yang ada di dalam suatu
database.
Berikut adalah syntax-syntax yang akan digunakan dalam praktikum kali ini :
Fungsi COUNT
Syntax :
Mysql> SELECT COUNT (*) FROM nama_tabel;
Fungsi SUM
Syntax :
Mysql>SELECT SUM (nama_kolom) FROM nama_tabel;
Fungsi AVG
Syntax :
Mysql>SELECT AVG (nama_kolom) FROM nama_tabel;
Fungsi MAX
Syntax :
Mysql>SELECT MAX (nama_kolom) FROM nama_tabel;
Fungsi MIN
Syntax :
Mysql>SELECT MIN (nama_kolom) FROM nama_tabel;
8.3. Langkah-Langkah Praktikum
1. Mahasiswa mengamati apakah daemon MySQL telah aktif atau belum. Jika belum
aktif, maka mahasiswa mengaktifkan terlebih dahulu.
2. Mahasiswa menampilkan prompt MySQL, yang berguna untuk menuliskan program
dalam bahasa SQL.
3. Mahasiswa mengikuti semua instruksi pada bagian 8.4. dalam praktikum VIII ini.

8.4. Program-Program MySQL


1. Buatlah database dengan nama bebas sesuai keinginan anda

mysql> create database Nilai_Kuliah;


Query OK, 1 row affected (0.34 sec)

2. Buatlah tabel berikut di bawah ini dengan nama tabel “Nilai”.

Nama Kelas Fisika Mysql Algo Jarkom Kapita SistOp RPL


Sapto B 60 50 60 50 60 50 79
Pranto B 50 70 50 70 50 70 54
Dede B 80 90 80 90 80 90 75
Lukman C 30 20 10 15 56 59 60
Gusti C 40 70 40 70 40 70 40
Liem E 60 30 60 30 60 30 60
Witardi A 40 80 40 80 40 80 40

mysql>create table nilai(


->Nama varchar(10),
->Kelas char(1),
->Fisika smallint(3),
->Mysql smallint(3),
->Algo smallint(3),
->Jarkom smallint(3),
->Kapita smallint(3),
->SistOp smallint(3),
->RPL smallint(3));
Query OK, 0 rows affected (0.34 sec)
mysql>desc nilai;
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| Nama | varchar(10) | YES | | NULL | |
| Kelas | char(1) | YES | | NULL | |
| Fisika | smallint(3) | YES | | NULL | |
| Mysql | smallint(3) | YES | | NULL | |
| Algo | smallint(3) | YES | | NULL | |
| Jarkom | smallint(3) | YES | | NULL | |
| Kapita | smallint(3) | YES | | NULL | |
| SistOp | smallint(3) | YES | | NULL | |
| RPL | smallint(3) | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
9 rows in set (0.01 sec)

mysql>insert into nilai values


->('Sapto','B',60,50,60,50,60,50,79),
->('Pranto','B',50,70,50,70,50,70,54),
->('Dede','B',80,90,80,90,80,90,75),
->('Lukman','C',30,20,10,15,56,59,60),
->('Gusti','C',40,70,40,70,40,70,40),
->('Liem','E',60,30,60,30,60,30,60),
->('Witardi','A',40,80,40,80,40,80,40);

mysql>select * from nilai;


+---------+-------+--------+-------+------+--------+--------+--------+------+
| Nama | Kelas | Fisika | Mysql | Algo | Jarkom | Kapita | SistOp | RPL |
+---------+-------+--------+-------+------+--------+--------+--------+------+
| Sapto | B | 60 | 50 | 60 | 50 | 60 | 50 | 79 |
| Pranto | B | 50 | 70 | 50 | 70 | 50 | 70 | 54 |
| Dede |B | 80 | 90 | 80 | 90 | 80 | 90 | 75 |
| Lukman | C | 30 | 20 | 10 | 15 | 56 | 59 | 60 |
| Gusti | C | 40 | 70 | 40 | 70 | 40 | 70 | 40 |
| Liem |E | 60 | 30 | 60 | 30 | 60 | 30 | 60 |
| Witardi | A | 40 | 80 | 40 | 80 | 40 | 80 | 40 |
+---------+-------+--------+-------+------+--------+--------+--------+------+
7 rows in set (0.00 sec)
3. Buatlah rumus untuk mencari jumlah data pada tabel Nilai dan berapa
jawabannya.
mysql>select count(*) from nilai;
+----------+
| count(*) |
+----------+
| 7|
+----------+
1 row in set (0.00 sec)

4. Buatlah rumus untuk mencari jumlah nilai pada masing-masing kolom.


mysql>select sum(Fisika),sum(Mysql),sum(Algo),sum(Jarkom),
->sum(Kapita),sum(SistOp),sum(RPL)
->from nilai;
+-------------+------------+-----------+-------------+-------------+-------------+----------+
| sum(Fisika) | sum(Mysql) | sum(Algo) | sum(Jarkom) | sum(Kapita) | sum(SistOp) | sum(RPL) |
+-------------+------------+-----------+-------------+-------------+-------------+----------+
| 360 | 410 | 340 | 405 | 386 | 449 | 408 |
+-------------+------------+-----------+-------------+-------------+-------------+----------+
1 row in set (0.00 sec)

5. Buatlah rumus untuk mencari jumlah nilai pada kelas “B” pada kolom Algo
mysql>select sum(Algo) from nilai
->where Kelas = 'B';
+-----------+
| sum(Algo) |
+-----------+
| 190 |
+-----------+
1 row in set (0.00 sec)

6. Buatlah rumus untuk mencari rata-rata nilai pada masing-masing kolom.


mysql>select avg(Fisika),avg(Mysql),avg(Algo),avg(Jarkom),
->avg(Kapita),avg(SistOp),avg(RPL)
->from nilai;
+-------------+------------+-----------+-------------+-------------+-------------+----------+
| avg(Fisika) | avg(Mysql) | avg(Algo) | avg(Jarkom) | avg(Kapita) | avg(SistOp) | avg(RPL) |
+-------------+------------+-----------+-------------+-------------+-------------+----------+
| 51.4286 | 58.5714 | 48.5714 | 57.8571 | 55.1429 | 64.1429 | 58.2857 |
+-------------+------------+-----------+-------------+-------------+-------------+----------+
1 row in set (0.00 sec)

7. Buatlah rumus untuk mencari rata-rata nilai pada kolom Algo di kelas “B”.
mysql>select avg(Algo) from nilai
->where Kelas = 'B';

+-----------+
| avg(Algo) |
+-----------+
| 63.3333 |
+-----------+
1 row in set (0.00 sec)

8. Buatlah rumus untuk mencari nilai maksimum pada masing-masing kolom.


mysql>select max(Fisika),max(Mysql),max(Algo),max(Jarkom),
->max(Kapita),max(SistOp),max(RPL)
->from nilai;

+-------------+------------+-----------+-------------+-------------+-------------+----------+
| max(Fisika) | max(Mysql) | max(Algo) | max(Jarkom) | max(Kapita) | max(SistOp) | max(RPL) |
+-------------+------------+-----------+-------------+-------------+-------------+----------+
| 80 | 90 | 80 | 90 | 80 | 90 | 79 |
+-------------+------------+-----------+-------------+-------------+-------------+----------+
1 row in set (0.00 sec)

9. Buatlah rumus untuk mencari nilai maksimum pada kolom Algo di kelas “B”.

mysql>select max(Algo) from nilai


->where Kelas = 'B';

+-----------+
| max(Algo) |
+-----------+
| 80 |
+-----------+
1 row in set (0.00 sec)

10. Buatlah rumus untuk mencari nilai minimum pada masing-masing kolom.

mysql>select min(Fisika), min(Mysql), min(Algo), min(Jarkom),


-> min(Kapita), min(SistOp), min(RPL)
->from nilai;

+-------------+------------+-----------+-------------+-------------+-------------+----------+
| min(Fisika) | min(Mysql) | min(Algo) | min(Jarkom) | min(Kapita) | min(SistOp) | min(RPL) |
+-------------+------------+-----------+-------------+-------------+-------------+----------+
| 30 | 20 | 10 | 15 | 40 | 30 | 40 |
+-------------+------------+-----------+-------------+-------------+-------------+----------+
1 row in set (0.00 sec)

11. Buatlah rumus untuk mencari nilai minimum pada kolom Algo di kelas “B”.

mysql>select max(Algo) from nilai


->where Kelas = 'B';

+-----------+
| min(Algo) |
+-----------+
| 50 |
+-----------+
1 row in set (0.00 sec)
LAPORAN PRAKTIKUM

PERTEMUAN KE IX

9.1. Tujuan Praktikum


1. Mahasiswa mengerti dan mampu membuat database dan tabel, serta mengetahui
tentang klausa WHERE dan implementasinya.
2. Mahasiswa juga mampu menerapkan operator pembanding (=, !=, >, >=, <, <=) dan
operator logika (NOT, AND, OR, XOR) di dalam klausa WHERE.

9.2. Dasar Teori


Klausa adalah sebuah pernyataan yang dapat menampilkan data dari sebuah tabel atau
lebih dengan hasil data yang tersaing atau terseleksi.
Ada beberapa klausa SQL yang didukung MySQL diantaranya WHERE, GROUP
BY, LIKE, WITH. Namun di dalam praktikum kali ini dikonsentrasikan pada penggunaan
klausa WHERE. Klausa WHERE dapat diartikan dimana.
Berikut adalah syntax yang menggunakan klausa WHERE :
Syntax :
Mysql>SELECT * From nama_tabel WHERE kondisi;

Pada praktikum kali ini juga akan dibahas mengenai penggunaan operator pembanding dan
operator logika di dalam klausa WHERE.

Penggunaan Operator Pembanding dalam klausa WHERE


Ada beberapa operator pembanding diantaranya : =, !=,< >, >, >=, <, <=. Penggunaan
operator ini di dalam klausa where terlihat pada syntax berikut :

Mysql>SELECT * From nama_tabel WHERE kondisi_berisi_operator_pembanding;

Penggunaan Operator Logika dalam klausa WHERE


Ada beberapa operator logika diantaranya : NOT atau !, AND atau &&, OR atau || dan XOR.
Penggunaan operator ini di dalam klausa WHERE terlihat pada syntax berikut :
Syntax NOT dalam klausa WHERE :
Mysql>SELECT * From nama_tabel WHERE NOT (pembanding);
Syntax AND dalam klausa WHERE :
Mysql>SELECT * From nama_tabel WHERE NOT (pembanding AND pembanding);
Syntax OR dalam klausa WHERE :
Mysql>SELECT * From nama_tabel WHERE NOT (pembanding OR pembanding);
Syntax XOR dalam klausa WHERE :
Mysql>SELECT * From nama_tabel WHERE NOT (pembanding XOR pembanding);

9.3. Langkah-Langkah Praktikum


1. Mahasiswa mengamati apakah daemon MySQL telah aktif atau belum. Jika belum
aktif, maka mahasiswa mengaktifkan terlebih dahulu.
2. Mahasiswa menampilkan prompt MySQL, yang berguna untuk menuliskan program
dalam bahasa SQL.
3. Mahasiswa mengikuti semua instruksi pada bagian 9.4. dalam praktikum IX ini.

9.4. Program-Program MySQL


1. Buatlah database dengan nama bebas sesuai keinginan anda

mysql> create database bebas;


Query OK, 1 row affected (0.34 sec)

2. Buatlah tabel berikut di bawah ini dengan nama tabel “Data_diri”.


Nama Gol_dara sex tinggi berat
No. h
1 Ariani Widiastuti A W 160 45
2 Warsiti A W 158 50
3 Darti Widayati AB W 165 55
4 Bambang Yuwono B P 180 80
5 Haris Wibowo O P 170 67
6 Wargono B P 155 60

mysql>create table Data_Diri(


->No int not null primary key auto_increment,
->Nama varchar(25),
->Gol_Darah enum('A','B','AB','O'),
->Sex enum('W','P'),
->Tinggi smallint(3),
->Berat smallint(3));
mysql>desc Data_Diri;
+-----------+------------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+------------------------+------+-----+---------+----------------+
| No | int | NO | PRI | NULL | auto_increment |
| Nama | varchar(25) | YES | | NULL | |
| Gol_Darah | enum('A','B','AB','O') | YES | | NULL | |
| Sex | enum('W','P') | YES | | NULL | |
| Tinggi | smallint(3) | YES | | NULL | |
| Berat | smallint(3) | YES | | NULL | |
+-----------+------------------------+------+-----+---------+----------------+
6 rows in set (0.07 sec)

mysql>insert into Data_Diri values


->('','Ariani Widiastuti','A','W',160,45),
->('','Warsiti','A','W',158,50),
->('','Darti Widayati','AB','W',165,55),
->('','Bambang Yuwono','B','P',180,80),
->('','Haris Wibowo','O','P',170,67),
->('','Wargono','B','P',155,60);
Query OK, 6 rows affected, 6 warnings (0.02 sec)
Records: 6 Duplicates: 0 Warnings: 0

mysql>select * from Data_Diri;


+----+-------------------+-----------+------+--------+-------+
| No | Nama | Gol_Darah | Sex | Tinggi | Berat |
+----+-------------------+-----------+------+--------+-------+
| 1 | Ariani Widiastuti | A |W | 160 | 45 |
| 2 | Warsiti |A |W | 158 | 50 |
| 3 | Darti Widayati | AB |W | 165 | 55 |
| 4 | Bambang Yuwono |B |P | 180 | 80 |
| 5 | Haris Wibowo |O |P | 170 | 67 |
| 6 | Wargono |B |P | 155 | 60 |
+----+-------------------+-----------+------+--------+-------+
6 rows in set (0.00 sec)

3. Buatlah rumus untuk mencari Nama yang bergolongan darah sama dengan A.

mysql>select * from Data_Diri


->where Gol_Darah = 'A';

+----+-------------------+-----------+------+--------+-------+
| No | Nama | Gol_Darah | Sex | Tinggi | Berat |
+----+-------------------+-----------+------+--------+-------+
| 1 | Ariani Widiastuti | A |W | 160 | 45 |
| 2 | Warsiti |A |W | 158 | 50 |
+----+-------------------+-----------+------+--------+-------+
2 rows in set (0.00 sec)

4. Buatlah rumus untuk mencari Nama yang tidak sama dengan bergolongan
darah O.

mysql>select * from Data_Diri


->where not Gol_Darah = 'O';

+----+-------------------+-----------+------+--------+-------+
| No | Nama | Gol_Darah | Sex | Tinggi | Berat |
+----+-------------------+-----------+------+--------+-------+
| 1 | Ariani Widiastuti | A |W | 160 | 45 |
| 2 | Warsiti |A |W | 158 | 50 |
| 3 | Darti Widayati | AB |W | 165 | 55 |
| 4 | Bambang Yuwono |B |P | 180 | 80 |
| 6 | Wargono |B |P | 155 | 60 |
+----+-------------------+-----------+------+--------+-------+
5 rows in set (0.00 sec)

5. Buatlah rumus untuk mencari Nama yang tingginya lebih dari 160.

mysql>select * from Data_Diri


->where Tinggi > 160;

+----+----------------+-----------+------+--------+-------+
| No | Nama | Gol_Darah | Sex | Tinggi | Berat |
+----+----------------+-----------+------+--------+-------+
| 3 | Darti Widayati | AB |W | 165 | 55 |
| 4 | Bambang Yuwono | B |P | 180 | 80 |
| 5 | Haris Wibowo | O |P | 170 | 67 |
+----+----------------+-----------+------+--------+-------+
3 rows in set (0.00 sec)

6. Buatlah rumus untuk mencari Nama yang tingginya kurang atau sama dengan 160.

mysql>select * from Data_Diri


->where Tinggi <= 160;

+----+-------------------+-----------+------+--------+-------+
| No | Nama | Gol_Darah | Sex | Tinggi | Berat |
+----+-------------------+-----------+------+--------+-------+
| 1 | Ariani Widiastuti | A |W | 160 | 45 |
| 2 | Warsiti |A |W | 158 | 50 |
| 6 | Wargono |B |P | 155 | 60 |
+----+-------------------+-----------+------+--------+-------+
3 rows in set (0.00 sec)

7. Buatlah rumus untuk mencari Nama yang tingginya lebih atau sama dengan 170.

mysql>select * from Data_Diri


->where Tinggi >= 170;

+----+----------------+-----------+------+--------+-------+
| No | Nama | Gol_Darah | Sex | Tinggi | Berat |
+----+----------------+-----------+------+--------+-------+
| 4 | Bambang Yuwono | B |P | 180 | 80 |
| 5 | Haris Wibowo | O |P | 170 | 67 |
+----+----------------+-----------+------+--------+-------+
2 rows in set (0.00 sec)

8. Buatlah rumus untuk mencari Nama yang bukan pria.

mysql>select * from Data_Diri


->where not sex =’P’;

+----+-------------------+-----------+------+--------+-------+
| No | Nama | Gol_Darah | Sex | Tinggi | Berat |
+----+-------------------+-----------+------+--------+-------+
| 1 | Ariani Widiastuti | A |W | 160 | 45 |
| 2 | Warsiti |A |W | 158 | 50 |
| 3 | Darti Widayati | AB |W | 165 | 55 |
+----+-------------------+-----------+------+--------+-------+
3 rows in set (0.00 sec)

9. Buatlah rumus untuk mencari Nama yang bergolongan darah B dan bersex pria.
mysql>select * from Data_Diri
->where Gol_Darah = 'B' and sex = 'P';

+----+----------------+-----------+------+--------+-------+
| No | Nama | Gol_Darah | Sex | Tinggi | Berat |
+----+----------------+-----------+------+--------+-------+
| 4 | Bambang Yuwono | B |P | 180 | 80 |
| 6 | Wargono |B |P | 155 | 60 |
+----+----------------+-----------+------+--------+-------+
2 rows in set (0.00 sec)

10. Buatlah rumus untuk mencari Nama yang bergolongan darah A dan tingginya
lebih dari 170.
mysql>select * from Data_Diri
->where Gol_Darah = 'A' and Tinggi > 170;

Empty set (0.00 sec)

11. Buatlah rumus untuk mencari Nama yang bersex wanita dan beratnya lebih kecil
dari 50.

mysql>select * from Data_Diri


->where sex = 'W' and Berat < 50;

+----+-------------------+-----------+------+--------+-------+
| No | Nama | Gol_Darah | Sex | Tinggi | Berat |
+----+-------------------+-----------+------+--------+-------+
| 1 | Ariani Widiastuti | A |W | 160 | 45 |
+----+-------------------+-----------+------+--------+-------+
1 row in set (0.00 sec)

12. Buatlah rumus untuk mencari Nama yang tingginya 160 atau beratnya lebih kecil
dari 70.
mysql>select * from Data_Diri
->where Tinggi = 160 or Berat < 70;

+----+-------------------+-----------+------+--------+-------+
| No | Nama | Gol_Darah | Sex | Tinggi | Berat |
+----+-------------------+-----------+------+--------+-------+
| 1 | Ariani Widiastuti | A |W | 160 | 45 |
| 2 | Warsiti |A |W | 158 | 50 |
| 3 | Darti Widayati | AB |W | 165 | 55 |
| 5 | Haris Wibowo |O |P | 170 | 67 |
| 6 | Wargono |B |P | 155 | 60 |
+----+-------------------+-----------+------+--------+-------+
5 rows in set (0.00 sec)
LAPORAN PRAKTIKUM

PERTEMUAN KE X

10.1. Tujuan Praktikum


3. Mahasiswa mengerti dan mampu membuat database dan tabel, serta mengetahui
tentang klausa WHERE dan implementasinya.
4. Mahasiswa juga mampu menerapkan operator pengandaian (IFNULL, IF, CASE) di
dalam klausa WHERE.

10.2. Dasar Teori


Pada praktikum kali ini akan dimplementasikan penggunaan operator pengandaian
yang terdiri dari IFNULL, IF dan CASE di dalam klausa WHERE.
Pengandaian adalah salah satu kelebihan yang didukung oleh mysql. Dengan fungsi
ini dapat diperoleh query dengan beberapa ketentuan menggunakan operator pengandaian ini.
Berikut adalah uraian singkat tentang syntax dari operator-operator pengandaian.
IFNULL
mysql>SELECT IFNULL (Ekspresi_1, Ekspresi_2);
Arti :
Jika Ekspresi_1 bernilai NULL, maka Ekspresi_2 yang dikerjakan, tetapi
Jika Ekspresi_1 tidak bernilai NULL, maka Ekspresi_1 yang dikerjakan.

IF
mysql>SELECT IF (kondisi,Pernyataan_1, Pernyataan_2),
Arti :
Jika kondisi bernilai benar, maka pernyataan_1 yang dikerjakan, tetapi
Jika kondisi bernilai salah, maka pernyataan_2 yang dikerjakan.

CASE
mysql>SELECT nama_kolom CASE kondisi WHEN pernyataan_1
->THEN pernyataan_2
->ELSE pernyataan_lain
->END from nama_tabel;
catatan : pernyataan ELSE bisa ditiadakan

10.3. Langkah-Langkah Praktikum


1. Mahasiswa mengamati apakah daemon MySQL telah aktif atau belum. Jika belum
aktif, maka mahasiswa mengaktifkan terlebih dahulu.
2. Mahasiswa menampilkan prompt MySQL, yang berguna untuk menuliskan program
dalam bahasa SQL.
3. Mahasiswa mengikuti semua instruksi pada bagian 10.4. dalam praktikum X ini.

10.4. Program-Program MySQL


1. Ketiklah pernyataan berikut :

mysql>SELECT IFNULL(1,0);
mysql>SELECT IFNULL(null,5);
mysql>SELECT IFNULL(2/0,5);
mysql>SELECT IFNULL(2/0,'BENAR');

2. Ketiklah pernyataan berikut :

mysql>SELECT IF(3<5,3,4);
mysql>SELECT IF(3<5,'Benar','Salah');
mysql>SELECT IF(4>10,'Benar','Salah');

3. Buatlah database dengan nama bebas dan satu buah tabel dengan nama tabel
“Data_Mhs” sebagai berikut :
Nama Gol_dara sex tinggi berat
No. h
1 Ariani Widiastuti A W 160 45
2 Warsiti A W 158 50
3 Darti Widayati AB W 165 55
4 Bambang Yuwono B P 180 80
5 Haris Wibowo O P 170 67
6 Wargono B P 155 60

mysql>create table Data_Mhs(


->No int not null primary key auto_increment,
->Nama varchar(25),
->Gol_Darah enum('A','B','AB','O'),
->Sex enum('W','P'),
->Tinggi smallint(3),
->Berat smallint(3));
mysql>desc Data_Mhs;
+-----------+------------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+------------------------+------+-----+---------+----------------+
| No | int | NO | PRI | NULL | auto_increment |
| Nama | varchar(25) | YES | | NULL | |
| Gol_Darah | enum('A','B','AB','O') | YES | | NULL | |
| Sex | enum('W','P') | YES | | NULL | |
| Tinggi | smallint(3) | YES | | NULL | |
| Berat | smallint(3) | YES | | NULL | |
+-----------+------------------------+------+-----+---------+----------------+
6 rows in set (0.07 sec)

mysql>insert into Data_Mhs values


->('','Ariani Widiastuti','A','W',160,45),
->('','Warsiti','A','W',158,50),
->('','Darti Widayati','AB','W',165,55),
->('','Bambang Yuwono','B','P',180,80),
->('','Haris Wibowo','O','P',170,67),
->('','Wargono','B','P',155,60);
Query OK, 6 rows affected, 6 warnings (0.02 sec)
Records: 6 Duplicates: 0 Warnings: 0

mysql>select * from Data_Mhs;


+----+-------------------+-----------+------+--------+-------+
| No | Nama | Gol_Darah | Sex | Tinggi | Berat |
+----+-------------------+-----------+------+--------+-------+
| 1 | Ariani Widiastuti | A |W | 160 | 45 |
| 2 | Warsiti |A |W | 158 | 50 |
| 3 | Darti Widayati | AB |W | 165 | 55 |
| 4 | Bambang Yuwono |B |P | 180 | 80 |
| 5 | Haris Wibowo |O |P | 170 | 67 |
| 6 | Wargono |B |P | 155 | 60 |
+----+-------------------+-----------+------+--------+-------+
6 rows in set (0.00 sec)

Ketiklah pernyataan berikut :


mysql>SELECT Nama,IF(sex=’P’,’Pria’,’Wanita’)
->Jenis_Kelamin From Data_Mhs;
+-------------------+---------------+
| nama | Jenis_Kelamin |
+-------------------+---------------+
| Ariani Widiastuti | Wanita |
| Warsiti | Wanita |
| Darti Widayati | Wanita |
| Bambang Yuwono | Pria |
| Haris Wibowo | Pria |
| Wargono | Pria |
+-------------------+---------------+
6 rows in set (0.00 sec)

mysql>SELECT Nama,IF(Gol_darah=’A’,’Cocok’,’Tidak Cocok’)


->Kecocokan From Data_Mhs;
+-------------------+-------------+
| nama | Kecocokan |
+-------------------+-------------+
| Ariani Widiastuti | Cocok |
| Warsiti | Cocok |
| Darti Widayati | Tidak Cocok |
| Bambang Yuwono | Tidak Cocok |
| Haris Wibowo | Tidak Cocok |
| Wargono | Tidak Cocok |
+-------------------+-------------+
6 rows in set (0.00 sec)

4. Ketiklah pernyataan berikut :


mysql>select case 1 when 1 then "Satu"
->end hasil_case;
+------------+
| hasil_case |
+------------+
| Satu |
+------------+
1 row in set (0.00 sec)

mysql>select case when 2>0 then 'Benar'


->else 'Salah' end hasil_case;
+------------+
| hasil_case |
+------------+
| Benar |
+------------+
1 row in set (0.00 sec)

mysql>select nama, case sex when 'P' then 'Pria'


->end Kelamin from data_mhs;
+-------------------+---------+
| nama | Kelamin |
+-------------------+---------+
| Ariani Widiastuti | NULL |
| Warsiti | NULL |
| Darti Widayati | NULL |
| Bambang Yuwono | Pria |
| Haris Wibowo | Pria |
| Wargono | Pria |
+-------------------+---------+
6 rows in set (0.00 sec)
mysql>select nama, gol_darah, case
->when gol_darah='A'
->then 'Dapat Memberi Kepada A dan AB'
->when gol_darah='B'
->then 'Dapat Memberi Kepada B dan AB'
->when gol_darah='AB'
->then 'Dapat Memberi Kepada A, B dan AB'
->when gol_darah='O'
->then 'Dapat Memberi Kepada Semua golongan darah'
->end Sumbangan_darah from data_mhs;
+-------------------+-----------+-------------------------------------------+
| nama | gol_darah | Sumbangan_darah |
+-------------------+-----------+-------------------------------------------+
| Ariani Widiastuti | A | Dapat Memberi Kepada A dan AB |
| Warsiti |A | Dapat Memberi Kepada A dan AB |
| Darti Widayati | AB | Dapat Memberi Kepada A, B dan AB |
| Bambang Yuwono |B | Dapat Memberi Kepada B dan AB |
| Haris Wibowo |O | Dapat Memberi Kepada Semua golongan darah |
| Wargono |B | Dapat Memberi Kepada B dan AB |
+-------------------+-----------+-------------------------------------------+
6 rows in set (0.00 sec)

5. Tampilkan nama, gol_darah dari wanita yang dapat mendonorkan darahnya ke


gol_darah A dan B:
mysql> select nama, gol_darah
-> from data_mhs
-> where sex='W' and gol_darah='AB';
+----------------+-----------+
| nama | gol_darah |
+----------------+-----------+
| Darti Widayati | AB |
+----------------+-----------+
1 row in set (0.00 sec)

6. Tampilkan nama wanita yang memiliki berat badan ideal dengan menggunakan klausa
if yaitu tinggi badan – 110 dengan keterangan ideal atau tidak ideal:
mysql> select nama, if(berat = (Tinggi-110),'Ideal','Tidak Ideal')
-> as 'Berat Badan' from data_mhs
-> where sex='W';
+-------------------+-------------+
| nama | Berat Badan |
+-------------------+-------------+
| Ariani Widiastuti | Tidak Ideal |
| Warsiti | Tidak Ideal |
| Darti Widayati | Ideal |
+-------------------+-------------+
3 rows in set (0.00 sec)
7. Tampilkan mahasiswa yang dapat mendonorkan darahnya ke semua golongan :
mysql> select * from data_mhs
-> where gol_darah = 'O';
+----+--------------+-----------+------+--------+-------+
| No | Nama | Gol_Darah | Sex | Tinggi | Berat |
+----+--------------+-----------+------+--------+-------+
| 5 | Haris Wibowo | O |P | 170 | 67 |
+----+--------------+-----------+------+--------+-------+
1 row in set (0.00 sec)

8. Tampilkan mahasiswa yang memiliki berat badan tidak ideal :


mysql>select * from data_mhs
->where not berat= tinggi - 110;
+----+-------------------+-----------+------+--------+-------+
| No | Nama | Gol_Darah | Sex | Tinggi | Berat |
+----+-------------------+-----------+------+--------+-------+
| 1 | Ariani Widiastuti | A |W | 160 | 45 |
| 2 | Warsiti |A |W | 158 | 50 |
| 4 | Bambang Yuwono |B |P | 180 | 80 |
| 5 | Haris Wibowo |O |P | 170 | 67 |
| 6 | Wargono |B |P | 155 | 60 |
+----+-------------------+-----------+------+--------+-------+
5 rows in set (0.00 sec)

9. Tampilkan recor/data sebanyak 3 baris yang memiliki gol_darah A, AB :


mysql> select * from data_mhs
-> where gol_darah='A' or gol_darah='AB'
-> limit 3;
+----+-------------------+-----------+------+--------+-------+
| No | Nama | Gol_Darah | Sex | Tinggi | Berat |
+----+-------------------+-----------+------+--------+-------+
| 1 | Ariani Widiastuti | A |W | 160 | 45 |
| 2 | Warsiti |A |W | 158 | 50 |
| 3 | Darti Widayati | AB |W | 165 | 55 |
+----+-------------------+-----------+------+--------+-------+
3 rows in set (0.00 sec)
LAPORAN PRAKTIKUM

PERTEMUAN KE XI

11.1. Tujuan Praktikum


1. Mahasiswa mengerti dan mampu membuat database dan tabel, serta mengetahui
tentang klausa WHERE dan implementasinya.
2. Mahasiswa juga mampu menerapkan operator LIKE dan operator LIMIT di dalam
klausa WHERE.

11.2. Dasar Teori


Berikut akan dibahas mengenai klausa LIKE dan LIMIT yang akan
diimplementasikan bersama klausa WHERE.
Klausa LIKE berfungsi untuk menampilkan data dengan memilih data yang sesuai
dengan kondisi. Klausa ini dapat melakukan perbandingan dengan hasil sama persisi atau
membandingkan data yang mirip dengan pembanding saja. Berikut adalah syntax yang
melibatkan klausa LIKE :

mysql>SELECT nama_kolom FROM nama_tabel WHERE LIKE (‘kondisi);

Namun anda juga dapat membalik kondisi dari suatu kondisi dengan syntax berikut :

mysql>SELECT nama_kolom FROM nama_tabel WHERE NOT LIKE (‘kondisi);

Klausa LIMIT digunakan untuk memilih data yang akan keluar pada layar. Dengan
fungsi ini, dapat ditentukan jumlah dan macam data yang akan ditampilkan pada layar.
Biasanya fungsi LIMIT berguna membatasi keluaran data yang memiliki kapasitas yang
sangat besar sehingga layar tidak mungkin mampu mengeluarkan seluruhnya ke layar.
Berikut adalah syntax dengan klausa LIMIT:

mysql>SELECT nama_kolom FROM nama_tabel LIMIT batasan, jumlah;

keterangan : batasan adalah nomor recordset awal yang akan diseleksi dan jumlah merupakan
banyak data yang akan ditampilkan mulai dari nomor batasnya.
11.3. Langkah-Langkah Praktikum
1. Mahasiswa mengamati apakah daemon MySQL telah aktif atau belum. Jika belum
aktif, maka mahasiswa mengaktifkan terlebih dahulu.
2. Mahasiswa menampilkan prompt MySQL, yang berguna untuk menuliskan program
dalam bahasa SQL.
3. Mahasiswa mengikuti semua instruksi pada bagian 11.4. dalam praktikum XI ini.

11.4. Program-Program MySQL


1. Buatlah database dengan nama bebas sesuai keinginan anda

mysql>create database prak11;


Query OK, 1 row affected (0.34 sec)

2. Buatlah tabel seperti berikut dan berilah nama hobi :


No. Nama Gol_dara sex Hobi
h
1 Ariani Widiastuti A W Bulu Tangkis, Renang
2 Warsiti A W Renang, Pencak Silat, Volly
3 Darti Widayati AB W Menari, Volly, Tenis
4 Bambang Yuwono B P Tenis, Karate, Sepakbola
5 Haris Wibowo O P Tinju, Renang, Volly
6 Wargono B P Musik

mysql>create table hobi(


->No int not null primary key auto_increment,
->Nama varchar(25),
->Gol_Darah enum('A','B','AB','O'),
->Sex enum('W','P'),
->hobi varchar(50));mysql>desc Data_Mhs;
mysql>desc hobi;
+-----------+------------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+------------------------+------+-----+---------+----------------+
| No | int(11) | NO | PRI | NULL | auto_increment |
| Nama | varchar(25) | YES | | NULL | |
| Gol_Darah | enum('A','B','AB','O') | YES | | NULL | |
| Sex | enum('W','P') | YES | | NULL | |
| hobi | varchar(50) | YES | | NULL | |
+-----------+------------------------+------+-----+---------+----------------+
5 rows in set (0.01 sec)
mysql>insert into hobi values
->('','Ariani Widiastuti','A','W','Bulu Tangkis, Renang'),
->('','Warsiti','A','W','Renang, Pencak Silat, Volly'),
->('','Darti Widayati','AB','W','Menari, Volly, Tenis'),
->('','Bambang Yuwono','B','P','Tenis, Karate, Sepakbola'),
->('','Haris Wibowo','O','P','Tinju, Renang, Volly'),
->('','Wargono','B','P','Musik');
Query OK, 6 rows affected, 6 warnings (0.02 sec)
Records: 6 Duplicates: 0 Warnings: 0

mysql>select * from hobi;


+----+-------------------+-----------+------+-----------------------------+
| No | Nama | Gol_Darah | Sex | hobi |
+----+-------------------+-----------+------+-----------------------------+
| 1 | Ariani Widiastuti | A |W | Bulu Tangkis, Renang |
| 2 | Warsiti |A |W | Renang, Pencak Silat, Volly |
| 3 | Darti Widayati | AB |W | Menari, Volly, Tenis |
| 4 | Bambang Yuwono |B |P | Tenis, Karate, Sepakbola |
| 5 | Haris Wibowo |O |P | Tinju, Renang, Volly |
| 6 | Wargono |B |P | Musik |
+----+-------------------+-----------+------+-----------------------------+
6 rows in set (0.00 sec)

3. Carilah rumus untuk mencari nama, gol_darah, hobi dari tabel di atas di mana
hobinya adalah renang.
mysql>select nama,gol_darah, hobi
->from hobi
->where hobi like '%Renang%';
+-------------------+-----------+-----------------------------+
| nama | gol_darah | hobi |
+-------------------+-----------+-----------------------------+
| Ariani Widiastuti | A | Bulu Tangkis, Renang |
| Warsiti |A | Renang, Pencak Silat, Volly |
| Haris Wibowo |O | Tinju, Renang, Volly |
+-------------------+-----------+-----------------------------+
3 rows in set (0.61 sec)

4. Carilah rumus untuk mencari nama, gol_darah, hobi dari tabel di atas di mana
namanya dimulai dari ‘Wa’.
mysql>select nama,gol_darah, hobi
->from hobi
->where nama like 'Wa%';
+---------+-----------+-----------------------------+
| nama | gol_darah | hobi |
+---------+-----------+-----------------------------+
| Warsiti | A | Renang, Pencak Silat, Volly |
| Wargono | B | Musik |
+---------+-----------+-----------------------------+
5. Carilah rumus untuk mencari nama, gol_darah, hobi dari tabel di atas di mana
namanya diakhiri dengan ‘o’.
mysql>select nama,gol_darah, hobi
->from hobi
->where nama like '%o';
+----------------+-----------+--------------------------+
| nama | gol_darah | hobi |
+----------------+-----------+--------------------------+
| Bambang Yuwono | B | Tenis, Karate, Sepakbola |
| Haris Wibowo | O | Tinju, Renang, Volly |
| Wargono |B | Musik |
+----------------+-----------+--------------------------+
3 rows in set (0.00 sec)

6. Tampilkan data dari tabel di atas mulai dari baris ke 3.

mysql>select * from hobi


->limit 2,4;
+----+----------------+-----------+------+--------------------------+
| No | Nama | Gol_Darah | Sex | hobi |
+----+----------------+-----------+------+--------------------------+
| 3 | Darti Widayati | AB |W | Menari, Volly, Tenis |
| 4 | Bambang Yuwono | B |P | Tenis, Karate, Sepakbola |
| 5 | Haris Wibowo | O |P | Tinju, Renang, Volly |
| 6 | Wargono |B |P | Musik |
+----+----------------+-----------+------+--------------------------+
4 rows in set (0.01 sec)

7. Tampilkan data dari tabel di atas mulai dari baris ke 4 sampai baris ke 5 saja.

mysql>select * from hobi


->limit 3,2;

+----+----------------+-----------+------+--------------------------+
| No | Nama | Gol_Darah | Sex | hobi |
+----+----------------+-----------+------+--------------------------+
| 4 | Bambang Yuwono | B |P | Tenis, Karate, Sepakbola |
| 5 | Haris Wibowo | O |P | Tinju, Renang, Volly |
+----+----------------+-----------+------+--------------------------+
2 rows in set (0.00 sec)

8. Tambahkan pada tabel hobi, field tgl_lahir.

mysql>alter table hobi add tgl_lahir date;


Query OK, 6 rows affected (0.72 sec)
Records: 6 Duplicates: 0 Warnings: 0

mysql>desc hobi;
+-----------+------------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+------------------------+------+-----+---------+----------------+
| No | int(11) | NO | PRI | NULL | auto_increment |
| Nama | varchar(25) | YES | | NULL | |
| Gol_Darah | enum('A','B','AB','O') | YES | | NULL | |
| Sex | enum('W','P') | YES | | NULL | |
| hobi | varchar(50) | YES | | NULL | |
| tgl_lahir | date | YES | | NULL | |
+-----------+------------------------+------+-----+---------+----------------+
6 rows in set (0.02 sec)

9. Isilah record pada field tgl_lahir sesuai keinginan.


mysql>update hobi
->set tgl_lahir='1970-02-12'
->where no=1;
Query OK, 1 row affected (0.67 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql>update hobi
->set tgl_lahir='1975-04-02'
->where no=2;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql>update hobi
->set tgl_lahir='1985-12-23'
->where no=3;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql>update hobi
->set tgl_lahir='1982-06-13'
->where no=4;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql>update hobi
->set tgl_lahir='1986-06-22'
->where no=5;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql>update hobi
->set tgl_lahir='1989-02-16'
->where no=6;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql>select * from hobi;
+----+-------------------+-----------+------+-----------------------------+------------+
| No | Nama | Gol_Darah | Sex | hobi | tgl_lahir |
+----+-------------------+-----------+------+-----------------------------+------------+
| 1 | Ariani Widiastuti | A |W | Bulu Tangkis, Renang | 1970-02-12 |
| 2 | Warsiti |A |W | Renang, Pencak Silat, Volly | 1975-04-02 |
| 3 | Darti Widayati | AB |W | Menari, Volly, Tenis | 1985-12-23 |
| 4 | Bambang Yuwono |B |P | Tenis, Karate, Sepakbola | 1982-06-13 |
| 5 | Haris Wibowo |O |P | Tinju, Renang, Volly | 1986-06-22 |
| 6 | Wargono |B |P | Musik | 1989-02-16 |
+----+-------------------+-----------+------+-----------------------------+------------+
6 rows in set (0.00 sec)

10. Tampilkan data pria yang memiliki hobi tinju saja.


mysql>select * from hobi
->where sex='P' and hobi like '%Tinju%';
+----+--------------+-----------+------+----------------------+------------+
| No | Nama | Gol_Darah | Sex | hobi | tgl_lahir |
+----+--------------+-----------+------+----------------------+------------+
| 5 | Haris Wibowo | O |P | Tinju, Renang, Volly | 1986-06-22 |
+----+--------------+-----------+------+----------------------+------------+
1 row in set (0.00 sec)
11. Tampilkan secara keseluruhan dari tabel hobi yang berjenis kelamin pria dan
golongan darah B dan O dengan klausa limit.
mysql>select * from hobi
->where sex='P' and gol_darah='B' or gol_darah='O'
->limit 3;
+----+----------------+-----------+------+--------------------------+------------+
| No | Nama | Gol_Darah | Sex | hobi | tgl_lahir |
+----+----------------+-----------+------+--------------------------+------------+
| 4 | Bambang Yuwono | B |P | Tenis, Karate, Sepakbola | 1982-06-13 |
| 5 | Haris Wibowo | O |P | Tinju, Renang, Volly | 1986-06-22 |
| 6 | Wargono |B |P | Musik | 1989-02-16 |
+----+----------------+-----------+------+--------------------------+------------+
3 rows in set (0.00 sec)

12. Tampilkan record yang menyukai volly sebanyak 2 baris dengan klausa like dan
limit

mysql>select * from hobi


->where hobi like '%Volly%'
->limit 2;
+----+----------------+-----------+------+-----------------------------+------------+
| No | Nama | Gol_Darah | Sex | hobi | tgl_lahir |
+----+----------------+-----------+------+-----------------------------+------------+
| 2 | Warsiti |A |W | Renang, Pencak Silat, Volly | 1975-04-02 |
| 3 | Darti Widayati | AB |W | Menari, Volly, Tenis | 1985-12-23 |
+----+----------------+-----------+------+-----------------------------+------------+
2 rows in set (0.00 sec)

.
13. Gantilah field sex dengan jenis_kelamin.

mysql> alter table hobi change sex jenis_kelamin enum('P','W');


Query OK, 6 rows affected (0.65 sec)
Records: 6 Duplicates: 0 Warnings: 0

mysql> desc hobi;


+---------------+------------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+------------------------+------+-----+---------+----------------+
| No | int(11) | NO | PRI | NULL | auto_increment |
| Nama | varchar(25) | YES | | NULL | |
| Gol_Darah | enum('A','B','AB','O') | YES | | NULL | |
| jenis_kelamin | enum('P','W') | YES | | NULL | |
| hobi | varchar(50) | YES | | NULL | |
| tgl_lahir | date | YES | | NULL | |
+---------------+------------------------+------+-----+---------+----------------+
6 rows in set (0.01 sec)

14. Tampilkan record dari tabel hobi yang dapat mendonorkan darah ke Warsiti.

mysql> select * from hobi


-> where gol_darah IN('A','AB','O') and not nama='Warsiti';

+----+-------------------+-----------+---------------+----------------------+------------+
| No | Nama | Gol_Darah | jenis_kelamin | hobi | tgl_lahir |
+----+-------------------+-----------+---------------+----------------------+------------+
| 1 | Ariani Widiastuti | A |W | Bulu Tangkis, Renang | 1970-02-12 |
| 3 | Darti Widayati | AB |W | Menari, Volly, Tenis | 1985-12-23 |
| 5 | Haris Wibowo |O |P | Tinju, Renang, Volly | 1986-06-22 |
+----+-------------------+-----------+---------------+----------------------+------------+
3 rows in set (0.00 sec)
LAPORAN PRAKTIKUM

PERTEMUAN KE XII

12.1. Tujuan Praktikum


1. Mahasiswa mengerti dan mampu membuat database dan tabel, serta mengetahui
tentang klausa WHERE dan implementasinya.
2. Mahasiswa juga mampu menerapkan konsep GROUP BY di dalam klausa WHERE.
3. Mahasiswa mampu menerapkan kombinasi antara klausa LIKE, LIMIT dan fungsi
matematika dengan konsep GROUP BY.

12.2. Dasar Teori


Klausa GROUP BY digunakan untuk melakukan pengurutan data, sehingga data dari
sebuah atau beberapa tabel dapat ditampilkan berurutan yaitu pengurutan dari kecil ke besar
(Ascending / ASC) atau pengurutan dari besar ke kecil (Descending / DESC). Berikut adalah
syntax selengkapnya :
mysql>SELECT nama_kolom FROM nama_tabel ORDER BY kolom_urut type;
Catatan : type dapat berupa ASC atau DESC
Contoh :
mysql>SELECT * FROM Data_Diri ORDER BY Nama ASC;

Klausa GROUP BY dapat digunakan bersama klausa yang lain yaitu klausa WHERE,
LIKE dan LIMIT. Berikut ini adalah syntax selengkapnya :
mysql>SELECT nama_kolom FROM nama_tabel
->WHERE nama_kolom LIKE kondisi
->ORDER BY kolom_urut type LIMIT batasan,jumlah;
Contoh:
mysql>SELECT * FROM Data_Mhs
->WHERE hoby LIKE (%Renang%)
->ORDER BY no ASC LIMIT 2,2;

Klausa GROUP BY dapat dicampurkan dengan fungsi matematika seperti dibahas


pada bab-bab sebelumnya. Berikut adalah contoh fungsi matematika dan GROUP BY :
mysql>SELECT no, nama,SUM(tinggi) FROM Data_Mhs
->ORDER BY nama;

12.3. Langkah-Langkah Praktikum


1. Mahasiswa mengamati apakah daemon MySQL telah aktif atau belum. Jika belum
aktif, maka mahasiswa mengaktifkan terlebih dahulu.
2. Mahasiswa menampilkan prompt MySQL, yang berguna untuk menuliskan program
dalam bahasa SQL.
3. Mahasiswa mengikuti semua instruksi pada bagian 12.4. dalam praktikum XII ini.

12.4. Program-Program MySQL


1. Buatlah suatu database sesuai keinginan anda

mysql>create database prak12;


Query OK, 1 row affected (0.34 sec)

2. Buatlah tabel seperti berikut dan berilah nama data_mhs :


No. Nama Gol_dara sex Hobi
h
1 Ariani Widiastuti A W Bulu Tangkis, Renang
2 Warsiti A W Renang, Pencak Silat, Volly
3 Darti Widayati AB W Menari, Volly, Tenis
4 Bambang Yuwono B P Tenis, Karate, Sepakbola
5 Haris Wibowo O P Tinju, Renang, Volly
6 Wargono B P Musik

mysql>create table data_mhs(


->No int not null primary key auto_increment,
->Nama varchar(25),
->Gol_Darah enum('A','B','AB','O'),
->Sex enum('W','P'),
->hobi varchar(50));

mysql>desc data_mhs;
+-----------+------------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+------------------------+------+-----+---------+----------------+
| No | int(11) | NO | PRI | NULL | auto_increment |
| Nama | varchar(25) | YES | | NULL | |
| Gol_Darah | enum('A','B','AB','O') | YES | | NULL | |
| Sex | enum('W','P') | YES | | NULL | |
| hobi | varchar(50) | YES | | NULL | |
+-----------+------------------------+------+-----+---------+----------------+
5 rows in set (0.01 sec)

mysql>insert into data_mhs values


->('','Ariani Widiastuti','A','W','Bulu Tangkis, Renang'),
->('','Warsiti','A','W','Renang, Pencak Silat, Volly'),
->('','Darti Widayati','AB','W','Menari, Volly, Tenis'),
->('','Bambang Yuwono','B','P','Tenis, Karate, Sepakbola'),
->('','Haris Wibowo','O','P','Tinju, Renang, Volly'),
->('','Wargono','B','P','Musik');
Query OK, 6 rows affected, 6 warnings (0.02 sec)
Records: 6 Duplicates: 0 Warnings: 0

mysql>select * from data_mhs;


+----+-------------------+-----------+------+-----------------------------+
| No | Nama | Gol_Darah | Sex | hobi |
+----+-------------------+-----------+------+-----------------------------+
| 1 | Ariani Widiastuti | A |W | Bulu Tangkis, Renang |
| 2 | Warsiti |A |W | Renang, Pencak Silat, Volly |
| 3 | Darti Widayati | AB |W | Menari, Volly, Tenis |
| 4 | Bambang Yuwono |B |P | Tenis, Karate, Sepakbola |
| 5 | Haris Wibowo |O |P | Tinju, Renang, Volly |
| 6 | Wargono |B |P | Musik |
+----+-------------------+-----------+------+-----------------------------+
6 rows in set (0.00 sec)

3. Tampilkan tabel data_mhs terurut secara Ascending berdasarkan nama.

mysql> select * from data_mhs


-> order by nama;

+----+-------------------+-----------+------+-----------------------------+
| No | Nama | Gol_Darah | Sex | hobi |
+----+-------------------+-----------+------+-----------------------------+
| 1 | Ariani Widiastuti | A |W | Bulu Tangkis, Renang |
| 4 | Bambang Yuwono |B |P | Tenis, Karate, Sepakbola |
| 3 | Darti Widayati | AB |W | Menari, Volly, Tenis |
| 5 | Haris Wibowo |O |P | Tinju, Renang, Volly |
| 6 | Wargono |B |P | Musik |
| 2 | Warsiti |A |W | Renang, Pencak Silat, Volly |
+----+-------------------+-----------+------+-----------------------------+
6 rows in set (0.00 sec)
4. Tampilkan no, nama, hobi dari tabel data_mhs terurut secara descending dengan
hobi renang dengan batasan 2 baris.

mysql> select no,nama,hobi from data_mhs


-> where hobi like '%Renang%'
-> order by nama desc
-> limit 2;

+----+--------------+-----------------------------+
| no | nama | hobi |
+----+--------------+-----------------------------+
| 2 | Warsiti | Renang, Pencak Silat, Volly |
| 5 | Haris Wibowo | Tinju, Renang, Volly |
+----+--------------+-----------------------------+
2 rows in set (0.00 sec)

5. Buatlah tabel lagi seperti berikut pada database yang sama, dengan nama tabelnya
adalah keuangan.

mysql> create table Keuangan(


-> no int not null primary key auto_increment,
-> nama varchar(25),
-> pemasukan int(10),
-> pengeluaran int(10));
Query OK, 0 rows affected (0.65 sec)

mysql> desc Keuangan;


+-------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+----------------+
| no | int(11) | NO | PRI | NULL | auto_increment |
| nama | varchar(25) | YES | | NULL | |
| pemasukan | int(10) | YES | | NULL | |
| pengeluaran | int(10) | YES | | NULL | |
+-------------+-------------+------+-----+---------+----------------+
4 rows in set (0.01 sec)

mysql> insert into Keuangan values


-> ('','Ariani',100000,56000),
-> ('','Warsiti',1000000,200000),
-> ('','Darti',2000000,1000000),
-> ('','Bambang',300000,240000),
-> ('','Haris',3000000,2500000),
-> ('','Wargono',500000,376000),
-> ('','Darti',200000,120000),
-> ('','Bambang',700000,560000),
-> ('','Warsiti',200000,100000),
-> ('','Sugeng',2000000,1500000),
-> ('','Darti',400000,56000),
-> ('','Ariani',400000,340000);
Query OK, 12 rows affected, 12 warnings (0.00 sec)
Records: 12 Duplicates: 0 Warnings: 0

mysql> select * from Keuangan;


+----+---------+-----------+-------------+
| no | nama | pemasukan | pengeluaran |
+----+---------+-----------+-------------+
| 1 | Ariani | 100000 | 56000 |
| 2 | Warsiti | 1000000 | 200000 |
| 3 | Darti | 2000000 | 1000000 |
| 4 | Bambang | 300000 | 240000 |
| 5 | Haris | 3000000 | 2500000 |
| 6 | Wargono | 500000 | 376000 |
| 7 | Darti | 200000 | 120000 |
| 8 | Bambang | 700000 | 560000 |
| 9 | Warsiti | 200000 | 100000 |
| 10 | Sugeng | 2000000 | 1500000 |
| 11 | Darti | 400000 | 56000 |
| 12 | Ariani | 400000 | 340000 |
+----+---------+-----------+-------------+
12 rows in set (0.00 sec)

6. Buatlah rumus untuk mencari berapa kali seseorang dari tabel keuangan di atas
melakukan transaksi, dan kolom yang ditampilkan adalah kolom nama yang
terurut ascending dan kolom jumlah transaksi.

mysql> select nama, count(nama) as 'Jumlah Transaksi'


-> from Keuangan
-> group by nama
-> order by nama asc;
+---------+------------------+
| nama | Jumlah Transaksi |
+---------+------------------+
| Ariani | 2|
| Bambang | 2|
| Darti | 3|
| Haris | 1|
| Sugeng | 1|
| Wargono | 1|
| Warsiti | 2|
+---------+------------------+
7 rows in set (0.00 sec)

7. Buatlah rumus untuk mencari total pemasukan dari masing-masing orang pada
kolom nama dari tabel keuangan. Kolom yang ditampilkan adalah kolom no,
kolom nama yang terurut descending, kolom total pemasukan.

mysql> select no, nama, sum(pemasukan)as ‘Total Pemasukan’


-> from Keuangan
-> group by nama
-> order by nama desc;
+----+---------+----------------+
| no | nama | Total Pemasukan |
+----+---------+----------------+
| 2 | Warsiti | 1200000 |
| 6 | Wargono | 500000 |
| 10 | Sugeng | 2000000 |
| 5 | Haris | 3000000 |
| 3 | Darti | 2600000 |
| 4 | Bambang | 1000000 |
| 1 | Ariani | 500000 |
+----+---------+----------------+
7 rows in set (0.59 sec)

8. Buatlah rumus untuk mencari total keluaran dari masing-masing orang pada
kolom nama dari tabel keuangan. Kolom yang ditampilkan adalah kolom no,
kolom nama yang terurut descending, kolom total keluaran.
mysql> select no, nama, sum(pengeluaran) as 'Total Keluaran'
-> from Keuangan
-> group by nama
-> order by nama desc;
+----+---------+----------------+
| no | nama | Total Keluaran |
+----+---------+----------------+
| 2 | Warsiti | 300000 |
| 6 | Wargono | 376000 |
| 10 | Sugeng | 1500000 |
| 5 | Haris | 2500000 |
| 3 | Darti | 1176000 |
| 4 | Bambang | 800000 |
| 1 | Ariani | 396000 |
+----+---------+----------------+
7 rows in set (0.01 sec)

9. Buatlah rumus untuk mencari saldo dari masing-masing orang pada kolom nama
dari tabel keuangan. Kolom yang ditampilkan adalah kolom nama yang terurut
ascending, kolom total pemasukan, kolom total keluaran dan kolom Saldo.
mysql> select nama,sum(pemasukan) as 'Total Pemasukan',
-> sum(pengeluaran) as 'Total Keluaran',
-> (sum(pemasukan)-sum(pengeluaran)) as Saldo
-> from keuangan
-> group by nama;
+---------+-----------------+----------------+---------+
| nama | Total Pemasukan | Total Keluaran | Saldo |
+---------+-----------------+----------------+---------+
| Ariani | 500000 | 396000 | 104000 |
| Bambang | 1000000 | 800000 | 200000 |
| Darti | 2600000 | 1176000 | 1424000 |
| Haris | 3000000 | 2500000 | 500000 |
| Sugeng | 2000000 | 1500000 | 500000 |
| Wargono | 500000 | 376000 | 124000 |
| Warsiti | 1200000 | 300000 | 900000 |
+---------+-----------------+----------------+---------+
7 rows in set (0.60 sec)

10. Tambahkan field tanggungan dari tabel keuangan dengan record yaitu ariani, darti,
bambang = 2 anak; warsiti, sugeng = 1 anak; wargono, haris 3 anak.
mysql> alter table Keuangan add Tanggungan smallint(2);
Query OK, 12 rows affected (0.68 sec)
Records: 12 Duplicates: 0 Warnings: 0

mysql> update keuangan


-> set Tanggungan=2
-> where nama in('Ariani','Darti','Bambang');
Query OK, 7 rows affected (0.57 sec)
Rows matched: 7 Changed: 7 Warnings: 0

mysql> update keuangan


-> set Tanggungan=1
-> where nama in('Warsiti','Sugeng');
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3 Changed: 3 Warnings: 0

mysql> update keuangan


-> set Tanggungan=3
-> where nama in('Wargono','Haris');
Query OK, 2 rows affected (0.00 sec)
Rows matched: 2 Changed: 2 Warnings: 0

mysql> select * from keuangan;


+----+---------+-----------+-------------+------------+
| no | nama | pemasukan | pengeluaran | Tanggungan |
+----+---------+-----------+-------------+------------+
| 1 | Ariani | 100000 | 56000 | 2|
| 2 | Warsiti | 1000000 | 200000 | 1|
| 3 | Darti | 2000000 | 1000000 | 2|
| 4 | Bambang | 300000 | 240000 | 2|
| 5 | Haris | 3000000 | 2500000 | 3|
| 6 | Wargono | 500000 | 376000 | 3|
| 7 | Darti | 200000 | 120000 | 2|
| 8 | Bambang | 700000 | 560000 | 2|
| 9 | Warsiti | 200000 | 100000 | 1|
| 10 | Sugeng | 2000000 | 1500000 | 1|
| 11 | Darti | 400000 | 56000 | 2|
| 12 | Ariani | 400000 | 340000 | 2|
+----+---------+-----------+-------------+------------+
12 rows in set (0.00 sec)

11. Tampilkan besar insentif dari tanggungan masing-masing orang dengan ketetapan
150.000/anak.

mysql> select nama,tanggungan,


-> (tanggungan * 150000) as Insentif
-> from Keuangan
-> group by nama;
+---------+------------+----------+
| nama | tanggungan | Insentif |
+---------+------------+----------+
| Ariani | 2 | 300000 |
| Bambang | 2 | 300000 |
| Darti | 2 | 300000 |
| Haris | 3 | 450000 |
| Sugeng | 1 | 150000 |
| Wargono | 3 | 450000 |
| Warsiti | 1 | 150000 |
+---------+------------+----------+
7 rows in set (0.01 sec)

You might also like