Anda di halaman 1dari 7

STUDI KASUS 1

Saat ini situs-situs jejaring sosial seperti Facebook, Friendster, MySpace, dan lain-lain
sudah semakin populer. Pada tutorial ini akan dijelaskan cara membuat sebuah database
dan table melalui command MySQL pada Implementasi Rancangan Basis Data Situs
Jejaring Sosial. Sebelumnya, berikut dirancang suatu basis data dengan menggunakan
MySQL dari salah satu situs social networking, dalam hal ini rancangan email pada
Facebook. Rancangan basis data yang diperlukan yaitu sesuai model data berikut ini :

Dengan melihat rancangan model data di atas, maka dapat disusun suatu basis data
menggunakan syntax MySQL yang merepresentasikan masing-masing model data.
Tabel yang diperlukan dalam penyusunan basis data ini yaitu tabel ME,
SOCIAL_NETWORKS, MY_EMAIL_LOGINS, MAIL_BOXES, SENT_MESSAGE,
NOTIFICATIONS, dan UPDATES. Pembuatan masing-masing tabel dapat dijelaskan
secara lebih rinci melalui penjelasan sebagai berikut :
1). Membuat Database FACEBOOK
1
2
3
4

mysql> create database facebook;


Query OK, 1 row affected (0.00 sec)
mysql> use facebook;
Database changed

2). Membuat Tabel ME


Tabel ME secara umum berisi identitas user (pengguna) email Facebook. Sesuai
dengan rancangan model data di atas, pada tabel ini diperlukan empat kolom parameter
meliputi my_id, first_name, last_name,dan other_details. Syntax MySQL yang
digunakan untuk membuat tabel data ME ini adalah sebagai berikut :
1mysql> create table ME(my_id int(30) not null primary key, first_name
varchar(40
2), last_name varchar(40), other_details varchar(100));
3Query OK, 0 rows affected (0.72 sec)
Untuk melihat hasil pembuatan tabel ME di atas digunakan perintah sebagai berikut :
1 mysql> describe ME;
2 +---------------+--------------+------+-----+---------+-------+
| Type
| Null | Key | Default | Extra |
3 | Field
+---------------+--------------+------+-----+---------+-------+
4
| int(30)
| NO | PRI | NULL |
|
5 | my_id
| varchar(40) | YES |
| NULL |
|
6 | first_name
|
last_name
|
varchar(40)
|
YES
|
|
NULL
|
|
7
| NULL |
|
8 | other_details | varchar(100) | YES |
+---------------+--------------+------+-----+---------+-------+
9
4 rows in set (0.01 sec)
10

Tampak dalam tabel di atas bahwa field my_id dijadikan sebagai PK (primary key).
Kunci primer digunakan untuk menyatakan bahwa suatu nilai tidak boleh ada yang
sama dan nilai tersebut harus diisi (NOT NULL). Suatu kolom yang didefinisikan
dengan constraint NOT NULL tidak boleh berisi nilai NULL. Oleh karena itu, kolom
yang berfungsi sebagai kunci primer (primary key) otomatis tidak boleh NULL.
Berikut deskripsi untuk masing-masing field yang diperlukan :

Field my_id berisi nama ID sebagai identitas pengguna yang digunakan untuk
melakukan login ke dalam sistem Facebook. Field my_id ini bertipe data
bilangan integer sepanjang 10 digit.

1mysql> describe SOCIAL_NETWORKS;


2+---------------------+-------------+------+-----+---------+-------+
| Type
| Null | Key | Default | Extra |
3| Field
+---------------------+-------------+------+-----+---------+-------+
4
| int(25)
| NO | PRI | NULL |
|
5| network_code
| varchar(30) | YES |
| NULL |
|
6| network_name
| NULL |
|
7| network_description | varchar(50) | YES |
+---------------------+-------------+------+-----+---------+-------+
8
3 rows in set (0.03 sec)
9
Berikut deskripsi untuk masing-masing field yang diperlukan :

