• Tidak ada hasil yang ditemukan

BAB IV IMPLEMENTASI DAN PENGUJIAN

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB IV IMPLEMENTASI DAN PENGUJIAN"

Copied!
18
0
0

Teks penuh

(1)

47 4.1 Implementasi

Sistem ini dibuat dengan bahasa pemprograman PHP, jadi untuk menjalankan program tersebut harus menginstal XAMPP. XAMPP adalah perangkat lunak gratis, yang mendukung banyak sistem operasi, merupakan kompilasi dari beberapa program untuk menjankan fungsinya sebagai server yang berdiri sendiri, yang terdiri atas program Apache HTTP Server, MySQL database, dan penterjemah bahasa yang ditulis dengan bahasa pemrogramaan PHP dan Perl.

XAMPP adalah nama yang merupakan singkatan dari X (empat sistem operasi apapun), Apache, MySQL, PHP dan Perl. Program ini tersedia dalam GNU General Public License dan bebas, merupakan web server yang mudah digunakan yang dapat mampu melayani halaman dinamis.

4.1.1 Implementasi Pengambilan Data Jafaik

Jika basis data sudah dibuat atau dikembangkan, maka aplikasi grabbing Jafaik dapat dijalankan untuk mendapatkan data yang dibutuhkan untuk disimpan ke basis data kemudian dipanggil dengan API Jafaik. Langkah pertama yaitu melakukan grab kota yang memiliki jaringan cinema 21. Berikut ini adalah potongan listing program inisialisasi curl pada grab kota:

5. //deklarasi curl

6. $fname = "http://www.21cineplex.com/theaters";

7. $ch = curl_init($fname);

8. curl_setopt($ch, CURLOPT_USERAGENT, "Codular Sample cURL Request");

9. curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); //utk set sbg string dan bukan lgsg display

10. $s = curl_exec($ch);

11. curl_close($ch);

Setelah melakukan inisialisasi curl maka program telah mengambil data berupa string dari alamat pada variabel $fname yang disimpan oleh variabel $s.

Maka jika ditamplikan varibel $s akan tampil halaman utuh dari variabel $fname.

Selanjutnya dilakukan pemotongan string untuk memisahkan string yang akan

(2)

digunakan dan yang tidak dipakai akan dibuang. Berikut ini adalah potongan listing program pemotongan string pada variabel $s pada grab kota:

12. //ambil bagian penting

13. $p = strpos($s, "<li value=");

14. $s = substr($s, $p);

15. $p = strpos($s, "</ul>");

16. $s = substr($s, 0, $p-6);

Melakukan looping dengan menggunakan loop while dengan kondisi panjang variabel $s lebih dari 25 adalah proses selanjutnya setelah memisahkan string dari variabel $s, pada loop while ini maka akan didapat string id_kota sebagai variabel $buff1 dan nama_kota sebagai varibel $buff2. Berikut ini adalah potongan listing program loop while pada grab kota:

18. while (strlen($s) > 25) 19. {

20. $buff1 = "";

21. $b = 14;

22. $buff1 = substr($s, 11, 1);

23.

24. if (substr($s, 12, 1) <> "\"") 25. {

26. $buff1 = $buff1 . substr($s, 12, 1);

27. $b = 15;

28. }

29. $c = strpos($s, "</li>");

30. $buff2 = substr($s, $b, $c - $b);

31. }

Setelah script tersebut dijalankan maka hasil dari grab kota akan dimasukan pada query basis data, berikut ini adalah contoh query yang dihasilkan oleh grab kota:

INSERT INTO tbl_kota VALUES (‘3’, ‘JAKARTA’);<br>

Langkah selanjutnya setelah mendapatkan data kota yang dibutuhkan adalah melakukan grab pada teater, sama seperti grab kota, grab teater harus menginisialisasi curl pada teater tiap kota yang memiliki jaringan cinema 21.

Dengan varibel $fname sebagai alamat yang kemudian disimpan oleh variabel $s sebagai string yang utuh. Berikut ini adalah potongan listing program inisialisasi curl pada grab teater:

5. //deklarasi curl

6. $fname = "http://www.21cineplex.com/theaters/daftar-bioskop-21-di-

$kota,$id_kota.htm";

7. $ch = curl_init($fname);

8. curl_setopt($ch, CURLOPT_USERAGENT, "Codular Sample cURL Request");

(3)

9. curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); //utk set sbg string dan bukan lgsg display

10. $s = curl_exec($ch);

11. curl_close($ch);

