Anda di halaman 1dari 22

I.

TUJUAN PRAKTIKUM

1. Mampu membuat database di media sosial


2. Mampu menjalankan query untuk pengolahan database di media sosial
3. Mampu membuat backup database di MySQL

II. DASAR TEORI

Database atau basis data adalah kumpulan data yang disimpan secara sistematis
di dalam komputer yang dapat diolah atau dimanipulasi menggunakan perangkat lunak
(program aplikasi) untuk menghasilkan informasi. Basis data (database) juga
merupakan kumpulan dari data yang saling berhubungan satu dengan yang lainnya,
tersimpan di simpanan luar komputer dan digunakan perangkat lunak tertentu untuk
memanipulasinya (Jogiyanto 2005) .

Pendefinisian basis data meliputi spesifikasi berupa tipe data, struktur data dan juga
batasan-batasan data yang akan disimpan. Basis data merupakan aspek yang sangat
penting dalam sistem informasi dimana basis data:

a. Menentukan kualitas informasi : akurat, tepat pada waktunya dan relevan.

b. Mengurangi duplikasi data ( data redundancy )

c. Hubungan data dapat ditingkatkan (data reliability)

d. Salah satu komponen penting dalam sistem informasi karena merupakan dasar
dalam menyediakan informasi. (Sutanta, 2004)

Media sosial merupakan salah satu dari sekian banyak organisasi atau media yang
menggunakan basis data. Media sosial menyimpan data dari pengguna, data login
pengguna, pesan masuk, pesan terkirim, notifikasi, dan update. Fitur-fitur seperti
backup and recovery, general operability, dan monitoring harus ada di media sosial.
Media sosial yang baik akan memperhatikan skalabilitas penggunaan, performance,
dan juga fault-tolerance. Sistem backup sendiri merupakan salah satu cara untuk bisa
memenuhi konsep fault-tolerance. Backup memegang peranan penting untuk
mengembalikan informasi yang tersimpan apabila insiden yang menimbulkan
kerusakan pada basis data terjadi. General operability menunjukkan operasi umum
pada media sosial. Monitoring mengawasi performance media sosial untuk bekerja
sebaik-baiknya. Dalam praktikum kali ini, akan dibahas seputar pembuatan database,

1
tindakan-tindakan yang akan dilakukan pada database, dan operasi backup pada
database.

III. PEMBAHASAN

Database yang akan dibuat adalah database untuk di media sosial. Database
ini bernama TA_44042.

mysql u praktikan p;
create database TA_44042;
use TA_44042;
Kemudian praktikan akan membuat isi dari database terlebih dahulu. Database berisi
beberapa tabel, diantaranya:

Tabel Me yang berisi identitas dari pengguna. (lihat Tabel 1. Rancangan Isi
Data dalam Tabel Me)
Tabel Social_Networks berisi identitas Social Network. (lihat Tabel 2.
Rancangan Isi Data dalam Tabel Social_Networks)
Tabel My_Email_Logins berisi identitas My_Email_Logins. (lihat Tabel 3.
Rancangan Isi Data dalam My_Email_Logins)
Tabel Mail_boxes berisi pesan yang masuk. (lihat Tabel 4. Rancangan Isi
Data dalam Mail_boxes)
Tabel Sent_Messages berisi pesan yang terkirim. (lihat Tabel 5. Rancangan Isi
Data dalam Tabel Sent_Messages)
Tabel Notifications berisi pesan notification yang masuk. (lihat Tabel 6.
Rancangan Isi Data dalam Tabel Notifications )
Tabel Update berisi tabel pesan Update. (lihat Tabel 7. Rancangan Isi Data
dalam Tabel Updates)
Sebelum membuat query pada tabel, terdapat beberapa query baru yang akan
digunakan, yakni:
AUTO_INCREMENT : value integer akan digenerate secara otomatis
ketika record baru dimasukkan.
Tipe variabel DATETIME: tipe yang melingkupi DATE dan TIME.
Format penulisan 'YYYY-MM-DD HH:MM:SS'. Jangkauan yang didukung
dari 1000-01-01 00:00:00 ke 9999-12-31 23:59:59

