PENENTUAN LUAS WILAYAH PADA CITRA SATELIT BERBASIS PENGOLAHAN CITRA DIGITAL

(1)

SKRIPSI

PENENTUAN LUAS WILAYAH PADA CITRA SATELIT

BERBASIS PENGOLAHAN CITRA DIGITAL

Disusun sebagai salah satu syarat memperoleh gelar Sarjana Teknik program S-1 pada Jurusan Teknik Elektro, Fakultas Teknik,

Universitas Muhammadiyah Yogyakarta

Disusun Oleh : Ridwan Farid 20090120031

JURUSAN TEKNIK ELEKTRO

FAKULTAS TEKNIK

UNIVERSITAS MUHAMMADIYAH YOGYAKARTA

2016


(2)

i SKRIPSI

PENENTUAN LUAS WILAYAH PADA CITRA SATELIT

BERBASIS PENGOLAHAN CITRA DIGITAL

Disusun oleh

:

Ridwan Farid

NIM : 20090120031

JURUSAN TEKNIK ELEKTRO

FAKULTAS TEKNIK

UNIVERSITAS MUHAMMADIYAH YOGYAKARTA

2016


(3)

HALAMANPERNYATAAN

Yang bertanda tangan di bawah ini :

Nama

: Ridwan Farid

NIM

: 20090120031

Jurusan

:

Teknik Elektro UMY

Menyatakan bahwa :

Semua yang ditulis dalam naskah skripsi ini merupakan hasil karya tulis saya sendiri dan bukan menjiplak hasil karya orang lain, kecuali dasar teori yang saya cuplik dari buku yang tercantum pada daftar pustaka sebagai referensi saya dalam melengkapi karya tulis ini. Apabila dikemudian hari peryataan ini tidak benar, maka saya siap menerima sanksi dari Universitas Muhammadiyah Y ogyakarta sesuai dengan peraturan yang berlaku.

Yogyakarta, 2 September 2016 Yang menyatakan,


(4)

v

H A LA M A N PERSEM BA H A N

Karya ini kupersem bahkan kepada :

 A LLA H SW T. yang t elah melimpahkan begitu banyak nikmat dan karunianya untukku, sehingga hamba- M u ini dapat menyelesaikan Tugas A khir besert a Laporannya dengan baik.

 Kedua orang t uaku yang selama ini sudah m erawat ku sam pai sekarang, t erima kasih at as segala perhat ian dan kasih sayang sert a dukungannya selam a ini Dan t elah membiayaiku sampai selesai kuliah.

 A dik- adikku, saudari dan saudaraku, t erim a kasih buat doa dan dukungannya, Sem oga sukses di masa depan.

 Teman- t em an seperjuangan angkat an 20 0 9, Terim a kasih at as segala sem angat yang diberikan.

 M as Rama sebagai t eman sharing yang t elah m em berikan banyak bant uan dan solusi pada pembuat an laporan ini, t erima kasih banyak.

 Bapak Dr. Ramadoni Syahput ra.S.T.,M .T. dan Bapak Rahmat A dipraset ya A . H., S.T., M .Eng selaku dosen pembimbing Terima kasih A tas Segala Ilmu yang sangat bermanfaat , t erima kasih unt uk bimbingan dan kesabarannya.

 Dosen- dosen Teknik Elekt ro UM Y t erima kasih at as dukungannya.


(5)

vi

MOTTO

“hari ini harus lebih baik dari hari kemarin, hari esok harus lebih baik

dari hari ini"


(6)

vii

KATA PENGANTAR

Assalamu’alaikum W r. W b.

Alhamdulillah, puji syukur penulis panjatkan kehadirat Allah SWT, yang telah memberikan kenikmatan, kebahagian, kecerdasan, dan segala macam keajaiban dalam kehidupan ini, sehingga atas kehendak-Nya pula penulis dapat menyelesaikan Skripsi dengan judul “

PENENTUAN LUAS WILAYAH

PADA CITRA SATELIT BERBASIS PENGOLAHAN CITRA

DIGITAL

”. Semoga karya ini dapat bermanfaat dan menjadi kontribusi bagi khasanah ilmu pengetahuan, khususnya bagi rekan-rekan mahasiswa.

Penulis menyadari terselesaikannya laporan ini tidak terlepas dari dukungan, bantuan, dan bimbingan, serta saran-saran yang berharga dari semua pihak, oleh karena itu dengan tulus hati penulis ingin mengucapkan terimakasih kepada :

1. Kedua Orang Tua ku dan adik-adik ku yang selalu memberikan motivasi, dukungan dan semangat kepada penulis.

2. Bapak Ramadoni Syahputra, S.T., M.T. dan Bapak Rahmat Adprasetya A.H., S.T., M.Eng sebagai Dosen Pembimbing I dan II yang dengan sabar


(7)

viii

membimbing dan mengarahkan penulis selama melaksanakan penelitian tugas akhir hingga dapat menyelesaikan penulisan laporan ini.

3. Bapak Rama Okta Wiyagi, S. T., M.Eng. sebagai Dosen Penguji

4. Bapak Ir. Agus Jamal, M.Eng Selaku Ketua Jurusan Teknik Elektro Universitas Muhammadyah Yogyakarta

5. Segenap Dosen pengajar di Jurusan Teknik Elektro Universitas Muhammadiyah Yogyakarta

6. Segenap pimpinan, dosen dan karyawan Fakultas Teknik, Universitas Muhammadiyah Yogyakarta, khususnya kepada Bapak-Bapak Dosen yang telah menularkan ilmunya kepada penulis selama masa kuliah.

7. Staf Laboratorium Teknik Elektro yang telah memberikan kemudahan peminjaman instrumen pengukuran selama penelitian tugas akhir ini. 8. Staf Tata Usaha Jurusan Teknik Elektro Universitas Muhammadiyah

Yogyakarta

9. Keluarga Besarku, Nenek ,Om dan Tante yang telah memberikan semangat, saran dan dukungan baik moril dan materil kepada penulis. 10.Mas Rama Okta Wiyagi S.T., M.Eng. yang telah memberikan banyak

bantuan kepada penulis.

11.Teman-teman seperjuangan TE 09’UMY, Ipul, Septian Aa, Bayu, Suhendi, Purwadi, Jeje, Fajar, Sena, Rum, Budi, Yuman, Ayu, Adiardi, Rico...Keep Spirit!!!


(8)

ix

13.Semua pihak yang telah membantu penulis yang tidak bisa disebutkan satu persatu, Terima Kasih.

Penulis menyadari bahwa dalam penulisan skripsi ini masih jauh dari sempurna, hal ini mengingat kemampuan dan pengalaman dalam penelitian penyusunan skripsi ini yang sangat terbatas. Untuk itu penulis sangat mengharapkan kritik dan saran yang sifatnya membangun untuk perbaikan dan pengembangan penelitian selanjutnya. Tidak ada yang dapat penulis berikan selain ucapan terimakasih atas seluruh bantuan yang telah diberikan.

Akhir kata semoga skripsi ini dapat bermanfaat dan memberi tambahan ilmu bagi para pembaca. Semoga Allah SWT meridhoi kita semua, amin.

W assalammu’alaikum W r.W b.

Yogyakarta, 2 September 2016 Penulis


(9)

x DAFTAR ISI

HALAMAN JUDUL ... i

HALAMAN PENGESAHAN I ... ii

HALAMAN PENGESAHAN II ... iii

HALAMAN PERNYATAAN ... iv

HALAMAN PERSEMBAHAN ... v

HALAMAN MOTTO ... vii

KATA PENGANTAR ... vii

DAFTAR ISI ... xi

DAFTAR TABEL ... xv

DAFTAR GAMBAR ... xvi

BAB I PENDAHULUAN 1.1Latar Belakang ... 1

1.2Rumusan Masalah ... 1

1.3Batasan Masalah ... 1

1.4Luaran Penelitian ... 2

1.5Tujuan... 2


(10)

xi

1.7Pelaksanaan Pekerjaan ... 3

1.8Sistematika Penulisan Laporan ... 3

BAB II TINJAUAN PUSTAKA 2.1Karya Berkaitan ... 5

2.2Dasar-Dasar Teoritis ... 5

2.2.1 Aral Sea (Laut Aral) ... 5

2.2.2 Citra Digital ... 6

2.2.2.1 Colorspace (Ruang warna) ... 7

a) RGB ... 8

b) HSV ... 8

c) CIELAB ... 10

2.2.3 Pengolahan citra digital ... 11

1. Perbaikan kualitas citra ... 11

2. Pemugaran citra ... 12

3. Pemampatan citra ... 12

4. Segmentasi citra ... 12

5. Pengorakan citra ... 12

2.2.4 Threshold ... 13

2.2.5 Gambar JPEG ... 14

2.2.6 Pixel (Picture Element) ... 14

2.2.7 MATLAB ... 15


(11)

xii BAB III METODE PENELITIAN

3.1Diagram Alir Penelitian ... 21

3.1.1 Penjelasan blok diagram ... 22

3.2Rancangan ... 24

3.2.1 Struktur Program ... 25

A. Menu ... 26

B. Kalibrasi ... 29

3.2.2 Algoritma image processing ... 31

BAB IV HASIL PENELITIAN DAN ANALISIS 4.1Spesifikasi Hasil Penelitian ... 39

4.2Analisis ... 42

 Blok Menu ... 42

 Blok Fungsi Kalibrasi ... 44

 Blok fungsi Tampilsemua() ... 46

1. Analisa Citra 1 ... 46

2. Analisa Citra 2 ... 47

3. Analisa Citra 3 ... 48

4. Analisa Citra 4 ... 48

5. Analisa Citra 5 ... 49

6. Analisa Citra 6 ... 50

7. Analisa Citra 7 ... 51

8. Analisa Citra 8 ... 52


(12)

xiii

10.Analisa Citra 10 ... 54

11.Analisa Citra 11 ... 54

4.3Pelajaran yang diperoleh ... 59

BAB V KESIMPULAN DAN SARAN 5.1Kesimpulan ... 61

5.2Saran ... 61

DAFTAR PUSTAKA ... 62

LAMPIRAN DAFTAR TABEL Tabel 4.1 Hasil Pengukuran Menggunakan Image Processing ... 56

DAFTAR GRAFIK Grafik 4.1 Grafik perubahan luas luas Laut Aral 2000-2010 ... 59

DAFTAR GAMBAR Gambar 2.1 Citra digital ... 6

Gambar 2.2 Model ruangwarna RGB ... 8

Gambar 2.3 Model Ruangwarna HSV ... 9


(13)

xiv

Gambar 2.4 Antarmuka MATLAB ... 17

Gambar 2.5 Image Thresholder App ... 19

Gambar 3.1 Flowchart Penelitian ... 21

Gambar 3.2 Blok diagram perancangan program penentuan wilayah ... 24

Gambar 3.3 Flowchart menu ... 27

Gambar 3.4 Flowchart kalibrasi spasial citra ... 29

Gambar 3.5 Flowchart image thresholder app ... 32

Gambar 3.6 Flowchart Image Processing RGB2CIELAB ... 33

Gambar 3.7 Flowchart Image Processing RGB2HSV ... 34

Gambar 3.8 Channel L*a*b Citra Laut Aral ... 36

Gambar 3.9 Histogram channel L ... 36