Pada target url di variabel $fname dibutuhkan variabel kota dan id_kota yang sudah lebih dulu diambil dari grab kota. Selanjutnya adalah memisahkan string yang akan dipakai dan string yang tidak dipakai akan dibuang. Berikut ini adalah potongan listing program pemotongan string pada variabel $s grab teater:

15. //ambil bagian penting

16. $p = stripos($s, "<td class=\"title\">");

17. $s = substr($s, $p);

18. $p = stripos($s, "</table>");

19. $s = substr($s, 0, $p-6);

Melakukan looping dengan menggunakan loop while dengan kondisi panjang variabel $s lebih dari 50 adalah proses selanjutnya setelah memisahkan string dari variabel $s, pada loop while ini maka akan didapat string url sebagai variabel $buff1, string id_theater sebagai varibel $buff2, string kode_theater sebagai variabel $buff3, string alamat_theater sebagai variabel $buff4, string no_telepon_theater sebagai variabel $buff5 dan string nama_theater sebagai variabel $buff5. Berikut ini adalah potongan listing program loop while pada grab teater:

23. while (strlen($s) > 50) 24. {

25. // proses bagian URL

26. $b = 27; // posisi http dari <ol id=

27. $p = stripos($s, ".htm")+4;

28. $buff1 = substr($s, $b, $p - $b);

29.

30. // proses id teater

31. $p1 = stripos ($buff1, ",")+1;

32. $s1 = substr ($buff1, $p1);

33. $p1 = stripos ($s1, ",");

34. $buff2 = substr($s1, 0, $p1);

35.

36. // proses kode teater

37. $p1 = stripos ($buff1, ",")+1;

38. $s1 = substr ($buff1, $p1);

39. $p1 = stripos ($s1, ",")+1;

40. $s1 = substr ($s1, $p1);

41. $p1 = stripos ($s1, ".");

42. $buff3 = substr($s1, 0, $p1);

43.

44. // proses alamat teater 45. $p2 = stripos ($s, "rel=")+5;

46. $s2 = substr ($s, $p2);

47. $p2 = stripos ($s2, "<h3>");

48. $buff4 = substr($s2, 0, $p2);

(4)

49.

50. // proses telepon teater

51. $p2 = stripos ($s2, "</h3>")+5;

52. $s2 = substr ($s2, $p2);

53. $p2 = stripos ($s2, "\">");

54. $buff5 = substr($s2, 0, $p2);

55.

56. // proses nama teater 57. $s2 = substr ($s2, $p2);

58. $p2 = stripos ($s2, "</a>");

59. $buff6 = substr($s2, 0, $p2);

60. $buff6 = addslashes(str_replace("\">", "", $buff6));

Setelah script tersebut dijalankan maka hasil dari grab teater akan dimasukan pada query basis data, berikut ini adalah contoh query yang dihasilkan oleh grab teater:

INSERT INTO tbl_theater (id_theater, nama_theater, url) VALUES ('JKTANGG', 'ANGGREK XXI<span class=\"txt_mtix\"></span>',

'http://m.21cineplex.com/gui.list_schedule?sid=&cinema_id=JKTANGG&find_by

=2') ON DUPLICATE KEY UPDATE nama_theater=nama_theater;<br>

Langkah ketiga yaitu mengambil data film yang sedang main atau nowplaying pada situs jaringan cinema 21. Berbeda dari grab kota dan grab teater,

grab film ini menginisialisasi curl sebanyak tiga kali dikarenakan akan mengambil sinopsis dan rating dari situs web berbeda. Pengambilan string url gambar dan sinopsis berkaitan dengan id_film yang akan di grab sebelumnya. Pengambilan data rating berkaitan dengan nama_film yang akan di grab sebelumnya kemudian di ambil dari situs imdbapi.com yang halaman berupa JSON dan menggunakan method get untuk mendapatkan data yang dibutuhkan. Berikut ini adalah potongan listing program insialisasi curl pada grab film:

5. //deklarasi curl

6. $fname = "http://m.21cineplex.com/gui.list_movie?sid=&order=1";

7. $ch = curl_init($fname);

8. curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");

9. curl_setopt($ch, CURLOPT_HTTPHEADER, array("Referer:

http://m.21cineplex.com/index?sid="));

10. curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); //utk set sbg string dan bukan lgsg display

11. $s = curl_exec($ch);

12. curl_close($ch);

Selanjutnya adalah memisahkan string yang akan dipakai dan string yang

tidak dipakai akan dibuang. Berikut ini adalah potongan listing program

pemotongan string pada variabel $s grab teater:

(5)

14. //ambil bagian penting :D 15. $p = strpos($s, "[END]-->");

16. $s = substr($s, $p + 10);

17. $p = strpos($s, "</ol>");

18. $s = substr($s, 0, $p);

Disini akan terlihat letak perbedaan grab film dengan grab kota atau grab teater yang sudah dilakukan sebelumnya. Prosses loop while akan menjadi panjang karena terdapat inisialisasi curl lagi sebanyak dua kali yang berarti program membaca halaman berbeda pada tiap loop nya. Berikut ini adalah potongan listing program loop while pada grab film:

20. while (strpos($s, "<li><a href=") >= 0) 21. {

22. // proses bagian URL 23. $b = 13;

24. $p = strpos($s, "&order");

25. $buff1 = substr($s, $b, $p - $b);

26. $buff1 = addslashes(str_replace("list_schedule", "movie_details",

$buff1));

27.

28. // proses kode film 29. $b = 32;

30. $p = strpos($s, "&order");

31. $buff2 = substr($buff1, $b, $p - $b);

32.

33. // proses judul film

34. $b = strpos($s, "\">") + 2; //2 tuh panjang str ">

35. $p = strpos($s, "</a></li>");

36. $buff3 = trim(substr($s, $b, $p - $b));

37. $buff3 = addslashes($buff3);

Sampai disini proses loop while belum selesai oleh karena itu tidak ada kurung tutup kurawal. Selanjutnya adalah inisialisasi curl untuk sinopsis dan gambar. Berikut ini adalah potongan listing program insialisasi curl tersebut:

46. //deklarasi curl untuk sinopsis

47. $fname = "http://m.21cineplex.com/$buff1";

48. $id_film= $buff2;

49. $ch = curl_init($fname);

50. curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");

51. curl_setopt($ch, CURLOPT_HTTPHEADER, array("Referer:

http://m.21cineplex.com/"));

52. curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); //utk set sbg string dan bukan lgsg display

53. $sS = curl_exec($ch);

54. curl_close($ch);

Selanjutnya adalah memisahkan string yang akan dipakai dan string yang

tidak dipakai akan dibuang dan mengambil string url gambar dan dimasukan

sebagai variabel $gambar. Berikut ini adalah potongan listing program

pemotongan string pada variabel $sS grab film:

(6)

57. // Ambil URL gambar

58. $pS1 = stripos($sS, "image_preview");

59. $pS2 = stripos($sS, "\"", $pS1);

60. $gambar = substr($sS, $pS1, $pS2 - $pS1);

61.

62. //ambil bagian penting :D

63. $pS = strpos($sS, "\"txt_img\">")+12;

64. $sS = substr($sS, $pS); // tag <p> diambil, aslinya $pS-3 65. $pS = strpos($sS, "</a></p>"); // aslinya </div>, tapi ini utk

ambil nama pemain juga 66. $sS = substr($sS, 0, $pS+8);

67. $sS = addslashes(str_replace("<p class=\"p_movie\">", "", $sS));

Masih dalam loop while dilanjutkan dengan inisialisasi curl untuk rating_rt dan rating imdb. Berikut ini adalah potongan listing program insialisasi curl tersebut:

75. $nama_film = stripslashes($buff3);

76. $fname = "http://www.imdbapi.com/?t=" . urlencode($nama_film) .

"&y=2012&tomatoes=true" ; 77. $ch = curl_init($fname);

78. curl_setopt($ch, CURLOPT_HTTPHEADER, array("Referer:

http://www.21cineplex.com/"));

79. curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); //utk set sbg string dan bukan lgsg display

80. $sR = curl_exec($ch);

81. curl_close($ch);

Data yang didapat dari inisialisasi curl pada situs web imdbapi.com ini adalah berupan notasi JSON, maka dilakukan parsing untuk dapat membaca variabel pada notasi tersebut. Berikut ini adalah potongan listing program parsing pada variabel $sR grab film:

83. $arS = json_decode($sR);

84.

85. $rt_imdb = str_replace(".", "", $arS -> {'imdbRating'});

86. if ($rt_imdb == "55") $rt_imdb = "56";

87. if (($rt_imdb == "") or ($rt_imdb == "N/A")) $rt_imdb = "55";

88.

89. $rt_tomatoes = $arS -> {'tomatoMeter'};

90. if ($rt_tomatoes == "55") $rt_tomatoes = "56";

91. if (($rt_tomatoes == "") or ($rt_tomatoes == "N/A")) $rt_tomatoes

= "55";

92.

93. $qryR = $qryR . ";<br>\n" . "UPDATE tbl_film SET rating_rt = '$rt_tomatoes', rating_imdb = '$rt_imdb' WHERE id_film = '$id_film'";

Setelah selesai melakukan grab sinopsis dan gambar serta grab rating,

maka dilakukan pemotongan string pada variabel $s agar loop dapat berjalan dan

kembali mengambil data secara loop, Berikut ini adalah potongan listing program

pemotongan pada variabel $s grab film:

(7)

95. //potong $s

96. $p = strpos($s, "<li><a href=", 13);

97. if ($p) $s = substr($s, $p); else break;

98. }

Setelah script tersebut dijalankan maka hasil dari grab film akan dimasukan pada query basis data, berikut ini adalah contoh query yang dihasilkan oleh grab film:

INSERT INTO tbl_film (id_film, nama_film, url) VALUES ('025CM.', '5 CM', 'http://m.21cineplex.com/gui.movie_details?sid=&movie_id=025CM.') ON DUPLICATE KEY UPDATE nama_film=nama_film;<br>

UPDATE tbl_film SET sinopsis = '17 Agustus di puncak tertinggi Jawa, 5 sahabat 2 cinta, <br />

sebuah mimpi mengubah segalanya<br />

<br />

Genta, Arial, Zafran, Riani dan Ian adalah lima remaja yang <br />

telah menjalin persahabatan belasan tahun lamanya. Suatu <br />

hari mereka berlima merasa jenuh dengan persahabatan mereka <br />

dan akhirnya kelimanya memutuskan untuk berpisah, tidak <br />

saling berkomunikasi satu sama lain selama tiga bulan <br />

lamanya.<br />

Selama tiga bulan berpisah penuh kerinduan, banyak yang <br />

terjadi dalam kehidupan mereka berlima, sesuatu yang <br />

mengubah diri mereka masing-masing untuk lebih baik dalam <br />

menjalani kehidupan. Setelah tiga bulan berselang mereka <br />

berlimapun bertemu kembali dan merayakan pertemuan mereka <br />

dengan sebuah perjalanan penuh impian dan<br />

tantangan. Sebuah perjalanan hati demi mengibarkan sang <br />

saka merah putih di puncak tertinggi Jawa pada tanggal 17 <br />

Agustus. Sebuah perjalanan penuh perjuangan yang membuat <br />

mereka semakin mencintai Indonesia.<br />

Sebuah perjuangan atas impian, perjalanan hati yang merubah <br />

hidup mereka untuk selamanya<br />

</div>

<div class=\"clr\"></div>

<strong>Genre</strong>: Drama</p>

<strong>Duration</strong>: - minute</p>

<strong>Distributor</strong>: Ram Soraya</p>

<strong>Producer</strong>: Sunil Soraya</p>

<strong>Director</strong>: Rizal Mantovani</p>

<strong>Writer</strong>: </p>

<strong>Player</strong>: Herjunot Ali, Fedi Nuril, Raline Shah, Pevita Pearce, Igor Saykoji, Denny Sumargo</p>

<strong>Site</strong>: <a href=\"\" target=\"_blank\"></a></p>', gambar = 'http://m.21cineplex.com/image_preview.php?type=movie&images=025CM..jpg&w idth=100&height=147' WHERE id_film = '025CM.';<br>

UPDATE tbl_film SET rating_rt = '55', rating_imdb = '87' WHERE id_film = '025CM.';<br>

Langkah ke-empat setelah melakukan grab kota, grab teater dan grab film,

selanjutnya diperlukan grab jadwal teater untuk mengambil data film yang

diputar, jam tayangnya beserta harga tiket untuk film tersebut. Proses ini

membutuhkan kode teater yang diambil dari hasil grab teater yang sebelumnya

(8)

sudah dilakukan untuk dijadikan url pada variabel $fname. Berikut ini adalah potongan listing program inisialisasi curl pada grab jadwal teater:

5. $fname =

"http://m.21cineplex.com/gui.list_schedule?sid=&cinema_id=$kode_theat er&find_by=2";

6. $ch = curl_init($fname);

7. curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");

8. curl_setopt($ch, CURLOPT_HTTPHEADER, array("Referer:

http://m.21cineplex.com/"));

9. curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); //utk set sbg string dan bukan lgsg display

10. $sJ = curl_exec($ch);

11. curl_close($ch);

Selanjutnya dilakukan pemotongan string untuk memisahkan string yang akan digunakan dan yang tidak dipakai akan dibuang. Berikut ini adalah potongan listing program pemotongan string pada variabel $sJ pada grab jadwal teater:

13. //ambil bagian penting

14. $pJ = stripos($sJ, "[END]-->")+10;

15. $sJ = substr($sJ, $pJ);

16. $pJ = stripos($sJ, "<div class=\"box_info_schedule\">");

17. $sJ = substr($sJ, 0, $pJ);

Melakukan looping dengan menggunakan loop while adalah proses selanjutnya setelah memisahkan string dari variabel $sJ menjadi $s1j, pada loop while ini maka akan didapat string kode_film sebagai variabel $ kode_film, string harga_tiket sebagai varibel $ harga_tiket dan string jam_tayang sebagai variabel $ jam_tayang yang akan dilakukan looping kedua. Berikut ini adalah potongan listing program loop while pada grab jadwal teater:

5. while (strlen($sJ) > 20) 6. {

7. //split string

8. $pJ = stripos($sJ, "</div>");

9. $s1j = substr($sJ, 0 , $pJ);

10. $sJ = substr($sJ, $pJ+1);

11. $pJ = stripos($sJ, "</div>")+7;

12. $sJ = substr($sJ, $pJ);

13. //ambil kode_film

14. $p1 = stripos($s1j, "movie_id=")+9;

15. $kode_film = trim(substr($s1j, $p1, 6));

16. //ambil harga_tiket

17. $p1 = stripos($s1j, "Rp.")+3;

18. $harga_tiket = trim(substr($s1j, $p1, 7));

19. $harga_tiket = addslashes(str_replace(",", "", $harga_tiket));

20. $harga_tiket = addslashes(str_replace("<", "", $harga_tiket));

21. //ambil jadwal dg loop pada s1 22. $pJ = 0;

23. while ($pJ = stripos($s1j, "[" , $pJ+1)) 24. {

25. $jam = trim(substr($s1j, $pJ+1, 5));

26. }

27. }

(9)

Setelah script tersebut dijalankan maka hasil dari grab jadwal teater akan dimasukan pada query basis data, berikut ini adalah contoh query yang dihasilkan oleh grab jadwal teater:

INSERT INTO tbl_jadwal_film (tanggal_tayang, id_theater, id_film, jam_tayang, harga_tiket) VALUES ('2013-01-17', 'JKTANGG', '12CZ13', '12:15', 35000);

4.1.2 Implementasi API Jafaik

Setelah mengimplementasikan aplikasi ambil data Jafaik. Kemudian dilakukan Implementasi API Jafaik. Untuk melakukan proses yang input dirancang menggunakan form dan/atau alamat url. Maka pengambilan input menggunakan method get. Jika masukannya sesuai akan ditampilkan hasil berupa notasi JSON yang mengambil query dari basis data yang sebelumnya dibuat diproses oleh script index.php. Berikut ini adalah potongan listing program API Jafaik untuk query pada MySQL dan JSON encode:

68. $sql = mysql_query 69. ("SELECT .$isiSelect 70. FROM .$isiFrom 71. WHERE .$isiWhere") 72. or die(mysql_error());

73.

74. //merubah hasil queri ke dalam array JSON 75. $rows = array();

76. while($row = mysql_fetch_assoc($sql)) { 77. $rows[] = $row;

78. }

79. echo json_encode($rows);

Variabel $isiSelect, $isiFrom dan $isiWhere adalah query dari string masukan dan akan diprosses menjadi variabel $rows yang dideklarasikan sebagai array assosiation. Kemudian untuk menampilkan keluaran dalam format JSON

menggunakan script json_encoding pada variabel $rows.

Selain menerima masukan atau input dari form input, API Jafaik dapat juga menerima input langsung melalui alamat url yang dimasukan dengan variabel yang sesuai karena mengunakan method get. Berikut adalah contoh jika memasukan input manual melalui alamat url:

http://www.api.jafaik.com/?film=taken+2&theater=paris+van+java&jam=

(10)

4.1.3 Implementasi Halaman Beranda

Berikut adalah implementasi halamana beranda untuk API Jafaik yakni tampilan halaman beranda yang menampilkan informasi parameter API dan form yang dibuat untuk memasukan input dengan form dengan methot get kemudian form akan melakukan proses dengan melanjutkan ke index.php atau aplikasi API Jafaik yang sudah diimpplentasi sebelumnya.

Gambar 4.1 Tampilan Halaman Beranda API Jafaik

Berikut ini adalah potongan Listing form input pada halaman utama:

1. <form name="input" action="index.php" method="get">

2. <div>

3. <p>

4. film : <input type="text" name="film"><br>

5. theater : <input type="text" name="theater"><br>

6. kota : <input type="text" name="kota"><br>

7. jam : <input type="text" name="jam"><br>

8. <input type="submit" id="search-submit" value="Kirim"/>

9. </p>

10. </div>

11. </form>

4.2 Pengujian

Pada tahapan ini menjelaskan mengenai proses jalannya ujicoba terhadap

program yang dikembangkan dan menjelaskan bagaimana cara menjalankan

program, selain itu menjelaskan tentang interaksi yang perlu dilakukan antara

pemakai dengan program serta analisa hasil yang dicapai program yang

dikembangkan.

(11)

4.2.1 Lingkungan Pengujian

Dalam membuat program aplikasi ini, digunakan perangkat keras (hardware) dan perangkat lunak (software) dengan spesifikasi sebagai berikut:

agar program bisa digunakan secara baik dan benar maka dibutuhkan lingkungan yang mendukung pula. Lingkungan yang dimaksudkan adalah perangkat keras, perangkat lunak dan sistem operasi yang digunakan. Untuk itu yang harus diperhatikan adalah:

a. Perangkat Keras (Hardware) 1) Prosesor Intel Pentium 4.

2) RAM / Memori 1 Gb.

3) Hardisk 80 Gb.

4) Monitor Resolusi 1024x768 pixel 5) Keyboard dan Mouse standar.

6) Network Adapter.