Field network_code berisi nama kode jaringan yang digunakan pengguna. Field
network_code ini bertipe data bilangan integer sepanjang 25 digit. Field
network_code merupakan primary key yang digunakan untuk tabel ini.

Field last_name berisi data nama akhir pengguna Facebook. Field last_name
bertipe data varchar (karakter) sepanjang 40 digit,

Field network_name berisi data nama jaringan yang digunakan pengguna. Field
network_name bertipe data varchar (karakter) sepanjang 30 digit,

Field other_details berisi data lain yang berfungsi sebagai keterangan mengenai
pengguna. Field other_details bertipe data varchar (karakter) sepanjang 100
digit.

Field network_description berisi deskripsi singkat mengenai jaringan yang


digunakan. Field network_description bertipe data varchar (karakter) sepanjang
50 digit.

Field first_name berisi data nama awal pengguna Facebook. Field first_name
bertipe data varchar (karakter) sepanjang 40 digit,

3). Membuat Tabel SOCIAL_NETWORKS


Tabel SOCIAL_NETWORKS secara umum berisi jenis detail mengenai situs jaringan
sosial yang digunakan pengguna. Sesuai dengan rancangan model data di atas, pada
tabel ini diperlukan empat kolom parameter meliputi network_code, network_name,
dan network_description.
Syntax MySQL yang digunakan untuk membuat tabel data SOCIAL_NETWORKS ini
adalah sebagai berikut :
1mysql> create table SOCIAL_NETWORKS(network_code int(25) not null
primary key, n
2etwork_name varchar(30), network_description varchar(50));
3Query OK, 0 rows affected (0.11 sec)
Untuk melihat hasil pembuatan tabel SOCIAL_NETWORKS di atas digunakan
perintah sebagai berikut :

4). Membuat Tabel MY_EMAIL_LOGINS


Tabel MY_EMAIL_LOGINS secara umum berisi detail login email pengguna. Sesuai
dengan rancangan model data di atas, pada tabel ini diperlukan tujuh kolom parameter
meliputi my_login, my_id, network_code, date_signed_up, my_email_name,
my_email_password, dan other_details.
Syntax MySQL yang digunakan untuk membuat tabel data MY_EMAIL_LOGINS ini
adalah sebagai berikut :
1mysql> create table MY_EMAIL_LOGINS(my_login varchar(30) not null
2primary key, m
y_id int(10), network_code int(20), date_signed_up date,
3my_email_name varchar(5
40), my_email_password varchar(50), other_details varchar(50),
5constraint my_id_f
6k foreign key(my_id) references ME(my_id), constraint network_code_fk
foreign ke

y(network_code) references SOCIAL_NETWORKS(network_code));


Query OK, 0 rows affected (0.16 sec)

Untuk melihat hasil pembuatan tabel MY_EMAIL_LOGINS di atas digunakan


perintah sebagai berikut :
1 mysql> describe MY_EMAIL_LOGINS;
2 +-------------------+-------------+------+-----+---------+-------+
| Type
| Null | Key | Default | Extra |
3 | Field
+-------------------+-------------+------+-----+---------+-------+
4
| varchar(30) | NO | PRI | NULL |
|
5 | my_login
|
my_id
|
int(10)
|
YES
|
MUL
|
NULL
|
|
6
| int(20)
| YES | MUL | NULL |
|
7 | network_code
|
date_signed_up
|
date
|
YES
|
|
NULL
|
|
8
| varchar(50) | YES |
| NULL |
|
9 | my_email_name
| NULL |
|
10| my_email_password | varchar(50) | YES |
| varchar(50) | YES |
| NULL |
|
11 | other_details
+-------------------+-------------+------+-----+---------+-------+
12
7 rows in set (0.02 sec)
13
Berikut deskripsi untuk masing-masing field yang diperlukan :

