BAB 2 LANDASAN TEORI
2.1
Pengolahan Citra Citra (Image) sebagai salah satu komponen multimedia memegang peranan
sangat penting sebagai bentuk informasi visual. Bila ditinjau dari sudut pandang matematis, citra merupakan fungsi menerus (continue) dan intensitas cahaya pada bidang 2 dimensi. (Rinaldi Munir, 2004) Citra mempunyai karakteristik yang tidak dimiliki oleh data teks. Meskipun sebuah citra kaya akan informasi, namun seringkali citra yang dimiliki mengalami penurunan mutu misalnya mengandung cacat, warnanya terlalu kontras, kurang tajam, kabur (blurring), dan sebagainya. Tentu saja citra seperti ini menjadi lebih sulit diinterpretasikan karena informasi yang disampaikan oleh citra tersebut menjadi berkurang. Agar citra yang mengalami gangguan menjadi lebih mudah diinterpretasikan baik oleh manusia maupun oleh komputer, maka citra tersebut perlu dimanipulasi menjadi citra lain yang kualitasnya lebih baik. Bidang studi yang menyangkut hal ini adalah pengolahan citra (image processing).
2.2
Ekstraksi Kontur Menurut Pedro dalam jurnal yang berjudul Computational Geometry of Contour
Extraction pada tahun 2009, menjelaskan kontur adalah garis batas dari bentuk geometris dalam gambar digital. Karena identifikasi kontur sangat penting untuk
10
menganalisis isi gambar, ekstraksi kontur menjadi salah satu bagian penting dalam masalah computer vision dan pengenalan pola.
Gambar 2.1 (a) Bentuk dari sebuah citra digital (b) Kontur dari sebuah citra mobil Algoritma ekstraksi kontur terdapat dua tahapan utama. Tahap pertama adalah preprocessing untuk mengekstrak satu set poin berorientasi dari input gambar. Tahap kedua menentukan kontur diantara titik yang berorientasi menggunakan geometri. Tahap kedua terebut masih terdiri lagi dari beberapa langkah yaitu titik disaring dengan teknik pengelompokkan, selanjutnya titik dihubungkan berdasarkan kedekatan dan orientasi ke jalur yang mewakili kontur, dan akhirnya jalur yang disederhanakan dengan mengurangi jumlah titik yang mereka miliki. (Pedro.et al, 2009, p1) 2.2.1
Prinsip Edge Detection untuk Pencarian Letak Plat Nomor
Menurut Nelson dalam jurnalnya yang berjudul Plate Recognition pada tahun 2007 menjelaskan, langkah pertama untuk pengenalan plat nomor otomatis adalah deteksi area plat nomor kendaraan. Permasalahan ini mencakup algoritma yang mampu mendeteksi area persegi dari plat nomor pada image asli. Plat nomor didefinisikan sebagai area “persegi panjang dengan terjadinya peningkatan pada tepi horizontal dan vertikal”.
11
Pendeteksian tepi merupakan langkah pertama untuk melingkupi informasi di dalam citra. Tepi mencirikan batas-batas objek dan karena itu tepi berguna untuk proses segmentasi dan identifikasi objek di dalam citra. Tujuan operasi pendeteksian tepi (edge detection) adalah untuk meningkatkan penampakan garis batas suatu daerah atau objek di dalam citra. (Munir, 2004) 2.2.2
Edge Detection dengan Operator Gradien Pertama
Menurut Martinsky dalam tesis yang berjudul Algorithmic and Mathematical Principles Of Automatic Number Plates Recognition Systems pada tahun 2007, menyatakan bahwa perubahan intensitas yang besar dalam jarak yang singkat dipandang sebagai fungsi yang memiliki kemiringan yang besar. Kemiringan fungsi biasanya dilakukan dengan menghitung turunan pertama (gradient). Menurut Rinaldi Munir dalam buku yang berjudul Pengolahan Citra Digital dengan Pendekatan Algoritmik pada tahun 2004, karena citra f(x,y) adalah fungsi dua dimensi dalam bentuk diskrit, maka turunan pertamanya adalah secara parsial, masingmasing dalam arah x dan dalam arah y sebagai berikut:
dalam hal ini, ,
∆ ,
, ∆
,
Biasanya ∆
∆
,
∆ ∆
,
1, sehingga persamaan turunan pertama menjadi:
12
,
1,
,
,
, 1
,
Kedua turunan tersebut dapat dipandang sebagai dua buah mask konvolusi atau template sebagai berikut: 1
1 dan
1 1
Berdasarkan konvolusi dengan kedua mask (template) tersebut, kita menghitung kekuatan tepi G[f(x,y)], yang merupakan magnitude dari gradien untuk setiap pixel: , Sedangkan arah tepi
,
untuk setiap pixel: ,
Menurut Rinaldi Munir (2004), karena menghitung akar merupakan persoalan rumit, maka dalam praktek kekuatan tepi biasanya disederhanakan perhitungannya dengan menggunakan pendekatan salah satu dari alternatif rumus berikut: ,
, atau ……………(1) |
,
|
,
max
,
max |
, atau ………………(2) ,
, atau ………..(3)
|,
……………… (4)
Dalam praktek, persamaan (1) dan (4) biasanya lebih disukai dan lebih mudah dikerjakan karena mengandung jumlah operasi aritmetika yang lebih sedikit.
13
Hasil pendeteksian tepi adalah citra tepi (edge image) yang dinotasikan sebagai g(x,y) , yang nilai setiap pixel-nya menyatakan kekuatan tepi, ditunjukkan oleh persamaan matematika: ,
,
Dalam menentukan apakah suatu pixel merupakan tepi atau bukan, dapat dinyatakan dengan operasi pengambangan berikut: ,
1, 0,
,
Dalam hal ini T adalah nilai ambang (threshold), piksel tepi dinyatakan putih sedangkan piksel bukan tepi dinyatakan hitam.
2.3
Prosedur ALPR ALPR singkatan dari Automatic License Plate Recognition. Sebenarnya banyak
istilah yang intinya mengarah pada pengenalan plat nomor secara otomatis selain ALPR, diantaranya ANPR (Automatic Number Plate Recognition) atau Car Plate Recognition atau LPR (License Plate Recognition). Menurut Wawrzyniak dalam License plate localization and recognition in camera pictures pada tahun 2002, ALPR melibatkan sejumlah langkah-langkah proses prosedural di antara adalah: a) Ekstrak wilayah tertentu dari frame. b) Konversikan ke skala abu-abu (gray scale). c) Lakukan deteksi tepi (edge detection) berdasarkan thresholding otomatis atau manual. d) Buat atau bangkitkan list of objects (blobs) dengan dimensi minimum
14
Dalam computer vision, blob detection mengacu pada modul visual yang bertujuan untuk mendeteksi poin atau daerah dalam gambar yang berbeda dalam sifat-sifat seperti kecerahan atau warna yang dibandingkan dengan sekitarnya. e) Ekstrak rectangular blobs (yang membatasi rasio aspek sesuai) dari citra skala abu-abu (gray scale) Setelah terbentuk blob, maka dilakukan ekstraksi sampai seluruh blob akhirnya membentuk suatu rectangle (persegi panjang). f) Terapkan Otsu Thresholding ke blobs yang sudah diekstrak. Dalam computer vision dan pengolahan citra (image processing), metode Otsu digunakan secara otomatis melakukan bentuk berbasis histogram citra thresholding, atau reduksi gambar gray level ke citra biner. Algoritma ini mengasumsikan bahwa gambar yang akan di-threshold berisi dua kelas pixel atau bimodal histogram (misalnya latar depan atau latar belakang) kemudian menghitung optimum threshold yang memisahkan dua kelas intra class varians adalah minimal. g) Buat atau bangkitkan lists of objects (blobs) dari blob yang telah diekstrak. h) Lakukan iterasi atau perulangan melalui blobs jika jumlah minimum ditemukan. i) Hapus blob dengan dimensi luar 20% dari rata-rata yang diekstrak. j) Buat gambar baru dari blob yang diekstrak (vertikal untuk memastikan karakter dan tidak ekstraksi kata dari OCR) k) Masukkan gambar baru tersebut ke OCR (digunakan tesseract OCR open source). l) Lakukan parsing hasil OCR.
15
2.4
Optical Character Recognition (OCR) Manusia mengenali objek-objek yang ada di sekelilingnya, dengan cara ini mata
menerapkan mekanisme optik. Namun sementara otak melihat input, kemampuan untuk memahami sinyal-sinyal ini bervariasi pada setiap orang sesuai dengan banyak faktor. Begitu halnya dengan OCR (Optical Character Recognition). Teknologi ini memungkinkan mesin untuk secara otomatis mengenali karakter melalui mekanisme optik. (AIM.Inc, 2000) AIM. Inc dalam artikel berjudul Optical Character Recognition pada tahun 2000 juga
menjelaskan,
OCR
banyak
digunakan untuk
mengkonversi buku-buku
dan dokumen ke dalam bentuk file elektronik, misalnya dalam bentuk PDF dan lain sebagainya, untuk mengkomputerisasi sistem pencatatan misalnya di kantor, atau untuk mempublikasikan teks pada website. OCR memungkinkan untuk mengedit teks, mencari kata atau frase, dan menerapkan teknik seperti mesin penerjemahan, text-to-speech dan text mining. OCR biasa digunakan untuk bidang penelitian dalam pengenalan pola, kecerdasan buatan (artificial intelligent) dan computer vision. Sistem OCR memerlukan kalibrasi untuk membaca font yang spesifik, versi awal harus diprogram dengan gambar karakter masing-masing, dan bekerja pada satu font pada suatu waktu. Sistem cerdas (intelligent system) dengan tingkat akurasi yang tinggi pengakuan untuk font yang paling sekarang umum. Beberapa sistem mampu mereproduksi output diformat yang erat mendekati halaman yang dipindai asli termasuk gambar, kolom dan non-tekstual komponen. (Nelson, 2007)
16
Secara umum, proses pengenalan karakter yang dilakukan oleh OCR disajikan pada diagram di bawah ini. Segmentasi
Normalisasi
Ekstraksi Fitur
Hasil Pengenalan
Gambar 2.2 Proses pengenalan oleh OCR secara umum Proses segmentasi bertujuan untuk memisahkan wilayah (region) objek dengan wilayah latar belakang agar objek dalam citra mudah dianalisis dalam rangka mengenali objek. Dengan demikian citra yang besar terdiri dari objek karakter dapat disegmentasi menjadi masing-masing karakter. Proses selanjutnya adalah normalisasi, yang di dalamnya masih terdapat 2 proses lagi yaitu: •
Scalling, adalah fungsi untuk mengubah ukuran suatu gambar dimana scalling merupakan istilah yang cenderung untuk memperbesar gambar, dan shrink untuk memperkecil gambar.
•
Thinning, adalah operasi morfologi yang digunakan untuk menghapus piksel foreground yang terpilih dari gambar biner, biasanya digunakan untuk proses mencari tulang dari sebuah objek.
Langkah selanjutnya adalah ekstraksi fitur (feature extraction). Feature Extraction adalah suatu proses analisis citra dalam mengidentifikasi sifat-sifat yang
17
melekat dari tiap-tiap karakter atau disebut juga dengan fitur dari sebuah objek yang terdapat dalam citra. Karakteristik ini digunakan dalam mendeskripsikan sebuah objek atau atribut dari sebuah obyek, kemudian fitur yang dimiliki oleh karakter dapat digunakan sebagai proses recognition. Setelah langkah-langkah di atas selesai dilakukan, maka OCR siap untuk melakukan tahap pengenalan dan akan memberikan output atau hasil pengenalan karakter angka maupun huruf. Saat ini banyak sekali OCR yang ada, salah satunya adalah tesseract ocr yang akan dibahas selanjutnya. 2.5
Tesseract OCR Tesseract adalah engine open source OCR yang awalnya dikembangkan HP
(Hewlett-Packard) antara tahun 1984 dan 1994. Tesseract dimulai dari sebuah proyek penelitian PhD di HP Laboratorium, Bristol oleh Ray Smith. Setelah penelitian bersama antara HP Labs Bristol dan Scanner HP divisi di Colorado, tesseract secara signifikan memimpin dalam akurasi atas mesin komersial tetapi tidak menjadi produk. (Ray Smith, 2005, p1) Tahap perkembangan berikutnya kembali di HP Lab Bristol sebagai investigasi OCR untuk kompresi. Pada akhir proyek ini, pada tahun 1994, pengembangan berhenti sepenuhnya. Mesin ini dikirim ke UNLV (University Nevada Las Vegas) pada tahun 1995 menjalani tes akurasi tahunan OCR. (Ray Smith, 2005)
18
2.5.1 Artitektur Tesseract
Gambar 2.3 Arsitektur tesseract Tesseract OCR mengasumsikan input yang diterima berupa sebuah binary image. Pertama, analisis dilakukan pada komponen terhubung/Connected Component (CC) untuk menemukan di mana outline komponen disimpan. Pada tahap ini outlines dikumpulkan bersama menjadi blob. Blob disusun menjadi baris teks, sedangkan garis dan region dianalisis untuk pitch tetap dan teks proporsional. Baris teks dipecah menjadi kata-kata berbeda menurut jenis spasi karakter. Teks dengan pitch tetap dibagi menjadi sel-sel karakter. Teks proporsional dipecah menjadi kata-kata dengan menggunakan ruang pasti dan ruang fuzzy. Pengenalan kata pada image dilakukan pada dua tahap proses yang disebut pass-two (Smith, 2009). Pada pass pertama dilakukan untuk mengenali masing-masing kata pada gilirannya. Kata-kata yang sukses pada pass pertama yaitu kata-kata yang terdapat di kamus dan tidak ambigu kemudian diteruskan ke adaptive classifier sebagai data pelatihan. Begitu adaptive classifier memiliki sampel yang cukup, adaptive classifier ini dapat memberikan hasil klasifikasi bahkan pada pass pertama. Proses pass kedua
19
dilakukan untuk mengenali kata-kata yang mungkin saja kurang dikenali atau terlewatkan pada pass pertama, pada tahap ini adaptive classifier telah memperoleh informasi lebih dari pass pertama. Tahap terakhir menyelesaikan ruang fuzzy dan memeriksa hipotesis alternatif pada ketinggian-x untuk mencari teks dengan smallcap. Tesseract dirancang untuk mengenali teks putih di atas latar hitam dan teks hitam di atas latar putih. Hal ini menyebabkan rancangan mengarah pada analisis komponen terhubung/connected component (CC) dan operasi pada outline komponen. Langkah pertama setelah analisis CC ialah menemukan blob pada region teks. Sebuah blob merupakan unit putatif yang dapat diklasifikasikan, yang mana bisa satu atau lebih komponen-komponen yang saling tumpang tindih secara horizontal. Menurut Smith (2009) ada beberapa langkah yang dilakukan oleh tesseract untuk pengenalan karakter adalah sebagai berikut : 2.5.2
Pencarian Teks-Line dan Kata
Algoritma line finding dirancang supaya halaman yang miring dapat dikenali tanpa harus de-skew (proses untuk mengubah halaman yang miring menjadi tegak lurus) sehingga tidak menurunkan kualitas gambar. Kunci bagian proses ini adalah blob filtering dan line construction. (Smith, 2009,p1). Filtered blob lebih cenderung cocok dengan model non-overlapping, parallel, tetapi berupa garis-garis miring (sloping line). Pemrosesan blob oleh koordinat x memungkinkan untuk menetapkan blob ke sebuah baris teks yang unik. Sementara penelusuran kemiringan di seluruh halaman, dengan banyak mengurangi bahaya penugasan ke baris teks yang salah dengan adanya kemiringan (skew). Setelah blob tersaring ditetapkan ke garis, sebuah median terkecil dari kotak-kotak yang cocok
20
digunakan untuk memperkirakan baseline, dan blob yang sudah difilter dengan baik dipasang kembali ke garis yang sesuai. (Ray Smith, 2009, p2) Langkah terakhir dari proses pembuatan garis (line creation) adalah menggabungkan blob yang overlapping, menempatkan diacritical marks dengan dasar yang tepat, dan menghubungkan bagian-bagian dari beberapa karakter yang rusak secara benar. (Ray Smith, 2009, p2) 2.5.3 Baseline Fitting Setelah baris teks telah ditemukan, garis pangkal (baseline) dicocokan secara lebih tepat menggunakan quadratic spline. Hal ini merupakan salah satu kelebihan sistem OCR dan memungkinkan tesseract untuk menangani halaman dengan garis pangkal (baseline) yang miring. (Ray Smith, 2009, p2) Baseline dicocokan oleh partisi blob menjadi beberapa kelompok dengan sebuah perpindahan kontinu yang cukup layak untuk garis pangkal lurus yang asli. Quadratic spline dicocokan ke partisi yang paling padat (diasumsikan sebagai baseline) dengan kuadrat terkecil. Quadratic spline memiliki keuntungan bahwa perhitungan ini cukup stabil tetapi merugikan jika muncul diskontinuitas ketika beberapa segmen spline diperlukan. Dalam hal ini, cubic spline bekerja lebih baik. (Ray Smith, 2009, p2)
Gambar 2.4 Contoh halaman dengan baseline miring 2.5.4 Perkiraan Ketinggian X Pada Teks Setelah menemukan baris teks dan menyusun blok blob menjadi baris-baris, Tesseract mengestimasi ketinggian-x untuk setiap baris teks. Pertama, algoritma estimasi ketinggian-x menentukan batas-batas maksimum dan minimum dari ketinggian-
21
x yang dapat diterima berdasarkan ukuruan garis inisial yang dihitung untuk blok. Kemudian, setiap baris secara terpisah, ketinggian bounding box blob terjadi pada garis dikuantisasi dan dikumpulkan menjadi sebuah histogram. Dari histogram ini, algoritma pencarian ketinggian-x mencari ketinggian dua mode yang paling sering terjadi yang cukup jauh terpisah untuk menjadi ketinggian-x dan ketinggian-ascender. Untuk mengantisipasi noise, algoritma memastikan mode ketinggian yang diambil menjadi ketinggian-x dan ketinggian-ascender memiliki jumlah yang cukup atau kejadiankejadian relatif terhadap jumlah keseluruhan blob pada baris. 2.5.5 Chopping atau Pemotongan Karakter Tesseract menguji garis teks (text line) untuk menentukan apakah mereka merupakan fixed pitch. Bila ditemukan fixed pitch text, tesseract memotong kata-kata menjadi karakter-karakter. (Ray Smith, 2009, p2)
Gambar 2.5 Pemotongan karakter 2.5.6
Pemisahan Karakter Terhubung
Apabila hasil dari pengenalan kata tidak memuaskan, tesseract berusaha untuk memperbaiki hasil dengan memisahkan blob dengan keyakinan terburuk dari pengklasifikasian (classifier) karakter. Kandidat untuk titik-titik pemisahan ditemukan dari simpul cekung dari pendekatan poligonal outline dan mungkin saja terdapat titik cekung berlawanan lainnya atau segmen garis. Ini akan menghabiskan sampai 3 pasang titik pemotongan untuk memisahkan karakter yang terhubung dari set ASCII. (Ray Smith, 2009, p3)
22
Gambar 2.6 Kandidat Titik Potong Gambar 2.6 di atas menunjukkan satu set calon titik potong (chop points) dengan tanda panah dan potongan terpilih sebagai sebuah garis melintasi kerangka dimana huruf ‘r’ bersentuhan dengan ‘m’. (Ray Smith, 2005, p3) 2.5.7
Asosiasi Karakter Patah
Ketika potongan yang potensial tidak ada lagi, ketika kata tersebut masi belum cukup baik, hal ini diberikan kepada associator. Associator membuat pencarian A* (best first search) dari segmentasi grafik yang mungkin kombinasi dari blob yang dipotong secara maksimal ke dalam kandidat karakter. Ketika A* segmentation digunakan untuk diimplementasikan pertama kali pada tahun 1989, akurasi tesseract terhadap karakter yang rusak cukup baik yang menjadikan tesseract mesin komersial pada saat itu. (Ray Smith, 2005, p3)
Gambar 2.7 Sebuah kata yang rusak bisa dikenali 2.5.8 Klasifikasi Bentuk 2.5.8.1 Static Classifier Sebuah versi awal dari tesseract digunakan topologi fitur yang dikembangkan dari karya Shillman. Ide selanjutnya melibatkan penggunaan segmen dari poligonal
23
pendekatan sebagai fitur, tapi pendekatan ini juga tidak cukup kuat untuk karakter yang rusak. Solusi terobosan yang digunakan adalah gagasan bahwa fitur yang tidak diketahui tidak perlu sama dengan fitur dalam data pelatihan. Selama pelatihan, segmen dari pendekatan poligonal digunakan untuk feature, namun pada proses pengenalan, feature kecil yang panjangnya tetap (dalam unit ternormalisasi) diekstraksi dari outline dan dicocokkan secara many-to-one terhadap prototipe feature yang ter-cluster pada data pelatihan. (Ray Smith, 2009,p3) 2.5.8.2 Adaptive Classifier Tesseract tidak menggunakan template classifier, tetapi menggunakan feature yang sama seperti static classifier. Perbedaan yang signifikan antara static classifier dan adaptive classifier, terlepas dari data pelatihan, adaptive classifier menggunakan normalisasi isotropic baseline/x-height, sedangkan static classifier menormalisasi karakter oleh centroid (momen pertama) untuk posisi dan momen kedua untuk normalisasi ukuran yang anisotropic. (Ray
Smith, 2005, p4) Feature merupakan komponen pendekatan poligonal dari outline sebuah bentuk. Pada training, vektor fitur 4 dimensi (x, posisi-y, arah, panjang) diturunkan dari setiap elemen pendekatan poligonal dan dikelompokkan untuk membentuk prototipikal vektor fitur. Pada pengenalan, elemen-elemen poligon dipecah menjadi bagian-bagian yang lebih pendek dengan panjang yang sama, sehingga dimensi panjang dieliminasi dari vektor fitur. Beberapa fitur pendek dicocokkan dengan setiap fitur prototipikal dari training, hal ini membuat proses klasifikasi lebih kuat terhadap karakter yang terputus. (Ray Smith, 2005, p5)
24
Gambar 2.8 (a) Prototipe huruf ‘h’ (b) Pencocokan huruf ‘h’ terhadap prototipe
2.6
EmguCV EmguCV merupakan suatu library open source lintas platform. EmguCV
sebenarnya adalah .Net Wrapper pada OpenCV library image processing. EmguCV dapat memanggil fungsi-fungsi pada OpenCV dari bahasa pemrograman kompatibel seperti C#, VB, C++, IronPhyton, dan lain sebagainya. EmguCV dapat dikompilasi di Mono dan dijalankan pada sistem operasi linux, MacOS, windows, dan lain sebagainya. (emgucv.com) Kelebihan EmguCV diantaranya adalah: 1. Lintas Platform Tidak seperti wrapper lainnya seperti opencv.net, sharpercv.net yang mana menggunakan code yang tidak aman. EmguCV ditulis sepenuhnya menggunakan bahasa pemrograman C#. 2. Dapat digunakan untuk lintas bahasa pemrograman dan diberikan contoh code EmguCV dapat digunakan untuk beberapa bahasa pemrograman seperti C#, VB.Net, C++, dan IronPhyton. 3. Terdapat kelas gambar dengan warna generic dan memiliki kedalaman.
25
4. Dapat menggunakan fungsi-fungsi openCV.
2.7
Software Engineering Menurut Roger S. Pressman dalam bukunya yang berjudul Software Engineering
A Practitioners Approach 7 edition (2010), Software Engineering (Rekayasa Piranti Lunak) merupakan teknik rekayasa pengembangan piranti lunak (software) dengan menggunakan
metode
atau
tahapan-tahapan
pengembangan
software
untuk
menghasilkan software yang berkualitas. 2.7.1 Model Proses Prototyping Dalam suatu kegiatan rekayasa pengembangan piranti lunak (software), diperlukan model proses yang sesuai. Dalam skripsi ini, akan digunakan model proses prototyping untuk proses pengembangan piranti lunaknya, yang tahapannya disajikan dalam gambar 2.9 berikut ini.
26
Gambar 2.9 Model Proses Prototyping Dari beberapa model proses yang ada dalam software engineering, dipilih model proses prototyping untuk diaplikasikan dalam pembuatan skripsi ini karena dalam prototyping dituntut lebih cepat dalam tahapan pembuatan software sehingga lebih cocok diterapkan untuk menyelesaikan skripsi yang memerlukan waktu pembuatan software tidak banyak. Software yang dihasilkan nanti hanya dalam bentuk prototype sederhana yang masih bisa dikembangkan lebih lanjut. Roger S. Pressman menambahkan bahwa dalam merancang suatu prototype, diperlukan tahapan-tahapan dalam model proses prototyping meliputi:
27
1. Communication Pelanggan dan pengembang bertemu bersama-sama mendefinisikan format seluruh perangkat lunak, mengidentifikasikan semua kebutuhan, dan garis besar sistem yang akan dibuat. 2. Planning Melakukan perencanaan pembuatan perangkat lunak secara cepat yaitu membangun prototyping dengan membuat perancangan sementara yang berfokus pada penyajian kepada pelanggan (misalnya dengan membuat input dan format output). 3. Modelling Rencana pembuatan perangkat lunak, selanjutnya dilakukan pemodelan sistem yang akan dibuat. Lalu dilakukan evaluasi ini dilakukan oleh pelanggan apakah prototyping yang sudah dibangun sudah sesuai dengan keinginan pelanggan. Jika sudah sesuai maka langkah 4 akan diambil. Jika tidak, prototyping direvisi dengan mengulangi langkah 1, 2 , dan 3. 4. Construction Dalam tahap ini prototyping yang sudah di sepakati diterjemahkan ke dalam bahasa pemrograman yang sesuai. 5. Deployment Setelah sistem sudah menjadi suatu perangkat lunak yang siap pakai, harus dites dahulu sebelum digunakan. Pengujian ini dilakukan dengan White Box, Black Box, Basis Path, pengujian arsitektur dan lain-lain. Selanjutnya Pelanggan mengevaluasi apakah sistem yang sudah jadi sudah sesuai dengan yang diharapkan . Jika ya, perangkat lunak yang telah diuji dan diterima pelanggan siap
28
untuk digunakan.dilakukan. Jika tidak, dilakukan kembali konstruksi sistem testing, dan evaluasi. 2.7.2 Kelebihan dan Kelemahan Prototyping Model proses prorotyping terdapat beberapa keunggulan dan kelemahan. (Pressman, 2010,p73) Adapun keunggulan prototyping adalah: 1. Adanya komunikasi yang baik antara pengembang dan pelanggan. 2. Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan pelanggan. 3. Pelanggan berperan aktif dalam pengembangan sistem. 4. Lebih menghemat waktu dalam pengembangan sistem. 5. Penerapan
menjadi
lebih
mudah
karena pemakai mengetahui apa yang
diharapkannya. Namun model proses prototyping memiliki kelemahan (Pressman, 2010, p76), sebagai berikut: 1. Proses analisis dan perancangan perangkat lunak terlalu singkat. 2. Biasanya model proses prototyping mengesampingkan alternatif pemecahan masalah. 3. Pelanggan kadang tidak melihat atau menyadari bahwa perangkat lunak yang ada belum mencantumkan kualitas perangkat lunak secara keseluruhan dan juga belum memikirkan kemampuan pemeliharaan untuk jangka waktu lama. 4. Pengembang biasanya ingin cepat menyelesaikan proyek. Sehingga menggunakan algoritma dan bahasa pemrograman yang sederhana untuk membuat prototyping lebih cepat selesai. 5. Prototype yang dihasilkan tidak selamanya mudah diubah. 6. Biasanya model proses prototyping kurang fleksibel bila terjadi perubahan.