Gambar 3.10 Histogram channel a ... 36

Gambar 3.11 Histogram channel b ... 37

Gambar 3.12 Channel L*a*b Citra Laut Aral ... 37

Gambar 3.13 Histogram channel H (Hue) ... 37

Gambar 3.14 Histogram channel S (Saturation) ... 38

Gambar 3.15 Histogram channel V (Value) ... 38

Gambar 4.1 Hasil Akhir Program (Kalibrasi) ... 39

Gambar 4.2 Tampilan Hasil Kalibrasi ... 40

Gambar 4.3 Menampilkan semua Citra ... 40

Gambar 4.4 Menampilkan hasil Threshold Citra ... 41


(14)

xv

Gambar 4.6 Menampilkan salah satu Citra, hasil threshold dan hasil pengukuran dalam satu Figure ... 36 Gambar 4.7 Tampilan Pilihan Menu ... 44


(15)

HALAMAN PENGESAHAN I

SKRIPSI

PENENTUAN LUAS WILAYAHPADA CITRA SATELIT

BERBASIS PENGOLAHAN CITRA DIGITAL

Disusun Oleh:

Ridwan Farid

NlM : 20090120031

Telah dip riksa dan disetujui :

Dosen Pembimbing Utama Dosen Pembimbing Muda

amadoni Syahputra, S.T. , M.T.) ( Rahmat Adiprasetya A B. , S.T., M.Eng)


(16)

(17)

ABSTRAK

Laut aral bert em pat di perbat asan Kazakhst an dan Uzbekist an m erupakan laut endot erm ik yang m emiliki luas t erbesar kedua di dunia. Nam un sejak t ahun beberapa t ahun belakangan laut aral m engalami penyusut an yang signifikan, t erut am a dari t ahun 2000-2010. Skripsi kami m elakukan pengukuran luas perm ukaan laut aral pada t ahun-t ahun t ersebut m enggunakan cit ra yang didapat dari pengindraan jauh M ODIS (

Moderate Resolution

Imaging Spectroradiometer

)

yang disediakan secara grat is kem udian m em bandingkannya. Analisis kam i m elakukan pendekat an dengan m engekst rak region of int erest pada cit ra laut aral diikut i dengan pengukuran spasial. Proses perhit ungan seluruhnya dilakukan m enggunakan M ATLAB.


(18)

1 BAB I

PENDAHULUAN

1.1. Latar Belakang

Pemetaan wilayah merupakan sumber data yang mempunyai nilai strategis karena hasilnya dapat dijadikan salah satu dasar perumusan perencanaan dan evaluasi berbagai bidang, misalnya pada pelestarian lingkungan dan pembangunan. Pemetaan wilayah dapat dilakukan dengan dua cara, yaitu secara langsung ataupun tidak langsung. Pengukuran secara langsung dapat dilakukan dengan pengukuran langsung dilapangan menggunakan meteran ataupun peralatan fisik lainnya. Sedangkan pengukuran secara tidak langsung dengan cara membuat foto secara digital dari udara/satelit kemudian hasil citra foto diukur menggunakan perangkat lunak dengan perbandingan jarak yang telah ditetapkan sebelumnya. Salah satu cara pengukuran secara tidak langsung adalah dengan menggunakan pemrograman Matlab. Matlab merupakan perangkat lunak komputasi analitis yang sangat ampuh dalam melakukan perhitungan rumit dalam pengukuran pemetaan wilayah.

1.2. Perumusan Masalah

Rumusan masalah pada tugas akhir ini adalah: Bagaimana cara mengukur luas wilayah laut Aral dari citra satelit menggunakan pengolahan citra digital.

1.3. Batasan Masalah

Dari perumusan masalah di atas terdapat beberapa batasan masalah, antara lain:


(19)

2 1. Program bantu yang digunakan dalam membuat tugas akhir ini

adalah MATLAB R2014b

2. Tidak membandingkan antara satu metode dengan metode lainnya 3. Menggunakan foto Citra satelit

4. Hanya menghitung luas wilayah, dalam hal ini Laut Aral, dalam satuan kilometer persegi

5. Menggunakan skala yang sudah tertera pada gambar Citra

1.4. Luaran Penelitian

Luaran penelitian tugas akhir ini berupa program yang dibuat menggunakan perangkat lunak MATLAB yang melakukan perhitungan jarak dan luas pada beberapa citra satelit yang diukur dalam bentuk piksel dan satuan kilometer. Data penelitian kemudian dibandingkan dan dibuat dalam bentuk grafik untuk digunakan untuk penelitian selanjutnya.

1.5. Tujuan Penelitian

Tujuan dari penelitian tugas akhir ini adalah:

1. Membuat program untuk membandingkan citra satelit dari tempat tertentu dalam jangka waktu tertentu

2. Mengaplikasikan algoritma seleksi warna untuk membuat program deteksi tepi pada pengolahan citra digital


(20)

3 1.6. Manfaat penelitian

Hasil dari penelitian ini bermanfaat bagi instansi pemerintah dan masyarakat untuk menghitung berbagai macam hal, seperti pertumbuhan industri, perusakan hutan, dan penyusutan badan sungai.

1.7. Pelaksanaan kegiatan

 Perancangan konsep penelitian

 Pengumpulan informasi melalui konsultasi dengan dosen

pembimbing, dan buku – buku terkait serta informasi dari internet  Analisa informasi terkait dengan kebutuhan rencana penelitan  Pengumpulan informasi pemetaan citra yang diperlukan untuk

penelitian

 Pengolahan citra pada Matlab  Laporan

1.8. Sistematika Penulisan

Penulisan laporan tugas akhir ini dibagi menjadi lima bab, secara garis besar adalah sebagai berikut:


(21)

4 a. BAB I PENDAHULUAN

Memuat penjelasan mengenai latar belakang, perumusan masalah, batasan masalah, hasil akhir, manfaat yang diperoleh, metodologi dan sistematika laporan tugas akhir.

b. BAB II DASAR TEORI

Berisi dasar-dasar teoritis, dan spesifikasi garis besar dari komponen-komponen alat yang hendak direncanakan dan dibuat pada tugas akhir.

c. BAB III PERANCANGAN DAN PEMBUATAN

Berisi penjelasan mengenai pelaksanaan perancangan dan pembuatan alat, baik perangkat keras maupun perangkat lunak secara mendetail.

d. BAB IV PENGUJIAN DAN ANALISA

Membahas pengujian awal perangkat keras dan perangkat lunak yang telah dibuat dan analisa data-data yang diperoleh pada saat pengujian.

e. BAB V PENUTUP

Berisi kesimpulan dari hasil analisa dan saran-saran penulis dalam pembuatan tugas akhir.


(22)

5 BAB II

TINJAUAN PUSTAKA

2.1. Penelitian yang berkaitan

Penentuan luas wilayah berbasis citra digital telah beberapa kali diteliti oleh beberapa orang pada tahun-tahun yang lalu. Contohnya adalah Mengukur luas tambak dari citra google satelit menggunakan deteksi tepi yang dibuat oleh Rizky Sulistiawan (2013).

2.2. Dasar-Dasar Teoritis 2.2.1 Aral Sea ( Laut Aral)

Laut Aral adalah laut danau endotermik yang berada di antara Kazakhstan (wilayah Aktobe dan Kyzylorda) di utara dan Uzbekistan (Wilayah atonomi Karakalpakstan) di selatan. Laut aral diterjemahkan secara bebas berarti lautan pulau, berdasarkan lebih dari 1100 kepulauan yang pernah muncul di perairan tersebut. Dalam bahasa Turki aral berarti kepulauan. Daerah yang dialiri oleh sungai yang berasal dari Laut Aral meliputi sebagian dari Tajikistan, Turkmenistan, Kyrgyzstan, Kazakhstan, dan Afganistan.

Laut Aral pernah menjadi salah satu danau terbesar di dunia dengan luas 68000 km2 (26300 mil2), Laut Aral berkurang secara teratur sejak tahun 1960-an


(23)

6 setelah sungai-sungai yang mengalir ke Laut Aral dialihkan oleh proyek irigasi Soviet.

2.2.2 Citra Digital

Citra digital dapat didefinisikan sebagai fungsi dua variabel, f(x,y), dimana x dan y adalah koordinat spasial dan nilai f(x,y) adalah intensitas citra pada koordinat tersebut, hal tersebut diilustrasikan pada Gambar 2.1.

Citra merupakan gambaran yang terekam oleh kamera atau oleh sensor. Simonett and Joseph, 1983 mengutarakan pengertian tentang citra yaitu:

a. Gambaran obyek yang dibuahkan oleh pantulan atau pembiasan sinar yang difokuskan oleh sebuah Iensa atau sebuah cermin. b. Gambaran rekaman suatu obyek (biasanya berupa gambaran pada

foto) yang dibuat dengan cara optik, elektro-optik, optik mekanik Gambar 2.1 Citra Digital


(24)

7 atau elektronik. Pada umumnya garnbar digunakan bila radiasi elektromagnetik yang dipancarkan atau dipantulkan dan suatu obyek tidak langsung direkam pada film.

Sedangkan penginderaan jauh ialah ilmu dan seni untuk memperoleh informasi tentang obyek, daerah, atau gejala dengan jalan menganalisis data yang diperoleh dengan menggunakan alat tanpa kontak langsung terhadap obyek, daerah, atau gejala yang dikaji (Lillesand and Kiefer, 2004).

Sistem satelit dalam penginderaan jauh tersusun atas pemindai (scanner) dengan dilengkapi sensor pada wahana (platform) satelit, dan sensor tersebut dilengkapi oleh detektor. Untuk lebih jelasnya dapat diuraikan sebagai berikut :

a) Penyiam merupakan sistem, perolehan data secara keseluruhan termasuk sensor dan detektor.

b) Sensor merupakan alat untuk menangkap energi dan mengubahnya ke dalam bentuk sinyal dan menyajikannya ke dalam bentuk yang sesuai dengan informasi yang ingin disadap.

c) Detektor merupakan alat pada sistem sensor yang merekam radiasi elektromagnetik.

2.2.2.1Colorspace (Ruang warna)

Komposisi warna yang digunakan dan menampilkan warna pada citra digital berdasarkan pada penelitian adalah:


(25)

8 a) RGB (Red Green Blue)

Sebagian besar spektrum yang terlihat oleh mata manusia, dapat direpresentasikan dengan menggabungkan warna cahaya merah, hijau, dan biru (RGB) dalam intensitas dan perbandingan yang beragam. Namun, tidak semua warna yang terlihat manusia dapat direpresentasikan dengan kombinasi ketiga nilai warna ini (Loy, 2002, pp1 - 28).

Perpotongan ketiga warna tersebut menghasilkan warna cyan, magenta, kuning, dan putih. Karena warna RGB dapat dikombinasikan untuk menghasìlkan warna putih, maka warna ini disebut juga additive colors.

b) Ruang warna HSV (Hue, Saturation, Value)

HSV mendefinisikan warna dalam terminologi Hue, Saturation, dan Value. Keuntungan HSV adalah terdapat warna-warna yang sama dengan

Gam bar 2.2 M odel Ruang w arna RGB


(26)

9 yang ditangkap oleh indra manusia. Sedangkan warna yang dibentuk model lain seperti RGB merupakan hasil campuran dari warna-warna primer.