b. Perangkat Lunak (Software) 1) Windows XP

2) Browser Mozilla Firefox 3) XAMPP 1.7.7:

i. Apache 2.2.9

ii. PHP 5.3.6 + PHP 4.4.9 + PEAR iii. MySQL 5.0.67

iv. phpMyAdmin 2.11.9.2

4.2.2 Skenario dan Hasil Pengujian

Sekenario pengujian membahas bagaimana pengujian dilakukan serta objek pengujian. Pada skenario pengujian ini penulis membagi dua metode pengujian, pada objek pengujian API Jafaik akan menggunakan metode Black Box Testing meliputi modul form jadwal API Jafaik, form info film API Jafaik, form

info theater API Jafaik, form info kota API Jafaik, form info theater kota API

Jafaik sedangkan pada objek pengujian pengambilan data Jafaik akan

menggunakan metode White Box Testing meliputi modul pengambilan data kota,

pengambilan data theater, pengambilan data film, pengambilan data jadwal film.

(12)

4.2.2.1 Black Box Testing

Skenario pengujian pada objek pengujian API Jafaik yang menggunakan metode Black Box Testing seperti pada Tabel 4.1.

TABEL 4.1 Skenario dan Hasil Pengujian dengan Metode Black Box Testing No Modul yang

Diuji Sifat Cara Pengujian Hasil yang Diharapkan