2
Query penulisan di kolom my_email_password adalah
SHA2(<nama_password, 224). Hal ini akan mengenkripsi
nama_password dengan algoritma Secure Hash Algorithm 2 dengan value
224 bit. Sehingga tipe data yang digunakan untuk mengakomodasi enkripsi
ini adalah varchar 255 bit.
1) MySQL Query untuk Tabel Me
Pertama, akan diinisialisasikan pembuatan tabel Me beserta attributnya. Syntax
yang dibuat

Create table Me(


my_id int(3) NOT NULL AUTO_INCREMENT,
first_name varchar(255),
last_name varchar(255),
CONSTRAINT Me_pk PRIMARY KEY(my_id)
);
ALTER TABLE Me AUTO_INCREMENT=101;
Syntax di atas akan menghasilkan tabel bernama Me dengan atribut seperti
berikut:

NAMA TYPE NULL KEY DEFA OTHER


FIELD ULT DETAILS
my_id integer (3) YES PRI 1 AUTO
INCREMENT
first_name varchar (255) NO
last_name varchar(255) NO
Query ALTER TABLE Me akan mengubah isi tabel me dengan
menginisialisasikan AUTO_INCREMENT=101. Artinya increment akan dimulai dari
angka 101.

Kemudian tabel diisi dengan value sesuai dengan Tabel 1 yang terdapat di
lampiran (lihat Tabel 1. Rancangan Isi Data dalam Tabel Me). Values Me akan ber-
increment dari 101. Syntax:

INSERT INTO Me (first_name, last_name)


VALUES (Aqilah, Zahra);

3
INSERT INTO Me (first_name, last_name)
VALUES (Zaenal, Arifin);

INSERT INTO Me (first_name, last_name)


VALUES (Umi, Azizah);

INSERT INTO Me (first_name, last_name)


VALUES (Azkal, Azkiya);
2) MySQL Query untuk Tabel Social_Networks
Pertama, akan diinisialisasikan pembuatan tabel Social_Networks beserta
attributnya. Syntax yang dibuat:

Create table Social_Networks(


network_code int(5) NOT NULL AUTO_INCREMENT,
network_name varchar(255),
network_description varchar(255),
CONSTRAINT network_code_pk PRIMARY KEY(network_code)
);
ALTER TABLE Social_Networks AUTO_INCREMENT=51010;
Syntax di atas akan menghasilkan tabel bernama Social_Networks dengan
atribut seperti berikut:

NAMA FIELD TYPE NULL KEY DEFA OTHER


ULT DETAILS
Network_code integer (5) NO PRI 1 AUTO
INCREMENT
network_name varchar (255) YES
Network_description varchar(255) YES
Query ALTER TABLE Social_Networks akan mengubah isi tabel
Social_Networkds dengan menginisialisasikan AUTO_INCREMENT=51010. Artinya
increment akan dimulai dari angka 51010.

Kemudian tabel diisi dengan value sesuai dengan Tabel 2 yang terdapat di
lampiran (lihat Tabel 2. Rancangan Isi Data dalam Tabel Social_Networks). Syntax:

4
INSERT INTO Social_Networks (network_name,
network_description)
VALUES (Facebook, Facebook is free social networking
website);

INSERT INTO Social_Networks (network_name,


network_description)
VALUES (Line, Line is a new communication app);

3) MySQL Query untuk Tabel My_Email_Logins


Pertama, akan diinisialisasikan pembuatan tabel My_Email_Logins beserta
attributnya. Syntax yang dibuat:

Create table My_Email_Logins(


my_login int(3) NOT NULL AUTO_INCREMENT,
my_id int(3) REFERENCES Me(my_id),
network_code int(5) REFERENCES
Social_Networks(network_code),
date_signed_up datetime,
my_email_name varchar(255),
my_email_password varchar(255),
PRIMARY KEY (my_login)
);
ALTER TABLE My_Email_Logins AUTO_INCREMENT=227;
Syntax di atas akan menghasilkan tabel bernama My_Email_Logins dengan
atribut seperti berikut:

NAMA FIELD TYPE NULL KEY DEFA OTHER DETAILS


ULT
my_login integer (3) NO PK 1 AUTO INCREMENT
my_id Integer (3) YES FK FK ke table Me field
my_id
network_code varchar(255) YES FK FK ke table
Social_Networks field
network_code
date_signed_up Datetime YES