Gambar 2.3 Model Ruangwarna HSV

(Sumber: http://www.mathworks.com/help/images/convert-from-hsv-to-rgb-color-space.html)

Model HSV, pertama kali diperkenalkan oleh A.R Smith pada tahun 1978, yang ditunjukkan pada gambar diatas. Melalui model diatas, kita tahu bahwa HSV memiliki tiga pokok, yaitu Hue, Saturation, dan Value.

Hue, menyatakan warna sebenarnya, seperti merah, violet, dan kuning dan digunakan menentukan kemerahan (Redness), kehijauan (greenness), dan sebagainya.

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


(27)

10 besar nilai maka akan semakin cerah dan muncul variasi-variasi baru.

c) Ruang warna CIELAB (CIE 1976 color space).

Ruang warna LAB adalah ruang warna lawan (color-opponent space) dengan dimesi L untuk kecerahan dan a dan b untuk dimensi warna lawan, berdasarkan nonlinearly compressed coordinates (contohnya ruang warna CIE XYZ). Istilah awalnya berasal dari tiga dimensi hunter 1948 color space, yaitu L,a, dan b. Tetapi, Lab sekarang lebih sering digunakan sebagai singkatan untuk L-a-b perwakilan dari CIE 1976 color space (atau CIELAB).

Perbedaan antara hunter original dan CIE color coordinates adalah CIE color coordinates berdasarkan akar kuadrat dari transformasi data warna, sedangkat hunter coordinates berdasarkan akar kuadrat dari transformasi.Komposisi warna pada CIELAB dapat dilihat pada gambar berikut:

Gam bar 2.4 M odel Ruang w arna CIELab


(28)

11 Sebuah citra diubah ke bentuk digital agar dapat disimpan dalam memori komputer atau media lain. Proses mengubah citra ke bentuk digital bisa dilakukan dengan beberapa perangkat,misalnya scanner, kamera digital dan handycam. Ketika sebuah citra sudah diubah ke dalam bentuk digital (selanjutnya disebut citra digital), bermacam-macam proses pengolahan citra dapat diperlakukan terhadap citra tersebut.

2.2.3 Pengolahan Citra Digital

Operasi-operasi yang dilakukan di dalam pengolahan citra banyak ragamnya. Namun, secara umum, operasi pengolahan citra dapat diklasifikasikan dalam beberapa jenis sebagai berikut:

1. Perbaikan kualitas citra (image enhancement).

Jenis operasi ini bertujuan untuk memperbaiki kualitas citra dengan cara memanipulasi parameter-parameter citra. Dengan operasi ini, ciri-ciri khusus yang terdapat di dalam citra lebih ditonjolkan.Contoh-contoh operasi perbaikan citra:

a. perbaikan kontras gelap/terang

b. perbaikan tepian objek(edge enhancement)

c. penajaman (sharpening)

d. pembrian warna semu(pseudocoloring)


(29)

12 2. Pemugaran citra (image restoration)

Operasi ini bertujuan menghilangkan/meminimumkan cacat pada citra. Tujuan pemugaran citra hampir sama dengan operasi perbaikan citra. Bedanya, pada pemugaran citra penyebab degradasi gambar diketahui. Contoh-contoh operasi pemugaran citra:

a. penghilangan kesamaran(deblurring).

b. penghilangan derau(noise)

3. Pemampatan citra (image compression)

Jenis operasi ini dilakukan agar citra dapat direpresentasikan dalam bentuk yang lebih kompak sehingga memerlukan memori yang lebih sedikit. Hal penting yang harus diperhatikan dalam pemampatan adalah citra yang telah dimampatkan harus tetap mempunyai kualitas gambar yang bagus. Contoh metode pemampatan citra adalah metode JPEG.

4. Segmentasi citra (image segmentation).

Jenis operasi ini bertujuan untuk memecah suatu citra ke dalam beberapa segmen dengan suatu kriteria tertentu. Jenis operasi ini berkaitan erat dengan pengenalan pola.


(30)

13 Jenis operasi ini bertujuan menghitung besaran kuantitatif dari citra untuk menghasilkan deskripsinya. Teknik pengorakan citra mengekstraksi ciri- ciri tertentu yang membantu dalam identifikasi objek. Proses segmentasi kadangkala diperlukan untuk melokalisasi objek yang diinginkan dari sekelilingnya. Contoh-contoh operasi pengorakan citra:

a. Pendeteksian tepi objek (edge detection)

b. Ekstraksibatas (boundary)

c. Representasi daerah (region)

6. Rekonstruksi citra (image reconstruction)

Jenis operasi ini bertujuan untuk membentuk ulang objek dari beberapa citra hasil proyeksi. Operasi rekonstruksi citra banyak digunakan dalam bidang medis. Misalnya beberapa foto rontgen dengan sinar X digunakan untuk membentuk ulang gambar organ tubuh.

2.2.4 Threshold

Thresholding merupakan salah satu teknik segmentasi yang baik digunakan untuk citra dengan perbedaan nilai intensitas yang signifikan antara latar belakang dan objek utama (Katz, 2000). Dalam pelaksanaannya Thresholding membutuhkan suatu nilai yang digunakan sebagai nilai pembatas antara objek utama dengan latar belakang, dan nilai tersebut dinamakan dengan threshold.

Thresholding digunakan untuk mempartisi citra dengan mengatur nilai intensitas semua piksel yang lebih besar dari nilai threshold T sebagai latar depan


(31)

14 dan yang lebih kecil dari nilai threshold T sebagai latar belakang. Biasanya pengaturan nilai threshold dilakukan berdasarkan histogram grayscale (Gonzales dan Woods, 2002; Fisher, dkk, 2003; Xiaoyi dan Mojon, 2003).

2.2.5 Gambar JPEG

JPEG (Joint Photographic Expert Group) biasanya menggunakan metode loosy compression untuk gambar digital, terutama untuk fotografi digital. Tingkat kompresi dapat diatur, memberikan pilihan antara ukuran dan kualitas gambar. JPEG memiliki keunggulan kompresi 10:1 dengan pengurangan kualitas yang kecil.

Istilah “JPEG” adalah akronim untuk Joint Photographic Expert Group, yang menciptakan standar tersebut. Berkas JPEG biasanya memiliki ekstensi .jpg atau .jpeg. JPEG mendukung ukuran gambar maksimum 65535x65535 piksel, yang berarti sampai 4 gigapixel (untuk aspek rasio 1:1).

2.2.6 Piksel (Picture Element)

Piksel adalah unsur gambar atau representasi sebuah titik terkecil dalam sebuah gambar grafis yang dihitung per inchi. Piksel sendiri berasal dari akronim bahasa Inggris Picture Element yang disingkat menjadi pixel(piksel).

Pada ujung tertinggi skala resolusi, mesin cetak gambar berwarna dapat menghasilkan hasil cetak yang memiliki lebih dari 2500 titik per inchi dengan plihan 16 juta warna lebih untuk setiap inchi, dalam istilah komputer berarti gambar


(32)

15 seluas satu inchi persegi yang bisa ditampilkan pada tingkat resolusi tersebut sepadan dengan 150 juta bit informasi.

2.2.7 MATLAB

Matlab adalah bahasa berkemampuan tinggi untuk perhitungan teknis. MATLAB mengintegrasikan komputasi, visualisasi dan pemrograman dalam lingkungan yang mudah digunakan dimana masalah dan solusi diekspresikan dalam notasi matematika yang familiar. Penggunaan yang biasa dilakukan menggunakan matlab adalah sebagai berikut:

a) perhitungan matematis dan komputasi b) pengembangan algoritma

c) akuisisi data

d) pemodelan, simulasi, dan pembuatan prototip e) analisis data, eksplorasi, dan visualisasi f) grafik teknik dan sains

g) pengembangan aplikasi, termasuk pembuatan antarmuka

MATLAB adalah sistem interaktif dimana elemen basis data adalah sebuah array yang tidak memerlukan dimensi. Ini mengijinkan formulasi solusi ke banyak masalah komputasi teknis, khususnya yang menyangkut representasi matriks, lebih cepat daripada menulis program dalam bahasa C atau FORTRAN.


(33)

16 Matlab adalah singkatan dari matrix laboratory. awalnya matlab ditulis untuk menyediakan akses mudah ke perangkat lunak maktriks yang di kembangkan oleh proyek LINPACK(Linear System Package) dan EISPACK(Eigen System Package), Hari ini, mesin matlab menyatukan library LAPACK(Linear Algebra Package) dan BLAS (Basic Linear Algebra Subprograms), membentuk perangkat lunak teknologi terbaru untuk komputasi matriks.

Dalam lingkungan universitas, matlab adalah alat komputasi standar dalam kuliah pengenalan dan kuliah lanjut di matematika, teknik dan sains. Dalam industri, matlab adalah pilihan alat komputasi untuk penelitian, pengembangan, dan analisis. MATLAB dilengkapi berbagai macam aplikasi solutif yang bersifat spesifik, yang disebut toolbox. Image Processing Toolbox adalah koleksi dari fungsi-fungsi matlab (disebut M-function atau M-files) yang memperluas kemampuan lingkungan matlab sebagai solusi dari masalah-masalah pemrosesan gambar digital. Toolbox-toolbox lain yang kadang-kadang digunakan untuk


(34)

17 melengkapi Image Processing Toolbox (IPT) adalah signal processing, Neural network, fuzzi logic, dan wavelet toolbox.

Penjelasan:

1. Command Window

Command window adalah tempat dimana pengguna bisa memasukan ekspresi matematika dan menampilkan hasilnya. 2. Workspace Browser

Workspace Browser berisikan variabel-variabel yang telah kita gunakan. Kita dapat melihat isi variabel dengan melihat isi pada kolom value atau dengan mengklik dua kali pada variabel yang diinginkan.

1 4

3

2

5


(35)

18 3. Folder Browser

Folder Browser berisikan alamat folder tempat kita mengakses M-file dan berkas-berkas yang berkaitan dengan apa yang sedang kita kerjakan pada MATLAB

4. Editor M-File

Editor file berfungsi sebagai tempat membuat dan mengubah M-file yang digunakan pada pemrograman di MATLAB.

5. Figure Screen

Figure Screen adalah layar yang digunakan untuk menampilkan gambar dan grafik yang kita inginkan untuk ditampilkan pada MATLAB.

2.2.8 Color Thresholder App MATLAB

Color thresholder app adalah aplikasi terintegrasi pada MATLAB yang berfungsi untuk melakukan melakukan manipulasi komponen-komponen warna pada berkas image, berdasarkan ruang warna yang tersedia. Threshold pada berkas image menggunakan beberapa ruang warna, yaitu RGB, HSV, YCbCr, dan L*a*b.


(36)

19 Gambar 2.5 Image Thresholder App

Komponen dari color thresholder app adalah sebagai berikut:

A. Menu Bar

Load Image, memilih dan memasukan berkas image pada aplikasi New Colorspace, untuk memilih beberapa colorspace(ruang warna)

yang disediakan pada aplikasi

Select Color, untuk menyeleksi warna pada berkas image. Hasil warna yang diseleksi akan di-threshold.

Find Threshold, untuk mencari threshold pada berkas image berdasarkan warna-warna yang telah diseleksi menggunakan Select Color.

A

B


(37)

20  Invert Mask, berfungsi untuk membalik warna yang diseleksi