Hasil Pengujian

1.

Form Jadwal API Jafaik

Normal

Isi film=’5 cm’

theater=’ARION’

jam =’12:00’

atau api.jafaik.com/

index.php?film= 5 cm&theater=

ARION&kota=

&jam=12:00

Menampilkan daftar film 5 cm di theater ARION pada jam 12:00 berupa notasi

JSON

Sesuai

Tidak Normal

Isi film=’5 cm’

theater=’ARION’

jam =’00:00’

atau api.jafaik.com/

index.php?film= 5 cm&theater=

ARION&kota=

&jam=00:00

Tidak ada yang

ditampilkan Sesuai

2.

Form Info_film API

Jafaik

Normal

api.jafaik.com/

index.php?

info_film=5 cm

Menampilkan info film 5 cm berupa notasi

JSON

Sesuai

Tidak Normal

api.jafaik.com/

index.php?

info_film=55cm

Tidak ada yang

ditampilkan Sesuai

3.

Form Info_theater

API Jafaik

Normal

api.jafaik.com/

index.php?

info_theater=

ARION

Menampilkan info theater ARION berupa

notasi JSON

Sesuai

Normal

api.jafaik.com/

index.php?

info_theater=34

Menampilkan info theater ARION berupa

notasi JSON

Sesuai

