METODE OTSU PADA CITRA X-RAY TULANG RAHANG SKRIPSI Oleh : SRI CAHYANINGSIH NIM : 04540003 JURUSAN FISIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS ISLAM NEGERI MAULANA MALIK IBRAHIM MALANG 2010 ii DETEKSI OSTEOPOROSIS DENGAN TRESHOLDING METODE OTSU PADA CITRA X-RAY TULANG RAHANG SKRIPSI Diajukan Kepada : Universitas Islam Negeri Malang Untuk Memenuhi Salah Satu Persyaratan Dalam Memperoleh Gelar Sarjana Sains (S.Si) Oleh : SRI CAHYANINGSIH NIM : 04540003 JURUSAN FISIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS ISLAM NEGERI MAULANA MALIK IBRAHIM MALANG 2010 iii DETEKSI OSTEOPOROSIS DENGAN TRESHOLDING METODE OTSU PADA CITRA X-RAY TULANG RAHANG SKRIPSI Oleh : SRI CAHYANINGSIH NIM : 04540003 Telah Disetujui Oleh : Pembimbing I DR. Agus Mulyono, S.Pd, M. Kes NIP. 19750808 199903 1 003 Pembimbing II DR.Munirul Abidin, M. Ag NIP. 19720420 200212 1 003 Malang, 28 April 2010 Mengetahui Ketua Jurusan Fisika Fakultas Sains Dan Teknologi Universitas Islam Negeri (UIN) Maulana Malik Ibrahim Malang Drs. M. Tirono, M.Si NIP. 19641211 199111 1 001 iv HALAMAN PENGESAHAN DETEKSI OSTEOPOROSIS DENGAN TRESHOLDING METODE OTSU PADA CITRA X-RAY TULANG RAHANG SKRIPSI Oleh : Sri Cahyaningsih NIM : 04540003 Telah Dipertahankan di Depan Dewan Penguji Skripsi dan Dinyatakan Diterima Sebagai Salah Satu Persyaratan Untuk Memperoleh Gelar Sarjana Sains (S.Si) Malang, 28 April 2010 Susunan dewan Penguji: Tanda Tangan 1. Penguji Utama : Imam Tazi, M.Si (....................) 2. Ketua Penguji : Farid Samsu H, S.Si (....................) 3. Sekr. Penguji : DR. Agus Mulyono, M. Kes (....................) 4. Anggota Penguji : DR.Munirul Abidin, M. Ag (....................) Mengetahui dan Mengesahkan Ketua Jurusan Fisika Fakultas Sains Dan Teknologi Universitas Islam Negeri (UIN) Maulana Malik Ibrahim Malang Drs. M. Tirono, M. Si NIP. 19641211 199111 1 001 v PERSEMBAHAN Alhamdulillah, atas iringan doa dan dukungannya sehingga karya kecil ini dapat terselesaikan. Izinkan disini Aning persembahkan karya kecil ini untuk: Kedua orang tua tercnta; Ayahanda Teguh dan Ibunda Rusmi yang selalu ada dan berjuang dalam memberikan motivasi untukku Serta buat Mbak Hida, Mas Tio, Adek_q Rahma, Kedua Keponakanku (Tsabita n Tsania) Serta seluruh keluarga yang selalu memberi warna dalam hidupku Seluruh Dosen Fisika yang dengan tulus telah menyalurkan ilmunya kepadaku selama study dan penyusunan skripsi ini Teruntuk Someone yang menyayangiku, seseorang yang setia menemaniku dalam mencari arti kehidupan serta tanpa lelah selalu memotivasiku selama ini Teman2 seperjuangan Fisika (Komputasi and Instrumenstasi) 2004 serta seluruh komunitas Fisika UIN MALIKI Malang Matur suwun atas semua pengalaman yang diberikan selama ini, Yuk, Fisika lebih diramaikan lagi dengan segala kreatifitas yang ada. Oyieee.. Teman2 kost Kertopamuji 1A thanks for u All Untuk semuanya, untuk semangat n ketawanya yang menghibur di hari-hari penuh perjuangan n cobaan dalam penyelesaian skripsi ini Dan semua pihak baik yang telah membantu serta mendukung dalam penyelesaian skripsi ini Thanks Very Much vi MOTTO _. _., < _-> . l>>: Barangsiapa bertakwa kepada Allah niscaya Dia akan mengadakan baginya jalan keluar (QS Ath-Thalaaq : 2) Dengan usaha yang keras saya pasti bisa melakukan itu Kesempatan tidak akan datang untuk yang kedua kali Jikalau gagal saya akan mendapatkan pengalaman berharga vii KATA PENGANTAR Puji syukur Alhamdulillah penulis haturkan kepada Allah SWT atas limpahan rahmat, taufik serta hidayah-Nya sehingga skripsi ini dapat terselesaikandengan judul:DETEKSI OSTEOPOROSIS DENGAN TRESHOLDING METODE OTSU PADA CITRA X-RAY TULANG RAHANG , sebagai salah satu syarat untuk memperoleh gelar Sarjana Sains (S.Si). Shalawat serta salam semoga tetap terlimpahkan kehariban junjungan kita Nabi Muhammad SAW, yang telah membawa petunjuk kebenaran seluruh umat Islam yaitu Ad-Din Al-Islam yang kita harapkan syafaatnya di dunia dan akherat. Penulis menyadari bahwa baik dalam perjalanan study maupun dalam penyelesaian skripsi ini banyak memperoleh bimbingan dan motivasi dari berbagai pihak. Oleh karena itu, pada kesempatan ini penulis menyampaikan rasa syukur dan terima kasih yang sebesar-besarnya kepada: 1. Prof. Dr. Imam Suprayogo, selaku rektor Universitas Islam Negeri (UIN) Maulana Malik Ibrahim Malang. 2. Prof. Dr. Sutiman Bambang,S.U.,D.Sc, selaku Dekan Fakultas Sains dan Teknologi Universitas Islam Negeri (UIN) Maulana Malik Ibrahim Malang. 3. Drs. M. Tirono, M.Si, selaku Ketua Jurusan Fisika Universitas Islam Negeri (UIN) Maulana Malik Ibrahim Malang. 4. DR. Agus Mulyono,S.Pd,M.Kes, selaku dosen pembimbing yang memberi masukan, saran serta bimbingan dalam proses menyelesaikan skripsi ini. viii 5. DR. Munirul Abidin,M.Ag, selaku dosen pembimbing Integrasi Sains dan Islam Universitas Islam Negeri (UIN) Maulana Malik Ibrahim Malang, yang telah memberikan bimbingan agama dan mengarahkan penulisan skripsi ini. 6. Seluruh dosen Fisika yang telah banyak memberikan ilmunya dan motivasi yang berhubungan dengan penulisan skripsi ini. 7. Bapak, Ibu serta seluruh keluarga yang selalu membimbing, mendidik, mengarahkan dan mendoakan sampai detik-detik penulisan skripsi ini. 8. Teman-teman Fisika 2004 dan semua pihak yang tidak dapat disebutkan satu persatu yang telah menjadi motivator demi selesainya penyusunan skripsi ini. Tiada kata yang dapat penulis haturkan kecuali Jazaakumullah Ahsanal Jazaa semoga semua amal baiknya diterima Allah SWT. Penulis sadar bahwa tidak ada sesuatu pun yang sempurna kecuali Allah SWT. Oleh karena itu, dengan senang hati penulis menerima kritik dan saran yang bersifat membangun. Semoga skripsi ini dapat menambah khasanah ilmu pengetahuan dan bermanfaat bagi semua pihak. Amin Ya Rabbal Alamin Malang, April 2010 Penulis ix DAFTAR ISI HALAMAN JUDUL...................................................................................... i HALAMAN PERSETUJUAN ..................................................................... iii HALAMAN PENGESAHAN....................................................................... iv HALAMAN PERSEMBAHAN .................................................................... v MOTTO......................................................................................................... vi KATA PENGANTAR................................................................................... vii DAFTAR ISI.................................................................................................. ix DAFTAR TABEL ......................................................................................... xi DAFTAR GAMBAR..................................................................................... xii DAFTAR LAMPIRAN................................................................................. xii ABSTRAK.................................................................................................... xiv ABSTRAC...................................................................................................... xv BAB I : PENDAHULUAN .......................................................................... 1 1.1 Latar Belakang ................................................................................. 1 1.2 Rumusan Masalah............................................................................. 7 1.3 Tujuan Penelitian.............................................................................. 8 1.4 Manfaat Penelitian................................................................ ............ 8 BAB II : KAJIAN PUSTAKA...................................................................... 9 2.1 Tulang ............................................................................................. 9 2.2 Osteoporosis .................................................................................... 11 2.3 Sinar-X............................................................................................. 17 2.4 Pengolahan Citra.............................................................................. 18 2.4.1 Citra ........................................................................................... 19 2.4.2 Segmentasi Citra........................................................................ 20 2.4.2.1 Histogram Citra ................................................................... 21 2.4.2.2 Ekualisasi Citra.................................................................... 23 2.4.2.3 Tresholding.......................................................................... 24 x 2.5 Metode Otsu..................................................................................... 30 BAB III : METODE PENELITIAN............................................................. 34 3.1 Tempat dan Waktu Penelitian........................................................... 34 3.2 Bahan dan Alat ................................................................................. 34 3.3 Sampel Penelitian ............................................................................. 34 3.4 Tahapan Implementasi...................................................................... 35 3.4.1 Skema Kerja .............................................................................. 35 3.4.2 Perancangan Perangkat Lunak................................................... 36 BAB IV : HASIL DAN PEMBAHASAN..................................................... 44 4.1 Hasil Penelitian................................................................................. 44 4.1.1 Citra X-Ray Tulang Rahang ..................................................... 44 4.1.2 Analisis Ekualisasi .................................................................... 45 4.1.3 Analisis Proses Otsu ................................................................. 48 4.1.4 Analisis Thresholding............................................................... 51 4.1.5 Tahapan Implementasi .............................................................. 53 4.2 Pembahasan Hasil Penelitian............................................................ 60 BAB V : PENUTUP ....................................................................................... 72 5.1 Kesimpulan....................................................................................... 72 5.2 Saran ................................................................................................. 72 DAFTAR PUSTAKA LAMPIRAN xi DAFTAR TABEL Tabel 4.1 Citra hasil ekualisasi ....................................................................... 46 Tabel 4.2 Citra hasil Otsu................................................................................ 50 Tabel 4.3 Hasil Thresholding.......................................................................... 53 Tabel 4.4 Prosentase Piksel Putih dan klasifikasi Osteoporosis Dengan Thresholding Metode Otsu Dan Hasil DXA.................................. 59 Tabel 4.5 Jumlah piksel warna putih dan hitam prosentase warna putih dari setiap citra....................................................................................... 65 Tabel 4.6 Klasifikasi prosentase warna putih dari setiap citra........................ 67 xii DAFTAR GAMBAR Gambar 2.1 Struktur tulang............................................................................. 11 Gambar 2.2 Tulang normal dan osteoporosis ................................................. 14 Gambar 2.3 Contoh skala yang digunakan pada grayscale ............................ 19 Gambar 2.4 Citra x-ray dental panoramic radiography .................................. 20 Gambar 2.5 Histogram citra............................................................................ 21 Gambar 2.6 Image original dan hasil thresholding......................................... 27 Gambar 2.7 Contoh pengambilan nilai thresholding dengan metode Otsu .... 34 Gambar 2.8 Contoh hasil thresholding dengan metode Otsu pada tulang Rahang......................................................................................... 34 Gambar 3.1 Blok diagram sistem pengenalan................................................. 36 Gambar 3.2 Proses ekualisasi.......................................................................... 38 Gambar 3.3 Proses Otsu.................................................................................. 40 Gambar 3.4 Proses Thresholding.................................................................... 42 Gambar 4.1 Citra x-ray tulang rahang............................................................. 44 Gambar 4.1 Objek citra yang akan digunakan untuk analisa dengan thresholding dengan metode Otsu pada tulang.................................................. 45 Gambar 4.3 Splash Screen ............................................................................... 53 Gambar 4.4 Form utama aplikasi .................................................................... 54 Gambar 4.5 Memilih image tulang ................................................................. 57 Gambar 4.6 Pengujian tulang.......................................................................... 58 Gambar 4.7 Form setup aplikasi ..................................................................... 58 xiii DAFTAR LAMPIRAN Lampiran 1 Splash Screen ........................................................................... 76 Lampiran 2 Form Utama Aplikasi ............................................................... 76 Lampiran 3 Memilih Image Tulang............................................................. 77 Lampiran 4 Pengujian Tulang...................................................................... 77 Lampiran 5 Form Setup Aplikasi................................................................. 78 Lampiran 6 Data Citra Tulang Rahang........................................................ 78 Lampiran 7 Data Citra Tulang Jari Rahang Asli dan Citra Hasil DXA, Ekualisasi serta Otsu ................................................................ 80 Lampiran 8 Jumlah Piksel Warna Putih Dan Hitam Prosentase Warna Putih dari Citra Tulang Rahang......................................................... 81 Lampiran 9 Klasifikasi prosentase warna putih dari setiap citra ................. 82 Lampiran 10 Listing ekualisasi ...................................................................... 83 Lampiran 11 Listing proses otsu.................................................................... 83 Lampiran 12 Listing thresholding ................................................................ 84 Lampiran 13 Listing setup............................................................................ 85 Lampiran 14 Listing Program keseluruhan.................................................. 85 xiv ABSTRAK Cahyaningsih, Sri. 2010. Deteksi Osteoporosis Dengan Thresholding Metode Otsu Pada Citra X-Ray Tulang Rahang. Skripsi. Jurusan Fisika, Fakultas Sains dan Teknologi. Universitas Islam Negeri (UIN) Maulana Malik Ibrahim Malang. Pembimbing : 1. DR. Agus Mulyono, S.Pd, M.Kes 2. DR. Munirul Abidin, M. Ag Kata Kunci: Osteoporosis, Thresholding, Metode Otsu Osteoporosis atau keropos tulang adalah penyakit silent epidemic, yang berarti pengeroposan tulang yang berlangsung secara diam-diam dan terus menerus. Untuk melakukan diagnosa dini terhadap osteoporosis tidak mudah, karena tidak ada gejala yang khas. Gold standar untuk diagnosis osteoporosis di Indonesia dengan menggunakan Dual X-ray Absorptiometry (DXA), tetapi alat ini masih terbatas. Pemeriksaan radiologi konvensional (morfometri) merupakan salah satu sarana diagnostik osteoporosis yang relatif murah dan tersebar merata di Indonesia. Akan tetapi, untuk membacanya hanya bisa dilakukan oleh dokter ahli tulang dan ketajaman mata sangat berpengaruh terhadap hasil yang didapatkan. Sehingga perlu dilakukan computer vision untuk membaca foto rontgen agar hasil yang didapatkan lebih akurat. Tujuan yang ingin dicapai dalam skripsi ini adalah untuk menghasilkan metode baru untuk deteksi osteoporosis dengan memanfaatkan citra x-ray tulang rahang dengan analisa thresholding metode Otsu dan dari metode tersebut dapat diketahui tingkat akurasi kebenaran yang diperoleh, sehingga dapat dipergunakan sebagai acuan layak tidaknya metode ini digunakan sebagai metode untuk mendeteksi osteoporosis. Penelitian ini menggunakan 19 citra x-ray tulang rahang dari 19 orang wanita menopause. Data yang diperoleh kemudian dianalisis dengan metode thresholding metode otsu dan hasilnya dibandingkan dengan hasil DXA. Teknik yang dilakukan dalam penelitian ini meliputi ekualisasi, otsu dan thresholding. Dalam proses ekualisasi citra akan ditajamkan antara bagian yang hitam dan putih, sedangkan proses otsu bertujuan untuk mencari nilai threshold yang tepat. Dan thresholding akan mengekskusi citra dimana citra berdasarkan nilai ambangnya. Pada analisis DXA dari 19 citra x-ray tulang rahang diperoleh hasil 8 tulang normal dan 13 tulang osteoporosis. Sedangkan dari pengujian dengan mengunakan thresholding metode otsu, maka pada 19 citra x-ray, mendapatkan hasil 6 tulang normal dan 13 tulang osteoporosis serta akurasi kebenaran diperoleh 89,47%. xv ABSTRACT Cahyaningsih, Sri. 2010. Detection of Osteoporosis With Otsu Thresholding Method in X-ray image of jaw bones. Thesis. Department of Physics, Faculty of Science and Technology. State Islamic University (UIN) Malang Maulana Malik Ibrahim. Advisors: 1. DR. Agus Mulyono, S. Pd, M. Kes 2. DR. Munirul Abidin, M. Ag Keywords: Osteoporosis, Thresholding, Otsu Method Osteoporosis or brittle bone disease is a silent epidemic, which means bone loss that took place quietly and persistently. To make early diagnosis of osteoporosis is not easy, because there are no typical symptoms. Gold standard for diagnosis of osteoporosis in Indonesia by using Dual X-ray Absorptiometry (DXA), but the tool is still limited. Conventional radiological examination (morphometry) is one diagnostic tool for osteoporosis is relatively cheap and spread evenly in Indonesia. However, to read it can only be done by doctors and chiropractors sharpness of the eyes is very influential on the results obtained. So that needs to be done on computer vision for reading x-rays to get more accurate results. Objectives to be achieved in this paper is to generate new methods for detection of osteoporosis by using x-ray image of the jawbone with the analysis of Otsu thresholding method and the method can know the truth level of accuracy obtained, so it can be used as a reference for the proper of this method is used as a method for detecting osteoporosis. This study uses 19 X-ray image of the jaw bone of 19 postmenopausal women. The data obtained were then analyzed by thresholding method, Otsu method and the results were compared with results of DXA. The technique applied in this research include equalization, and Otsu thresholding. In the equalization process of the image will be sharpened between the black and white, while Otsu process aims to find an appropriate threshold value. And thresholding will mengekskusi image where the image based on threshold values. In the DXA analysis of 19 x-ray image of the jaw bone to normal bone obtained 8 and 13 bones of osteoporosis. While the tests using the Otsu thresholding method, then at 19 x-ray image, get the 6 and 13 normal bone osteoporosis bones truth and accuracy of 89.47% was obtained. 1 BAB I PENDAHULUAN 1.1 Latar Belakang Tubuh manusia terdiri dari susunan tulang, dimana tulang adalah organ yang sudah terbentuk sejak masih dalam kandungan yang kemudian berkembang terus-menerus sampai dekade kedua sehingga menjadi susunan yang teratur. Fungsi dari organ ini sebagai organ yang mendukung struktur tubuh, melindungi organ-organ internal serta memungkinkan pergerakan atau perpindahan yang dikarenakan sebagai tempat melekatnya otot-otot. Allah swt telah menceritakan proses penciptaan manusia di dalam Al- Quran secara rinci. Allah berfirman dalam surat Al-Muminun; .1l !.1l> _.. _. .l. _. _,L _ . ..l-> L. _ _,>. _ . !.1l> L.l 1l. !.1l> 1l-l -.`. !.1l> -..l !..Ls !..> .L-l !.>' . ..!: !1l> >, !,. < _.> _,1l.>' _ Artinya:Dan sesungguhnya Kami telah menciptakan manusia dari suatu saripati (berasal) dari tanah. Kemudian Kami jadikan saripati itu air mani (yang disimpan) dalam tempat yang kokoh (rahim). Kemudian air mani itu Kami jadikan segumpal darah, lalu segumpal darah itu Kami jadikan segumpal daging, dan segumpal daging itu Kami jadikan tulang belulang, lalu tulang belulang itu Kami bungkus dengan daging. Kemudian Kami jadikan dia makhluk yang (berbentuk) lain. Maka Maha Suci lah Allah, Pencipta Yang Paling Baik. (Al-Mukminun : 12-14) 2 Dari ayat tersebut dapat dijelaskan bahwa janin mengalami pertumbuhan dan perkembangan yang sangat cepat dan selain itu juga berlangsung serangkaian proses pembentukan organ untuk menjadi bentuk yang lebih sempurna. Dalam tahapan perkembangan janin dalam rahim ibu yang bermula dari jaringan tulang rawan ketika masih pada embrio, kemudian jaringan tulang tersebut mulai mengeras dan akhirnya menjadi tulang keras. Selanjutnya tulang-tulang ini dibungkus oleh sel-sel otot. Allah swt menjelaskan perkembangan ini dalam ayat: "dan segumpal daging itu Kami jadikan tulang belulang, lalu tulang belulang itu Kami bungkus dengan daging". Maha benar Allah swt yang telah menurunkan Al- Quran dengan ilmunya. Prof. Dr. Hanifah Wijosastro, SPOG menjelaskan bahwa para dokter ilmu kandungan menemukan dasar diciptakannya manusia yang bersumber dari tulang sulbi, yaitu tulang belakang laki-laki dan tulang dada perempuan, yaitu tulang rusuk perempuan. Penemuan ini selaras dengan firman Allah dalam surat Ath- Thariq : L.,l _... . _l> _ _l> _. ,!. _: _ _`> _. _,, l.l .l _ Artinya:Maka hendaklah manusia memperhatikan dari apakah dia diciptakan? Dia diciptakan dari air yang dipancarkan, yang keluar dari antara tulang sulbi laki- laki dan tulang dada perempuan ( Ath-Thariq: 5-7) Melalui konsep embriologi yang tersurat di dalam Al-Quran dapat dipelajari bahwa Allah swt menciptakan manusia melalui beberapa proses untuk memperoleh bentuk yang sempurna. Dan para dokter kandungan membuktikan 3 bahwa semua yang disebutkan di dalam Al-Quran dan hadits-hadits Rasululullah saw tentang proses penciptaan manusia adalah sesuai dengan yang ditemukan pada ilmu modern. Dengan bertambahnya usia dan dipengaruhi hormon maka tulang akan mengalami perkembangan. Tetapi jika produksi hormon menurun dan disertai dengan kemunduran fungsi pencernaan, gaya hidup yang tidak sehat, kurangnya asupan kalsium dan fosfor, serta berkurangnya aktivitas fisik maka akan berpengaruh terkena osteoporosis. Osteoporosis atau keropos tulang merupakan penyakit kronik yang ditandai dengan rendahnya massa tulang yang disertai perubahan mikro arsitektur tulang dan penurunan kualitas jaringan tulang yang dapat menimbulkan kerapuhan tulang, sehingga tulang mudah retak atau bahkan patah tulang. Patah tulang sering terjadi adalah pada pergelangan tangan, tulang belakang, serta tulang pinggul (Zaviera, 2007). Untuk melakukan diagnosa dini terhadap osteoporosis tidak mudah, karena tidak ada gejala yang khas. Kebanyakan pasien tidak menyadari bahwa menderita penyakit ini. Mereka baru menyadari ketika tulang sudah sedemikian lemah dan rapuh, sehingga apabila terjadi persinggungan atau kecelakaan (terjatuh) dapat menyebabkan patah tulang. Dengan gejala yang tidak diketahui itu, tidak berlebihan jika penyakit ini disebut silent disease (penyakit diam-diam). Saat ini osteoporosis merupakan masalah kesehatan dunia (global issue), karena tidak hanya menyerang kelompok wanita yang berusia lanjut tetapi juga pada kelompok wanita yang berusia lebih muda yang mengalami penghentian siklus menstruasi. Hasil penelitian terakhir menunjukkan kecenderungan 4 prevalensi (keadaan umum) pada pria meningkat dibandingkan penelitian sebelumnya. Prevalensi tertinggi dari kelompok yang terkena osteoporosis terdapat pada kelompok usia lanjut. Dengan meningkatnya taraf hidup masyarakat, akan berpengaruh terhadap meningkatnya usia harapan hidup sehingga populasi lansia akan meningkat. Dampak yang akan ditimbulkan adalah akan terjadi peningkatan kasus osteoporosis. Sekitar 80% penderita penyakit osteoporosis adalah wanita, termasuk wanita muda yang mengalami penghentian siklus menstruasi (amenorrhea). Sedangkan yang 20% penyakit osteoporosis pada pria yang juga dipengaruhi hormon estrogen. Bedanya dengan wanita, laki-laki tidak mengalami menopause, sehingga osteoporosis datang lebih lambat. Dengan tidak diketahuinya tanda-tanda osteoporosis, maka penting untuk dilakukan deteksi dini akan kehilangan massa tulang yang merupakan kunci dalam usaha pencegahan osteoporosis. Pengukuran bone mineral density (BMD) adalah cara yang efektif dalam diagnosis dan juga untuk memantau efek pengobatan. Beberapa teknik radiologi yang dapat digunakan untuk menentukan bone mineral density antara lain X-Ray konvensional (morfometri), Radioisotop, Quantitative Computed Tomography (QCT ), Dual X-ray Absorptiometry (DXA), total body neutron activation analysis, Magnetic Resonansi Imaging (MRI), Sonodensitometri. Saat ini di Indonesia DXA digunakan sebagai gold standar untuk diagnosa osteoporosis, akan tetapi jumlahnya masih terbatas hanya terdapat di beberapa kota besar dan juga biaya pemeriksaannya relatif mahal. Oleh karena itu pemeriksaan radiologi konvensional masih mempunyai peranan penting dalam 5 diagnosa osteoporosis dan merupakan sarana/alat yang relatif tersebar merata di seluruh Indonesia dan biaya yang relatif murah (Ilyas, 2005). Ada beberapa penelitian yang telah dilakukan dengan memanfaatkan citra x-ray hasil pemeriksaan radiologi untuk diagnosa dini osteoporosis. Penelitian yang telah dilakukan oleh Arifin (2006) menyebutkan bahwa dengan mengukur ketebalan mandibular cortex citra dental panoramic radiograph dengan bantuan komputer dapat digunakan untuk mendeteksi osteoporosis. Kemudian dilanjutkan dengan penelitian Agus (2008) yang menyebutkan bahwa dengan analisis tekstur dari gabungan citra x-ray tulang tangan, tulang lutut, dan tulang rahang dapat digunakan untuk melengkapi interpretasi hasil x-ray konvensional sehingga dapat digunakan untuk mendeteksi osteoporosis. Hasil pemeriksanaan radiologi yang berupa foto citra x-ray dapat dianalisa dengan menggunakan beberapa metode/pendekatan, antara lain dengan karakter dari graph (Zainal, 2009), metode wavelet (Bulkis, 2008), metode region growing (Sikna, 2009), metode otsu (Bertalya, 2008), pendekatan thresholding (Marvin, 2009), dan lain lain. Penggunaan analisis dengan memanfaatkan thresholding metode Otsu dari citra x-ray telah dilakukan Darma (2004) yang menyebutkan bahwa metode Otsu dapat digunakan dalam binerisasi citra tangan. Kemudian Marvin dan Semuiil (2009) juga menyebutkan bahwa nilai threshold pada segmentasi warna dapat digunakan untuk mendeteksi kanker Trofoblas dengan tingkat akurasi sebesar 90%. Penelitian lainnya juga dilakukan Dewi yang menyebutkan bahwa dengan pengambangan untuk meminimalisasikan varian dari piksel hitam dan putih 6 mengenai perbandingan kinerja metode deteksi tepi pada citra wajah yang dapat memanfaatkan metode Otsu. Analisis dengan memanfaatkan thresholding merupakan salah satu cara untuk mengenali suatu citra sesuai dengan nilai ambangnya. Dalam analisisnya, dengan memanfaatkan metode Otsu untuk menentukan nilai ambang dari suatu citra. Metode Otsu merupakan sebuah metode untuk menghitung nilai ambang T secara otomatis berdasarkan citra masukan. Pendekatan yang digunakan dalam metode Otsu adalah dengan melakukan analisis diskriminan yaitu menentukan suatu variabel yang dapat membedakan antara dua atau lebih kelompok yang muncul secara alami. Dalam prosesnya, metode Otsu akan menghasilkan citra yang memiliki dua nilai tingkat keabuan yaitu hitam dan putih. Permasalahan utama dalam metode Otsu adalah menentukan nilai ambang (threshold). Nilai ini akan digunakan untuk mempartisi/membagi citra gray scale ke dalam dua nilai yaitu hitam dan putih. Penentuan nilai ambang akan ditetapkan pada suatu nilai tertentu (fixed threshold) yang diterapkan pada citra tulang rahang sehingga dapat digunakan untuk proses penentuan ciri-ciri osteoporosis pada citra tulang rahang. Dalam penelitian ini akan menghitung intensitas keabuan piksel yang berdasarkan dari nilai piksel hitam dan putih. Kelebihan dari metode Otsu akan memaksimalkan kecocokan dari sebuah threshold sehingga dapat memisahkan objek dengan latar belakangnya. Semua ini didapatkan dengan memilih nilai threshold yang memberikan pembagian kelas yang terbaik untuk semua piksel yang ada dalam image. Dasar yang digunakan 7 adalah dengan menggunakan histogram yang telah dinormalisasi dimana jumlah tiap poin pada setiap level dibagi dengan jumlah total poin pada image. Hasil yang nanti akan didapatkan dari proses implementasi adalah sekumpulan wilayah yang melingkupi citra tersebut, atau sekumpulan kontur yang diekstrak dari image dan diharapkan akan mendapatkan suatu ciri citra dari tulang yang kaitannya dengan tulang osteoporosis dan tulang normal. Serta diharapkan dari hasil penelitian ini akan menghasilkan suatu metode baru untuk deteksi osteoporosis yang lebih murah, mudah dan tepat sehingga menambah khasanah keilmuan. Berdasarkan analisa latar belakang, penulis akan mengimplementasikan computer vision untuk mendeteksi osteoporosis dari citra tulang rahang dengan menggunakan metode Otsu. 1.2 Rumusan Masalah Berdasarkan latar belakang yang diuraikan di atas, maka dirumuskan masalah sebagai berikut : 1. Apakah analisa dengan thresholding metode Otsu dapat digunakan untuk mendeteksi osteoporosis pada x-ray tulang rahang? 2. Berapakah akurasi kebenaran yang diperoleh dengan membandingkan hasil DXA dan thresholding metode Otsu? 8 1.3 Tujuan Penelitian Adapun tujuan dari penelitian ini adalah : 1. Menghasilkan metode baru untuk deteksi osteoporosis dengan memanfaatkan citra tulang rahang dengan analisa thresholding metode Otsu. 2. Dengan mengetahui tingkat akurasi kebenaran yang diperoleh, maka dapat dipergunakan sebagai acuan layak tidaknya metode ini digunakan sebagai metode untuk mendeteksi osteoporosis. 1.4 Manfaat Penelitian Hasil penelitian ini diharapkan dapat memperoleh manfaat sebagai berikut: Teoritis : Menambah khasanah keilmuan tentang analisa thresholding metode Otsu pada citra tulang serta aplikasi dalam bidang medis. Praktis : Teknologi thresholding metode Otsu dapat digunakan untuk melengkapi interpretasi hasil x-ray sehingga dapat digunakan untuk mendeteksi osteoporosis dengan lebih mudah, murah dan tepat. 9 BAB II DASAR TEORI 2.1 Tulang Dalam proses penciptaan manusia ketika masih dalam kandungan, proses ini akan diawali lebih dahulu dengan pertemuaan sel sperma dan sel telur. Sel sperma diproduksi dalam alat reproduksi laki-laki sedangkan sel telur diproduksi dalam alat reproduksi wanita. Dalam prosesnya, sel telur akan mengeluarkan sebuah cairan untuk memikat sel sperma, sehingga ketika sel telur sedang melewati tuba palopi sekitar 15 cm darinya. Sel sperma akan menangkap sinyal dari sel telur, sel sperma akan berenang menuju sel telur dan terjadilah pembuahan. Setelah sel sperma masuk ke dalam sel telur maka bergabunglah DNA sel sperma dengan DNA sel telur dan membentuk satu sel tunggal baru bernama zigot. Zigot tersebut merupakan benih manusia baru dalam kandungan seorang ibu. Sekitar 4 hari setelah pembuahan dalam tuba palopi, zigot mencapai rahim sang ibu pada tempat yang tepat. Agar tidak dikeluarkan dari tubuh maka ia harus menempel pada rahim. Hal ini selaras dengan firman Allah swt dalam surat al- Muminun;12: . ..l-> L. _ _,>. _ Artinya : Kemudian Kami jadikan saripati itu air mani (yang disimpan) dalam tempat yang kokoh (rahim). 9 10 Dalam tahap perkembangan janin ketika masih dalam rahim ibu dipaparkan dalam Al Qur'an, sebagaiman yang diuraikan dalam ayat ke-14 surat Al Mu'minuun, bahwa jaringan tulang rawan pada embrio di rahim ibu yang pada mulanya tulang rawan kemudian mulai mengeras dan akhirnya menjadi tulang keras. Lalu tulang ini dibungkus oleh sel-sel otot. Allah menjelaskan perkembangan ini dalam ayat sebagai berikut: !.1l> -..l !..Ls !..> .L-l !.>' Artinya: "dan segumpal daging itu Kami jadikan tulang belulang, lalu tulang belulang itu Kami bungkus dengan daging". Tulang sebagai jaringan paling tangguh dalam tubuh sehingga dapat menopang aktifitas tubuh merupakan salah satu keajaiban penciptaan Allah SWT. Dari surat Al Mu'minuun di atas mengindikasikan bahwa setelah tahap mudhghoh, tulang belulang dan otot akan terbentuk. Proses ini sesuai dengan perkembangan embriologi. Pada awalnya jaringan tulang rawan ketika masih dalam embrio akan mulai mengeras. Kemudian sel-sel otot yang terpilih dari jaringan di sekitar tulang akan bergabung dan membungkus tulang-tulang ini (Aceng, 2007 : 84-89). Peristiwa ini digambarkan bahwa ketika embrio memasuki waktu minggu ke-tujuh, rangka mulai tersebar ke seluruh tubuh dan tulang-tulang mencapai bentuknya. Pada akhir minggu ke-tujuh dan selama minggu ke-delapan, otot-otot akan menempati posisinya di sekeliling bentukan tulang. 11 Tulang disebut alat gerak pasif karena digerakkan oleh otot. Tetapi tulang tetap punya peranan penting karena gerak tidak akan terjadi tanpa adanya tulang. Kalsium (Ca), fosfor (P), dan magnesium (Mg) merupakan komponen utama pembentuk tulang (American College of Rheumatology, 2008). Gambar 2.1 Struktur tulang 2.2 Osteoporosis Tulang merupakan jaringan dalam tubuh yang terus menerus akan mengalami pertumbuhan. Pada proses pertumbuhan tulang meliputi proses sekresi dan pemadatan untuk menyusun matrik tulang. Kekuatan tulang selain ditentukan oleh kandungan mineral massa tulang juga ditentukan oleh karakteristik struktural tulang, yang meliputi ukuran, bentuk dan susunan arsitektur tulang. Penurunan massa tulang selain diidentifikasi dari kepadatan tulang, juga dapat diprediksi dari 12 perubahan struktural tulang tersebut, misalnya perubahan massa bagian kortikal dan trabekula. Selain pertumbuhan, tulang juga mengalami regenerasi yaitu pergantian tulang-tulang yang sudah tua diganti dengan tulang yang baru yang masih muda, dimana proses ini berjalan seimbang sehingga terbentuk puncak massa tulang yang pengaturannya dilakukan oleh hormon. Tugas hormon ini adalah mengatur kadar kalsium dalam darah. Peningkatan kadar kalsium dalam darah akan meningkatkan pembentukan jaringan baru dan sebaliknya penurunan kadar kalsium dalam darah akan meningkatkan proses resorpsi. Serta dalam proses pembentukannya, tulang akan mengalami yaitu pergantian tulang-tulang yang sudah tua diganti dengan tulang yang baru yang masih muda, dimana proses ini berjalan seimbang sehingga terbentuk puncak massa tulang. Setelah puncak massa tulang terbentuk, tulang masih mengalami pergantian tulang yang sudah tua dengan tulang yang masih muda. Tetapi pada prosesnya jika tidak berjalan seimbang dimana tulang yang diserap untuk diganti lebih banyak dari tulang yang menggantikannya maka terjadi penurunan massa tulang, dan bila keadaan ini berjalan terus-menerus akan terjadi osteoporosis. Selain itu, osteoporosis juga dipengaruhi dengan bertambahnya usia yang disertai dengan kemunduran fungsi pencernaan, gaya hidup tidak sehat. Osteoporosis adalah suatu kelainan yang ditandai berkurangnya kekuatan tulang, sehingga menyebabkan meningkatnya resiko patah tulang (fraktur). Kekuatan tulang ditentukan oleh dua faktor, yaitu kepadatan (densitas) tulang dan kualitas tulang. Densitas ulang dapat diukur dengan berbagai macam cara, 13 sedangkan kualitas tulang belum dapat dinilai secara kuantitatif. Daerah yang paling sering timbul keretakan di bagian pergelangan tangan, tulang belakang serta tulang pinggul (Ulfah, 2008). Setiap jenis tulang terdiri dari bagian kortikal dan trabekula yang mempunyai proporsi tertentu tergantung pada jenis tulang. Terdapat perbedaan nyata antara daerah kortikal dan trabekula yaitu pada kortikal 80% hingga 90% volumenya termineralisasi. Sedangkan pada trabekula, volume tulang yang termineralisasi hanya 20% karena sebagian besar terdiri atas sumsum yang mengandung lemak dan jaringan hematopoetik. Berdasarkan besarnya massa yang terminerelisasi tersebut, maka bagian kortikal berfungsi mekanik sedangkan bagian trabekula berfungsi metabolik. Perubahan massa pada daerah kortikal dan trabekula berpengaruh terhadap kekuatan tulang yang mana disebabkan oleh adanya perbedaan kandungan mineral yang menentukan fungsi kedua daerah tersebut. Menurut Anthoni (1998) bagian kortikal berfungsi mekanik sedangkan bagian trabekula adalah metabolik. Trabekula mempunyai keaktifan metabolik lebih besar yaitu lebih sering terjadi perubahan mineral dibanding kortikal sehingga mempunyai prediposisi untuk terjadi kekurangan massa tulang (Sari, 2001). Secara umum dipercaya bahwa foto x-ray dapat mendeteksi osteoporosis apabila defisit mineral tulangnya mencapai > 30%. Lachmann dan Welan melaporkan defisit mineral yang lebih kecil (8-14%) dapat dideteksi pada tulang- tulang dengan komponen trabekula yang tinggi (misal vertebra, femur dan metakarpal) sehingga cepat mengalami perubahan metabolik aktif trabekula. 14 Korpus vertebra, ujung tulang panjang dan os ilium mengandung lebih banyak tulang trabekular, yang mempunyai permukaan tulang yang lebih luas dan mempunyai keaktifan metabolik yang lebih besar dibandingkan dengan tulang kortikal, artinya mempunyai porositas yang lebih besar, sehingga akan lebih mudah kehilangan massa tulang (Agus, 2008). Gambar 2.2 Tulang normal dan osteoporosis Kelompok kerja World Health Organisation (WHO) dan consensus ahli mendefinisikan mengenai osteoporosis menjelaskan hanya spesifik pada tulang merupakan risiko terjadinya fraktur. Ini dipengaruhi oleh densitas tulang yang merupakan resiko terjadinya fraktur. Ini dipengaruhi oleh densitas tulang. Kelompok kerja WHO menggunakan teknik ini untuk melakukan penggolongan ukran densitas mineral tulang: Normal : Densitas tulang kurang dari 1 standar deviasi dibawah rata rata wanita muda normal (T>-1) Osteopenia : Densitas tulang antara 1 standar deviasi dan 2,5 standar deviasi dibawah rata-rata wanita muda normal (-2,5<T<-1) Osteoporosis : Densitas tulang lebih dari 2,5 standar deviasi dibawah rata-rata wanita muda normal (T<-2,5). 15 Pada beberapa tahun pertama pasca menopause akan terjadi penurunan massa tulang yang cepat sebesar 5% pertahun pada tulang trabekular dan 2-3% pertahun pada tulang kortikal. Hal ini disebabkan dengan meningkatnya aktifitas osteoklas dan didominasi oleh osteoblas dan hilangnya massa tulang 1-2% per tahun. Osteoporosis diklasifikasikan menjadi dua klasifikasi, yaitu: 1. Osteoporosis primer Lebih sering pada wanita yang berhubungan dengan kelainan hormonal, usia yang semakin bertambah/ketuaan. Dihubungkan dengan faktor resiko meliputi merokok, aktifitas, pubertas tertunda, berat badan rendah, alkohol, ras kulit putih/asia, riwayat keluarga, postur tubuh, dan asupan kalsium yang rendah. Tipe I (post menapausal) Terjadi 15-20 tahun setelah menopause (53-75 tahun). Ditandai oleh fraktur tulang belakang dan berkurangnya gigi geligi. Ini disebabkan luasnya jaringan trabekular tersebut. Dimana jaringan trabekular lebih responsif terhadap defisiensi estrogen. Tipe II (senile) Terjadi pada pria dan wanita usia 70 tahun. Ditandai oleh fraktur panggul dan tulang belakang tipe wedge. Hilangnya massa tulang kortikal terbesar terjadi pada usia tersebut. 2. Osteoporosis sekunder Osteoporosis jenis ini terjadi pada tiap kelompok umur. Penyakit ini disebabkan oleh tulang yang sudah tidak berfungsi lagi sebagai akibat dari 16 paralisis (kelemahan) atau kondisi lainnya, yang meliputi defisiensi estrogen, faktor genetik dan obat-obatan (Zaviera, 2007:25-28). Diagnosis osteoporosis umumnya secara klinis sulit dinilai, karena tidak ada rasa nyeri pada tulang saat osteoporosis terjadi walau osteoporosis lanjut.. Gejala klinis ini sering tidak jelas, sehingga untuk mendiagnosa dini diperlukan pengukuran densitas atau kepadatan tulang yang umumnya menggunakan alat Bone Mineral. Beberapa teknik pengukuran massa tulang dan kepadatan mineral tulang telah dikembangkan dalam lima puluh tahun terakhir, khususnya sepuluh tahun terakhir ini. Semua teknik ini bergantung pada teknologi yang rumit, keakuratannya sangat penting karena perubahan yang kecil saja pada massa dan kepadatan tulang bisa mencerminkan perubahan besar di dalam kekuatan tulang. Densitometer merupakan salah satu cara untuk mendeteksi penyusutan massa tulang. Teknik pemeriksanaannya sangat sederhana, cepat dan tidak menyakitkan. Teknik pemeriksaan BMD paling akurat dan menjadi gold standard saat ini adalah teknik Dual energy X-ray Absorptiometry (DXA) (Joan, 2006:72-73). Remodeling tulang terjadi setiap permukaan tulang dan berlanjut sepanjang hidup. Jika massa tulang tetap pada dewasa, menunjukkan terjadinya keseimbangan antara formasi dan resorpsi tulang. Keseimbangan ini dilaksanakan oleh osteoblas dan osteoklas pada unit remodeling tulang. Remodeling dibutuhkan untuk menjaga kekuatan tulang. Osteoblas dan osteoklas dikontrol oleh hormon sistemik dan sitokin (Zaviera, 2007:70). Proses remodelling tulang melibatkan Osteoklas dan Osteoblas. Osteoklas dapat mengeluarkan enzim yang dapat melarutkan atau menghancurkan tulang, 17 dan kemudian melepaskan mineral yang tersimpan di dalam tulang, termasuk kalsium. Osteoblas bertugas membentuk sel-sel tulang baru. Proses pergantian tulang ini berkaitan dengan pelepasan dan penambahan kalsium pada massa tulang. Pada saat terjadi penghancuran, terjadi pelepasan kalsium tulang ke dalam darah untuk dimanfaatkan oleh organ lain misalnya untuk menurunkan kadar kolesterol dalam darah oleh organ lain misalnya untuk menurunkan dan mengaktifkan vitamin K guna mempercepat proses penyembuhan. Sebaliknya pada proses pembentukan tulang diperlukan kalsium untuk mengisi matriks tulang agar tulang menjadi padat dan kuat. Apabila Osteoklas bekerja lebih aktif maka keseimbangan proses remodelling akan terganggu, dan akibatnya massa tulang berkurang perlahan, beberapa waktu kemudian menjadi keropos dan mudah patah (Agus, 2008 : 15 - 16). 2.3 Sinar-X Sinar-X ditemukan oleh Wilhelm Conrad Rontgen pada tanggal 08 Nopember 1895 yang merupakan ilmuwan Jerman sangat membantu di bidang medis. Pada waktu itu, Rontgen sedang mempelajari pancaran electron dari tabung katode. Lempeng logam yang letaknya di dekat tabung katode memancarkan sinar flueresens selama elektron dialirkan. Oleh sebab itu, Rontgen menyimpulkan bahwa sinar tersebut di sebabkan oleh radiasi dari suatu atom. Karena tidak dikenal dalam ilmu, maka Rontgen memberikan nama dengan sebutan sinar-X (Susworo, 2007). 18 Sinar-X yang dihasilkan dengan tenaga 20-40 keV mempunyai panjang gelombang 10 -7 cm dan sinar ini dikatakan sinar-X lembut. Sinar-X yang dihasilkan dengan 40-125 keV mempunyai gelombang 10 -8 cm. Sinar ini kerap digunakan untuk pemeriksaan X-ray diagnostik, manakala panjang gelombang yang lebih pendek lagi yang dihasilkan dengan tenaga 200-1000 keV digunakan dalam rawatan radioterapi yang lebih dalam (deep radiotheraphy). Sinar ini biasanya berukuran < 10 -8 cm (hard-rays). Radiograf adalah gambar bayangan material yang transparan oleh radiasi. Sinar-X dapat menggelapkan film sehingga daerah dengan kerapatan lebih rendah akan terlihat lebih gelap pada negatif film daripada daerah dengan kerapatan tinggi. Sehingga lubang atau retak muncul sebagai daerah yang lebih gelap, sedangkan inklusi tembaga pada paduan aluminium muncul lebih terang. Dalam hal ini, lubang pada tulang dikenali dikenali sebagai gambaran tulang yang terkena osteoporosis. Manfaat sinar-X dalam ilmu kedokteran, yaitu sinar-X dapat digunakan untuk melihat kondisi tulang, gigi serta organ tubuh yang lain tanpa melakukun pembedahan langsung pada tubuh pasien. Selain bermanfaat, sinar-X mempunyai efek/dampak yang sangat berbahaya bagi tubuh kita yaitu apabila digunakan secara berlebihan karena akan dapat menimbulkan penyakit yang berbahaya, misalnya kanker. Oleh sebab itu para dokter tidak menganjurkan terlalu sering memakai foto rontgen secara berlebihan (Gabriel, 1996 : 282-283). 19 2.4 Pengolahan Citra Pengolahan citra adalah kegiatan memperbaiki kualitas citra agar mudah diinterpretasi oleh manusia komputer. Inputnya adalah citra dan keluarannya juga citra tapi dengan kualitas lebih baik daripada citra masukan misal citra warnanya kurang tajam, kabur, mengandung noise (misal bintik-bintik putih) sehingga perlu pemrosesan untuk memperbaiki citra karena akan sulit diinterpretasikan sebab informasi yang disampaikan menjadi berkurang. Pengolahan citra bersifat multidisiplin, yaitu merambah ke banyak aspek, antara lain: fisika, elektronika, matematika, seni, bidang medis, dan teknologi komputer (Usman, 2005 : 4-6). 2.4.1 Citra Secara Harfiah, citra adalah gambar pada bidang dwimantra (dua dimensi). Ditinjau dari sudut pandang matematis, citra merupakan fungsi kontinu dari intensitas cahaya pada bidang dwimantra. Sumber cahaya menerangi objek, objek memantulkan kembali sebagian dari berkas cahaya tersebut (Munir, 2004: 2). Sebuah citra dapat didefinisikan sebagai fungsi f(x,y), dimana x dan y adalah koordinat ruang dan amplitudo dari f dapat disebut intensitas atau gray- level dari sebuah citra pada titik yang terletak pada koordinat x dan y. Jika x,y dan nilai amplitudo dari f adalah terbatas dan dapat ditentukan nilainya maka citra tersebut adalah citra digital. Citra digital dibentuk dari beberapa elemen, yang tiap-tiap elemennya meliiki posisi dan nilai tertentu. Salah satu elemen yang paling sering digunakan adalah piksel. Piksel a dalah titik yang berisi nilai tertentu yang membentuk sebuah citra yang lokasinya ditentukan oleh kombinasi x dan y. 20 Citra gray scale adalah sebuah citra yang memiliki nilai dari putih yang memiliki intensitas paling besar (255) sampai hitam yang memiliki intensitas paling rendah (0) seperti yang terlihat pada gambar berikut (Indra, 2008).: Gambar 2.3 contoh skala yang digunakan pada greyscale Citra X-ray tulang adalah citra yang diperoleh dari alat/pesawat X-ray. Kualitas citra yang didapat dari alat sangat bergantung pada tegangan tinggi (kV), arus tabung (mA) dan waktu paparan (s) (Agus, 2008 : 21-23). Gambar 2.4 Citra x-ray dental panoramic radiography 2.4.2 Segmentasi Citra Segmentasi citra merupakan proses yang bertujuan untuk memisahkan suatu daerah pada citra dengan daerah lainnya. Segmentasi mengacu pada operasi pemisahan sebuah citra menjadi bagian-bagian atau membagi citra menjadi bagian yang diharapkan termasuk objek yang dianalisis yang ada pada citra tersebut. Memilih bentuk dalam sebuah citra sangat berguna dalam pengukuran atau pemahaman citra. Secara tradisional, segmentasi didefinisikan sebagai proses pendefinisian jangkauan nilai gelap dan terang pada citra yang sebenarnya, 21 memilih piksel dalam jangkauan ini sebagai latar depan dan menolak sisanya sebagai latar belakang. Dengan demikian, citra terbagi atas dua bagian, yaitu bagian hitam dan bagian putih, atau warna yang membatasi setiap wilayah. Salah satu metode yang efektif dalam segmentasi citra biner adalah dengan memeriksa hubungan piksel dengan tetangganya dan memberinya label. Metode ini disebut pelabelan komponen. Pembagian citra menjadi beberapa daerah, berdasarkan sifat-sifat tertentu dari citra yang dapat dijadikan pembeda, disebut juga segmentasi citra. Suatu daerah dalam citra adalah sekumpulan piksel yang terkoneksi satu sama lain dan mempunyai sifat yang secara umum sama. Dalam citra ideal, sebuah daerah akan dibatasi dengan kurva tertutup, artinya objek yang berada di dalam citra itu tampil utuh, tidak terpotong atau menyentuh tepi bingkai citra. Pada prinsipnya, segmentasi daerah dan deteksi tepi membuahkan hasil yang sama, yaitu memisahkan objek atau objek yang menjadi pusat perhatian dalam menginterpresentasi suatu citra (Munir, 2004). 2.4.2.1 Histogram Citra Informasi penting mengenai isi dari sebuah citra digital dapat diketahui dengan membuat histogram citra. Histogram citra adalah grafik yang menggambarkan penyebaran kuantitatif nilai derajat keabuan (grey level) piksel di dalam (atau bagian tertentu) dari citra. Misalkan citra digital memiliki L derajat keabuan, yaitu dari nilai 0 sampai L 1 (misalnya pada citra dengan kuantisasi derajat keabuan 8-bit, nilai derajat keabuan dari 0 sampai 255). Gambar 2.5 memperlihatkan contoh sebuah histogram citra, yang dalam hal ini k menyatakan derajat keabuan dan nk menyatakan jumlah piksel yang memiliki nilai keabuan k. 22 Gambar 2.5 Histogram citra Pada beberapa operasi pengolahan citra jumlah piksel yang memiliki derajat keabuan k dinormalkan terhadap jumlah seluruh pixel di dalam citra, (1) Persamaan 1 di atas menyatakan frekuensi kemunculan relative dari derajat keabuan pada citra tersebut. Akan tetapi khusus untuk citra berwarna, histogramnya dibuat untuk setiap kanal RGB (merah, hijau, dan biru). Histogram citra menunjukkan banyak hal tentang kecerahan (brightness) dan kontas (contrast) dari sebuah gambar. Puncak histogram menunjukkan intensitas piksel yang menonjol. Lebar dari puncak menunjukkan rentang kontras dari sebuah citra. Citra yang mempunyai kontras terlalu terang (overexposed) atau terlalu gelap (underexposed) memiliki histogram yang sempit. Histogramnya terlihat hanya menggunakan setengah dari daerah derajat keabuan. Citra yang baik memiliki histogram yang mengisi daerah derajat keabuan secara penuh dengan distribusi yang merata pada setiap derajat keabuan piksel. Histogram adalah alat bantu yang berharga dalam pekerjaan pengolahan citra baik secara kualitatif maupun kuantitatif. Histogram berguna antara lain untuk perbaikan kontras dengan teknik histogram equalization dan memilih nilai ambang untuk melakukan segmentasi objek (Munir, 2006 : 1-2). 23 2.4.2.2 Ekualisasi Histogram Salah satu cara untuk memperbaiki citra digital adalah dengan mengatur level dari brightness dan contrastnya. Pertama, digambarkan variasi sebuah brightness pada citra menggunakan histogram citra tersebut dan bagaimana suatu citra dapat dimanipulasi dengan merubah histogram citra tersebut. Histogram akan menempatkan beberapa piksel dengan brightness levelnya yang sesuai. Untuk piksel dengan ukuran level brightness sebesar 8-bit maka brightness akan memiliki grey level yang berkisar antara nol (hitam) sampai 255 (putih). Histogram keabuan adalah suatu fungsi yang menunjukkan jumlah titik yang ada di dalam suatu citra untuk setiap tingkat keabuan. Absis (sumbu x)nya adalah tingkat keabuan, dan ordinat (sumbu y)nya adalah frekuensi kemunculan atau banyaknya titik dengan nilai keabuan tertentu. Sehingga histogram yang memiliki nilai brightness yang lebih kecil akan terlihat lebih gelap dibandingkan dengan yang memiliki nilai lebih besar (Balza, 2005 : 12 13). Ekualisasi histogram merupakan operasi peningkatan kontras yang optimal, kurva histogram sehingga memiliki rentang yang maksimum, dari batas kiri ke batas kanan histogram. Cara lain yang dapat dilakukan untuk mendapatkan kontras yang optimal adalah dengan mendistribusikan kembali skala-skala keabuan citra agar memperoleh kurva histogram yang datar atau seragam. Pada citra gray scale histogram citra hasil idealnya memiliki jumlah titik yang untuk setiap tingkat keabuan. Untuk citra skala keabuan k bit yang berukuran tinggi h dan lebar w, maka jumlah titik untuk setiap tingkat keabuan adalah seragam sebesar (w.h/2 k ). Secara matematis proses ekualisasi sebagai berikut: 24 K 0 = round (2) dimana C i adalah cacah komulatif nilai skala keabuan ke-i dari citra asli dan fungsi round adalah untuk pembulatan ke bilangan bulat terdekat (Balza, 2005 : 87 88). 2.4.2.3 Thresholding Pengambangan citra (image thresholding) merupakan metode yang paling sederhana untuk melakukan segmentasi. Thresholding digunakan untuk mengatur jumlah derajat keabuan yang ada pada citra. Proses thresholding ini pada dasarnya adalah proses penggubahan kuantisasi pada citra. Untuk mendapatkan hasil segmentasi yang bagus, beberapa operasi perbaikan kualitas citra dilakukan terlabih dahulu untuk mempertajam batas antara objek dengan latar belakangnya (Usman, 2005: 81). Thresholding adalah suatu proses yang digunakan untuk menghasilkan citra biner yaitu citra yang memiliki dua nilai tingkat keabuan, yaitu : hitam dan putih bergantung apakah nilai piksel asli tersebut lebih besar atau lebih kecil dari nilai T. Piksel akan diubah menjadi putih jika nilai tingkat keabuannya lebih besar daripada T, dan akan diubah menjadi hitam jika nilai tingkat keabuannya lebih kecil atau sama dengan T. Thresholding berfungsi untuk mengatur jumlah derajat keabuan pada citra sesuai keinginan. Misalnya, jika ingin menggunakan derajat keabuan 16, maka harus membagi nilai derajat keabuan dengan 16. Pada dasarnya, proses thresholding merupakan proses pengubahan kuantisasi citra. Dapat dirumuskan (Riyanto, 2005 : 24) : 25 x = b.int (3) b = int (4) dimana: w = nilai derajat keabuan sebelum thresholding x = nilai derajat keabuan setelah thresholding Nilai T dapat ditentukan dengan banyak cara, salah satunya adalah melalui perhitungan dimana nilai rata-rata jumlah piksel yang memiliki nilai di bawah T sama dengan nilai rata-rata piksel yang memilliki nilai di atas T. Untuk perhitungan ini, nilai T yang didapat untuk citra yang memiliki histogram yang telah ter-ekualisasi adalah berkisar antara 127 dan 128. Nilai maksimum dari T adalah nilai tertinggi dari sistem warna yang digunakan dan nilai minimum dari T adalah nilai terendah dari sistem warna yang digunakan. Untuk 256 gray level maka nilai tertinggi T adalah 255 dan nilai terendahnya adalah 0. Misal pada sebuah citra f(x,y), tersusun dari objek yang terang pada sebuah background yang gelap. Gray-level milik objek dan milik background terkumpul menjadi 2 group yang dominan, salah satu cara untuk mengambil objek dari backgroundnya adalah dengan memilih sebuah nilai treshold T yang memisahkan grup yang satu dengan grup yang lain. Maka semua piksel yang memiliki nilai > T disebut titik objek, yang lain disebut titik background. Proses ini disebut thresholding. Secara umum, proses binerisasi citra gray scale untuk menghasilkan citra biner adalah sebagai berikut: (5) 26 dengan g(x,y) adalah citra biner dari citra grayscale f(x,y) dan T menyatakan nilai ambang. Thresholding terdiri dari dua jenisnya, yaitu: a) Thresholding global Salah satu cara untuk memilih nilai ambang adalah dengan melihat dari histogram citra tersebut. Histogram adalah menggambarkan citra yang memiliki dua mode berbeda sehingga memudahkan untuk memilih T ambang batas yang memisahkannya. Cara lain untuk memilih T adalah dengan trial and error, memilih nilai ambang batas yang berbeda hingga ada yang ditemukan sehingga menghasilkan hasil yang baik. b) Thresholding lokal Metode thresholding global dapat gagal jika kontras latar belakang tidak merata. Thresholding akan dikatakan sebagai thresholding lokal jika nilai T (nilai ambang) bergantung pada nilai gray level f(x,y) dan nilai properti lokal citra p(x,y). Dalam thresholding lokal citra akan dibagi ke dalam bagian yang lebih kecil kecil dan proses pengambangan akan dilakukan secara lokal. Kelebihan yang dimiliki thresholding adalah secara subyektif, citra yang dihasilkan lebih bagus. Thresholding lokal dapat ditunjukkan bahwa proses ini adalah setara dengan thresholding f (x, y) dengan fungsi lokal yang bervariasi T ambang (x, y): (6) Dimana (7) 27 F 0 (x, y) adalah membuka morfologi dari f, dan T 0 konstan adalah hasil dari fungsi graythresh digunakan pada F 0 (Rafael, 2004 : 404-407 Bentuk teknik thresholding ada 2 macam, yaitu: Uniform Thresholding dan Adaptive Thresholding. Didalam uniform thresholding metode yang digunakan adalah dengan menentukan batas level, yang akan dipergunakan untuk menentukan warna piksel. Piksel yang levelnya lebih dari threshold level akan diubah menjadi putih, dan sebaliknya piksel yang levelnya ada di bawah dari level threshold akan diubah menjadi hitam. Seperti yang ditampilkan pada gambar sebelah kiri berikut merupakan gambar original dan gambar sebelah kanan adalah hasil thresholding. Gambar 2.6 image original dan hasil thresholding Gambar 2.8 menunjukkan citra hasil thresholding dengan nilai threshold sebesar 128 dimana piksel-piksel yang memiliki nilai 128 ke atas diubah menjadi putih dan piksel yang bernilai 128 ke bawah diubah menjadi hitam (Indra, 2008). 28 a) Double Thresholding Jika dipilih dua nilai T 1 dan T 2 dan digunakan untuk operasi pengambangan atau thresholding, maka operasi double thresholding diimplementasikan dengan cara : y = (8) dengan x adalah nilai aras keabuan dari citra input (asli), T 1 dan T 2 adalah nilai ambang yang dipilih, dan y adalah keluaran. Aplikasi thresholding antara lain: 1. Menghilangkan detail yang tidak dikehendaki pada citra sehingga dapat berfokus pada bagian yang dikehendaki saja. Hal ini tampak pada contoh thresholding pada citra. Informasi yang didapat dari citra hasil thresholding dapat digunakan untuk mengetahui ukuran, bentuk, atau jumlah objek. 2. Memunculkan detail yang sebelumnya tersembunyi. Jika dinyatakan dalam citra aras keabuan 8 bit maka mata manusia tidak mampu membedakan perbedaan yang kecil pada nilai tingkat keabuan citra, namun setelah dilakukan thresholding maka tampak detail yang sebelumnya tersembunyi. 3. Menghilangkan latar belakang yang bervariasi pada teks atau gambar. b) Adaptive Thresholding Pada beberapa kasus tidak dimungkinkan untuk memilih satu atau dua nilai ambang yang dapat mengisolasi objek secara keseluruhan. Hal ini misalnya terjadi jika baik objek maupun latar belakang cita sangat bervariasi (Indah, 2009 : 6-9). 29 2.5 Metode Otsu Metode Otsu merupakan suatu metode dalam segmentasi yang menghitung nilai ambang T secara otomatis berdasarkan citra masukan. Pendekatan yang digunakan oleh metode Otsu adalah dengan melakukan analisis diskriminan yaitu menentukan suatu variabel yang dapat membedakan antara dua atau lebih kelompok yang muncul secara alami. Analisis Diskriminan akan memaksimumkan variabel tersebut agar dapat memisahkan objek dengan latar belakang. Untuk memilih nilai ambang batas secara otomatis, Gonzalez dan Woods (2002) menggambarkan prosedur iterasi sebagai berikut: 1. Dipilih dahulu perkiraan awal untuk T. (disarankan estimasi awal adalah titik tengah antara nilai-nilai intensitas minimum dan maksimum citra). 2. Bagi citra menggunakan T. Ini akan menghasilkan dua kelompok piksel G1, yang terdiri dari semua piksel dengan nilai-nilai intensitas T, dan G2, yang terdiri dari piksel dengan nilai-nilai <T. 3. Menghitung nilai rata-rata intensitas 1 dan 2 untuk piksel di daerah G1 dan G2. 4. Menghitung nilai ambang baru dengan persamaan : ( ) (9) 5. Ulangi langkah 2 hingga 4 sampai perbedaan T di iterasi berturut-turut lebih kecil dari T 0 parameter standar. Sebuah fungsi yang menghitung graythresh disebut batas menggunakan metode Otsu (Otsu, 1979). Formulasi dari metode otsu adalah sebagai berikut: 30 Nilai ambang yang akan dicari dari suatu citra gray level dinyatakan dengan k. Nilai k berkisar antara 1 sampai dengan L, dengan nilai L = 255. Sedangkan jumlah piksel pada tingkat keabuan i dilambangkan oleh n i dan jumlah piksel pada citra oleh N = n 1 + n 2 +.+ n L . Untuk menguji perumusan metode berdasarkan histogram, dengan meninjau histogram yang dinormalisasi sebagai fungsi kepadatan probabilitas diskrit. Probabilitas setiap piksel pada level ke i dinyatakan dengan : , (10) Kemudian pada bagian piksel dibagi menjadi dua kelas C 0 dan C 1 (latar belakang dan objek, atau sebaliknya) dengan nilai ambang k; C 0 menunjukkan level piksel dengan nilai [1,,k], dan C 1 menunjukkan level piksel dengan nilai [k + 1,.,L]. Nilai momen kumulatif ke-nol, momen kumulatif ke-satu, dan nilai rata-rata berturut-turut dapat dinyatakan sebagai berikut : Dan dimana 31 dan Dari hasilnya dan urutan momen pertama komulatif dari histogram sampai level ke-k masing-masing, dengan; Ini adalah total rata-rata level dari citra aslinya. Untuk dapat dengan mudah memverifikasi hubungan, berikut ini untuk setiap pilihan dari k: (18) Sedangkan varians kelas diberikan oleh (19) (20) Untuk menguji/evaluasi dari nilai ambang (pada level k), digunakan langkah-langkah dengan analisis diskriminan (Fukunage, 1972 : 260-267): dimana (22) 32 = (23) (Karena (18)) dan (24) Ini adalah varians dalam kelas, varians antara kelas, dan total varians dari tingkat masing-masing. Kemudian masalah kita berkurang dari sini jelas dapat diketahui bahwa pengambangan akan dipisahkan di level abu-abu dan kontras, sehingga nilai ambang yang terbaik akan memberikan pemisahan terbaik pada intensitas abu-abu. Analisis diskriminan akan memaksimalkan nilai , k, dan , yang masing- masing akan berpengaruh pada k, akan tetapi untuk ekuivalent pada k = + 1 dan = / + 1), karena keadaan berpengaruh terhadap hubungan dasar ; Hal ini dapat dilihat bahwa adalah fungsi batas nilai dari nilai ambang k, tetapi adalah nilai mutlak dari k. Hal ini juga menjelaskan bahwa didasarkan pada urutan kedua statistik (varians kelas), sedangkan didasarkan pada statistik orde pertama (yang berarti kelas). Oleh karena itu, paling sederhana adalah mengukur hubungan dengan k. Jadi dengan mengadopsi /mengambil sebagai meas untuk mengevaluasi/menguji dengan sempurna dari nilai ambang level k. Nilai k* merupakan batas optimal yang akan memaksimalkan , atau yang dipilih ekuivalennya dari akan memaksimalkan dalam pencarian sekuensial 33 dengan menggunakan jumlah komulatif sederhana (15) dan (16), atau secara eksplisit menggunakan (11) - (14): Nilai ambang k dapat ditentukan dengan memaksimumkan persamaan : Dari persamaan tersebut, maka kisaran k maksimum dapat dicari dengan dibatasi untuk; S * = Ini dapat disebut dengan jarak efektif histogram level abu-abu. Dari persamaan (14), ukuran (atau ) dapat mengambil nilai minimum nol untuk k seperti S - S* = hasilnya yaitu, membuat semua piksel baik C 1 atau C 0 (yang nilainya tentu saja tidak dapat diperhatikan dan akan mengambil nilai positif serta dibatasi untuk k S * . Pada teknik thresholding, sebenarnya masih ada lagi teknik lebih lanjut, teknik ini dikenal dengan optimal thresholding. Teknik ini digunakan untuk memisahkan suatu objek gambar dengan latar belakangnya. Teknik ini dapat melihat perbedaan intensitas yang terdapat pada latar belakang dan objek sehingga dapat menentukan nilai sebuah threshold yang sesuai. 34 Gambar 2.7 contoh pengambilan nilai thresholding dengan metode Otsu Metode ini adalah metode yang paling populer diantara semua metode thresholding yang ada. Teknik Otsu ini memaksimalkan kecocokan dari sebuah threshold sehingga dapat memisahkan objek dengan latar belakangnya. Semua didapatkan dengan memilih nilai threshold yang memberikan pembagian kelas yang terbaik untuk semua piksel yang ada di dalam image. Dasarnya adalah dengan menggunakan histogram yang telah dinormalisasi dimana jumlah tiap poin pada setiap level dibagi dengan jumlah total poin pada image (Indra, 2008). Gambar 2.8 contoh hasil thresholding dengan metode Otsu pada tulang rahang 35 BAB III METODOLOGI PENELITIAN 3.1 Tempat dan Waktu Penelitian Penelitian ini dilaksanakan mulai bulan Agustus 2009 sampai dengan bulan Maret 2010. Sedangkan lokasi penelitian bertempat di Laboratorium Fisika Komputasi Universitas Islam Negeri (UIN) Maulana Malik Ibrahim Malang. 3.2 Bahan dan Alat Data yang digunakan adalah citra sekunder dari sampel foto x-ray untuk mendapatkan citra tulang rahang sebanyak 19 sampel. Penelitian ini menggunakan seperangkat PC dan bahasa pemrograman Delphi 7.0 untuk membuat aplikasi pengenalan. 3.3 Sampel Penelitian Sampel yang akan digunakan dalam penelitian ini adalah hasil pemeriksaan radiologi berupa citra x-ray tulang rahang dari 19 orang wanita menopause. Selanjutnya 19 citra x-ray tulang rahang tersebut kemudian diukur nilai bone mineral, density (BMD) atau tingkat osteoporosisnya dengan menggunakan DXA yang menghasilkan 8 tulang normal dan 11 tulang osteoporosis. Dari citra x-ray tersebut bagian yang akan diteliti yaitu bagian trabekula pada citra x-ray tulang rahang, sehingga citra tersebut dilakukan 35 36 pemotongan dengan ukuran 100 x 50. Serta citra yang akan dikenali dalam aplikasi adalah dalam bentuk file bitmap. 3.4 Tahapan Implementasi Tahapan implementasi adalah langkah-langkah yang digunakan untuk pembuatan aplikasi deteksi osteoporosis dengan thresholding metode Otsu menggunakan Delphi 7.0 Skema tahapan implementasi dapat dilihat pada gambar 3.1, sedangkan flowchart program oleh Delphi dapat dilihat pada gambar 3.2 sampai 3.4. 3.4.1 Skema Kerja Agar penelitian dapat berjalan secara sistematis, maka diperlukan rancangan penelitian / langkah-langkah dalam penelitian. Adapun tahapan implementasi dalam penelitian sebagai berikut : Gambar 3.1 Blok diagram sistem pengenalan 37 3.4.2 Perancangan Perangkat Lunak Setelah semua citra x-ray diambil pada bagian trabekula pada citra x-ray tulang rahang dengan ukuran 100 x 50 serta dalam format bitmap, kemudian dilanjutkan ke tahap perancangan perangkat lunak yang didalamnya dilakukan beberapa proses, sebagai berikut: 1. Proses Ekualisasi Citra masukan yang sudah dalam citra gray scale dan dalam format bitmap maka dilanjutkan ke proses ekualisasi yang bertujuan untuk menajamkan bagian yang hitam (lembah) dan bagian yang putih (puncak) dari kontur tulang. Bagian lembah adalah bagian yang osteoporosis, sedangkan bagian puncak adalah bagian tulang yang masih sehat. Dalam proses ekualisasi ini akan menampilkan citra asli yang akan diekualisasi, kemudian citra asli tersebut dihitung lebar (w) dan tinggi (h) citra. Kemudian dengan intensitas citra gray scale (i) yang bernilai 0-255 maka dihitung cacah komulatif semua piksel keabuan (c i ) dari citra tersebut. Selanjutnya citra akan dihitung nilai ekualisasi dari citra dengan memanfaatkan nilai cacah komulatif semua piksel keabuan (c i ), yang mana dalam proses ini nilai intensitasnya di source code sudah menggunakan 255 sebagai hasil perhitungan da ri rumus 2 k -1 (k merupakan nilai bit yang mana disini adalah citra gray scale yaitu 8 sehingga dihasilkan nilai 255). Dari citra hasil ekualisasi, piksel-piksel citra belum meyebar merata sesuai dengan warna piksel sehingga perlu dilakukan proses untuk memeratakan piksel yang mana hasilnya akan lebih kelihatan dalan histogram citra tersebu. Berikut ini flowchart untuk proses ekualisasi : 38 Gambar 3.2 Proses Ekualisasi 2. Proses Otsu Apabila proses ekualisasi telah selesai langsung masuk ke proses Otsu yang bertujuan untuk mencari nilai threshold (ambang) yang tepat agar dapat memisahkan manakah bagian yang cenderung hitam (osteoporosis) dalam suatu 39 tulang dan manakah bagian yang cenderung terang / putih (sehat) dalam tulang yang sama. Proses otsu akan diawali dengan menghitung luas citra yang diuji (jpixtot). Kemudian proses akan dilanjutkan untuk menghitung mean/nilai rata- rata dari warna piksel (muT). Dalam proses ini nantinya akan menghitung nilai piksel setiap baris sampai setinggi citra, yang mana proses ini dimulai dari piksel awal sampai teerakhir serta nilai yang didapatkan akan diakumulasikan. Selanjutnya juga akan dihitung nilai pikselnya untuk setiap kolom sampai selebar citra tersebut dan juga serta nilai yang didapatkan akan diakumulasikan. Dari proses ini akan didapatkan nilai ambang/posisi otsunya. Berikut ini flowchart untuk proses otsu yang dilakukan : 40 Gambar 3.3 Proses Otsu 41 3. Proses Tresholding Proses Tresholding adalah implementasi lanjutan dari Otsu dengan tujuan untuk mengekskusi citra sesuai dengan nilai ambangnya. Walaupun sebagai implementasi lanjutan otsu, proses ini akan tetap menghitung nilai keabuan untuk setiap baris sampai setinggi citra dan setiap kolom sampai selebar dari citra hasil otsu. Dari sini, maka akan didapatkan nilai gray dari citra yang diuji sehingga citra langsung diekskusi berdasarkan nilai gray dan nilai ambang dari citra yang diujikan. Dan hasil yang dihasilkan yaitu apabila nilai piksel-piksel (gray) citra yang di bawah ambang akan dieksekusi menjadi bernilai 0 (hitam) dan piksel - piksel citra yang diatas ambang akan dieksekusi menjadi bernilai 255 (putih). Hasil akhir yang didapatkan dalam besarnya piksel dari warna hitam atau putih. Dan berikut ini flowchart untuk proses thresholding yang dilakukan : 42 Gambar 3.4 Proses Tresholding Kemudian dari hasil proses thresholding tersebut dapat dihitung berapa perbandingan jumlah piksel putih dan jumlah piksel hitam. Jumlah kedua piksel tersebut diperbandingkan dalam aplikasi dengan rumus : Perbandingan = Piksel Putih/(Piksel Putih + Piksel Hitam) x 100% Setelah diketahui prosentase piksel dari warna putih (tulang normal), maka hasil yang didapatkan kemudian dikelompokkan ke dalam tulang normal dan 43 tulang osteoporosis dengan acuan hasil DXA yang telah dilakukan sebelumnya. Kemudian dicari nilai batas bawah dari tulang normal yang selanjutnya akan dijadikan sebagai SETUP untuk batas minimal prosentase dari tulang normal. Apabila prosentase warna putih lebih besar dari nilai setupnya, maka akan dikenali sebagai tulang normal. Dan jika prosentase warna putih lebih kecil dari nilai setupnya, maka akan dikenali sebagai tulang osteoporosis. 44 BAB IV HASIL DAN PEMBAHASAN Dalam bab ini membahas mengenai hasil penelitian, tahapan implementasi dan hasil uji coba program yang telah dirancang dan dibuat serta pembahasan terhadap hasil yang telah didapatkan. Uji coba dilakukan untuk mengetahui apakah program dapat berjalan sebagaimana mestinya dengan lingkungan uji coba yang telah ditentukan sesuai dengan skenario uji coba. 4.1 Hasil Penelitian 4.1.1 Citra X-Ray Tulang Rahang Citra X-Ray tulang rahang adalah citra yang diperoleh dari alat atau pesawat X-Ray. Dari citra yang didapatkan yang mana kualitas citranya sangat bergantung kualitas dari alat X-Ray, meliputi tegangan tinggi (kV), arus tabung (mA) dan waktu paparan (s). Dari hasil foto panoramic (tulang rahang) dengan menggunakan spesifikasi alat PANORAMIC VATECH PaX-150C didapatkan contoh citra sebagai berikut : Gambar 4.1 Citra x-ray tulang rahang 44 45 Dalam penelitian ini dengan analisis thresholding metode Otsu akan digunakan untuk mendeteksi osteoporosis. Maka dari objek citra x-ray tersebut diambil objek yang digunakan sampel, yaitu dipilih bagian trabekula dengan ukuran 100 x 50. Sehingga diperoleh hasil seperti berikut: Gambar 4.2 Objek citra yang digunakan untuk analisa dengan thresholding metode Otsu 4.1.2 Analisis Ekualisasi Setelah citra masukan di-input maka akan diproses secara ekualisasi. Dalam proses ekualisasi ini citra akan lebih diperlihatkan mana bagian yang hitam (lembah) dan mana bagian yang putih (puncak) dari kontur tulang. Bagian lembah adalah bagian yang osteoporosis, sedangkan bagian puncak adalah bagian tulang yang masih sehat. Untuk listing program untuk ekualisasi data sebagai berikut: w := Image6.Picture.Width; h := Image6.Picture.Height; cKum[0] := nilai pixel ke 0; for i := 1 to 255 do begin 46 cKum[i] := cKum[i-1]+nilai pixel ke i; end; for i := 0 to 255 do begin Ko[i] := Round(255*cKum[i]/(w*h)); end; for i:= 0 to h-1 do begin PC := Image6.Picture.BitMap.ScanLine[i]; PH := Image5.Picture.BitMap.ScanLine[i]; for j:= 0 to w-1 do begin PH[3*j] := Bo[PC[3*j]]; PH[3*j+1] := Go[PC[3*j+1]]; PH[3*j+2] := Ro[PC[3*j+2]]; end; end; Dengan menggunakan Delphi versi 7.0, maka dari proses ekualisasi didapatkan hasil citra sebagai berikut: Citra Asli Tulang Rahang Status Keterangan Citra Hasil DXA Ekualisasi aa1 Normal aa2 Osteoporosis aa3 Osteoporosis aa4 Osteoporosis aa5 Osteoporosis aa6 Osteoporosis 47 aa7 Normal aa8 Osteoporosis aa9 Osteoporosis aa10 Normal aa11 Normal aa12 Normal aa13 Osteoporosis aa14 Osteoporosis aa15 Osteoporosis aa16 Osteoporosis aa17 Normal aa18 Normal aa19 Normal Tabel 4.1 Citra Hasil Ekualisasi Di dalam proses ekualisasi akan menguatkan piksel-piksel yang dominan dalam citra tersebut dan melemahkan piksel-piksel yang tidak dominan. Sehingga proses ekualisasi akan membutuhkan histogram citra grayscale dari citra asli. 48 Setiap kode warna dalam setiap piksel memiliki nilai dalam histogram citra. Nilai tersebut yang digunakan sebagai nilai pengganti dalam setiap piksel citra tersebut. Hasilnya image hasil ekualisasi akan tampil lebih jelas bagian yang gelap dan bagian yang terang. Proses ini penting jika tujuan pengolahan citra adalah hendak membedakan bagian yang bersifat cekung (lembah/tulang yang osteoporosis) serta bagian yang cembung (puncak/tulang yang normal). 4.1.3 Analisis Proses Otsu Apabila proses ekualisasi sudah selesai yang mana citra akan lebih kelihatan bagian yang putih dan hitam, maka akan dilanjutkan pada proses Otsu. Pada proses ini bertujuan untuk mencari nilai threshold (ambang) yang tepat untuk memisahkan manakah bagian yang cenderung hitam (osteoporosis) dalam suatu tulang dan manakah bagian yang cenderung terang / putih (sehat) dalam tulang yang sama. Untuk listing program untuk proses Otsu sebagai berikut: jpixtot := image1.picture.Width*image1.picture.Height; sigmamax := 0; muT := 0; for i := 0 to l-1 do begin pt := dgray[i]/jpixtot; muT := muT + i*pt; end; for t:= 0 to l-1 do begin omega1t := 0; for i := 0 to t do omega1t := omega1t + dgray[i]/jpixtot; omega2t := 0; 49 for i := t+1 to l-1 do omega2t := omega2t + dgray[i]/jpixtot; mu1t := 0; for i := 0 to t do begin pt := dgray[i]/jpixtot; mu1t := mu1t + i*pt/omega1t; end; mu2t := 0; for i := t+1 to l-1 do begin pt := dgray[i]/jpixtot; mu2t := mu2t + i*pt/omega2t; end; sigma2b := omega1t*sqr(mu1t-muT)+omega2t*sqr(mu2t-muT); if sigma2b > sigmamax then begin sigmamax := sigma2b; totsu := t; end; end; otsu := tposisi[totsu]; Di dalam proses Otsu ini menghasilkan nilai ambang (threshold) sehingga citra akan dipisahkan antara warna putih (bagian tulang normal/sehat) dan warna hitam (bagian tulang yang osteoporosis). Citra yang dihasilkan dari proses otsu akan jauh lebih jelas diibandingkan citra hasil ekualisasi. Berikut ini citra hasil ekualisasi yang sudah melalui proses Otsu: 50 Citra Asli Tulang Rahang Status Keterangan Citra Hasil DXA Ekualisasi Otsu aa1 Normal aa2 Osteoporosis aa3 Osteoporosis aa4 Osteoporosis aa5 Osteoporosis aa6 Osteoporosis aa7 Normal aa8 Osteoporosis aa9 Osteoporosis aa10 Normal aa11 Normal aa12 Normal aa13 Osteoporosis aa14 Osteoporosis aa15 Osteoporosis 51 aa16 Osteoporosis aa17 Normal aa18 Normal aa19 Normal Tabel 4.2 Citra hasil Otsu 4.1.4 Analisis Thresholding Proses terakhir adalah proses tresholding yang merupakan implementasi lanjutan dari Otsu. Pada bagian ini piksel - piksel citra yang di bawah nilai ambang akan dieksekusi menjadi bernilai 0 (hitam) dan piksel - piksel citra yang di atas nilai ambang akan dieksekusi menjadi bernilai 255 (putih). Hasil yang didapatkan adalah citra otsu black white. Listing program untuk thresholding sebagai berikut for i:= 0 to Image1.Picture.Height-1 do begin PC := Image5.Picture.Bitmap.ScanLine[i]; PH := Image8.Picture.Bitmap.ScanLine[i]; for j:= 0 to Image1.Picture.Width-1 do begin gray := Round((PC[3*j]+PC[3*j+1]+PC[3*j+2])/3); if (gray < Ambang) then begin PH[3*j] := 0; PH[3*j+1] := 0; PH[3*j+2] := 0; inc(hitam); end else 52 begin PH[3*j] := 255; PH[3*j+1] := 255; PH[3*j+2] := 255; inc(putih); end end; Setelah dari proses thresholding maka dapat dihitung berapa jumlah piksel putih dan jumlah piksel hitam. Kemudian dari jumlah kedua piksel tersebut diperbandingkan dalam aplikasi dengan rumus : Perbandingan = piksel putih/(piksel putih + piksel hitam) x 100% Dan disini user dapat menentukan nilai ambang batas prosentase suatu citra tulang adalah normal atau osteoporosis. Jika nilai perbandingan di atas lebih dari nilai ambang batas yang ditentukan maka tulang tersebut adalah tulang normal, dan jika kurang dari nilai ambang batas maka tulang tersebut cenderung osteoporosis. Listing program untuk setup sebagai berikut : porsiputih:=putih/(putih+hitam)*100; if porsiputih>=strtofloat(fsetup.dbedit1.text) then label11.Caption:='Normal (putih : '+floattostr(porsiputih)+'%)' else
label11.Caption:='Osteoporosis(putih:'+floattostr(porsiputih)+'%); Dari proses thresholding ini, didapatkan jumlah piksel hitam dan putih yang diikuti dengan prosentase warna putih disertai status tulang yang diuji sebagai berikut: 53 Citra Jumlah piksel hitam Jumlah piksel putih Prosentase Warna Putih (%) Status aa1 2327 2673 53,46 Normal aa2 2359 2641 52,82 Osteoporosis aa3 2390 2610 52,2 Osteoporosis aa4 2390 2610 52,2 Osteoporosis aa5 2359 2641 52,82 Osteoporosis aa6 2393 2607 52,14 Osteoporosis aa7 2356 2644 52,88 Normal aa8 2406 2594 51,88 Osteoporosis aa9 2524 2476 49,52 Osteoporosis aa10 2324 2676 53,52 Normal aa11 2332 2668 53,36 Normal aa12 2433 2567 51,34 Osteoporosis aa13 2384 2616 52,32 Osteoporosis aa14 2427 2573 51,46 Osteoporosis aa15 2466 2534 50,68 Osteoporosis aa16 2435 2565 51,3 Osteoporosis aa17 2299 2701 54,02 Normal aa18 2430 2570 51,4 Normal aa19 2306 2694 53,88 Osteoporosis Tabel 4.3 Hasil Thresholding 4.1.5 Tahapan Implementasi Tahapan implementasi menjelaskan bagaimana penggunaan aplikasi untuk mendeteksi osteoporosis. Untuk dapat menggunakan aplikasi ini membutuhkan citra hasil rontgen tulang rahang dalam bentuk image bitmap 24 bit dan berupa citra grayscale. Jika citra - citra tersebut sudah tersedia maka citra tersebut siap diolah oleh aplikasi. Aplikasi diinstal dalam komputer dengan sistem operasi minimal Windows XP. Urutan proses penggunaan aplikasi adalah sebagai berikut. 1. Menampilkan Splash Screen Ketika Pertama Kali Menjalankan Aplikasi Gambar 4.3 Splash Screen 54 Splash Screen berfungsi sebagai informasi singkat tentang aplikasi dan akan tampil selama kurang lebih tiga detik. 2. Menampilkan Form Utama Aplikasi Kemudian muncul halaman utama dari aplikasi sebagai berikut : Gambar 4.4 Form Utama Aplikasi Halaman utama aplikasi masih kosong, karena belum digunakan untuk menguji citra tulang rahang. Dalam form utama aplikasi ini terdapat beberapa komponen, sebagai berikut: 1. Komponen Buka File Komponen ini berfungsi untuk membuka citra - citra yang akan diuji. 2. Komponen Pengolahan Citra Di dalam komponen pengolahan citra mempunyai beberapa bagian yang pada inti bertujuan untuk menampilkan hasil dari proses pengolahan citra yang 55 sudah diuji sehingga hasil yang didapatkan mudah untuk dianalisa. Bagian bagian tersebut adalah sebagai berikut ini : a) Citra asli, hasil ekualisasi dan proses otsu Pada bagian ini akan menampilkan citra asli dari citra tulang yang diuji serta kemudian diikuti oleh citra hasil dari analisa ekualisasi dan proses otsu. Citra yang ditampilkan juga disertai dengan histogram dari citra yang sudah diuji sebelumnya. b) Setup Apabila citra yang diuji telah diketahui jumlah pikselnya, dimana agar citra tersebut dapat dikenali apakah masuk ke dalam golongan tulang normal ataukah tulang osteoporosis maka dipergunakan SETUP. Penggunaan SETUP ini pada dasarnya untuk mengatur prosentase warna putih dan hitam sehingga citra yang diuji dapat diketahui keadaannya. c) Status citra Setelah citra berhasil diuji yang hasilnya sudah ditampilkan melalui histogram dan database maka untuk lebih dapat memudahkan mengetahui hasil dari pengujian citra, maka ditampilkan status dari citra yang diuji tersebut. Dalam statusnya, citra yang diuji akan dikenali dengan dua status, yaitu status sebagai tulang normal dan tulang osteoporosis. d) Database citra Sedangkan dalam bagian database citra tulang ini berfungsi untuk menampilkan jumlah piksel warna hitam dan putih dari citra yang diuji 56 sebelumnya serta data tulang tersebut dapat disimpan secara permanen dalam database sehingga dapat digunakan kembali. e) Simpan Setelah citra dibuka, citra selanjutnya akan dianalisa maka akan ditampilkan hasil yang didapatkan. Dari hasil yang sudah didapatkan, maka user dapat menyimpannya dalam database. Maka disinilah bagian ini berfungi. f) Navigasi Bagian navigasi berfungsi untuk menjalankan database dari citra tulang tangan yang sudah diuji sebelumnya serta sudah disimpan dalam database tersebut. 3. Keluar Setelah semua data citra selesai diuji dan hasil yang didapatkan juga sudah disimpan di database, maka untuk keluar dari aplikasi user tinggal memilih komponen keluar. 3. Pengujian Aplikasi Kemudian untuk menguji sebuah citra tulang maka langkah pertama adalah memilih tombol buka file. Setelah aplikasi ready akan meminta input file citra tulang yang berbentuk file image bitmap gray scale 24 bit tersebut. Seperti digambarkan sebagai berikut : 57 Gambar 4.5 Memilih Image Tulang Jika citra tulang telah dibuka maka akan ditampilkan citra tulang tersebut dalam kondisi sebenarnya. Untuk dapat menampilkan dalam kondisi diekualisasi dan setelah dikenai threshold otsu maka dipilih tombol analisa yang terdapat pada form utama aplikasi. Bagian bawah adalah hasil akhir threshold otsu sekaligus hasil pengujian tulang. Setiap proses pengujian terdapat tampilan grafik histogram citra. Histogram citra asli, citra hasil ekualisasi, dan citra otsu ditampilkan untuk memperjelas perbedaan masing-masing. Berikut tampilan proses pengujian citra tulang - tulang tersebut : 58 Gambar 4.6 Pengujian Tulang Dari hasil pengujian tulang pada gambar 4.6 menunjukkan bahwa tulang yang diuji merupakan tulang normal karena prosentase warna putih (berarti tulang tersebut sehat) adalah 52.869%. Untuk menentukan batas persentase tersebut digunakan form setup yang telah disediakan dalam aplikasi. Form setup tersebut adalah sebagai berikut : Gambar 4.7 Form Setup Aplikasi Dalam hal ini, penggunaan setup sebesar 52.869% mengacu dengan melihat hasil pengklasifikasian dari data hasil citra tersebut diteliti dengan DXA 59 dan jumlah prosentase warna putih dari citra dengan thresholding metode otsu. Berikut ini tabel hasil dengan setup 52.869% dan telah diklasifikasikan menurut hasil pemeriksanaan dengan DXA (alat untuk mengukur Bone Mineral Density) : Citra Prosentase Warna Putih (%) Hasil Dengan DXA Tulang Normal Tulang Osteoporosis aa1 53.46 aa2 52.82 aa3 52.2 aa4 52.2 aa5 52.82 aa6 52.14 aa7 52.88 aa8 51.88 aa9 49.52 aa10 53.52 aa11 53.36 aa12 51.34 aa13 52.32 aa14 51.46 aa15 50.68 aa16 51.3 aa17 54.02 aa18 51.4 aa19 53.88 Tabel 4.4 Prosentase Piksel Putih dan klasifikasi Osteoporosis Dengan Thresholding Metode Otsu Dan Hasil dengan DXA Dari hasil yang diperoleh, dapat dilihat dari prosentase warna putih citra yang diteliti menunjukkan bahwa tulang osteoporosis antara 49.52- 52.82% dan tulang normal 52.88% - 54.02%. Maka dari hasil tersebut dapat digunakan untuk menentukan batas antara tulang normal dengan osteoporosis dalam setup sebesar 52.869%. Yang artinya jika kadar warna putih dalam tulang tersebut lebih dari 52.869% akan dikenali sebagai tulang normal/sehat, sedangkan apabila citra 60 tersebut kadar warna putih dalam tulang tersebut di bawah 52.869% akan dikenali sebagai tulang osteoporosis. 4.2 Pembahasan Hasil Penelitian Citra hasil x-ray tulang merupakan hasil representasi dari keadaan tulang dengan pemeriksaan radiologi. Citra x-ray tulang merupakan citra skala keabuan yang dihasilkan dari paparan sinar-x terhadap tulang yang kemudian dipantulkan dan ditangkap oleh film. Hasil citra x-ray yang didapatkan sangat tergantung pada materi/bendanya. Daya tembus dari sinar-x berbeda-beda sesuai dengan materi/benda yang dilaluinya. Benda yang mudah ditembus oleh sinar-x memberi bayangan berwarna hitam (radiolusen), sedangkan benda yang sulit ditembus sinar-x memberi bayangan berwarna putih (radioopak). Diantara radiolusen dan radioopak terdapat bayangan perantara yaitu bayangan yang tidak terlalu hitam atau radiolusen sedang (moderately radiolucent) dan bayangan tidak terlalu putih atau radioopak sedang (moderately radio opaque). Diantara radiolusen sedang dan radioopak sedang terdapat bayangan keputih-putihan (intermediate) (Rasad, 2005). Dalam penelitian ini memanfaatkan citra hasil dari foto rontgen pada bagian tulang rahang. Tulang adalah organ yang sudah terbentuk sejak masih dalam kandungan dan kemudian berlangsung terus sampai dekade kedua dalam susunan yang teratur. Organ ini merupakan organ yang mendukung struktur tubuh, melindungi organ-organ internal serta memungkinkan pergerakan atau perpindahan karena sebagai tempat melekat otot-otot. 61 Dari sisi penting lain tentang informasi yang disebutkan dalam Al-Quran adalah tahap-tahap pembentukan manusia dalam rahim. Dalam konsep embriologi, Allah SWT berfirman berkenaan tahap-tahap penciptaan manusia dalam Surah Al-Muminuun : 14 : . !.1l> L.l 1l. !.1l> 1l-l -.`. !.1l> -..l !..Ls !..> .L-l !.>' . ..!: !1l> >, !,. < _.> _,1l.>' _ Arti : Kemudian air mani itu Kami jadikan segumpal darah, lalu segumpal darah itu Kami jadikan segumpal daging, dan segumpal daging itu Kami jadikan tulang belulang, lalu tulang belulang itu Kami bungkus dengan daging. kemudian Kami jadikan Dia makhluk yang (berbentuk) lain. Maka Maha sucilah Allah, Pencipta yang paling baik. Disebutkan dalam Surah Al-Muminuun ayat ke-14 menjelaskan proses penciptaan manusia mulai dari air mani sampai menjadi tulang. Tulang sebagai jaringan paling tangguh tubuh sehingga menopang aktifitas tubuh merupakan salah satu keajaiban penciptaan Allah SWT. Tulang yang terbentuk mulai sejak bayi dalam kandungan dan kemudian berlangsung terus-menerus sampai dekade kedua dalam susunan teratur. Ketika masih di dalam rahim, mula-mula tulang terbentuk selanjutnya terbentuklah otot yang membungkus tulang-tulang. Sebagaimana diuraikan dalam ayat ke-14 surat Al-Muminuun, jaringan tulang rawan pada embrio di rahim ibu mulanya mengeras dan menjadi tulang keras. Lalu tulang-tulang ini dibungkus oleh sel-sel otot. Allah menjelaskan perkembangan ini dalam ayat:..dan segumpal daging itu Kami jadikan tulang belulang, lalu tulang belulang itu Kami bungkus dengan daging. Sampai saat ini 62 para ahli embriologi beranggapan bahwa tulang dan otot dalam embrio terbentuk secara bersamaan. Karena, sejak lama banyak orang yang menyatakan bahwa ayat ini bertentangan dengan ilmu teknologi. Dalam penelitian ini, untuk pengambilan sampel/bahan dengan memanfaatkan sinar-x. Sinar-x adalah sinar yang terbentuk dari radiasi gelombang elektromagnetik yang mempunyai panjang gelombang 10 -7 - 10 -8 cm dan frekuensi sekitar 1016 -1021 Hz. Sinar-x sering digunakan di berbagai bidang seperti bidang kedokteran, fisika, kimia, biologi. Dalam bidang medis, sinar-x umumnya digunakan dalam diagnosis gambar medikal. Al-Quran dalam surat An-Nuur : 35 memberikan penjelasan/gambaran ide tentang sinar sebagai berikut : < '. ...l _ ` _.. .:. :>:. !, _!,`.. _!,`..l _ >l>` >l>l !.l ' _: .`, _. :>: .,. .., ,. ,,`s :l>, !., ',_.`, l `l `.... "!. . _ls . _. < .:`.l _. ',!: . < _... _!.ll < _>, ,`_: ',l. __ Artinya : Allah (Pemberi) cahaya (kepada) langit dan bumi. perumpamaan cahaya Allah, adalah seperti sebuah lubang yang tak tembus, yang di dalamnya ada pelita besar. pelita itu di dalam kaca (dan) kaca itu seakan-akan bintang (yang bercahaya) seperti mutiara, yang dinyalakan dengan minyak dari pohon yang berkahnya, (yaitu) pohon zaitun yang tumbuh tidak di sebelah timur (sesuatu) dan tidak pula di sebelah barat(nya), yang minyaknya (saja) Hampir-hampir menerangi, walaupun tidak disentuh api. cahaya di atas cahaya (berlapis- lapis), Allah membimbing kepada cahaya-Nya siapa yang Dia kehendaki, dan Allah memperbuat perumpamaan-perumpamaan bagi manusia, dan Allah Maha mengetahui segala sesuatu. 63 Dari surat an-Nuur tersebut di atas menggambarkan cahaya Allah mempunyai kekuatan yang luar biasa sehingga tetap nampak/dapat menyinari meskipun berada di dalam sebuah benda/tempat yang tak tembus pandang/tak berlubang. Dari penafsiran ini dan dikaitkan dengan perkembangan teknologi, maka sifat cahaya Allah tersebut sama dengan sifat sinar-x. Dimana sifat sinar-x yaitu dapat menembus benda-benda lunak seperti daging dan kulit tetapi tidak dapat menembus benda-benda keras seperti tulang, gigi dan logam. Selain itu sinar-X juga mempunyai sifat yang dapat menggelapkan film sehingga daerah dengan kerapatan lebih rendah akan terlihat lebih gelap pada negatif film daripada daerah dengan kerapatan tinggi. Maka dengan sifat dapat diartikan bahwa lubang atau retak muncul sebagai daerah yang lebih gelap, sedangkan inklusi tembaga pada paduan aluminium muncul lebih terang. Dalam hal ini, lubang pada tulang dikenali dikenali sebagai gambaran tulang yang terkena osteoporosis. Pada penelitian ini sampelnya dengan menggunakan citra x-ray tulang rahang hasil dari pemeriksaan radiologi sebanyak 19 sampel. Kemudian dari citra x-ray tulang rahang tersebut diambil (dilakukan pemotongan/dicrop) pada bagian yang diteliti, yaitu bagian trabekula serta tidak sampai mengenai gigi dari citra-X pada tulang rahang dengan ukuran 100 x 50 dan dalam format bitmap (BMP). Sedangkan untuk proses implementasinya yaitu dengan melalui beberapa proses. Setelah citra dikenali dalam bentuk aslinya yaitu citra gray scale maka selanjutnya citra akan diekualisasi. Dalam proses ekualisasi ini, citra yang dihasilkan yaitu citra yang lebih tajam/kelihatan bagian yang putih dan hitam. 64 Dimana dalam proses ekualisasi, dari citra yang diuji dihitung nilai keabuan untuk setiap keabuan input-nya. Setelah itu, maka nilai keabuannya akan dihitung setiap baris sampai setinggi citra dan setiap kolom sampai selebar citra, sehingga setiap titik dari nilai keabuannya diketahui. Agar citra hasil ekualisasi merata, maka dilakukan proses pemerataan yang mana bertujuan untuk lebih meratakan histogram ke seluruh jangkuan keabuan agar lebih sempurna. Selanjutnya, dari proses ekualisasi tersebut dilakukan ke proses otsu yang bertujuan untuk mencari nilai threshold (ambang) yang tepat agar dapat memisahkan bagian manakah yang cenderung hitam (osteoporosis) dalam suatu tulang dan bagian manakah yang cenderung terang / putih (sehat) dalam citra tulang yang sama. Proses otsu diawali dengan menghitung luas citra yang diuji (jpixtot). Kemudian proses akan dilanjutkan untuk menghitung mean/nilai rata- rata dari warna piksel (muT). Dalam proses ini nantinya akan menghitung nilai piksel setiap baris sampai setinggi citra, yang mana proses ini dimulai dari piksel awal sampai terakhir serta nilai yang didapatkan akan diakumulasikan. Selanjutnya juga akan dihitung nilai pikselnya untuk setiap kolom sampai selebar citra tersebut dan juga serta nilai yang didapatkan akan diakumulasikan. Dari proses ini akan didapatkan nilai ambang/posisi otsunya. Maka dari nilai ambang/posisi otsu ini yang digunakan untuk proses ekskusi dalam thresholding. Dari proses otsu ini langsung dilanjutkan dalam proses thresholding. Dalam proses thresholding ini sebagai lanjutan dari proses otsu. Yang mana proses thresholding akan mengeksusi citra hasil otsu berdasarkan nilai ambangnya (threshold). Dimana dari citra yang diuji apabila nilai pikselnya di bawah nilai 65 ambang maka akan diekskusi menjadi nilai 0 (hitam) dan apabila nilai pikselnya di atas nilai ambang diekskusi menjadi nili 255 (putih). Walupun sebagai proses lanjutan dari proses otsu, dalam proses thresholding ini tetap dihitung nilai keabuan dari citra yang diuji. Dimana nilai keabuan dihitung untuk setiap baris sampai setinggi citra dan setiap kolom sampai selebar citra tersebut. Setelah nilai keabuan diketahui, maka dihitung nilai piksel-piksel citra tersebut dan selanjutnya citra akan mengalami ekskusi. Dalam ekskusi ini, nilai piksel-piksel citra dibandingkan dengan nilai ambangnya (threshold) yang telah diketahui/diperoleh dari proses otsu. Dari perbandingan ini maka akan menghasilkan dua keadaan. Apabila nilai piksel-piksel dari citra lebih kecil dari nilai ambang maka diekskusi menjadi 0 (hitam). Sedangkan bilamana nilai piksel-piksel dari citra lebih besar dari nilai ambang maka diekskusi menjadi 255 (putih). Dalam hal ini, warna hitam merupakan warna dari citra yang dikenali sebagai citra yang osteoporosis. Sedangkan warna putih adalah warna dari citra yang dikenali sebagai citra yang sehat/normal. Setelah semua proses selesai, maka diperoleh hasil yang ditunjukkan pada tabel 4.5 di bawah ini yang merupakan data jumlah piksel warna putih dan hitam serta prosentase warna putih dari setiap citra: Citra Jumlah piksel hitam Jumlah piksel putih Prosentase Warna Putih (%) aa1 2327 2673 53.46 aa2 2359 2641 52.82 aa3 2390 2610 52.2 aa4 2390 2610 52.2 aa5 2359 2641 52.82 aa6 2393 2607 52.14 aa7 2356 2644 52.88 aa8 2406 2594 51.88 66 aa9 2524 2476 49.52 aa10 2324 2676 53.52 aa11 2332 2668 53.36 aa12 2433 2567 51.34 aa13 2384 2616 52.32 aa14 2427 2573 51.46 aa15 2466 2534 50.68 aa16 2435 2565 51.3 aa17 2299 2701 54.02 aa18 2430 2570 51.4 aa19 2306 2694 53.88 Tabel 4.5 Jumlah piksel warna putih dan hitam prosentase warna putih dari setiap citra Setelah diperoleh besar prosentase warna putih dari setiap citra maka selanjutnya hasil prosentase tersebut diklasifikasikan ke dalam tulang normal dan osteoporosis dengan sumber dari data citra yang telah diteliti dengan DXA. Berikut ini hasil prosentase warna putih dalam citra yang diperoleh sebagai berikut : 67 Citra Prosentase Warna Putih (%) Hasil DXA Hasil Thresholding Metode Otsu Nilai kebenaran Tulang Normal Tulang Osteoporosis Tulang Normal Tulang Osteoporosis aa1 53.46 Benar Terklasifikasi aa2 52.82 Benar Terklasifikasi aa3 52.2 Benar Terklasifikasi aa4 52.2 Benar Terklasifikasi aa5 52.82 Benar Terklasifikasi aa6 52.14 Benar Terklasifikasi aa7 52.88 Benar Terklasifikasi aa8 51.88 Benar Terklasifikasi aa9 49.52 Benar Terklasifikasi aa10 53.52 Benar Terklasifikasi aa11 53.36 Benar Terklasifikasi aa12 51.34 Salah Terklasifikasi aa13 52.32 Benar Terklasifikasi aa14 51.46 Benar Terklasifikasi aa15 50.68 Benar Terklasifikasi aa16 51.3 Benar Terklasifikasi aa17 54.02 Benar Terklasifikasi aa18 51.4 Benar Terklasifikasi aa19 53.88 Salah Terklasifikasi Tabel 4.6 Klasifikasi prosentase warna putih dari setiap citra 68 Dari data pengujian citra x-ray tulang rahang pada bagian trabekula di atas, maka tingkat akurasi yang diperoleh : = 89.47% Dalam akurasi, jumlah nilai kebenaran diambil dari hasil analisa yang sama dari hasil pengujian dengan thresholding metode otsu dibandingkan hasil DXA. Pada penelitian ini memanfaatkan citra x-ray tulang rahang (dental panoramic) dengan menggunakan thresholding metode otsu dapat mendeteksi tulang normal atau tulang osteoporosis. Setelah dilakukan beberapa proses, didapatkan nilai threshold (ambang) dari citra grayscale yang memiliki nilai putih dengan intesitas paling besar sampai hitam dengan intesitas paling rendah. Setelah diketahui nilai ambang dari citra gray scale maka dapat diketahui kondisi tulang tersebut, apabila diatas lebih dari ambang batas yang ditentukan maka tulang tersebut adalah tulang normal, dan jika kurang dari ambang batas maka tulang tersebut cenderung osteoporosis. Setelah dilakukan pengujian dengan thresholding metode otsu pada citra x-ray tulang rahang yang hasil klasifikasinya menunjukkan tingkat akurasi kebenaran sebesar 89.47%. Dari nilai tingkat akurasi yang telah didapatkan tersebut menunjukkan ketepatan yang cukup tinggi. Ini menunjukkan bahwa adanya perbedaan antara group osteoporosis dan normal, sehingga aplikasi yang dibuat dapat digunakan untuk mendeteksi osteoporosis. 69 Dalam penentuan prosentase warna piksel putih yang digunakan untuk patokan/standart agar tulang dapat dikenali sebagai tulang osteoporosis/normal mempunyai keterkaitannya dengan Al-Quran. Keterkaitan dijelaskan melalui firman Allah swt dalam surat Al-Qamar : 49: !.| _ ,`_: ..1l> .1, __ Arti : Sesungguhnya Kami menciptakan segala sesuatu menurut ukuran Dari surat al-Qamar ayat 49 dapat dijelaskan bahwa Allah swt menciptakan segala sesuatu di alam ini sesuai dengan ukurannya. Ukuran yang diberikan Allah swt adalah sesuai dengan kebutuhan manusia. Keterkaitan surat al-Qamar:49 dalam penelitian ini yaitu digunakannya nilai prosentase warna piksel putih sebesar 52.869%. Nilai/ukuran ini dikenali sebagai batas minimal prosentase warna piksel putih dari sebuah citra yang diujikan. Apabila prosentase warna piksel putihnya di bawah 52.869% maka dikenali sebagai tulang osteoporosis, sedangkan apabila prosentase warna piksel putihnya di atas 52.869% maka dikenali sebagai tulang normal. Hasil dari penelitian ini sejalan dengan penelitian terdahulu, dimana tulang rahang dapat digunakan untuk mendeteksi osteoporosis, bedanya penelitian terdahulu mengukur ketebalan bagian kortikal (Arifin, 2006, Taguchi et al, 1996). Penelitian ini diharapkan agar penulis dapat menjadi seorang ilmuwan yang ulul albab. Ditinjau dari pengertian lughawi, kata Albab adalah bentuk jamak dari kata lubb yang berarti saripati sesuatu. Sehingga ulul albab adalah orang- orang yang memiliki akal yang murni, yang tidak diselubungi oleh ide-ide yang menimbulkan kerancuan dalam berfikir. 70 Ulul albab adalah intelektual muslim yang bukan sekedar sarjana tetapi intelektual yang benar-benar merasa terpanggil untuk memperbaiki masyarakat dan bangsanya, menangkap aspirasi kemudian merumuskan dan menawarkan strategi serta alternatif pemecahannya. Tegasnya, intelektual bukan sekedar orang yang hanya dapat berbicara di mimbar, dan kerja di belakang meja, melainkan orang yang mempunyai konsep sekaligus mampu mengaplikasikannya. Dalam islam, seseorang intelektual bukan sekedar orang yang sanggup melahirkan gagasan normatif dan aplikasinya, tetapi sekaligus memahami ajaran dan sejarah agamanya. Artinya, intelektual muslim harus menguasai ajaran-ajaran agamanya. Ulul albab merupakan intelek yang membangun kepribadiannya dengan dzikir dalam keadaan dan situasi apapun, sehingga mampu memanfaatkan gejala, proses, dan sarana alamiah ini untuk kemaslahatan dan kebahagiaan seluruh umat. Sehingga orang yang berzikir dan berfikir (secara murni) atau merenungkan tentang fenomena alam raya, diharapkan dapat sampai kepada bukti yang sangat nyata tentang keesaan dan kekuasaan Allah swt. Kata ulul albab dalam Al-Qur'an terulang sebanyak 16 kali. Salah satu surah terkait adalah surah Az-Zumar: 9: _. > .. ,!., _,l .>!. !.! '.> :> `>, .- ., _ _> _.`. _ .-, _ .l-, !..| `.., l` .,l _ Arti : (apakah kamu Hai orang musyrik yang lebih beruntung) ataukah orang yang beribadat di waktu-waktu malam dengan sujud dan berdiri, sedang ia takut kepada (azab) akhirat dan mengharapkan rahmat Tuhannya? Katakanlah: "Adakah sama orang-orang yang mengetahui dengan orang-orang yang tidak mengetahui?" Sesungguhnya orang yang berakallah yang dapat menerima pelajaran. 71 Keterkaitan surah az-Zumar ayat 9 dengan penelitian ini adalah di mana manusia dituntut untuk bersyukur apa yang telah diciptakan Allah SWT di sekitar kita dengan tujuan mengharapkan rahmat-Nya. Contohnya adalah dalam penciptaan manusia seperti terbentuknya tulang mulai masih dalam kandungan. Tentunya hal ini tidak hanya sekedar diciptakan tanpa ada manfaatnya. Manusia hendaknya berfikir dengan manfaat yang dapat diambil dari tulang. Manfaat penting dari tulang salah satunya adalah tempat melekatnya otot-otot sehingga manusia dapat melakukan aktifitas sehari-hari. Untuk itulah kita sebagi orang yang berilmu hendaknya meneladari ciri-ciri sebagai seorang yang ulul albab dan menerapkannya untuk kemaslahatan umat. Salah satu karakteristik ulul albab adalah orang yang selalu sadar akan kehadiran Allah dalam segala situasi dan kondisi, baik saat bekerja maupun beristirahat, dan berusaha mengenali Allah dengan dzikir serta mengenali alam semesta dengan akal, sehingga sampai kepada bukti yang sangat nyata tentang keesaan dan kekuasaan Allah SWT. Firman dalam surat Ali 'Imron: 190-191): _| _ _l> ,...l _ .l.> _,l !.l ., _|` .,l _ _ `., < !.., :`- _ls ,`.`> `., _ _l> ,.,.l _ !.`, !. 1l> ..> L., ,..>,. !.1 ,.s !.l _ Arti : "Sesungguhnya dalam penciptaan langit dan bumi, dan silih bergantinya malam dan siang terdapat tanda-tanda bagi orang-orang yang berakal. (yaitu) orang- orang yang mengingat Allah sambil berdiri atau duduk atau dalam keadan berbaring dan mereka memikirkan tentang penciptaan langit dan bumi (seraya berkata): "Ya Tuhan Kami, Tiadalah Engkau menciptakan ini dengan sia-sia, Maha suci Engkau, Maka peliharalah Kami dari siksa neraka." 72 Dengan adanya penelitian ini, kita akan semakin terdorong untuk senantiasa memikirkan kebesaran Allah dengan mengambil manfaat dari ciptaaNya. Karena tak ada satupun ciptaanNya yang sia-sia di muka bumi ini. Sebagai sarjana fisika hendaknya mempunyai atau meneladani sifat ulul albab sekaligus sifat yang dekat dengan Allah. Selain itu juga sarjana fisika yang ulul albab diharapkan suka merenungkan dan mengkaji ayat-ayat Allah baik yang tanziliyah (wahyu) maupun yang kauniyah (alam semesta), dan berusaha mengungkapkan pelajaran darinya. Dengan demikian seorang sarjana fisika yang ulul albab diharapkan ia bukan sekedar ilmuwan atu intelektual. Yang mana dalam diri ulul albab terpadu sifat orang yang dekat dengan Allah. Dalam dunia pendidikan dewasa ini, sangat diharapkan perguruan tinggi mampu mencetak sosok sarjana yang mempunyai kemampuan keilmuan dan kepribadian seperti itu. Seorang sarjana yang benar- benar sarjana, bukan hanya sekedar sarjana. 73 BAB V PENUTUP 5.1 Kesimpulan Dari hasil simulasi dan analisa tentang deteksi osteoporosis dengan thresholding metode Otsu yang telah diuraikan maka dapat ditarik kesimpulan sebagai berikut: 1. Dengan tresholding metode otsu dapat digunakan sebagai metode alternatif untuk mendeteksi osteoporosis pada citra x-ray tulang rahang. 2. Dari pengujian pada citra x-ray tulang rahang dari objek trabekula yang dilakukan dengan metode alternatif yang dibuat dapat dimanfaatkan untuk mendeteksi osteoporosis dengan tingkat akurasi sebesar 89,47%. 5.2 Saran Dari hasil kesimpulan yang diperoleh, maka ada beberapa saran yang perlu menjadi bahan pertimbangan, yaitu : 1. Untuk memperoleh hasil yang lebih baik sebaiknya dilakukan penelitian lebih lanjut dengan melakukan perbaikan pada kuantitas dan kualitas dari data citra x-ray yang diuji serta dengan mengunakan metode lain. 2. Perlu dilakukan penelitian lanjutan pada bagian tulang tulang yang lainnya dengan citra x-ray agar hasil yang didapatkan lebih valid guna mendapatkan metode baru untuk mendeteksi tulang normal atau osteoporosis. 73 74 DAFTAR PUSTAKA Abidin, Zainal. 2009 . Analisa Kerapatan Trabecular Bone Berbasis Graph Berbobot Pada Citra Panorama Gigi Untuk Identifikasi Osteoporosis Vol. 7, No. 3 Januari. Jurusan Teknik Informatika, Fakultas Teknologi Informasi, Institut Teknologi Sepuluh Nopember. Surabaya Ahmad, Balza dan Firdausy, Kartika. 2005. Teknik Pengolahan Citra Digital Menggunakan Delphi. Yogyakarta : Ardi publishing Ahmad, Usman. 2005. Pengolahan Citra Digital dan Teknik Pemrogramannya. Yogyakarta : Graha Ilmu American College of Rheumatology. 2007. Osteoporosis, etiology and Pathogenesis. http://www.rheumatology.org Bertalya, Prihandoko, Djati Kerami. 2008. Penggunaan fitur tekstur local Pada klasifikasi citra x-ray. Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Gunadarma : Jakarta Chandra Wijaya, Marvin dan Tjiharjadi, Semuil. 2009. Mencari Nilai Threshold Yang Tepat Untuk Perancangan Pendeteksi Kanker Trofoblas. Jurusan Sistem Komputer, Fakultas Teknik,Universitas Kristen Maranatha : Bandung Consensus development conference. 1993. Diagnosis, Prophylaxis, and Treatment of osteoporosis. Am J Med Famalia, Sikna. 2009. Ekstraksi Karakter Berdasarkan Multilevel Thresholding Dan Region Growing. Institus Teknologi Telkom : Bandung Gabriel, J.F. 1996. Fisika Kedokteran . Penerbit Buku Kedokteran; EGC : Jakarta Gomez, Joan. 2006. Awas Pengeroposan Tulang: Bagaimana Menghindari dan Menghadapinya. Arcan : Jakarta Gonzalez, R.C., Woods, R.E. (2004). Digital Image Processing Second Edition. Prentice Hall, New Jersey Haris Surahman, Aceng. 2007. The Journey of Soul. Yogyakarta : Uswah Indra. 2008. Image Processing Part 1. http://ai.indra-ehm.net/2008/12/image processing - part 1.html. Diakses 24 Januari 2010 75 Ilyas, Muhammad dan B, Olgavivera. 2005. Identifikasi Osteoporosis pada Berbagai Kelompok Umur dengan Morfometri Femur dan Metakarpal di Makassar Vol. 26 No.4 Oktober- Desember. Fakultas Kedokteran, Universitas Hasanuddin : Makassar K, Fukunage. 1972. Introduction to Statisticul Pattern Recogniition. New York : Academic, , pp Mulyono, Agus. 2008. Analisis Tekstur Citra X-Ray Tulang Tangan, Tulang Lutut, Dan Tulang Rahang Untuk Deteksi Osteoporosis. Tesis, Program Pascasarjana, Universitas Brawijaya : Malang Munir, Rinaldi. 2004. Pengolahan Citra Digital Dengan Pendekatan Algoritmik. Bandung : Informatika Bandung Munir, Rinaldi. 2006. Aplikasi Image Thresholding Untuk Segmentasi Objek. Sekolah Teknik Elektro dan Informatika. Institut Teknologi Bandung Noboyuki, Otsu. 1979. A Threshold Selection Method from gray Level histogram . IEEE Transantions on Systems, MAN Cybernetics, Vol. SMC-9, No. 1. Janvani Putra, Darma. 2004. Binerisasi Citra Tangan Dengan Metode Otsu Vol.3 No.2 Juli - Desember. Jurusan Teknik Elektro. Universitas Udayana Sigit, Riyanto dkk. 2005. Step By Step Pengolahan Citra Digital. Yogyakarta : Penerbit Andi Susilawati, Indah. 2009. Teknik Pengolahan Citra. Program Studi Teknik Elektro. Universitas Mercu Buana Yogyakarta Ulfah, Nur Yunika. 2008. Epdiomologi Asupan Gizi Osteoporosis. www. Wikipedia org/wiki. Diakses tanggal 01 April 2009 Zaviera VJ, Ghelman B. 2007. Osteoporosis: Deteksi Dini, Penanganan dan Terapi Praktis. Kata Hati : Yogyakarta 76 Lampiran 1. Splash Screen Lampiran 2. Form Utama Aplikasi 77 Lampiran 3. Memilih Image Tulang Lampiran 4. Pengujian Tulang 78 Lampiran 5. Form Setup Aplikasi Lampiran 6. Data Citra Tulang Rahang Citra Tulang Rahang Status Keterangan Hasil DXA Hasil Thresholding Metode Otsu aa1 Normal Normal aa2 Osteoporosis Osteoporosis aa3 Osteoporosis Osteoporosis aa4 Osteoporosis Osteoporosis aa5 Osteoporosis Osteoporosis aa6 Osteoporosis Osteoporosis aa7 Normal Normal aa8 Osteoporosis Osteoporosis aa9 Osteoporosis Osteoporosis 79 aa10 Normal Normal aa11 Normal Normal aa12 Normal Osteoporosis aa13 Osteoporosis Osteoporosis aa14 Osteoporosis Osteoporosis aa15 Osteoporosis Osteoporosis aa16 Osteoporosis Osteoporosis aa17 Normal Normal aa18 Normal Normal aa19 Normal Osteoporosis 80 Lampiran 7. Data Citra Tulang Jari Rahang Asli dan Citra Hasil DXA, Ekualisasi serta Otsu Citra Asli Tulang Rahang Status Keterangan Citra Hasil DXA Ekualisasi Otsu aa1 Normal aa2 Osteoporosis aa3 Osteoporosis aa4 Osteoporosis aa5 Osteoporosis aa6 Osteoporosis aa7 Normal aa8 Osteoporosis aa9 Osteoporosis aa10 Normal aa11 Normal aa12 Normal aa13 Osteoporosis a14 Osteoporosis 81 aa15 Osteoporosis aa16 Osteoporosis aa17 Normal aa18 Normal aa19 Normal Lampiran 8. Jumlah Piksel Warna Putih Dan Hitam Prosentase Warna Putih Dari Citra Tulang Rahang Citra Jumlah piksel hitam Jumlah piksel putih Prosentase Warna Putih (%) aa1 2327 2673 53.46 aa2 2359 2641 52.82 aa3 2390 2610 52.2 aa4 2390 2610 52.2 aa5 2359 2641 52.82 aa6 2393 2607 52.14 aa7 2356 2644 52.88 aa8 2406 2594 51.88 aa9 2524 2476 49.52 aa10 2324 2676 53.52 aa11 2332 2668 53.36 aa12 2433 2567 51.34 aa13 2384 2616 52.32 aa14 2427 2573 51.46 aa15 2466 2534 50.68 aa16 2435 2565 51.3 aa17 2299 2701 54.02 aa18 2430 2570 51.4 aa19 2306 2694 53.88 82 Lampiran 9. Klasifikasi prosentase warna putih dari setiap citra Citra Prosentase Warna Putih (%) Hasil DXA Hasil Thresholding Metode Otsu Nilai kebenaran Tulang Normal Tulang Osteoporosis Tulang Normal Tulang Osteoporosis aa1 53.46 Benar Terklasifikasi aa2 52.82 Benar Terklasifikasi aa3 52.2 Benar Terklasifikasi aa4 52.2 Benar Terklasifikasi aa5 52.82 Benar Terklasifikasi aa6 52.14 Benar Terklasifikasi aa7 52.88 Benar Terklasifikasi aa8 51.88 Benar Terklasifikasi aa9 49.52 Benar Terklasifikasi aa10 53.52 Benar Terklasifikasi aa11 53.36 Benar Terklasifikasi aa12 51.34 Salah Terklasifikasi aa13 52.32 Benar Terklasifikasi aa14 51.46 Benar Terklasifikasi aa15 50.68 Benar Terklasifikasi aa16 51.3 Benar Terklasifikasi aa17 54.02 Benar Terklasifikasi aa18 51.4 Benar Terklasifikasi aa19 53.88 Salah Terklasifikasi 83 Lampiran 10. Listing Ekualisasi w := Image6.Picture.Width; h := Image6.Picture.Height; cKum[0] := nilai pixek ke 0; for i := 1 to 255 do begin cKum[i] := cKum[i-1]+nilai pixel ke i; end; for i := 0 to 255 do begin Ko[i] := Round(255*cKum[i]/(w*h)); end; for i:= 0 to h-1 do begin PC := Image6.Picture.BitMap.ScanLine[i]; PH := Image5.Picture.BitMap.ScanLine[i]; for j:= 0 to w-1 do begin PH[3*j] := Bo[PC[3*j]]; PH[3*j+1] := Go[PC[3*j+1]]; PH[3*j+2] := Ro[PC[3*j+2]]; end; end; Lampiran 11. Listing Proses Otsu jpixtot := image1.picture.Width*image1.picture.Height; sigmamax := 0; muT := 0; for i := 0 to l-1 do begin pt := dgray[i]/jpixtot; muT := muT + i*pt; end; for t:= 0 to l-1 do begin omega1t := 0; for i := 0 to t do 84 omega1t := omega1t + dgray[i]/jpixtot; omega2t := 0; for i := t+1 to l-1 do omega2t := omega2t + dgray[i]/jpixtot; mu1t := 0; for i := 0 to t do begin pt := dgray[i]/jpixtot; mu1t := mu1t + i*pt/omega1t; end; mu2t := 0; for i := t+1 to l-1 do begin pt := dgray[i]/jpixtot; mu2t := mu2t + i*pt/omega2t; end; sigma2b := omega1t*sqr(mu1t-muT)+omega2t*sqr(mu2t-muT); if sigma2b > sigmamax then begin sigmamax := sigma2b; totsu := t; end; end; otsu := tposisi[totsu]; Lampiran 12. Listing Thresholding for i:= 0 to Image1.Picture.Height-1 do begin PC := Image5.Picture.Bitmap.ScanLine[i]; PH := Image8.Picture.Bitmap.ScanLine[i]; for j:= 0 to Image1.Picture.Width-1 do begin gray := Round((PC[3*j]+PC[3*j+1]+PC[3*j+2])/3); 85 if (gray < Ambang) then begin PH[3*j] := 0; PH[3*j+1] := 0; PH[3*j+2] := 0; inc(hitam); end else begin PH[3*j] := 255; PH[3*j+1] := 255; PH[3*j+2] := 255; inc(putih); end end; Listing 13. Setup porsiputih:=hitam/(putih+hitam)*100; if porsihitam>=strtofloat(fsetup.dbedit1.text) then label11.Caption:='Normal (hitam : '+floattostr(porsiputih)+' %)' else
label11.Caption:='Osteoporosis(hitam:'+floattostr(porsiputih)+' %)'; Lampiran 14. Listing Program Keseluruhan unit unitutama; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, XPMan, ComCtrls, Menus, ExtDlgs, DB, 86 DBTables,strutils, DBCtrls, Grids, DBGrids, ADODB; type TForm1 = class(TForm) XPManifest1: TXPManifest; Panel1: TPanel; Button1: TButton; Button3: TButton; TabControl1: TTabControl; ScrollBox1: TScrollBox; StatusBar1: TStatusBar; OpenPictureDialog1: TOpenPictureDialog; Panel2: TPanel; Panel3: TPanel; Panel4: TPanel; Image1: TImage; Panel5: TPanel; Image2: TImage; Panel6: TPanel; Panel7: TPanel; Panel8: TPanel; Image3: TImage; Panel9: TPanel; Panel18: TPanel; Panel19: TPanel; Panel20: TPanel; Image9: TImage; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; Label9: TLabel; Label10: TLabel; Label11: TLabel; 87 Panel14: TPanel; Panel15: TPanel; Panel16: TPanel; Image11: TImage; Panel17: TPanel; Image12: TImage; Panel25: TPanel; Panel26: TPanel; Panel27: TPanel; Image18: TImage; Panel28: TPanel; Image5: TImage; Panel29: TPanel; Panel30: TPanel; Panel31: TPanel; Image23: TImage; Panel32: TPanel; Image8: TImage; Image4: TImage; Button2: TButton; Button5: TButton; Button6: TButton; Button7: TButton; Panel33: TPanel; Label17: TLabel; Label18: TLabel; Label19: TLabel; Label20: TLabel; Label21: TLabel; Label22: TLabel; Panel34: TPanel; Panel35: TPanel; Image14: TImage; DBGrid1: TDBGrid; DBNavigator1: TDBNavigator; DBImage1: TDBImage; DBImage3: TDBImage; DBImage4: TDBImage; 88 DBText1: TDBText; DataSource1: TDataSource; ADOConnection1: TADOConnection; TCitra: TADOTable; Button8: TButton; Button9: TButton; Button10: TButton; procedure Button3Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Panel3MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Panel3MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure Image2Click(Sender: TObject); procedure TabControl1Change(Sender: TObject); procedure Panel7MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Panel7MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure Image3Click(Sender: TObject); procedure hitunghistogram(max:integer; gpicture:Tpicture); procedure gambarhistogram(var img2 : Timage; pan : Tpanel); function otsu:integer; procedure tab0; procedure tab1; procedure tab1b; procedure ekualisasi; procedure tab2; // procedure olah; procedure Panel11MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure FormCreate(Sender: TObject); 89 procedure Panel15MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure threshold(ambang:integer;var hitam,putih : integer); procedure Panel19MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Panel19MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure Image9Click(Sender: TObject); procedure Panel30MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Panel22MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Panel26MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Panel22MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure Panel26MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure Panel11MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure Panel15MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure Panel30MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure Button2Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); 90 procedure Button6Click(Sender: TObject); procedure Button7Click(Sender: TObject); procedure Button8Click(Sender: TObject); procedure Prosesfile; procedure Button9Click(Sender: TObject); procedure TCitraAfterScroll(DataSet: TDataSet); procedure Button10Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; psx, psy : integer; nfile,fc : string; dgray : array [0..255] of byte; tposisi : array[0..255] of integer; Picture: TPicture; c, cR, cG, cB: array [0..255] of integer; l, cMax,hitam,putih: integer; implementation uses Usetup; type LogPal = record lpal: TLogPalette; entry: array [0..255] of TPaletteEntry; end; var PaletKeabuan: LogPal; {$R *.dfm} {procedure TForm1.Olah; //bikin grayscale var i, j: integer; 91 PC, PH: PByteArray; begin if (Image1.Picture.Bitmap.PixelFormat = pf8bit) then begin Image6.Picture.Bitmap.PixelFormat := pf8bit; Image6.Picture.Bitmap.Palette := CreatePalette(PaletKeabuan.lpal); for i:= 0 to Image1.Picture.Height-1 do begin PC := Image1.Picture.BitMap.ScanLine[i]; PH := Image6.Picture.BitMap.ScanLine[i]; for j:= 0 to Image1.Picture.Width-1 do PH[j] := Round((PC[3*j]+PC[3*j+1]+PC[3*j+2])/3); end; end; if (Image1.Picture.Bitmap.PixelFormat = pf24bit) then for i:= 0 to Image1.Picture.Height-1 do begin PC := Image1.Picture.BitMap.ScanLine[i]; PH := Image6.Picture.BitMap.ScanLine[i]; for j:= 0 to Image1.Picture.Width-1 do begin PH[3*j] := Round((PC[3*j]+PC[3*j+1]+PC[3*j+2])/3); PH[3*j+1] := Round((PC[3*j]+PC[3*j+1]+PC[3*j+2])/3); PH[3*j+2] := Round((PC[3*j]+PC[3*j+1]+PC[3*j+2])/3); end; end; end; } procedure TForm2. ekualisasi; //melakukan ekualisasi var i, j, w, h: integer; cKum, cRKum, cGKum, cBKum: array [0..255] of integer; 92 Ko, Ro, Go, Bo: array [0..255] of byte; PC, PH: PByteArray; begin hitunghistogram(0,Image1.picture); w := Image1.Picture.Width; h := Image1.Picture.Height; if (Image1.Picture.Bitmap.PixelFormat = pf8bit) then begin Image5.Picture.Bitmap.PixelFormat := pf8bit; Image5.Picture.Bitmap.Palette := CreatePalette(PaletKeabuan.lpal); cKum[0] := c[0]; for i := 1 to 255 do cKum[i] := cKum[i-1]+c[i]; for i := 0 to 255 do Ko[i] := Round(255*cKum[i]/(w*h)); for i:= 0 to h-1 do begin PC := Image1.Picture.BitMap.ScanLine[i]; PH := Image5.Picture.BitMap.ScanLine[i]; for j:= 0 to w-1 do PH[j] := Ko[PC[j]]; end; end; if (Image1.Picture.Bitmap.PixelFormat = pf24bit) then begin cRKum[0] := cR[0]; cGKum[0] := cG[0]; cBKum[0] := cB[0]; for i := 1 to 255 do begin cRKum[i] := cRKum[i-1]+cR[i]; cGKum[i] := cGKum[i-1]+cG[i]; cBKum[i] := cBKum[i-1]+cB[i]; end; for i := 0 to 255 do 93 begin Ro[i] := Round(255*cRKum[i]/(w*h)); Go[i] := Round(255*cGKum[i]/(w*h)); Bo[i] := Round(255*cBKum[i]/(w*h)); end; for i:= 0 to h-1 do begin PC := Image1.Picture.BitMap.ScanLine[i]; PH := Image5.Picture.BitMap.ScanLine[i]; for j:= 0 to w-1 do begin PH[3*j] := Bo[PC[3*j]]; PH[3*j+1] := Go[PC[3*j+1]]; PH[3*j+2] := Ro[PC[3*j+2]]; end; end; end; end; //hitung histogram untuk semua hasil olah warna procedure Tform1.hitunghistogram(max:integer; gpicture:Tpicture); var i, j: integer; PC: PByteArray; begin picture := gpicture; if (Picture = nil) then exit; if (Picture.Bitmap.PixelFormat = pf8bit) then begin for i := 0 to 255 do c[i] := 0; for i:= 0 to Picture.Height-1 do begin PC := Picture.Bitmap.ScanLine[i]; for j:= 0 to Picture.Width-1 do Inc(c[PC[j]]); 94 end; if (max <> 0) then cMax := max else begin cMax := 0; l := 0; for i := 0 to 255 do begin if (c[i] > cMax) then cMax := c[i]; if (c[i]<> 0) then begin tposisi[l] := i; dgray[l] := c[i]; inc(l); end; end; end; end; if (Picture.Bitmap.PixelFormat = pf24bit) then begin for i := 0 to 255 do begin cR[i] := 0; cG[i] := 0; cB[i] := 0; end; for i:= 0 to Picture.Height-1 do begin PC := Picture.Bitmap.ScanLine[i]; for j:= 0 to Picture.Width-1 do begin Inc(cB[PC[3*j]]); Inc(cG[PC[3*j+1]]); Inc(cR[PC[3*j+2]]); end; end; 95 if (max <> 0) then cMax := max else begin cMax := 0; l:=0; for i := 0 to 255 do begin if (cR[i] > cMax) then cMax := cR[i]; if (cG[i] > cMax) then cMax := cG[i]; if (cB[i] > cMax) then cMax := cB[i]; if (cMax<> 0) then begin tposisi[l] := i; // gray := Round((PC[3*j]+PC[3*j+1]+PC[3*j+2])/3); dgray[l] := round((cR[i]+cG[i]+cB[i])/3); inc(l); end; end; end; end; end; //proses otsu, cari garis threshold function Tform1.otsu : integer; var t,i, jpixtot, totsu : integer; pt, muT, omega1t, omega2t, mu1T, mu2T : real; sigma2b, sigma2b1, sigmaMax : real; begin jpixtot := image1.picture.Width*image1.picture.Height; sigmamax := 0; muT := 0; 96 for i := 0 to l-1 do begin pt := dgray[i]/jpixtot; muT := muT + i*pt; end; for t:= 0 to l-1 do begin omega1t := 0; for i := 0 to t do omega1t := omega1t + dgray[i]/jpixtot; omega2t := 0; for i := t+1 to l-1 do omega2t := omega2t + dgray[i]/jpixtot; mu1t := 0; for i := 0 to t do begin pt := dgray[i]/jpixtot; mu1t := mu1t + i*pt/omega1t; end; mu2t := 0; for i := t+1 to l-1 do begin pt := dgray[i]/jpixtot; mu2t := mu2t + i*pt/omega2t; end; sigma2b := omega1t*sqr(mu1t-muT)+omega2t*sqr(mu2t-muT); if sigma2b > sigmamax then begin sigmamax := sigma2b; totsu := t; end; end; otsu := tposisi[totsu]; end; 97 //untuk menggambar histogram procedure Tform1.gambarhistogram(var img2 : Timage;pan : Tpanel ); var i, w, h: integer; img : Timage; begin // img.Destroy; img := Timage.Create(self); img.Parent := pan; img.Align := alclient; if (Picture = nil) then exit; w := 290; h := 190; img.Canvas.Pen.Color := clBlack; img.Canvas.Brush.Color := clWhite; img.Canvas.Pen.Color := clSkyBlue; img.Canvas.MoveTo(10, h); img.Canvas.LineTo(10, 10); img.Canvas.MoveTo(10, h); img.Canvas.LineTo(w, h); if (Picture.Bitmap.PixelFormat = pf8bit) then begin img.Canvas.Pen.Color := clBlack; for i := 0 to 254 do begin img.Canvas.MoveTo(10+i, h-Round(c[i]/cMax*150)); img.Canvas.LineTo(11+i, h-Round(c[i+1]/cMax*150)); end; end; if (Picture.Bitmap.PixelFormat = pf24bit) then begin for i := 0 to 254 do begin img.Canvas.Pen.Color := clRed; img.Canvas.MoveTo(10+i, h-Round(cR[i]/cMax*150)); 98 img.Canvas.LineTo(11+i, h-Round(cR[i+1]/cMax*150)); img.Canvas.Pen.Color := clGreen; img.Canvas.MoveTo(10+i, h-Round(cG[i]/cMax*150)); img.Canvas.LineTo(11+i, h-Round(cG[i+1]/cMax*150)); img.Canvas.Pen.Color := clBlue; img.Canvas.MoveTo(10+i, h-Round(cB[i]/cMax*150)); img.Canvas.LineTo(11+i, h-Round(cB[i+1]/cMax*150)); end; end; img2:=img; end; //untuk membuat hasil otsu, dimana hasil threshold dijadikan ambang procedure Tform1.threshold(ambang:integer;var hitam,putih : integer); var i, j, gray: integer; PC, PH: PByteArray; begin hitam:=0; putih:=0; if (Image1.Picture.Bitmap.PixelFormat = pf8bit) then begin Image8.Picture.Bitmap.PixelFormat := pf8bit; Image8.Picture.Bitmap.Palette := CreatePalette(PaletKeabuan.lpal); for i:= 0 to Image1.Picture.Height-1 do begin PC := Image5.Picture.Bitmap.ScanLine[i]; PH := Image8.Picture.Bitmap.ScanLine[i]; for j:= 0 to Image1.Picture.Width-1 do begin if (PC[j] < ambang) then begin PH[j] := 0; inc(hitam); end 99 else begin PH[j] := 255; inc(putih); end; end; end; end; if (Image1.Picture.Bitmap.PixelFormat = pf24bit) then for i:= 0 to Image1.Picture.Height-1 do begin PC := Image5.Picture.Bitmap.ScanLine[i]; PH := Image8.Picture.Bitmap.ScanLine[i]; for j:= 0 to Image1.Picture.Width-1 do begin gray := Round((PC[3*j]+PC[3*j+1]+PC[3*j+2])/3); if (gray < Ambang) then begin PH[3*j] := 0; PH[3*j+1] := 0; PH[3*j+2] := 0; inc(hitam); end else begin PH[3*j] := 255; PH[3*j+1] := 255; PH[3*j+2] := 255; inc(putih); end end; end; end; procedure TForm1.Button3Click(Sender: TObject); begin application.Terminate; 100 end; procedure TForm1.prosesfile; var hasil : integer; porsiputih : real; begin image5.Picture := image1.Picture; // image6.Picture := image1.Picture; image8.Picture := image1.Picture; // olah; ekualisasi; // panel2.Height := image1.Picture.Height+panel3.Height; // panel2.Width := image1.Picture.Width; image5.Picture.Bitmap.Width := image1.Picture.Width; image5.Picture.Bitmap.height := image1.Picture.height; { image6.Picture.Bitmap.Width := image1.Picture.Width; image6.Picture.Bitmap.height := image1.Picture.height; } image8.Picture.Bitmap.Width := image1.Picture.Width; image8.Picture.Bitmap.height := image1.Picture.height; case (Image1.Picture.Bitmap.PixelFormat) of pf1bit : fc := 'biner'; pf8bit : fc := 'keabuan'; pf24bit : fc := 'true color'; end; tab0; label6.Caption := inttostr(image1.Picture.width)+'x'+inttostr(image1.Picture.height) ; label7.Caption := inttostr(image1.Picture.width * image1.Picture.height); label8.Caption := fc; statusbar1.Panels[1].Text := nfile; hitunghistogram(0,image1.picture); gambarhistogram(image4,panel9); // hitunghistogram(0,image6.Picture); // gambarhistogram(image10,panel13); 101 hitunghistogram(0,image5.Picture); gambarhistogram(image12,panel17); hasil := otsu; hitam:=0; putih:=0; threshold(hasil,hitam,putih); image12.Canvas.Pen.Color := clPurple; image12.Canvas.MoveTo(10+hasil, 10); image12.Canvas.LineTo(10+hasil,190); porsiputih:=putih/(putih+hitam)*100; if porsiputih>=strtofloat(fsetup.dbedit1.text) then label11.Caption:='Normal (putih : '+floattostr(porsiputih)+' %)' else label11.Caption:='Osteoporosis (putih : '+floattostr(porsiputih)+' %)'; label10.Caption := inttostr(hasil); label9.Caption := inttostr(l); end; procedure TForm1.Button1Click(Sender: TObject); begin if openpicturedialog1.Execute then begin nfile := openpicturedialog1.FileName; if nfile <> '' then begin image1.Picture.LoadFromFile(nfile); prosesfile; button8.Enabled:=true; end; end; end; procedure Tform1.tab0; begin 102 // panel18.Visible := true; // panel6.Visible := true; // panel2.Visible := true; // image1.Visible := true; // image5.Visible := false; // image6.Visible := false; /// image8.Visible := false; // hitunghistogram(0,image1.picture); // gambarhistogram; end; procedure Tform1.tab1; begin // panel18.Visible := true; // panel6.Visible := true; // panel2.Visible := true; // image1.Visible := false; // image6.Visible := true; // image5.Visible := false; // image8.Visible := false; // hitunghistogram(0,image6.Picture); // gambarhistogram; // label9.Caption := inttostr(l); end; procedure Tform1.tab1b; begin panel18.Visible := true; panel6.Visible := true; panel2.Visible := true; image1.Visible := false; image5.Visible := true; // image6.Visible := false; image8.Visible := false; // hitunghistogram(0,image5.Picture); // gambarhistogram; 103 // label9.Caption := inttostr(l); end; procedure Tform1.tab2; var hasil,hitam,putih : integer; begin // hasil := otsu; // hitam:=0; // // putih:=0; // threshold(hasil,hitam,putih); // if hitam<putih then label11.Caption:='Normal '+floattostr(hitam/(putih+hitam)*100); // if hitam>putih then label11.Caption:='Osteoporosis '+floattostr(hitam/(putih+hitam)*100); // label10.Caption := inttostr(hasil); panel2.Visible := true; //panel10.Visible := false; panel6.Visible := true; image1.Visible := false; image5.Visible := false; // image6.Visible := false; image8.Visible := true; panel18.Visible := true; // hitunghistogram(0,image5.Picture); // gambarhistogram; // image4.Canvas.Pen.Color := clPurple; // image4.Canvas.MoveTo(10+hasil, 10); // image4.Canvas.LineTo(10+hasil,190); end; procedure TForm1.Panel3MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin psx := x; psy := y; end; 104 procedure TForm1.Panel3MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if shift = [ssLeft] then begin panel2.Left := panel2.Left+x-psx; panel2.Top := panel2.Top+y-psy; end; end; procedure TForm1.Image2Click(Sender: TObject); begin panel2.Visible := false; end; procedure TForm1.TabControl1Change(Sender: TObject); begin if openpicturedialog1.FileName <> '' then begin if tabcontrol1.tabindex = 0 then tab0; if tabcontrol1.tabindex = 1 then tab1; if tabcontrol1.tabindex = 2 then tab1b; if tabcontrol1.tabindex = 3 then tab2; end; end; procedure TForm1.Panel7MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin psx := x; psy := y; end; procedure TForm1.Panel7MouseMove(Sender: TObject; Shift: TShiftState; X, 105 Y: Integer); begin if shift = [ssLeft] then begin panel6.Left := panel6.Left+x-psx; panel6.Top := panel6.Top+y-psy; end; end; procedure TForm1.Image3Click(Sender: TObject); begin panel6.Visible := false; end; procedure TForm1.Panel11MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin psx := x; psy := y; end; procedure TForm1.FormCreate(Sender: TObject); var i: integer; begin PaletKeabuan.lPal.palVersion := $300; PaletKeabuan.lPal.palNumEntries := 256; for i := 0 to 255 do begin dgray[i] := 0; PaletKeabuan.entry[i].peRed := i; PaletKeabuan.entry[i].peGreen := i; PaletKeabuan.entry[i].peBlue := i; end; end; 106 procedure TForm1.Panel15MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin psx := x; psy := y; end; procedure TForm1.Panel19MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin psx := x; psy := y; end; procedure TForm1.Panel19MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if shift = [ssLeft] then begin panel18.Left := panel18.Left+x-psx; panel18.Top := panel18.Top+y-psy; end; end; procedure TForm1.Image9Click(Sender: TObject); begin panel18.Visible := false; end; procedure TForm1.Panel30MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin psx := x; psy := y; 107 end; procedure TForm1.Panel22MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin psx := x; psy := y; end; procedure TForm1.Panel26MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin psx := x; psy := y; end; procedure TForm1.Panel22MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if shift = [ssLeft] then begin // panel21.Left := panel21.Left+x-psx; // panel21.Top := panel21.Top+y-psy; end; end; procedure TForm1.Panel26MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if shift = [ssLeft] then begin panel25.Left := panel25.Left+x-psx; panel25.Top := panel25.Top+y-psy; end; 108 end; procedure TForm1.Panel11MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if shift = [ssLeft] then begin // panel10.Left := panel10.Left+x-psx; // panel10.Top := panel10.Top+y-psy; end; end; procedure TForm1.Panel15MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if shift = [ssLeft] then begin panel14.Left := panel14.Left+x-psx; panel14.Top := panel14.Top+y-psy; end; end; procedure TForm1.Panel30MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if shift = [ssLeft] then begin panel29.Left := panel29.Left+x-psx; panel29.Top := panel29.Top+y-psy; end; end; procedure TForm1.Button2Click(Sender: TObject); begin panel2.Visible:=true; 109 panel6.Visible:=true; end; procedure TForm1.Button4Click(Sender: TObject); begin //panel21.Visible:=true; //panel10.Visible:=true; end; procedure TForm1.Button5Click(Sender: TObject); begin panel25.Visible:=true; panel15.Visible:=true; end; procedure TForm1.Button6Click(Sender: TObject); begin panel29.Visible:=true; end; procedure TForm1.Button7Click(Sender: TObject); begin panel18.Visible:=true; end; procedure TForm1.Button8Click(Sender: TObject); var no : integer; begin Tcitra.Last; no:= Tcitra.FieldByName('id').Asinteger; Tcitra.Append; Tcitra.FieldByName('id').Asinteger:=no+1; Tcitra.FieldByName('namafile').AsString:=statusbar1.Panels[0].Text ; dbimage1.Picture:=image1.Picture; //dbimage2.Picture:=image6.Picture; dbimage3.Picture:=image5.Picture; dbimage4.Picture:=image8.Picture; 110 Tcitra.FieldByName('hitam').Asinteger:=hitam; Tcitra.FieldByName('putih').Asinteger:=putih; Tcitra.Post; end; procedure TForm1.Button9Click(Sender: TObject); begin image1.Picture:=dbimage1.Picture; prosesfile; end; procedure TForm1.TCitraAfterScroll(DataSet: TDataSet); begin button9.Enabled:=dbimage1.Showing; end; procedure TForm1.Button10Click(Sender: TObject); begin fsetup.show; end; end.