menjadi tidak diseleksi, begitu sebaliknya.

Show Binary, berfungsi untuk mengubah image menjadi binary image, membuat warna yang diseleksi menjadi putih dan warna yang tidak diseleksi menjadi hitam.

Export Image, berfungsi untuk mengeksport hasil manipulasi berkas image yang telah dibuat menjadi binary atau mengeksport fungsi yang digunakan untuk memanipulasi berkas image.

B. Tampilan berkas image yang sedang dimanipulasi.


(38)

21 BAB III

Metode Penelitian

3.1 Diagram Alir Penelitian

Diagram blok penelitian yang akan dilakukan dapat digambarkan sebagai berikut:

M ulai

Perancangan

Pengumpulan Informasi

Analisis Informasi

Pembuat an Blok Program

Pengujian Program

Perbaikan

Pengujian Final Apakah sudah benar?

Kesimpulan

Selesai

Tidak

Ya


(39)

22 3.1.1 Penjelasan Blok Diagram

a) Perancangan

Tahap perancangan yaitu merancang model program sesuai dengan permasalahan yang dihadapi. Dalam hal ini yaitu bagaimana cara mengukur luas citra foto satelit dari danau Aral menggunakan pengukuran tidak langsung (perangkat lunak)

b) Pengumpulan Informasi

Tahap pengumpulan informasi yaitu mengumpulkan segala macam informasi mengenai permasalahan yang dihadapi. Informasi yang dicari mulai dari ketersediaan foto/citra, cara penggunaan matlab, cara melakukan pemrograman, sampai informasi mengenai pengukuran. Informasi-informasi tersebut diperoleh melalui buku-buku, ebook dan artikel dari internet.

c) Analisis Informasi

Tahap analisis informasi yaitu menganalisis semua informasi yang sudah didapat. Tujuan dari tahap ini adalah memisahkan informasi-informasi yang diperlukan dalam penelitian dari semua informasi yang sudah didapat.

d) Pembuatan blok program

Tahap pembuatan blok program yaitu membuat dan merencanakan program secara modular/per bagian. Dengan


(40)

23 membuat program secara modular maka proses pengujian dapat dilakukan dengan mudah tanpa harus merubah struktur program secara keseluruhan. Pembuatan blok-blok program juga dapat membuat lebih mudah dalam mengidentifikasi error yang mungkin terjadi.

e) Pengujian program

Tahap pengujian program yaitu menguji blok-blok program yang telah dibuat pada tahap sebelumnya. Blok program diuji satu per satu untuk kemudian digambungkan menjadi satu program utuh.

f) Perbaikan

Tahap perbaikan yaitu memperbaiki blok-blok program yang telah diuji pada tahap sebelumnya. Blok program diperbaiki dengan mengabungkan berbagai macam informasi yang telah didapat berdasarkan kebutuhan.

g) Pengujian Final

Tahap pengujian final yaitu pengujian akhir dari blok-blok program yang telah diperbaiki. Pengujian kedua ini sekaligus menggabungkan blok program ke dalam suatu program yang utuh. Pada pengujian, jika tidak ditemukan error pada program maka program akan diujikan pada berkas gambar/citra yang diinginkan untuk dilihat hasilnya.


(41)

24 h) Kesimpulan

Tahap kesimpulan yaitu membuat laporan mengenai program yang telah diuji pada tahap sebelumnya. Pada tahap ini akan dikemukakan kelebihan dan kekurangan dari program yang telah dibuat serta apa yang bisa dilakukan untuk membuat program menjadi lebih baik.

3.2 Rancangan

Program pemetaan wilayah ini secara umum dapat dijabarkan dalam diagram berikut yaitu:

Gambar 3.2 Blok Diagram Perancangan Program Penentuan Luas Wilayah

Program memerlukan dua hal penting yaitu Image Processing Tool dan Image Thresholder app. Image Processing Tool merupakan komponen penting pada MATLAB untuk melakukan manipulasi pada foto/citra. Image Thresholder App berfungsi untuk mencari threshold dari foto/citra yang akan diproses dan mengekspor hasilnya dalam bentuk pseudocode.

IM AGE PROCESSING TOOLBOX

PROGRAM PEM ETAAN WILAYAH

IM AGE TRESHOLDER

App M ATLAB


(42)

25 Berkas masukan yang digunakan pada penelitian ini adalah sebelas gambar MODIS (Moderate Tesolution Imaging Spectroradiometer) Laut Aral yang diambil dari satelit NASA. Berkas citra diambil pada bulan Agustus dari tahun 2000 sampai tahun 2010. Citra juga menampilkan garis yang merepresentasikan garis pantai dari laut Aral. Sedangkan output dari Penelitian ini adalah gambar binary dan hasil perhitungan luas laut Aral.

Secara garis besar program pemetaan memiliki cara kerja sebagai berikut, yaitu pertama program akan meminta user untuk memasukkan berkas gambar (harus lebih dari satu), kemudian program akan meminta kalibrasi jarak spasial pada citra dengan jarak yang sebenarnya untuk keperluan penghitungan luas citra. Program akan memproses citra dari ruang warna RGB ke HSV kemudian ke binary (BW Image) menggunakan seleksi warna tertentu, yang telah dicari menggunakan image thresholder app, sehingga dapat dihitung jumlah piksel. Program akan menampikan hasil threshold citra pada tampilan selanjutnya. Kemudian program menghitung jumlah piksel pada bagian putih menggunakan algoritma NNZ (Number of Non Zero Matrix Element) dan melakukan perhitungan luas, setelah itu menampilkannya pada MATLAB.

3.2.1 Struktur Program

Program secara umum mengandung tiga function, yaitu:

a. Menu

b. Kalibrasi


(43)

26 d. Menampilkan satu citra

Ketiga function tersebut dijelaskan sebagai berikut:

A. Menu

Menu mengandung semua pilihan dari function secara umum yang dimiliki oleh program. Menu menggunakan fungsi While dan Case, dengan 4 pilihan yaitu kalibrasi ulang, tampilkan semua, tampilkan satu hasil, dan keluar. Flowchart blok menu adalah seperti dibawah ini:


(44)

27 Flowchart Menu:

Gam bar 3.3Flow chart menu M ulai

Inisiasi program

Kalibrasi ulang?

Tam pil dan hit ung sem ua?

Tam pilkan sat u?

Tidak Tidak

Tidak

Ya

Ya Kalibrasi

Ya

Keluar

selesai Hit ung semua

Hit ung sat u

Keluar ?


(45)

28 Blok Menu berfungsi untuk memberikan pilihan pada pengguna untuk menentukan jalannya program. Program berisi empat subfungsi yang dapat dipilih dari blok menu, yaitu kalibrasi(), tampilsemua(), tampilsatu(), dan keluar.

Pseudocode blok menu adalah sebagai berikut:

While i<4 If i>1

Menu(judul, pilihan1, pilihan2, pilihan 3, pilihan4) End

Switch menu Case 1 Argumen1 Case 2 Argumen2 Case_n Argumen_n end


(46)

29 B. Kalibrasi

Kalibrasi dilakukan dengan mengukur jumlah piksel pada suatu garis lurus yang ditentukan, kemudian menghitung dengan rumus:

Jarak dalam piksel = ( − ) + ( − ) M ulai

Baca file Cit ra Sat elit

Buat garis lurus pada skala file Cit ra

Apakah sudah buat

garis?

Hit ung panjang garis dalam pixel

Hit ung panjang garis dalam kilomet er

Tampilkan panjang garis (pixel dan kilomet er) pada mat lab

Selesai

Tidak

Ya


(47)

30 Dimana x adalah koordinat X dan y adalah koordinat Y pada citra. Setelah jarak diketahui maka dihitung jarak per piksel dan jumlah piksel per jarak, dengan perhitungan sebagai berikut:

Jarak per Piksel = ,

Pada pemrograman MATLAB, setiap variabel bersifat lokal, yaitu hanya dapat digunakan di dalam satu fungsi. Jika kita ingin menggunakan variabel dari suatu fungsi tertentu maka variabel harus dideklarasikan sebagai variabel global yaitu:

Global variable_n

Setelah dideklarasikan maka variable dapat digunakan disetiap fungsi yang memerlukan variable tersebut.

Blok rumus perhitungan jarak garis adalah:

distanceInPixels = sqrt( (xi(2)-xi(1)).^2 + (yi(2)-yi(1)).^2);

dimana x dan y merupakan posisi X,Y diagram kartesian citra pada figure. Hasil dari perhitungan tersebut adalah dalam unit piksel. Blok konversi dari piksel ke unit yang telah kita pilih adalah:


(48)

31 3.2.2 Algoritma Image Processing

Image processing yang digunakan pada penelitian ini ada dua, yaitu konversi RGB ke L*a*b dan konversi RGB ke HSV. Penelitian ini menggunakan dua macam ruang warna tersebut karena HSV dan L*a*b yang paling cocok dengan citra yang digunakan pada penelitian.

Pada color thresholder app, gambar akan dimuat pada aplikasi, kemudian pengguna memilih ruang warna yang diinginkan. Setelah ruang warna ditentukan pengguna akan menyeleksi warna menggunakan slider pada channel-channel di thresholder app atau menggunakan lasso tool. Setelah diseleksi maka image akan dirubah menjadi binary image.

Pengguna dapat memilih ruang warna yang lain jika binary image tidak seperti yang diinginkan. Flowchart cara kerja color thresholder app dan konversi ruang warna RGB ke HSV dan L*a*b adalah sebagai berikut:


(49)

32 M ulai

Buka M at lab image t hresholder

M uat file image

Ekspor fungsi dan t ransfer ke program

Apakah banyak derau?

Seleksi w arna menggunakan color picker

Threshold image

Apakah banyak area yang belum

t erseleksi?

Selesai Tidak

Gam bar 3.5Flow char t M at lab Color Thresholder App Pilih colorspace yang diinginkan

Tidak

Ya


(50)

33 Konversi ruang warna RGB ke L*a*b dapat dilihat pada flowchart berikut:

M ulai

Baca File Cit ra Sat elit

Tampilkan cit ra pada mat lab

Rubah colorspace RGB ke L* a* b Apakah

Colorspace

sudah L* a* b?

Cari Nilai nilai t hreshold dari hist ogram menggunakan image

t hreshold app

Cari t hreshold dengan membuat nilai yang t elah dit emukan pada image t hresolder sebagai 1,

dan nilai yang lain sebagai 0

Tampilkan hasil Threshold pada mat lab

Selesai Ya

Tidak


(51)

34 Sedangkan konversi RGB ke HSV dapat dilihat pada flowchart berikut:

M ulai

Baca File Cit ra Sat elit

Tampilkan cit ra pada mat lab

Rubah colorspace RGB ke HSV Apakah

Colorspace

sudah HSV?

Cari Nilai nilai t hreshold dari hist ogram menggunakan image t hreshold app

Cari t hreshold dengan membuat nilai yang t elah dit emukan pada image t hresolder

sebagai 1, dan nilai yang lain sebagai 0

Tampilkan hasil Threshold pada mat lab

Selesai Ya

Tidak


(52)