Tidak Normal

api.jafaik.com/

index.php?

info_theater=

AROON

Tidak ada yang

ditampilkan Sesuai

(13)

4.

Form Info_kota API Jafaik

Normal

api.jafaik.com/

index.php?

info_kota=jakarta

Menampilkan info kota jakarta berupa

notasi JSON

Sesuai

Tidak Normal

api.jafaik.com/

index.php?

info_kota=meruya

Tidak ada yang

ditampilkan Sesuai

5.

Form Info_theater_

kota API Jafaik

Normal

api.jafaik.com/

index.php?

info_theater_kota=

jakarta

Menampilkan daftar theater di kota Jakarta

berupa notasi JSON

Sesuai

Tidak Normal

api.jafaik.com/

index.php?

info_theater_kota=

meruya

Tidak ada yang

ditampilkan Sesuai

4.2.2.2 White Box Testing

Pengujian pada objek pengujian pengambilan data Jafaik akan menggunakan metode White Box Testing. White Box Testing atau pengujian glass box adalah metode desain test case menggunakan struktur kontrol desain

prosedural untuk mendapatkan test case. Dengan menggunakan metode White Box analisis sistem akan memperoleh Test Case yang :

1. Menjamin seluruh Independent Path di dalam modul yang dikerjakan sekurang-kurangnya sekali.

