TUJUAN PRAKTIKUM
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:
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
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:
3
INSERT INTO Me (first_name, last_name)
VALUES (Zaenal, Arifin);
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);
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:
6
Pertama, akan diinisialisasikan pembuatan tabel Mail_boxes beserta attributnya.
Syntax yang dibuat:
Kemudian tabel diisi dengan value sesuai dengan Tabel 4 yang terdapat di
lampiran (lihat Tabel 4. Rancangan Isi Data dalam Mail_boxes). Syntax:
7
INSERT INTO Mail_boxes
VALUES (NULL, 229, 2016-10-03 00:00:00,
Kristendunst@yahoo.com, Dunst, Task, Lets do the
task tomorrow);
8
ALTER TABLE Sent_Messages AUTO_INCREMENT=20;
Syntax di atas akan menghasilkan tabel Sent_Messages dengan atribut seperti
berikut:
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:
9
INSERT INTO Sent_Messages
VALUES (NULL, 231, 2015-10-18 00:00:00,
cintia123@gmail.com, Tugas, Ayo survey);
10
Syntax di atas akan menghasilkan tabel Notifications dengan atribut seperti
berikut:
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.
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:
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 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.
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;
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
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
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
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
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.
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
21
231 101 51011 22/02/2016 Aqilah23@yahoo.com SHA2(pas, 224)
22