35 Pada ruang warna L*a*b, channel 1 merupakan channel L, channel 2 merupakan channel a, dan channel 3 merupakan channel b. Sedangkan pada ruang warna HSV, channel 1 merupakan komponen H, channel 2 merupakan komponen S, dan channel 3 merupakan komponen V. setiap channel pada blok program mewakili satu komponen dari citra. Nilai dari channel diketahui berdasarkan histogram per channel. Setelah diketahui nilai masing-masing, maka dihitung untuk dicari threshold dari Citra dengan cara mencari nilai diantara channel min dan channel max. Hasil dari threshold adalah warna yang diseleksi akan bernilai “1” dan warna yang tidak diseleksi akan bernilai “0”.

Setelah threshold citra diketahui, maka langkah selanjutnya adalah menghitung jumlah piksel yang ada pada bagian yang terseleksi (bernilai 1). Kita menggunakan sintaks nnz untuk menghitung jumlah piksel pada bagian image yang diseleksi, yaitu:

ARAL1= nnz(ARAL);

yaitu fungsi “Number of nonzero matrix elements” untuk menghitung jumlah piksel yang terdapat pada bagian warna yang diseleksi. Setiap elemen pada citra yang telah di-threshold mewakili satu piksel. Luas pada bagian yang diseleksi dihitung dengan rumus:


(53)

36 Jarak per piksel didapat dari pengukuran kalibrasi spasial dan jumlah piksel didapat dari menghitung jumlah komponen matriks citra yang bernilai 1.

Gambar 3.8 Channel L*a*b Citra Laut Aral

Gambar 3.9 Histogram channel L

Gambar 3.10 Histogram channel a


(54)

37 Gambar 3.11 Histogram channel b

Gambar 3.12 Channel L*a*b Citra Laut Aral

Gambar 3.13 Histogram channel H (Hue)


(55)

38 Gambar 3.14 Histogram channel S (Saturation)


(56)

39 BAB IV

Hasil Penelitian dan Analisis

4.1 Spesifikasi dari Hasil Penelitian

1. Program mampu membaca dan menampilkan berkas Citra yang telah dimasukkan

2. Program mampu mengubah dari ruang warna RGB ke Binary

3. Program dapat menghitung jarak sebenarnya pada Citra

4. Program dapat menampilkan hasil perhitungan jarak yang telah dimasukkan


(57)

40 Gambar 4.2 Tampilan Hasil Kalibrasi


(58)

41 Gambar 4.4 Hasil Threshold Citra


(59)

42 Gambar 4.6 Menampilkan salah satu Citra, hasil threshold dan hasil pengukuran

dalam satu Figure

4.2 Analisis

Analisis merupakan salah satu langkah penting yang harus dilakukan untuk mengetahui apakah sistem yang dibuat telah sesuai dengan yang direncanakan, hal itu dapat dilihat dari hasil-hasil yang dicapai selama pengujian sistem. Selain untuk mengetahui apakah sistem sudah bekerja dengan baik sesuai dengan yang diharapkan, pengujian juga bertujuan untuk mengetahui kelebihan dan kekurangan dari sistem yang dibuat. Hasil-hasil pengujian tersebut nantinya akan dianalisa agar dapat diketahui mengapa terjadi kekurangan.

Struktur program pada MATLAB ada empat bagian utama, yaitu:  Blok Menu


(60)

43 Menu diuji dengan mengecek semua link yang dibuat agar pada saat program telah selesai tidak terjadi error.

Sintaks blok menu:

button = 1; % Allow it to enter loop.

while button ~= 4 if button > 1

% Let them choose the task, once they have calibrated. button = menu('Pilihan', 'Kalibrasi ulang', 'Tampilkan

semua', 'Tampilkan satu hasil', 'Keluar'); end

switch button case 1

close all;

subplot(1,1, 1); imshow(FileName{1}); axis on;

title('Citra Satelit Danau Aral tahun 2000',

'FontSize', fontSize);

% Enlarge figure to full screen.

set(gcf, 'units','normalized','outerposition',[0 0 1 1]);

% Give a name to the title bar.

set(gcf,'name','Citra Danau ARAL Tahun 2000','numbertitle','off')

success = Calibrate();

% Keep trying if they didn't click properly. while ~success

success = Calibrate(); end

% If they get to here, they clicked properly % Change to something else so it will ask them % for the task on the next time through the loop. button = 99;

case 2

close all; tampilsemua(); case 3

close all; Tampilsatu(); otherwise

close all; break; end


(61)

44 Hasil dan analisa:

Blok menu dapat menampilkan deretan menu sesuai dengan apa yang ditulis pada program dan menjalankan fungsi sesuai yang telah diprogram.

Gambar 4.7 Tampilan Pilihan Menu  Blok fungsi Kalibrasi

Kalibrasi berfungsi untuk menemukan jarak sebenarnya pada berkas image menggunakan perhitungan skala.

Blok fungsi kalibrasi()

function success = Calibrate()

global lastDrawnHandle;

global calibration;

global jarak;

global unit;

try

success = false;

instructions = sprintf('klik kiri untuk menentukan titik awal\nKlik kanan atau dobel klik untuk menentukan titik kedua\n\nSetelah itu anda akan ditanya ukuran sebenarnya'); title(instructions);

msgboxw(instructions);

[cx, cy, rgbValues, xi,yi] = improfile(1000);

% rgbValues is 1000x1x3. Call Squeeze to get rid of the

singleton dimension and make it 1000x3. rgbValues = squeeze(rgbValues);

distanceInPixels = sqrt( (xi(2)-xi(1)).^2 + (yi(2)-yi(1)).^2); if length(xi) < 2


(62)

45 end

% Plot the line.

hold on;

lastDrawnHandle = plot(xi, yi, 'y-', 'LineWidth', 2);

% Ask the user for the real-world distance.

userPrompt = {'Masukkan Unit (contohnya: meter):','Masukkan jarak dalam unit:'};

dialogTitle = 'Spesifikasi Unit dan Jarak'; numberOfLines = 1;

def = {'kilometer', '50'};

answer = inputdlg(userPrompt, dialogTitle, numberOfLines, def);

if isempty(answer) return;

end

calibration.units = answer{1};

calibration.distanceInPixels = distanceInPixels; calibration.distanceInUnits = str2double(answer{2});

calibration.distancePerPixel = calibration.distanceInUnits / distanceInPixels;

success = true;

jarak=calibration.distancePerPixel; unit=calibration.units;

message = sprintf('Jarak yang anda gambar adalah %.2f pixels = %f %s.\nJumlah dari %s per pixel adalah %f.\nJumlah dari

pixels per %s adalah %f',...

distanceInPixels, calibration.distanceInUnits, calibration.units, ...

calibration.units, calibration.distancePerPixel, ...

calibration.units, 1/calibration.distancePerPixel); uiwait(msgbox(message));

catch ME

errorMessage = sprintf('Error in function DrawLine().\nDid you first left click and then right click?\n\nError Message:\n%s', ME.message);

fprintf(1, '%s\n', errorMessage); WarnUser(errorMessage);

end

return; % from Calibrate()

end

Saat dijalankan fungsi kalibrasi dapat menghitung panjang dari sebuah skala pada citra. Selama ada skala yang ditampilkan maka program dapat menghitung panjang sebenarnya.


(63)

46  Blok fungsi Tampilsemua()

Fungsi tampilsemua() merupakan fungsi utama dari program. Pada fungsi ini program akan menampilkan image asli secara berurutan, kemudian mengolah menjadi binary image dan menampilkannya. Terakhir fungsi akan menghitung jumlah piksel pada bagian binary image yang diseleksi kemudian menghitung luas bagian tersebut. Blok fungsi tampilsemua() memiliki bagian program yang berbeda untuk setiap citra karena setiap citra memiliki beberapa perbedaan seleksi warna. 1) Analisa citra 1:

Blok program pencari threshold:

channel1Min = 0.200; channel1Max = 0.583;

channel2Min = 0.308; channel2Max = 0.780;

channel3Min = 0.141; channel3Max = 0.608;

rgbImage = imread(FileName{1}); I = rgb2hsv(rgbImage);

ARAL=(I(:,:,1)>=channel1Min)&(I(:,:,1)<=channel1Max) & ...

(I(:,:,2) >=channel2Min)&(I(:,:,2)<=channel2Max)& ...

(I(:,:,3) >= channel3Min )&(I(:,:,3)<= channel3Max);

Blok perhitungan luas:

ARAL1*jarak^2, ARAL1 adalah jumlah piksel bagian putih dan jarak adalah jarak piksel/kilometer.

Jumlah piksel: 60191 piksel.


(64)

47 = (0,625)2 * 60191

= 0,390625 * 60191

= 23512,11 kilometer persegi.

2) Analisa citra 2:

Blok program pencari threshold:

channel1Min = 0.217; channel1Max = 0.583;

channel2Min = 0.132; channel2Max = 0.667;

channel3Min = 0.141; channel3Max = 0.608;

rgbImage = imread(FileName{2}); I = rgb2hsv(rgbImage);

ARAL=(I(:,:,1)>=channel1Min)&(I(:,:,1)<=channel1Max) & ...

(I(:,:,2) >=channel2Min)&(I(:,:,2)<=channel2Max)& ...

(I(:,:,3) >= channel3Min )&(I(:,:,3)<= channel3Max);

Blok perhitungan luas:

ARAL2*jarak^2, ARAL2 adalah jumlah piksel bagian putih dan jarak adalah jarak piksel/kilometer.

Jumlah piksel: 58463,00 piksel.

Luas = (jarak/piksel)2 * jumlah piksel

= (0,625)2 * 58463

= 0,390625 * 58463


(65)

48 3) Analisa citra 3:

Blok program pencari threshold:

channel1Min = 0.246; channel1Max = 0.549;

channel2Min = 0.133; channel2Max = 0.707;

channel3Min = 0.145; channel3Max = 0.604;

rgbImage = imread(FileName{3}); I = rgb2hsv(rgbImage);

ARAL=(I(:,:,1)>=channel1Min)&(I(:,:,1)<=channel1Max) & ...

(I(:,:,2) >=channel2Min)&(I(:,:,2)<=channel2Max)& ...

(I(:,:,3) >= channel3Min )&(I(:,:,3)<= channel3Max);

Blok perhitungan luas:

ARAL3*jarak^2, ARAL3 adalah jumlah piksel bagian putih dan jarak adalah jarak piksel/kilometer.

Jumlah piksel: 53632 piksel.

Luas = (jarak/piksel)2 * jumlah piksel

= (0,625)2 * 53632

= 0,390625 * 53632

= 20950 kilometer persegi.

4) Analisa citra 4:

Blok program pencari threshold: channel1Min = 0.250; channel1Max = 0.581;


(66)

49

channel2Min = 0.122; channel2Max = 0.716; channel3Min = 0.196; channel3Max = 0.663;

rgbImage = imread(FileName{4}); I = rgb2hsv(rgbImage);

ARAL=(I(:,:,1)>=channel1Min)&(I(:,:,1)<=channel1Max) & ...

(I(:,:,2) >=channel2Min)&(I(:,:,2)<=channel2Max)& ...

(I(:,:,3) >= channel3Min )&(I(:,:,3)<= channel3Max);

Blok perhitungan luas:

ARAL4*jarak^2, ARAL4 adalah jumlah piksel bagian putih dan jarak adalah jarak piksel/kilometer.

Jumlah piksel: 56357 piksel.

Luas = (jarak/piksel)2 * jumlah piksel