5
my_email_name varchar(255) YES
My_email_pass varchar(255) YES
word
Query ALTER TABLE My_Email_Logins akan mengubah isi tabel
My_Email_Logins dengan menginisialisasikan AUTO_INCREMENT=227. Artinya
increment akan dimulai dari angka 227.

Kemudian tabel diisi dengan value sesuai dengan Tabel 3 yang terdapat di
lampiran (lihat Tabel 3. Rancangan Isi Data dalam My_Email_Logins). Syntax:

INSERT INTO My_Email_Logins


VALUES (NULL, 102, 51010, 2011-10-16 00:00:00,
zaenal.a@gmail.com, SHA2(check, 224));

INSERT INTO My_Email_Logins


VALUES (NULL, 104, 51010, 2013-04-07 00:00:00,
a.azkiya@gmail.com, SHA2(tes, 224));

INSERT INTO My_Email_Logins


VALUES (NULL, 103, 51011, 2013-01-12 00:00:00,
umi.a17@gmail.com, SHA2(tes, 224));

INSERT INTO My_Email_Logins


VALUES (NULL, 102, 51011, 2016-01-21 00:00:00,
zaenal.a@gmail.com, SHA2(cocok, 224));

INSERT INTO My_Email_Logins


VALUES (NULL, 101, 51011, 2014-02-22 00:00:00,
aqilah23@yahoo.com, SHA2(pas, 224));
INSERT INTO My_Email_Logins VALUES akan mengisi value urut sesuai
field yang tersedia. Meskipun di field my_login data yang diisi adalah NULL, tabel
hasil tetap akan menyesuaikan attribute tabel, yakni NOT NULL dan
AUTO_INCREMENT dari 227.

4) MySQL Query untuk Tabel Mail_boxes

6
Pertama, akan diinisialisasikan pembuatan tabel Mail_boxes beserta attributnya.
Syntax yang dibuat:

Create table Mail_boxes(


mail_id int NOT NULL AUTO_INCREMENT,
my_login int(3) REFERENCES Me(my_id),
date_received datetime,
from_email_address varchar(255),
from_name varchar(255),
subject varchar(255),
message varchar(255),
PRIMARY KEY (mail_id)
);
Syntax di atas akan menghasilkan tabel bernama My_Email_Logins dengan
atribut seperti berikut:

NAMA FIELD TYPE NULL KEY DEFA OTHER DETAILS


