Click here to load reader

Visualisasi Proses Pemilah Buah Jeruk Sunkist Berdasarkan Ukuran (Software)

  • View
    136

  • Download
    4

Embed Size (px)

Text of Visualisasi Proses Pemilah Buah Jeruk Sunkist Berdasarkan Ukuran (Software)

  • LAPORAN PROYEK AKHIR

    VISUALISASI PROSES PEMILAH BUAH JERUK SUNKIST

    BERDASARKAN UKURAN

    (SOFTWARE)

    DISUSUN OLEH :

    AMIRUL HUDA

    NIM. 1010117421001

    PROGRAM STUDI TEKNIK ELEKTRONIKA

    POLITEKNIK CALTEX RIAU

    PEKANBARU

    2013

  • i

    ABSTRAK

    Umumnya ukuran jeruk sunkist sangat beragam dan sulit dibedakannya.

    Oleh karena itu diperlukan suatu alat yang bertujuan untuk memudahkan dalam

    pengenalan jenis jeruk sunkist berdasarkan ukurannya. Dalam proyek akhir ini,

    proses pemilahan jeruk sunkist berdasarkan ukuran dilakukan dengan software

    pada laptop. Sensor yang digunakan dalam proyek akhir ini adalah webcam

    dengan menggunakan Visual Basic sebagai interface dan proses pengolahannya.

    Hasil dari webcame diolah menggunakan pengolahan citra yang citranya diubah

    menjadi gray-scale, black and white, kemudian dilakukan perhitungan jumlah

    pixel. Pemilah jeruk sunkist berdasarkan ukuran ditentukan dari perhitungan

    jumlah pixel tersebut. Hasil yang diperoleh pada proyek akhir ini memiliki

    persentase keberhasilan memilah sebesar 82,69% dari 13 jeruk sunkist dengan 4

    kali percobaan dari masing-masing jeruk sunkist.

    Kata Kunci: webcam, pengolahan citra, pemilah.

  • ii

    ABSTRACT

    The size of Sunkist oranges are very diverse and difficult to distinguish.

    Therefore, a tool that can simplify the identification of sunkist orange spesies by

    size is needed. This final project, Sunkist orange sorting process by size with the

    software on a laptop. The sensors used in the final project is a webcam with

    Visual Basic as the interface and processing process. The results of the webcam

    processed using image processing is converted to be gray-scale, black and white,

    and then calculate the number of pixels. The sorting a Sunkist orange by size is

    determined from the calculation of the number of pixels. The results of analysis

    obtained at the end of this project has sort of success percentage 82.69% of the 13

    orange Sunkist with 4 trials from each of Sunkist oranges.

    Keywords: webcam, image processing, sorting.

  • iii

    KATA PENGANTAR

    Assalamualaikum, Wr, Wb

    Puji dan Syukur penulis ucapkan kehadirat Allah SWT, karena berkat

    rahmat dan hidayah-Nyalah penulis dapat menyelesaikan tugas akhir

    dan sekaligus juga menyelesaikan pembuatan laporan yang berjudul

    Visualisasi Proses Pemilah Buah Jeruk Sunkist Berdasarkan Ukuran untuk

    bagian software. Dimana laporan proyek akhir ini merupakan salah satu

    persyaratan untuk mengikuti sidang proyek akhir sekaligus syarat kelulusan bagi

    mahasiswa Politeknik Caltex Riau.

    Penulis menyadari bahwa laporan proyek akhir ini masih terdapat

    kekurangan. Oleh sebab itu, saran dan kritik yang bersifat membangun

    senantiasa dinantikan demi kemajuan dan perkembangan bersama. Harapan

    penulis adalah semoga apa yang telah dituangkan dalam buku ini dapat

    bermanfaat bagi penulis dan rekan-rekan mahasiswa khususnya, dan pembaca

    pada umumnya. Penulis juga menyampaikan penghargaan dan ucapan terima

    kasih yang sebesar-besarnya kepada semua pihak yang telah memberikan

    kontribusinya sebelum, sesudah dan selama pelaksanaan penyelesaian proyek

    akhir ini, sehingga penulis bisa menyelesaikan laporan Proyek Akhir ini.

    Pada kesempatan kali ini penulis juga mengucapkan terima kasih

    yang sebesar-besarnya. Untuk itu penulis ucapkan terima kasih kepada :

    1. Bapak Dadang Syarif SS, S.Si., M.Sc. selaku Direktur Politeknik

    Caltex Riau.

    2. Bapak Yusmar Palapa Wijaya, S.Si., M.T. selaku kepala program

    studi Teknik Elektronika Politeknik Caltex Riau.

    3. Ibu Putri Madona, S.ST., M.T. selaku Dosen Wali yang telah menjaga

    dan mendidik penulis selama 3 tahun.

    4. Kedua orang tua dan keluarga saya tercinta yang senantiasa

    memberikan doa, dukungan dan semangat sehingga saya bisa

    menyelesaikan proyek akhir ini.

    5. Ibu Retno Tri Wahyuni, S.T., M.T. selaku pembimbing satu yang

  • iv

    telah banyak memberikan pengarahan dan masukan sehingga semua

    permasalahan mengenai proyek akhir dapat diselesaikan.

    6. Bapak Heri Subagiyo, S.T., M.T. selaku pembimbing dua yang juga

    telah banyak memberikan masukan-masukan serta motivasi

    untuk menyelesaikan TA.

    7. Seluruh dosen Teknik Elektronika.

    8. Seluruh dosen dan staf dibagian administrasi Politeknik Caltek Riau.

    9. Teman-teman seperjuangan TA satu angkatan G10 Politeknik Caltex

    Riau.

    10. Seluruh Himpunan Mahasiswa Teknik Elektronika Politeteknik

    Caltex Riau yang selalu menjunjung tinggi kebersamaan dalam segala

    kondisi.

    11. Teman seperjuangan TA yang senantiasa membantu penulis ketika

    penulis mendapatkan kesulitan dalam proses pengerjaan TA.

    12. Zukhairani efendi yang selalu memberi dukungan dan semangat.

    13. Serta semua pihak yang secara langsung maupun tidak langsung

    telah membantu dalam pelaksanaan tugas akhir dan penulisan

    laporan ini yang tidak dapat saya sebutkan satu-persatu.

    Semoga Allah SWT Yang Maha Pengasih dan Maha Penyayang melimpahkan

    rahmat-Nya kepada Bapak/Ibu serta rekan-rekan, sebagai imbalan atas segala

    jasa yang telah disumbangkan kepada penulis.

    Pekanbaru, September 2013

    Penulis

  • v

    DAFTAR ISI

    ABSTRAK ...................................................................................................... i

    ABSTRACT .................................................................................................. ii

    KATA PENGANTAR .................................................................................. iii

    DAFTAR ISI ................................................................................................. v

    DAFTAR GAMBAR ................................................................................... vii

    DAFTAR LABEL ...................................................................................... viii

    BAB I PENDAHULUAN ............................................................................. 1

    1.1 LATAR BELAKANG MASALAH ........................................................... 1

    1.2 PERUMUSAN MASALAH ...................................................................... 2

    1.3 BATASAN MASALAH ............................................................................ 2

    1.4 TUJUAN DAN MANFAAT ...................................................................... 2

    1.4.1 Tujuan.................................................................................................. 2

    1.4.2 Manfaat ................................................................................................ 2

    1.5 SISTEMATIKA PENULISAN .................................................................. 3

    BAB II TINJAUAN PUSTAKA .................................................................... 4

    2.1 RIVIEW PENELITIAN TERDAHULU .................................................... 4

    2.2 LANDASAN TEORI ............................................................................. 4

    2.2.1 Pengolahan Citra .................................................................................. 4

    2.2.2 RGB..................................................................................................... 5

    2.2.3 Gray-Scale ........................................................................................... 6

    2.2.4 Black and white ................................................................................... 7

    2.2.5 Webcam ............................................................................................... 8

    2.2.6 Standar Ukuran Jeruk ........................................................................... 9

  • vi

    BAB III PERANCANGAN DAN PEMBUATAN ....................................... 10

    3.1 PERANCANGAN ................................................................................... 10

    3.1.1 Blok Diagram.................................................................................... 10

    3.1.2 Perancangan Flowchart ..................................................................... 11

    3.2 PEMBUATAN PROGRAM .................................................................... 13

    3.2.1 Pengambilan Gambar ke Gray Scale ................................................. 13

    3.2.2 Program Gray Scale ke Black and White .......................................... 14

    3.2.3 Program Perhitungan Pixel Putih ...................................................... 16

    3.2.4 Program penerima dan pengiriman data ............................................ 17

    3.3 PENGAMBILAN DATA UKURAN SUNKIST ...................................... 18

    3.4 PERANCANGAN DAN PEMBUATAN SOFTWARE PADA

    MIKROKONTROLLER ......................................................................... 20

    3.5 INTERFACE ........................................................................................... 23

    BAB IV PENGUJIAN DAN ANALISA ...................................................... 26

    4.1 PENGAMBILAN GAMBAR SAAT CONVEYOR BERJALAN ............. 28

    4.2 PENGAMBILAN GAMBAR SAAT CONVEYOR BERHENTI ............. 29

    BAB V PENUTUP ........................................................................................ 31

    5.1 KESIMPULAN ....................................................................................... 31

    5.2 SARAN ................................................................................................... 31

    DAFTAR PUSTAKA ................................................................................... 32

    LAMPIRAN

  • vii

    DAFTAR GAMBAR

    Gambar 2.1 Nilai Warna RGB dalam hexadesimal ............................................. 5

    Gambar 2.2 Komposisi Warna RGB ................................................................... 6

    Gambar 2.3 Webcam Logitec C-170 ................................................................... 8

    Gambar 3.1 Blok Diagram Pemilah Buah Berdasarkan Ukuran ....................... 10

    Gambar 3.2 Detail Blok Diagram Alat Pemilah Buah Berdasarkan Ukuran ...... 10

    Gambar 3.3 Flowchart Alat Pemilah Buah Berdasarkan Ukuran ...................... 12

    Gambar 3.4 Pengambilan data pixel berdasarkan diameter (cm) ....................... 19

    Gambar 3.5 Flowchart Pemilah Jeruk Sunkist Berdasarkan Ukuran ................. 21

    Gambar 3.6 Form proses pemilah buah jeruk Sunkist ...................................... 23

    Gambar 4.1 Tampilan pada software ................................................................ 26

    Gambar 4.2 Tampilan saat webcam aktif ......................................................... 27

    Gambar 4.3 Tampilan saat memproses pemilahan ............................................ 27

    Gambar 4.4 Pengambilan Data ketika konveyor berjalan .................................. 28

    Gambar 4.5 Pengambilan Data ketika konveyor berhenti ................................. 29

  • viii

    DAFTAR TABEL

    Tabel 1. Contoh-contoh warna dalam hexadesimal .............................................. 6

    Tabel 2. Kelas penggolongan berdasarkan besar/beratnya ................................... 9

    Tabel 3. Percobaan menghitung pixel ............................................................... 21

    Tabel 4. Hasil setelah melakukan pengukuran ................................................... 21

    Tabel 5. Hasil pemilahan jeruk sunkist berdasarkan ukuran ............................... 29

  • 1

    BAB I

    PENDAHULUAN

    1.1 Latar Belakang Masalah

    Ukuran jeruk sunkist yang sangat beragam dan hampir memiliki kesamaan

    dalam bentuk membuat agak sulit dibedakan. Sedangkan Secara obyektif,

    diameter buah jeruk merupakan salah satu Standar Nasional Indonesia (SNI) yang

    digolongkan atas 4 kelas berdasarkan diameter, hal ini dapat dilihat pada SNI 01-

    3165-1992, Badan Standardisasi Nasional (2009). Pada proyek akhir ini, ukuran

    diameter tersebut digunakan sebagai pembeda antara jeruk sunkist satu dengan

    yang lain, sehingga dapat dikelompokkan mana yang termasuk kelas A, B, C dan

    D.

    Pada proyek akhir ini adalah mencoba untuk membuat sistem yang modern

    dan otomatis dengan bantuan PC (Personal Computer) dan Webcam. Melalui

    webcam tersebut komputer dapat mengenali berapa ukuran buah jeruk tersebut

    dengan gambar yang diambil. Pengolahan citra (Image Processing) merupakan

    suatu metode yang dapat digunakan untuk memproses citra yang diinginkan untuk

    mendapat ukuran jeruk tertentu.

    Proyek Akhir ini merujuk pada karya Thiang, Leonardus Indrotanoto (2008),

    dimana persamaannya terletak pada objek yang diidentifikasi yaitu buah.

    Kekurangan dari tugas akhir tersebut adalah hanya mengidentifikasi buah

    berdasarkan warna dan ukuran tanpa ada pengaturan kendali dari PC (Personal

    Computer), sehingga masih ditemukan kekurangan dalam pengoperasiannya.

    Untuk mengatasi hal tersebut, maka perlu ditambahkan proses pengoperasian

    yang lebih nyaman dan mudah. Proyek akhir ini berusaha memberikan alternatif

    baru dalam Visualisasi Proses Pemilah Buah Jeruk Sunkist Berdasarkan

    Ukuran. Kelebihan dari proyek akhir ini adalah dapat mengidentifikasi jenis

    jeruk dengan berbeda bentuk dan dapat dikendalikan gerak konveyor dari PC.

    Proses identifikasi ukuran jeruk dilakukan dengan 3 langkah, yaitu langkah

    pertama melakukan pengambilan gambar sunkist melalui webcam. Langkah kedua

    adalah mencari nilai RGB dan menentukan bentuk dari sunkist itu sendiri dengan

    mengubah ke gray scale dan black and white, lalu dicari nilai pixelnya. Dan

  • 2

    langkah terakhir adalah menentukan apakah nilai pixel yang dihasilkan sesuai

    dengan nilai pixel yang ada pada ukuran kelas A, B, C dan D.

    1.2 Perumusan Masalah

    Untuk merealisasikan Visualisasi proses pemilah buah tersebut, terdapat

    beberapa perumusan masalah yang akan diselesaikan, yaitu:.

    1. Bagaimana membuat sistem pengambilan gambar pada konveyor.

    2. Bagaimana proses menentukan ukuran jeruk Sunkist dengan webcam.

    1.3 Batasan Masalah

    Penulis akan merancang Visualisasi proses pemilah buah jeruk sunkist ini

    dengan batasan-batasan sebagai berikut:

    1. Jarak peletakan buah tidak berdekatan.

    2. Jeruk sunkist yang dipilah tidak busuk dan tidak ada bercak hitam.

    1.4 Tujuan dan Manfaat

    1.4.1 Tujuan

    Adapun tujuan dari pembuatan tugas akhir ini adalah membuat visualisasi

    pemisah buah jeruk sunkist serta alat yang bergerak berdasarkan inputan dari

    visual yang dibuat pada komputer.

    1.4.2 Manfaat

    Dari proyek akhir yang dibuat diharapkan dapat memberikan manfaat

    berupa metode baru dalam melakukan pemilahan buah secara otomatis dan mudah

    tanpa harus melakukan secara manual.

  • 3

    1.5 Sistematika Penulisan

    Untuk mempermudah dalam penyelesaian proyek akhir ini, maka penulis

    membuat urutan pembahasan sebagai berikut :

    BAB I PENDAHULUAN

    Dalam bab ini akan dibahas latar belakang, maksud dan tujuan, perumusan

    masalah, batasan masalah, dan sistematika pembahasan.

    BAB II TINJAUAN PUSTAKA

    Dalam bab ini kami menuliskan beberapa teori dasar yang diperlukan dalam

    penyelesaian pembuatan sistem Visualisasi proses pemilah buah jeruk Sunkist

    berdasarkan ukuran

    BAB III PERENCANAAN DAN PEMBUATAN ALAT

    Bab ini membahas tentang perencanaan dan pembuatan alat berupa pengacak dan

    pemilah, serta realisasi program, dimana mencakup blok diagram rangkaian dan

    flowchart dari perencanaan sistem secara lengkap beserta penjelasan cara kerja

    dari sistem.

    BAB IV PENGUJIAN DAN ANALISA

    Bab ini berisi hasil pengambilan data dan analisa terhadap data tersebut, hal-

    hal yang menyebabkan adanya kesalahan data ataupun menghambat

    proses pembuatan sistem.

    BAB V KESIMPULAN DAN SARAN

    Bab ini berisi kesimpulan dari seluruh proses kegiatan proyek akhir dan saran

    terhadap perkembangannya kedepan.

    DAFTAR PUSTAKA

    LAMPIRAN

  • 4

    BAB II

    TINJAUAN PUSTAKA

    2.1 Review Penelitian Terdahulu

    Thiang, Leonardus Indrotanoto (2008), pada tugas akhir mereka bertujuan

    untuk mengurangi penggunaan sensor warna dan ukuran sehingga penelitiannya

    adalah pemisah buah tomat dengan mengklasifikasikan ukuran dan warna, metode

    yang digunakan adalah image prosesing, threshold dan edge detection.

    Sedangkan pada tugas akhir ini bertujuan agar alat ini bermanfaat bagi

    petani jeruk Sunkist, untuk metode yang dilakukan pada tugas akhir ini yaitu

    grayscale, black and white dan penghitungan jumlah pixel berwarna putih.

    2.2 Landasan Teori

    2.2.1 Pengolahan Citra

    Pengolahan Citra adalah suatu metode yang digunakan untuk mengolah

    gambar sehingga dihasilkan gambar lain yang sesuai dengan keinginan kita.

    Untuk mengambil gambar bisa dilakukan oleh kamera atau alat-alat lain yang bisa

    digunakan untuk menstrafer gambar misalnya scanner.

    Bahasan kali ini berfokus pada pengambilan gambar dengan

    menggunakan kamera (webcam). Sehingga citra yang dihasilkan sudah berbentuk

    sinyal digital dan mudah diproses oleh komputer.

    Citra digital ( digital image ) adalah citra kontinyu yang sudah

    didiskritkan, baik koordinat spasial maupun kecerahannya. Citra digital dianggap

    sebagai matriks dengan ukuran MxN dimana baris dan kolomnya menunjukkan

    titik-titiknya. Citra berwarna menggunakan metode RGB, adapun masing-masing

    warna dalam tabel memiliki tiga buah kombinasi angka yaitu R, G dan B yang

    menentukan proposi warna merah, hijau dan biru dari warna tersebut. RGB

    masing-masing memiliki range antara 0 hingga 63 sehingga jumlah warna yang

  • 5

    dapat kita pilih untuk mengisi warna pada sebuah cell di tabel ialah 63x63x63 =

    16 juta warna. Tetapi seluruh tabel hanya dapat diisi dengan 256 pilihan warna.

    Kita dapat mengubah intensitas warna dari sebuah warna pada tabel dengan cara

    menggunakan interrupt-interrupt.

    Sering kali citra yang dihasilkan atau didapatkan memiliki kualitas

    yang kurang bagus. Hal ini dapat dikarenakan gangguan teknis peralatan yang

    digunakan atau adanya noise disekitarnya. Dapat juga dikarenakan pencahayaan

    yang kurang optimal. Untuk itu dilakukan manipulasi parameter citra untuk

    mempaerbaiki kualitas citra.

    2.2.2 RGB

    Dasar dari pengolahan citra adalah pengolahan warna RGB pada posisi

    tertentu. Dalam pengolahan citra warna dipresentasikan dengan nilai hexadesimal

    dari 0x00000000 sampai 0x00ffffff. Warna hitam adalah 0x00000000 dan warna

    putih adalah 0x00ffffff. Definisi nilai warna di atas seperti gambar 2.1, variabel

    0x00 menyatakan angka dibelakangnya adalah hexadecimal.

    Terlihat bahwa setiap warna mempunyai range nilai 00 (angka desimalnya

    adalah 0) dan ff (angka desimalnya adalah 255), atau mempunyai nilai derajat

    keabuan 256 = 28. Dengan demikian range warna yang digunakan adalah

    (28)(2

    8)(2

    8) = 2

    24(atau yang dikenal dengan istilah True Colour pada Windows).

    Nilai warna yang digunakan di atas merupakan gabungan warna cahaya merah,

    hijau dan biru seperti yang terlihat pada gambar 2.2. Sehingga untuk menentukan

    nilai dari suatu warna yang bukan warna dasar digunakan gabungan skala

    kecerahan dari setiap warnanya.

  • 6

    Dari definisi diatas untuk menyajikan warna tertentu dapat dengan mudah

    dilakukan, yaitu dengan mencampurkan ketiga warna dasar RGB, table 1. berikut

    memperlihatkan contoh-contoh warna yang bisa digunakan:

    Untuk mengetahui kombinasi warna, perlu dibuat suatu program yang dapat

    menampilkan warna sesuai dengan nilai yang dimasukkan sehingga dapat dicoba

    berbagai macam kombinasi warna RGB seperti gambar 2.2.

    2.2.3 Gray scale

    Proses awal yang banyak dilakukan dalam image processing adalah

    mengubah citra berwarna menjadi citra gray scale, hal ini digunakan untuk

    menyederhanakan model citra. Seperti telah dijelaskan di depan, citra berwarna

    terdiri dari 3 layer matrik yaitu R-layer, G-layer dan B-layer. Sehingga untuk

    melakukan proses-proses selanjutnya tetap diperhatikan tiga layer di atas. Bila

    setiap proses perhitungan dilakukan menggunakan tiga layer, berarti dilakukan

    tiga perhitungan yang sama. Sehingga konsep itu diubah dengan mengubah 3

  • 7

    layer di atas menjadi 1 layer matrik gray scale dan hasilnya adalah citra gray

    scale. Dalam citra ini tidak ada lagi warna, yang ada adalah derajat keabuan.

    Untuk mengubah citra berwarna yang mempunyai nilai matrik masing-masing r, g

    dan b menjadi citra gray scale dengan nilai s, maka konversi dapat dilakukan

    dengan mengambil rata-rata dari nilai r, g dan b sehingga dapat dituliskan

    menjadi: (2.1)

    2.2.4 Black and white

    Black and white adalah sebuah citra pixel-pixel yang nilai intensitasnya di

    bawah 128 diubah menjadi hitamsedangkan pixel-pixel yang nilai intensitasnya di

    atas 128 diubah menjadi putih. Dalam pengolahan citra digital Black & White

    disebut juga dengan citra biner. Sesuai kutipan dari Chandra Wijaya (2010) yang

    mendefinisikan black & white sebagai berikut;

    Black and white adalah sebuah citra pixel-pixel pada gambar yang nilai

    intensitasnya di bawah 128 diubah menjadi hitam (nilai intensitas = 0) jadi

    hanya berwarna hitam atau putih saja, sedangkan pixel-pixel yang nilai

    intensitasnya di atas 128 diubah menjadi putih (nilai intensitas =1).

    Black and white disebut juga citra biner.

    Citra biner adalah citra digital yang hanya memiliki dua nilai yang

    mungkin untuk setiap pixel . Biasanya dua warna yang digunakan untuk citra

    biner hitam dan putih meskipun setiap dua warna bisa digunakan. Warna

    yang digunakan untuk objek pada gambar adalah warna foreground sedangkan

    sisanya gambar adalah warna latar belakang.

    Citra biner adalah citra yang melalui proses pemisahan piksel piksel

    berdasarkan derajat keabuan yang dimiliki. Pembentukan citra biner memerlukan

    nilai batas keabuan yang akan digunakan sebagai nilai patokan. Pixel dengan

    derajat keabuan lebih besar dari nilai batas akan diberi nilai 1 dan sebaliknya

    piksel dengan derajat keabuan lebih kecil dari nilai batas akan diberi nilai 0.

    Sesuai kutipan dari Ferdinand Simanjuntak (2009) yang mendefinisikan citra

    biner sebagai berikut ;

  • 8

    Citra biner merupakan citra yang telah melalui proses pemisahan

    piksel piksel berdasarkan derajat keabuan yang dimiliki. Pembentukan

    citra biner memerlukan nilai batas keabuan yang akan digunakan

    sebagai nilai patokan. Pixel dengan derajat keabuan lebih besar dari

    nilai batas akan diberi nilai 1 dan sebaliknya piksel dengan derajat

    keabuan lebih kecil dari nilai batas akan diberi nilai 0.

    2.2.5 Webcam

    Webcam atau web camera adalah sebuah kamera video digital kecil yang

    dihubungkan ke komputer melalui (biasanya) port USB ataupun port COM.

    Istilah webcam merujuk pada teknologi secara umumnya, sehingga kata web

    terkadang diganti dengan kata lain yang mendeskripsikan pemandangan yang

    ditampilkan di kamera.

    Metode yang paling umum pada webcam adalah merubah gambar ke dalam

    bentuk file JPEG dan menguploadnya ke web server menggunakan File Transfer

    Protocol(FTP). Frame rate mengindikasikan jumlah gambar sebuah software

    dapat ambil dan transfer dalam satu detik. Untuk streaming video, dibutuhkan

    minimal 15 frame per second (fps) atau idealnya 30 fps.. Sebuah web camera

    tidak harus selalu terhubung dengan komputer, ada web camera yang memiliki

    software webcam dan web server bulit-in, sehingga yang diperlukan hanyalah

    koneksi internet. Web camera seperti ini dinamakan network camera. Kita juga

    bisa menghindari penggunaan kabel dengan menggunakan hubungan radio,

    koneksi Ethernet ataupun WiFi.

    Gambar 2.3 Webcam Logitec C-170

  • 9

    2.2.6 Standar Ukuran Jeruk

    Jeruk memiliki ukuran yang berbeda-beda sehingga dalam

    penggolongannya dibagi menjadi 4 bagian yaitu kelas A, kelas B, kelas C dan

    kelas D. Kelas penggolongan jeruk berdasarkan besar/beratnya dapat dilihat pada

    tabel 2 yang telah ditentukan oleh Badan Standardisasi Nasional (2009), tentang

    SNI 01-3265-1992.

    Tabel 2. Kelas penggolongan berdasarkan besar/beratnya

  • 10

    BAB III

    PERANCANGAN DAN PEMBUATAN

    3.1 Perancangan

    3.1.1 Blok Diagram

    Gambar 3.1 Blok Diagram Pemilah Buah Berdasarkan Ukuran

    Alat pemisah jeruk ini memiliki kemampuan membedakan secara

    digital sehingga dapat membedakan ukuran dari buah jeruk yang akan

    dipisahkan. Gambar diambil oleh sensor yang berupa webcam, dan gambar

    tersebut akan diolah oleh komputer untuk membedakan ukuran jeruk yang

    akan diukur. Bab ini dibagi menjadi dua bagian yaitu bagian pertama yang

    membahas perangkat keras (hardware) dan yang kedua bagian perangkat

    lunak (Software) yang digunakan untuk mengolah ukuran jeruk tersebut dan

    hubungan ke perangkat keras.

    Gambar 3.2 Detail Blok Diagram Alat Pemilah Buah Berdasarkan Ukuran

    Webcam PC (Personal

    Computer) ATmega32 Conveyor dan

    Aktuator

  • 11

    Dari gambar detail blok diagram dapat dijelaskan sebagai berikut:

    Informasi data yang berupa objek gambar dari Kamera Webcam yang

    dimonitoring oleh laptop atau PC (Personal Computer). setelah komputer

    menerima hasil informasi tersebut maka data informasi tersebut akan

    dimanipulasi di komputer dengan menggunakan metode segmentasi ukuran

    menjadi suatu data yang diinginkan untuk proses selanjutnya. Kemudian

    dikirimkan data tersebut melalui RS232 (USB Serial Converter) yang

    terhubung pada ATMega 32 dan rangkain driver motor. Lalu jika jeruk

    berukuran kecil, maka akan memerintahkan Motor Servo C untuk menutup

    jalan dari Konveyor. Dan jeruk langsung masuk ke dalam tempat yang telah

    di sediakan. Sebelum sampai di tempat yang telah disediakan tersebut, jeruk

    akan mengenai Limit Switch yang berfungsi agar motor servo yang dalam

    keadaan menutup tadi akan kembali terbuka. Begitu juga untuk motor servo

    B (jeruk ukuran sedang) da motor servo A (untuk ukuran besar). Setelah

    proses ini selesai, maka kamera mulai mengambil gambar dari buah jeruk

    Sunkist.

    Webcam yang digunakan adalah Webcam Logitec C-170 usb 2.0 yang

    telah memiliki spesifikasi sebagai berikut: Video Capture : 640 x 480, Pixels

    Still image capture up to 5 Mega pixels (software enhanced) dan Hi speed

    usb 2.0 certified.

    Pada proyek akhir ini hanya membahas bagian softwarenya saja yang

    akan dijalankan pada laptop/PC.

    3.1.2 Perancangan Flowchart

    Bahasa yang digunakan adalah bahasa pemrograman Visual Basic

    6.0. Pemilihan bahasa pemrograman ini karena pada kenyataannya bekerja

    pada platform berbasis windows sehingga bahasa pemrograman ini

    merupakan menggunakan GUI (Graphics User Interface).

  • 12

    Perancangan software ini terdiri dari beberapa bagian yang bertujuan

    memisahkan buah jeruk Sunkist berdasarkan ukuran. Di bawah ini

    merupakan blok diagram dan flowchart dari bagian perancangan software.

    START

    Start, Stop,

    Mikro

    Apakah Start

    diklik?

    Webcam aktif dan

    kirim data ke mikro

    Start

    Apakah Stop

    diklik?

    Apakah ada

    data 1 dari

    mikro?

    Webcam tidak aktif

    dan kirim data ke

    mikro Stop Ambil gambar

    Gambar diubah ke gray scale

    lalu ke Black and White, dihitung

    jumlah pixel putihnya dan

    membandingkan data yang

    sesuai kelas

    Kelas = A Kelas = B Kelas = C Kelas = D

    Pixel putih >

    10531

    Pixel Putih >

    7573 dan Pixel

    Putih

    5515 dan Pixel

    Putih

  • 13

    Keterangan dari flowchart diatas, ketika alat aktif dan ada perintah

    masukkan start dari interface konveyor akan bergerak dan webcam langsung

    aktif untuk siap mengambil gambar pada konveyor, saat tidak ada benda

    akan kembali ke proses deteksi. Saat sudah adanya data dari mikro maka

    gambar yang tadi akan di picture lalu diubah ke gray scale kemudian ke

    black and white, setelah itu akan menghitung berapa jumlah pixel yang putih

    saat diubah ke black and white, saat sudah dapat hasil pixelnya maka akan

    dibandingkan dengan data pixel buah jeruk kelas A, B, C atau D. Saat

    sudah diketahui hasilnya maka memberi perintah ke mikro untuk

    menggerakkan aktuator yang sesuai dengan fungsinya.

    3.2 Pembuatan Program

    3.2.1 Pengambilan Gambar ke Gray scale

    Proses pengambilan gambar tiap frame menggunakan fungsi dari

    platform yang ada pada Windows, yaitu dengan menggunakan fungsi yang

    terdapat pada file avicap32.dll. untuk dapat mengakses fungsi ini, harus

    dilakukan install driver dari kamera agar computer mengenali adanya

    kamera sehingga proses pengambilan gambar dapat dilakukan. Pada

    program visual basic digunakan tools bernama VBTools untuk mengambil

    gambar tiap frame dari kamera yang sudah dikenali oleh komputer atau

    laptop. VBTools memiliki dua jenis toolbox, yaitu VideoOCX yang

    berfungsi sebagai tampilan dari gambar dan VideoOCXTools yang

    berfungsi sebagai image prosesing sehingga proses untuk mengubah gambar

    tidak memerlukan listing program dan hanya memanggil tools tersebut.

    Dibawah ini adalah listing program yang dipakai untuk memanggil tools

    VideoOCX dan memulai pengambilan gambar tiap framenya dan langsung

    di ubah ke gray scale.

    Dim matrix As Variant

    Dim x As Integer

    Dim y As Integer

    Dim i As Intege

  • 14

    ' Capture one image

    VideoOCX1.Capture (m_Image)

    ' Get access to the image pixel matrix

    matrix = VideoOCX1.GetMatrix(m_Image)

    ' Simple example : Invert the colors of our image

    For y = 0 To VideoOCX1.GetHeight - 1

    For x = 0 To VideoOCX1.GetWidth 1

    matrix(x, y, 0) = (matrix(x, y, 0) + matrix(x, y, 1) + matrix(x, y, 2)) / 3

    matrix(x, y, 1) = (matrix(x, y, 0) + matrix(x, y, 1) + matrix(x, y, 2)) / 3

    matrix(x, y, 2) = (matrix(x, y, 0) + matrix(x, y, 1) + matrix(x, y, 2)) / 3

    Next x

    Next y

    ' Very important : Release the matrix and update the image handle

    VideoOCX1.ReleaseMatrixToImageHandle m_Image

    ' Display the processing result in our own window

    Picture2 = VideoOCX1.ToPicture(m_Image)

    3.2.2 Program Gray scale ke Black and white

    Gambar yang sudah di ambil dari webcame dan di ubah ke gray

    scale di simpan di pictucebox2 setelah berada di picture2 maka akan

    diubah ke black and white pada picturebox3 dengan program sebagai

    berikut:

    Const IntPixelX = 320

    Const IntPixelY = 240

    Dim Pixels(1 To IntPixelX, 1 To IntPixelY) As Long

    Dim x, y As Integer

    Dim Merah, Hijau, Biru, Abu2 As Integer

    Dim nilai As Integer

    nilai = HScroll1.Value

  • 15

    Text1.text = nilai

    For x = 1 To IntPixelX

    For y = 1 To IntPixelY

    Pixels(x, y) = Picture2.Point(x, y)

    Next y

    Next x

    For x = 1 To IntPixelX

    For y = 1 To IntPixelY

    Merah = Pixels(x, y) And &HFF

    If (Merah < nilai) Then

    Abu2 = 0

    ElseIf (Merah > nilai) Then

    Abu2 = 255

    End If

    Hijau = ((Pixels(x, y) And &HFF00) / &H100) Mod &H100

    If (Hijau < nilai) Then

    Abu2 = 0

    ElseIf (Hijau > nilai) Then

    Abu2 = 255

    End If

    Biru = ((Pixels(x, y) And &HFF0000) / &H10000) Mod &H100

    If (Biru < nilai) Then

    Abu2 = 0

    ElseIf (Biru > nilai) Then

    Abu2 = 255

    End If

  • 16

    Pixels(x, y) = RGB(Abu2, Abu2, Abu2)

    Next y

    Next x

    For x = 1 To IntPixelX

    For y = 1 To IntPixelY

    Picture3.PSet (x, y), Pixels(x, y)

    Next y

    Next x

    Dari program diatas dapat dijelaskan bahwa ketika nilai warna

    merah, hijau dan biru pada saat sudah di ubah ke gray scale dibawah nilai

    set point dari scroll yang ada pada Visual Basic maka akan berwarna hitam

    dan ketika nilainya besar dari set point scroll maka akan berwarna putih.

    Hal ini akan berulang hingga hitungan pixel x dan y berakhir.

    3.2.2 Program Perhitungan Pixel Putih

    Dim x As Long, y As Long

    Dim h As Long, count As Long

    Dim o As String

    For x = 0 To Picture3.ScaleWidth - 1

    For y = 0 To Picture3.ScaleHeight - 1

    h = GetPixel(Picture3.hdc, x, y)

    If h = vbWhite Then

    count = count + 1

    End If

    DoEvents

    Next

    Next

  • 17

    Text3.text = count

    Pada program ini adalah menghitung jumlah pixel putih dari jeruk

    Sunkist yang sudah diubah gambarnya ke black and white pada program

    3.2.1. lalu jumlah pixel putih dapat dihitung dengan adanya

    Count=Count+1 jadi selama pembacaan picturebox3 ada warna pixel putih

    makan akan selalu di tambah 1, sehingga di dapatlah nilai total pixel putih

    ketika hitungan tiap pixel telah selesai.

    3.2.3 Program penerima dan pengiriman data

    If MSComm1.CommEvent = comEvReceive Then

    g = MSComm1.Input

    Text8.text = g

    If g = 1 Then

    text = 0

    MSComm1.Output = text

    Text2.text = text

    g = 0

    Timer3.Enabled = True

    Timer2.Enabled = True

    End If

    End If

    Pada program ini yaitu sebagai penerima data dari mikro yang akan

    di proses pada visual basic. Ketika data yang diterima adalah 1 maka akan

    melakukan proses pada timer3 yang perintahnya yaitu menutup pintu

    keluarnya jeruk Sunkist, ketika timer3 telah selesai maka dilanjutkan ke

    timer2 yang berisikan keseluruhan proses gray scale, black and white,

    hitung pixel putih, dan termasuk kelas mana buah jeruk tersebut. Untuk

    memberi perintah pada mikro untuk mengaktifkan konveyor, penghalang

    dan lain-lain adalah sebagai berikut:

  • 18

    text = 2

    MSComm1.Output = text

    Text2.text = text

    Nilai text = 2 ini tergantung dari perintah yang ada pada mikro akan

    mengaktifkan aktuator yang diinginkan.

    Kemudian pada MSComm1.output = text inilah perintah dari visual

    basic dikirimkan ke mikro melalui komunikasi serial yang menggunakan

    kabel USB to RS232.

    3.3 Pengambilan Data Ukuran Sunkist

    Setelah membuat program yang sudah terdiri dari pengaktifan webcame,

    mengambil gambar lalu mengubahnya ke gray scale dan terakhir mengubahnya ke

    black and white maka hal terakhir dalam pembuatan adalah mengambil data jeruk

    Sunkist berdasarkan pixel gambar putih yang sudah diproses, hal ini dilakukan

    dengan cara membuat sebuah lingkaran dari kertas dengan diameter 7 cm, 6 cm

    dan 5 cm dengan jarak webcam dengan konveyor 22,5 cm sehingga didapatlah

    data sebagai berikut:

  • 19

    Gambar 3.4 Pengambilan data pixel berdasarkan diameter (cm)

    Maka dari gambar 3.4 pengambilan data pixel berdasarkan diameter (cm)

    didapatlah data dengan diubah ke table sebagai berikut:

    Tabel 3. Percobaan menghitung pixel

    Diameter lingkaran yang dibuat (Cm) Diameter pada pengolahan (Pixel)

    7 10530

    6 7572

    5 5514

    Sehingga dari data tersebut maka didapat ketentuan sebagai berikut:

  • 20

    Tabel 4. Hasil setelah melakukan pengukuran

    Kelas Sunkist Diameter (Cm) Diameter (Pixel)

    A >7 >10531

    B 6,1-7,0 7573-10530

    C 5,1-6,0 5515-7572

    D

  • 21

    Apakah data

    = 1 ?

    Apakah buah

    mengenai limit

    switch 1 ?

    Y

    T

    END

    Apakah data

    = 2 ?

    Apakah buah

    mengenai limit

    switch 2 ?

    Y

    T

    Apakah data

    = 3 ?

    Apakah buah

    mengenai limit

    switch 3 ?

    Y

    T

    T T T

    YY

    T

    Y

    1

    Motor kelas A

    aktif menutup 90

    derjat

    Motor kelas B

    aktif menutup 90

    derjat

    Motor kelas C

    aktif menutup 90

    derjat

    Motor kelas A

    aktif membuka

    90 derjat dan

    membuka

    penghalang

    Motor kelas B

    aktif membuka

    90 derjat dan

    membuka

    penghalang

    Motor kelas C

    aktif membuka

    90 derjat dan

    membuka

    penghalang

    Motor kelas

    A,B,C aktif

    membuka

    Gambar 3.5 Flowchart Pemilah Jeruk Sunkist Berdasarkan Ukuran

    Dari diagram alir tersebut, pada saat inisialisasi hardware selesai maka

    saat start,setelah menerima data dari PC / laptop :

    Bila tombol konveyor start ditekan, jika Ya maka konveyor aktif. Jika

    Tidak masuk kekondisi dua yaitu data konveyor stop.

    Motor penghalang jeruk sunkist pada wadah membuka. Penghalang

    mengenai limit switch 4 maka motor penghalang jeruk sunkist

    menutup kembali.

    Jika jeruk mengenai limit switch 5 maka konveyor berhanti. Jika tidak

    maka jeruk sunkist langsung masuk ke kotak D.

    Jika data jeruk yang di terima dari PC berukuran kecil atau sama

    dengan 1, maka Motor kelas A aktif menutup 90 dan menutup jalan

    dari Konveyor, lalu konvoyor aktif. Jeruk langsung masuk ke dalam

    tempat yang telah di sediakan. Sebelum sampai di tempat yang telah

    disediakan tersebut, jeruk akan mengenai Limit Switch yang berfungsi

    agar motor servo yang dalam keadaan menutup tadi akan kembali

    terbuka.

  • 22

    Begitu juga untuk Motor kelas B (jeruk ukuran sedang) dan motor

    kelas C (untuk ukuran besar).

    Jika tidak diketahui ukuran dari jeruk tersebut, maka semua motor

    servo A, B, dan C aktif membuka. Sehingga jeruk langsung masuk ke

    kotak ke empat yang telah di sediakan.

    Setelah proses ini selesai, maka kamera mulai mengambil gambar dari

    buah jeruk Sunkist.

    Jika dibuat pada program menjadi seperti dibawah ini, (motor servo

    bergerak 90 :

    #include #include

    void main(void)

    {

    PORTD=000;

    DDRD=001;//portd.0 sebagai output

    // Analog Comparator initialization

    // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off

    ACSR=080;

    SFIOR=000;

    while (1)

    void buka0()

    { PORTA.0=1;//memberikan pulsa high

    delay_ms(1);//pulsa high diberikan selama 1 ms

    PORTA.0=0; delay_ms(20);

    }

    void tutup0()

    { PORTA.0=1;//memberikan pulsa high

    delay_ms(2);//pulsa high diberikan selama 2 ms

    PORTA.0=0; delay_ms(20);

    };

    }

  • 23

    3.5 Interface

    Gambar 3.6 Form proses pemilah buah jeruk Sunkist

    Keterangan:

    1. Layar monitor dari kamera dalam bentuk warna

    2. Layar monitor dari kamera dalam bentuk gambar gray scale

    3. Layar monitor hasil pengolahan dari gray scale ke black and white

    4. Nilai range atau batasan ketika ingin merubah hasil gray scale ke black

    and white

    5. Hasil perhitungan pixel putih dari monitor black and white

    6. Hasil kelas jeruk setelah dari jumlah pixel

    7. Jumlah jeruk yang sudah diproses berdasarkan kelasnya

    Tombol pada form pemilah buah jeruk sunkist adalah sebagai berikut:

    Start

    Tombol ini digunakan untuk mengaktifkan webcam yang akan mengambil

    tiap frame dan akan mengaktifkan konveyor.

    Driver

    1

    2

    3

    4

    5

    6

    7

  • 24

    Tombol ini digunakan untuk melihat driver webcam yang terdapat pada

    PC ataupun Laptop.

    Stop

    Tombol ini digunakan untuk menon-aktifkan webcame dan juga konveyor

    yang tadinya sudah aktif.

    Grayscale

    Tombol ini digunakan untuk mengubah hasil dari webcam menjadi gambar

    grayscale yang dilakukan secara manual.

    Ubah ke black and white

    Tombol ini digunakan untuk mengubah gambar grayscale ke black and

    white.

    Hitung dan hasil pixel

    Tombol ini digunakan untuk menghitung jumlah pixel putih yang terdapat

    pada picturebox bagian black and white

    Hitung jumlah buah secara manual

    Tombol ini digunakan untuk menambah jumlah jeruk yang sudah dideteksi

    berdasarkan perbandingan nilai pixel putih.

    Hapus jumlah semua buah

    Tombol ini digunakan untuk menghapus jumlah kelas buah yang sudah

    terhitung pada frame jumlah buah sehingga jumlah buah kembali nol.

    Semua proses pemilah (kalibrasi)

    Tombol ini digunakan untuk mencari nilai pada range black and white agar

    tidak ada warna putih selain dari jeruk sunkist, pada tombol ini meliputi

    pengambilan gambar yang akan di ubah ke gray scale dan ke black and

    white serta perhitungan pixel putih dan terakhir termasuk ke kelas mana

    buah jeruk sunkist tersebut.

    Start Konveyor

    Tombol ini digunakan untuk mengaktifkan konveyor tanpa harus

    mengaktifkan webcam.

    Stop Konveyor

    Tombol ini digunakan untuk menon-aktifkan konveyor tanpa harus

    mengaktifkan webcam.

  • 25

    Servo A 90

    Tombol ini digunakan untuk membuka penghalang yang menuju kewadah

    kelas A dengan manual.

    Servo A -90

    Tombol ini digunakan untuk menutup penghalang yang menuju kewadah

    kelas A dengan manual.

    Servo B 90

    Tombol ini digunakan untuk membuka penghalang yang menuju kewadah

    kelas B dengan manual.

    Servo B -90

    Tombol ini digunakan untuk menutup penghalang yang menuju kewadah

    kelas B dengan manual.

    Servo C 90

    Tombol ini digunakan untuk membuka penghalang yang menuju kewadah

    kelas C dengan manual.

    Servo C -90

    Tombol ini digunakan untuk menutup penghalang yang menuju kewadah

    kelas C dengan manual.

    Buka pintu

    Tombol ini digunakan untuk mengeluarkan buah jeruk sunkist dari wadah

    yang belum di pisahkan berdasarkan kelasnya.

    Tutup pintu

    Tombol ini digunakan untuk menghalang buah jeruk sunkist dari wadah

    yang belum di pisahkan berdasarkan kelasnya.

  • 26

    BAB IV

    PENGUJIAN DAN ANALISA

    Pengujian dan analisa ini dilakukan dengan tujuan untuk memastikan

    apakah sistem yang dibuat telah memenuhi kriteria sebagaimana yang

    diinginkan. Pengujian ini dilakukan secara bertahap dan berulang kali agar

    didapatkan data yang lebih akurat dan presisi, sehingga memudahkan dalam

    melakukan analisa. Pengujian dan analisa ini terdiri dari 2 bagian, yaitu

    pengujian pengambilan data saat konveyor bergerak dan saat konveyor

    berhenti.

    Sebelum masuk ke bagian pengujian dan analisa tersebut, berikut

    dijelaskan prosedur yang telah dilakukan dalam penggunaan Visualisasi

    Proses Pemilah Jeruk Sunkist Berdasarkan Ukuran.

    1. Menghubungkan kabel webcam dan USB converter ke PC/laptop yang

    sudah terdapat software berikut:

    Gambar 4.1 Tampilan pada software

  • 27

    2. Memilih software webcam dan mengaktifkan pengambilan gambar.

    Gambar 4.2 Tampilan saat webcam aktif

    3. Kemudian mengkalibrasinya dengan mengubah scroll sesuai dengan

    keinginan dengan hasil gambar dan pixel yang putih yang sempurna.

    Gambar 4.3 Tampilan saat memproses pemilahan

  • 28

    4. Kemudian hal terakhir yang dilakukan adalah mengklik start konveyor.

    Lalu untuk menghentikan klik stop konveyor.

    4.1 Pengambilan gambar saat konveyor berjalan

    Pada pengujian ini meletakkan jeruk sunkist tepat diatas konveyor yang

    bergerak dan tidak tepat di daerah pengambilan gambar, karena pada program

    terdapat ketika daerah tertentu tersebut berwarna putih pada pixel black and

    white maka akan dilanjutkan proses pengambilan gambar dari gray scale ke

    black and white lalu ke proses pemilahan. Akan tetapi hal ini sangat sulit

    ketika konveyor bergerak karena pergerakan konveyor yang sangat cepat dan

    proses pemilahan gambar yang sedikit lama.

    Gambar 4.4 Pengambilan Data ketika konveyor berjalan

    Dilihat dari gambar 4.4 saat konveyor berjalan maka pengambilan data

    untuk memilah jeruk sunkist berdasarkan ukuran tidak berhasil. Dan saat ingin

    menurunkan kecepatan konveyor dengan mengurangi tegangan, hal ini

    menyebabkan konveyor tidak dapat berjalan.

  • 29

    4.2 Pengambilan gambar saat konveyor berhenti

    Pada pengujian ini yaitu meletakkan jeruk sunkist tepat diatas daerah

    pengambilan gambar yang kemudian diambil gambar gray scale lalu

    mengkalibrasi nilai yang akan menghasilkan gambar black and white

    sempurna tanpa ada warna putih lain selain dari jeruk sunkist seperti gambar

    dibawah ini.

    Gambar 4.5 Pengambilan Data ketika konveyor berhenti

    Dengan kondisi konveyor yang diam dan mengantarkan pada wadahnya

    didapatlah data sebagai berikut:

    Tabel 5. Hasil pemilahan jeruk sunkist berdasarkan ukuran

    No Ukuran

    diameter

    jeruk

    (cm)

    Kelas jeruk

    berdasarkan

    diameter

    (cm)

    Data 1

    kelas jeruk

    saat pada

    visualisasi

    Data 2

    kelas jeruk

    saat pada

    visualisasi

    Data 3

    kelas jeruk

    saat pada

    visualisasi

    Data 4

    kelas jeruk

    saat pada

    visualisasi

    1 6,4 B B B B B

    2 6,7 B B B * B

  • 30

    3 7,75 A A A A A

    4 6,8 B * B * B

    5 7,73 A A A A A

    6 7,3 A A A A A

    7 7,9 A A A A A

    8 6,8 B B * B B

    9 5,9 C C * * C

    10 6,7 B * B B *

    11 6,3 B B * B B

    12 6,5 B B B B B

    13 6,6 B B B B B

    Ket : * = Jeruk sunkist tidak terproses (ke wadah yang salah)

    Sehingga dari data diatas dapat dihitung persentase keberhasilan memilah

    jeruk Sunkist berdasarkan ukuran dari 13 jeruk yang masing-masing di ambil

    datanya sebanyak 4 kali sebagai berikut:

    Persentase keberhasilan memilah =

    = 82,69%

  • 31

    BAB V

    PENUTUP

    5.1 Kesimpulan

    Setelah melakukan pengujian dan analisa pada proyek akhir ini maka

    dapat disimpulkan bahwa:

    1. Proses pengolahan citra yang akan dilakukan untuk menghitung jumlah

    pixel putih dengan sempurna yaitu saat kondisi konveyor dihentikan dan

    benda tepat dibawah webcam.

    2. Pengelompokan kelas jeruk pada sistem ini berdasarkan jumlah pixel

    putih, dimana pixel putih lebih besar dari 10531 merupakan kelas A, 7573

    sampai 10530 merupakan kelas B, 5515 sampai 7572 merupakan kelas C,

    dan lebih kecil dari 5514 merupakan kelas D.

    3. Sistem yang dibuat pada proyek akhir memiliki tingkat keberhasilan

    sebesar 82,69% dengan percobaan sebanyak 52 kali untuk 13 buah jeruk

    Sunkist.

    5.2 Saran

    Berikut beberapa hal yang disarankan oleh penulis untuk pengembangan

    sistem ini, yaitu:

    1. Mengganti jeruk sunkist dengan jeruk lokal dan menggunakan metode lain

    untuk mengetahui diameter jeruk selain menghitung pixel putih maupun

    hitam pada proses black and white.

    2. Memperhitungkan dan membuat mekanisme pengeluaran buah jeruk

    sunkist satu per satu.

  • 32

    DAFTAR PUSTAKA

    Badan Standardisasi Nasional. (2009). Jeruk keprok. Diambil 04 september 2012

    dari http://sisni.bsn.go.id/index.php?/sni_main/sni/detail_sni/9482

    Feri. (2004). Grayscale. Diambil 20 juli 2012 dari

    http://www.total.or.id/info.php?kk .

    Sigit, Riyanto. (2006). Dasar Pengolahan Citra (1). Diambil 18 juli 2012 dari:

    lecturer.eepis-its.edu/~riyanto/citra-bab2.pdf.

    Sigit, Riyanto. (2006). Dasar Pengolahan Citra (2). Diambil 18 juli 2012 dari:

    lecturer.eepis-its.edu/~riyanto/citra-bab3.pdf.

    Simanjuntak , Ferdinand. (2009). Pengolahan Citra Digital. Diambil 21 juli 2012

    dari

    http://www.ittelkom.ac.id/library/index.php?view=article&catid=15%3Ape

    mrosesan-sinyal&id=573%3Apengolahan-citra-

    digital&option=com_content&Itemid=15

    Thiang, Leonardus Indrotanoto. (October 2008). Otomasi Pemisah Buah Tomat

    Berdasarkan Ukuran Dan Warna Menggunakan Webcam Sebagai Sensor.

    Pengambilan Gambar, 41-42.

  • LAMPIRAN

    1. Program keseluruhan pada Visual Basic 6 -----------------------------------------------------------------------------------------

    Dim text As String

    Dim g As String

    Public a As Long

    Public b As Long

    Public c As Long

    Public d As Long

    -----------------------------------------------------------------------------------------

    'Pengaktifan Webcame

    Private Sub Command1_Click()

    VideoOCX1.SetErrorMessages (False)

    If Not VideoOCX1.Init Then

    MsgBox VideoOCX1.GetLastErrorString

    Else

    m_Image = VideoOCX1.GetColorImageHandle

    VideoOCX1.SetPreview (True)

    VideoOCX1.Start

    End If

    End Sub

    -----------------------------------------------------------------------------------------

    Kirim gerak servoA 90 Private Sub Command10_Click()

    text = 2

    MSComm1.Output = text

    Text2.text = text

    End Sub

    -----------------------------------------------------------------------------------------

    Kirim gerak servoA -90 Private Sub Command11_Click()

    Label7.Caption = 3

    text = 3

    MSComm1.Output = text

    Text2.text = text

    Timer1.Enabled = True

    End Sub

    -----------------------------------------------------------------------------------------

    Kirim gerak servoB 90 Private Sub Command12_Click()

    text = 4

    MSComm1.Output = text

    Text2.text = text

    End Sub

  • -----------------------------------------------------------------------------------------

    Kirim gerak servoB -90 Private Sub Command13_Click()

    Label7.Caption = 3

    text = 5

    MSComm1.Output = text

    Text2.text = text

    Timer1.Enabled = True

    End Sub

    -----------------------------------------------------------------------------------------

    Kirim gerak servoC 90 Private Sub Command14_Click()

    text = 6

    MSComm1.Output = text

    Text2.text = text

    End Sub

    -----------------------------------------------------------------------------------------

    Kirim gerak servoC -90 Private Sub Command15_Click()

    Label7.Caption = 3

    text = 7

    MSComm1.Output = text

    Text2.text = text

    Timer1.Enabled = True

    End Sub

    -----------------------------------------------------------------------------------------

    Pemilahan buah secara keseluruhan dengan manual Private Sub Command16_Click()

    'a

    Dim matrix As Variant

    Dim x As Integer

    Dim y As Integer

    Dim i As Integer

    ' Capture one image

    VideoOCX1.Capture (m_Image)

    ' Get access to the image pixel matrix

    matrix = VideoOCX1.GetMatrix(m_Image)

    ' Simple example : Invert the colors of our image

    For y = 0 To VideoOCX1.GetHeight - 1

    For x = 0 To VideoOCX1.GetWidth - 1

    matrix(x, y, 0) = (matrix(x, y, 0) + matrix(x, y, 1) + matrix(x, y, 2)) / 3

    matrix(x, y, 1) = (matrix(x, y, 0) + matrix(x, y, 1) + matrix(x, y, 2)) / 3

    matrix(x, y, 2) = (matrix(x, y, 0) + matrix(x, y, 1) + matrix(x, y, 2)) / 3

    Next x

    Next y

  • ' Very important : Release the matrix and update the image handle

    VideoOCX1.ReleaseMatrixToImageHandle m_Image

    ' Display the processing result in our own window

    Picture2 = VideoOCX1.ToPicture(m_Image)

    'b

    Const IntPixelX = 320

    Const IntPixelY = 240

    Dim Pixels(1 To IntPixelX, 1 To IntPixelY) As Long

    Dim Merah, Hijau, Biru, Abu2 As Integer

    Dim nilai As Integer

    nilai = HScroll1.Value

    Text1.text = nilai

    For x = 1 To IntPixelX

    For y = 1 To IntPixelY

    Pixels(x, y) = Picture2.Point(x, y)

    Next y

    Next x

    For x = 1 To IntPixelX

    For y = 1 To IntPixelY

    Merah = Pixels(x, y) And &HFF

    If (Merah < nilai) Then

    Abu2 = 0

    ElseIf (Merah > nilai) Then

    Abu2 = 255

    End If

    Hijau = ((Pixels(x, y) And &HFF00) / &H100) Mod &H100

    If (Hijau < nilai) Then

    Abu2 = 0

    ElseIf (Hijau > nilai) Then

    Abu2 = 255

    End If

    Biru = ((Pixels(x, y) And &HFF0000) / &H10000) Mod &H100

    If (Biru < nilai) Then

    Abu2 = 0

    ElseIf (Biru > nilai) Then

    Abu2 = 255

    End If

    Pixels(x, y) = RGB(Abu2, Abu2, Abu2)

    Next y

    Next x

    For x = 1 To IntPixelX

    For y = 1 To IntPixelY

    Picture3.PSet (x, y), Pixels(x, y)

  • Next y

    Next x

    'c

    Dim m As Long, n As Long

    Dim h As Long, count As Long

    Dim o As String

    For m = 0 To Picture3.ScaleWidth - 1

    For n = 0 To Picture3.ScaleHeight - 1

    h = GetPixel(Picture3.hdc, m, n)

    If h = vbWhite Then

    count = count + 1

    End If

    DoEvents

    Next

    Next

    Text3.text = count

    'd

    Dim bin As Long

    bin = Val(Text3.text)

    If (bin >= 10531) Then

    a = a + 1

    Text4.text = a

    text = 7

    MSComm1.Output = text

    Text2.text = text

    Timer1.Enabled = True

    ElseIf (bin >= 7573) And (bin = 5514) And (bin

  • ElseIf (bin = 1000) Then

    d = d + 1

    Text7.text = d

    End If

    End Sub

    -----------------------------------------------------------------------------------------

    Buka penghalang keluar buah Private Sub Command17_Click()

    text = 8

    MSComm1.Output = text

    Text2.text = text

    Timer1.Enabled = True

    End Sub

    -----------------------------------------------------------------------------------------

    Tutup penghalang keluar buah Private Sub Command19_Click()

    text = 9

    MSComm1.Output = text

    Text2.text = text

    Timer1.Enabled = True

    End Sub

    -----------------------------------------------------------------------------------------

    Menonaktifkan webcame Private Sub Command2_Click()

    VideoOCX1.Stop

    VideoOCX1.Close

    End Sub

    -----------------------------------------------------------------------------------------

    Menghentikan konveyor Private Sub Command3_Click()

    text = 0

    MSComm1.Output = text

    Text2.text = text

    Timer2.Enabled = False

    g = 0

    Text8.text = g

    End Sub

    -----------------------------------------------------------------------------------------

    Pengambilan gambar ke grayscale secara manual Private Sub Command4_Click()

    Dim matrix As Variant

    Dim x As Integer

    Dim y As Integer

    Dim i As Integer

    ' Capture one image

  • VideoOCX1.Capture (m_Image)

    ' Get access to the image pixel matrix

    matrix = VideoOCX1.GetMatrix(m_Image)

    ' Simple example : Invert the colors of our image

    For y = 0 To VideoOCX1.GetHeight - 1

    For x = 0 To VideoOCX1.GetWidth - 1

    matrix(x, y, 0) = (matrix(x, y, 0) + matrix(x, y, 1) + matrix(x, y, 2)) / 3

    matrix(x, y, 1) = (matrix(x, y, 0) + matrix(x, y, 1) + matrix(x, y, 2)) / 3

    matrix(x, y, 2) = (matrix(x, y, 0) + matrix(x, y, 1) + matrix(x, y, 2)) / 3

    Next x

    Next y

    ' Very important : Release the matrix and update the image handle

    VideoOCX1.ReleaseMatrixToImageHandle m_Image

    ' Display the processing result in our own window

    Picture2 = VideoOCX1.ToPicture(m_Image)

    End Sub

    -----------------------------------------------------------------------------------------

    Melihat driver webcame Private Sub Command5_Click()

    VideoOCX1.ShowDriverDlg

    End Sub

    -----------------------------------------------------------------------------------------

    Memerintahkan konveyor bergerak Private Sub Command6_Click()

    text = 1

    MSComm1.Output = text

    Text2.text = text

    End Sub

    -----------------------------------------------------------------------------------------

    Mengubah gambar grayscale ke black and white secara manual Private Sub Command7_Click()

    Const IntPixelX = 320

    Const IntPixelY = 240

    Dim Pixels(1 To IntPixelX, 1 To IntPixelY) As Long

    Dim x, y As Integer

    Dim Merah, Hijau, Biru, Abu2 As Integer

    Dim nilai As Integer

    nilai = HScroll1.Value

    Text1.text = nilai

    For x = 1 To IntPixelX

    For y = 1 To IntPixelY

    Pixels(x, y) = Picture2.Point(x, y)

    Next y

  • Next x

    For x = 1 To IntPixelX

    For y = 1 To IntPixelY

    Merah = Pixels(x, y) And &HFF

    If (Merah < nilai) Then

    Abu2 = 0

    ElseIf (Merah > nilai) Then

    Abu2 = 255

    End If

    Hijau = ((Pixels(x, y) And &HFF00) / &H100) Mod &H100

    If (Hijau < nilai) Then

    Abu2 = 0

    ElseIf (Hijau > nilai) Then

    Abu2 = 255

    End If

    Biru = ((Pixels(x, y) And &HFF0000) / &H10000) Mod &H100

    If (Biru < nilai) Then

    Abu2 = 0

    ElseIf (Biru > nilai) Then

    Abu2 = 255

    End If

    Pixels(x, y) = RGB(Abu2, Abu2, Abu2)

    Next y

    Next x

    For x = 1 To IntPixelX

    For y = 1 To IntPixelY

    Picture3.PSet (x, y), Pixels(x, y)

    Next y

    Next x

    End Sub

    -----------------------------------------------------------------------------------------

    Menghitung jumlah pixel putih Private Sub Command8_Click()

    Dim x As Long, y As Long

    Dim h As Long, count As Long

    Dim o As String

    For x = 0 To Picture3.ScaleWidth - 1

    For y = 0 To Picture3.ScaleHeight - 1

    h = GetPixel(Picture3.hdc, x, y)

    If h = vbWhite Then

    count = count + 1

    End If

  • DoEvents

    Next

    Next

    Text3.text = count

    End Sub

    -----------------------------------------------------------------------------------------

    Perhitungan banyak buah setelah perhitungan pixel putih Private Sub Command9_Click()

    Dim bin As Long

    bin = Val(Text3.text)

    If (bin >= 10531) Then

    a = a + 1

    Text4.text = a

    ElseIf (bin >= 7573) And (bin = 5515) And (bin

  • nilai = HScroll1.Value

    Text1.text = nilai

    End Sub

    -----------------------------------------------------------------------------------------

    Terima data dari mikro Private Sub MSComm1_OnComm()

    If MSComm1.CommEvent = comEvReceive Then

    g = MSComm1.Input

    Text8.text = g

    If g = 1 Then

    text = 0

    MSComm1.Output = text

    Text2.text = text

    g = 0

    Timer3.Enabled = True

    Timer2.Enabled = True

    End If

    End If

    End Sub

    -----------------------------------------------------------------------------------------

    Timer untuk mengkatifkan konveyor Private Sub Timer1_Timer()

    If Label7.Caption = 0 Then

    Timer1.Enabled = False

    text = 1

    MSComm1.Output = text

    Text2.text = text

    Else

    Label7.Caption = Label7.Caption - 1

    End If

    End Sub

    -----------------------------------------------------------------------------------------

    Sistem pemilah secara otomatis Private Sub Timer2_Timer()

    'a

    Dim matrix As Variant

    Dim x As Integer

    Dim y As Integer

    Dim i As Integer

    ' Capture one image

    VideoOCX1.Capture (m_Image)

    ' Get access to the image pixel matrix

    matrix = VideoOCX1.GetMatrix(m_Image)

  • ' Simple example : Invert the colors of our image

    For y = 0 To VideoOCX1.GetHeight - 1

    For x = 0 To VideoOCX1.GetWidth - 1

    matrix(x, y, 0) = (matrix(x, y, 0) + matrix(x, y, 1) + matrix(x, y, 2)) / 3

    matrix(x, y, 1) = (matrix(x, y, 0) + matrix(x, y, 1) + matrix(x, y, 2)) / 3

    matrix(x, y, 2) = (matrix(x, y, 0) + matrix(x, y, 1) + matrix(x, y, 2)) / 3

    Next x

    Next y

    ' Very important : Release the matrix and update the image handle

    VideoOCX1.ReleaseMatrixToImageHandle m_Image

    ' Display the processing result in our own window

    Picture2 = VideoOCX1.ToPicture(m_Image)

    'b

    Const IntPixelX = 320

    Const IntPixelY = 240

    Dim Pixels(1 To IntPixelX, 1 To IntPixelY) As Long

    Dim Merah, Hijau, Biru, Abu2 As Integer

    Dim nilai As Integer

    nilai = HScroll1.Value

    Text1.text = nilai

    For x = 1 To IntPixelX

    For y = 1 To IntPixelY

    Pixels(x, y) = Picture2.Point(x, y)

    Next y

    Next x

    For x = 1 To IntPixelX

    For y = 1 To IntPixelY

    Merah = Pixels(x, y) And &HFF

    If (Merah < nilai) Then

    Abu2 = 0

    ElseIf (Merah > nilai) Then

    Abu2 = 255

    End If

    Hijau = ((Pixels(x, y) And &HFF00) / &H100) Mod &H100

    If (Hijau < nilai) Then

    Abu2 = 0

    ElseIf (Hijau > nilai) Then

    Abu2 = 255

    End If

    Biru = ((Pixels(x, y) And &HFF0000) / &H10000) Mod &H100

    If (Biru < nilai) Then

    Abu2 = 0

  • ElseIf (Biru > nilai) Then

    Abu2 = 255

    End If

    Pixels(x, y) = RGB(Abu2, Abu2, Abu2)

    Next y

    Next x

    For x = 1 To IntPixelX

    For y = 1 To IntPixelY

    Picture3.PSet (x, y), Pixels(x, y)

    Next y

    Next x

    'c

    Dim m As Long, n As Long

    Dim h As Long, count As Long

    Dim o As String

    For m = 0 To Picture3.ScaleWidth - 1

    For n = 0 To Picture3.ScaleHeight - 1

    h = GetPixel(Picture3.hdc, m, n)

    If h = vbWhite Then

    count = count + 1

    End If

    DoEvents

    Next

    Next

    Text3.text = count

    'd

    Dim bin As Long

    bin = Val(Text3.text)

    If (bin >= 10531) Then

    a = a + 1

    Text4.text = a

    text = 7

    g=0

    MSComm1.Output = text

    Text2.text = text

    Timer1.Enabled = True

    Timer2.Enabled = True

    ElseIf (bin >= 7573) And (bin

  • text = 5

    MSComm1.Output = text

    g=0

    Text2.text = text

    Timer1.Enabled = True

    Timer2.Enabled = True

    ElseIf (bin >= 5514) And (bin

  • 2. Program keseluruhan pada Codevision AVR /*****************************************************

    Chip type : ATmega32

    Program type : Application

    Clock frequency : 4.000000 MHz

    Memory model : Small

    External RAM size : 0

    Data Stack size : 512

    *****************************************************/

    #include

    #include

    #include

    #define RXB8 1

    #define TXB8 0

    #define UPE 2

    #define OVR 3

    #define FE 4

    #define UDRE 5

    #define RXC 7

    #define FRAMING_ERROR (1

  • data=UDR;

    rx_buffer[rx_wr_index]=data;

    i=atoi(rx_buffer);

    OCR0=i;

    ++rx_wr_index;

    if(rx_wr_index==2)

    {

    rx_wr_index=0;

    }

    }

    #ifndef _DEBUG_TERMINAL_IO_

    // Get a character from the USART Receiver buffer

    #define _ALTERNATE_GETCHAR_

    #pragma used+

    char getchar(void)

    {

    char data;

    while (rx_counter==0);

    data=rx_buffer[rx_rd_index];

    if (++rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0;

    #asm("cli")

    --rx_counter;

    #asm("sei")

    return data;

    }

    #pragma used-

    #endif

    #include

    void buka0()

    {

    PORTA.0=1;//memberikan pulsa high

    delay_ms(1);//pulsa high diberikan selama 1 ms

    PORTA.0=0;

    delay_ms(20);

    }

    void tutup0()

    {

    PORTA.0=1;//memberikan pulsa high

    delay_ms(2);//pulsa high diberikan selama 2 ms

    PORTA.0=0;

    delay_ms(20);

    }

    void buka1()

    {

    PORTA.1=1;//memberikan pulsa high

    delay_ms(1);//pulsa high diberikan selama 1 ms

  • PORTA.1=0;

    delay_ms(20);

    }

    void tutup1()

    {

    PORTA.1=1;//memberikan pulsa high

    delay_ms(2);//pulsa high diberikan selama 2 ms

    PORTA.1=0;

    delay_ms(20);

    }

    void buka2()

    {

    PORTA.2=1;//memberikan pulsa high

    delay_ms(1);//pulsa high diberikan selama 1 ms

    PORTA.2=0;

    delay_ms(20);

    }

    void tutup2()

    {

    PORTA.2=1;//memberikan pulsa high

    delay_ms(2);//pulsa high diberikan selama 2 ms

    PORTA.2=0;

    delay_ms(20);

    }

    void pintua()

    {

    PORTB.1=1;

    PORTB.2=0;

    }

    void pintub()

    {

    PORTB.1=0;

    PORTB.2=1;

    }

    }

    int i,a,b,c,d,e,f,g,h,j;

    void main(void)

    {

    PORTA=0x00;

    DDRA=0x0F;

    PORTB=0x00;

    DDRB=0xFF;

    PORTC=0x00;

    DDRC=0x00;

    PORTD=0x00;

  • DDRD=0x00;

    TCCR0=0x00;

    TCNT0=0x00;

    OCR0=0x00;

    TCCR1A=0x00;

    TCCR1B=0x00;

    TCNT1H=0x00;

    TCNT1L=0x00;

    ICR1H=0x00;

    ICR1L=0x00;

    OCR1AH=0x00;

    OCR1AL=0x00;

    OCR1BH=0x00;

    OCR1BL=0x00;

    ASSR=0x00;

    TCCR2=0x00;

    TCNT2=0x00;

    OCR2=0x00;

    MCUCR=0x00;

    MCUCSR=0x00;

    TIMSK=0x00;

    UCSRA=0x00;

    UCSRB=0xD8;

    UCSRC=0x86;

    UBRRH=0x00;

    UBRRL=0x19;

    ACSR=0x80;

    SFIOR=0x00;

    #asm("sei")

    while (1)

    {

    i=OCR0;

    if(i==0)

    {PORTB.0=0;}

    if(i==1)

    {PORTB.0=1;}

    if(i==2)

    {

    buka0();

    }

    if(i==3)

    {

    g=1;

    }

  • if(i==4)

    {

    buka1();

    }

    if(i==5)

    {

    h=1;

    }

    if(i==6)

    {

    buka2();

    }

    if(i==7)

    {

    j=1;

    }

    if(i==8)

    {

    a=1;

    }

    if(i==9)

    {

    b=1;

    }

    if(PINC.7==1)

    {

    c=1;

    a=1;

    }

    if(PINC.6==1)

    {

    d=1;

    a=1;

    }

    if(PINC.5==1)

    {

    e=1;

    a=1;

    }

    if(PINC.4==0)

    {

    delay_ms(300);

    printf("1");

    }

    if(a==1)

    {

    pintua();

    if(PINC.3==1)

  • {

    b=1;

    }

    }

    if(b==1)

    {

    a=0;

    pintub();

    }

    if(c==1)

    {

    buka0();

    f=f+1;

    }

    if(d==1)

    {

    buka1();

    f=f+1;

    }

    if(e==1)

    {

    buka2();

    f=f+1;

    }

    if(g==1)

    {

    tutup0();

    f=f+1;

    }

    if(h==1)

    {

    tutup1();

    f=f+1;

    }

    if(j==1)

    {

    tutup2();

    f=f+1;

    }

    if(f==10)

    {

    c=0, d=0, e=0, f=0, g=0, h=0, j=0;

    }

    };

    }