Field my_login berisi ID login email Facebook yang digunakan pengguna. Field
my_login ini bertipe data varchar sepanjang 30 digit. Field my_login
merupakan primary key yang digunakan untuk tabel ini.
Field my_id berisi nama ID sebagai identitas pengguna yang digunakan untuk
melakukan login ke dalam sistem Facebook. Field ini merupakan suatu foreign
key yang mempunyai nilai yang sama seperti field my_id (PK) pada tabel ME.
Constraint foreign key dalam hal ini dimaksudkan untuk membentuk relasi
antara tabel MY_EMAIL_LOGINS dan tabel ME. Field my_id bertipe data
integer sepanjang 10 digit.
Field network_code berisi nama kode jaringan yang digunakan pengguna. Field
network_code bertipe data integer sepanjang 20 digit. Field ini merupakan
suatu foreign key yang mempunyai nilai yang sama seperti field network_code
(PK) pada tabel ME. Constraint foreign key dalam hal ini dimaksudkan untuk
membentuk relasi antara tabel MY_EMAIL_LOGINS dan tabel
SOCIAL_NETWORKS.

Field date_signed_up berisi tanggal ketika pengguna terdaftar sebagai akun


email Facebook. Field date_signed_up bertipe data date yang merupakan tipe
data khusus untuk data penanggalan dalam MySQL.

Field my_email_name berisi nama alamat email yang digunakan pengguna


ketika mendaftar sebagai akun email. Field my_email bertipe data varchar
(karakter) sepanjang 50 digit.

Field my_email_password berisi data password yang diberikan pengguna sesuai


dengan ID masing-masing dalam akun email. Field my_email_password bertipe
data varchar (karakter) sepanjang 50 digit.

Field other_details berisi data lain yang berfungsi sebagai keterangan/deskripsi


keanggotaan pengguna dalam sistem login email. Field other_details bertipe
data varchar (karakter) sepanjang 50 digit.

5). Membuat Tabel MAIL_BOXES


Tabel MAIL_BOXES secara umum berisi data mailbox atau kotak masuk sebagai
tempat menampung pesan yang masuk ke email pengguna. Sesuai dengan rancangan
model data di atas, pada tabel ini diperlukan delapan kolom parameter meliputi
mail_id, my_login, date_received, from_email_address, from_name, subject, message
dan other_details.
Syntax MySQL yang digunakan untuk membuat tabel data MAIL_BOXES ini adalah
sebagai berikut :
mysql> create table MAIL_BOXES(mail_id int(20) not null primary key,
my_login va
1rchar(30), date_receive date, from_email_address varchar(50),
2from_name varchar(
350), subject varchar(100), message varchar(500), other_details
4varchar(100), con
5straint my_login_fk foreign key (my_login) references
MY_EMAIL_LOGINS(my_login))
6;
Query OK, 0 rows affected (0.14 sec)

Untuk melihat hasil pembuatan tabel MAIL_BOXES digunakan perintah sebagai


berikut :

1 mysql> describe MAIL_BOXES;


2 +--------------------+--------------+------+-----+---------+-------+
| Type
| Null | Key | Default | Extra |
3 | Field
+--------------------+--------------+------+-----+---------+-------+
4
| int(20)
| NO | PRI | NULL |
|
5 | mail_id
| varchar(30) | YES | MUL | NULL |
|
6 | my_login
|
date_received
|
date
|
YES
|
|
NULL
|
|
7
| NULL |
|
8 | from_email_address | varchar(50) | YES |
|
from_name
|
varchar(50)
|
YES
|
|
NULL
|
|
9
| varchar(100) | YES |
| NULL |
|
10| subject
|
message
|
varchar(500)
|
YES
|
|
NULL
|
|
11
| varchar(100) | YES |
| NULL |
|
12| other_details
+--------------------+--------------+------+-----+---------+-------+
13
8 rows in set (0.03 sec)
14
Berikut deskripsi untuk masing-masing field yang diperlukan :

