BAB III ANALISIS DAN PERANCANGAN SISTEM
3.1. Analisis Pada tahap analisis ini, penulis akan menganalisis permasalahan secara lebih mendalam dengan menganalisis kebutuhan pengguna sistem.
3.1.1. Analisis Sistem Sistem adalah sekumpulan elemen yang berhubungan dan saling mempengaruhi dalam melakukan kegiatan untuk mencapai sebuah tujuan yang sama. Analisis sistem dilakukan untuk mengetahui proses-proses yang dibutuhkan sistem dan mempelajari masalah yang akan muncul sehingga dapat menemukan pemecahan masalah sesuai dengan apa yang dibutuhkan oleh pengguna sistem. Sebagai upaya untuk memaksimalkan kebutuhan tersebut,maka selanjutnya dilakukan analisa lanjutan secara mendalam untuk menentukan fungsi yang ada pada aplikasi, serta kebutuhan perangkat lunak (software) dan perangkat keras (hardware).
3.1.2. Analisis Masalah Secara umum permasalahan yang dihadapi dalam pembuatan aplikasi ini adalah proses pengumpulan dan pengambilan data-data yang relevan terhadap masalah yang akan dianalisa. Penulis melakukan beberapa tahapan analisis terhadap permasalahan yang akan dihadapi. Proses-proses detail yang dilakukan dalam pembuatan aplikasi ini adalah sebagai berikut: 1.
Melakukan Pengambilan data film Terdapat dua sumber data film pada aplikasi ini yaitu, API Jafaik dan situs web IMDb. Data film tersebut diambil menggunakan metode cURL pada bahasa
27
pemograman PHP. Adapun data yang akan digunakan hanya beberapa, yaitu nama film, gambar, rating imdb, rating rotten tomatoes dan sinopsis film. 2.
Menterjemahkan Sinopsis Film Sinopsis yang terdapat pada IMDb menggunakan bahasa inggris. Untuk memudahkan pengguna jafaik yang berada di Indonesia, maka sinopsis film pada
aplikasi
ini
diterjemahkan
kedalam
bahasa
Indonesia
dengan
menggunakan google translate dan menyimpan hasil terjemahan pada database wordpress.
3.1.3 Analisis Fungsional Analisis fungsional pada aplikasi ini merupakan analisis lanjutan bedasarkan analisis diatas, agar hasil dari aplikasi yang akan dibuat dapat berfungsi sesuai dengan kebutuhan dan dapat dijadikan sebagai suatu pemecahan masalah dari kebutuhan pengguna. Bedasarkan analisa kebutuhan diatas maka, analisis fungsional ini terbagi menjadi dua yaitu Analisis Database API Jafaik dan Analisis Database Wordpress.
3.1.3.1 Analisis Database API Jafaik Fungsi- fungsi yang diperlukan dalam pembuatan aplikasi autopost ini adalah sebagai berikut: 1.
Pengambilan data sinopsis pada IMDb Aplikasi ini akan membaca situs web IMDb yang selanjutnya melakukan
proses pengambilan data sinopsis film. 2.
Pengambilan data pada API Jafaik Data-data ini diambil pada database Jafaik dan digunakan pada aplikasi
autopost jafaik. Beberapa data yang akan diambil pada tabel film di database API Jafaik adalah sebagai berikut: a.
Tabel nama film Tabel ini berisi judul-judul film yang diambil dari seluruh jaringan 21.
b.
Tabel rating imdb dan rating rotten tomatoes
28
Tabel ini berisi rating yang diambil dari imdb.com dan rottentomatoes.com. c.
Tabel gambar Tabel ini berisi poster film yang diambil dari jaringan 21.
Pada Tabel 3.1 dibawah ini dijelaskan spesifikasi struktur tabel film pada basis data API Jafaik : Tabel 3.1 Struktur Tabel film API Jafaik Nama field
Jenis
Lebar
id_film
varchar
8
Jaringan
varchar
5
nama_film
varchar
40
rating_rt
decimal
10,0
rating_imdb
decimal
10,0
lock_rating
tinyint
4
url
varchar
255
Gambar
varchar
255
Sinopsis
text
-
grab_time
timestamp
-
Cek
tinyint
4
3.1.3.2 Analisis Database Wordpress Pada akhir proses pembuatan aplikasi, nantinya seluruh data yang telah diambil dari API Jafaik dan sinopsis film dari situs web Internet movie database akan dimasukkan dan disimpan kedalam database wordpress pada tabel wp_post. Adapun struktur database wordpress adalah sebagai berikut:
29
Tabel 3.2 Struktur Tabel wp_posts Database Wordpress Nama field
Jenis
Lebar
ID
bigint
20
post_author
bigint
20
post_date
datetime
-
post_date_gmt
datetime
-
post_content
longtext
-
post_title
text
-
post_excerpt
text
-
post_status
varchar
20
comment_status
varchar
20
ping_status
varchar
20
post_password
varchar
20
post_name
varchar
200
to_ping
text
-
pinged
text
-
post_modified
datetime
-
post_modified_gmt
datetime
-
post_content_filtered
longtext
-
post_parent
bigint
20
guid
varchar
255
menu_order
int
11
post_type
varchar
20
post_mime_type
varchar
100
comment_count
bigint
20
Tabel wp posts inilah yang akan digunakan untuk aplikasi autopost, yang berfungsi untuk menampung data film hasil pengambilan data di IMDb dan API Jafaik.
30
3.1.4 Analisis Non Fungsional Analisis Non Fungsional ini terbagi menjadi dua analisa yaitu: 1.
Analisa Perangkat Keras dan Perangkat Lunak Setiap implementasi suatu aplikasi, maka diperlukan suatu spesifikasi
terhadap perangkat keras dan perangkat lunak yang diharapkan aplikasi akan berjalan dengan baik diatas perangkat-perangkat tersebut. Pada aplikasi ini spesifikasi perangkat keras bergantung pada tiap pengguna pada aplikasi pengguna, yang terpenting perangkat keras tersebut dapat terhubung dengan jaringan internet dan dapat membuka browser, dapat berupa PC atau notebook atau perangkat bergerak (mobile). 2.
Analisa Pengguna Aplikasi Sasaran pengguna aplikasi autopost Jafaik terbagi menjadi dua, pengguna
pertama adalah pengguna yang ingin mendapatkan rekomendasi film pada saat akan menonton film di bioskop. Pengguna hanya cukup membuka aplikasi kemudian dapat melihat daftar film yang direkomendasikan untuk ditonton. Sehingga orang awam sekalipun dapat menjalankan aplikasi autopost Jafaik ini. Sasaran pengguna kedua adalah pengelola situs Jafaik.com, karena dengan adanya aplikasi autopost ini pengelola situs tidak perlu lagi melakukan penginputan data film secara manual untuk memperbaharui data film pada situs web Jafaik.
3.2
Perancangan Perancangan merupakan proses yang dilakukan oleh perancang sistem untuk
mengerjakan spesifikasi sistem. Proses ini berisi informasi dari sistem tersebut. Perancangan yang baik harus mengetahui bagaimana mendapatkan efek yang dibutuhkan oleh spesifikasi tersebut dengan cara paling efisien dan fleksibel. Menurut Jogiyanto. HM (1991), dalam bukunya Analisis Dan Disain Sistem, perancangan sistem dapat diartikan sebagai berikut : 1.
Tahap setelah analisis dari siklus pengembangan sistem
2.
Pendefinisian dari kebutuhan-kebutuhan fungsional
3.
Persiapan untuk rancang bangun implementasi
31
4.
Menggambarkan bagaimana suatu sistem dibentuk
5.
Yang dapat berupa penggambaran perencanaan dan pembuatan sketsa atau pengaturan dari beberapa elemen yang terpisah ke dalam satu kesatuan yang utuh dan berfungsi.
6.
Termasuk menengenai mengkonfigurasi dari komponen perangkat keras dari suatu sistem. Berdasarkan analisa diatas, maka dapat dibuat perancangan sistem dengan
membuat diagram alir untuk setiap proses yang dilakukan pada pembuatan aplikasi autopost ini. Rancangan aliran proses pada aplikasi ini akan berguna pada saat implementasi atau pada saat pembuatan program. Seperti pada diagram alir Gambar 3.1 berikut: MULAI
Ambil data film di API Jafaik
Ambil data sinopsis di IMDb.com
Menterjemahkan Sinopsis
Simpan di Database Wordpress
SELESAI
Gambar 3.1 Flowchart umum Autopost Jafaik
32
Secara umum, rangkaian proses-proses yang dilalui dalam pembuatan aplikasi tergambar pada diagram alir diatas. Proses yang dilakukan pertama kali adalah melakukan pengambilan data film pada API Jafaik, data yang diambil pada basis data API Jafaik diantaranya data nama film, rating, dan gambar film. Langkah selanjutnya adalah proses pengambilan sinopsis film pada situs IMDb (Internet movie database kemudian menterjemahkan sinopsis tersebut kedalam bahasa Indonesia. Akhir dari rangkaian proses ini adalah menyimpan seluruh hasil proses kedalam basis data wordpress Jafaik. Adapun detail dari setiap proses umum aplikasi tersebut, dapat dijelaskan sebagai berikut:
3.2.1 Perancangan Proses Ambil Data Film pada API Jafaik Untuk mengambil data pada API Jafaik, langkah pertama yang dilakukan adalah dengan melakukan koneksi pada basis data API Jafaik. Selanjutnya proses deteksi oleh aplikasi dengan membaca data film yang akan diambil, seperti data nama film, rating IMDb, rating rotten tomatoes, dan data gambar. Data-data tersebut diurutkan secara descending berdasarkan tanggal penarikan data yang paling baru. Kemudian dilakukan pengecekan kode IMDb pada setiap nama film, karena ada beberapa film dalam database yang tidak memiliki kode IMDb. Seperti pada Gambar 3.2 dibawah ini:
Gambar 3.2 Tampilan Tabel film pada database API Jafaik
33
Setelah melihat Gambar 3.2 diatas, dapat diketahui bahwa tidak semua nama film pada basis data Jafaik memiliki kode IMDb. Contohnya seperti film Percy Jackson Sea Monster dan Film Setelah 15 Tahun. Sedangkan contoh film yang memiliki kode IMDb adalah film Bay (tt0481536), The Call (tt1911644), dan film Elysium dengan kode IMDb (tt1535108). Berikut ini adalah diagram alir pengambilan data film pada API Jafaik: MULAI
Koneksi ke basis data API Jafaik
Ambil data film di tbl_film
Urutkan berdasarkan tanggal penarikan yang paling baru
Apakah ada kode IMDb?
Tidak
Ya Apakah sudah termuat di basis data Wordpress Jafaik? Tidak Lanjutkan proses
SELESAI Gambar 3.3 Flowchart Proses ambil data film pada API Jafaik
34
Ya
Jika pada saat pengecekan kode IMDb, film tersebut tidak memiliki kode imdb maka proses tidak akan dilanjutkan. Namun jika film tersebut mempunyai kode IMDb,maka proses yang dilakukan selanjutnya adalah melakukan pengecekan nama film pada basis data Wordpress Jafaik. Tujuannya adalah agar tidak terjadi duplikasi posting film. 3.2.2 Perancangan Proses Pengambilan Data Sinopsis Pada IMDB Perancangan proses pengambilan data sinopsis pada IMDB merupakan proses lanjutan dari diagram alir proses pengambilan data pada API Jafaik. MULAI
Arahkan Curl ke halaman Sinopsis Film yang dituju
Ya
Apakah mengandung kalimat ‘Add Synopsis’? Tidak Apakah panjang karakter
Ya
< 500 ? Tidak Apakah mengandung ‘This
Ya
Synopsis is too short’? Tidak Ambil Sinopsis
SELESAI Gambar 3.4 Flowchart Proses ambil data sinopsis pada IMDB
35
Seperti yang ditunjukkan oleh Gambar 3.4 diatas proses pengambilan sinopsis menggunakan fungsi Curl yang ada pada bahasa pemrograman PHP. Curl diarahkan pada halaman sinopsis pada situs IMDB. Pengambilan sinopsis ini mengarah pada film yang dituju sesuai dengan kode IMDB yang didapatkan pada saat proses pengecekan kode IMDB sesuai dengan flowchart pengambilan data film API Jafaik. Jika pada halaman sinopsis terdapat kalimat “Add Synopsis” itu artinya synopsis belum ditambahkan. Biasanya hal ini terjadi pada film-film yang baru dirilis. Contohnya seperti film Captain America pada Gambar 3.5 berikut ini:
Gambar 3.5 Tampilan film yang belum memiliki synopsis Sumber: http://www.imdb.com/title/tt1843866/?ref_=cht_mvm_2
Setelah proses pengecekan sinopsis film dilakukan, langkah berikutnya yaitu mengecek jumlah karakter sinopsis film. Jika jumlah karakter yang dimiliki sinopsis
36
<500 karakter, maka sinopsis dianggaap terlalu pendek dan sinopsis film tersebut tidak akan diambil. Jika pada halaman sinopsis terdapat kalimat “This synopsis is too short….” Seperti pada Gambar 3.6 dibawah ini, maka proses pengambilan sinopsis pun tidak dilakukan.
Gambar 3.6 Tampilan film dengan synopsis terlalu pendek Sumber:http://www.imdb.com/title/tt1843866/synopsis?ref_=tt_stry_pl
Kriteria sinopsis film pada situs IMDB, setidaknya film memiliki sinopsis yang panjang karakternya minimal sebanyak 10 baris, karena jika kurang dari itu dianggap terlalu pendek untuk dijadikan sebuah referensi film. Setelah semua proses pada flowchart diatas dijalankan dan memenuhi kriteria yang diharapkan maka proses pengambilan sinopsis dilakukan dengan menggunakan fungsi Curl. Sinopsis yang akan diambil terlebih dahulu dicari dengan menggunakan fungsi strops. Fungsi strops ini adalah untuk mencari letak posisi kemunculan awal substring dalam string. Kemudian dipotong dan dikembalikan dengan menggunakan fungsi substr. Fungsi ini adalah untuk mengambil atau memotong suatu bagian sebuah string dan menampilkannya sebagai sebuah string tersendiri. 37
3.2.3 Perancangan Proses Menterjemahkan Sinopsis Film Sinopsis film yang terdapat dalam situs IMDB adalah menggunakan bahasa Inggris. Untuk memudahkan, maka sinopsis film tersebut diterjemahkan kedalam bahasa Indonesia. Proses penterjemahannya dilakukan dengan menggunakan Google Translate. Langkah-langkah penterjemahan sinopsis tergambar dalam flowchart dibawah ini:
MULAI
Lakukan pemecahan variabel string sinopsis menjadi array
Terjemahkan perelement array melalui Google Translate
SELESAI
Gambar 3.7 Flowchart Proses penterjemahan sinopsis film
Langkah pertama yang dilakukan dalam menterjemahkan sinopsis film adalah memecah variabel string sinopsis menjadi array. Dalam bahasa pemograman, Array ini berfungsi untuk menampung data dengan tipe data yang sama namun dibedakan oleh Indeks. Indeks dapat berbentuk angka atau string. Jika indeks array berbentuk angka, maka array akan disebut indexed array (vector), sedangkan jika indeksnya berupa string, maka array akan disebut associative array. Dalam pembuatan aplikasi ini, pemecahan variabel string menjadi sebuah array adalah bertujuan untuk mempermudah dalam melakukan penerjemahan sinopsis.
38
Karena Google Translate membatasi karakter string yang akan diterjemahkan. Untuk mengakali hal tersebut, maka sinopsis dipecah menjadi menjadi tipe data array. Setelah itu barulah sinopsis dapat diterjemahkan kata perkata dengan menggunakan fungsi convert word melalui Google Translate.
3.2.4 Perancangan Proses Penyimpanan Hasil Terjemahan Sinopsis ke dalam Wordpress Agar dapat menampilkan resensi film yang telah diambil dan diterjemahkan, maka setelah proses pengambilan data sinopsis selesai dibuat langkah berikutnya adalah melakukan proses penyimpanan hasil terjemahan sinopsis kedalam wordpress Jafaik. Proses ini merupakan proses terakhir yang dilakukan dalam pembuatan aplikasi autopost. Berikut adalah diagram alir untuk proses simpan hasil terjemahan ke dalam wordpress Jafaik: MULAI
Koneksi ke basis data Jafaik
Simpan data sinopsis film ke wp_posts
Koneksi ke basis data API Jafaik
Update tbl_film set cek = 1 pada film yang baru diinput
SELESAI
Gambar 3.8 Flowchart Proses Menyimpan hasil terjemahan kedalam wordpress Jafaik
39
Dalam proses ini dilakukan dua kali proses koneksi ke database API Jafaik. Koneksi pertama dilakukan untuk pemutakhitan basis data dengan cara menyimpan atau memasukkan data baru pada tabel wp_post. Koneksi yang kedua dilakukan untuk mengupdate data film pada kolom cek yang ada pada tabel tbl_film, cek diubah menjadi =1 seperti yang ditunjukkan pada Gambar 3.9. Tujuan proses ubah kolom cek ini adalah agar pengambilan data berikutnya film tersebut tidak dieksekusi kembali.
Gambar 3.9 Tampilan kolom cek pada tabel database API Jafaik
40