ANALISIS DAN PERANCANGAN
3.6. Perancangan Database
3.6.1. Perancangan Database
Berikut ini merupakan rancangan database Sistem Rekomendasi Software Antivirus. A. Tabel user
Berikut ini adalah rancangan dari tabel user.
user PK user_id INTEGER username VARCHAR(100) password VARCHAR(100) full_name VARCHAR(100) level VARCHAR(10) Gambar 3.26 Rancangan Tabel user
Tabel user berfungsi sebagai tempat untuk menyimpan data pengguna. Tabel user memiliki lima attribut, dengan rincian sebagai berikut.
1. user_id, merupakan sebuah attribut yang berfungsi sebagai primary key dari tabel user. Attribut ini bertipe integer dan auto increment.
2. username, merupakan sebuah attribut yang berfungsi menyimpan username
pengguna. Attribut ini bertipe varchar.
3. password, merupakan sebuah attribut yang berfungsi menyimpan password
pengguna. Attribut ini bertipe varchar.
4. full_name, merupakan sebuah attribut yang berfungsi menyimpan nama lengkap pengguna. Attribut ini bertipe varchar.
5. level, merupakan sebuah attribut yang berfungsi menyimpan level akses pengguna. Attribut ini bertipe char.
B. Tabel rating
Berikut ini adalah rancangan dari tabel rating.
rating PK rating_id INTEGER product_id INTEGER user_id INTEGER 1_rating INTEGER 2_rating INTEGER 3_rating INTEGER 4_rating INTEGER avg_rating DECIMAL(10,2)
Gambar 3.27 Rancangan Tabel rating
Tabel rating berfungsi sebagai tempat menyimpan rating yang diberikan seorang pengguna terhadap sebuah produk. Tabel rating memiliki 8 attribut, dengan rincian sebagai berikut.
1. rating_id, merupakan sebuah attribut yang berfungsi sebagai primary key dari tabel rating. Attribut ini bertipe integer dan auto increment.
2. product_id, merupakan sebuah attribut yang berfungsi menyimpan product_id yang merupakan id yang mewakili satu buah produk. Attribut ini bertipe integer. 3. user_id, merupakan sebuah attribut yang berfungsi menyimpan user_id yang
merupakan id yang mewakili satu orang pengguna. Attribut ini bertipe integer. 4. 1_rating, merupakan sebuah attribut yang berfungsi menyimpan rating untuk
produk memiliki empat buah kriteria untuk diberi rating). Attribut ini bertipe
integer.
5. 2_rating, merupakan sebuah attribut yang berfungsi menyimpan rating untuk kriteria kedua yang diberikan oleh pengguna terhadap suatu produk (satu buah produk memiliki empat buah kriteria untuk diberi rating). Attribut ini bertipe
integer.
6. 3_rating, merupakan sebuah attribut yang berfungsi menyimpan rating untuk kriteria ketiga yang diberikan oleh pengguna terhadap suatu produk (satu buah produk memiliki empat buah kriteria untuk diberi rating). Attribut ini bertipe
integer.
7. 4_rating, merupakan sebuah attribut yang berfungsi menyimpan rating untuk kriteria keempat yang diberikan oleh pengguna terhadap suatu produk (satu buah produk memiliki empat buah kriteria untuk diberi rating). Attribut ini bertipe
integer.
8. avg_rating, merupakan sebuah attribut yang berfungsi menyimpan rating rata-rata yang diberikan oleh pengguna terhadap suatu produk (hasil dari perhitungan rata- rata keempat kriteria rating). Attribut ini bertipe decimal.
C. Tabel product product PK product_id INTEGER brand_id INTEGER title VARCHAR(100) price DECIMAL(10,2) year DATETIME period CHAR(10) image_link CHAR(10) avg_ovr_rating DECIMAL(10,2) avg_1_rating DECIMAL(10,2) avg_2_rating DECIMAL(10,2) avg_3_rating DECIMAL(10,2) avg_4_rating DECIMAL(10,2) tot_ratings INTEGER
Gambar 3.28 Rancangan Tabel product
Tabel rating berfungsi sebagai tempat menyimpan produk antivirus. Tabel product memiliki 16 attribut, dengan rincian sebagai berikut.
1. product_id, merupakan sebuah attribut yang berfungsi sebagai primary key dari tabel product. Attribut ini bertipe integer dan auto increment.
2. title, merupakan sebuah attribut yang berfungsi menyimpan nama produk. Attribut ini bertipe varchar.
3. brand_id, merupakan sebuah attribut yang berfungsi menyimpan brand_id yang merupakan id suatu brand atau yang mewakili satu brand. Attribut ini bertipe
integer.
4. price, merupakan sebuah attribut yang berfungsi untuk menyimpan harga dalam dollar suatu produk. Attribut ini bertipe integer.
5. year, merupakan sebuah attribut yang berfungsi menyimpan tahun rilis suatu produk.
6. period, merupakan sebuah attribut yang berfungsi menyimpan lama lisensi suatu produk.
7. image_link, merupakan sebuah attribut yang berfungsi menyimpan link gambar suatu produk. Attribut ini bertipe varchar.
8. avg_ovr_rating, merupakan sebuah attribut yang berfungsi menyimpan rating rata- rata dari semua rating rata-rata yang diberikan oleh semua pengguna terhadap produk tersebut. Attribut ini bertipe decimal.
9. avg_1_rating, merupakan sebuah attribut yang berfungsi menyimpan rating rata- rata dari semua rating kriteria pertama yang diberikan oleh semua pengguna terhadap produk tersebut. Attribut ini bertipe decimal.
10.avg_2_rating, merupakan sebuah attribut yang berfungsi menyimpan rating rata- rata dari semua rating kriteria kedua yang diberikan oleh semua pengguna terhadap produk tersebut. Attribut ini bertipe decimal.
11.avg_3_rating, merupakan sebuah attribut yang berfungsi menyimpan rating rata- rata dari semua rating kriteria ketiga yang diberikan oleh semua pengguna terhadap produk tersebut. Attribut ini bertipe decimal.
12.avg_4_rating, merupakan sebuah attribut yang berfungsi menyimpan rating rata- rata dari semua rating kriteria keempat yang diberikan oleh semua pengguna terhadap produk tersebut. Attribut ini bertipe decimal.
13.tot_rating, merupakan sebuah attribut yang berfungsi menyimpan jumlah pengguna yang pernah memberikan rating terhadap produk tersebut. Attribut ini bertipe integer.
D. Tabel brands
brands
PK brand_id INTEGER
brand_name VARCHAR(10)
Gambar 3.29 Rancangan Tabel brands
Tabel brands berfungsi sebagai tempat menyimpan brand yang ada, seperti Microsoft,
Kaspersky, Malwarebytes, Norton, dll. Tabel brands memiliki 2 attribut, dengan rincian sebagai berikut.
1. brand_id, merupakan sebuah attribut yang berfungsi sebagai primary key dari tabel brands. Attribut ini bertipe integer dan auto increment.
2. brand_name, merupakan sebuah attribut yang berfungsi menyimpan nama sebuah brand. Attribut ini bertipe varchar.
E. Tabel features
features
PK feature_id INTEGER
feature_name VARCHAR(100)
Gambar 3.30 Rancangan Tabel features
Tabel features berfungsi sebagai tempat menyimpan fitur-fitur yang ada. Tabel features memiliki 2 attribut, dengan rincian sebagai berikut.
1. feature_id, merupakan sebuah attribut yang berfungsi sebagai primary key dari tabel features. Attribut ini bertipe integer dan auto increment.
2. feature_name, merupakan sebuah attribut yang berfungsi menyimpan nama sebuah fitur. Attribut ini bertipe varchar.
product_feature
PK product_feature_id INTEGER feature_id INTEGER product_id INTEGER Gambar 3.31 Rancangan Tabel product_feature
Tabel product_feature berfungsi sebagai penghubung antara tabel product dengan tabel features. Satu buah antivirus dapat memiliki beberapa fitur sekaligus, seperti
Anti Virus, Internet Security, Parental Control, dll. Tabel product_feature memiliki 3 attribut, dengan rincian sebagai berikut.
1. product_feature_id, merupakan sebuah attribut yang berfungsi sebagai primary key dari tabel product_feature. Attribut ini bertipe integer dan auto increment. 2. feature_id, merupakan sebuah attribut yang berfungsi menyimpan id fitur.
Attribut ini bertipe integer.
3. product_id, merupakan sebuah attribut yang berfungsi menyimpan id produk. Attribut ini bertipe integer.
G. Tabel os
os
PK os_id INTEGER
os_name VARCHAR(100)
Gambar 3.32 Rancangan Tabel os
Tabel os berfungsi sebagai tempat menyimpan sistem operasi. Tabel os memiliki 2 attribut, dengan rincian sebagai berikut.
1. os_id, merupakan sebuah attribut yang berfungsi sebagai primary key dari tabel os. Attribut ini bertipe integer dan auto increment.
2. os_name, merupakan sebuah attribut yang berfungsi menyimpan nama sistem operasi. Attribut ini bertipe varchar.
osver
PK osver_id INTEGER
osver_name VARCHAR(100) os_id INTEGER
Gambar 3.33 Rancangan Tabel osver
Tabel osver berfungsi sebagai tempat menyimpan versi sistem operasi. Satu buah sistem operasi dapat memiliki banyak versi, seperti Windows, yang memiliki versi Vista, 7, dan 8. Tabel osver memiliki 3 attribut, dengan rincian sebagai berikut.
1. osver_id, merupakan sebuah attribut yang berfungsi sebagai primary key dari tabel osver. Attribut ini bertipe integer dan auto increment.
2. osver_name, merupakan sebuah attribut yang berfungsi menyimpan nama versi sistem operasi. Attribut ini bertipe varchar.
3. os_id, merupakan sebuah attribut yang berfungsi menyimpan id sistem operasi, yang menghubungkan dengan tabel os. Attribut ini bertipe integer.
I. Tabel product_platform
product_platform
PK product_platform_id INTEGER
osver_id INTEGER
product_id INTEGER Gambar 3.34 Rancangan Tabel product_platform
Tabel product_platform berfungsi sebagai penghubung antara tabel product dengan tabel osver. Satu buah antivirus dapat compatible untuk beberapa platform sekaligus. Tabel product_platform memiliki 3 attribut, dengan rincian sebagai berikut.
1. product_platform_id, merupakan sebuah attribut yang berfungsi sebagai
primary key dari tabel product_platform. Attribut ini bertipe integer dan auto increment.
2. osver_id, merupakan sebuah attribut yang berfungsi menyimpan id osver. Attribut ini bertipe integer.
3. product_id, merupakan sebuah attribut yang berfungsi menyimpan id produk. Attribut ini bertipe integer.
3.6.2. Relasi Antar Tabel
Berikut ini merupakan pemaparan rancangan relasi antar tabel di dalam sistem rekomendasi antivirus. user PK user_id INTEGER username VARCHAR(100) password VARCHAR(100) full_name VARCHAR(100) level VARCHAR(10) brands PK brand_id INTEGER brand_name VARCHAR(10) features PK feature_id INTEGER feature_name VARCHAR(100) os PK os_id INTEGER os_name VARCHAR(100) osver PK osver_id INTEGER osver_name VARCHAR(100) os_id INTEGER product PK product_id INTEGER brand_id INTEGER title VARCHAR(100) price DECIMAL(10,2) year DATETIME period CHAR(10) image_link CHAR(10) avg_ovr_rating DECIMAL(10,2) avg_1_rating DECIMAL(10,2) avg_2_rating DECIMAL(10,2) avg_3_rating DECIMAL(10,2) avg_4_rating DECIMAL(10,2) tot_ratings INTEGER product_feature PK product_feature_id INTEGER feature_id INTEGER product_id INTEGER product_platform PK product_platform_id INTEGER osver_id INTEGER product_id INTEGER rating PK rating_id INTEGER product_id INTEGER user_id INTEGER 1_rating INTEGER 2_rating INTEGER 3_rating INTEGER 4_rating INTEGER avg_rating DECIMAL(10,2)
BAB 4