Field mail_id berisi ID email Facebook terdaftar yang digunakan pengguna.


Field mail_id ini bertipe data integer sepanjang 20 digit. Field mail_id
merupakan primary key yang digunakan untuk tabel ini.

Field my_login berisi ID login email Facebook yang digunakan pengguna. Field
ini merupakan suatu foreign key yang mempunyai nilai yang sama seperti field
my_login (PK) pada tabel MY_EMAIL_LOGINS. Constraint foreign key
dalam hal ini dimaksudkan untuk membentuk relasi antara tabel
MAIL_BOXES dan tabel MY_EMAIL_LOGINS. Field my_login bertipe data
varchar sepanjang 30 digit .

Field date_received berisi tanggal ketika suatu pesan (message) diterima pada
email pengguna. Field date_received bertipe data date . yang merupakan tipe
data khusus untuk data penanggalan dalam MySQL

Field from_email_address berisi nama alamat email pengirim pesan. Field


from_email_address bertipe data varchar (karakter) sepanjang 50 digit.

Field from_name berisi data nama pengirim pesan. Field from_name bertipe
data varchar (karakter) sepanjang 50 digit.

Field subject berisi subject/topik pesan yang dikirimkan ke mailbox pengguna.


Field subject bertipe data varchar (karakter) sepanjang 100 digit.

Field message berisi data isi pesan yang dikirimkan pengirim kepada penerima
pesan. Field message bertipe data varchar (karakter) sepanjang 500 digit.

Field other_details berisi data lain yang berfungsi sebagai keterangan/deskripsi


pesan yang masuk ke dalam mailbox. Field other_details bertipe data varchar
(karakter) sepanjang 100 digit.

6). Membuat Tabel SENT_MESSAGES


Tabel SENT_MESSAGES secara umum berisi data mengenai pesan yang dikirimkan
pengguna ke pengguna lain. Sesuai dengan rancangan model data di atas, pada tabel ini
diperlukan tujuh kolom parameter meliputi message_id, my_login, date_sent,
to_email_address, subject, message dan other_details.
Syntax MySQL yang digunakan untuk membuat tabel data SENT_MESSAGES ini
adalah sebagai berikut :
mysql> create table SENT_MESSAGES(message_id varchar(10) not null
1primary key, m
2y_login varchar(30), date_sent date, to_email_address varchar(50),
subject varch
3ar(100), message varchar(500), other_details varchar(50), constraint
4my_login1_f
5k foreign key(my_login) references MY_EMAIL_LOGINS(my_login));
Query OK, 0 rows affected (0.09 sec)

Untuk melihat hasil pembuatan tabel SENT_MESSAGES digunakan perintah sebagai


berikut :
1
2
3
4
5
6
7
8
9

mysql> describe SENT_MESSAGES;


+------------------+--------------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra |
+------------------+--------------+------+-----+---------+-------+
| message_id
| varchar(10) | NO | PRI | NULL |
|
| my_login
| varchar(30) | YES | MUL | NULL |
|
| date_sent
| date
| YES |
| NULL |
|
| to_email_address | varchar(50) | YES |
| NULL |
|
| subject
| varchar(100) | YES |
| NULL |
|

10| message
| varchar(500) | YES |
| NULL |
|
11 | other_details
| varchar(50) | YES |
| NULL |
|
12+------------------+--------------+------+-----+---------+-------+
137 rows in set (0.02 sec)

tabel ini diperlukan enam kolom parameter meliputi notification_id, my_login,


date_received, subject, message dan other_details.
Syntax MySQL yang digunakan untuk membuat tabel data NOTIFICATIONS ini yaitu
sebagai berikut :

Berikut deskripsi untuk masing-masing field yang diperlukan :

Field message_id berisi ID pesan yang dikirimkan oleh pengguna. Field