2. Mengerjakan seluruh keputusan logical.

3. Mengerjakan seluruh loop yang sesuai dengan batasannya.

4. Mengerjakan seluruh struktur data internal yang menjamin validitas.

Untuk melakukan proses pengujian Test Case terlebih dahulu dilakukan penerjemahan flowchart kedalam notasi flowgraph (aliran kontrol). Ada beberapa cara istilah saat pembuatan flowgraph, yaitu :

1. Node yaitu lingkaran pada flowgraph yang menggambarkan satu atau lebih perintah prosedural.

2. Edge yaitu tanda panah yang menggambarkan aliran kontrol dari setiap node

harus mempunyai tujuan node.

(14)

3. Region yaitu daerah yang dibatasi oleh node dan edge dan untuk menghitung daerah diluar flowgraph juga harus dihitung.

4. Predicate Node yaitu kondisi yang terdapat pada node dan mempunyai karakteristik dua atau lebih edge lainnya.

5. Cyclomatic Complexity yaitu metrik perangkat lunak yang menyediakan ukuran kuantitaf dari kekompleksan logikal program dan dapat digunakan untuk mencari jumlah path dalam suatu flowgraph.

6. Independen Path yaitu jalur melintasi atau melalui program dimana sekurang- kurangnya terdapat proses perintah yang baru atau kondisi yang baru.

