BAB 2 TINJAUAN PUSTAKA
2.1 Landasan Teori 2.1.1 Kecerdasan Buatan Menurut Russel dan Norvig (2010,2) terdapat 8 definisi dari artificial Intelligence yang dapat dikategorikan berdasarkan 4 pendekatan, yaitu: 1. Thinking humanly Pada kategori ini, AI dijelaskan sebagai suatu usaha baru untuk dapat membuat komputer dapat berpikir, suatu mesin yang memiliki pikiran secara penuh dan memiliki rasa, atau dengan kata lain dapat juga disebut sebagai kegiatan yang mengadopsi cara manusia berpikir, seperti pengambilan
keputusan,
penyelesaian
masalah,
pembelajaran,
dan
sebagainya. 2. Thinking rationally Pada kategori ini, AI dijelaskan sebagai suatu studi melalui pemodelan komputasi, dimana studi AI ini dapat membuat segala sesuatu mungkin untuk dapat dipersepsikan dan memiliki alasan untuk dilakukan. 3. Acting humanly Pada kategori ini, AI dijelaskan sebagai suatu seni untuk membuat mesin dapat menampilkan fungsi yang membutuhkan kecerdasan ketika digunakan oleh manusia. 4. Acting Rationally Pada kategori ini, AI dijelaskan sebagai studi tentang perancangan agenagen kecerdasan (intelligent agents) dan AI difokuskan pada perilaku yang cerdas.
5
6
2.1.2 Model Waterfall model waterfall menurut referensi Sommerfille:
Gambar 2.1 Waterfall Sommerfille
1. Requirements Analysis and Definition Mengumpulkan kebutuhan secara lengkap kemudian dianalisis dan didefinisikan kebutuhan yang harus dipenuhi oleh software yang akan dibangun. Hal ini sangat penting, mengingat software harus dapat berinteraksi dengan elemen- elemen yang lain seperti hardware, database, dsb. Tahap ini sering disebut dengan Project Definition. 2. System and Software Design Proses pencarian kebutuhan diintensifkan dan difokuskan pada software. Untuk mengetahui sifat dari program yang akan dibuat, maka para software engineer
7
harus mengerti tentang domain informasi dari software, misalnya fungsi yang dibutuhkan, user interface, dsb. Dari dua aktivitas tersebut (pencarian kebutuhan sistem dan software) harus didokumentasikan dan ditunjukkan kepada user. Proses software design untuk mengubah kebutuhan-kebutuhan di atas menjadi representasi ke dalam bentuk “blueprint” software sebelum coding dimulai. Desain harus dapat mengimplementasikan kebutuhan yang telah disebutkan pada tahap sebelumnya. Seperti dua aktivitas sebelumnya, maka proses ini juga harus didokumentasikan sebagai konfigurasi dari software. 3. Implementation and Unit Testing Desain
program
diterjemahkan
ke
dalam
kode-kode
dengan
menggunakan bahasa pemrograman yang sudah ditentukan. Program yang dibangun langsung diuji baik secara unit. 4. Integration and System Testing Untuk dapat dimengerti oleh mesin, dalam hal ini adalah komputer, maka desain tadi harus diubah bentuknya menjadi bentuk yang dapat dimengerti oleh mesin, yaitu melalui proses coding.
ke
Tahap
dalam
bahasa
pemrograman
ini merupakan implementasi dari
tahap design yang secara teknis nantinya dikerjakan
oleh
programmer. Penyatuan unit-unit program kemudian diuji secara keseluruhan (system testing). 5. Operation and Maintenance Sesuatu yang dibuat haruslah diujicobakan. Demikian juga dengan software. Semua fungsi-fungsi software harus diujicobakan, agar software bebas dari error, dan hasilnya harus benar-benar sesuai
8
dengan kebutuhan yang sudah didefinisikan sebelumnya.
2.1.3 Microsoft Visual Studio 2012 Microsoft Visual Studio 2012 adalah sebuah software untuk menjalankan tugas pengembangan sederhana. Software ini menyerdehanakan pembuatan aplikasi, Debugging, dan peluncuran dari aplikasi diberbagai platform termasuk Share Point dan Cloud. 2.1.4 Bahasa Pemograman C++ C++ adalah bahasa pemrograman komputer yang di buat oleh Bjarne Stroustrup, yang merupakan perkembangan dari bahasa C dikembangkan di Bong Labs (Dennis Ritchie) pada awal tahun 1970-an, Bahasa itu diturunkan dari bahasa sebelumnya, yaitu bahasa B, Pada awalnya, bahasa tersebut dirancang sebagai bahasa pemrograman yang dijalankan pada sistem Unix, Pada perkembangannya, versi ANSI (American National Standart Institute) Bahasa pemrograman C menjadi versi dominan, Meskipun versi tersebut sekarang jarang dipakai dalam pengembangan sistem dan jaringan maupun untuk sistem embedded, Bjarne Stroustrup pada Bel labs pertama kali mengembangkan C++ pada awal 1980-an. Untuk mendukung fitur-fitur pada C++, dibangun efisiensi dan sistem support untuk pemrograman tingkat rendah (low level coding). Pada C++ ditambahkan konsep baru seperti class dengan sifatsifatnya seperti inheritance dan overloading. Salah satu perbedaan yang paling mendasar dengan bahasa C adalah dukungan terhadap konsep pemrograman berorientasi objek. 2.1.5 Computer Vision Menurut Shapiro dan Stockman (2001:1). Computer vision adalah sebuah cabang studi dari ilmu kecerdasan buatan yang bertujuan untuk membantu pengambilan keputusan yang tepat mengenai deskripsi objek maupun scenes yang ada didalam sebuah image. Tujuan dari computer vision adalah mengekstrak informasi yang berguna dari gambar (Prince, 2012:15).
9
2.1.6 Open CV OpenCV adalah open source computer vision library yang tersedia dari htttp://SourceForge.net/projects/opencvlibrary
(Bradski & Kaehler, 2008:13).
Library OpenCV ditulis menggunakan Bahasa pemrograman C dan C++ dan dapat dijalankan pada sistem operasi Linux, Windows, dan MAC OS X. OpenCV dirancang untuk efisiensi komputasi yang memfokuskan pada aplikasi real-time. OpenCV ditulis dengan menggunakan Optimized C dan memiliki keuntungan dalam hal multicore processors. Struktur OpenCV dibagi menjadi lima komponen:
Gambar 2.2 Struktur basic OpenCV Sumber : Bradski & Kaehler 2008:13
Struktur OpenCV terdiri dari basic image processing dan higher- level computer vision algorithms. MLL merupakan Machine Learning Library yang terdiri dari Statistical Classifiers dan Clustering Tools. HighGUI terdiri dari I/O dan fungsi untuk menyimpan dan memanggil video dan gambar, dan CXCore terdiri dari struktur basis data dan konten. Berikut ini adalah beberapa fitur pada library OpenCV. -
Manipulasi data gambar (alokasi memori, melepaskan memori, duplikasi gambar, konversi gambar)
-
Image / video I/O (format input / output dalam gambar ataupun video yang terhubung dengan hardware seperti kamera)
10
-
Manipulasi matrix dan vektor serta formula linear algebra (products, solvers, eigenvalues)
-
Image processing (filtering, edge detection, sampling dan interpolasi, konversi warna, histogram)
-
Analisis struktural
-
Pendeteksian dan pengenalan objek
-
Image labeling (line, conic, polygon, text drawing)
-
Basic GUI (display output, control input)
2.1.7 Image Processing/Pengolahan Citra
Menurut Russel dan Norvig (2010:965). Image processing adalah suatu proses untuk mengekstraksi informasi visual yang dibutuhkan untuk menjalankan tugas manipulasi,navigasi,dan recognition. Menurut Trussel dan Vrhel (2008:8) Citra adalah ruang dua dimensi yang umumnya merepresentasikan proyeksi dari beberapa obyek pada ruang tiga dimensi. Citra dapat berupa monokrom atau berwarna, diam atau bergerak, tetapi citra selalu terdapat pada ruang dua dimensi. Menurut Gonzales dan Woods (2008:1-2) Citra disusun dari setiap kumpulan yang angka nya dapat ditentukan.Setiap elemen berada pada lokasi bersangkutan dan memiliki nilai. Elemen penyusun citra ini dikenal dengan sebutan piksel.
2.1.8 Digital Image
Menurut Saphiro dan Stockman (2001:3,10-11,29) sebuah gambar dua dimensi yang direpresentasikan dengan menggunakan array diskrit 2D I[r,c] dimana I merupakan nama array, sedangkan r dan c adalah angka row dan collumn. Digital image memiliki jumlah baris dan kolom pixel (picture element) yang tetap, yang bernilai antara 0-255. Angka tersebut menyatakan brightness pada titiktitik gambar. Angka 0 menyatakan titik tergelap sedangkan angka 255 menyatakan
11
Nilai pixel dapat dibuah berdasarkasn hubungannya dengan sejumlah nilai pixel yang bersebelahan (kolom dan baris) untuk mengurangi noise yang mungkin terjadi pada saat digitization process serta dapat berfungsi untuk menyederhanakan konten dari sebuah gambar, seperti pada proses background subtraction.
Gambar 2.3 Array Pixel Pada Digital Image (Sumber: Saphiro & Stockman, 2001:2)
Gambar 2.4 Representasi Gambar Dari Pixel Pada Digital Image
2.1.9 Binary Image
Menurut Shapiro & Stockman (2001, p. 30), binary image adala sebuah digital image yang hanya memiliki nilai intensitas piksel 0 dan 1. 2.1.10 Binary Image Morphology Binary image morphology adalah operasi pengolahan binary image menggunakan structuring element. Structuring element adalah sebuah binary image yang digunakan sebagai basis pada binary image morphology. Terdapat beberapa
12
bentuk structuring element, akan tetapi yang paling umum digunakan adalah bentuk persegi dan bentuk bundar (Shapiro & Stockman ,2001).
Gambar 2.5 Berbagai bentuk structuring element
Pada binary image morphology terdapat beberapa operasi dasar, yaitu dilation, erosion, closing dan opening. Operasi dilation dilakukan untuk memperbesar area pada binary image, sedangkan operasi erosion dilakukan untuk mengecilkan atau mengikis area pada binary image. 2.1.11
Image Segmentation
Menurut Shapiro & Stockman (2001, p. 56-63), image segmentation adalah operasi
untuk
membagi
sebuah
image
menjadi
beberapa
bagian
yang
merepresentasikan suatu objek.
2.1.12 Detection
Menurut Forsyth dan Ponce (2012:549). Detection merupakan metode untuk mengindentifikasi image yang memiliki sebuah objek yang mendominasi.
2.1.13 Thresholding Menurut Jain, Kasturi, Schunck (1995:28-31) thresholding adalah sebuah metode untuk merubah gray scale image menjadi binary image sehingga objek terpisah dari background nya.
13
2.1.14 Resizing Image resizing atau scaling bertujuan untuk menganalisa suatu gambar dengan memperkecil atau memperbesar gambar. Ketika gambar diperbesar, suatu nilai baru diinterpolasi dari sumber gambar untuk menghasilkan piksel tambahan dalam output image. Ketika gambar diperkecil, piksel akan dibentuk kembali untuk menghasilkan jumlah piksel yang lebih sedikit dalam output image (RSI, 2005:26).
2.1.15 Cropping Cropping akan mengekstrak suatu wilayah persegi yang berasal dari gambar aslinya. Cropping bertujuan untuk mengambil bagian yang spesifik dan membuang area yang berisi informasi yang tidak dibutuhkan (RSI, 2005:20).
2.1.16 Scaling Menurut Kekre, Sarode & Thepade (2008, p. 95), scaling adalah proses resample sebuah image dengan fungsi dua dimensi ke dalam ukuran yang berbeda.
2.1.17 Grayscaling Pada komputasi, grayscale citra digital adalah suatu gambar dimana nilai setiap pikselnya adalah single sample yang memiliki informasi intensitas. Gambar tersebut juga dikenal sebagai gambar hitam-putih yang bervariasi (Johnson, 2006:11).
Gambar 2.6 Gambar Grayscale 2.1.18 Recognition Bradski dan kaehler (2008:461) menjelaskan bahwa recognition merupakan suatu keadaan ketika komputer memberikan nama dari suatu objek.
14
2.1.19 Red, Green, Blue Saphiro dan Stockman (2001:191-193) menjelaskan bahwa dengan menggunakan tiga tipe receptors, manusia dapat membedakan beribu macam warna. Trichromatic red green blue (RGB) didalam sistem grafis biasanya menggunakan three bytes enabling (28)3 dan menghasilkan kurang lebih 16 juta kode warna yang berbeda. Tiap 3-byte atau 24-bit RGB pixel selalu ada masing-masing 1 byte (range antara 0 – 255) untuk warna merah, hijau, biru. Urutan munculnya warna pada memory bisa berbeda-beda dan penting dalam programming. Sistem RGB adalah sebuah sistem penambahan warna karena warna yang diciptakan dihasilkan dari penambahan komponen ke warna hitam: (0, 0, 0). Hasilnya akan direspons baik terhadap monitor yang memiliki tiga tipe fosfor untuk memancarkan cahaya. Di dalam RGB terdapat persamaan normalisasi yang digunakan untuk melakukan normalisasi data gambar. Normalisasi tersebut berfungsi sebagai interpretasi oleh program komputer dan orang-orang dalam melakukan transformasi ke dalam sistem warna lainnya. Adapun persamaan normalisasi tersebut antara lain: Intensity
(2.1)
Nomalized red
(2.2)
Nomalized green
(2.3)
Nomalized blue
(2.4)
2.1.20 HSV HSV mendefinisikan warna dalam terminologi Hue, Saturation, dan Value. Keuntungan HSV adalah terdapat warna-warna yang sama dengan yang ditangkap oleh indra manusia. Sedangkan warna yang dibentuk model lain seperti RGB merupakan hasil campuran dari warna-warna primer.
15
HSV memiliki 3 karakteristik pokok, yaitu Hue, Saturation, dan Value. •
Hue: menyatakan warna sebenarnya, seperti merah, violet, dan kuning dan digunakan menentukan kemerahan , kehijauan.
•
Saturation: kadang disebut chroma, adalah kemurnian atau kekuatan warna.
•
Value: kecerahan dari warna. Nilainya berkisar antara 0-100 %. Apabila nilainya 0 maka warnanya akan menjadi hitam, semakin besar nilai maka semakin cerah dan muncul variasi-variasi baru dari warna tersebut. 2.1.21 Feature Extraction Menurut Shin & Riaz (2014), feature extraction adalah proses mendefinisikan
sekumpulan fitur atau karakteristik dari sebuah image yang digunakan untuk proses klasifikasi. Fitur pada image dapat diklasifikasikan sebagai berikut: 1. General Features General features adalah fitur-fitur independen seperti warna, tekstur dan bentuk. Berdasarkan abstraction level, General features dapat dibagi kedalam beberapa bagian berdasarkan abstraction level sebagai berikut: a. Pixel-level Features Fitur didapatkan dari kalkulasi pada level piksel, seperti intensitas, warna dan lokasi. b. Local Features Fitur didapatkan dari kalkulasi yang didapatkan pada bagian dari image lewat proses segmentasi, edge detection, gradient dan Local Binary Patterns. c. Global Features Fitur didapatkan dari kalkulasi dari image secara keseluruhan atau hanya sebagian dari image. 2. Domain Specific Features Domain specific features adalah fitur-fitur yang bergantung pada domain penggunaan aplikasinya sepertinya wajah manusia, fingerprints dan fitur konseptual.
2.1.22 Neural Network Menurut Fausett (1994:3-19) neural network atau lebih dikenal dengan jaringan syaraf tiruan. Neural network adalah sistem yang memproses informasi yang
16
memiliki karakteristik yang identik dengan jaringan syaraf biologi. Neural network dapat digunakan sebagai pengenalan pola (pattern recognition), signal processing, peramalan, dan hal lainnya lagi. Dan menurut Russel dan Norvig (2003, p737), Neural Network adalah suatu metode yang meniru sistem jaringan saraf biologi. Metode ini menggunakan elemen perhitungan dasar non-linier yang disebut neuron. Model tiruan sebuah neuron dapat dilatih untuk melakukan fungsi tertentu. Umumnya Neural Network dilatih sehingga input tertentu menghasilkan output dengan tujuan yang spesifik.
2.1.23 Proses Aktivasi Neural Network Menurut Russel dan Norvig (2003, p738), Mengaktivasi Neural Network berarti mengaktivasi setiap neuron yang dipakai pada jaringan tersebut. Banyak fungsi yang dapat digunakan namun fungsi yang lazim digunakan dalam pelatihan jaringan syaraf tiruan adalah fungsi Sigmoid, karena dianggap lebih mendekati kinerja sinyal pada otak.
Y +1 0
X
-1 Gambar 2.7 Fungsi Pengaktif Sigmoid
Ada dua jenis fungsi Sigmoid, yaitu: fungsi Sigmoid Biner dan fungsi Sigmoid Bipolar.
17
Fungsi Sigmoid Biner dituliskan pada persamaan y =
1 dan 1 + ( )
ditunjukkan pada gambar : f(x) 1 --------------------------------------
0,5 0
x
Gambar 2.8 Fungsi Sigmoid Biner
Sedangkan fungsi Sigmoid Bipolar dituliskan pada persamaan y = 1 − ( ) dan 1 + ( )
ditunjukkan pada gambar :
f(x) 1 --------------------------------------
0 ----------------------------- -1
Gambar 2.9 Fungsi Sigmoid Bipolar
x
18
2.1.24 Model Pelatihan Neural Network Menurut Russel dan Norvig (2003, p738), Neural Network memiliki proses belajar yang berbeda dengan metode yang lainnya, sehingga Neural Network memiliki struktur yang unik dimana metode pelatihannya dibagi ke dalam dua kelompok, yakni sebagai berikut:
•
Feed Forward Neural Network Menurut Russel dan Norvig (2003, p740), Feed Forward Neural Network adalah jaringan saraf tiruan dimana hubungan antara sinyal informasinya bergerak hanya satu arah saja dalam mengasosiasikan input dengan output yang digunakan dalam pengenalan pola. Ada dua jenis jaringan dalam Feed Forward Neural Network yang dijelaskan disini: 1. Single Layer Perceptrons Single Layer Perceptrons merupakan jenis paling sederhana yang dapat dilatih dari sebuah jaringan saraf. Single Layer Perceptrons terdiri dari beberapa unit neuron terhubung yang didalamnya mempunyai beberapa input dan output. Single Layer Perceptrons menghitung jumlah nilai dari perkalian penimbang dan input dari parameter yang kemudian akan dibandingkan dengan nilai batas. Bila nilai output lebih besar dari nilai batas maka outputnya adalah satu, sebaliknya adalah nol. Secara matematis dapat dituliskan sebagai berikut: I = Wji* Xi I
: Hasil Single Layer Perceptrons.
Wj,i
: Nilai penimbang dari unit j ke unit i.
Xi
: Input ke unit i.
Output = 1
if Output > Nilai Batas / Threshold.
(2.5)
19
Output = 0
if Output < Nilai Batas / Threshold.
Pelatihan pada perceptron dilakukan dengan mengubah nilai penimbang hingga sesuai dengan kebutuhan yang dilakukan dengan membandingkan output dari jaringan dengan target (Tj) dan proses tersebut dituliskan sebagai berikut ini : Wbaruji = Wlamaji + α ( Tj - Outputj ) Xi
α
(2.6)
: Learning Rate (0,1 - 0,9)
Proses ini dijalankan pada setiap neuron yang ada pada setiap layer sampai nilai penimbang tersebut sesuai dengan yang diinginkan. Nilai awal penimbang adalah bilangan kecil antara 0 - 1 yang dibangkitkan secara acak. Perceptron dapat direpresentasikan dan hanya fungsi pemisah linear yang dapat dipisahkan dengan perceptron seperti pada gambar berikut ini:
Gambar 2.10 Fungsi Pemisah Linear Untuk Perceptron
2. Multi Layer Perceptrons MLP merupakan generalisasi dari struktur Single Layer Perceptrons (SLP) dan strukturnya ditandai dengan grafik layer terarah.
20
Output Layer Second Hidden Layer First Hidden Layer Input Layer Gambar 2.11 Arsitektur Multi Layer Perceptrons
•
Feed Back Neural Network Feed Back Neural Network merupakan jaringan saraf tiruan yang memiliki sinyal informasi yang bergerak dari kedua arah pada layer jaringannya. Feed Back Neural Network menjadi dinamis bila mencapai titik ekuilibrium dan tetap berada di titik tersebut hingga perubahan keseimbangan yang baru telah ditemukan.
2.1.25 Backpropagation Menurut Russel dan Norvig (2003, p745), Salah satu algoritma training untuk melatih metode Neural Network adalah Algoritma Backpropagation. Secara garis besar backpropagation dapat dideskripsikan ketika Neural Network diberikan pola input sebagai pola training maka pola tersebut menuju ke unit-unit pada hidden layer untuk diteruskan ke unit-unit output layer. Kemudian unit-unit output layer memberikan tanggapan yang disebut sebagai output network. Saat output network tidak sama dengan output yang diharapkan, maka output akan menyebar mundur
21
pada hidden layer dan diteruskan ke unit pada input layer. Oleh karenanya, maka mekanisme training tersebut dinamakan Backpropagation. Tahap training ini merupakan langkah bagaimana suatu Neural Network berlatih, dengan cara melakukan perubahan nilai weight. Sedangkan pemecahan masalah baru akan dilakukan jika proses training tersebut selesai. Fase pemecahan masalah ini disebut dengan fase mapping. Algoritma Backpropagation menggunakan nilai error output untuk mengubah nilai weight dalam fase backward. Untuk mendapatkan nilai error ini, fase forward harus dikerjakan terlebih dahulu. Dari hasil fase forward akan dihasilkan suatu output, dari output tersebut, pastilah tidak sesuai dengan target yang diinginkan. Perbandingan kesalahan dari target yang diinginkan dengan output yang dihasilkan disebut dengan nilai error. Inti dari Algoritma Backpropagation adalah untuk mencari nilai minimum dari fungsi nilai error dalam suatu node dengan menggunakan metode gradient descending. Ada beberapa parameter yang harus dipilih secara selektif untuk memperbaiki kelemahan-kelemahan pada Neural Network Backpropagation yaitu : a. Epoch Jumlah epoch menunjukkan kecepatan sistem. Semakin banyak epoch yang dibutuhkan dalam mencapai target error, berarti kerja sistem akan semakin lama. b. Learning Rate Learning Rate digunakan untuk mengontrol perubahan nilai bobot. Semakin tinggi nilai Learning Rate yang digunakan akan menyebabkan perubahan yang semakin besar pada bobot, sehingga pembelajaran menjadi kurang baik. Sedangkan, dengan tingkat kecepatan pembelajaran yang rendah akan
22
menghasilkan pembelajaran yang akurat namun prosesnya menjadi sangat lambat. c. Inisialisasi bobot Prosedur umum dalam inisialisasi nilai awal bobot (dan bias) adalah dengan nilai acak antara -0.5 dan 0.5 (atau antara -1 dan 1). Inisialisasi nilai awal bobot Nguyen Widrow merupakan suatu modifikasi dalam memberikan nilai awal bobot yang akan membantu Neural Networks Backpropagation d. Fungsi Aktivasi Jangkauan fungsi aktivasi harus sesuai dengan jangkauan nilai target dari permasalahan tertentu (Fausett, 1994, p309). Fungsi sigmoid bipolar berhubungan dekat dengan fungsi tangen hiperbolik. Oleh karena itulah fungsi ini sering digunakan sebagai fungsi aktivasi ketika output yang diperlukan memiliki rentang antara -1 sampai dengan 1. Hitung sinyal output dengan fungsi aktivasi: (2.7)
e. Hidden Layer Hidden layer yang semakin banyak semakin meningkatkan tingkat akurasi namun proses Training nya semakin lambat. f. Hidden node Hidden node yang terlalu sedikit akan memiliki
tingkat
error
pembelajaran dan error klasifikasi yang tinggi karena tidak mampu memetakan masukan yang kompleks menuju keluaran yang kompleks. Begitu pula sebaliknya, dengan unit tersembunyi yang terlalu banyak akan dijumpai tingkat error pembelajaran yang rendah namun tingkat
23
error klasifikasi yang semakin tinggi. Hitung error pada setiap hidden unit (
).
(2.8)
g. Lama pembelajaran Semasa melakukan proses pembelajaran, perlu diperhatikan agar proses yang berlangsung tidak melebihi tahap kebenaran data yang diinginkan (overfitting/overtrained) sehingga menyebabkan error menjadi lebih besar daripada yang diharapkan (Cohen dan Jensen, 1996, p1). Ketika error mulai meningkat, berarti sistem mulai kehilangan kemampuannya untuk
mengklasifikasi.Maka pada
titik
ini, pembelajaran harus
dihentikan.Error yang ditemui pada tahap pembelajaran dikategorikan dalam dua kondisi yaitu global minima yang merupakan kondisi terendah, dan local minima adalah kondisi error yang bukan merupakan error terendah.
2.1.26 Flow Chart Flow chart adalah bagan yang menunjukkan alir (flow) di dalam program atau prosedur sistem secara logika. Bagan alir digunakan terutama untuk alat bantu komunikasi dan dokumentasi. (Jogiyanto, 1995)
2.1.27 System Flow Chart system flowchart merupakan bagan yang menunjukkan arus pekerjaan secara keseluruhan dari sistem. Bagan ini menjelaskan urutan dari prosedur-prosedur yang ada dan dikerjakan di dalam sistem. Bagan alir sistem menunjukkan apa yang
24
dikerjakan di sistem. Simbol-simbol bagan alir sistem ditunjukkan pada tabel 2.1 berikut ini (Jogiyanto, 1995):
Tabel 2.1 Simbol-simbol Bagan Alir System Gambar
Keterangan Simbol dokumen Simbol kegiatan manual Simbol simpanan offline File non-komputer yang diarsip urut angka (numerical) Simbol simpanan offline File non-komputer yang diarsip urut huruf (alphabetical) Simbol simpanan offline File non-komputer yang diarsip urut tanggal (cronological) Simbol kartu plong Simbol proses Simbol operasi luar Simbol pengurutan offline Simbol pita magnetik Simbol hard disk Simbol disket Simbol keputusan Simbol drum magnetik Simbol pita kertas berlubang Simbol keyboard
25
Simbol display Simbol garis alir Simbol penghubung
2.1.28 Unified Modelling Language (UML) Menurut Whitten dan Bentley (2007:371), UML merupakan pembuatan model standar dalam pengembangan sistem yang berbasis object oriented yang direpresentasikan dalam bentuk diagram yang saling berelasi antar satu objek dengan objek yang lain nya yang terdapat di dalam nya. 2.1.29 Use Case Diagram Whitten dan Bentley (2007:246-250, 382) menjelaskan bahwa use case diagram digunakan untuk menggambarkan dan menjelaskan interaksi antara system, eksternal sistem dengan user. Berikut adalah beberapa komponen penting yang terdapat pada use case diagram yaitu: 1. Use Case Use case merupakann fungsi yang dijalankan di dalam sistem yang biasanya digambar dengan bentuk horizontal elips. Use case menunjukkan urutan dari aktivitas dan interaksi user terhadap sistem.
26
Gambar 2.12 Contoh Penggunaan Use Case Di Dalam Use Case Diagram (Sumber: Whitten & Bentley, 2007:246)
2. Actors Actor pada use case diagram adalah segala sesuatu yang berinteraksi dengan sistem. Actor dapat berupa manusia, system atau device.
Gambar 2.13 Simbol Actor pada Use case Diagram. (Sumber: Whitten & Bentley, 2007, p. 247)
Actors ini dibagi ke dalam empat tipe yaitu: a. Primary bussiness actor Seorang stakeholder yang mendapatkan keuntungan dari eksekusi use case. Primary business actor mungkin atau mungkin tidak dapat menjalankan business event. Contohnya di dalam sebuah business event dari seorang karyawan yang menerima gaji dari sistem penggajian pada hari Jumat, karyawan tersebut tidak menjalankan event tersebut melainkan hanya menjadi penerima dari event yaitu menerima gaji.
27
b. Primary system actor Stakeholder yang secara langsung berinteraksi dengan sistem untuk menjalankan business atau system event. Primary system actor dapat berinteraksi dengan primary business actor dengan tujuan untuk memfasilitasi primary business actor dalam menjalankan business event. c. External server actor Stakeholder yang merespons permintaan dari use case. d. External receiver actor Stakeholder yang menerima nilai terukur dari use case tetapi bukanlah primary actor.
3. Relationships Relationships berfungsi sebagai penggambaran relasi antara use case dan actor. Relationships biasa nya di lambang kan dengan tanda garis. Terdapat 5 jenis relationships, yaitu: a. Associations Hubungan ini terjadi jika terdapat interaksi antara use case dan actor.
Hubungan
ini
dilambangkan
dengan
garis
yang
menghubungkan actor dan use case. Garis bertanda panah yang menunjuk ke use case menandakan sang actor menirukan fungsi yang ada pada use case tersebut. Sedangkan garis tanpa tanda panah menandakan interaksi antara use case dengan external server atau receiver actor.
Gambar 2.14 Association Relationship pada Use Case. (Sumber: Whitten & Bentley, 2007, p. 248)
28
b. Extends Extends berfungsi untuk menyederhanakan use case dengan cara tahapan yang rumit didalam use case dikeluarkan dan dipindahkan menjadi sebuah use case tersendiri. Hasilnya berupa extension use case yang merupakan perpanjangan dari fungsi use case yang sebelumnya lebih kompleks. Sebuah use case dapat memiliki banyak extended relationship tetapi extended use case hanya dapat dipanggil oleh use case awal dan setiap extended relationship akan diberi tanda <<extends>>.
Gambar 2.15 Contoh Extended Relationship Use Case (Sumber: Whitten & Bentley, 2007:249)
c. Uses (or include) Seringkali ditemukan dua atau lebih use-case memiliki tahapan fungsi yang hampir sama. Fungsi tersebut dapat dikeluarkan dan dijadikan sebuah use case yang dinamakan dengan abstract use case. Tujuan dilakukan ini yaitu untuk mengurangi pengulangan tahap didalam use case. Relationships antara use case dengan abstract use case disebut dengan uses atau includes relationship. Relationship ini dilambangkan dengan garis yang menghubungkan use case dengan abstract use case. Garis ini juga memiliki tanda panah yang menunjuk kepada use case. Setiap uses atau includes relationship diberi label <<uses>>.
29
Gambar 2.16 Contoh Uses Relationship Use Case (Sumber: Whitten & Bentley, 2007:249)
b. depends on Depends on digunakan ketika ditemukan use case yang saling bergantung dengan use case lainnya untuk menentukan bagaimana urutan use case yang perlu dikembangkan. Pada garis penghubung antar use case terdapat label <<depends on>> untuk menunjukkan relasi ini.
Gambar 2.17 Contoh Depends On Relationship Use Case (Sumber: Whitten & Bentley, 2007:250)
c. Inheritance Inheritance digunakan jika dua atau lebih actor menggunakan use case yang sama, salah satu actor tersebut dapat dijadikan sebuah
30
abstract actor. Hal ini dilakukan bertujuan untuk mengurangi pengulangan komunikasi yang terjadi didalam use case diagram. Relationship ini dilambangkan dengan garis yang menghubungkan abstract actor dengan actor dan memiliki tanda panah yang menunjuk kepada abstract actor.
Gambar 2.18 Inheritance Relationship pada Use Case (Sumber: Whitten & Bentley, 2007, p. 250)
2.1.30 Use Case Narrative Menurut Whitten dan Bentley (2007:246-260) use case narrative digunakan untuk
menggambarkan
bagaimana
user
melakukan
suatu
kegiatan
dan
menyelesaikan suatu tugas melalui deskripsi. Use case narrative terbagi dalam beberapa bagian, diantaranya: a.
Use-Case Name
Merupakan nama dari use case yang dideskripsikan oleh use case narrative. Use-case name harus merepresentasikan goal dari use case yang dideskripsikan oleh use-case narrative tersebut. b.
Actor
Merupakan stakeholder yang mendapatkan manfaat terukur dari eksekusi use case. c.
Description
Merupakan deskripsi singkat dari keseluruhan proses pada use case.
31
d.
Trigger
Merupakan hal-hal yang menginisialisasi pengeksekusian use case. e.
Precondition
Merupakan kondisi sistem sebelum use case dijalankan. f.
Course of Events
Merupakan urutan-urutan dari aktivitas yang dilakukan oleh actor dan sistem dalam mencapai goal yang ingin dicapai oleh use case. g.
Postcondition
Merupakan kondisi sistem pada saat use case telah dijalankan.
2.1.31 Activity Diagram Menurut Whitten dan Bentley (2007:382, 391) activity diagram berfungsi untuk menggambarkan urutan aktifitas dari sebuah use case. Activity diagram diilustrasikan dengan simbol-simbol berikut:
Tabel 2.2 Simbol Activity Diagram
Keterangan
Gambar
Initial node adalah simbol berbentuk lingkaran yang merepresentasikan mulainya activity diagram. Actions adalah simbol yang berbentuk
rounded
rectangle
yang
merepresentasikan langkahlangkah
dalam
proses
activity diagram. Flow adalah simbol yang berbentuk
panah
yang
32
Keterangan
Gambar
menunjukkan
alur
dari
activity diagram. Decision yang
adalah
berbentuk
simbol diamond
dengan satu flow masukkan dan menghasilkan output dua atau lebih flow. Simbol ini
menunjukkan
kondisi
yang membutuhkan pilihan actions yang akan dilakukan selanjutnya. Merge adalah simbol yang berbentuk diamond dengan dua
atau
lebih
flow
masukkan
dan
menghasilkan hanya satu flow
output.
Simbol
menggabungkan
ini
flows
masukkan yang sebelumnya dipisahkan oleh decision, dan berlanjut. Fork adalah simbol yang berbentuk black bar dengan satu flow masukkan dan menghasilkan output dua atau lebih flow. Aksi output pararel ini dapat dilakukan dalam
urutan
apapun
maupun secara bersamaan.
33
Keterangan
Gambar
Join adalah simbol yang berbentuk black bar dengan dua
atau
lebih
flow
masukkan
dan
menghasilkan hanya satu output flow. Semua flow masukkan harus dikerjakan terlebih dahulu sebelum bisa melanjutkan
ke
proses
berikutnya. Activity final adalah simbol yang berbentuk lingkaran dengan lingkaran kecil solid didalamnya.
Simbol
ini
menunjukkan
akhir
dari
seluruh
proses
activity
diagram.
2.1.32 Sequence Diagram Menurut Whitten & Bentley (2007, p. 394-395, p. 659-660), sequence diagram adalah diagram yang menunjukan interaksi antar objek pada sebuah use case terhadap waktu. Komponen-komponen pada sequence diagram adalah sebagai berikut:
34
Tabel 2.3 Simbol Sequence Diagram
Nama Komponen
Gambar Komponen
Keterangan Actor adalah user
Actor
yang berinteraksi dengan sistem lewat user interface. Berbentuk kotak dan memiliki label <
>.
Interface Class
Berfungsi sebagai representasi interface class code. Berbentuk kotak dan memiliki label <>.
Controller Class
Berfungsi sebagai representasi controller class code. Berbentuk kotak
Entity Class
dan berfungsi sebagai representasi entity class. Berbentuk garis bertanda panah.
Messages
Tanda panah berfungsi sebagai penunjuk arah jalannya message.
35
Activation bar berfungsi sebagai Activation Bars
indikasi waktu eksisnya sebuah objek pada sequence diagram. Berbentuk garis putus-putus. Return message berfungsi
Return Messages
sebagai pengembalian atau respon dari sebuah behaviour. Berfungsi sebagai penanda bahwa
Self Call
sebuah objek memanggil method pada dirinya sendiri. Frame digunakan untuk menandakan bahwa aktivitas yang berada
Frame
didalam frame tersebut adalah optional atau merupakan sebuah loop.
36
2.2 Hasil Penelitian Sebelumnya Pada jurnal yang ditulis oleh Dimas Rizki Radityo, Muhammad Riyan Fadillah, Quincy Igwahyudi, Satrio Dewanto (2012), dapat diketahui bahwa pernah dilakukan penelitian untuk melakukan penyortiran dan pengecekan kematangan buah berdasarkan warna. Dimas dkk. menggunakan sensor warna TCS3200 untuk mendapatkan warna dari buah. TCS3200 sendiri merupakan IC yang dapat diprogram yang berguna untuk mengkonversi warna cahaya ke frekuensi dengan output berbentuk sinyal kotak. Dimas dkk. menentukan kematangan buah dengan menggunakan tiga warna yaitu merah, kuning dan hijau. Warna merah dan kuning merepresentasikan
buah
yang
sudah
matang,
sedangkan
warna
hijau
merepresentasikan buah yang belum matang. Dimas dkk, membuat sistem yang terdiri dari 2 sistem, yaitu sistem yang berfungsi sebgai pengecek dan penampil kematangan buah dan yang kedua adalah sistem yang berfungsi sebagai penggerak dan penyortir. Cara kerja dari kedua sistem itu adalah buah diletakkan pada tempat penampung buah yang posisinya berada di tengah conveyor, sensor warna akan membaca tingkat warna buah tersebut, jika output dari buah tersebut adalah matang, mikrokontroller akan memerintahkan driver H-Bridge untuk menggerak motor secara forward, sebaliknya jika buah tersebut dibaca dan memberikan output belum matan maka mikrokontroller akan memerintahkan driver H-bridge untuk menggerakkan motor secara backward. Waktu yang dibutuhkan untuk pengecekan satu buah sekitar lima detik, di mana tiga detik delay untuk membaca buah, dan sekitar dua detik waktu untuk conveyor bergerak. Dari sistem ini dilakukan uji coba sebanyak 50x pada kertas warna dan mendapatkan keberhasilan sebesar 100%, pada buah belimbing mendapatkan error sebesar 14%, pada buah tomat mendapatkan error 4% dan pada buah pisang mendapatkan error 8%. Kemudian pada jurnal Yuda permandi dan Yurinto (2015) yang mengukur tingkat kematangan buah mentimun dengan ekstraksi ciri statistik. Adanya kemiripan tekstur kulit mentimun antara yang matang dengan yang belum matang mengakibatkan orang kesulitan dalam mengidentifikasi mentimun matang dari segi ciri tekstur kulit buah dan penilaian manusia yang bersifat subyektif terhadap tingkat kematangan buah mentimun menyebabkan penilaian tingkat kematangan mentimun berbeda dari satu penilai dengan penilai yang lainnya. Dari permasalahan tersebut,
37
sehingga dilakukan penelitian untuk mendeteksi kematangan mentimun berdasarkan tekstur kulit buah. Tujuan dari penelitian ini adalah menerapkan metode statistik dengan parameter ciri yaitu Mean (µ), Variance (σ^2), Skewness (α_(3 )), Kurtosis (α_(4 )), dan Entropy (H) sebagai metode untuk mengenali kematangan mentimun dari segi tekstur kulit buah dan untuk mengetahui nilai akurasi setelah sistem diuji. Subyek penelitannya adalah membangun aplikasi pengolahan citra untuk mendeteksi ukuran buah mentimun matang secara statistik dari segi tekstur kulit buah. Data dalam penelitian ini menggunakan citra buah mentimun yang diambil dengan kamera kemudian dilakukan pemotongan ukuran (cropping) menjadi 512 x 512 pixels dan penggantian format citra menjadi *.bmp. Metode pengumpulan data yang digunakan adalah metode studi literatur dengan menggunakan data-data dari buku, e-book, penelitian terdahulu, literatur dari internet, metode observasi dengan mengambil dan mengamati citra buah mentimun, metode dokumentasi dengan pengumpulan data secara langsung, dan wawancara terhadap petani dan penjual buah mentimun untuk memastikan data yang diperoleh mengenai informasi buah mentimun sesuai dengan fakta yang ada. Berdasarkan hasil pengujian dengan menggunakan 20 sampel yang terdiri dari 10 citra mentimun matang dan 10 citra mentimun belum matang menunjukkan bahwa hasil untuk pengujian mentimun matang mencapai 70%, sedangkan untuk mentimun belum matang mencapai 80%. Secara keseluruhan tingkat keberhasilan aplikasi pengolahan citra untuk identifikasi kematangan mentimun berdasarkan tekstur kulit buah dengan metode ekstraksi ciri statistik yaitu sebesar 75%. Kemudian jurnal yang dituliskan oleh Sunu jatmika, Dwi purnamasari (2014) yang mengukur kematangan buah apel menggunakan image processing berdasarkan komposisi warna. Dengan histogram dapat dicari citra yang memiliki kemiripan komposisi warna. Pengukuran tingkat kemiripan dilakukan dengan menghitung jarak antar histogram. Komposisi warna dapat ditampilkan dalam bentuk histogram yang merepresentasikan distribusi jumlah piksel untuk tiap intensitas warna dalam citra. Sebagai pembanding kematangan buah yang diukur adalah histogram warna buah yang sudah matang. Sedangkan query berupa buah apel yang akan dibuat histogram kemudian dibandingkan.Informasi yang dihasilkan berupa prosentase kemiripan dan penggolongan kematangan buah yang meliputi mentah (18%-100%), mengkal (12%17%), dan matang (0%-11%).
38
Tabel 2.4 Tabel Penelitian Sebelumnya
No Nama
Judul
Metode
Keterangan
1
Dimas Rizki
Alat penyortir
Menggunakan Tujuan
Radityo,
dan pengecekan
sensor warna
mengaplikasikan
Muhammad
kematangan
untuk
TCS3200
Riyan Fadillah,
buah
mengatahui
mengecek
Quincy
menggunakan
tingkat
berdasarkan
Igwahyudi
sensor warna
kematangan
diharapkan
buah.
tahap penyortiran kematangan buah
dari
penelitian
ini
adalah
sensor
sebagai
warna
detektor
untuk
kematangan warnanya. dapat
buah Alat
ini
mengotomatisasi
pasca panen buah-buahan. Sistem yang berfungsi
sebagai
penyortir
buah
penggerak
atau
dikendalikan
oleh
conveyor yang digerakkan oleh motor DC. Adapun metode penelitian yang digunakan
yaitu
melakukan
studi
tentang kematangan buah dan uji coba dalam
perancangan
hardware
serta
software. Hasil yang didapat pada penelitian
ini
adalah
pendeteksian
warna buah yang diuji berupa RGB dan pemisahan buah yang matang dan belum matang. Penelitian ini dilakukan sebagai
dasar
dalam
mencapai
otomatisasi dalam bidang perkebunan. 2
Yuda
Aplikasi
Menggunakan Tujuan
dari
penelitian
ini
adalah
metode
menerapkan metode statistik dengan
citra untuk
ekstrasi
parameter ciri yaitu Mean (µ), Variance
identifikasi
statistik untuk (σ^2), Skewness (α_(3 )), Kurtosis
kematangan
mengetahui
(α_(4 )), dan Entropy (H) sebagai
mentimun
tingkat
metode untuk mengenali kematangan
Permadi,Murinto pengolahan
39
berdasarkan
kematangan
mentimun dari segi tekstur kulit buah
tekstur kulit
buah
dan untuk mengetahui nilai akurasi
buah
setelah sistem diuji.Dan tingkat akurasi
menggunakan
nya mencapai 75%
metode ekstraksi ciri statistik 3
Sunu
Rancang
Menggunakan Dengan histogram dapat dicari citra
Jatmika,Dwi
bangun alat
metode image yang memiliki kemiripan komposisi
Purnamasari
pendeteksi
processing
warna. Pengukuran tingkat kemiripan
kematangan
berdasarkan
dilakukan dengan menghitung jarak
buah apel
komposisi
antar histogram. Komposisi warna dapat
dengan
warna
ditampilkan dalam bentuk histogram
menggunakan
yang
merepresentasikan
distribusi
metode image
jumlah piksel untuk tiap intensitas
processing
warna dalam citra. Sebagai pembanding
berdasarkan
kematangan buah yang diukur adalah
komposisi
histogram warna buah yang sudah
warna
matang.