message_id ini bertipe data varchar sepanjang 10 digit. Field message_id
merupakan primary key yang digunakan untuk tabel ini.

Field my_login berisi ID login email Facebook yang digunakan pengguna. Field
ini merupakan suatu foreign key yang mempunyai nilai yang sama seperti field
my_login (PK) pada tabel MY_EMAIL_LOGINS. Constraint foreign key
dalam hal ini dimaksudkan untuk membentuk relasi antara tabel
SENT_MESSAGES dan tabel MY_EMAIL_LOGINS. Field my_login bertipe
data varchar sepanjang 30 digit .

Field date_sent berisi tanggal ketika suatu pesan (message) dikirimkan oleh
pengguna. Field date_sent bertipe data date yang merupakan tipe data khusus
untuk data penanggalan dalam MySQL.

Field to_email_address berisi nama alamat email tujuan penerima pesan. Field
to_email_address bertipe data varchar (karakter) sepanjang 50 digit.

Field subject berisi subject/topik pesan yang dikirimkan ke mailbox penerima.


Field subject bertipe data varchar (karakter) sepanjang 100 digit.

Field message berisi data isi pesan yang dikirimkan oleh pengirim ke penerima.
Field message bertipe data varchar (karakter) sepanjang 500 digit.

Field other_details berisi data lain yang berfungsi sebagai keterangan/deskripsi


pesan yang dikirimkan ke pengguna lain. Field other_details bertipe data
varchar (karakter) sepanjang 50 digit.

7). Membuat Tabel NOTIFICATIONS


Tabel NOTIFICATIONS secara umum berisi data mengenai notifikasi terbaru yang
masuk ke dalam email pengguna. Sesuai dengan rancangan model data di atas, pada

mysql> create table NOTIFICATIONS(notification_id varchar(10) not null


1primary k
2ey, my_login varchar(30), date_received date, subject varchar(100),
message varc
3har(500), other_details varchar(50), constraint my_login2_fk foreign
4key(my_logi
5n) references MY_EMAIL_LOGINS(my_login));
Query OK, 0 rows affected (0.11 sec)

Untuk melihat hasil pembuatan tabel NOTIFICATIONS digunakan perintah sebagai


berikut :
1 mysql> describe NOTIFICATIONS;
2 +-----------------+--------------+------+-----+---------+-------+
| Type
| Null | Key | Default | Extra |
3 | Field
+-----------------+--------------+------+-----+---------+-------+
4
|
5 | notification_id | varchar(10) | NO | PRI | NULL |
|
my_login
|
varchar(30)
|
YES
|
MUL
|
NULL
|
|
6
| date
| YES |
| NULL |
|
7 | date_received
|
subject
|
varchar(100)
|
YES
|
|
NULL
|
|
8
| varchar(500) | YES |
| NULL |
|
9 | message
|
other_details
|
varchar(50)
|
YES
|
|
NULL
|
|
10
+-----------------+--------------+------+-----+---------+-------+
11
6 rows in set (0.05 sec)
12
Berikut deskripsi untuk masing-masing field yang diperlukan :

Field notification_id berisi ID notifikasi yang diterima oleh pengguna. Field


notification_id ini bertipe data varchar sepanjang 10 digit. Field notification_id
merupakan primary key yang digunakan untuk tabel ini.

Field my_login berisi ID login email Facebook yang digunakan pengguna. Field
ini merupakan suatu foreign key yang mempunyai nilai yang sama seperti field
my_login (PK) pada tabel MY_EMAIL_LOGINS. Constraint foreign key
dalam hal ini dimaksudkan untuk membentuk relasi antara tabel

NOTIFICATIONS dan tabel MY_EMAIL_LOGINS. Field my_login bertipe


data varchar sepanjang 30 digit .

Field date_received berisi tanggal ketika suatu notifikasi diterima oleh


pengguna. Field date_received bertipe data date yang merupakan tipe data
khusus untuk data penanggalan dalam MySQL.