= (0,625)2 * 56357

= 0,390625 * 56357

= 22014,45 kilometer persegi.

5) Analisa citra 5:

Blok program pencari threshold: channel1Min = 0.233; channel1Max = 0.549; channel2Min = 0.092; channel2Max = 0.635; channel3Min = 0.141; channel3Max = 0.741;


(67)

50 rgbImage = imread(FileName{5});

I = rgb2hsv(rgbImage);

ARAL=(I(:,:,1)>=channel1Min)&(I(:,:,1)<=channel1Max) & ...

(I(:,:,2) >=channel2Min)&(I(:,:,2)<=channel2Max)& ...

(I(:,:,3) >= channel3Min )&(I(:,:,3)<= channel3Max); Blok perhitungan luas:

ARAL5*jarak^2, ARAL5 adalah jumlah piksel bagian putih dan jarak adalah jarak piksel/kilometer.

Jumlah piksel: 47619 piksel.

Luas = (jarak/piksel)2 * jumlah piksel

= (0,625)2 * 47619

= 0,390625 * 47619

= 18601,17 kilometer persegi.

6) Analisa citra 6:

Blok program pencari threshold:

channel1Min = 15.903; channel1Max = 59.097; channel2Min = -22.468; channel2Max = -4.317; channel3Min = -5.034; channel3Max = 18.651;

rgbImage = imread(FileName{6}); I=rgb2lab(rgbImage);

ARAL=(I(:,:,1)>=channel1Min)&(I(:,:,1)<=channel1Max) & ...

(I(:,:,2) >=channel2Min)&(I(:,:,2)<=channel2Max)& ...


(68)

51 Blok perhitungan luas:

ARAL6*jarak^2, ARAL6 adalah jumlah piksel bagian putih dan jarak adalah jarak piksel/kilometer.

Jumlah piksel: 56327 piksel.

Luas = (jarak/piksel)2 * jumlah piksel

= (0,625)2 * 56327

= 0,390625 * 56327

= 22002,73 kilometer persegi.

7) Analisa citra 7:

Blok program pencari threshold: channel1Min = 0.215; channel1Max = 0.543; channel2Min = 0.138; channel2Max = 0.761; channel3Min = 0.165; channel3Max = 0.561;

rgbImage = imread(FileName{7}); I = rgb2hsv(rgbImage);

ARAL=(I(:,:,1)>=channel1Min)&(I(:,:,1)<=channel1Max) & ...

(I(:,:,2) >=channel2Min)&(I(:,:,2)<=channel2Max)& ...

(I(:,:,3) >= channel3Min )&(I(:,:,3)<= channel3Max);

Blok perhitungan luas:

ARAL7*jarak^2, ARAL7 adalah jumlah piksel bagian putih dan jarak adalah jarak piksel/kilometer.


(69)

52 Jumlah piksel: 39579 piksel.

Luas = (jarak/piksel)2 * jumlah piksel

= (0,625)2 * 39579

= 0,390625 * 39579

= 15460,55 kilometer persegi.

8) Analisa citra 8:

Blok program pencari threshold: channel1Min = 0.256; channel1Max = 0.457; channel2Min = 0.099; channel2Max = 0.690; channel3Min = 0.184; channel3Max = 0.608;

rgbImage = imread(FileName{8}); I = rgb2hsv(rgbImage);

ARAL=(I(:,:,1)>=channel1Min)&(I(:,:,1)<=channel1Max) & ...

(I(:,:,2) >=channel2Min)&(I(:,:,2)<=channel2Max)& ...

(I(:,:,3) >= channel3Min )&(I(:,:,3)<= channel3Max);

Blok perhitungan luas:

ARAL8*jarak^2, ARAL8 adalah jumlah piksel bagian putih dan jarak adalah jarak piksel/kilometer.

Jumlah piksel: 33334 piksel

Luas = (jarak/piksel)2 * jumlah piksel


(70)

53 = 0,390625 * 33334

= 13021,09 kilometer persegi.

9) Analisa citra 9:

Blok program pencari threshold: channel1Min = 0.205; channel1Max = 0.517; channel2Min = 0.111; channel2Max = 0.658; channel3Min = 0.133; channel3Max = 0.592;

rgbImage = imread(FileName{9}); I = rgb2hsv(rgbImage);

ARAL=(I(:,:,1)>=channel1Min)&(I(:,:,1)<=channel1Max) & ...

(I(:,:,2) >=channel2Min)&(I(:,:,2)<=channel2Max)& ...

(I(:,:,3) >= channel3Min )&(I(:,:,3)<= channel3Max);

Blok perhitungan luas:

ARAL9*jarak^2, ARAL9 adalah jumlah piksel bagian putih dan jarak adalah jarak piksel/kilometer.

Jumlah piksel: 30456 piksel.

Luas = (jarak/piksel)2 * jumlah piksel

= (0,625)2 * 30456

= 0,390625 * 30456


(71)

54 10) Analisa citra 10:

Blok program pencari threshold:

channel1Min = 0.303; channel1Max = 0.500; channel2Min = 0.322; channel2Max = 0.745; channel3Min = 0.086; channel3Max = 0.471;

rgbImage = imread(FileName{10}); I = rgb2hsv(rgbImage);

ARAL=(I(:,:,1)>=channel1Min)&(I(:,:,1)<=channel1Max) & ...

(I(:,:,2) >=channel2Min)&(I(:,:,2)<=channel2Max)& ...

(I(:,:,3) >= channel3Min )&(I(:,:,3)<= channel3Max);

Blok perhitungan luas:

ARAL10*jarak^2, ARAL10 adalah jumlah piksel bagian putih dan jarak adalah jarak piksel/kilometer.

Jumlah piksel: 17999 piksel.

Luas = (jarak/piksel)2 * jumlah piksel

= (0,625)2 * 17999

= 0,390625 * 17999

= 7030,86 kilometer persegi.

11) Analisa citra 11:

Blok program pencari threshold: channel1Min = 0.266;


(72)

55 channel1Max = 0.508;

channel2Min = 0.271; channel2Max = 0.816; channel3Min = 0.090; channel3Max = 0.541;

rgbImage = imread(FileName{11}); I = rgb2hsv(rgbImage);

ARAL=(I(:,:,1)>=channel1Min)&(I(:,:,1)<=channel1Max) & ...

(I(:,:,2) >=channel2Min)&(I(:,:,2)<=channel2Max)& ...

(I(:,:,3) >= channel3Min )&(I(:,:,3)<= channel3Max);

Blok perhitungan luas:

ARAL11*jarak^2, ARAL11 adalah jumlah piksel bagian putih dan jarak adalah jarak piksel/kilometer.

Jumlah piksel: 28035 piksel.

Luas = (jarak/piksel)2 * jumlah piksel

= (0,625)2 * 28035

= 0,390625 * 28035


(73)

56 Hasil pengukuran dan threshold citra dapat dilihat pada table 4.1:

Tabel 4.1 Hasil pengukuran menggunakan Image Processing (1 km=1,6 piksel)

Tahun Gambar Threshold Luas (Km2)

2000 23512,11

2001 22837,11

2002 20950


(74)

57

2004 18601,17

2005 22002,73

2006 15450,55

2007 13021,09


(75)

58

2009 7030,86

2010 10951,17

Grafik pengukuran citra laut Aral dari tahun 2000-2010 dapat dilihat pada gambar dibawah ini:

Grafik 4.1 Grafik perubahan luas Laut Aral 2000-2010 0

5000 10000 15000 20000 25000

2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010


(76)

59 Kondisi danau terbesar kedua di dunia ini, yaitu laut aral semakin tahun semakin memprihatinkan. Berdasarkan grafik pada Gambar 4.1 dapat dilihat luas permukaan danau dari tahun 2000 sampai dengan tahun 2010 semakin mengecil, artinya luas permukaan danau semakin menyusut.

Berdasarkan Gambar 4.1 terlihat bahwa pada tahun 2000 laut aral memiliki luas 23512,11 km2 sedangkan pada tahun selanjutnya secara bertahap menurun menjadi 22837,11 km2, dan terus mengecil pada tahun 2002, sedang tahun 2003 permukaan laut tersebut sedikit meluas menjadi 22014,45 km2 dan kemudian menurun lagi pada tahun 2004. Pada grafik, tahun 2005 luas laut aral kembali meningkat menjadi 22002,73 km2. Lalu pada tahun 2006 laut aral kembali menyusut secara signifikan menjadi 15450,55 km2 dan terus turun sampai tahun 2009 menjadi 7030,86 km2. Pada tahun 2010 danau Aral kembali meningkat menjadi 10951,17 km2.

Hasil analisis di atas dapat kita simpulkan danau laut aral sangat memprihatinkan, dimana selama sepuluh tahun terjadi pengeringan danau yang sangat luas. Hal ini terjadi karena musim kering yang panjang dan dialihkannya sungai pensuplai air ke danau ke lahan-lahan pertanian penduduk.

4.3 Pelajaran yang Diperoleh

Penelitian yang dilakukan ini memberikan pengetahuan tambahan serta pelajaran bagi penulis. Dalam proses penelitian menuntut perencanaan yang matang dan didukung dengan studi yang memadai sehingga penelitian dapat berjalan


(77)

60 dengan lancar. Sabar dan tidak mudah menyerah adalah hal penting dalam proses penelitian.

Permasalahan – permasalahan yang ditemui penulis saat membuat penelitian ini diantaranya adalah proses mencari seleksi warna yang pas saat melakukan threshold citra sehingga saat program dibuat pengaturan seleksi warna harus dirubah-rubah untuk mendapatkan hasil yang optimal.

Ilmu yang penulis dapatkan dari penelitian yang telah dibuat antara lain menambah wawasan penulis dalam hal pemrograman matlab, terutama pemrosesan gambar. Penulis menjadi lebih paham dalam mengolah berkas citra satelit di Matlab mulai dari menampilkan, mengolah dan menghitung area pada citra.


(78)

61 BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Hasil pengolahan citra dengan teknik thresholding menggunakan seleksi warna diperoleh hasil sebagai berikut:

A. Tahun 2000 luas danau Aral yang diukur adalah 23512,11 km2. Sedangkan pada tahun 2010 diperoleh luas danau Aral sebesar 10951,17 km2. Dengan demikian luas danau Aral semakin menyusut dalam waktu sepuluh tahun, dari tahun 2000 sampai 2010.

B. Program pada matlab dapat melakukan threshold dan pengukuran luas danau pada berkas Citra Danau Aral.

C. Pendeteksi tepi pada program menggunakan algoritma seleksi warna yang dibuat pada image thresholder app.

D. Perhitungan jumlah piksel pada warna yang diseleksi menggunakan algoritma NNZ (Number of Non Zero Matrix Element) pada matlab. E. Pengukuran luas dengan menghitung piksel berdasarkan resolusi spasial

yang terdapat pada Citra.

5.2 Saran

Untuk penelitian lebih lanjut dapat dibuat dengan data yang lebih banyak sehingga dapat menambah variasi data yang diolah dan menyempurnakan teknik algoritma yang lebih baik agar hasil pengukuran lebih presisi.


(79)

62 Daftar Pustaka

Demirkaya, O., Asyali, M. and Sahoo, P. (2009). Image processing with MATLAB. Boca Raton: CRC Press.

Matlab, programming fundamental. Mathworks,inc