ULT
mail_id integer NO PK 1 AUTO
INCREMENT
my_login Integer (3) YES FK FK ke table Me
field my_id
date_received datetime
from_email_address varchar(255 YES
from_name varchar(255) YES
subject varchar(255) YES
message varchar(255 YES

Kemudian tabel diisi dengan value sesuai dengan Tabel 4 yang terdapat di
lampiran (lihat Tabel 4. Rancangan Isi Data dalam Mail_boxes). Syntax:

INSERT INTO Mail_boxes


VALUES (NULL, 227, 2016-10-01 00:00:00,
cookjames@gmail.com, James, Hello, Hello I am
James Cook from Sydney);

7
INSERT INTO Mail_boxes
VALUES (NULL, 229, 2016-10-03 00:00:00,
Kristendunst@yahoo.com, Dunst, Task, Lets do the
task tomorrow);

INSERT INTO Mail_boxes


VALUES (NULL, 230, 2016-10-03 00:00:00,
charice.l@gmail.com, Charice, Holiday, Where did
you go last holiday);

INSERT INTO Mail_boxes


VALUES (NULL, 231, 2016-10-10 00:00:00,
taylor.lautner@gmail.com, Laut, Info, Hey, there
is an exhibition tomorrow at GSP 7.00);

INSERT INTO Mail_boxes


VALUES (NULL, 228, 2016-10-15 00:00:00,
fukuoka.23@gmail.com, Fuku, Beach, Do you know
about Sundak Beach);
INSERT INTO Mail_boxes VALUES akan mengisi value urut sesuai field
yang tersedia. Meskipun di field mail_id data yang diisi adalah NULL, tabel hasil
tetap akan menyesuaikan attribute tabel, yakni NOT NULL dan AUTO_INCREMENT.

5) MySQL Query untuk Tabel Sent_Messages


Pertama, akan diinisialisasikan pembuatan tabel Sent_Messages beserta attributnya.
Syntax yang dibuat:

Create table Sent_Messages(


message_id int NOT NULL AUTO_INCREMENT,
my_login int(3) REFERENCES Me(my_id),
date_sent datetime,
to_email_address varchar(255),
subject varchar(255),
message varchar(225),
PRIMARY KEY (message_id)
);

8
ALTER TABLE Sent_Messages AUTO_INCREMENT=20;
Syntax di atas akan menghasilkan tabel Sent_Messages dengan atribut seperti
berikut:

NAMA FIELD TYPE NULL KEY DEFA OTHER DETAILS


ULT
message_id integer NO PK 1 AUTO
INCREMENT
my_login Integer (3) YES FK FK ke table Me
field my_id
date_sent datetime
to_email_address varchar(255 YES
subject varchar(255 YES
message varchar(255 YES
Query ALTER TABLE Sent_Messages akan mengubah isi tabel
Sent_Messages dengan menginisialisasikan AUTO_INCREMENT=20. Artinya
increment akan dimulai dari angka 20

Kemudian tabel diisi dengan value sesuai dengan Tabel 5 yang terdapat di
lampiran (lihat Tabel 5. Rancangan Isi Data dalam Tabel Sent_MessagesTabel 4.
Rancangan Isi Data dalam Mail_boxes). Syntax:

INSERT INTO Sent_Messages


VALUES (NULL, 228, 2015-10-06 00:00:00,
cookiezilla@gmail.com, PKM-K, Tolong dilengkapi);

INSERT INTO Sent_Messages


VALUES (NULL, 229, 2015-10-17 00:00:00,
fitry.p@gmail.com, Charity, Mohon donasi korban
bencana Garut);

INSERT INTO Sent_Messages


VALUES (NULL, 230, 2015-10-18 00:00:00,
mida.fat@gmail.com, GAN, Gerakan Pungut Sampah
serentak seluruh Indonesia);

9
INSERT INTO Sent_Messages
VALUES (NULL, 231, 2015-10-18 00:00:00,
cintia123@gmail.com, Tugas, Ayo survey);

INSERT INTO Sent_Messages


VALUES (NULL, 227, 2015-10-18 00:00:00,
billboll@gmail.com, Flght, Ini itinenarynya buat
besok ke SG);
INSERT INTO Sent_Messages VALUES akan mengisi value urut sesuai
field yang tersedia. Meskipun di field message_id data yang diisi adalah NULL,
tabel hasil tetap akan menyesuaikan attribute tabel, yakni NOT NULL dan
AUTO_INCREMENT.

6) MySQL Query untuk Tabel Notifications


Pertama, akan diinisialisasikan pembuatan tabel Notifications beserta attributnya.
Syntax yang dibuat:

Create table Notifications(


notification_id int NOT NULL AUTO_INCREMENT,
my_login int(3) REFERENCES Me(my_id),
date_received datetime,
subject varchar(255),
message varchar(255),
PRIMARY KEY (notification_id)
);
ALTER TABLE Notifications AUTO_INCREMENT=40;

Query ALTER TABLE Notifications akan mengubah isi tabel Notifications


dengan menginisialisasikan AUTO_INCREMENT=40. Artinya increment akan dimulai
dari angka 40. Namun demikian, di tabel hasil tidak sesuai dengan query yang
dituliskan. Hal ini disebabkan value tabel telah diisi sebelumnya. Baru kemudian
diberikan query ALTER TABLE. Sehingga query tidak berpengaruh apa-apa.

10
Syntax di atas akan menghasilkan tabel Notifications dengan atribut seperti
berikut:

NAMA FIELD TYPE NULL KEY DEFA OTHER DETAILS


ULT
Notification_id integer NO PK 1 AUTO INCREMENT
my_login Integer (3) YES FK FK ke table Me field
my_id
date_received datetime
subject varchar(255) YES
message varchar(255) YES
Kemudian tabel diisi dengan value sesuai dengan Tabel 6 yang terdapat di
lampiran (lihat Tabel 6. Rancangan Isi Data dalam Tabel NotificationsTabel 4.
Rancangan Isi Data dalam Mail_boxes). Syntax:

INSERT INTO Notifications


VALUES (NULL, 228, 2016-08-01 00:00:00, Teman,
Permintaan teman diterima);

INSERT INTO Notifications


VALUES (NULL, 229, 2016-08-10 00:00:00, Humas UGM,
Jalan ditutup);

INSERT INTO Notifications


VALUES (NULL, 230, 2016-08-15 00:00:00, Wisuda,
Wisuda pasca tanggal 19 Okt);

INSERT INTO Notifications


VALUES (NULL, 227, 2016-08-18 00:00:00, Quiz, Quiz
ada di elisa);

INSERT INTO Notifications


VALUES (NULL, 231, 2016-08-20 00:00:00, Deadline
bayar, Bayar jaket ditunggu nanti);

11
INSERT INTO Sent_Messages VALUES akan mengisi value urut sesuai
field yang tersedia. Meskipun di field message_id data yang diisi adalah NULL,
tabel hasil tetap akan menyesuaikan attribute tabel, yakni NOT NULL dan
AUTO_INCREMENT.

7) MySQL Query untuk Tabel Updates


Pertama, akan diinisialisasikan pembuatan tabel Updates beserta attributnya.
Syntax yang dibuat:

Create table Updates(


update_id INT NOT NULL AUTO_INCREMENT,
my_login int(3) REFERENCES Me(my_id),
date_received datetime,
subject varchar(255),
message varchar(255),
PRIMARY KEY (update_id)
);
ALTER TABLE Updates AUTO_INCREMENT=40;

Query ALTER TABLE Updates akan mengubah isi tabel Updates dengan
menginisialisasikan AUTO_INCREMENT=50. Artinya increment akan dimulai dari
angka 50.

Syntax di atas akan menghasilkan tabel Updates dengan atribut seperti berikut:

NAMA FIELD TYPE NULL KEY DEFA OTHER DETAILS


ULT
update_id integer NO PK 1 AUTO INCREMENT
my_login Integer (3) YES FK FK ke table Me field
my_id
date_received datetime
subject varchar(255) YES
message varchar(255) YES

12
Kemudian tabel diisi dengan value sesuai dengan Tabel 7 yang terdapat di
lampiran (lihat Tabel 7. Rancangan Isi Data dalam Tabel UpdatesTabel 4. Rancangan
Isi Data dalam Mail_boxes). Syntax:

INSERT INTO Updates


VALUES (NULL, 228, 2016-08-01 00:00:00, Teman,
Permintaan teman diterima);

INSERT INTO Updates


VALUES (NULL, 231, 2016-09-21 00:00:00, Pesan Baru,
Fitry telah mengirimkan pesan ke emailmu);

INSERT INTO Updates


VALUES (NULL, 228, 2016-09-22 00:00:00, Facebook,
Facebook diperbarui);

INSERT INTO Updates


VALUES (NULL, 227, 2016-09-23 00:00:00, Facebook,
Nikmati fitur baru FB Messanger);

INSERT INTO Updates


VALUES (NULL, 230, 2016-09-25 00:00:00, Line, Line
telah diperbarui);

INSERT INTO Updates


VALUES (NULL, 229, 2016-09-25 00:00:00, Line,
Download sticker AADC sekarang juga);

INSERT INTO Updates VALUES akan mengisi value urut sesuai field yang
tersedia. Meskipun di field update_id data yang diisi adalah NULL, tabel hasil tetap
akan menyesuaikan attribute tabel, yakni NOT NULL dan AUTO_INCREMENT.

8) Menampilkan tabel beserta isinya


Query:
SELECT *FROM Me;

13
SELECT *FROM Social_Networks;
Akan menampilkan tabel Me dan Social Network beserta isinya. Tabel yang
dihasilkan telah sesuai dengan rancangan tabel yang dibuat.
Query:
SELECT my_login, my_id, network_code, my_email_name,
my_email_password, DATE_FORMAT (date_signed_up,
%e/%c/%Y) as date_signed_up FROM My_Email_Logins;

Akan menampilkan tabel My_Email Logins sesuai rancangan tabel. Field


date_signed_up diganti format tanggalnya. Ketika sebelumnya formatnya 'YYYY-
MM-DD HH:MM:SS' menjadi berformat DD/MM/YYYY.
%e Hari dalam bulan, dalam bentuk numerik (00 31)
%c Bulan dalam bentuk numerik (00-12)
%Y Tahun dalam bentuk numerik 4 digit
Query:
SELECT *FROM Mail_boxes;
SELECT *FROM Sent_Messages;
SELECT *FROM Notifications;
SELECT *FROM Updates;

Akan menampilkan tabel Mail_boxes, Sent_Messages, Notifications, dan Updates


beserta isi tabel. Tabel yang dihasilkan telah sesuai dengan rancangan tabel.

9) Memanipulasi tabel
Menampilkan tabel berisi network_code, network_name, my_id,
my_email_name, to_email_address
SELECT p1.network_code, p1.network_name, p2.my_id,
p2.my_email_name, p3.to_email_address
FROM Social_Networks AS p1, My_Email_Logins as p2,
Sent Messages as p3
Query tidak memberikan hasil sesuai yang diharapkan karena tidak ada
klausa where yang mengkaitkan antar tabel. Terdapat banyak data duplikat
yang tidak diperlukan. Untuk membenahi kesalahan tersebut, query yang
diberikan adalah:

14
SELECT
e.network_code,e.network_name,Me.my_id,c.my_email_nam
e,d.to_email_address
FROM Social_Networks as
e,Me,Sent_Messages as d,My_Email_Logins as c
WHERE(c.my_login=d.my_login) AND (c.my_id=Me.my_id)
AND (c.network_code=e.network_code)
Hasil eksekusi akan menghasilkan tabel:
Networ Network_nam My_id My_email_na To_email_addre
k_code e me ss
51010 Facebook 104 a.azkiya@gma cookiezilla@g
il.com mail.com
51011 Line 103 umi.a17@gmai fitry.p@gmail.c
l.com om
51011 Line 102 zaenal.a@gmai mida.fat@gmai.
l.com cco
51011 Line 101 aqilah23@yah Charice.l@gmai
oo.com l.com
51010 Facebook 102 Zaenal.a@gma billboll@gmail.
il.com com

Menampilkan tabel berisi my_email_name, from_email_address, subject,


message

SELECT p2.my_email_name, p3.from_email_address,


p3.subject, p3.message
FROM My_Email_Logins AS p2, Mail_boxes AS p3

Query tidak memberikan hasil sesuai yang diharapkan karena tidak ada
klausa WHERE yang mengkaitkan antar tabel dan tidak ada pendefinisian
untuk mengambil hasil dari field subject dan message. Terdapat pula
banyak data duplikat yang tidak diperlukan. Untuk membenahi kesalahan
tersebut, query yang diberikan adalah:

15
SELECT
e.my_email_name,c.from_email_address,c.subject,c.mess
age
FROM My_Email_Logins as e, Mail_boxes as c
WHERE(c.my_login=e.my_login)
Hasil eksekusi query tersebut menghasilkan tabel:
My_email_na From_email Subject message
me _address
Zaenal.a@gm cookjames Hello Hello, I am James Cook from
ail.com @gmail.com Sydney
a.azkiya@gm Fukuoka23 Beach Do you know about Sundak
ail.com @gmail.com beach
Umi.a17@gm Kristen.duns Task Lets do the task tomorrow
ail.com t@gmail.co
m
Zaenal.a@gm Charice.l@g Holida Where did you go last holiday
ail.com mail.com y
Aqilah23@ya Taylor.lautn Info Hey, there is an exhibition today
hoo.com er@gmail.co at GSP 7.00
m

Menampilkan tabel my_id, first_name, count


SELECT Me.my_id, Me.first_name, count(* )
FROM Me, My_Email_Logins, Mail_boxes,
WHERE Me.my_id=My_Email_Logins.my_id
AND My_Email_Logins.my_login = Mail_boxes.my_login
GROUP BY Me.my_id;

Prosedur telah berjalan dengan baik dan sesuai dengan yang direncanakan.
Query menghasilkan tabel yang berisi my_id, first_name, dan
count. Dimana count adalah jumlah pesan yang masuk di
mail_boxes yang dikelompokkan berdasarkan id pengguna.
Hasil:

16
My_id First_name Count(*)
101 Aqilah 1
102 Zaenal 2
103 Umi 1
104 Azkal 1

Menampilkan tabel first_name, count, subject, message

SELECT Me.my_id, Me.first_name, count(* )


FROM Me, My_Email_Logins, Mail_boxes,
WHERE Me.my_id=My_Email_Logins.my_id
AND My_Email_Logins.my_login = Mail_boxes.my_login
GROUP BY Me.my_id;

Query tidak memberikan hasil sesuai yang diharapkan. Untuk


memperbaiki kesalahan, query yang diberikan adalah:

SELECT T1.first_name, T2.subject, T2.message


FROM (SELECT Me.first_name, count(*) FROM Me,
Mail_boxes, Sent_Messages, Notifications, Updates,
My_Email_Logins WHERE
Mail_boxes.my_login=Sent_Messages.my_login AND
Notifications.my_login=Updates.my_login AND
My_Email_Logins.my_login AND Updates.my_login GROUP
BY Me.first_name ) AS T1
left JOIN (SELECT Mail_boxes.subject,
Mail_boxes.message, Me.my_id from Mail_boxes,
My_Email_Logins, Me WHERE
My_Email_Logins.my_login=Mail_boxes.my_login OR
Me.my_id=My.Email_Logins.my_id) AS T2
ON T2.my_id=T1.my_id
Hasil yang diberikan akan menggabungkan dua SELECT di SQL karena
menggunakan RIGHT OUTER JOIN.
First_name Count Subject Message
Aqilah 100 Hello Hello, I am James Cook from
Sydney

17
Azkal 100 Beach Do you know about Sundak
Beach
Umi 100 Task Lets do the task tomorrow
Zaenal 100 Hello Hello I am James Cook from
Sydney
Holiday Where did you go last holiday

10) Instruksi Tambahan


mengecek apakah database yang dibackup tersedia. Database TA_44042
tersedia. Query:
show databases
keluar dari MySQL Console. Query:
quit
Membuat database backup dan menyalin isi database asli ke database
backup
create database TA_44042_backup
mysqludump u praktikan p databases TA_44042_backup
TA_44042>Desktop/DataPraktikum/Aqilah_44042/backup.sql
lock-tables=false
Membuka kembali MySQL console
mysql u praktikan p
Menghapus database backup dan database asli.
drop database TA_44042
drop database TA_44042_backup
Menyalin database backup.sql ke DataPraktikum/Aqilah_44042

IV. KESIMPULAN

1. Pada unit 1, dikenalkan apa itu database dan cara memanipulasinya. Database
adalah sekumpulan data yang disimpan secara sistematis dan dapat dimanipulasi
untuk mendapatkan informasi-informasi yang dianggap penting. Perintah untuk
membuat database adalah create <nama_database>. Untuk membuat tabel
dengan perintah:

18
Create table <nama_table> (<field 1> <tipe data>(<ukuran),
<field n><tipe data>(<ukuran));
Untuk mengubah struktur tabel dengan perintah ALTER, dan untuk menghapus
dengan perintah DROP. Unit 1 membuat database mahasiswa.
2. Pada Unit 2, dikenalkan bahwa tabel bisa diberi instruksi field harus diisi (NOT
NULL), value di field harus unik (PRIMARY KEY), memasukkan data
(INSERT), menampilkan isi tabel (SELECT), mengurutkan value (ORDER BY),
dan mengubah isi data(UPDATE). Unit 2 membuat database mahasiswa dengan
tabel nilai mata kuliah mahasiswa.
3. Pada unit 3, dikenalkan cara membuat operator di MySQL. Operator-operator yang
bisa digunakan adalah operator rasional (=,>,<,>=,<=,<>), operator BETWEEN
dan NOT BETWEEN, operator LIKE dan NOT LIKE, serta operator AND
dan OR. Unit 3 membuat database penjualan di toko handphone.
4. Pada unit 4, adalah penggunaan syntax JOIN untuk menggabungkan informasi dari
dua tabel atau lebih. Terdapat beberapa macam bentuk JOIN, yakni : CROSS
JOIN(penggabungan tanpa adanya kondisi), INNER JOIN(penggabungan dengan
kondisi), STRAIGHT JOIN(penggabungan dengan kondisi tanpa klausa WHERE),
LEFT JOIN(menampilkan tabel di sebelah kanannya), RIGHT
JOIN(menampilkan tabel di sebelah kirinya). Unit 4 membuat database penjualan
toko computer.
5. Pada Unit 5 dipahamkan mengenai CONSTRAINT. CONSTRAINT adalah batasan
atau aturan pada tabel. Jenis-jenis CONSTRAINT yang dipakai dalam MySQL
adalah NOT NULL, UNIQUE, PRIMARY KEY, dan FOREIGN KEY. NOT NULL
menyatakan bahwa kolom tidak boleh ada yang bernilai NULL. UNIQUE
menyatakan bahwa setiap nilai di kolom bersifat unik. PRIMARY KEY membentuk
key yang unik sebagai identifikasi dari tiap baris data. FOREIGN KEY adalah field
yang nilainya direferensikan ke PRIMARY KEY di kolom tabel lain. Unit 5
membuat database berisi tabel identitas mahasiswa dan tabel mata kuliah yang
ditawarkan.
6. Tugas akhir membuat database yang ada di media sosial dan memanipulasi data
sehingga diperoleh informasi-informasi yang penting. Query yang dijalankan
adalah ekstraksi dari query-query yang telah dipelajari dari unit-unit sebelumnya.

19
V. DAFTAR PUSTAKA
Hindrianto, H. (2012, September). Pengertian Database. Retrieved from TermasMedia:
http://www.termasmedia.com/65-pengertian/69-pengertian-database.html

(2016). Panduan Praktikum Basis Data (TIF 202P). Yogyakarta: Departemen Teknik Elektro dan
Teknologi Informasi.

SQL Auto Increment Field. (n.d.). Retrieved from W3Schools:


http://www.w3schools.com/sql/sql_autoincrement.asp

The DATE, DATETIME, and TIMESTAMP Types. (n.d.). Retrieved from MySQL Documentation:
http://dev.mysql.com/doc/refman/5.7/en/datetime.html

Ullrich, S. (2015, April 29). What is the relationship between SHA-2 and SHA-256". Retrieved from
StackExchange Security: http://security.stackexchange.com/questions/87154/what-is-the-
relationship-between-sha-2-and-sha-256

Wicks, D. (2015, November 17). How to Create and Manage the Best for Social Networking Website.
Retrieved from Social Media Today: http://www.socialmediatoday.com/social-
networks/how-create-and-manage-best-database-social-networking-sites

20
VI. LAMPIRAN

LAMPIRANError! Reference source not found.

Tabel 1. Rancangan Isi Data dalam Tabel Me

My_id First_name Last_name


101 Aqilah Zahra
102 Zarnal Arifin
103 Umi Azizah
104 Azkal Azkiya

Tabel 2. Rancangan Isi Data dalam Tabel Social_Networks

Network_code Network_name Network_description


51010 Facebook Facebook is a free social networking
website
51011 Line Line is new communication app

Tabel 3. Rancangan Isi Data dalam My_Email_Logins

My_login My_id Network_code Date_signed_up My_email_name My_email_password


227 102 51010 16/10/2011 Zaenal.a@gmail.com SHA2(check, 224)
228 104 51010 7/04/2013 a.azkiya@gmail.com SHA2(tes, 224)
229 103 51010 12/01/2013 Umi.a17@gmail.com SHA2(best. 224)
230 102 51011 21/01/2016 Zaenal.a@gmail.com SHA2(cocok,224)

21
231 101 51011 22/02/2016 Aqilah23@yahoo.com SHA2(pas, 224)

Tabel 4. Rancangan Isi Data dalam Mail_boxes

Tabel 5. Rancangan Isi Data dalam Tabel Sent_Messages

Tabel 6. Rancangan Isi Data dalam Tabel Notifications

Tabel 7. Rancangan Isi Data dalam Tabel Updates

Update_id My_login Date_received Subject Message

Tabel 8.Rancangan Foreign Key

22

Anda mungkin juga menyukai