Rumus-rumus untuk menghitung jumlah Independen Path dalam suatu flowgraph yaitu :

1. Jumlah region flowrgaph mempunyai hubungan dengan Cyclomatic Complexity (CC).

2. V(G) untuk flowgraph dapat dihitung dengan rumus : a. V(G) = E – N + 2

Dimana :

E = Jumlah edge pada flowrgaph N = Jumlah node pada flowrgaph b. V(G) = P + 1

Dimana :

P = Jumlah predicate node pada flowrgaph

Dalam pelaksanaannya teknik pelaksanaan pengujian White Box ini mempunyai tiga langkah (Muhyuzir,1991), yaitu :

1. Menggambar flowgraph yang ditransfer oleh flowchart

2. Menghitung Cylomatic Complexity untuk flowgraph yang telah dibuat

3. Menentukan jalur pengujian dari flowgraph yang berjumlah sesuai dengan

Cyclomatic Complexity yang telah ditentukan

(15)

Pengujian modul pengambilan kota dengan metode White Box Testing adalah sebagai berikut:

1. Transformasi Flowchart modul pengambilan kota menjadi Flowgraph.

Gambar 4.2 Transformasi Flowchart menjadi Flowgraph Dari diagram alir di atas dapat dihitung cyclomatic complexity, yaitu:

Node (N) = 8

Edge (E) = 8 Predicate Node (P) = 1

a. Flowgraph mempunyai 2 region : R

1

dan R

2

b. V(G) = 8 edge – 8 node + 2 = 2 c. V(G) = 1 predicate node + 1 = 2

R

1

1

2

3

4

5

6

7

8 Y

T

R

2

Ambil string penting

Mulai

Ambil string value id_kota dan

nama_kota

Menyimpan pada basis data Inisialisasi Curl

Potong string

Masih ada?

Selesai

(16)

2. Dari hasil perhitungan cyclomatic complexity terdapat 2 independent path yaitu:

Path 1 = 1 – 2 – 3 – 4 – 5 – 6 – 7 – 8