Pengolahan citra, algoritma transformasi ruang warna

Gonzalez, R. and Woods, R. (2002). Digital image processing. Upper Saddle River, N.J.: Prentice Hall.

White, K. (2013). A geographical perspective on the Aral Sea crisis: three interpretations of an image. Bulletin of Geography. Socio-economic Series, 21(21).

Evaluation of Spatial Image Processing Approaches for Calculating Water Surface Area: Case of the Dead Sea, Life Science Journal 2014;11(4)

Wikipedia. (2016). Aral Sea. [online] Tersedia di: https:// en.wikipedia.org/wiki/Aral_Sea [Diakses 12 Maret 2016].


(80)

63 Earthobservatory.nasa.gov. (2016). World of Change: Shrinking Aral Sea :

Feature Articles. [ online ] tersedia di: http://

earthobservatory.nasa.gov/Features/WorldOfChange/aral_sea.php [Diakses tanggal 2 April 2016].

Measuring Distance and Area in Satellite Images. (2016). Teaching Notes. [online] Tersedia di: http://serc.carleton.edu/eet/measure_sat2/teaching_notes.html [Diakses tanggal 12 Maret 2016].


(81)

64 LAMPIRAN

Kode program penentuan luas wilayah laut Aral pada MATLAB

function pemetaan()

clc; % Clear command window. clear; % Delete all variables.

close all; % Close all figure windows except those created by imtool.

imtool close all; % Close all figure windows created by imtool. workspace; % Make sure the workspace panel is showing.

global FileName;

%mengubah folder tempat file m ini disimpan

if(~isdeployed)

cd(fileparts(which(mfilename)));

end

ver % Display user's toolboxes in their command window.

%membuat pilihan

message = sprintf('Program ini akan menampilkan citra satelit kemudian\nakan menghitung luas dan ukurannya\ndi dalam piksel dan kilometer.\nApakah ingin lanjut?');

reply = questdlg(message, 'Jalankan program?', 'OK','Cancel',

'OK');

if strcmpi(reply, 'Cancel')

% User canceled so exit.

return;

end

fontSize = 16;

[FileName,PathName]=uigetfile('*.jpg*','Citra Satelit','MultiSelect','on'); %membuka file gambar

subplot(1,1, 1); imshow(FileName{1}); axis on;

title('Citra Satelit Danau Aral tahun 2000', 'FontSize', fontSize);

% Enlarge figure to full screen.

set(gcf, 'units','normalized','outerposition',[0 0 1 1]); % Give a name to the title bar.

set(gcf,'name','Citra Danau ARAL Tahun 2000','numbertitle','off')

message = sprintf('Pertama kamu akan melakukan kalibrasi spasial');

reply = questdlg(message, 'Kalibrasi spasial', 'OK', 'Cancel',

'OK');

if strcmpi(reply, 'Cancel')

% User said Cancel, so exit.

return;


(82)

65 button = 1; % Allow it to enter loop.

while button ~= 4 if button > 1

% Let them choose the task, once they have calibrated. button = menu('Pilihan', 'Kalibrasi ulang', 'Tampilkan semua', 'Tampilkan satu hasil', 'Keluar');

end

switch button case 1

close all;

subplot(1,1, 1); imshow(FileName{1}); axis on;

title('Citra Satelit Danau Aral tahun 2000',

'FontSize', fontSize);

% Enlarge figure to full screen.

set(gcf, 'units','normalized','outerposition',[0 0 1 1]);

% Give a name to the title bar.

set(gcf,'name','Citra Danau ARAL Tahun 2000','numbertitle','off')

success = Calibrate();

% Keep trying if they didn't click properly. while ~success

success = Calibrate(); end

% If they get to here, they clicked properly % Change to something else so it will ask them % for the task on the next time through the loop. button = 99;

case 2

close all; tampilsemua(); case 3

close all; Tampilsatu(); otherwise

close all; break; end

end

end

function success = Calibrate()

global lastDrawnHandle;

global calibration;

global jarak;

global unit;

try


(83)

66 instructions = sprintf('klik kiri untuk menentukan titik awal\nKlik kanan atau dobel klik untuk menentukan titik kedua\n\nSetelah itu anda akan ditanya ukuran sebenarnya'); title(instructions);

msgboxw(instructions);

[cx, cy, rgbValues, xi,yi] = improfile(1000);

% rgbValues is 1000x1x3. Call Squeeze to get rid of the

singleton dimension and make it 1000x3. rgbValues = squeeze(rgbValues);

distanceInPiksels = sqrt( (xi(2)-xi(1)).^2 + (yi(2)-yi(1)).^2);

if length(xi) < 2 return; end

% Plot the line.

hold on;

lastDrawnHandle = plot(xi, yi, 'y-', 'LineWidth', 2);

% Ask the user for the real-world distance.

userPrompt = {'Masukkan Unit (contohnya: meter):','Masukkan jarak dalam unit:'};

dialogTitle = 'Spesifikasi Unit dan Jarak'; numberOfLines = 1;

def = {'microns', '500'};

answer = inputdlg(userPrompt, dialogTitle, numberOfLines, def);

if isempty(answer) return;

end

calibration.units = answer{1};

calibration.distanceInPiksels = distanceInPiksels; calibration.distanceInUnits = str2double(answer{2});

calibration.distancePerPiksel = calibration.distanceInUnits / distanceInPiksels;

success = true;

jarak=calibration.distancePerPiksel; unit=calibration.units;

message = sprintf('Jarak yang anda gambar adalah %.2f piksels = %f %s.\nJumlah dari %s per piksel adalah %f.\nJumlah dari piksels per %s adalah %f',...

distanceInPiksels, calibration.distanceInUnits, calibration.units, ...

calibration.units, calibration.distancePerPiksel, ...

calibration.units, 1/calibration.distancePerPiksel); uiwait(msgbox(message));

catch ME

errorMessage = sprintf('Error in function DrawLine().\nDid you first left click and then right click?\n\nError Message:\n%s', ME.message);

fprintf(1, '%s\n', errorMessage); WarnUser(errorMessage);


(84)

67

return; % from Calibrate()

end

function tampilsemua()

global FileName;

global ARAL1;

global jarak;

global unit;

try

figure('Name','File Citra Satelit','numbertitle','off'); set(gcf, 'units','normalized','outerposition',[0 0 1 1]); %maximize tampilan figure

fontSize = 16;

numfiles=size(FileName,2); %menghitung jumlah elemen dalam array FileName

for i=1:numfiles subplot(3,5,i) imshow(FileName{i}); tahun=1999+i; title(tahun); end h2=subplot(3,5,13)

judul='Citra danau Aral Tahun 2000-2010'; xl=xlim(h2);

xPos=xl(1)+diff(xl)/2; yl=ylim(h2);

yPos=yl(1)+diff(yl)/2;

t=text(xPos,yPos,sprintf('%s\n',judul),'Parent',h2); set(t,'HorizontalAlignment','center');

set(h2,'Visible','off'); set(t,'fontSize',18);

message = sprintf('Gambar akan di ubah menjadi binary'); reply = questdlg(message, 'Jalankan program?', 'OK','Cancel',

'OK');

if strcmpi(reply, 'Cancel')

% User canceled so exit.

return;

end

figure('Name','Hasil Thresold gambar','numbertitle','off'); set(gcf, 'units','normalized','outerposition',[0 0 1 1]);


(85)

68 %TRESHOLDING FILE ARAL 1

channel1Min = 0.200; channel1Max = 0.583;

channel2Min = 0.308; channel2Max = 0.780;

channel3Min = 0.141; channel3Max = 0.608;

rgbImage = imread(FileName{1}); I = rgb2hsv(rgbImage);

ARAL =(I(:,:,1) >= channel1Min ) & (I(:,:,1) <= channel1Max) & ...

(I(:,:,2) >= channel2Min ) & (I(:,:,2) <= channel2Max) & ...

(I(:,:,3) >= channel3Min ) & (I(:,:,3) <= channel3Max); ARAL1=nnz(ARAL); subplot(3,5,1) imshow(ARAL);

title('2000', 'FontSize', fontSize);

%TRESHOLDING FILE ARAL 2 channel1Min = 0.217;

channel1Max = 0.583;

channel2Min = 0.132; channel2Max = 0.667;

channel3Min = 0.141; channel3Max = 0.608;

rgbImage = imread(FileName{2}); I = rgb2hsv(rgbImage);

ARAL =(I(:,:,1) >= channel1Min ) & (I(:,:,1) <= channel1Max) & ...

(I(:,:,2) >= channel2Min ) & (I(:,:,2) <= channel2Max) & ...

(I(:,:,3) >= channel3Min ) & (I(:,:,3) <= channel3Max);

ARAL2=nnz(ARAL); subplot(3,5,2)

imshow(ARAL);

title('2001', 'FontSize', fontSize);

%TRESHOLDING FILE ARAL KE 3 channel1Min = 0.246; channel1Max = 0.549;


(86)

69 channel2Max = 0.707;

channel3Min = 0.145; channel3Max = 0.604;

rgbImage = imread(FileName{3}); I = rgb2hsv(rgbImage);

ARAL =(I(:,:,1) >= channel1Min ) & (I(:,:,1) <= channel1Max) & ...

(I(:,:,2) >= channel2Min ) & (I(:,:,2) <= channel2Max) & ...

(I(:,:,3) >= channel3Min ) & (I(:,:,3) <= channel3Max);

ARAL3=nnz(ARAL); subplot(3,5,3)

imshow(ARAL);

title('2002', 'FontSize', fontSize);

%TRESHOLDING FILE ARAL 4

channel1Min = 0.250; channel1Max = 0.581;

channel2Min = 0.122; channel2Max = 0.716; channel3Min = 0.196; channel3Max = 0.663;

rgbImage = imread(FileName{4}); I = rgb2hsv(rgbImage);

ARAL =(I(:,:,1) >= channel1Min ) & (I(:,:,1) <= channel1Max) & ...

(I(:,:,2) >= channel2Min ) & (I(:,:,2) <= channel2Max) & ...

(I(:,:,3) >= channel3Min ) & (I(:,:,3) <= channel3Max);

ARAL4=nnz(ARAL); subplot(3,5,4)

imshow(ARAL);

title('2003', 'FontSize', fontSize);

%TRESHOLDING FILE ARAL 5

channel1Min = 0.233; channel1Max = 0.549; channel2Min = 0.092; channel2Max = 0.635; channel3Min = 0.141; channel3Max = 0.741;


(87)

70 I = rgb2hsv(rgbImage);

ARAL =(I(:,:,1) >= channel1Min ) & (I(:,:,1) <= channel1Max) & ...

(I(:,:,2) >= channel2Min ) & (I(:,:,2) <= channel2Max) & ...

(I(:,:,3) >= channel3Min ) & (I(:,:,3) <= channel3Max);

ARAL5=nnz(ARAL); subplot(3,5,5)

imshow(ARAL);

title('2004', 'FontSize', fontSize);

%TRESHOLDING FILE ARAL 6

channel1Min = 15.903; channel1Max = 59.097; channel2Min = -22.468; channel2Max = -4.317; channel3Min = -5.034; channel3Max = 18.651;

rgbImage = imread(FileName{6}); I=rgb2lab(rgbImage);

ARAL =(I(:,:,1) >= channel1Min ) & (I(:,:,1) <= channel1Max) & ...