Field subject berisi subject/topik notifikasi yang diterima penerima. Field


subject bertipe data varchar (karakter) sepanjang 100 digit.

Field message berisi data isi notifikasi yang diterima oleh pengguna. Field
message bertipe data varchar (karakter) sepanjang 500 digit.

Field other_details berisi data lain yang berfungsi sebagai keterangan/deskripsi


notifikasi yang diterima pengguna. Field other_details bertipe data varchar
(karakter) sepanjang 50 digit.

8). Membuat Tabel UPDATES

3
+---------------+--------------+------+-----+---------+-------+
4
| update_id
| varchar(10) | NO | PRI | NULL |
|
5
| my_login
| varchar(30) | YES | MUL | NULL |
|
6
| date_received | date
| YES |
| NULL |
|
7
| subject
| varchar(100) | YES |
| NULL |
|
8
9
| varchar(500) | YES |
| NULL |
|
10 | message
| NULL |
|
11 | other_details | varchar(50) | YES |
+---------------+--------------+------+-----+---------+-------+
12 6 rows in set (0.00 sec)
13
Berikut deskripsi untuk masing-masing field yang diperlukan :

Field update_id berisi ID update informasi yang diterima oleh pengguna. Field
update_id ini bertipe data varchar sepanjang 10 digit. Field update_id
merupakan primary key yang digunakan untuk tabel ini.

Field my_login berisi ID login email Facebook yang digunakan pengguna. Field
ini merupakan suatu foreign key yang mempunyai nilai yang sama seperti field
my_login (PK) pada tabel MY_EMAIL_LOGINS. Constraint foreign key
dalam hal ini dimaksudkan untuk membentuk relasi antara tabel UPDATES dan
tabel MY_EMAIL_LOGINS. Field my_login bertipe data varchar sepanjang 30
digit .

Field date_received berisi tanggal ketika suatu update informasi terbaru


diterima oleh pengguna. Field date_received bertipe data date yang merupakan
tipe data khusus untuk data penanggalan dalam MySQL.

Field subject berisi subject/topik update informasi yang diterima penerima.


Field subject bertipe data varchar (karakter) sepanjang 100 digit.

Field message berisi data isi update yang diterima oleh pengguna. Field
message bertipe data varchar (karakter) sepanjang 500 digit.

Field other_details berisi data lain yang berfungsi sebagai keterangan/deskripsi


update informasi yang diterima pengguna. Field other_details bertipe data
varchar (karakter) sepanjang 50 digit.

Tabel UPDATES secara umum berisi data mengenai update informasi terbaru yang
masuk ke dalam email pengguna. Sesuai dengan rancangan model data di atas, pada
tabel ini diperlukan enam kolom parameter meliputi update_id, my_login,
date_received, subject, message dan other_details.
Syntax MySQL yang digunakan untuk membuat tabel data UPDATES ini yaitu sebagai
berikut :
mysql> create table UPDATES(update_id varchar(10) not null primary key,
1my_login
2 varchar(30), date_received date, subject varchar(100), message
varchar(500), ot
3her_details varchar(50), constraint my_login3_fk foreign key(my_login)
4reference
5s MY_EMAIL_LOGINS(my_login));
Query OK, 0 rows affected (0.13 sec)

Untuk melihat hasil pembuatan tabel UPDATES digunakan perintah sebagai berikut :
1 mysql> describe UPDATES;
2 +---------------+--------------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra |

9). Melihat Tabel Database FACEBOOK


1
2
3
4
5
6

mysql> show tables;


+--------------------+
| Tables_in_facebook |
+--------------------+
| mail_boxes
|
| me
|
| my_email_logins
|

7
8
9
10
11
12
13

| notifications
|
| sent_messages
|
| social_networks
|
| updates
|
+--------------------+
7 rows in set (0.05 sec)

Anda mungkin juga menyukai