8. PERANCANGAN SISTEM MULTI AGEN Pendahuluan Peningkatan kecepatan proses komputasi sebagai solusi dari kecepatan maju sistem penyemprot berbasis sensor membutuhkan konsep tersendiri yang cukup kompleks.
Hal ini disebabkan sistem harus dimodifikasi ke dalam bentuk
komputasi terdistribusi yang memiliki karakteristik sistem sebagai berikut : - Sistem komputasi paralel kolaboratif dibutuhkan untuk memproses beberapa tahapan dari kegiatan penyemprotan. - Beberapa sistem cerdas yang dapat bekerja bersama secara simultan. - Sistem perangkat keras dan perangkat lunak yang terintegrasi dengan baik dan bekerja secara otomatis. - Pendelegasian tugas kepada bagian-bagian tertentu Solusi dari permasalahan dengan karakteristik tersebut di atas adalah dengan melakukan perubahan sistem yang telah dibangun menjadi Sistem Multi Agen (SMA) yang bekerja secara paralel. Terdapat dua standarisasi yang ditetapkan dalam pembangunan Agent.
Pertama adalah The Foundation for Intelligent
Physical Agents (FIPA), dan yang kedua adalah the Object Management Group (OMG).
FIPA memiliki platform, yang terdiri dari agen managemen, agent
komunikasi dan agen integrasi software. Agen managemen menangani agen life cycle, directory facilitator, dan message transport system. Agen komunikasi menangani protokol yang digunakan dalam interaksi antar agen, dan
agen
integrasi software menangani integrasi agen dalam sebuah sistem (Padgham L. and Winikof M., 2004). Agen komunikasi dan agen integrasi software terdapat pada sistem supervisori, sedangkan agen cerdas yang lain perlu dibangun untuk memenuhi kebutuhan kinerja sistem yang lebih baik. Berdasarkan hasil penelitian yang dilakukan oleh
Greco (2005) dari
universitas Florida menyatakan bahwa waktu untuk mengakses memori pada sistem memori utama (Random Access Memory) adalah sangat kecil bila dibandingkan dengan kecepatan sebuah prosesor, sedangkan data yang harus
131
diolah dalam pemrosesan citra adalah besar. Sehingga kecepatan pemrosesan lebih banyak dibatasi oleh akses memori, bukan oleh kecepatan sebuah processor.
Metode Metode pengembangan sistem multi agen menurut sistem Promotheus memiliki tiga tahapan yaitu spesifikasi sistem, desain arsitektur sistem dan desain detail sebagaimana yang ditampilkan pada Gambar 73.
Gambar 73. Proses desain sistem multi agen pada metodologi Prometheus. sumber : L. Padgham (2002) Spesifikasi sistem Spesifikasi sistem terfokus pada identifikasi tujuan dan fungsi utama dari sistem, selama proses pemasukan data dan aksi yang diberikan. Spesifikasi sistem ditentukan dengan melalui empat tahap berikut : 1. Identifikasi tujuan yang ingin dicapai oleh sistem. Tujuan yang ingin dicapai oleh sistem adalah : - Melakukan penangkapan citra tepat waktu dan lokasi - Melakukan pengolahan citra dengan cepat
132
- Melakukan segmentasi sesuai hasil pengolahan citra - Melakukan pengendalian gulma 2. Pengembangan skenario kasus yang menggambarkan cara kerja sistem Skenario cara kerja sistem secara garis besar mengikuti tahapan kerja berikut : - Sensor penentu jarak tempuh membaca jarak yang ditempuh, dan menjadi pemicu kerja kamera untuk menangkap citra lahan dan pemicu kerja dari aktuator penyemprot. - Kamera digital melakukan pengambilan citra lahan - Citra yang ditangkap pada memori komputer difilterisasi sesuai
kebutuhan. - Citra yang telah difilterisasi mengalami proses analisa jenis tanaman
dan analisa kepadatan serangan gulma secara simultan. - Berdasarkan
hasil
klasifikasi
serangan
selanjutnya
dilakukan
penyemprotan sesuai dosis dan lokasi. Waktu dan lama penyemprotan ditentukan oleh data yang diperoleh dari sensor pembaca jarak tempuh. Pada aplikasi pemupukan dan pemberantasan penyakit skenario memiliki sedikit perubahan dimana bagian analisa kepadatan gulma diganti dengan analisa kesuburan tanaman pada kegiatan pemupukan atau analisa kepadatan serangan penyakit pada kegiatan pemberantasan penyakit. 3. Identifikasi fungsionalitas dasar pada sistem Fungsionalitas dasar yang diperlukan sistem antara lain : d. Fungsionalitas Pengambilan Citra Nama fungsionalitas
: Pengambilan citra
Deskripsi fungsionalitas
: Mengambil citra tanaman pada luas tangkapan yang telah ditentukan.
Percepts/events/messages
: Lokasi pemotretan telah sampai (message) , Pemotretan citra tanaman (event).
133
Pengiriman pesan (message) : Pengiriman data digital citra ke procesor (message). Aksi
: Menampilkan citra hasil pemotretan.
Penggunaan data
: Basis data peta pemotretan.
Interaksi
: Agen cerdas filterisasi citra.
2) Fungsionalitas Filterisasi Citra Nama fungsionalitas
: Filterisasi citra.
Deskripsi fungsionalitas
: Melakukan
filterisasi
sesuai
dengan parameter filterisasi yang telah ditentukan. Percepts/events/messages
: Citra
lahan
telah
ditangkap
(message), filterisasi citra tanaman (event). Pengiriman pesan (message) : Pengiriman filterisasi
data citra
digital ke
hasil
procesor
(message). Aksi
: Menampilkan citra hasil filterisasi.
Penggunaan data
: Basis data peta pemotretan.
Interaksi
: Agen
cerdas
analisa
dimensi
fraktal dan analisa Bayes. 3) Fungsionalitas Analisa Dimensi Fraktal Nama fungsionalitas
: Analisa Dimensi Fraktal.
Deskripsi fungsionalitas
: Menganalisa jenis tanaman yang ada pada citra.
Percepts/events/messages
:
Citra
yang
telah
difilterisasi
(message) , analisa dimensi fraktal (event), batas aplikasi (message). Pengiriman pesan (message) : Pengiriman
data
hasil
analisa
dimensi fraktal (message), Penentuan jenis tanaman (message). Aksi
: Mengidentifikasi jenis tanaman.
134
Penggunaan data
: Basis data peta pemotretan.
Interaksi
: Agen cerdas filterisasi citra, agen cerdas penentu kepadatan serangan hama dan penyakit atau tingkat kesuburan.
4) Fungsionalitas Analisa Kepadatan Serangan Gulma. Nama fungsionalitas
: Analisa
Kepadatan
Serangan
Gulma. Deskripsi fungsionalitas
: Menganalisa kepadatan serangan gulma dengan metode Bayes.
Percepts/events/messages
: Citra hasil filterisasi (message) , analisa kepadatan serangan gulma (event), kelas kepadatan serangan (message).
Pengiriman pesan (message) : Penentuan
tingkat
serangan
gulma
kepadatan (message),
Pengiriman data hasil klasifikasi ke agen pengatur dosis (message). Aksi
: Menampilkan citra hasil klasifikasi kepadatan serangan gulma.
Penggunaan data
: Basis data peta aplikasi penyemprotan.
Interaksi
: Agen cerdas filterisasi citra, agen cerdas analisa dimensi fraktal, , agen
pengaturan
dosis
mikrokontroler. 5) Fungsionalitas Pengaturan Dosis Aplikasi Nama fungsionalitas
: Pengaturan Dosis Aplikasi.
Deskripsi fungsionalitas
: Menentukan
dosis
aplikasi
berdasarkan hasil klasifikasi.
135
Percepts/events/messages
: Klasifikasi tingkat serangan atau kesuburan (message) , Penentuan dosis aplikasi (event).
Pengiriman pesan (message)
: Pengiriman
data
dosis
ke
mikrokontroler (message). Aksi
: Menentukan
kombinasi
dosis
dalam 4 potongan citra. Penggunaan data
: Basis data peta aplikasi penyemprotan.
Interaksi
: Mikrokontroler.
6) Fungsionalitas Mikrokontroler Nama fungsionalitas
: Mikrokontroler.
Deskripsi fungsionalitas
: Menerjemahkan
data
hasil
penentuan dosis kedalam bentuk aksi yang harus dilakukan oleh aktuator. Percepts/events/messages
:
Data
hasil
klasifikasi
dosis
(message) , Penerjemahan hasil klasifikasi kedalam pengaturan aksi aktuator (event). Pengiriman pesan (message)
: Pengiriman data hasil klasifikasi ke
modul
aktuator
(message)
Penentuan dosis penyemprotan (message) . Aksi
: Mengaktifkan sesuai
modul
dengan
data
aktuator hasil
klasifikasi. Penggunaan data
: Basis data peta aplikasi penyemprotan.
Interaksi
: Agen cerdas klasifikasi aplikasi, aktuator.
136
e. Fungsionalitas Penentuan Jarak Tempuh. Nama fungsionalitas
: Penentuan Jarak Tempuh.
Deskripsi fungsionalitas
: Membaca jarak tempuk peralatan di lahan.
Percepts/events/messages
: Operasi
peralatan
dimulai
(message), Pencacahan jarak tempuh (event). Pengiriman pesan (message)
:Pengiriman data jarak tempuh (message), penentuan pemotretan citra
(message),
penentuan
penyemprotan (message). Aksi
: Menghitung
jarak
tempuh
peralatan. Penggunaan data
:-
Interaksi
: Agen pengambilan citra, Mikrokontroler.
4. Menentukan spesifikasi hubungan antara sistem dan lingkungan dalam bentuk percept. a. Nama percept Deskripsi b. Nama percept Deskripsi
: Awal Program. : Perintah awal bagi aktivasi system. : Pemicu Pengambilan Citra. : Perintah pengambilan citra berdasarkan jarak
tempuh tertentu. c. Nama percept Deskripsi
: Pemicu Pengolahan Citra. : Perintah pengolahan citra secara paralel tepat
setelah citra ditangkap di layar. d. Nama percept Deskripsi
: Pemicu Analisa Jenis Tanaman. : Perintah analisa dimensi fractal setelah data hasil
filterisasi selesai. e. Nama percept
: Pemicu Analisa Tingkat Kepadatan Serangan.
137
Deskripsi
: Perintah analisa Bayes setelah data hasil filterisasi
selesai. f. Nama percept Deskripsi g. Nama percept Deskripsi
: Penentuan Dosis : Penentuan dosis berdasarkan nilai hasil klasifikasi. : Aktivasi Mikrokontroler. : Penerjemahan nilai hasil penentuan dosis dalam
pemrograman mikrokontroler. h. Nama percept Deskripsi
: Aktivasi Penyemprotan. : Penentuan awal dan lama penyemprotan karena
pemicu dari pencacah jarak. Spesifikasi hubungan antara sistem dan lingkungan dalam bentuk actions. 1) Nama actions Deskripsi
: Pencatatan Jarak Tempuh. : Pengukuran jarak tempuh peralatan berdasarkan
pencacahan sensor magnet. 2) Nama actions Deskripsi
: Pengambilan Citra. : Pengambilan citra kondisi lahan atau tanaman dan
menampilkannya di layar monitor. 3) Nama actions Deskripsi
: Filterisasi Citra. : Filterisasi citra yang telah ditangkap untuk
memisahkan latar belakang dan tanaman. 4) Nama actions Deskripsi
: Analisa Jenis Tanaman. : Penentuan jenis tanaman yang terdapat pada citra
hasil pemotretan. 5) Nama actions Deskripsi
: Analisa Kepadatan Serangan Gulma. : Penentuan
kelas
kepadatan
serangan
gulma
berdasarkan analisa nonparametrik Bayes. 6) Nama actions Deskripsi
: Penentuan dosis aplikasi. : Menentukan dosis penyemprotan
berdasarkan
data klasifikasi serangan gulma. 7) Nama actions Deskripsi
: Penyemprotan. : Penyemprotan sesuai dosis dengan PWM.
138
Desain arsitektur sistem Fase desain arsitektur sistem menggunakan keluaran dari desain fungsionalitas dan desain hubungan antara sistem dan lingkungan untuk menentukan tipe agen yang akan bekerja dalam sistem dan bagaimana interaksi antar agen. Desain arsitektur meliputi kegiatan penentuan tipe agen, sebagai berikut : a) Agen Penangkap Citra Lahan Nama agen
: Pemotret Citra Lahan.
Deskripsi
: Agen ini berfungsi sebagai penangkap citra lahan dengan kemampuan penangkapan citra 30 fps (frame per second).
Lifetime
: Selama sistem berjalan.
Percept
: Jarak tempuh, obyek tanaman
Action
: Penangkapan citra lahan.
Tujuan
: Menampilkan citra kondisi lahan di layar monitor.
Fungsionalitas
: Menangkap citra diam dari lahan pada waktu tertentu.
Protokol
: Protokol pengelola citra, protokol pencacah jarak, protokol kualitas citra.
b) Agen Filterisasi Citra Nama agen
: Filterisasi Citra.
Deskripsi
: Agen ini berfungsi sebagai pengolah citra lahan dengan kemampuan memisahkan tanaman dengan latar belakang citra.
Lifetime
: Selama sistem berjalan.
Percept
: Citra tanaman
Action
: Filterisasi citra lahan.
Tujuan
: Memisahkan latar belakang citra dengan tanaman.
Fungsionalitas
: Menyediakan citra hasil filterisasi untuk keperluan analisa citra lebih lanjut.
Protokol
: Protokol pengelola citra, protokol matrik citra, protokol kualitas citra
139
c) Agen Analisa Dimensi Fraktal Nama agen
: Analisa Dimensi Fraktal.
Deskripsi
: Agen ini berfungsi sebagai agen cerdas yang memiliki kemampuan analisa dimensi fraktal.
Lifetime
: Selama sistem berjalan.
Percept
: Data matrik filterisasi, Jenis tanaman
Action
: Analisa dimensi fraktal.
Tujuan
: Melakukan analisa dimensi pada masing-masing tanaman yang ada pada citra.
Fungsionalitas
: Menentukan jenis tanaman yang tertangkap pada citra lahan.
Protokol
: Protokol matrik citra, protokol identifikasi.
d) Agen Klasifikasi Non-parametrik Bayes Nama agen
: Klasifikasi Non-parametrik Bayes.
Deskripsi
: Agen ini berfungsi sebagai untuk menentukan kelas suatu citra berdasarkan penampakan yang ditangkap oleh kamera.
Lifetime
: Selama sistem berjalan.
Percept
: Data matrik filterisasi, Kepadatan serangan
Action
: Analisa klasifikasi dengan metode Bayes.
Tujuan
: Menentukan kelas serangan hama penyakit atau kesuburan suatu tanaman.
Fungsionalitas
: Melakukan analisa kelas serangan hama dan penyakit atau tingkat kesuburan tanaman.
Protokol
: Protokol matrik citra, protokol segmentasi.
e) Agen Penentu Dosis Penyemprotan Nama agen
: Penentu Dosis Penyemprotan.
Lifetime
: Selama sistem berjalan.
Percept
: Nilai terjemahan klasifikasi dn identifikasi
Action
: Penentuan nilai dosis.
Tujuan
: Menentukan nilai dosis aplikasi.
140
Fungsionalitas
: Menerjemahkan nilai klasifikasi ke dalam nilai PWM yang harus diaktifkan.
Protokol
: Protokol
identifikasi,
protokol
segmentasi,
protokol aktivasi. Hasil dan Pembahasan Pendefinisian Agen dalam Pemrograman Multithreading Pemrograman multi agen dilakukan dengan pendekatan komputasi paralel dengan memanfaatkan multi core yang ada pada prosesor terkini dengan bahasa pemrograman C#. C# (C sharp) adalah salah satu bahasa pemrograman yang mendukung pemrograman multithreading. Penggunaan pemrograman multithreading memungkinkan eksekusi secara paralel kode program pada masing-masing thread.
Thread adalah bagian independen yang dapat
dieksekusi secara simultan dengan bagian independen yang lain.
Agen
menempati sebuah thread yang terdiri dari satu atau lebih class obyek yang mampu melakukan satu atau lebih fungsi berdasarkan method yang dimiliki pada class tersebut. Berikut ini adalah contoh gambaran posisi agen dalam sebuah aplikasi multithreading pada sistem multithreading secara simultan. using System; using System.Threading; class ThreadTest { static void Main() { ThreadNaming agen2 = new Thread (x); agen2.Start(); // thread agen2 bekerja secara simultan dengan thread utama. // berisi class obyek pada lingkungan program utama . . . . . . . . . . . . . . . . . . } static void x() { //isi kode program dari agen2 // berisi class obyek dengan method yang ada didalam class // untuk jenis operasi x . . . . . . . . . . . . . . . . . . } }
141
Mekanisme penamaan suatu thread adalah dengan pengaturan sebagai berikut : class ThreadNaming { static void Main() { Thread.CurrentThread.Name = “main”; Thread agen1 = new Thread ( ); agen1.Name = “Agen-1”; agen1.Start(); Go(); } }
Pada praktek pemrograman multithreading diperlukan sinkronisasi untuk mengkoordinasikan aksi dari beberapa thread untuk mendapatkan hasil akhir yang diinginkan. Pada komputasi paralel pipeline suatu agen akan di-blocking sampai terjadi kondisi yang memenuhi syarat-syarat untuk unblock. Proses blocking diperlukan untuk menjamin bahwa suatu agen hanya bekerja sesuai dengan peruntukannya saja. Penanganganan suatu status yang di block menjadi status unblock membutuhkan mekanisme sinyal yang disediakan oleh class Monitor melalui static methods yang disediakan, yaitu Wait dan Pulse atau PulseAll. Dengan menggunakan mekanisme blocking seperti yang dijelaskan tersebut, sistem multi agen akan dapat bekerja sesuai dengan desain yang telah ditetapkan. Sistem statis dari multi agen menggambarkan urutan kerja sistem dari awal sampai akhir tanpa memperhatikan hubungan antar agen, protokol yang terlibat, jenis Percept dan Action, dan hubunganya dengan basis data. Secara ringkas cara kerja sistem multi agen yang diusulkan adalah sebagai berikut : - Obyek kondisi tanaman di lahan ditangkap citranya oleh agen penangkap citra. - Citra tanaman selanjutnya akan difilterisasi oleh agen filterisasi citra. - Hasil filterisasi menjadi masukkan bagi agen identifikasi tanaman dan agen segmentasi. - Hasil segmentasi dan identifikasi selanjutnya akan menjadi masukkan agen penentu dosis
142
- Langkah terakhir adalah aplikasi penyemprotan sesuai dosis dan lokasi. Obyek tanaman
Agen Penangkap Citra Agen Filterisasi Citra
Agen klasifikasi Non-parametrik Bayes Agen penentu dosis
Penyemprotan sesuai Dosis dan Lokasi Gambar 74.
Blok diagram sistem multi agen pengendalian gulma pada lahan terbuka (praolah).
Obyek tanaman
Agen Penangkap Citra Agen Filterisasi Citra
Agen analisa jenis tanaman
Agen klasifikasi kepadatan serangan gulma Agen penentu dosis
Penyemprotan sesuai Dosis dan Lokasi Gambar 75.
Blok diagram sistem multi agen pengendalian gulma pada lahan dengan tanaman utama (pascatumbuh).
Berbeda dengan gambaran diagram sistem secara statis (Gambar 74 dan Gambar 75), pada sistem dinamis dapat dengan jelas terlihat hubungan antara satu agen dengan agen yang lain, misalnya apa jenis protokol yang bekerja pada suatu agen atau antar agen, apa Percept dan Action dari
143
masing-masing agen. Percept adalah masukan yang diterima oleh suatu agen, dan Action adalah tindakan yang dilakukan oleh agen sebagai respon dari Percept yang diterima. Bentuk dan tatacara komunikasi antar agen ditentukan oleh Protokol. Pada Gambar 76 dapat dilihat hubungan antar agen dan protokol yang menjembatani komunikasi antar agen.
Contoh bentuk kerja protokol
adalah bagaimana protokol pencacah jarak terhubung pada dua agen yaitu Agen Penangkap Citra dan Agen Penentu Dosis. Protokol ini bertugas menentukan kapan waktu penangkapan citra harus dilakukan, dan kapan penyemprotan harus dimulai. Keberadaan protokol ini penting karena sangat menentukan akurasi kerja sistem dari segi ketepatan pengambilan citra dan ketepatan lokasi penyemprotan.
Apabila agen yang bekerja
menggunakan protokol ini bekerja dengan baik, maka fenomena blankspot dan overlap yang berlebihan dapat dihindari. Bentuk blank-spot dapat berupa penggambaran peta yang memiliki jarak antar frame, atau pada tahap aplikasi berupa kejadian adanya bagian lahan yang tidak mendapatkan penyemprotan sesuai lokasi. Sedangkan fenomena overlap adalah berupa penggambaran peta yang tumpang tindih antar frame, atau pada tahap aplikasi di lahan adalah kejadian dimana suatu lokasi mendapat perlakuan penyemprotan ganda. Dosis penyemprotan adalah keluaran (action) dari Agen Penentu Dosis. Penentuan dosis melibatkan dua agen lain selain Agen Penentu Dosis, yaitu Agen Identifikasi dan Agen Segmentasi. Bentuk komunikasi antara ketiga agen tersebut diatur oleh protokol identifikasi dan protokol segmentasi. Karakteristik dan atribut yang dimiliki oleh agen-agen yang dibangun antara lain : f. Autonomy Agen-agen yang telah dibuat dapat melakukan tugas secara mandiri dan tidak dipengaruhi secara langsung oleh user, agen lain. Untuk mencapai tujuan dalam melakukan tugasnya secara mandiri,
144
agen yang dibangun memiliki kemampuan kontrol terhadap setiap aksi yang mereka perbuat, baik aksi keluar maupun kedalam. g. Intelligence Beberapa agen yang dibangun (agen identifikasi tanaman dan agen penentu kepadatan serangan gulma)
mempunyai standar
minimum untuk bisa disebut agen, yaitu intelegensi (intelligence). Dalam konsep intelligence, ada tiga komponen yang harus dimiliki: internal knowledge base yaitu basis pengetahuan pada masing-masing agen, kemampuan reasoning berdasar pada knowledge base yang dimiliki. h. Delegation Pada sistem multi agen yang dibangun suatu pekerjaan dibagi menjadi beberapa proses dimana masing-masing proses didelegasikan pada masing-masing agen yang berbeda. Fenomena pendelegasian (delegation) ini adalah karakteristik utama suatu program disebut agen. i. Reactivity Karakteristik agen yang telah dimiliki oleh agen-agen yang dibangun adalah kemampuan untuk bisa cepat beradaptasi dengan adanya perubahan informasi yang ada dalam suatu lingkungan (informasi dari agen lain). j. Communication and Coordination Capability Agen yang dibangun
memiliki kemampuan berkomunikasi
dengan user dan juga agen lain, sehingga dapat mendukung koordinasi dan kolaborasi dengan agen lain. 2. Perancangan Komputasi Paralel pada Sistem Multi Agen Sebagaimana yang telah dibahas dalam hasil kinerja aplikator cairan berbasis sensor rata-rata waktu kerja sistem untuk menyemprot sepanjang 102 cm diluar waktu aktivasi aktuator penyemprot adalah 0.76791 detik. Berdasarkan nilai tersebut berarti kecepatan kerja sistem adalah 1.3283 m/s atau sama dengan 4.7818 km/jam dengan lebar kerja 136 cm berarti sistem penyemprot memiliki kapasitas kerja 0.6503 ha/jam.
Sedangkan hasil
145
perhitungan dengan boom sprayer dengan lebar kerja 12 meter dan kecepatan maju 5 km/jam memiliki kapasitas kerja 6 ha/jam. Hasil perbandingan tersebut menunjukkan bahwa penyemprot berbasis sensor yang dibangun hanya memiliki kapasitas kerja maksimum 0.108 kali kapasitas kerja boom sprayer. Dengan kondisi tersebut maka perlu dilakukan metode pengoperasian sistem secara paralel untuk mencapai hasil yang lebih cepat untuk mendapatkan kinerja mendekati kapasitas kerja boom sprayer. Untuk dapat mengadaptasi suatu algoritma sekuensial ke dalam algoritma paralel, terlebih dahulu harus dipelajari mengenai konsep pemrosesan paralel dan bagaimana proses-proses dapat berlangsung secara paralel (Purbasari, 2002). Teknik pembangunan algoritma paralel dapat dibedakan menjadi paralelisme data dan partisi data. Paralelisme data lahir dari penelitian bahwa aplikasi utama komputasi paralel adalah dalam bidang sain dan teknik yang umumnya melibatkan array multi-dimensi yang sangat besar. Dalam program sekuensial biasa, array ini dimanipulasi dengan mempergunakan perulangan bersarang untuk mendapatkan hasil. Kebanyakan program paralel dibentuk dengan mengatur ulang algoritma sekuensial agar perulangan bersarang tersebut dapat dilaksanakan secara paralel. Paralelisme data menunjukkan bahwa basis data dipergunakan sebagai dasar untuk membentuk aktifitas paralel, dimana bagian yang berbeda dari basis data akan diproses secara paralel. Dengan kata lain paralelisme dalam program ini dibentuk dari penerapan operasi-operasi yang sama ke bagian array data yang berbeda (Purbasari, 2002). Partisi Data adalah teknik khusus dari Paralelisme Data, dimana data disebar ke dalam memori-memori lokal multikomputer. Sebuah proses paralel kemudian ditugaskan untuk mengoperasikan masing-masing bagian data. Proses tersebut harus terdapat dalam lokal memori yang sama dengan bagian data, karena itu proses dapat mengakses data tersebut secara lokal. Untuk memperoleh kinerja yang baik, setiap proses harus memperhatikan variabelvariabel dan data-data lokalnya masing-masing.
146
Cacah jrk
Tangkap Citra
Citra tnm
Agen penangkap citra
Agen Filterisasi Filterisasi
P. Pencacah Jarak P. Citra Tanaman
P. Kualitas Citra
P. matrik
DB Citra
Matrik citra
Kepadatan
Matrik citra
Agen Segmentasi
Agen Identifikasi
jenis tanaman
P. Identifikasi
P. Segmentasi Segmentasi
Agen Penentu dosis
Identifikasi tnmn
DB Peta Perlakuan Keterangan
Penentuan dosis
Percept Action
P. Aktivasi Akt.
Penyemprotan Protokol Agen
Gambar 76.
Diagram sistem multi agen pengendalian gulma berbasis sensor.
147
Metode yang sesuai bagi permasalahan peningkatan kecepatan kerja sistem pengendalian gulma berbasis sensor adalah komputasi paralel dengan teknik pipeline. Hal ini didasarkan pada cara kerja mulai dari penangkapan citra sampai penyemprotan adalah deretan kerja yang harus dikerjakan secara berurutan. Dalam teknik pipeline, problem dibagi menjadi beberapa proses yang harus dilaksanakan satu setelah lainnya. Setiap tugas nantinya akan dieksekusi oleh proses atau prosesor yang berbeda dalam satu pipa komputasi.
Gambar 77. Proses pipeline Pipeline dapat meningkatkan kecepatan untuk problem yang sekuensial, pada tiga kondisi : 1) Jika tugas komputasi yang dilakukan melibatkan beberapa tahapan proses berurutan dimana output suatu proses menjadi input bagi proses berikutnya. 2) Jika data yang dilibatkan dalam komputasi berjumlah banyak jauh melebihi jumlah prosesor yang ada. 3) Jika waktu eksekusi dari masing-masing proses relatif seragam. Gambar 78 menampilkan diagram yang berisi deretan proses antar agen pada kasus pengendalian gulma di lahan terbuka.
Diagram tersebut
menunjukkan bagaimana keluaran suatu proses menjadi masukan bagi proses berikutnya. Langkah pertama dari analisa perhitungan paralel dengan metode pipeline adalah menentukan granularitas proses. Granularitas adalah waktu berlangsungnya atau waktu eksekusi setiap proses.
Berdasarkan hasil
pengukuran waktu kerja tiap instance diperoleh data granularitas tiap-tiap proses sebagaimana ditampilkan pada Tabel 24.
148
Proses dan Unit yang terlibat
Keluaran
Penangkap Citra - Ambil citra lahan - simpan - Tampilkan waktu operasi
Filterisasi - Loading gambar - Filterisasi - Simpan file (*.txt) hasil filterisasi - Tampilkan waktu operasi
Image format (*.jpg/*.bmp)
hasil filterisasi (buffer 1)
Segmentasi
Gambar 78.
- Loading file filterisasi - Segmentasi kedalam 4 kelas - Simpan file (*.txt) hasil segmentasi - Tampilkan waktu operasi
hasil segmentasi (buffer 2)
Penentuan Dosis
hasil penentuan dosis (file teks)
- Loading file segmentasi - Terjemahkan hasil segmentasi ke kode aktivasi - Simpan file (*.txt) hasil penentuan dosis - Tampilkan waktu operasi
Mikrokontroler
Aktuator
Blok Diagram Hubungan Operasional Antar Agen pada Kasus Pengendalian Gulma di Lahan Terbuka.
Diagram pipeline ruang-waktu disusun berdasarkan urutan proses dengan memperhatikan lama proses dan sifat pengerjaan tiap proses. Gambar 80. menunjukkan bentuk diagram pipeline untuk 5 proses pekerjaan pada kegiatan pengendalian gulma periode praolah dengan menggunakan 4 buah prosesor. Masing-masing prosesor memiliki tugas khusus yang berbeda satu dengan lainnya.
Tugas masing-masing prosesor tersebut adalah penangkap citra,
loading file citra, filterisasi, analisis kelas serangan dan penentuan dosis.
149
Tabel 24. Waktu kerja rata-rata tiap proses pada pengendalian gulma di lahan terbuka. Nomor
Nama Proses
Rata-rata waktu kerja (detik)
1.
Penangkapan citra
0.20449
2.
Loading file
0.17119
3.
Filterisasi citra
0.19612
4.
Analisa kelas serangan
0.10619
5.
Penentuan dosis
0.08992
Jumlah
0.76791
Pada diagram pipeline
dapat dilihat bahwa setiap proses
dikerjakan
secara paralel pada prosesor yang terpisah, dan pemrosesan terhadap citra kedua dilakukan tanpa harus menunggu selesainya proses terhadap citra pertama. Pembatas antar kegiatan dalam proses tersebut adalah penangkapan citra, karena penangkapan citra memerlukan waktu terlama dan proses selanjutnya hanya bisa dilakukan setelah citra ditangkap dan disimpan. Proses komunikasi pada metode komputasi paralel pipeline adalah bahwa satu proses melakukan komputasi terhadap beberapa nilai yang akan dipergunakan oleh proses paralel lainnya. Penanganan masalah tersebut memerlukan
suatu kanal (channel) yang mempunyai properti ‘kosong’.
Ketika suatu proses membaca kanal yang “kosong”, maka eksekusi proses secara otomatis akan tertunda sampai terdapat proses lain yang menulis suatu nilai ke dalam kanal tersebut. Misal proses P2 akan menunggu pembacaan variabel kanal sebelum proses P1 selesai menuliskan suatu nilai ke dalam variabel kanal.
Dengan demikian komunikasi proses dijamin berlangsung
dengan benar. Nilai overhead aktivasi Proses 2 dari posisi wait adalah pada kisaran waktu 400 – 1000 ns.
150
Proses 1
Proses 2 Tulis
Baca Kanal
Gambar 79. Komunikasi antar proses secara paralel Penggal program dari bentuk komunikasi antar agen dalam bentuk task adalah sebagai berikut : var buffer1 = new BlockingCollection
(limit); var buffer2 = new BlockingCollection(limit); var f = new TaskFactory(TaskCreationOptions.LongRunning,TaskContinuationOptions.None); var task1 = f.StartNew(() => / proses internal filterisasi
/ menghasilkan buffer1 Pipeline.Producer(buffer1, , , inc)); var task2 = f.StartNew(() => / membaca buffer1 hasil filterisasi / proses internal segmentasi / menghasilkan buffer2 Pipeline.Consumer(buffer1, new Pipeline., buffer2)); Pipeline.Producer(buffer2, , , inc)); var task3 = f.StartNew(() => / membaca buffer2 hasil segmentasi / proses internal penentuan dosis /menghasilkan file text akhir (dosis) { result_str = Pipeline.LastConsumer(buffer2, str); }); Task.WaitAll(task1, task2, task3); Hans-.uk> Parallel Programming
151
Gambar 80. Diagram pipeline dengan 4 prosesor pada kegiatan pengendalian gulma periode praolah Hasil analisa peningkatan kecepatan pada komputasi paralel metode pipeline menunjukkan bahwa peningkatan nilai speed up berbanding lurus dengan semakin bertambahnya jumlah pekerjaan. Pekerjaan adalah rangkaian proses yang dilakukan pada satu buah citra. Nilai speed up akan bergerak dari 1 pada satu pekerjaan sampai 3.745 pada 1000 pekerjaan, nilai speed up selanjutnya akan mencapai 3.775 pada jumlah pekerjaan 100 000 sampai tak hingga dengan efisiensi sebesar 93.88%.
Gambar 81 menunjukkan grafik
peningkatan nilai speed up akibat bertambahnya jumlah pekerjaan.
4.0 3.5
Speedup
3.0 2.5 2.0 1.5 1.0 0
200
400
600
800
1000
Jumlah pekerjaan
Gambar 81. Grafik hubungan speed up dan jumlah pekerjaan pada kegiatan pengendalian gulma periode praolah.
152
Sebagaimana telah dijelaskan pada pembahasan pendeteksian serangan gulma, pendeteksian gulma pada periode pascatumbuh membutuhkan agen cerdas untuk menganalisa jenis tanaman. Berdasarkan hasil perhitungan waktu kerja satu frame yang diperlukan untuk menganalisa tanaman dengan ukuran 100 x 140 piksel diperoleh nilai waktu 0.0012 detik. Karena dalam satu citra hasil tangkapan kamera rata-rata memiliki 10 citra tanaman utama, maka kebutuhan waktu untuk analisa dimensi fraktal adalah 0.012 detik.
Gambar
82. menunjukkan bentuk diagram pipeline untuk 6 proses pekerjaan pada kegiatan pengendalian gulma periode pascatumbuh dengan menggunakan 4 buah prosesor. Hasil perhitungan kinerja sistem menunjukkan nilai speed up akan bergerak dari 1 pada satu pekerjaan sampai 3.813 pada 1000 pekerjaan, nilai speed up selanjutnya akan mencapai 3.814 pada jumlah pekerjaan 100 000 sampai tak hingga dengan efisiensi sebesar 95.35%. Gambar 83 menunjukkan grafik peningkatan nilai speed up akibat bertambahnya jumlah pekerjaan.
Gambar 82. Diagram pipeline dengan 4 prosesor pada kegiatan pengendalian gulma periode pascatumbuh
153
4.0 3.5
Speed up
3.0 2.5 2.0 1.5 1.0 0
200
400
600
800
1000
Jumlah Pekerjaan
Gambar 83. Grafik hubungan speed up dan jumlah pekerjaan pada kegiatan pengendalian gulma periode pascatumbuh. Pengoperasian sistem tanpa melalui penyimpanan dan pengambilan file citra akan mempersingkat waktu operasi tiap proses. Hal ini secara otomatis akan meningkatkan kecepatan proses tiap pekerjaan.
Hasil analisa secara
teoritis pada dimensi citra yang memiliki panjang 102 cm dan lebar 136 cm dengan pengoperasian prosesor tunggal menunjukkan kecepatan maju maksimum adalah 8.63 km/jam.
Apabila pekerjaan dilakukan dengan 2
prosesor yang bekerja dengan metode pipeline akan diperoleh nilai speed up 1.855 dan kecepatan maju 16.00 km/jam dengan efisiensi sebesar 92.28%.
Gambar 84. Diagram pipeline dengan 2 prosesor pada kegiatan pengendalian gulma periode praolah tanpa prosedur penyimpanan citra.
154
3.0
Axis Title
2.5
2.0
1.5
1.0 0
200
400
600
800
1000
Axis Title
Gambar 85. Grafik hubungan speed up dan jumlah pekerjaan pada kegiatan pengendalian gulma praolah tanpa prosedur penyimpanan citra.
Simpulan 1. Pemrograman sistem multi agen telah dibangun dengan pendekatan pemrograman multithreading. Agen-agen yang terlibat dalam kegiatan pengendalian gulma adalah ; agen penangkap citra, agen filterisasi, agen identifikasi tanaman, agen penentu kepadatan serangan gulma, agen penentu dosis. 2. Analisa kecepatan proses komputasi paralel dilakukan dengan melakukan granularisasi masing-masing proses pada tiap agen. Hasil perhitungan kinerja sistem pada sistem pengendalian gulma praolah menunjukkan nilai speedup akan bergerak dari 1 pada satu pekerjaan sampai 3.745 pada 1000 pekerjaan, nilai speedup selanjutnya akan mencapai 3.775 pada jumlah pekerjaan 100 000 sampai tak hingga dengan efisiensi sebesar 93.88%. Penggunaan sistem multi agen akan mempersingkat waktu proses, sehingga nilai kecepatan maju maksimum dari VRT menjadi 3.775 kali lebih cepat, yaitu dari 4.78 km/jam menjadi 17.95 km/jam. 3. Hasil perhitungan dari kinerja sistem pada sistem pengendalian gulma pascatumbuh menunjukkan bahwa nilai speed up akan bergerak dari 1 pada satu pekerjaan sampai 3.813 pada 1000 pekerjaan, nilai speed up selanjutnya
155
akan mencapai 3.814
pada jumlah pekerjaan 100 000 sampai tak hingga
dengan efisiensi sebesar 95.35%. Penggunaan sistem multi agen akan mempersingkat waktu proses, sehingga nilai kecepatan maju maksimum dari VRT menjadi 3.814 kali lebih cepat, yaitu dari 4.71 km/jam menjadi 17.96 km/jam. 4. Hasil analisa secara teoritis pada dimensi citra yang memiliki panjang 102 cm dan lebar 136 cm dengan pengoperasian prosesor tunggal menunjukkan kecepatan maju maksimum dari sistem yang bekerja tanpa proses penyimpanan file citra adalah 8.63 km/jam. Apabila pekerjaan dilakukan dengan 2 prosesor yang bekerja dengan metode pipeline akan diperoleh nilai speed up 1.855 dan kecepatan maju maksimum 16.00 km/jam dengan efisiensi sebesar 92.28%.
156