Path 2 = 1 – 2 – 3 – 4 – 5 – 6 – 7 – 4 – 5 – 6 – 7 – 8

3. Untuk melakukan uji coba basis path di atas digunakan graph matrik.

Graph matrik merupakan matrik empat persegi yang mempunyai ukuran yang sama dengan jumlah node pada flowgraph. Adapun graph matrik pada flowgraph di atas adalah sebagai berikut:

TABEL 4.2 Graph Matrix Cyclomatic Complexity 1 2 3 4 5 6 7 8 n(E)-1

1 1 1-1=0

2 1 1-1=0

3 1 1-1=0

4 1 1-1=0

5 1 1-1=0

6 1 1-1=0

7 1 1 2-1=1

8 0

Sum(E)+1 1+1=2

4.2.4 Analisis Hasil Pengujian

Analisis sistem dilakukan terhadap data-data hasil pengujian. Analisis sistem yang dilakukan adalah analisis modul grab kota, grab thater, grab film, grab jadwal film dan form API Jafaik, maka analisis hasil pengujiannya adalah sebagai berikut:

1. Modul Form Jadwal API Jafaik, info film API Jafaik, info theater API Jafaik, info kota API Jafaik, info theater_kota API Jafaik dapat berjalan dengan baik dengan memberikan informasi sesuai dari masukan yang diterima, jika data tidak ada pada basis data maka tidak ada yang ditampilkan. Sesuai dengan hasil pada black box testing.

2. Berdasarkan hasil pengujian uji coba white box testing diatas dapat

disimpulkan bahwa flowchart benar. Hasil uji diatas juga menunjukkan

penerapan metode test case dengan pendekatan white box testing dapat

(17)

menghasilkan sistem dan proses perulangan pada flowchart di sistem menjadi efektif dan efisien.

3. Dalam pengujian white box testing penulis mengambil satu flowchart untuk

diuji sebagai wakil dari empat flowchart yang ada dalam sistem pengambilan

data Jafaik. Karena cara pengerjaannya sama antara satu flowchart dengan

flowchart yang lain.

(18)

Gambar

Gambar 4.1 Tampilan Halaman Beranda API Jafaik
TABEL 4.1 Skenario dan Hasil Pengujian dengan Metode Black Box Testing  No  Modul yang
Gambar 4.2 Transformasi Flowchart menjadi Flowgraph  Dari diagram alir di atas dapat dihitung cyclomatic complexity, yaitu:
TABEL 4.2 Graph Matrix Cyclomatic Complexity  1  2  3  4  5  6  7  8  n(E)-1  1  1  1-1=0  2  1  1-1=0  3  1  1-1=0  4  1  1-1=0  5  1  1-1=0  6  1  1-1=0  7  1  1  2-1=1  8  0  Sum(E)+1  1+1=2

Referensi

Dokumen terkait

Berdasarkan hasil uji hipotesis pada dimensi setiap aspek keterampilan psikologis yang ditinjau dari posisi dapat diketahui bahwa kesimpulan dari uji perbedaan setiap dimensi

Ennek ellenére azt tapasztaljuk – nemcsak a hivatalos levelekben, hanem a misszilisekben is –, hogy a kialakult magyar levélkezdő és -záró formulák helyett latin formulákat

Pada pernyataan do-while, tubuh loop berupa pernyataan,dengan pernyataan bisa berupa pernyataan tunggal, pernyataan majemuk ataupun pernyataan kosong. Pada pernyataan

Maka Dari Itu kita Surga Pewangi Laundry juga Menjual paket Sample pewangi Laundry isi 100ml, 250 ml , 1 literan Dengan Aneka opsi aroma parfum.. buat memperoleh Paket Sample

Dari tabel di atas variasi yang memberikan nilai rendemen yang tinggi dan penurunan bilangan kappa yang tinggi adalah pada variasi 80 – 20, yaitu 80% NaOH yang

Pada kelenjar bulbourethralis, sitoplasma sel-sel sekretoris dan sekreta di lumen kelenjar menunjukkan reaksi dengan intensitas lemah sampai kuat terhadap pewarnaan AB

Pada kenyataan taraf ini – unitarisme dan isu HAM – para pendiri negara telah mencapai kesepakatan model tindakan komunikatif, karena perjuangan mereka terhadap

Para pekerja yang karena berakhirnya kontrak kerja diberhentikan atau kontrak kerjanya tidak dipatuhi oleh pengusaha, kecuali sebagai akibat ketidakcocokkannya untuk bekerja