(I(:,:,2) >= channel2Min ) & (I(:,:,2) <= channel2Max) & ...

(I(:,:,3) >= channel3Min ) & (I(:,:,3) <= channel3Max);

ARAL6=nnz(ARAL); subplot(3,5,6)

imshow(ARAL);

title('2005', 'FontSize', fontSize);

%TRESHOLDING FILE ARAL 7

channel1Min = 0.215; channel1Max = 0.543; channel2Min = 0.138; channel2Max = 0.761; channel3Min = 0.165; channel3Max = 0.561;


(88)

71 I = rgb2hsv(rgbImage);

ARAL =(I(:,:,1) >= channel1Min ) & (I(:,:,1) <= channel1Max) & ...

(I(:,:,2) >= channel2Min ) & (I(:,:,2) <= channel2Max) & ...

(I(:,:,3) >= channel3Min ) & (I(:,:,3) <= channel3Max);

ARAL7=nnz(ARAL); subplot(3,5,7)

imshow(ARAL);

title('2006', 'FontSize', fontSize);

%TRESHOLDING FILE ARAL 8

channel1Min = 0.256; channel1Max = 0.457; channel2Min = 0.099; channel2Max = 0.690; channel3Min = 0.184; channel3Max = 0.608;

rgbImage = imread(FileName{8}); I = rgb2hsv(rgbImage);

ARAL =(I(:,:,1) >= channel1Min ) & (I(:,:,1) <= channel1Max) & ...

(I(:,:,2) >= channel2Min ) & (I(:,:,2) <= channel2Max) & ...

(I(:,:,3) >= channel3Min ) & (I(:,:,3) <= channel3Max);

ARAL8=nnz(ARAL); subplot(3,5,8)

imshow(ARAL);

title('2007', 'FontSize', fontSize);

%TRESHOLDING FILE ARAL 9

channel1Min = 0.205; channel1Max = 0.517; channel2Min = 0.111; channel2Max = 0.658; channel3Min = 0.133; channel3Max = 0.592;

rgbImage = imread(FileName{9}); I = rgb2hsv(rgbImage);

ARAL =(I(:,:,1) >= channel1Min ) & (I(:,:,1) <= channel1Max) & ...


(1)

71 I = rgb2hsv(rgbImage);

ARAL =(I(:,:,1) >= channel1Min ) & (I(:,:,1) <= channel1Max) & ... (I(:,:,2) >= channel2Min ) & (I(:,:,2) <= channel2Max) & ... (I(:,:,3) >= channel3Min ) & (I(:,:,3) <= channel3Max);

ARAL7=nnz(ARAL); subplot(3,5,7)

imshow(ARAL);

title('2006', 'FontSize', fontSize);

%TRESHOLDING FILE ARAL 8

channel1Min = 0.256; channel1Max = 0.457;

channel2Min = 0.099; channel2Max = 0.690;

channel3Min = 0.184; channel3Max = 0.608;

rgbImage = imread(FileName{8}); I = rgb2hsv(rgbImage);

ARAL =(I(:,:,1) >= channel1Min ) & (I(:,:,1) <= channel1Max) & ... (I(:,:,2) >= channel2Min ) & (I(:,:,2) <= channel2Max) & ... (I(:,:,3) >= channel3Min ) & (I(:,:,3) <= channel3Max);

ARAL8=nnz(ARAL); subplot(3,5,8)

imshow(ARAL);

title('2007', 'FontSize', fontSize);

%TRESHOLDING FILE ARAL 9

channel1Min = 0.205; channel1Max = 0.517;

channel2Min = 0.111; channel2Max = 0.658;

channel3Min = 0.133; channel3Max = 0.592;

rgbImage = imread(FileName{9}); I = rgb2hsv(rgbImage);

ARAL =(I(:,:,1) >= channel1Min ) & (I(:,:,1) <= channel1Max) & ... (I(:,:,2) >= channel2Min ) & (I(:,:,2) <= channel2Max) & ...


(2)

72 (I(:,:,3) >= channel3Min ) & (I(:,:,3) <= channel3Max);

ARAL9=nnz(ARAL); subplot(3,5,9)

imshow(ARAL);

title('2008', 'FontSize', fontSize);

%TRESHOLDING FILE ARAL 10

channel1Min = 0.303; channel1Max = 0.500;

channel2Min = 0.322; channel2Max = 0.745;

channel3Min = 0.086; channel3Max = 0.471;

rgbImage = imread(FileName{10}); I = rgb2hsv(rgbImage);

ARAL =(I(:,:,1) >= channel1Min ) & (I(:,:,1) <= channel1Max) & ... (I(:,:,2) >= channel2Min ) & (I(:,:,2) <= channel2Max) & ... (I(:,:,3) >= channel3Min ) & (I(:,:,3) <= channel3Max);

ARAL10=nnz(ARAL); subplot(3,5,10)

imshow(ARAL);

title('2009', 'FontSize', fontSize);

%TRESHOLDING FILE ARAL 11

channel1Min = 0.266; channel1Max = 0.508;

channel2Min = 0.271; channel2Max = 0.816;

channel3Min = 0.090; channel3Max = 0.541;

rgbImage = imread(FileName{11}); I = rgb2hsv(rgbImage);


(3)

73 ARAL =(I(:,:,1) >= channel1Min ) & (I(:,:,1) <= channel1Max) & ... (I(:,:,2) >= channel2Min ) & (I(:,:,2) <= channel2Max) & ... (I(:,:,3) >= channel3Min ) & (I(:,:,3) <= channel3Max);

ARAL11=nnz(ARAL); subplot(3,5,11)

imshow(ARAL);

title('2010', 'FontSize', fontSize);

h2=subplot(3,5,13)

judul='Hasil Treshold Citra danau Aral Tahun 2000-2010'; xl=xlim(h2);

xPos=xl(1)+diff(xl)/2; yl=ylim(h2);

yPos=yl(1)+diff(yl)/2;

t=text(xPos,yPos,sprintf('%s\n',judul),'Parent',h2); set(t,'HorizontalAlignment','center');

set(h2,'Visible','off'); set(t,'fontSize',18);

message = sprintf('Akan ditampilkan masing-masing luas per tahun');

reply = questdlg(message, 'Lanjut?', 'OK','Cancel', 'OK'); if strcmpi(reply, 'Cancel')

% User canceled so exit. return;

end

figure('Name','Hasil Thresold gambar','numbertitle','off'); set(gcf, 'units','normalized','outerposition',[0 0 1 1]);

%membuat array luas dari file gambar ARAL1 sampai ARAL11 disp= {ARAL1*jarak^2;

ARAL2*jarak^2; ARAL3*jarak^2; ARAL4*jarak^2; ARAL5*jarak^2; ARAL6*jarak^2; ARAL7*jarak^2; ARAL8*jarak^2; ARAL9*jarak^2; ARAL10*jarak^2; ARAL11*jarak^2;}

h1=subplot(1,2,1);

t=text(0,0.5,sprintf('%s%.2f%s%s\n\n%s%.2f%s%s\n\n%s%.2f%s%s\n\n%s %.2f%s%s\n\n%s%.2f%s%s\n\n%s%.2f%s%s\n\n%s%.2f%s%s\n\n%s%.2f%s%s\n \n%s%.2f%s%s\n\n%s%.2f%s%s\n\n%s%.2f%s%s\n',...

'Tahun 2000= ',disp{1},unit,' persegi',... 'Tahun 2001= ',disp{2},unit,' persegi',... 'Tahun 2002= ',disp{3},unit,' persegi',... 'Tahun 2003= ',disp{4},unit,' persegi',... 'Tahun 2004= ',disp{5},unit,' persegi',...


(4)

74 'Tahun 2005= ',disp{6},unit,' persegi',...

'Tahun 2006= ',disp{7},unit,' persegi',... 'Tahun 2007= ',disp{8},unit,' persegi',... 'Tahun 2008= ',disp{9},unit,' persegi',... 'Tahun 2009= ',disp{10},unit,' persegi',...

'Tahun 2010= ',disp{11},unit,' persegi'),'Parent',h1);

h2=subplot(1,2,2);

t1=text(0,0.5,sprintf('%.2f%s\n\n%.2f%s\n\n%.2f%s\n\n%.2f%s\n\n%.2 f%s\n\n%.2f%s\n\n%.2f%s\n\n%.2f%s\n\n%.2f%s\n\n%.2f%s\n\n%.2f%s\n\ n',...

ARAL1,' Piksel',... ARAL2,' Piksel',... ARAL3,' Piksel',... ARAL4,' Piksel',... ARAL5,' Piksel',... ARAL6,' Piksel',... ARAL7,' Piksel',... ARAL8,' Piksel',... ARAL9,' Piksel',... ARAL10,' Piksel',...

ARAL11,' Piksel'),'Parent',h2);

set(h2,'Visible','off'); set(t1,'fontSize',12);

set(h1,'Visible','off'); set(t,'fontSize',12);

%JIKA ERROR MAKA TAMPILKAN PESAN ERROR

catch ME

errorMessage = sprintf('Error in function %s() at line %d.\n\nError Message:\n%s', ...

ME.stack(1).name, ME.stack(1).line, ME.message); fprintf(1, '%s\n', errorMessage);

uiwait(warndlg(errorMessage));

end return; end

function Tampilsatu()

global FileName; global jarak; global unit; try

channel1Min = 0.200; channel1Max = 0.583;


(5)

75 channel2Min = 0.308;

channel2Max = 0.780;

channel3Min = 0.141; channel3Max = 0.608;

gambar=imread(FileName{1});

set(gcf, 'units','normalized','outerposition',[0 0 1 1]); h1=subplot(2,2,1);

imshow(gambar);

rgbImage = imread(FileName{1});

I = rgb2hsv(rgbImage);

ARAL =(I(:,:,1) >= channel1Min ) & (I(:,:,1) <= channel1Max) & ... (I(:,:,2) >= channel2Min ) & (I(:,:,2) <= channel2Max) & ... (I(:,:,3) >= channel3Min ) & (I(:,:,3) <= channel3Max);

subplot(2,2,2); imshow(ARAL);

ARAL1=nnz(ARAL);

luas= ARAL1 * jarak^2;

desc={'Citra Satelit Danau Aral tahun 2000'; 'luas wilayah (dalam piksel): ';

'luas wilayah (dalam Kilometer): '};

h2=subplot(2,2,3);

xl=xlim(h2);

xPos=xl(1)+diff(xl)/2; yl=ylim(h2);

yPos=yl(1)+diff(yl)/2;

t=text(xPos,yPos,sprintf('%s\n%s%.2f%s\n\n%s%.2f

%s%s',desc{1},desc{2},real(ARAL1),' piksel',desc{3},real(luas), unit,' persegi'),'Parent',h2);

set(t,'HorizontalAlignment','center'); set(h2,'Visible','off');

set(t,'fontSize',12);


(6)

76 errorMessage = sprintf('Error in function %s() at line

%d.\n\nError Message:\n%s', ...

ME.stack(1).name, ME.stack(1).line, ME.message); fprintf(1, '%s\n', errorMessage);

uiwait(warndlg(errorMessage));

end end

function msgboxw(message) uiwait(msgbox(message)); end

%================================================================= ====

function WarnUser(message) uiwait(msgbox(message)); end