PIRANTI LUNAK SISTEM INFORMASI HUTAN KOTA PLANT AND TREE INFORMATION SYSTEM (PLATIS)
M. FAJAR ADITYARAMA PUTRA
DEPARTEMEN KONSERVASI SUMBERDAYA HUTAN DAN EKOWISATA FAKULTAS KEHUTANAN INSTITUT PERTANIAN BOGOR 2011
RINGKASAN MUHAMMAD FAJAR ADITYARAMA PUTRA. E34052382. Piranti lunak Sistem Informasi Hutan Kota Plant And Tree Information System (PLATIS). Dibimbing oleh ENDES N. DAHLAN. Pembangunan hutan kota harus memperhatikan beberapa hal demi tercapainya tujuan dan keberhasilan pembangunan hutan kota, salah satunya adalah pemilihan tanaman yang sesuai dengan kondisi ekologis lokasi pembangunan hutan kota. Karakter tumbuhan juga harus sesuai dengan tujuan pembangunan hutan kota tersebut. Penelitian ini bertujuan untuk membuat sistem informasi mengenai tumbuhan. Dengan adanya sistem informasi dalam bentuk digital ini, diharapkan dapat memberikan kemudahan bagi siapa saja yang membutuhkan informasi untuk mengakses dan mencari informasi mengenai tumbuhan, terutama untuk pembangunan hutan kota. Informasi yang dibutuhkan tersebut adalah informasi mengenai nama ilmiah, nama daerah, tipe hujan, cahaya, altitud minimum, altitud maksimum, jenis tanah, tekstur tanah, solum, pH, daya transpirasi, daya serap CO 2, ketahanan garam, ketahanan genang, bentuk tajuk, diameter tajuk, model arsitektur, tinggi tumbuhan, kelas tinggi, kelas tajuk, serta tiga foto tumbuhan. Penelitian ini menghasilkan sebuah piranti lunak sistem informasi yang dinamakan PLATIS (Plant and Tree Information System). PLATIS terdiri atas tiga menu form, yaitu form tumbuhan, form famili, dan form tutorial. Piranti lunak ini dibuat dengan menggunakan MS Visual Studios 2005 dengan basis data yang dibuat dengan MS Access XP, serta sebuah program .NetFx sebagai komponen untuk menjalankan aplikasi ini.
Kata kunci : Sistem informasi, piranti lunak, PLATIS
SUMMARY MUHAMMAD FAJAR ADITYARAMA PUTRA. E34052382. Piranti lunak Sistem Informasi Hutan Kota Plant And Tree Information System (PLATIS). Under supervision of ENDES N. DAHLAN. The development of urban forest must consider the purpose for the successful development of urban forestry, one of which is those plant selected suitable with the ecological conditions where the urban forest will be estabilished. The characters of the plants that will be planted must also suit the purpose of the development of urban forest. The objective of this study was to create an information system of plants. Such information system will be developed in digital form, and would provide ease of access of the information on the selected plants. Information of plants that were be collected include scientific name, local name, rainfall, light inensity, altitude, soil type, soil texture, sollup, pH, Transpiration, CO2 absorption, salt endurance, pool endurance, canopy shape, canopy class, and the picture of plant. This study produce a system information software that named PLATIS (Plant and Tree Information System). PLATIS consist of three form, plant form, family form, and tutorial form. This software made using MS Visual Studios 2005 with database that made using MS Access XP, and using >NetFx (dotNetFramework) as a component to run this software.
Keywords : Information system, Software, PLATIS
PIRANTI LUNAK SISTEM INFORMASI HUTAN KOTA PLANT AND TREE INFORMATION SYSTEM (PLATIS)
M. FAJAR ADITYARAMA PUTRA
Skripsi Sebagai salah satu syarat untuk memperoleh gelar Sarjana Kehutanan pada Program Studi Konservasi Sumberdaya Hutan dan Ekowisata Fakultas Kehutanan, Institut Pertanian Bogor
DEPARTEMEN KONSERVASI SUMBERDAYA HUTAN DAN EKOWISATA FAKULTAS KEHUTANAN INSTITUT PERTANIAN BOGOR 2011
PERNYATAAN Dengan ini saya menyatakan bahwa skripsi berjudul “Piranti Lunak Sistem Informasi Hutan Kota Plant And Tree Information System (PLATIS)” adalah benar-benar hasil karya saya sendiri dengan bimbingan dosen pembimbing dan belum pernah digunakan sebagai karya ilmiah pada perguruan tinggi atau lembaga manapun. Sumber informasi yang berasal atau dikutip dari karya yang diterbitkan dari penulis lain telah disebutkan dalam teks dan dicantumkan dalam Daftar Pustaka di bagian akhir skripsi ini.
Bogor, Juli 2011
M. Fajar Adityarama Putra NRP. E34052382
Judul Skripsi
: Piranti Lunak Sistem Informasi Hutan Kota Plant And Tree Information System (PLATIS)
Nama
: M. Fajar Adityarama Putra
NRP
: E34052382
Program Studi
: Konservasi Sumberdaya Hutan dan Ekowisata
Menyetujui, Pembimbing
Dr. Ir. Endes N. Dahlan, MS NIP. 19501226 198003 1 002
Mengetahui: Ketua DepartemenKonservasi Sumberdaya Hutan dan Ekowisata Fakultas Kehutanan Institut Pertanian Bogor
Prof. Dr. Ir. Sambas Basuni,MS NIP. 19580915 198403 1 003 Tanggal :
i
KATA PENGANTAR
Puji dan syukur penulis panjatkan kepada Allah SWT atas segala Rahmat dan Hidayah-NYA sehingga skripsi ini berhasil diselesaikan. Shalawat serta salam penulis sampaikan kepada Nabi Muhammad SAW beserta keluarga, para sahabat serta umatnya. Tema yang dipilih dalam penelitian ini adalah hutan kota, dengan judul Piranti Lunak Sistem Informasi Hutan Kota Plant And Tree Information System (PLATIS). Terimakasih penulis ucapkan kepada Dr. Ir. Endes N. Dahlan, MS selaku dosen pembimbing yang telah memberikan bimbingan, saran, arahan, motivasi, serta segala masukan yang sangat berguna bagi penulis. Tak lupa penulis mengucapkan terimakasih kepada orangtua penulis atas kesabaran dan pengorbanan yang sudah dilakukan hingga saat ini. Penulis juga mengucapkan terimakasih kepada Nawawi, karena piranti lunak yang disusun ini menggunakan dasar dari piranti lunak yang terlebih dahulu disusun oleh beliau, yang kemudian disempurnakan oleh penulis. Semoga skripsi ini dapat bermanfaat bagi semua dan mendapatkan ridhoNya, terimakasih.
Bogor, Juli 2011
Penulis
ii
RIWAYAT HIDUP Penulis dilahirkan di Bogor pada Tanggal 22 Agustus 1987 dari ayah Taufik Effendy dan ibu Henny Sucitrowati. Penulis merupakan anak pertama dari dua bersaudara. Pada tahun 1992, penulis menyelesaikan pendidikan kanak-kanak dan pada tahun yang sama melanjutkan sekolah dasar di SDN Pengadilan 2 Bogor. Setelah menyelesaikan masa studi pendidikan dasar selama 6 tahun, penulis melanjutkan sekolah menengah pertama di SMP Negeri 3 Bogor. Setelah lulus dari SMPN 3 Bogor, penulis melanjutkan pendidikan di SMA plus Bina Bangsa Sejahtera, Bogor. Pada tahun 2005, penulis lulus dari SMA plus Bina Bangsa Sejahtera dan pada tahun yang sama, penulis diterima di IPB Program Studi S1 melalui Seleksi Penerimaan Mahasiswa Baru (SPMB). Setelah melewati masa Tingkat Persiapan Bersama (TPB) selama 1 tahun di IPB, penulis akhirnya memilih dan diterima pada Program Studi Konservasi Sumberdaya Hutan dan Ekowisata, Fakultas Kehutanan. Selama menjalani masa kuliah di IPB, penulis melaksanakan beberapa kegiatan seperti kegiatan Praktik Pengelolaan Ekosistem Hutan (PPEH) yang dilakukan di wilayah Linggarjati – Indramayu, kegiatan Praktik Umum Konservasi Ex-Situ (PUKES) yang dilaksanakan di Taman Margasatwa Ragunan dan Karyasari, serta kegiatan Praktik Kerja Lapang (PKL) yang dilaksanakan di Taman Nasional Bali Barat.
iii
UCAPAN TERIMA KASIH
Puji dan syukur penulis ucapkan kehadirat Allah SWT yang atas kehendakNya penulis dapat menyelesaikan skripsi ini. Sebagai manusia biasa yang memiliki keterbatasan, penulis menyadari penyusunan skripsi ini tak lepas dari bantuan banyak pihak. Untuk itu, dengan segala kerendahan hati, ucapan terima kasih yang tak terhingga wajib penulis ucapkan kepada : 1. Dr. Ir. Endes N. Dahlan, MS selaku dosen pembimbing yang telah memberikan pengarahan, bimbingan dan saran selama penyusunan hingga penyelesaian karya ilmiah ini. 2. Bapak Dr. Ir. Nurheni Wijayanto, MS yang telah berkenan sebagai dosen penguji, dan Dr. Ir. Arzyana Sunkar, M. Sc yang telah berkenan sebagai ketua sidang. 3. Seluruh staff pengajar, khususnya staff pengajar departemen Konservasi Sumberdaya Hutan dan Ekowisata atas segala ilmu yang telah diberikan selama penulis menuntut ilmu. 4. Ibu Henny Sucitrowati dan Bapak Taufik Effendy, orang tua saya, yang telah membesarkan dan mendidik saya. Saya mutlak berterima kasih dan sekaligus meminta maaf kepada beliau berdua karena hanya dengan dukungan beliau berdualah saya dapat melanjutkan pendidikan saya hingga perguruan tinggi. Saya menyadari, tanpa beliau berdua, mustahil saya bisa menjadi sekarang. Begitu banyak pengorbanan yang beliau berikan kepada saya, dari kecil hingga dewasa. Pengorbanan serta kasih sayang yang tak terhitung dan tak terhingga banyaknya. 5. Seluruh staff administrasi DKSHE atas segala bantuannya selama ini. 6. Keluarga besar KSH’42 (Tarsius 42) atas tawa, canda, suka dan duka yang telah kita lalui selama ini. 7. Agung Imansyah dan Naila Maryam atas segala bantuan, dorongan semangat, serta atas persahabatan yang tak ternilai harganya. 8. Rekan-rekan yang berada di sekeliling penulis selama penyusunan karya ilmiah ini : Muti, Teh Lin, Ikin, Iwan (komti), Uphie, Wista, Bebye, Jojo, Arman, Jadda, Risto, Koko, Nicanor, Ari S, Ari Jati, Nina, Dora, Whanee.
iv
9. Keluarga bapak Sudarto : Bapak Sudarto, Ibu Elly, Galih Eka Pratiwi, S. Tp dan Gesit Dwi Ardianto atas segala dukungan dan doanya selama ini. 10. Semua pihak yang tidak dapat disebutkan satu persatu yang telah mencurahkan segala tenaga, waktu maupun pikirannya kepada penulis dalam menyelesaikan karya ilmiah ini. Semoga kebaikan yang telah diberikan mendapat balasan dari Allah SWT, Amin.
v
DAFTAR ISI Halaman KATA PENGANTAR .......................................................................................... i RIWAYAT HIDUP ............................................................................................. ii UCAPAN TERIMA KASIH ............................................................................... iii DAFTAR ISI ....................................................................................................... v DAFTAR GAMBAR ......................................................................................... vii DAFTAR TABEL ............................................................................................ viii DAFTAR LAMPIRAN ....................................................................................... ix I
II
III
PENDAHULUAN ......................................................................................... 1 1.1
Latar Belakang ................................................................................ 1
1.2
Tujuan Tugas Akhir ........................................................................ 3
1.3
Manfaat Tugas Akhir ...................................................................... 3
TINJAUAN PUSTAKA ............................................................................... 4 2.1
MS Visual Basic 2005..................................................................... 4
2.2
Sistem Informasi ............................................................................. 4
METODOLOGI .......................................................................................... 6 3.1
Waktu ............................................................................................. 6
3.2
Alat Dan Bahan .............................................................................. 6
3.2.1
Alat ......................................................................................... 6
3.2.2
Bahan ...................................................................................... 6
3.3
IV
Metode Pembuatan Piranti Lunak ................................................... 6
3.3.1
Perancangan Basis Data ........................................................... 6
3.3.2
Perancangan Piranti Lunak ...................................................... 7
3.3.3
Implementasi Program ............................................................. 7
3.3.4
Pengujian Program .................................................................. 8
HASIL DAN PEMBAHASAN ................................................................... 9 4.1
Hasil ............................................................................................... 9
4.1.1
Basis Data ............................................................................... 9
4.1.2
Program Piranti Lunak............................................................. 9
4.1.2.1 Form Tumbuhan ............................................................. 10
vi
4.1.2.2
Form Famili .................................................................... 12
4.1.2.3 Form Tutorial .................................................................. 13 4.2 V
Pembahasan .................................................................................. 13
KESIMPULAN DAN SARAN................................................................... 18 5.1
Kesimpulan ................................................................................... 18
5.2
Saran ............................................................................................ 18
DAFTAR PUSTAKA ........................................................................................ 19 LAMPIRAN ...................................................................................................... 21
vii
DAFTAR GAMBAR Gambar
Halaman
1. Tahapan Pembuatan Sistem Informasi Hutan Kota ........................................... 8 2. Tampilan Utama .............................................................................................. 9 3. Tampilan Form Tumbuhan............................................................................. 11 4. Tampilan Form Famili ................................................................................... 12 5. Tampilan Form Tutorial ................................................................................. 13
viii
DAFTAR TABEL Halaman Tabel 1. Klasifikasi Iklim Menurut Schmidt-Ferguson ....................................... 17
ix
DAFTAR LAMPIRAN Halaman Lampiran 1. Halaman Utama ............................................................................. 21 Lampiran 2. Form Tumbuhan............................................................................. 25 Lampiran 3. Form Famili ................................................................................... 41 Lampiran 4. Form Tutorial ................................................................................. 44
BAB I PENDAHULUAN 1.1 Latar Belakang Hutan kota adalah hamparan lahan yang bertumbuhan pohon-pohon yang kompak dan rapat di dalam perkotaan baik pada tanah negara maupun tanah hak yang ditetapkan sebagai hutan kota oleh pejabat berwenang (Peraturan Pemerintah No. 63 Tahun 2003). Hutan kota yang ada dapat berbentuk antara lain berupa jalur hijau (dapat berupa pohon peneduh jalan, jalur hijau di bawah kawat listrik tegangan tinggi, jalur hijau di tepi rel kereta api, jalur hijau di tepi sungai di dalam maupun di luar kota), tanaman kota yaitu tanaman yang ditata sedemikian rupa baik sebagian maupun semuanya rekayasa manusia untuk mendapatkan komposisi tertentu yang indah; kebun dan halaman; kebun raya, hutan raya dan kebun binatang; hutan lindung; kuburan dan taman pemakaman pahlawan (Dahlan 1992). Hutan kota berfungsi untuk memperbaiki iklim mikro, nilai estetika, meresapkan air, menciptakan keserasian lingkungan fisik kota dan menjaga keseimbangan ekosistem perkotaan (Jauhari, 2003). Seiring berjalannya waktu, lingkungan perkotaan semakin hari semakin buruk. Perkembangan sarana dan prasarana yang semakin lengkap mau tidak mau menekan ruang terbuka hijau (RTH). Banyak lahan yang ditumbuhi tumbuhan hijau dikonversi menjadi kawasan perumahan, industri, jalur akses, serta sarana dan prasarana lainnya. Padahal kualitas ekologi dapat berpengaruh pada produktifitas perekonomian kota. Kualitas ekologi yang buruk dapat menurunkan kualitas sumber daya manusia (SDM) yang dapat mengakibatkan penurunan produktifitas perekonomian perkotaan. Maka dari itu, harus ada usaha dalam mamperbaiki kualitas ekologi perkotaan melalui penataan lingkungan dan pembangunan hutan kota. Namun dalam pelaksanaannya, tidak sedikit usaha perbaikan kualitas ekologi yang mengalami kegagalan. Sekitar 30% dari total jumlah pohon yang ditanam dalam program penghijauan di Kota Bandung, mati (Rohayati dan Aksan, 2010). Kejadian yang lebih parah terjadi pada penanaman hutan bakau di Teluk Parepare yang terjadi pada tahun 2002. BAPEDALDA melaksanakan kegiatan penanaman hutan mangrove sebanyak 300 pohon di Lumpue dan 200 pohon di
2
Cempae, namun yang mampu tumbuh sampai sekarang hanya sekitar 30% di daerah Lumpue sedangkan di daerah Cempae semuanya mati (Uwaisalqarny, 2008). Pesurnay (1997) melakukan penelitian mengenai evaluasi tanaman penghijauan di lokasi PPKAN-34 kawasan Gunung Nona Kotamadya Ambon. Evaluasi
tanaman penghijauan dilakukan 3
tahun setelah penanaman.
Pertumbuhan tanaman penghijauan mengalami perbedaan.. Hal ini disebabkan keadaan geologis pada tiap plot berbeda. Menurut Retnowati (1988), pada umur 2 tahun mangium sudah mulai berbunga dan berbuah serta mampu menghasilkan biji yang baik. Namun berdasarkan penelitian Pesurnay (1997) pada lokasi penelitiannya tidak ditemukan tanaman mangium yang sudah menghasilkan bunga meskipun usianya sudah 3 tahun. Berdasarkan penelitian tersebut, dapat disimpulkan bahwa tiap-tiap tanaman memiliki kebutuhan yang berbeda akan kondisi tempat hidupnya. Ada tanaman yang yang dapat tumbuh baik pada tanah yang basah dan ada tanaman yang justru tumbuh baik pada tanah yang kering, ada juga tanaman yang dapat tumbuh baik pada kedua kondisi tanah tersebut. Begitu pula dengan kondisi ekologi lainnya. Serta ada beberapa tanaman yang semasa hidupnya memerlukan perlakuan khusus agar dapat tumbuh dengan baik. Menurut Dahlan (1992) informasi yang perlu diperhatikan dalam pemilihan jenis tanaman yang akan digunakan untuk pembangunan hutan kota adalah : 1.
Persyaratan edafis : pH, jenis tanah, tekstur, altitud, salinitas dan sejenisnya.
2.
Persyaratan meteorologis : suhu, kelembaban udara, kecepatan angin, dan radiasi sinar matahari.
3.
Persyaratan umum tanaman.
4.
Persyaratan untuk pohon peneduh jalan.
5.
Persyaratan estetika.
6.
Persyaratan untuk pemanfaatan khusus : disesuaikan dengan tujuan. Pemilihan jenis tanaman untuk hutan kota merupakan salah satu langkah
yang penting guna menuju keberhasilan program penghijauan kota. Dalam
3
pemilihan jenis tanaman hutan kota perlu diperhatikan aspek-aspek ekologi. Oleh sebab itu, sebelum penanaman dilakukan perlu diketahui keadaan lahan dan kondisi setempat yang meliputi iklim, tanah dan kondisi lingkungan lainnya. Setelah informasi itu diperoleh, baru ditentukan jenis tanaman yang akan ditanam. Pemilihan jenis dilakukan untuk menentukan jenis tanaman yang akan ditanam agar sesuai dengan kondisi setempat sehingga tanaman yang akan ditanam diharapkan dapat berfungsi maksimal sesuai dengan yang diharapkan (Dahlan, 2004). Nawawi (2005) telah membuat database dan piranti lunak mengenai Sistem Informasi Tumbuhan dan Tanaman Hutan Kota (Sinttha), namun terdapat beberapa kekurangan pada piranti lunak tersebut, seperti penggunaan tipe hujan berdasarkan Schmidt-Ferguson yang cukup rumit dan jarang digunakan oleh masyarakat awam, penggalian informasi yang kurang sederhana, serta gambaran tumbuhan yang bersifat umum dan kurang spesifik karena hanya menyediakan 1 buah gambar. Oleh sebab itu, diperlukan database dan piranti lunak yang lebih sempurna sehingga dapat digunakan sebagai informasi hutan kota. 1.2 Tujuan Tugas Akhir 1. Tujuan dibuatnya piranti lunak ini adalah untuk menyajikan informasi dalam bentuk digital. 2. Menampilkan informasi tumbuhan untuk keperluan pembangunan hutan kota. 3. Memberikan kemudahan dalam mengakses informasi yang telah dikumpulkan dan dapat digunakan tidak hanya masyarakat dengan latar belakang lingkungan, tetapi juga masyarakat pada umumnya. 1.3 Manfaat Tugas Akhir Manfaat piranti lunak ini adalah untuk memberi kemudahan dalam mengakses informasi, serta dapat dijadikan referensi untuk pembangunan hutan kota.
BAB II TINJAUAN PUSTAKA
2.1 MS Visual Basic 2005 Visual Basic 2005 merupakan salah satu aplikasi pemrograman visual yang dibuat oleh Microsoft. Visual Basic 2005 merupakan bagian dari sebuah suite aplikasi pemrograman bernama Visual Studios 2005. Visual Basic 2005 sudah mendukung konsep pemrograman berorientasi objek (Object Oriented Programming). Dalam Visual Basic 2005 akan dikenal konsep objek, kelas (class), pewarisan (inheritance), namespace, dan lain-lain (Ramadhan, 2007). 2.2 Sistem Informasi Sekarang ini, sudah banyak program-program yang dibuat berkenaan dengan sistem informasi dalam berbagai bidang, begitu juga dalam bidang kehutanan. Pada tahun 2000, dikembangkan pangkalan data tumbuhan obat unggulan oleh DEPHUTBUN dan Fakultas Kehutanan IPB, lalu Sistem Informasi Taman Nasional Gunung Gede Pangrango oleh Prantio (2001), Program Sistem Informasi Manajemen Hutan Mangrove yang dikembangkan oleh Suhana (2002), Basis data pohon yang dikembangkan oleh Nazir (2001), dan Sistem Informasi Tumbuhan dan Tanaman Hutan Kota (Sinttha) oleh Nawawi (2005). Pangkalan
tumbuhan
obat
unggulan
yang
dikembangkan
oleh
DEPHUTBUN dan Fakultas Kehutanan IPB (2000) berisi informasi tentang tumbuhan obat unggulan pada 18 lokasi di lima propinsi yaitu, Sumatera Barat, Jambi, Jawa Barat, Jawa Tengah, dan Jawa Timur. Informasi yang digali dan digunakan dalam piranti lunak itu adalah nama latin, nama famili, nama daerah, habitus, bagian yang dimanfaatkan, serta khasiatnya. Data dihimpun dalam piranti lunak Sistem Informasi Geografi, ARC/INFO, yang divisualisasikan dengan menggunakan ARC/VIEW. Tampilan basis data dilakukan dengan menggunakan ARC/VIEW, sehingga peta dan potensinya dapat dilihat secara bersamaan dengan mengetik lokasi yang diinginkan. Sistem informasi Taman Nasional Gunung Gede Pangrango yang dikembangkan oleh Prantio (2001) diberi nama TNGP.INFO. Program aplikasi
5
TNGP.INFO adalah program yang dibuat untuk manajemen basis data di Sub Balai Taman Nasional Gunung Gede Pangrango. Piranti lunak ini berisi berbagai macam data seperti data vegetasi, fauna, kondisi sosial ekonomi masyarakat yang ada di sekitar Taman Nasional Gunung Gede Pangrango, serta kondisi umum, termasuk potensi yang dimiliki dan sebuah video pendek. Program
Sistem
Informasi
Manajemen
Hutan
Mangrove
yang
dikembangkan oleh Suhana (2002) berisi informasi untuk pengelolaan hutan pesisir, khususnya pengelolaan hutan mangrove yang ada di Kabupatan Ciamis, Jawa Barat. Informasi yang ditampilkan dalam piranti lunak ini adalah informasi mengenai
perkembangan
keadaan
demografi
(jumlah
penduduk,
mata
pencaharian, pendidikan, dan lain-lain) di sekitar hutan mangrove, dan keadaan lingkungan sekitar hutan mangrove (tata guna lahan, pasang surut perairan dan kualitas perairan, vegetasi hutan mangrove, peraturan-peraturan yang terkait dengan pengelolaan hutan mangrove). Basis data pohon yang dikembangkan oleh Nazir (2001) yang berisi mengenai basis data pohon yang berupa informasi basis data pohon koleksi arboretum Arsitektur Lansekap kampus IPB Dramaga, Bogor. Sistem Informasi Tumbuhan dan Tanaman Hutan Kota (Sinttha) yang dikembangkan oleh Nawawi (2005) berisi informasi untuk pengelolaan hutan kota. Informasi yang ditampilkan oleh piranti lunak ini adalah informasi spesies tumbuhan yang meliputi nama ilmiah, nama daerah, tipe hujan, cahaya, altitud minimum, altitud maksimum, jenis tanah, tekstur tanah, solum, pH, daya transpirasi, daya serap CO 2, ketahanan garam, ketahanan genang, bentuk tajuk, diameter tajuk, model arsitektur, tinggi tumbuhan, kelas tinggi, kelas tajuk serta gambar spesies tumbuhan tersebut.
BAB III METODOLOGI
3.1 Waktu Pembuatan piranti lunak ini dilakukan selama dua bulan yaitu bulan Desember 2010 - Januari 2011.
3.2. Alat dan Bahan 3.2.1 Alat Pembuatan piranti lunak ini dilakukan dengan menggunakan alat berbentuk perangkat keras (hardware) dan perangkat lunak (software). Perangkat keras yang digunakan antara lain Personal Computer (PC), blank DVD-R, DVDRW ROM LG 52x, dan Kamera digital, sedangkan piranti lunak yang digunakan dalam pembuatan piranti lunak ini adalah Microsoft Windows XP® Professional, Microsoft Office Access XP, Microsoft Visual Studios 2005, Adobe Photoshop 6.0, Microsoft Office Picture Manager, Microsoft Office Power Point XP, Microsoft Paint, Installshield Proffesional 7.01, dan Microsoft Internet Explorer 8.0.
3.2.2 Bahan Pembuatan piranti lunak ini menggunakan bahan berupa informasi mengenai tanaman hutan kota yang dikumpulkan melalui studi pustaka maupun pencarian melalui jalur internet.
3.3 Metode Pembuatan Piranti Lunak Piranti lunak sistem informasi yang akan dibuat ini disusun melalui beberapa tahapan, diantaranya :
3.3.1 Perancangan Basis Data Data mengenai tumbuhan yang telah dikumpulkan, disusun ke dalam suatu database (basis data) dengan menggunakan Microsoft Access dengan nama file db32b.mdb. File ini digunakan sebagai basis data dalam bentuk tabel yang berisi informasi mengenai ID, nama ilmiah, nama daerah, ID famili, tipe hujan, cahaya,
7
altitud minimum, altitud maksimum, jenis tanah, tekstur tanah, solum, pH, daya transpirasi, daya serap CO 2, ketahanan garam, ketahanan genang, bentuk tajuk, diameter tajuk, model arsitektur, tinggi tumbuhan, kelas tinggi, kelas tajuk, foto 1, foto 2, foto 3.
3.3.2 Perancangan Piranti lunak Pembuatan piranti lunak ini dimulai dengan membuat tampilan antar muka pengguna (user interface) piranti lunak yang akan dibuat dengan menggunakan toolbox yang terdapat dalam program VB.Net 2005. Penyusunan antar muka pengguna (user interface) ini bertujuan untuk menentukan tata letak tombol perintah, membuat kolom untuk tampilan informasi yang dikeluarkan (output) serta tata letaknya, menentukan latar belakang (background), serta hal lainnya yang berhubungan dengan tampilan visual piranti lunak yang akan dibuat. Selain itu, penyusunan antar muka pengguna (user interface) ini berfungsi untuk menyusun rencana tampilan hasil eksekusi dari pemrograman yang telah dibuat, yang nantinya akan menampilkan berbagai macam informasi mengenai tanaman. Informasi yang nantinya akan ditampilkan oleh piranti lunak ini didapat dari input yang telah disusun dalam bentuk tabel yang disimpan dengan Microsoft Access dalam file db32b.mdb. Data yang dikeluarkan (output) dalam piranti lunak ini berupa informasi yang dibutuhkan oleh pengguna (user) dengan menggunakan tombol-tombol perintah yang tersedia.
3.3.3 Implementasi Program Setelah pembuatan antar muka pengguna (user interface) selesai, maka langkah selanjutnya adalah memberi perintah pada tampilan antar muka pengguna (user interface) yang telah dibuat. Penulisan bahasa program ini juga berfungsi agar piranti lunak yang telah dibuat dapat membaca basis data dan menampilkannya pada kolom-kolom yang telah dibuat untuk menempatkan informasi dari basis data. Tombol-tombol bantuan yang telah dibuat juga diberi perintah dengan bahasa program sesuai dengan fungsi tombol tersebut yang dikehendaki. Setelah selesai pemberian perintah, kemudian program dijalankan
8
(run) untuk melihat apakah bahasa pemrograman yang dibuat sudah sesuai dan dapat berjalan dengan baik. Rancangan program diimplementasikan ke dalam program komputer sehingga menjadi single file dengan jenis Windows executable file (*.exe) dengan menggunakan bahasa pemrograman. Bahasa pemrograman yang digunakan adalah bahasa pemrograman Visual Corporation 2005. Program yang telah dibuat kemudian dijalankan untuk menguji ada atau tidaknya kesalahan (bug).
3.3.4 Pengujian Program Pengujian program ini bertujuan untuk mengevaluasi program yang telah dibuat agar sesuai dengan tujuan pembuatan piranti lunak tersebut. Pengujian program dilakukan dengan meng-install program yang telah dibuat menjadi Windows executable file (*.exe) ke dalam sebuah komputer yang menggunakan Microsoft® Windows sebagai sistem operasi, kemudian menjalankannya. Apabila program tersebut dapat ter-install dan berjalan dengan baik, maka pembuatan program tersebut berhasil, namun apabila tidak berjalan baik, maka perlu dilakukan evaluasi untuk memperbaiki kesalahan tersebut.
Gambar 1. Tahapan Pembuatan Sistem Informasi Hutan Kota
BAB IV HASIL DAN PEMBAHASAN
4.1 Hasil 4.1.1 Basis Data Basis data pada piranti lunak Plant and Tree Information System dibuat dalam bentuk tabel dan disimpan dalam satu basis data file yang bernama db32b.mdb dengan model data flat file. Tabel yang dibuat memuat informasi mengenai tumbuhan dan tanaman. Informasi tersebut mencakup ID, nama ilmiah, nama daerah, ID famili, tipe hujan, cahaya, altitud minimum, altitud maksimum, jenis tanah, tekstur tanah, solum, pH, daya transpirasi, daya serap CO 2, ketahanan garam, ketahanan genang, bentuk tajuk, diameter tajuk, model arsitektur, tinggi tumbuhan, kelas tinggi, kelas tajuk, foto 1, foto 2, foto 3.
4.1.2 Program Piranti lunak Program piranti lunak Plant and Tree Information System (PLATIS) terdiri atas form tumbuhan, famili, dan tutorial.
Gambar 2. Tampilan utama
10
4.1.2.1 Form Tumbuhan Form tumbuhan merupakan halaman inti piranti lunak tersebut yang menampilkan daftar (list) tumbuhan dan tanaman, serta berbagai informasi mengenai tumbuhan tersebut, seperti nama ilmiah, nama daerah, tipe hujan, cahaya, altitud minimum, altitud maksimum, jenis tanah, tekstur tanah, solum, pH, daya transpirasi, daya serap CO 2, ketahanan garam, ketahanan genang, bentuk tajuk, diameter tajuk, model arsitektur, tinggi tumbuhan, kelas tinggi, kelas tajuk, serta tiga tempat untuk menampilkan foto tumbuhan. Pada form ini juga terdapat beberapa tombol yang berfungsi untuk membantu dalam mengakses informasi seperti tombol refresh, clear, search, add, edit, save, dan delete. a. Refresh Tombol refresh ini berfungsi memerintahkan piranti lunak untuk membaca kembali basis data sehingga informasi yang ditampilkan menjadi update. b. Clear Tombol clear berfungsi untuk membuat kolom-kolom yang telah terisi informasi mengenai suatu spesies tumbuhan menjadi bersih, sehingga bisa diisi oleh pengguna untuk menggunakan fungsi dari tombol-tombol yang lain. c. Search Tombol search ini berfungsi untuk mencari informasi berdasarkan kata kunci yang dimasukan oleh pengguna. Fasilitas pencarian ini dapat mencakup semua aspek, tergantung keinginan pengguna. Pengguna tinggal mencantumkan kata kunci pada salah satu atau kombinasi beberapa kriteria informasi yang ingin dicari. d. Add Tombol add berfungsi untuk menambah atau mengubah informasi. Tombol ini juga berfungsi sebagai pemicu tombol save sehingga tombol tersebut dapat digunakan.
11
e. Edit Tombol edit ini adalah tombol untuk meng-edit (mengubah) informasi yang ditampilkan. Pengguna yang menggunakan piranti lunak ini pertama-tama harus menampilkan informasi salah satu spesies tumbuhan, setelah informasi tersebut ditampilkan, maka klik tombol edit kemudian pengguna dipersilahkan untuk mengganti bila dirasa ada informasi yang keliru atau tidak sesuai, kemudian tekan tombol save untuk menyimpan informasi tersebut ke dalam basis data. f. Save Tombol save ini berfungsi untuk memasukan informasi baru ke dalam basis data. Tombol ini hanya dapat berfungsi jika pengguna telah menekan tombol add atau tombol edit sebelumnya. g. Delete Tombol delete berfungsi untuk menghapus informasi dan semua data mengenai suatu tumbuhan. Tombol delete ini tidak hanya menghapus semua informasi satu jenis tumbuhan dari piranti lunak, tapi juga menghapusnya dari basis data.
Gambar 3. tampilan form tumbuhan
12
4.1.2.2 Form Famili Form famili ini dibuat bertujuan untuk menampilkan nama-nama famili yang ada dalam basis data. Dalam form ini juga diberi beberapa tombol perintah seperti refresh, tambah, ubah, simpan, dan hapus. a. Refresh Tombol refresh berisi perintah untuk membaca kembali informasi yang ada di basis data. b. Tambah Tombol tambah ini berfungsi untuk manambah famili, sehingga jika pengguna ingin menambah informasi tumbuhan pada form tumbuhan, tetapi famili dari spesies tumbuhan tersebut belum terdaftar pada basis data, maka pengguna harus menambahkan famili dari spesies tersebut pada form famili ini. c. Ubah Tombol ubah ini berfungsi untuk mengganti atau mengkoreksi jika terdapat kesalahan penulisan pada nama famili yang telah terdaftar. d. Simpan Tombol simpan ini berfungsi untuk menyimpan data yang telah ditambahkan atau diubah dan menuliskannya ke dalam basis data. e. Hapus Tombol hapus ini adalah tombol untuk menghapus nama famili yang tersimpan dalam basis data.
Gambar 4. Tampilan form famili
13
4.1.2.3 Form Tutorial Form tutorial ini adalah form yang berisi informasi mengenai piranti lunak, penjelasan mengenai fungsi dari tombol-tombol yang ada pada piranti lunak, dan penjelasan mengenai tata cara pengoperasian piranti lunak. Dalam form juga terdapat beberapa tombol yang juga ada pada form tumbuhan dan form famili seperti tombol refresh, clear, search, add, edit, save, dan delete. Namun yang membedakan disini adalah, jika tombol-tombol tersebut di eksekusi (di klik), maka akan muncul penjelasan mengenai tata cara penggunaan dan fungsi dari tombol tersebut baik itu tombol yang ada pada form tumbuhan maupun yang ada pada form famili.
Gambar 5. Tampilan form tutorial
4.2 Pembahasan Program piranti lunak Plant and Tree Information System (PLATIS) adalah sebuah piranti lunak yang dibuat untuk mengelola data-data informasi mengenai tumbuhan dan tanaman seperti nama ilmiah, nama lokal, famili, kemampuan tanaman menyerap CO2, daya transpirasi, ketahanan tanaman terhadap garam, ketahanan terhadap genangan, keadaan lingkungan tempat tumbuh (tipe hujan, altitud (ketinggian tempat tumbuh), kebutuhan cahaya, solum (kedalaman), keasaman (pH) tanah, jenis tanah), morfologi tanaman (bentuk tajuk, diameter tajuk, kelas tajuk, model arsitektur, tinggi tumbuhan, kelas tinggi), serta gambar tanaman tersebut.
14
Informasi mengenai tanaman tersebut dapat digunakan untuk berbagai keperluan, diantaranya dalam rencana pembangunan hutan kota. Karakteristik mengenai suatu tumbuhan diperlukan agar pembangunan hutan kota mencapai tujuannya secara efektif dan tepat sasaran. Informasi yang dikumpulkan dan disusun ke dalam piranti lunak ini juga diharapkan dapat menambah wawasan bagi pelajar, mahasiswa, dan masyarakat pada umumnya. Piranti lunak ini dibuat dengan menggunakan MS Visual Studio 2005 dengan basis data yang dibuat dengan menggunakan MS Access XP. Piranti lunak ini terdiri atas 3 (tiga) form (tampilan), yaitu form tumbuhan, form famili, dan form tutorial. Form tumbuhan merupakan form untuk menampilkan informasi mengenai nama ilmiah, nama daerah, tipe hujan, cahaya, altitud minimum, altitud maksimum, jenis tanah, tekstur tanah, solum, pH, daya transpirasi, daya serap CO2, ketahanan garam, ketahanan genang, bentuk tajuk, diameter tajuk, model arsitektur, tinggi tumbuhan, kelas tinggi, kelas tajuk, serta tiga foto tumbuhan. Pada form tumbuhan ini juga disertakan beberapa bantuan, seperti refresh, clear, search, add, edit, save, delete. Form famili adalah form tempat untuk menampilkan informasi mengenai nama-nama famili yang ada di basis data piranti lunak ini. Form ini juga dilengkapi dengan berbagai macam tombol seperti refresh, tambah, ubah, simpan, dan hapus untuk meng-edit informasi mengenai nama-nama famili tersebut. Sedangkan pada form tutorial terdapat penjelasan mengenai tombol-tombol yang ada pada piranti lunak secara keseluruhan serta cara pengoperasian piranti lunak ini. Untuk menjalankan piranti lunak ini diperlukan suatu program yang dinamakan dotNetFx, oleh karena itu file tersebut sudah dimasukan ke dalam CD installer PLATIS. Penggunaan piranti lunak ini terbilang mudah, namun yang harus diperhatikan adalah pada bagian famili. Famili disini harus diisi, karena pada piranti lunak ini, famili diposisikan sebagai identitas, sehingga piranti lunak ini tidak akan menyimpan suatu informasi jika famili tidak diisi. Kemudian untuk browse foto tumbuhan, pengguna terlebih dahulu harus memasukan foto pada
15
folder images di lokasi tempat piranti lunak ini di install. Setelah foto tersebut disimpan di folder images, barulah foto tersebut dapat di browse dan di save. Informasi mengenai tanaman yang telah disajikan dalam bentuk digital ini dapat digunakan untuk berbagai keperluan, diantaranya dalam rencana pembangunan hutan kota. Karakteristik mengenai suatu tumbuhan diperlukan agar pembangunan hutan kota mencapai tujuannya secara efektif dan tepat sasaran. Keunggulan dari program ini adalah, data mengenai informasi yang ada di dalamnya dapat ditambah dan diubah, penggunaannya cenderung lebih sederhana karena kriteria yang digunakan untuk mencari informasi bisa diletakkan dimana saja dan tidak terbatas pada pencarian berdasarkan nama ilmiah atau nama daerah saja, tetapi bisa pada kriteria lainnya sesuai yang dikehendaki pengguna. Form untuk pencarian disatukan dengan form untuk menampilkan informasi sehingga pengguna tidak direpotkan dengan keharusan berpindah
form untuk
menggunakan perintah pencarian. Kelemahan dari piranti lunak ini adalah resolusi yang tidak otomatis menyesuaikan dengan resolusi layar, sehingga resolusi yang dipakai adalah resolusi yang pada saat program ini dibuat, serta kemungkinan adanya kesalahan (error) pada saat pengoperasian karena kemungkinan adanya ketidakcocokan antara piranti lunak ini dengan sistem yang ada pada komputer pengguna. Proses peng-install-an piranti lunak ini dimulai dengan mengeksekusi file setup yang ada pada CD installer, kemudian proses peng-install-an berjalan seperti proses install piranti lunak pada umumnya. Namun perlu diperhatikan, sebelum meng-install piranti lunak ini, terlebih dahulu harus meng-install program dotnetfx (sudah tersedia pada CD installer PLATIS) karena dotnetfx ini adalah komponen yang diperlukan agar piranti lunak PLATIS dapat berjalan. Setelah proses install berjalan dengan benar, maka piranti lunak ini sudah dapat dijalankan. Langkah pertama yang disarankan untuk dilakukan setelah menjalankan piranti lunak ini adalah membuka form tutorial agar pengguna mengerti mengenai tata cara pengoperasian piranti lunak ini, penjelasa-penjelasan tentang fungsi-fungsi dari tombol yang ada pada piranti lunak, penjelasan mengenai informasi yang dikeluarkan, serta cara kerja dari piranti lunak ini.
16
Karena piranti lunak ini merupakan penyempurnaan dari piranti lunak terdahulu, ada beberapa hal yang membedakan antara piranti lunak ini dengan piranti lunak terdahulu. Beberapa hal yang berbeda dan merupakan keunggulan piranti lunak ini adalah, jumlah spesies tumbuhan yang ada dalam basis data lebih banyak, informasi mengenai tipe hujan menurut Schmidt-Ferguson diubah menjadi informasi mengenai curah hujan maksimal dan curah hujan minimal. Hal ini dilakukan mengingat informasi tipe hujan menurut Schmidt-Ferguson yang digunakan oleh piranti lunak terdahulu dirasa terlalu rumit untuk dipahami, menggunakan perhitungan yang terbilang sangat rumit, sehingga kemungkinan adanya kesalahan menjadi lebih besar, sedangkan informasi mengenai curah hujan lebih umum digunakan dan nilainya absolut. Pada piranti lunak yang disusun oleh penulis juga diberi tambahan informasi, yaitu informasi mengenai manfaat dari tanaman tersebut. Pada bagian foto tumbuhan, pada piranti lunak sebelumnya disediakan hanya satu tempat untuk foto, sedangkan pada piranti lunak ini disediakan tiga tempat foto dengan harapan bisa menampilkan foto tumbuhan secara keseluruhan, foto daun, sampai foto buah/benih tumbuhan. Menurut tipe iklim Schmidt-Ferguson, tipe iklim suatu daerah dapat ditentukan dengan memperhatikan jumlah rata-rata bulan basah dan bulan kering dalam kurun waktu 10 sampai 20 tahun. Suatu bulan dikatakan bulan basah apabila curah hujannya lebih dari 100mm, dan bulan kering apabila curah hujannya kurang dari 60mm, sedangkan bulan lembab apabila curah hujannya berkisar antara 60-100mm. Dalam perhitungan ini, bulan lembab diabaikan. Rumus yang digunakan untuk menentukan tipe iklim Schmidt-Ferguson adalah sebagai berikut : Md Q = -------- x 100 % Mw Dimana : Q
= Tipe iklim menurut Schmidt-Ferguson
Md
= Rata-rata banyaknya bulan kering (Fd/T)
Mw
= Rata-rata bulan basah (Fw/T)
Fd
= Jumlah bulan kering
17
Fw
= Jumlah bulan basah
T
= Banyaknya tahun observasi
Nilai Q untuk menentukan tipe iklim suatu daerah menurut SchmidtFerguson, adalah sebagai berikut :
Tabel 1. Klasifikasi Iklim Menurut Schmidt-Ferguson
Keunggulan lainnya adalah pada pengoperasian. Pada piranti lunak terdapat beberapa fungsi yang terkumpul dalam satu form, sehingga pengguna tidak dipusingkan untuk berpindah-pindah form. Sedangkan pada piranti lunak sebelumnya, form pencarian (search) dengan informasi dari spesies yang dituju berada dalam form yang berbeda, sehingga ketika pengguna menggunakan fungsi search, maka untuk melihat hasil dari informasi yang dicari, pengguna harus berpindah form terlebih dahulu.
BAB V KESIMPULAN DAN SARAN
4.1 Kesimpulan Sistem informasi mengenai tumbuhan hutan kota dengan nama Plant and Tree Information System (PLATIS) dapat digunakan untuk : 1. Mengakses informasi mengenai tumbuhan untuk keperluan hutan kota. 2. Informasi yang ditampilkan oleh piranti lunak ini adalah informasi mengenai nama ilmiah, nama lokal, famili, kemampuan tanaman menyerap CO2, daya transpirasi, ketahanan tanaman terhadap garam, ketahanan terhadap genangan, keadaan lingkungan tempat tumbuh (tipe hujan, altitud (ketinggian tempat tumbuh), kebutuhan cahaya, solum (kedalaman), keasaman (pH) tanah, jenis tanah), morfologi tanaman (bentuk tajuk, diameter tajuk, kelas tajuk, model arsitektur, tinggi tumbuhan, kelas tinggi), serta gambar dari tanaman. 4.2 Saran 1. Perlu tambahan informasi mengenai tumbuhan yang lebih banyak lagi, karena jumlah tumbuhan yang di input ke dalam basis data hanya sebanyak 225 spesies tumbuhan. 2. Perlu dilakukan modifikasi tampilan, terutama masalah resolusi, sehingga untuk selanjutnya, piranti lunak ini sudah mendukung dan menyesuaikan dengan resolusi berbagai tipe monitor.
DAFTAR PUSTAKA Dahlan EN. 1992. Hutan Kota : Untuk Pengelolaan dan Peningkatan Kualitas Lingkungan Hidup. Asosiasi Pengusaha Hutan Indonesia. Jakarta. 92 Hal. ._________. 2004. Membangun Kota Kebun (Garden City) Bernuansa Hutan Kota. IPB Press. Bogor. [DepHutBun dan Fahutan IPB] Departemen Kehutanan dan Perkebunan dan Fakultas Kehutanan IPB. 2000. Inventarisasi, Identifikasi dan Pemetaan Potensi Wanafarma: Propinsi Sumatera Barat. Bogor : Fakultas Kehutanan IPB. 264 Hal. Jauhari, A. 2003. Hutan Kota untuk Keseimbangan Ekosistem Perkotaan. Tunas Vol. 1. No. 7. Nawawi. 2005. Pembuatan Piranti Lunak Sistem Informasi Tumbuhan dan Tanaman Hutan Kota. [Skripsi]. Bogor : Institut Pertanian Bogor. Fakultas Kehutanan. 20 Hal. Nazir AIB. 2001. Penyusunan Basis Data Pohon Koleksi Arboretum Arsitektur Lansekap Kampus Institut Pertanian Bogor Dramaga, Bogor. [Skripsi]. Bogor : Institut Pertanian Bogor. Fakultas Pertanian. 96 Hal. Pesurnay, F. E. 1997. Evaluasi TanamanPenghijauan Di Lokasi PPKSN-34 Kawasan Gunung Nona Kotamadya Ambon Dalam Rangka Pengembangan Potensinya Sebagai Hutan Kota. [Skripsi]. Bogor : Institut Pertanian Bogor. Fakultas Kehutanan. 61 Hal. Prantio S. 2001. Pembuatan Sistem Informasi Taman Nasional Gunung Gede Pangrango Jawa Barat. [Skripsi]. Bogor: Institut Pertanian Bogor. Fakultas Kehutanan. 99 Hal. Ramadhan A. 2007. 36 Jam Belajar Komputer : Visual Basic 2005. Jakarta : Elex Media Komputindo. 376 Hal. Retnowati, E. 1988. Beberapa Catatan Tentang Acacia mangium Willd. Jenis Potensial untuk Hutan Industri, dalam Jurnal Penelitian dan Pengembangan Kehutanan. IV(1) : 24-27. Rohayati, W. Aksan, H., editor. 2010. 30% Persen Pohon Program Penghijauan Mati. http://jabar.tribunnews.com/read/artikel/26905/30-persen-pohonprogram-penghijauan-mati. [5 April 2011]. Suhana. 2002. Rancang Bangun Perangkat Lunak Sistem Informasi Manajemen Hutan Mangrove di Kabupaten Ciamis Propinsi Jawa Barat. Bogor : Institut Pertanian Bogor. Fakultas Perikanan dan Ilmu Kelautan. 48 Hal. Uwaisalqarny . 2008. Potensi Laut dan Pesisir Teluk Parepare. http://waiskeren.blogspot.com/. [5 April 2011].
LAMPIRAN
Lampiran 1 Halaman Utama Imports System.Windows.Forms Public Class Utama Private Sub ShowNewForm(ByVal sender As Object, ByVal e As EventArgs) Handles NewWindowToolStripMenuItem.Click ' Create a new instance of the child form. Dim ChildForm As New System.Windows.Forms.Form ' Make it a child of this MDI form before showing it. ChildForm.MdiParent = Me m_ChildFormNumber += 1 ChildForm.Text = "Window " & m_ChildFormNumber ChildForm.Show() End Sub Private Sub OpenFile(ByVal sender As Object, ByVal e As EventArgs) Dim OpenFileDialog As New OpenFileDialog OpenFileDialog.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyDocuments OpenFileDialog.Filter = "Text Files (*.txt)|*.txt|All Files (*.*)|*.*" If (OpenFileDialog.ShowDialog(Me) = System.Windows.Forms.DialogResult.OK) Then Dim FileName As String = OpenFileDialog.FileName ' TODO: Add code here to open the file. End If End Sub Private Sub SaveAsToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Dim SaveFileDialog As New SaveFileDialog SaveFileDialog.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyDocuments SaveFileDialog.Filter = "Text Files (*.txt)|*.txt|All Files (*.*)|*.*" If (SaveFileDialog.ShowDialog(Me) = System.Windows.Forms.DialogResult.OK) Then Dim FileName As String = SaveFileDialog.FileName ' TODO: Add code here to save the current contents of the form to a file. End If End Sub Private Sub ExitToolsStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles ExitToolStripMenuItem.Click Global.System.Windows.Forms.Application.Exit() End Sub Private Sub CutToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs)
22
' Use My.Computer.Clipboard to insert the selected text or images into the clipboard End Sub Private Sub CopyToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) ' Use My.Computer.Clipboard to insert the selected text or images into the clipboard End Sub Private Sub PasteToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) 'Use My.Computer.Clipboard.GetText() or My.Computer.Clipboard.GetData to retrieve information from the clipboard. End Sub Private Sub StatusBarToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles StatusBarToolStripMenuItem.Click Me.StatusStrip.Visible = Me.StatusBarToolStripMenuItem.Checked End Sub Private Sub CascadeToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles CascadeToolStripMenuItem.Click Me.LayoutMdi(MdiLayout.Cascade) End Sub Private Sub TileVerticleToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles TileVerticalToolStripMenuItem.Click Me.LayoutMdi(MdiLayout.TileVertical) End Sub Private Sub TileHorizontalToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles TileHorizontalToolStripMenuItem.Click Me.LayoutMdi(MdiLayout.TileHorizontal) End Sub Private Sub ArrangeIconsToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles ArrangeIconsToolStripMenuItem.Click Me.LayoutMdi(MdiLayout.ArrangeIcons) End Sub Private Sub CloseAllToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles CloseAllToolStripMenuItem.Click ' Close all child forms of the parent. For Each ChildForm As Form In Me.MdiChildren ChildForm.Close() Next End Sub Private m_ChildFormNumber As Integer = 0
23
Private Sub FamiliToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FamiliToolStripMenuItem.Click Famili.MdiParent = Me Famili.Show() End Sub Private Sub TumbuhanToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TumbuhanToolStripMenuItem.Click Tumbuhan.MdiParent = Me Tumbuhan.Show() End Sub Private Sub ContentsToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ContentsToolStripMenuItem.Click Tutorial.MdiParent = Me Tutorial.Show() End Sub Private Sub Utama_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load startup.MdiParent = Me startup.Show() End Sub Private Sub StartUpMenuToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles StartUpMenuToolStripMenuItem.Click startup.MdiParent = Me startup.Show() End Sub Private Sub AboutToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AboutToolStripMenuItem.Click about.MdiParent = Me about.Show() End Sub Private Sub ToolStripLabel1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) startup.MdiParent = Me startup.Show() End Sub End Class Public Class startup Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Tumbuhan.MdiParent = Utama Tumbuhan.Show() 'Me.Close() End Sub
24
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Famili.MdiParent = Utama Famili.Show() 'Me.Close() End Sub Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click Utama.Close() End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Tutorial.MdiParent = Utama Tutorial.Show() End Sub Private Sub startup_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load End Sub End Class
Lampiran 2. Form Tumbuhan Imports System.Data Imports System.Data.OleDb Imports System.IO Public Class Tumbuhan Private conn As OleDbConnection Private connStr As String Private sql, query As String Private cmd As OleDbCommand Private rdr As OleDbDataReader Private rdr1 As OleDbDataReader Dim CurahHujan, PH, Kriteria As String Private curFileName Public binaryFile Dim gambar, gambar2, gambar3 As String Dim jum_path As Integer Private Sub buka_Koneksi() connStr = "Provider=Microsoft.Jet.OleDb.4.0;" & "Data Source=" + Directory.GetCurrentDirectory + "\db32b.mdb" conn = New OleDbConnection(connStr) conn.Open() End Sub Public Sub baca_Data() sql = "SELECT * FROM Famili" cmd = New OleDbCommand(sql, conn) rdr = cmd.ExecuteReader() cboFamili.Items.Clear() Do While rdr.Read() cboFamili.Items.Add(rdr("NamaFamili")) Loop rdr.Close() End Sub Private Sub DecodeFile() Try Dim bt64 As Byte() = Convert.FromBase64String(binaryFile) If IO.File.Exists(Directory.GetCurrentDirectory & txtGambar.Text) Then IO.File.Delete(Directory.GetCurrentDirectory & txtGambar.Text) End If Dim sw As New IO.FileStream(Directory.GetCurrentDirectory & txtGambar.Text, IO.FileMode.CreateNew) sw.Write(bt64, 0, bt64.Length) PictureBoxTanaman.Image = Image.FromStream(sw) sw.Close() Catch ex As Exception End Try End Sub
26
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load buka_Koneksi() baca_Data() bacadata() End Sub Public Sub bacadata() sql = "SELECT * FROM Tumbuhan ORDER BY NamaIlmiah" cmd = New OleDbCommand(sql, conn) rdr = cmd.ExecuteReader() lstNama.Items.Clear() Do While rdr.Read lstNama.Items.Add(rdr("NamaIlmiah")) Loop rdr.Close() jum.Text = lstNama.Items.Count() End Sub Public Sub disable() txtID.Enabled = False txtNama.ReadOnly = True txtIlmiah.ReadOnly = True cboFamili.Enabled = False cboCahaya.Enabled = False chkA.Enabled = False chkB.Enabled = False chkC.Enabled = False chkD.Enabled = False chkE.Enabled = False txtAMin.ReadOnly = True txtAMax.ReadOnly = True txtJenisTanah.ReadOnly = True txtTeksturTanah.ReadOnly = True txtSolum.ReadOnly = True cboDayaTranspirasi.Enabled = False txtDayaSerap.ReadOnly = True cboGaram.Enabled = False cboGenang.Enabled = False txtBentuk.ReadOnly = True txtDiameter.ReadOnly = True cboArsitektur.Enabled = False cboKelasTinggi.Enabled = False cboKelasTajuk.Enabled = False txtTinggi.ReadOnly = True End Sub Public Sub clear() txtID.Text = "" Fam.Text = 0 txtNama.Text = "" txtIlmiah.Text = "" txtManfaat.Text = "" cboFamili.Text = "" cboCahaya.Text = "" txtHujan.Text = "" txtHujanMax.Text = "" chkA.Checked = False chkB.Checked = False chkC.Checked = False chkD.Checked = False
27
chkE.Checked = False chkAsam.Checked = False chkNetral.Checked = False chkBasa.Checked = False txtAMin.Text = "" txtAMax.Text = "" txtJenisTanah.Text = "" txtTeksturTanah.Text = "" txtSolum.Text = "" cboDayaTranspirasi.Text = "" txtDayaSerap.Text = "" cboGaram.Text = "" cboGenang.Text = "" txtBentuk.Text = "" txtDiameter.Text = "" cboArsitektur.Text = "" cboKelasTinggi.Text = "" cboKelasTajuk.Text = "" txtTinggi.Text = "" Kriteria = "" txtGambar.Text = "" txtGambar2.Text = "" txtGambar3.Text = "" PictureBoxTanaman.Image = Nothing PictureBoxTanaman2.Image = Nothing PictureBoxTanaman3.Image = Nothing End Sub Public Sub Tampilkan_Detil() sql = "SELECT * FROM Tumbuhan, Famili WHERE Tumbuhan.ID_Famili=Famili.Id_famili and NamaIlmiah = '" & lstNama.Text & "'" cmd = New OleDbCommand(sql, conn) rdr = cmd.ExecuteReader() If rdr.Read Then txtID.Text = rdr("ID") txtNama.Text = rdr("NamaDaerah") txtIlmiah.Text = rdr("NamaIlmiah") txtManfaat.Text = rdr("Manfaat") cboCahaya.Text = rdr("Cahaya") If rdr("AltitudMin") = 0 Or IsDBNull(rdr("AltitudMin")) = True Then txtAMin.Text = "0" Else txtAMin.Text = rdr("AltitudMin") End If If rdr("AltitudMax") = 0 Or IsDBNull(rdr("AltitudMax")) = True Then txtAMax.Text = "0" Else txtAMax.Text = rdr("AltitudMax") End If If Not rdr("JenisTanah") = Nothing Then txtJenisTanah.Text = rdr("JenisTanah") Else txtJenisTanah.Text = "-" End If If Not rdr("TeksturTanah") = Nothing Then txtTeksturTanah.Text = rdr("TeksturTanah") Else
28
txtTeksturTanah.Text = "-" End If txtSolum.Text = rdr("Solum") If rdr("pH") = "Asam" Then chkAsam.Checked = True chkNetral.Checked = False chkBasa.Checked = False ElseIf rdr("pH") = "Netral" Then chkAsam.Checked = False chkNetral.Checked = True chkBasa.Checked = False ElseIf rdr("pH") = "Basa" Then chkAsam.Checked = False chkNetral.Checked = False chkBasa.Checked = True ElseIf rdr("pH") = "Asam - Netral" Then chkAsam.Checked = True chkNetral.Checked = True chkBasa.Checked = False ElseIf rdr("pH") = "Asam - Basa" Then chkAsam.Checked = True chkNetral.Checked = False chkBasa.Checked = True ElseIf rdr("pH") = "Netral - Basa" Then chkAsam.Checked = False chkNetral.Checked = True chkBasa.Checked = True ElseIf rdr("pH") = "Asam - Netral - Basa" Then chkAsam.Checked = True chkNetral.Checked = True chkBasa.Checked = True Else chkAsam.Checked = False chkNetral.Checked = False chkBasa.Checked = False End If txtHujan.Text = rdr("curahHujanMin") txtHujanMax.Text = rdr("curahHujanMax") cboDayaTranspirasi.Text = rdr("DyTransp") txtDayaSerap.Text = rdr("DySerapCO2") cboGaram.Text = rdr("KetGaram") cboGenang.Text = rdr("KetGenang") txtBentuk.Text = rdr("BentukTajuk") txtDiameter.Text = rdr("DiameterTajuk") cboArsitektur.Text = rdr("ModelArsitektur") cboKelasTinggi.Text = rdr("KelasTinggi") cboKelasTajuk.Text = rdr("KelasTajuk") txtTinggi.Text = rdr("TinggiTumbuhan") txtGambar.Text = rdr("Foto") txtGambar2.Text = rdr("Foto2") txtGambar3.Text = rdr("Foto3") cboFamili.Text = rdr("NamaFamili") End If rdr.Close() End Sub
29
Private Sub lstNama_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lstNama.SelectedIndexChanged Tampilkan_Detil() If Not txtGambar.Text = "-" And Not txtGambar.Text = "" Then PictureBoxTanaman.Image = Image.FromFile(Directory.GetCurrentDirectory & "\images\" & txtGambar.Text) Else txtGambar.Text = "" PictureBoxTanaman.Image = Nothing End If If Not txtGambar2.Text = "-" And Not txtGambar2.Text = "" Then PictureBoxTanaman2.Image = Image.FromFile(Directory.GetCurrentDirectory & "\images\" & txtGambar2.Text) Else txtGambar2.Text = "" PictureBoxTanaman2.Image = Nothing End If If Not txtGambar3.Text = "-" And Not txtGambar3.Text = "" Then PictureBoxTanaman3.Image = Image.FromFile(Directory.GetCurrentDirectory & "\images\" & txtGambar3.Text) Else txtGambar3.Text = "" PictureBoxTanaman3.Image = Nothing End If 'DecodeFile() btnUbah.Enabled = True End Sub Private Sub btnRefresh_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRefresh.Click bacadata() clear() btnTambah.Enabled = True btnHapus.Enabled = True btnUbah.Enabled = False btnSimpan.Enabled = False End Sub Public Sub Keasaman() If chkAsam.Checked = True Then PH = "Asam" End If If chkNetral.Checked = True Then PH = "Netral" End If If chkBasa.Checked = True Then PH = "Basa" End If If chkAsam.Checked = True And chkNetral.Checked = True Then PH = "Asam - Netral" End If If chkAsam.Checked = True And chkBasa.Checked = True Then PH = "Asam - Basa"
30
End If If chkNetral.Checked = True And chkBasa.Checked = True Then PH = "Netral - Basa" End If If chkAsam.Checked = True And chkNetral.Checked = True And chkBasa.Checked = True Then PH = "Asam - Netral - Basa" End If If chkAsam.Checked = False And chkNetral.Checked = False And chkBasa.Checked = False Then PH = "" End If End Sub Private Sub btnSimpan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSimpan.Click Dim status, ID As Integer 'Tipe_Hujan() Keasaman() query = "SELECT * FROM Tumbuhan Order By ID Desc" cmd = New OleDbCommand(query, conn) rdr = cmd.ExecuteReader() If rdr.Read Then ID = rdr("ID") End If rdr.Close() ID = ID + 1 Dim s As String = txtGambar.Text Dim parts As String() = s.Split(New Char() {"\"c}) Dim part As String jum_path = 0 For Each part In parts gambar = (part) jum_path = jum_path + 1 Next Dim s2 As String = txtGambar2.Text Dim parts2 As String() = s2.Split(New Char() {"\"c}) Dim part2 As String jum_path = 0 For Each part2 In parts2 gambar2 = (part2) jum_path = jum_path + 1 Next Dim s3 As String = txtGambar3.Text Dim parts3 As String() = s3.Split(New Char() {"\"c}) Dim part3 As String jum_path = 0 For Each part3 In parts3 gambar3 = (part3) jum_path = jum_path + 1 Next If gambar = "" Then gambar = "-" End If If gambar2 = "" Then
31
gambar2 = "-" End If If gambar3 = "" Then gambar3 = "-" End If If chkAsam.Checked = False And chkNetral.Checked = False And chkBasa.Checked = False Then PH = "-" End If If txtID.Text = "ID" Or txtID.Text = "" Then If txtIlmiah.Text = "" Then MessageBox.Show("Nama Ilmiah Harus diisi", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error) ElseIf Fam.Text = "fam" Or Fam.Text = "0" Then MessageBox.Show("Famili Harus diisi", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error) Else If txtAMin.Text = "" Then txtAMin.Text = 0 End If If txtAMax.Text = "" Then txtAMax.Text = 0 End If If txtHujan.Text = "" Then txtHujan.Text = 0 End If If txtHujanMax.Text = "" Then txtHujanMax.Text = 0 End If If Not txtAMax.Text = "" And Not IsNumeric(txtAMax.Text) Then MessageBox.Show("Altitude maximum harus angka!", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error) ElseIf Not txtAMin.Text = "" And Not IsNumeric(txtAMin.Text) Then MessageBox.Show("Altitude minimum harus angka!", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error) ElseIf Not txtHujanMax.Text = "" And Not IsNumeric(txtHujanMax.Text) Then MessageBox.Show("Curah hujan maximum harus angka!", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error) ElseIf Not txtHujan.Text = "" And Not IsNumeric(txtHujan.Text) Then MessageBox.Show("Curah Hujan minimum harus angka!", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error) ElseIf txtHujan.Text > txtHujanMax.Text Then MsgBox("Curah Hujan Salah! CURAH HUJAN MINIMUM harus lebih kecil dari CURAH HUJAN MAKSIMUM", MsgBoxStyle.Exclamation, "Warning") ElseIf txtAMin.Text > txtAMax.Text Then MsgBox("Altitud Salah! ALTITUD MINIMUM harus lebih kecil dari ALTITUD MAKSIMUM", MsgBoxStyle.Exclamation, "Warning") Else
32
sql = "INSERT INTO Tumbuhan(ID,NamaIlmiah,NamaDaerah,id_Famili, Manfaat, CurahHujanMin,curahHujanMax,Cahaya,AltitudMin,AltitudMax, " _ & " JenisTanah,TeksturTanah,Solum,pH,DyTransp,DySerapCO2,KetGaram,KetG enang,BentukTajuk,DiameterTajuk," _ & " ModelArsitektur,TinggiTumbuhan,KelasTinggi,KelasTajuk,foto, foto2, foto3) VALUES (" _ & "'" & ID & "'," _ & "'" & txtIlmiah.Text & "'," _ & "'" & txtNama.Text & "'," _ & "'" & Fam.Text & "'," _ & "'" & txtManfaat.Text & "'," _ & "'" & txtHujan.Text & "'," _ & "'" & txtHujanMax.Text & "'," _ & "'" & cboCahaya.Text & "'," _ & "'" & txtAMin.Text & "'," _ & "'" & txtAMax.Text & "'," _ & "'" & txtJenisTanah.Text & "'," _ & "'" & txtTeksturTanah.Text & "'," _ & "'" & txtSolum.Text & "'," _ & "'" & PH & "'," _ & "'" & cboDayaTranspirasi.Text & "'," _ & "'" & txtDayaSerap.Text & "'," _ & "'" & cboGaram.Text & "'," _ & "'" & cboGenang.Text & "'," _ & "'" & txtBentuk.Text & "'," _ & "'" & txtDiameter.Text & "'," _ & "'" & cboArsitektur.Text & "'," _ & "'" & txtTinggi.Text & "'," _ & "'" & cboKelasTinggi.Text & "'," _ & "'" & cboKelasTajuk.Text & "'," _ & "'" & gambar & "'," _ & "'" & gambar2 & "'," _ & "'" & gambar3 & "')" cmd = New OleDbCommand(sql, conn)
33
status = cmd.ExecuteNonQuery() If status = 1 Then MsgBox("Tumbuhan Baru berhasil di tambahkan!", MsgBoxStyle.Information, "Tambah Data") Else MsgBox("Tumbuhan Baru gagal di tambahkan!", MsgBoxStyle.Information, "Tambah Data") End If bacadata() End If End If Else If MessageBox.Show("Anda Yakin akan mengupdate record ini?", "Update Data", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then sql = "UPDATE Tumbuhan SET NamaIlmiah = '" & txtIlmiah.Text & "', " _ & "NamaDaerah = '" & txtNama.Text & "', " _ & "id_Famili = " & Fam.Text & ", " _ & "Manfaat = '" & txtManfaat.Text & "', " _ & "curahHujanMin = '" & txtHujan.Text & "', " _ & "curahHujanMax = '" & txtHujanMax.Text & "', " _ & "Cahaya = '" & cboCahaya.Text & "', " _ & "AltitudMin = '" & txtAMin.Text & "', " _ & "AltitudMax = '" & txtAMax.Text & "', " _ & "JenisTanah = '" & txtJenisTanah.Text & "', " _ & "TeksturTanah = '" & txtTeksturTanah.Text & "', " _ & "Solum = '" & txtSolum.Text & "', " _ & "pH = '" & PH & "', " _ & "DyTransp = '" & cboDayaTranspirasi.Text & "', " _ & "DySerapCO2 = '" & txtDayaSerap.Text & "', " _ & "KetGaram = '" & cboGaram.Text & "', " _ & "KetGenang = '" & cboGenang.Text & "', " _ & "BentukTajuk = '" & txtBentuk.Text & "', " _ & "DiameterTajuk = '" & txtDiameter.Text & "', " _ & "ModelArsitektur = '" & cboArsitektur.Text & "', " _ & "TinggiTumbuhan = '" & txtTinggi.Text & "', " _ & "KelasTinggi = '" & cboKelasTinggi.Text & "', " _ & "KelasTajuk = '" & cboKelasTajuk.Text & "', " _ & "Foto = '" & gambar & "', " _ & "Foto2 = '" & gambar2 & "', " _ & "Foto3 = '" & gambar3 & "'" & " WHERE ID = " & txtID.Text cmd = New OleDbCommand(sql, conn) status = cmd.ExecuteNonQuery() If status = 1 Then MessageBox.Show("UPDATE Sukses", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information) Else MessageBox.Show("UPDATE Gagal", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information) End If
34
bacadata() Else MessageBox.Show("Update data dibatalkan", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information) End If End If End Sub Private Sub btnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClear.Click clear() End Sub Private Sub btnTambah_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTambah.Click btnSimpan.Enabled = True clear() End Sub Private Sub cboFamili_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboFamili.SelectedIndexChanged query = "SELECT * FROM Famili WHERE NamaFamili='" & cboFamili.Text & "'" cmd = New OleDbCommand(query, conn) rdr = cmd.ExecuteReader() If rdr.Read Then Fam.Text = rdr("ID_Famili") End If rdr.Close() End Sub Private Sub btnHapus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnHapus.Click Dim status As Integer If MessageBox.Show("Anda Yakin akan menghapus record ini?", "Hapus Data", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then sql = "DELETE FROM Tumbuhan WHERE ID=" & txtID.Text & "" cmd = New OleDbCommand(sql, conn) status = cmd.ExecuteNonQuery() If status = 1 Then MessageBox.Show("Hapus Data Sukses", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information) Else MessageBox.Show("Hapus Data Gagal", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information) End If bacadata() Tampilkan_Detil() cmd.Dispose() Else MessageBox.Show("Hapus data dibatalkan", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information) End If
35
bacadata() clear() btnTambah.Enabled = True btnHapus.Enabled = True btnUbah.Enabled = False btnSimpan.Enabled = False End Sub Private Sub btnUbah_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUbah.Click btnTambah.Enabled = False btnSimpan.Enabled = True btnHapus.Enabled = False End Sub Public Sub Cari() 'Tipe_Hujan() Keasaman() Kriteria = "" If Len(Trim(txtIlmiah.Text)) > 0 Then Kriteria = Kriteria & "(Tumbuhan.NamaIlmiah Like '" & txtIlmiah.Text & "%')" End If If Len(Trim(txtNama.Text)) > 0 Then If Len(Trim(Kriteria)) > 0 Then Kriteria = Kriteria & " AND " Kriteria = Kriteria & "(Tumbuhan.NamaDaerah Like '%" & txtNama.Text & "%')" End If If Len(Trim(cboFamili.Text)) > 0 Then If Len(Trim(Kriteria)) > 0 Then Kriteria = Kriteria & " AND " Kriteria = Kriteria & "(Tumbuhan.id_Famili = " & Fam.Text & ")" End If If Len(Trim(txtHujan.Text)) > 0 Then If Len(Trim(Kriteria)) > 0 Then Kriteria = Kriteria & " AND " Kriteria = Kriteria & "(curahHujanMin >= " & txtHujan.Text & ")" End If If Len(Trim(txtHujanMax.Text)) > 0 Then If Len(Trim(Kriteria)) > 0 Then Kriteria = Kriteria & " AND " Kriteria = Kriteria & "(curahHujanMax<= " & txtHujanMax.Text & ")" End If If Len(Trim(cboCahaya.Text)) > 0 Then If Len(Trim(Kriteria)) > 0 Then Kriteria = Kriteria & " AND " Kriteria = Kriteria & "(Cahaya Like '%" & cboCahaya.Text & "%')" End If If Len(Trim(txtAMin.Text)) > 0 Then If Len(Trim(Kriteria)) > 0 Then Kriteria = Kriteria & " AND " Kriteria = Kriteria & "(AltitudMin >= " & txtAMin.Text & ")" End If
36
If Len(Trim(txtAMax.Text)) > 0 Then If Len(Trim(Kriteria)) > 0 Then Kriteria = Kriteria & " AND " Kriteria = Kriteria & "(AltitudMax <= " & txtAMax.Text & ")" End If If Len(Trim(txtJenisTanah.Text)) > 0 Then If Len(Trim(Kriteria)) > 0 Then Kriteria = Kriteria & " AND " Kriteria = Kriteria & "(JenisTanah Like '%" & txtJenisTanah.Text & "%')" End If If Len(Trim(txtTeksturTanah.Text)) > 0 Then If Len(Trim(Kriteria)) > 0 Then Kriteria = Kriteria & " AND " Kriteria = Kriteria & "(TeksturTanah Like '%" & txtTeksturTanah.Text & "%')" End If If Len(Trim(txtSolum.Text)) > 0 Then If Len(Trim(Kriteria)) > 0 Then Kriteria = Kriteria & " AND " Kriteria = Kriteria & "(Solum Like '%" & txtSolum.Text & "%')" End If If Len(Trim(PH)) > 0 Then If Len(Trim(Kriteria)) > 0 Then Kriteria = Kriteria & " AND " Kriteria = Kriteria & "(pH = '" & PH & "')" End If If Len(Trim(cboDayaTranspirasi.Text)) > 0 Then If Len(Trim(Kriteria)) > 0 Then Kriteria = Kriteria & " AND " Kriteria = Kriteria & "(DyTransp Like '%" & cboDayaTranspirasi.Text & "%')" End If If Len(Trim(txtDayaSerap.Text)) > 0 Then If Len(Trim(Kriteria)) > 0 Then Kriteria = Kriteria & " AND " Kriteria = Kriteria & "(DySerapCO2 Like '%" & txtDayaSerap.Text & "%')" End If If Len(Trim(cboGaram.Text)) > 0 Then If Len(Trim(Kriteria)) > 0 Then Kriteria = Kriteria & " AND " Kriteria = Kriteria & "(KetGaram Like '%" & cboGaram.Text & "%')" End If If Len(Trim(cboGenang.Text)) > 0 Then If Len(Trim(Kriteria)) > 0 Then Kriteria = Kriteria & " AND " Kriteria = Kriteria & "(KetGenang Like '%" & cboGenang.Text & "%')" End If If Len(Trim(txtBentuk.Text)) > 0 Then If Len(Trim(Kriteria)) > 0 Then Kriteria = Kriteria & " AND " Kriteria = Kriteria & "(BentukTajuk Like '%" & txtBentuk.Text & "%')" End If
37
If Len(Trim(txtDiameter.Text)) > 0 Then If Len(Trim(Kriteria)) > 0 Then Kriteria = Kriteria & " AND " Kriteria = Kriteria & "(DiameterTajuk Like '%" & txtDiameter.Text & "%')" End If If Len(Trim(cboArsitektur.Text)) > 0 Then If Len(Trim(Kriteria)) > 0 Then Kriteria = Kriteria & " AND " Kriteria = Kriteria & "(ModelArsitektur Like '%" & cboArsitektur.Text & "%')" End If If Len(Trim(txtTinggi.Text)) > 0 Then If Len(Trim(Kriteria)) > 0 Then Kriteria = Kriteria & " AND " Kriteria = Kriteria & "(TinggiTumbuhan Like '%" & txtTinggi.Text & "%')" End If If Len(Trim(cboKelasTinggi.Text)) > 0 Then If Len(Trim(Kriteria)) > 0 Then Kriteria = Kriteria & " AND " Kriteria = Kriteria & "(KelasTinggi Like '%" & cboKelasTinggi.Text & "%')" End If If Len(Trim(cboKelasTajuk.Text)) > 0 Then If Len(Trim(Kriteria)) > 0 Then Kriteria = Kriteria & " AND " Kriteria = Kriteria & "(KelasTajuk Like '%" & cboKelasTajuk.Text & "%')" End If 'If Len(Trim(txtHewan.Text)) > 0 Then ' If Len(Trim(Kriteria)) > 0 Then Kriteria = Kriteria & " AND " ' Kriteria = Kriteria & "(Hewan Like '%" & txtHewan.Text & "%')" 'End If If Len(Trim(Kriteria)) > 0 Then sql = "SELECT * FROM Tumbuhan,Famili WHERE Tumbuhan.Id_Famili = Famili.Id_Famili AND " & Kriteria & "ORDER BY NamaIlmiah" Else bacadata() End If cmd = New OleDbCommand(sql, conn) rdr = cmd.ExecuteReader() lstNama.Items.Clear() Do While rdr.Read lstNama.Items.Add(rdr("NamaIlmiah")) Loop rdr.Close() jum.Text = lstNama.Items.Count() End Sub Private Sub btnCari_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCari.Click Cari() End Sub
38
Private Sub btnBrowse_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBrowse.Click Dim openDlg As OpenFileDialog = New OpenFileDialog openDlg.Filter = "All Images files|*.JPG; *.PNG; *.GIF" Dim filter As String = openDlg.Filter openDlg.Title = "Open a Image File" If (openDlg.ShowDialog() = Windows.Forms.DialogResult.OK) Then curFileName = openDlg.FileName txtGambar.Text = curFileName PictureBoxTanaman.Image = Image.FromFile(curFileName) PictureBoxTanaman.Invalidate() '################################################################# ############ Dim s As String = txtGambar.Text Dim parts As String() = s.Split(New Char() {"\"c}) Dim part As String jum_path = 0 For Each part In parts gambar = (part) jum_path = jum_path + 1 Next 'binaryFile = Convert.ToBase64String(System.IO.File.ReadAllBytes(gambar)) 'binaryFile = Convert.ToBase64String(System.IO.File.ReadAllBytes(txtGambar.Text) ) End If End Sub Private Sub btnBrowse2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBrowse2.Click Dim openDlg As OpenFileDialog = New OpenFileDialog openDlg.Filter = "All Images files|*.JPG; *.PNG; *.GIF" Dim filter As String = openDlg.Filter openDlg.Title = "Open a Image File" If (openDlg.ShowDialog() = Windows.Forms.DialogResult.OK) Then curFileName = openDlg.FileName txtGambar2.Text = curFileName PictureBoxTanaman2.Image = Image.FromFile(curFileName) PictureBoxTanaman2.Invalidate() Dim s As String = txtGambar2.Text Dim parts As String() = s.Split(New Char() {"\"c}) Dim part As String jum_path = 0 For Each part In parts gambar2 = (part) jum_path = jum_path + 1 Next 'binaryFile = Convert.ToBase64String(System.IO.File.ReadAllBytes(gambar2)) binaryFile = Convert.ToBase64String(System.IO.File.ReadAllBytes(txtGambar2.Text ))
39
End If End Sub Private Sub txtHewan_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) End Sub Private Sub txtBentuk_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtBentuk.TextChanged End Sub Private Sub txtIlmiah_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtIlmiah.TextChanged End Sub Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click End Sub Private Sub cboArsitektur_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboArsitektur.SelectedIndexChanged End Sub Private Sub Fam_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Fam.Click End Sub Private Sub PictureBoxTanaman_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBoxTanaman.Click End Sub Private Sub btnBrowse3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBrowse3.Click Dim openDlg As OpenFileDialog = New OpenFileDialog openDlg.Filter = "All Images files|*.JPG; *.PNG; *.GIF" Dim filter As String = openDlg.Filter openDlg.Title = "Open a Image File" If (openDlg.ShowDialog() = Windows.Forms.DialogResult.OK) Then curFileName = openDlg.FileName txtGambar3.Text = curFileName PictureBoxTanaman3.Image = Image.FromFile(curFileName) PictureBoxTanaman3.Invalidate() Dim s As String = txtGambar3.Text Dim parts As String() = s.Split(New Char() {"\"c}) Dim part As String jum_path = 0
40
For Each part In parts gambar3 = (part) jum_path = jum_path + 1 Next 'binaryFile = Convert.ToBase64String(System.IO.File.ReadAllBytes(gambar3)) binaryFile = Convert.ToBase64String(System.IO.File.ReadAllBytes(txtGambar3.Text )) End If End Sub End Class
Lampiran 3. Form Famili 'Import librari untuk mengolah database Imports System.Data Imports System.Data.OleDb Imports System.IO Public Class Famili 'Deklarasi variabel Public conn As OleDbConnection 'variabel untuk koneksi Public connStr As String 'variabel untuk simpan koneksi Public sql As String 'variabel untuk mengolah database Public cmd As OleDbCommand 'variabel untuk menyimpan perintah dari dan ke database Public rdr As OleDbDataReader 'variabel untuk menyimpan hasil baca dari database Dim item As ListViewItem Public Sub bukakoneksi() connStr = "Provider=Microsoft.Jet.OleDb.4.0;" & "Data Source=" + Directory.GetCurrentDirectory + "\db32b.mdb" conn = New OleDbConnection(connStr) conn.Open() End Sub Public Sub bacadata() txtNama.Enabled = False txtID.Text = "" txtNama.Text = "" sql = "SELECT * FROM Famili ORDER BY NamaFamili" cmd = New OleDbCommand(sql, conn) rdr = cmd.ExecuteReader() lstNama.Items.Clear() Do While rdr.Read lstNama.Items.Add(rdr("NamaFamili")) Loop rdr.Close() End Sub Private Sub Famili_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load bukakoneksi() bacadata() End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click bacadata() End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click txtID.Text = "" txtNama.Text = "" txtNama.Enabled = True End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click txtNama.Enabled = True End Sub
42
Public Sub Tampilkan_Detil() sql = "SELECT * FROM Famili WHERE NamaFamili='" & lstNama.Text & "'" cmd = New OleDbCommand(sql, conn) rdr = cmd.ExecuteReader() If rdr.Read Then txtID.Text = rdr("ID_Famili") txtNama.Text = rdr("NamaFamili") End If rdr.Close() End Sub Private Sub lstNama_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lstNama.SelectedIndexChanged Tampilkan_Detil() End Sub Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click Dim status As Integer If txtID.Text = "ID" Or txtID.Text = "" Then If txtNama.Text = Nothing Then MsgBox("Silahkan masukkan nama Family!", MsgBoxStyle.Exclamation, "Tambah Data") Else sql = "INSERT INTO Famili(NamaFamili) VALUES (" _ & "'" & txtNama.Text & "')" cmd = New OleDbCommand(sql, conn) status = cmd.ExecuteNonQuery() If status = 1 Then MsgBox("Famili Baru berhasil di tambahkan!", MsgBoxStyle.Information, "Tambah Data") Else MsgBox("Famili Baru gagal di tambahkan!", MsgBoxStyle.Information, "Tambah Data") End If bacadata() End If Else If txtNama.Text = Nothing Then MsgBox("Silahkan masukkan nama Family!", MsgBoxStyle.Exclamation, "Tambah Data") Else If MessageBox.Show("Anda Yakin akan mengupdate record ini?", "Update Data", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then sql = "UPDATE Famili SET NamaFamili = '" & txtNama.Text & "'" _ & " WHERE Id_Famili = " & txtID.Text & "" cmd = New OleDbCommand(sql, conn) status = cmd.ExecuteNonQuery() If status = 1 Then MessageBox.Show("UPDATE Sukses", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information)
43
Else MessageBox.Show("UPDATE Gagal", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information) End If bacadata() Else MessageBox.Show("Update data dibatalkan", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information) End If End If End If End Sub Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click Dim status As Integer If MessageBox.Show("Anda Yakin akan menghapus record ini?" & vbCrLf & "SEMUA SPESIES TUMBUHAN DENGAN FAMILI INI AKAN TERHAPUS", "Hapus Data", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then sql = "DELETE FROM Famili WHERE Id_Famili=" & txtID.Text & "" cmd = New OleDbCommand(sql, conn) status = cmd.ExecuteNonQuery() If status = 1 Then MessageBox.Show("Hapus Data Sukses", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information) Else MessageBox.Show("Hapus Data Gagal", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information) End If bacadata() Tampilkan_Detil() cmd.Dispose() Else MessageBox.Show("Hapus data dibatalkan", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information) End If bacadata() End Sub End Class
Lampiran 4. Form Tutorial Imports System.Data Imports System.Data.OleDb Imports System.IO Public Class Tutorial Private conn As OleDbConnection Private connStr As String Private sql, query As String Private cmd As OleDbCommand Private rdr As OleDbDataReader Private rdr1 As OleDbDataReader Dim TipeHujan, PH, Kriteria As String Private curFileName Public binaryFile Public tombol As String Private Sub buka_Koneksi() connStr = "Provider=Microsoft.Jet.OleDb.4.0;" & "Data Source=" + Directory.GetCurrentDirectory + "\db32b.mdb" conn = New OleDbConnection(connStr) conn.Open() End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click PictureBox1.Image = Nothing tombol = "Tumbuhan" sql = "SELECT * FROM Tutorial Where Keterangan = 'Tumbuhan' ORDER BY ID" cmd = New OleDbCommand(sql, conn) rdr = cmd.ExecuteReader() lstNama.Items.Clear() Do While rdr.Read lstNama.Items.Add(rdr("Nama")) Loop rdr.Close() End Sub Private Sub Tutorial_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load buka_Koneksi() home() End Sub Private Sub lstNama_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lstNama.SelectedIndexChanged 'Label2.Text = tombol sql = "SELECT * FROM Tutorial WHERE Nama = '" & lstNama.Text & "' AND Keterangan = '" & tombol & "'" cmd = New OleDbCommand(sql, conn) rdr = cmd.ExecuteReader() If rdr.Read Then Label1.Text = rdr("Gambar")
45
End If 'MsgBox(Label1.Text) PictureBox1.Image = Image.FromFile(Directory.GetCurrentDirectory & Label1.Text) End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click PictureBox1.Image = Nothing tombol = "Family" sql = "SELECT * FROM Tutorial Where Keterangan = 'Family' ORDER BY ID" cmd = New OleDbCommand(sql, conn) rdr = cmd.ExecuteReader() lstNama.Items.Clear() Do While rdr.Read lstNama.Items.Add(rdr("Nama")) Loop rdr.Close() End Sub Private Sub home() tombol = "Home" sql = "SELECT * FROM Tutorial Where Keterangan = 'Home' ORDER BY ID" cmd = New OleDbCommand(sql, conn) rdr = cmd.ExecuteReader() lstNama.Items.Clear() Do While rdr.Read lstNama.Items.Add(rdr("Nama")) Loop rdr.Close() End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click PictureBox1.Image = Nothing home() End Sub Private Sub SplitContainer2_Panel1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles SplitContainer2.Panel1.Paint End Sub End Class
BAB I PENDAHULUAN 1.1 Latar Belakang Hutan kota adalah hamparan lahan yang bertumbuhan pohon-pohon yang kompak dan rapat di dalam perkotaan baik pada tanah negara maupun tanah hak yang ditetapkan sebagai hutan kota oleh pejabat berwenang (Peraturan Pemerintah No. 63 Tahun 2003). Hutan kota yang ada dapat berbentuk antara lain berupa jalur hijau (dapat berupa pohon peneduh jalan, jalur hijau di bawah kawat listrik tegangan tinggi, jalur hijau di tepi rel kereta api, jalur hijau di tepi sungai di dalam maupun di luar kota), tanaman kota yaitu tanaman yang ditata sedemikian rupa baik sebagian maupun semuanya rekayasa manusia untuk mendapatkan komposisi tertentu yang indah; kebun dan halaman; kebun raya, hutan raya dan kebun binatang; hutan lindung; kuburan dan taman pemakaman pahlawan (Dahlan 1992). Hutan kota berfungsi untuk memperbaiki iklim mikro, nilai estetika, meresapkan air, menciptakan keserasian lingkungan fisik kota dan menjaga keseimbangan ekosistem perkotaan (Jauhari, 2003). Seiring berjalannya waktu, lingkungan perkotaan semakin hari semakin buruk. Perkembangan sarana dan prasarana yang semakin lengkap mau tidak mau menekan ruang terbuka hijau (RTH). Banyak lahan yang ditumbuhi tumbuhan hijau dikonversi menjadi kawasan perumahan, industri, jalur akses, serta sarana dan prasarana lainnya. Padahal kualitas ekologi dapat berpengaruh pada produktifitas perekonomian kota. Kualitas ekologi yang buruk dapat menurunkan kualitas sumber daya manusia (SDM) yang dapat mengakibatkan penurunan produktifitas perekonomian perkotaan. Maka dari itu, harus ada usaha dalam mamperbaiki kualitas ekologi perkotaan melalui penataan lingkungan dan pembangunan hutan kota. Namun dalam pelaksanaannya, tidak sedikit usaha perbaikan kualitas ekologi yang mengalami kegagalan. Sekitar 30% dari total jumlah pohon yang ditanam dalam program penghijauan di Kota Bandung, mati (Rohayati dan Aksan, 2010). Kejadian yang lebih parah terjadi pada penanaman hutan bakau di Teluk Parepare yang terjadi pada tahun 2002. BAPEDALDA melaksanakan kegiatan penanaman hutan mangrove sebanyak 300 pohon di Lumpue dan 200 pohon di
2
Cempae, namun yang mampu tumbuh sampai sekarang hanya sekitar 30% di daerah Lumpue sedangkan di daerah Cempae semuanya mati (Uwaisalqarny, 2008). Pesurnay (1997) melakukan penelitian mengenai evaluasi tanaman penghijauan di lokasi PPKAN-34 kawasan Gunung Nona Kotamadya Ambon. Evaluasi
tanaman penghijauan dilakukan 3
tahun setelah penanaman.
Pertumbuhan tanaman penghijauan mengalami perbedaan.. Hal ini disebabkan keadaan geologis pada tiap plot berbeda. Menurut Retnowati (1988), pada umur 2 tahun mangium sudah mulai berbunga dan berbuah serta mampu menghasilkan biji yang baik. Namun berdasarkan penelitian Pesurnay (1997) pada lokasi penelitiannya tidak ditemukan tanaman mangium yang sudah menghasilkan bunga meskipun usianya sudah 3 tahun. Berdasarkan penelitian tersebut, dapat disimpulkan bahwa tiap-tiap tanaman memiliki kebutuhan yang berbeda akan kondisi tempat hidupnya. Ada tanaman yang yang dapat tumbuh baik pada tanah yang basah dan ada tanaman yang justru tumbuh baik pada tanah yang kering, ada juga tanaman yang dapat tumbuh baik pada kedua kondisi tanah tersebut. Begitu pula dengan kondisi ekologi lainnya. Serta ada beberapa tanaman yang semasa hidupnya memerlukan perlakuan khusus agar dapat tumbuh dengan baik. Menurut Dahlan (1992) informasi yang perlu diperhatikan dalam pemilihan jenis tanaman yang akan digunakan untuk pembangunan hutan kota adalah : 1.
Persyaratan edafis : pH, jenis tanah, tekstur, altitud, salinitas dan sejenisnya.
2.
Persyaratan meteorologis : suhu, kelembaban udara, kecepatan angin, dan radiasi sinar matahari.
3.
Persyaratan umum tanaman.
4.
Persyaratan untuk pohon peneduh jalan.
5.
Persyaratan estetika.
6.
Persyaratan untuk pemanfaatan khusus : disesuaikan dengan tujuan. Pemilihan jenis tanaman untuk hutan kota merupakan salah satu langkah
yang penting guna menuju keberhasilan program penghijauan kota. Dalam
3
pemilihan jenis tanaman hutan kota perlu diperhatikan aspek-aspek ekologi. Oleh sebab itu, sebelum penanaman dilakukan perlu diketahui keadaan lahan dan kondisi setempat yang meliputi iklim, tanah dan kondisi lingkungan lainnya. Setelah informasi itu diperoleh, baru ditentukan jenis tanaman yang akan ditanam. Pemilihan jenis dilakukan untuk menentukan jenis tanaman yang akan ditanam agar sesuai dengan kondisi setempat sehingga tanaman yang akan ditanam diharapkan dapat berfungsi maksimal sesuai dengan yang diharapkan (Dahlan, 2004). Nawawi (2005) telah membuat database dan piranti lunak mengenai Sistem Informasi Tumbuhan dan Tanaman Hutan Kota (Sinttha), namun terdapat beberapa kekurangan pada piranti lunak tersebut, seperti penggunaan tipe hujan berdasarkan Schmidt-Ferguson yang cukup rumit dan jarang digunakan oleh masyarakat awam, penggalian informasi yang kurang sederhana, serta gambaran tumbuhan yang bersifat umum dan kurang spesifik karena hanya menyediakan 1 buah gambar. Oleh sebab itu, diperlukan database dan piranti lunak yang lebih sempurna sehingga dapat digunakan sebagai informasi hutan kota. 1.2 Tujuan Tugas Akhir 1. Tujuan dibuatnya piranti lunak ini adalah untuk menyajikan informasi dalam bentuk digital. 2. Menampilkan informasi tumbuhan untuk keperluan pembangunan hutan kota. 3. Memberikan kemudahan dalam mengakses informasi yang telah dikumpulkan dan dapat digunakan tidak hanya masyarakat dengan latar belakang lingkungan, tetapi juga masyarakat pada umumnya. 1.3 Manfaat Tugas Akhir Manfaat piranti lunak ini adalah untuk memberi kemudahan dalam mengakses informasi, serta dapat dijadikan referensi untuk pembangunan hutan kota.
BAB II TINJAUAN PUSTAKA
2.1 MS Visual Basic 2005 Visual Basic 2005 merupakan salah satu aplikasi pemrograman visual yang dibuat oleh Microsoft. Visual Basic 2005 merupakan bagian dari sebuah suite aplikasi pemrograman bernama Visual Studios 2005. Visual Basic 2005 sudah mendukung konsep pemrograman berorientasi objek (Object Oriented Programming). Dalam Visual Basic 2005 akan dikenal konsep objek, kelas (class), pewarisan (inheritance), namespace, dan lain-lain (Ramadhan, 2007). 2.2 Sistem Informasi Sekarang ini, sudah banyak program-program yang dibuat berkenaan dengan sistem informasi dalam berbagai bidang, begitu juga dalam bidang kehutanan. Pada tahun 2000, dikembangkan pangkalan data tumbuhan obat unggulan oleh DEPHUTBUN dan Fakultas Kehutanan IPB, lalu Sistem Informasi Taman Nasional Gunung Gede Pangrango oleh Prantio (2001), Program Sistem Informasi Manajemen Hutan Mangrove yang dikembangkan oleh Suhana (2002), Basis data pohon yang dikembangkan oleh Nazir (2001), dan Sistem Informasi Tumbuhan dan Tanaman Hutan Kota (Sinttha) oleh Nawawi (2005). Pangkalan
tumbuhan
obat
unggulan
yang
dikembangkan
oleh
DEPHUTBUN dan Fakultas Kehutanan IPB (2000) berisi informasi tentang tumbuhan obat unggulan pada 18 lokasi di lima propinsi yaitu, Sumatera Barat, Jambi, Jawa Barat, Jawa Tengah, dan Jawa Timur. Informasi yang digali dan digunakan dalam piranti lunak itu adalah nama latin, nama famili, nama daerah, habitus, bagian yang dimanfaatkan, serta khasiatnya. Data dihimpun dalam piranti lunak Sistem Informasi Geografi, ARC/INFO, yang divisualisasikan dengan menggunakan ARC/VIEW. Tampilan basis data dilakukan dengan menggunakan ARC/VIEW, sehingga peta dan potensinya dapat dilihat secara bersamaan dengan mengetik lokasi yang diinginkan. Sistem informasi Taman Nasional Gunung Gede Pangrango yang dikembangkan oleh Prantio (2001) diberi nama TNGP.INFO. Program aplikasi
5
TNGP.INFO adalah program yang dibuat untuk manajemen basis data di Sub Balai Taman Nasional Gunung Gede Pangrango. Piranti lunak ini berisi berbagai macam data seperti data vegetasi, fauna, kondisi sosial ekonomi masyarakat yang ada di sekitar Taman Nasional Gunung Gede Pangrango, serta kondisi umum, termasuk potensi yang dimiliki dan sebuah video pendek. Program
Sistem
Informasi
Manajemen
Hutan
Mangrove
yang
dikembangkan oleh Suhana (2002) berisi informasi untuk pengelolaan hutan pesisir, khususnya pengelolaan hutan mangrove yang ada di Kabupatan Ciamis, Jawa Barat. Informasi yang ditampilkan dalam piranti lunak ini adalah informasi mengenai
perkembangan
keadaan
demografi
(jumlah
penduduk,
mata
pencaharian, pendidikan, dan lain-lain) di sekitar hutan mangrove, dan keadaan lingkungan sekitar hutan mangrove (tata guna lahan, pasang surut perairan dan kualitas perairan, vegetasi hutan mangrove, peraturan-peraturan yang terkait dengan pengelolaan hutan mangrove). Basis data pohon yang dikembangkan oleh Nazir (2001) yang berisi mengenai basis data pohon yang berupa informasi basis data pohon koleksi arboretum Arsitektur Lansekap kampus IPB Dramaga, Bogor. Sistem Informasi Tumbuhan dan Tanaman Hutan Kota (Sinttha) yang dikembangkan oleh Nawawi (2005) berisi informasi untuk pengelolaan hutan kota. Informasi yang ditampilkan oleh piranti lunak ini adalah informasi spesies tumbuhan yang meliputi nama ilmiah, nama daerah, tipe hujan, cahaya, altitud minimum, altitud maksimum, jenis tanah, tekstur tanah, solum, pH, daya transpirasi, daya serap CO 2, ketahanan garam, ketahanan genang, bentuk tajuk, diameter tajuk, model arsitektur, tinggi tumbuhan, kelas tinggi, kelas tajuk serta gambar spesies tumbuhan tersebut.
BAB III METODOLOGI
3.1 Waktu Pembuatan piranti lunak ini dilakukan selama dua bulan yaitu bulan Desember 2010 - Januari 2011.
3.2. Alat dan Bahan 3.2.1 Alat Pembuatan piranti lunak ini dilakukan dengan menggunakan alat berbentuk perangkat keras (hardware) dan perangkat lunak (software). Perangkat keras yang digunakan antara lain Personal Computer (PC), blank DVD-R, DVDRW ROM LG 52x, dan Kamera digital, sedangkan piranti lunak yang digunakan dalam pembuatan piranti lunak ini adalah Microsoft Windows XP® Professional, Microsoft Office Access XP, Microsoft Visual Studios 2005, Adobe Photoshop 6.0, Microsoft Office Picture Manager, Microsoft Office Power Point XP, Microsoft Paint, Installshield Proffesional 7.01, dan Microsoft Internet Explorer 8.0.
3.2.2 Bahan Pembuatan piranti lunak ini menggunakan bahan berupa informasi mengenai tanaman hutan kota yang dikumpulkan melalui studi pustaka maupun pencarian melalui jalur internet.
3.3 Metode Pembuatan Piranti Lunak Piranti lunak sistem informasi yang akan dibuat ini disusun melalui beberapa tahapan, diantaranya :
3.3.1 Perancangan Basis Data Data mengenai tumbuhan yang telah dikumpulkan, disusun ke dalam suatu database (basis data) dengan menggunakan Microsoft Access dengan nama file db32b.mdb. File ini digunakan sebagai basis data dalam bentuk tabel yang berisi informasi mengenai ID, nama ilmiah, nama daerah, ID famili, tipe hujan, cahaya,
7
altitud minimum, altitud maksimum, jenis tanah, tekstur tanah, solum, pH, daya transpirasi, daya serap CO 2, ketahanan garam, ketahanan genang, bentuk tajuk, diameter tajuk, model arsitektur, tinggi tumbuhan, kelas tinggi, kelas tajuk, foto 1, foto 2, foto 3.
3.3.2 Perancangan Piranti lunak Pembuatan piranti lunak ini dimulai dengan membuat tampilan antar muka pengguna (user interface) piranti lunak yang akan dibuat dengan menggunakan toolbox yang terdapat dalam program VB.Net 2005. Penyusunan antar muka pengguna (user interface) ini bertujuan untuk menentukan tata letak tombol perintah, membuat kolom untuk tampilan informasi yang dikeluarkan (output) serta tata letaknya, menentukan latar belakang (background), serta hal lainnya yang berhubungan dengan tampilan visual piranti lunak yang akan dibuat. Selain itu, penyusunan antar muka pengguna (user interface) ini berfungsi untuk menyusun rencana tampilan hasil eksekusi dari pemrograman yang telah dibuat, yang nantinya akan menampilkan berbagai macam informasi mengenai tanaman. Informasi yang nantinya akan ditampilkan oleh piranti lunak ini didapat dari input yang telah disusun dalam bentuk tabel yang disimpan dengan Microsoft Access dalam file db32b.mdb. Data yang dikeluarkan (output) dalam piranti lunak ini berupa informasi yang dibutuhkan oleh pengguna (user) dengan menggunakan tombol-tombol perintah yang tersedia.
3.3.3 Implementasi Program Setelah pembuatan antar muka pengguna (user interface) selesai, maka langkah selanjutnya adalah memberi perintah pada tampilan antar muka pengguna (user interface) yang telah dibuat. Penulisan bahasa program ini juga berfungsi agar piranti lunak yang telah dibuat dapat membaca basis data dan menampilkannya pada kolom-kolom yang telah dibuat untuk menempatkan informasi dari basis data. Tombol-tombol bantuan yang telah dibuat juga diberi perintah dengan bahasa program sesuai dengan fungsi tombol tersebut yang dikehendaki. Setelah selesai pemberian perintah, kemudian program dijalankan
8
(run) untuk melihat apakah bahasa pemrograman yang dibuat sudah sesuai dan dapat berjalan dengan baik. Rancangan program diimplementasikan ke dalam program komputer sehingga menjadi single file dengan jenis Windows executable file (*.exe) dengan menggunakan bahasa pemrograman. Bahasa pemrograman yang digunakan adalah bahasa pemrograman Visual Corporation 2005. Program yang telah dibuat kemudian dijalankan untuk menguji ada atau tidaknya kesalahan (bug).
3.3.4 Pengujian Program Pengujian program ini bertujuan untuk mengevaluasi program yang telah dibuat agar sesuai dengan tujuan pembuatan piranti lunak tersebut. Pengujian program dilakukan dengan meng-install program yang telah dibuat menjadi Windows executable file (*.exe) ke dalam sebuah komputer yang menggunakan Microsoft® Windows sebagai sistem operasi, kemudian menjalankannya. Apabila program tersebut dapat ter-install dan berjalan dengan baik, maka pembuatan program tersebut berhasil, namun apabila tidak berjalan baik, maka perlu dilakukan evaluasi untuk memperbaiki kesalahan tersebut.
Gambar 1. Tahapan Pembuatan Sistem Informasi Hutan Kota
BAB IV HASIL DAN PEMBAHASAN
4.1 Hasil 4.1.1 Basis Data Basis data pada piranti lunak Plant and Tree Information System dibuat dalam bentuk tabel dan disimpan dalam satu basis data file yang bernama db32b.mdb dengan model data flat file. Tabel yang dibuat memuat informasi mengenai tumbuhan dan tanaman. Informasi tersebut mencakup ID, nama ilmiah, nama daerah, ID famili, tipe hujan, cahaya, altitud minimum, altitud maksimum, jenis tanah, tekstur tanah, solum, pH, daya transpirasi, daya serap CO 2, ketahanan garam, ketahanan genang, bentuk tajuk, diameter tajuk, model arsitektur, tinggi tumbuhan, kelas tinggi, kelas tajuk, foto 1, foto 2, foto 3.
4.1.2 Program Piranti lunak Program piranti lunak Plant and Tree Information System (PLATIS) terdiri atas form tumbuhan, famili, dan tutorial.
Gambar 2. Tampilan utama
10
4.1.2.1 Form Tumbuhan Form tumbuhan merupakan halaman inti piranti lunak tersebut yang menampilkan daftar (list) tumbuhan dan tanaman, serta berbagai informasi mengenai tumbuhan tersebut, seperti nama ilmiah, nama daerah, tipe hujan, cahaya, altitud minimum, altitud maksimum, jenis tanah, tekstur tanah, solum, pH, daya transpirasi, daya serap CO 2, ketahanan garam, ketahanan genang, bentuk tajuk, diameter tajuk, model arsitektur, tinggi tumbuhan, kelas tinggi, kelas tajuk, serta tiga tempat untuk menampilkan foto tumbuhan. Pada form ini juga terdapat beberapa tombol yang berfungsi untuk membantu dalam mengakses informasi seperti tombol refresh, clear, search, add, edit, save, dan delete. a. Refresh Tombol refresh ini berfungsi memerintahkan piranti lunak untuk membaca kembali basis data sehingga informasi yang ditampilkan menjadi update. b. Clear Tombol clear berfungsi untuk membuat kolom-kolom yang telah terisi informasi mengenai suatu spesies tumbuhan menjadi bersih, sehingga bisa diisi oleh pengguna untuk menggunakan fungsi dari tombol-tombol yang lain. c. Search Tombol search ini berfungsi untuk mencari informasi berdasarkan kata kunci yang dimasukan oleh pengguna. Fasilitas pencarian ini dapat mencakup semua aspek, tergantung keinginan pengguna. Pengguna tinggal mencantumkan kata kunci pada salah satu atau kombinasi beberapa kriteria informasi yang ingin dicari. d. Add Tombol add berfungsi untuk menambah atau mengubah informasi. Tombol ini juga berfungsi sebagai pemicu tombol save sehingga tombol tersebut dapat digunakan.
11
e. Edit Tombol edit ini adalah tombol untuk meng-edit (mengubah) informasi yang ditampilkan. Pengguna yang menggunakan piranti lunak ini pertama-tama harus menampilkan informasi salah satu spesies tumbuhan, setelah informasi tersebut ditampilkan, maka klik tombol edit kemudian pengguna dipersilahkan untuk mengganti bila dirasa ada informasi yang keliru atau tidak sesuai, kemudian tekan tombol save untuk menyimpan informasi tersebut ke dalam basis data. f. Save Tombol save ini berfungsi untuk memasukan informasi baru ke dalam basis data. Tombol ini hanya dapat berfungsi jika pengguna telah menekan tombol add atau tombol edit sebelumnya. g. Delete Tombol delete berfungsi untuk menghapus informasi dan semua data mengenai suatu tumbuhan. Tombol delete ini tidak hanya menghapus semua informasi satu jenis tumbuhan dari piranti lunak, tapi juga menghapusnya dari basis data.
Gambar 3. tampilan form tumbuhan
12
4.1.2.2 Form Famili Form famili ini dibuat bertujuan untuk menampilkan nama-nama famili yang ada dalam basis data. Dalam form ini juga diberi beberapa tombol perintah seperti refresh, tambah, ubah, simpan, dan hapus. a. Refresh Tombol refresh berisi perintah untuk membaca kembali informasi yang ada di basis data. b. Tambah Tombol tambah ini berfungsi untuk manambah famili, sehingga jika pengguna ingin menambah informasi tumbuhan pada form tumbuhan, tetapi famili dari spesies tumbuhan tersebut belum terdaftar pada basis data, maka pengguna harus menambahkan famili dari spesies tersebut pada form famili ini. c. Ubah Tombol ubah ini berfungsi untuk mengganti atau mengkoreksi jika terdapat kesalahan penulisan pada nama famili yang telah terdaftar. d. Simpan Tombol simpan ini berfungsi untuk menyimpan data yang telah ditambahkan atau diubah dan menuliskannya ke dalam basis data. e. Hapus Tombol hapus ini adalah tombol untuk menghapus nama famili yang tersimpan dalam basis data.
Gambar 4. Tampilan form famili
13
4.1.2.3 Form Tutorial Form tutorial ini adalah form yang berisi informasi mengenai piranti lunak, penjelasan mengenai fungsi dari tombol-tombol yang ada pada piranti lunak, dan penjelasan mengenai tata cara pengoperasian piranti lunak. Dalam form juga terdapat beberapa tombol yang juga ada pada form tumbuhan dan form famili seperti tombol refresh, clear, search, add, edit, save, dan delete. Namun yang membedakan disini adalah, jika tombol-tombol tersebut di eksekusi (di klik), maka akan muncul penjelasan mengenai tata cara penggunaan dan fungsi dari tombol tersebut baik itu tombol yang ada pada form tumbuhan maupun yang ada pada form famili.
Gambar 5. Tampilan form tutorial
4.2 Pembahasan Program piranti lunak Plant and Tree Information System (PLATIS) adalah sebuah piranti lunak yang dibuat untuk mengelola data-data informasi mengenai tumbuhan dan tanaman seperti nama ilmiah, nama lokal, famili, kemampuan tanaman menyerap CO2, daya transpirasi, ketahanan tanaman terhadap garam, ketahanan terhadap genangan, keadaan lingkungan tempat tumbuh (tipe hujan, altitud (ketinggian tempat tumbuh), kebutuhan cahaya, solum (kedalaman), keasaman (pH) tanah, jenis tanah), morfologi tanaman (bentuk tajuk, diameter tajuk, kelas tajuk, model arsitektur, tinggi tumbuhan, kelas tinggi), serta gambar tanaman tersebut.
14
Informasi mengenai tanaman tersebut dapat digunakan untuk berbagai keperluan, diantaranya dalam rencana pembangunan hutan kota. Karakteristik mengenai suatu tumbuhan diperlukan agar pembangunan hutan kota mencapai tujuannya secara efektif dan tepat sasaran. Informasi yang dikumpulkan dan disusun ke dalam piranti lunak ini juga diharapkan dapat menambah wawasan bagi pelajar, mahasiswa, dan masyarakat pada umumnya. Piranti lunak ini dibuat dengan menggunakan MS Visual Studio 2005 dengan basis data yang dibuat dengan menggunakan MS Access XP. Piranti lunak ini terdiri atas 3 (tiga) form (tampilan), yaitu form tumbuhan, form famili, dan form tutorial. Form tumbuhan merupakan form untuk menampilkan informasi mengenai nama ilmiah, nama daerah, tipe hujan, cahaya, altitud minimum, altitud maksimum, jenis tanah, tekstur tanah, solum, pH, daya transpirasi, daya serap CO2, ketahanan garam, ketahanan genang, bentuk tajuk, diameter tajuk, model arsitektur, tinggi tumbuhan, kelas tinggi, kelas tajuk, serta tiga foto tumbuhan. Pada form tumbuhan ini juga disertakan beberapa bantuan, seperti refresh, clear, search, add, edit, save, delete. Form famili adalah form tempat untuk menampilkan informasi mengenai nama-nama famili yang ada di basis data piranti lunak ini. Form ini juga dilengkapi dengan berbagai macam tombol seperti refresh, tambah, ubah, simpan, dan hapus untuk meng-edit informasi mengenai nama-nama famili tersebut. Sedangkan pada form tutorial terdapat penjelasan mengenai tombol-tombol yang ada pada piranti lunak secara keseluruhan serta cara pengoperasian piranti lunak ini. Untuk menjalankan piranti lunak ini diperlukan suatu program yang dinamakan dotNetFx, oleh karena itu file tersebut sudah dimasukan ke dalam CD installer PLATIS. Penggunaan piranti lunak ini terbilang mudah, namun yang harus diperhatikan adalah pada bagian famili. Famili disini harus diisi, karena pada piranti lunak ini, famili diposisikan sebagai identitas, sehingga piranti lunak ini tidak akan menyimpan suatu informasi jika famili tidak diisi. Kemudian untuk browse foto tumbuhan, pengguna terlebih dahulu harus memasukan foto pada
15
folder images di lokasi tempat piranti lunak ini di install. Setelah foto tersebut disimpan di folder images, barulah foto tersebut dapat di browse dan di save. Informasi mengenai tanaman yang telah disajikan dalam bentuk digital ini dapat digunakan untuk berbagai keperluan, diantaranya dalam rencana pembangunan hutan kota. Karakteristik mengenai suatu tumbuhan diperlukan agar pembangunan hutan kota mencapai tujuannya secara efektif dan tepat sasaran. Keunggulan dari program ini adalah, data mengenai informasi yang ada di dalamnya dapat ditambah dan diubah, penggunaannya cenderung lebih sederhana karena kriteria yang digunakan untuk mencari informasi bisa diletakkan dimana saja dan tidak terbatas pada pencarian berdasarkan nama ilmiah atau nama daerah saja, tetapi bisa pada kriteria lainnya sesuai yang dikehendaki pengguna. Form untuk pencarian disatukan dengan form untuk menampilkan informasi sehingga pengguna tidak direpotkan dengan keharusan berpindah
form untuk
menggunakan perintah pencarian. Kelemahan dari piranti lunak ini adalah resolusi yang tidak otomatis menyesuaikan dengan resolusi layar, sehingga resolusi yang dipakai adalah resolusi yang pada saat program ini dibuat, serta kemungkinan adanya kesalahan (error) pada saat pengoperasian karena kemungkinan adanya ketidakcocokan antara piranti lunak ini dengan sistem yang ada pada komputer pengguna. Proses peng-install-an piranti lunak ini dimulai dengan mengeksekusi file setup yang ada pada CD installer, kemudian proses peng-install-an berjalan seperti proses install piranti lunak pada umumnya. Namun perlu diperhatikan, sebelum meng-install piranti lunak ini, terlebih dahulu harus meng-install program dotnetfx (sudah tersedia pada CD installer PLATIS) karena dotnetfx ini adalah komponen yang diperlukan agar piranti lunak PLATIS dapat berjalan. Setelah proses install berjalan dengan benar, maka piranti lunak ini sudah dapat dijalankan. Langkah pertama yang disarankan untuk dilakukan setelah menjalankan piranti lunak ini adalah membuka form tutorial agar pengguna mengerti mengenai tata cara pengoperasian piranti lunak ini, penjelasa-penjelasan tentang fungsi-fungsi dari tombol yang ada pada piranti lunak, penjelasan mengenai informasi yang dikeluarkan, serta cara kerja dari piranti lunak ini.
16
Karena piranti lunak ini merupakan penyempurnaan dari piranti lunak terdahulu, ada beberapa hal yang membedakan antara piranti lunak ini dengan piranti lunak terdahulu. Beberapa hal yang berbeda dan merupakan keunggulan piranti lunak ini adalah, jumlah spesies tumbuhan yang ada dalam basis data lebih banyak, informasi mengenai tipe hujan menurut Schmidt-Ferguson diubah menjadi informasi mengenai curah hujan maksimal dan curah hujan minimal. Hal ini dilakukan mengingat informasi tipe hujan menurut Schmidt-Ferguson yang digunakan oleh piranti lunak terdahulu dirasa terlalu rumit untuk dipahami, menggunakan perhitungan yang terbilang sangat rumit, sehingga kemungkinan adanya kesalahan menjadi lebih besar, sedangkan informasi mengenai curah hujan lebih umum digunakan dan nilainya absolut. Pada piranti lunak yang disusun oleh penulis juga diberi tambahan informasi, yaitu informasi mengenai manfaat dari tanaman tersebut. Pada bagian foto tumbuhan, pada piranti lunak sebelumnya disediakan hanya satu tempat untuk foto, sedangkan pada piranti lunak ini disediakan tiga tempat foto dengan harapan bisa menampilkan foto tumbuhan secara keseluruhan, foto daun, sampai foto buah/benih tumbuhan. Menurut tipe iklim Schmidt-Ferguson, tipe iklim suatu daerah dapat ditentukan dengan memperhatikan jumlah rata-rata bulan basah dan bulan kering dalam kurun waktu 10 sampai 20 tahun. Suatu bulan dikatakan bulan basah apabila curah hujannya lebih dari 100mm, dan bulan kering apabila curah hujannya kurang dari 60mm, sedangkan bulan lembab apabila curah hujannya berkisar antara 60-100mm. Dalam perhitungan ini, bulan lembab diabaikan. Rumus yang digunakan untuk menentukan tipe iklim Schmidt-Ferguson adalah sebagai berikut : Md Q = -------- x 100 % Mw Dimana : Q
= Tipe iklim menurut Schmidt-Ferguson
Md
= Rata-rata banyaknya bulan kering (Fd/T)
Mw
= Rata-rata bulan basah (Fw/T)
Fd
= Jumlah bulan kering
17
Fw
= Jumlah bulan basah
T
= Banyaknya tahun observasi
Nilai Q untuk menentukan tipe iklim suatu daerah menurut SchmidtFerguson, adalah sebagai berikut :
Tabel 1. Klasifikasi Iklim Menurut Schmidt-Ferguson
Keunggulan lainnya adalah pada pengoperasian. Pada piranti lunak terdapat beberapa fungsi yang terkumpul dalam satu form, sehingga pengguna tidak dipusingkan untuk berpindah-pindah form. Sedangkan pada piranti lunak sebelumnya, form pencarian (search) dengan informasi dari spesies yang dituju berada dalam form yang berbeda, sehingga ketika pengguna menggunakan fungsi search, maka untuk melihat hasil dari informasi yang dicari, pengguna harus berpindah form terlebih dahulu.
BAB V KESIMPULAN DAN SARAN
4.1 Kesimpulan Sistem informasi mengenai tumbuhan hutan kota dengan nama Plant and Tree Information System (PLATIS) dapat digunakan untuk : 1. Mengakses informasi mengenai tumbuhan untuk keperluan hutan kota. 2. Informasi yang ditampilkan oleh piranti lunak ini adalah informasi mengenai nama ilmiah, nama lokal, famili, kemampuan tanaman menyerap CO2, daya transpirasi, ketahanan tanaman terhadap garam, ketahanan terhadap genangan, keadaan lingkungan tempat tumbuh (tipe hujan, altitud (ketinggian tempat tumbuh), kebutuhan cahaya, solum (kedalaman), keasaman (pH) tanah, jenis tanah), morfologi tanaman (bentuk tajuk, diameter tajuk, kelas tajuk, model arsitektur, tinggi tumbuhan, kelas tinggi), serta gambar dari tanaman. 4.2 Saran 1. Perlu tambahan informasi mengenai tumbuhan yang lebih banyak lagi, karena jumlah tumbuhan yang di input ke dalam basis data hanya sebanyak 225 spesies tumbuhan. 2. Perlu dilakukan modifikasi tampilan, terutama masalah resolusi, sehingga untuk selanjutnya, piranti lunak ini sudah mendukung dan menyesuaikan dengan resolusi berbagai tipe monitor.
DAFTAR PUSTAKA Dahlan EN. 1992. Hutan Kota : Untuk Pengelolaan dan Peningkatan Kualitas Lingkungan Hidup. Asosiasi Pengusaha Hutan Indonesia. Jakarta. 92 Hal. ._________. 2004. Membangun Kota Kebun (Garden City) Bernuansa Hutan Kota. IPB Press. Bogor. [DepHutBun dan Fahutan IPB] Departemen Kehutanan dan Perkebunan dan Fakultas Kehutanan IPB. 2000. Inventarisasi, Identifikasi dan Pemetaan Potensi Wanafarma: Propinsi Sumatera Barat. Bogor : Fakultas Kehutanan IPB. 264 Hal. Jauhari, A. 2003. Hutan Kota untuk Keseimbangan Ekosistem Perkotaan. Tunas Vol. 1. No. 7. Nawawi. 2005. Pembuatan Piranti Lunak Sistem Informasi Tumbuhan dan Tanaman Hutan Kota. [Skripsi]. Bogor : Institut Pertanian Bogor. Fakultas Kehutanan. 20 Hal. Nazir AIB. 2001. Penyusunan Basis Data Pohon Koleksi Arboretum Arsitektur Lansekap Kampus Institut Pertanian Bogor Dramaga, Bogor. [Skripsi]. Bogor : Institut Pertanian Bogor. Fakultas Pertanian. 96 Hal. Pesurnay, F. E. 1997. Evaluasi TanamanPenghijauan Di Lokasi PPKSN-34 Kawasan Gunung Nona Kotamadya Ambon Dalam Rangka Pengembangan Potensinya Sebagai Hutan Kota. [Skripsi]. Bogor : Institut Pertanian Bogor. Fakultas Kehutanan. 61 Hal. Prantio S. 2001. Pembuatan Sistem Informasi Taman Nasional Gunung Gede Pangrango Jawa Barat. [Skripsi]. Bogor: Institut Pertanian Bogor. Fakultas Kehutanan. 99 Hal. Ramadhan A. 2007. 36 Jam Belajar Komputer : Visual Basic 2005. Jakarta : Elex Media Komputindo. 376 Hal. Retnowati, E. 1988. Beberapa Catatan Tentang Acacia mangium Willd. Jenis Potensial untuk Hutan Industri, dalam Jurnal Penelitian dan Pengembangan Kehutanan. IV(1) : 24-27. Rohayati, W. Aksan, H., editor. 2010. 30% Persen Pohon Program Penghijauan Mati. http://jabar.tribunnews.com/read/artikel/26905/30-persen-pohonprogram-penghijauan-mati. [5 April 2011]. Suhana. 2002. Rancang Bangun Perangkat Lunak Sistem Informasi Manajemen Hutan Mangrove di Kabupaten Ciamis Propinsi Jawa Barat. Bogor : Institut Pertanian Bogor. Fakultas Perikanan dan Ilmu Kelautan. 48 Hal. Uwaisalqarny . 2008. Potensi Laut dan Pesisir Teluk Parepare. http://waiskeren.blogspot.com/. [5 April 2011].
LAMPIRAN
Lampiran 1 Halaman Utama Imports System.Windows.Forms Public Class Utama Private Sub ShowNewForm(ByVal sender As Object, ByVal e As EventArgs) Handles NewWindowToolStripMenuItem.Click ' Create a new instance of the child form. Dim ChildForm As New System.Windows.Forms.Form ' Make it a child of this MDI form before showing it. ChildForm.MdiParent = Me m_ChildFormNumber += 1 ChildForm.Text = "Window " & m_ChildFormNumber ChildForm.Show() End Sub Private Sub OpenFile(ByVal sender As Object, ByVal e As EventArgs) Dim OpenFileDialog As New OpenFileDialog OpenFileDialog.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyDocuments OpenFileDialog.Filter = "Text Files (*.txt)|*.txt|All Files (*.*)|*.*" If (OpenFileDialog.ShowDialog(Me) = System.Windows.Forms.DialogResult.OK) Then Dim FileName As String = OpenFileDialog.FileName ' TODO: Add code here to open the file. End If End Sub Private Sub SaveAsToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Dim SaveFileDialog As New SaveFileDialog SaveFileDialog.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyDocuments SaveFileDialog.Filter = "Text Files (*.txt)|*.txt|All Files (*.*)|*.*" If (SaveFileDialog.ShowDialog(Me) = System.Windows.Forms.DialogResult.OK) Then Dim FileName As String = SaveFileDialog.FileName ' TODO: Add code here to save the current contents of the form to a file. End If End Sub Private Sub ExitToolsStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles ExitToolStripMenuItem.Click Global.System.Windows.Forms.Application.Exit() End Sub Private Sub CutToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs)
22
' Use My.Computer.Clipboard to insert the selected text or images into the clipboard End Sub Private Sub CopyToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) ' Use My.Computer.Clipboard to insert the selected text or images into the clipboard End Sub Private Sub PasteToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) 'Use My.Computer.Clipboard.GetText() or My.Computer.Clipboard.GetData to retrieve information from the clipboard. End Sub Private Sub StatusBarToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles StatusBarToolStripMenuItem.Click Me.StatusStrip.Visible = Me.StatusBarToolStripMenuItem.Checked End Sub Private Sub CascadeToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles CascadeToolStripMenuItem.Click Me.LayoutMdi(MdiLayout.Cascade) End Sub Private Sub TileVerticleToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles TileVerticalToolStripMenuItem.Click Me.LayoutMdi(MdiLayout.TileVertical) End Sub Private Sub TileHorizontalToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles TileHorizontalToolStripMenuItem.Click Me.LayoutMdi(MdiLayout.TileHorizontal) End Sub Private Sub ArrangeIconsToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles ArrangeIconsToolStripMenuItem.Click Me.LayoutMdi(MdiLayout.ArrangeIcons) End Sub Private Sub CloseAllToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles CloseAllToolStripMenuItem.Click ' Close all child forms of the parent. For Each ChildForm As Form In Me.MdiChildren ChildForm.Close() Next End Sub Private m_ChildFormNumber As Integer = 0
23
Private Sub FamiliToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FamiliToolStripMenuItem.Click Famili.MdiParent = Me Famili.Show() End Sub Private Sub TumbuhanToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TumbuhanToolStripMenuItem.Click Tumbuhan.MdiParent = Me Tumbuhan.Show() End Sub Private Sub ContentsToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ContentsToolStripMenuItem.Click Tutorial.MdiParent = Me Tutorial.Show() End Sub Private Sub Utama_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load startup.MdiParent = Me startup.Show() End Sub Private Sub StartUpMenuToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles StartUpMenuToolStripMenuItem.Click startup.MdiParent = Me startup.Show() End Sub Private Sub AboutToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AboutToolStripMenuItem.Click about.MdiParent = Me about.Show() End Sub Private Sub ToolStripLabel1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) startup.MdiParent = Me startup.Show() End Sub End Class Public Class startup Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Tumbuhan.MdiParent = Utama Tumbuhan.Show() 'Me.Close() End Sub
24
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Famili.MdiParent = Utama Famili.Show() 'Me.Close() End Sub Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click Utama.Close() End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Tutorial.MdiParent = Utama Tutorial.Show() End Sub Private Sub startup_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load End Sub End Class
Lampiran 2. Form Tumbuhan Imports System.Data Imports System.Data.OleDb Imports System.IO Public Class Tumbuhan Private conn As OleDbConnection Private connStr As String Private sql, query As String Private cmd As OleDbCommand Private rdr As OleDbDataReader Private rdr1 As OleDbDataReader Dim CurahHujan, PH, Kriteria As String Private curFileName Public binaryFile Dim gambar, gambar2, gambar3 As String Dim jum_path As Integer Private Sub buka_Koneksi() connStr = "Provider=Microsoft.Jet.OleDb.4.0;" & "Data Source=" + Directory.GetCurrentDirectory + "\db32b.mdb" conn = New OleDbConnection(connStr) conn.Open() End Sub Public Sub baca_Data() sql = "SELECT * FROM Famili" cmd = New OleDbCommand(sql, conn) rdr = cmd.ExecuteReader() cboFamili.Items.Clear() Do While rdr.Read() cboFamili.Items.Add(rdr("NamaFamili")) Loop rdr.Close() End Sub Private Sub DecodeFile() Try Dim bt64 As Byte() = Convert.FromBase64String(binaryFile) If IO.File.Exists(Directory.GetCurrentDirectory & txtGambar.Text) Then IO.File.Delete(Directory.GetCurrentDirectory & txtGambar.Text) End If Dim sw As New IO.FileStream(Directory.GetCurrentDirectory & txtGambar.Text, IO.FileMode.CreateNew) sw.Write(bt64, 0, bt64.Length) PictureBoxTanaman.Image = Image.FromStream(sw) sw.Close() Catch ex As Exception End Try End Sub
26
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load buka_Koneksi() baca_Data() bacadata() End Sub Public Sub bacadata() sql = "SELECT * FROM Tumbuhan ORDER BY NamaIlmiah" cmd = New OleDbCommand(sql, conn) rdr = cmd.ExecuteReader() lstNama.Items.Clear() Do While rdr.Read lstNama.Items.Add(rdr("NamaIlmiah")) Loop rdr.Close() jum.Text = lstNama.Items.Count() End Sub Public Sub disable() txtID.Enabled = False txtNama.ReadOnly = True txtIlmiah.ReadOnly = True cboFamili.Enabled = False cboCahaya.Enabled = False chkA.Enabled = False chkB.Enabled = False chkC.Enabled = False chkD.Enabled = False chkE.Enabled = False txtAMin.ReadOnly = True txtAMax.ReadOnly = True txtJenisTanah.ReadOnly = True txtTeksturTanah.ReadOnly = True txtSolum.ReadOnly = True cboDayaTranspirasi.Enabled = False txtDayaSerap.ReadOnly = True cboGaram.Enabled = False cboGenang.Enabled = False txtBentuk.ReadOnly = True txtDiameter.ReadOnly = True cboArsitektur.Enabled = False cboKelasTinggi.Enabled = False cboKelasTajuk.Enabled = False txtTinggi.ReadOnly = True End Sub Public Sub clear() txtID.Text = "" Fam.Text = 0 txtNama.Text = "" txtIlmiah.Text = "" txtManfaat.Text = "" cboFamili.Text = "" cboCahaya.Text = "" txtHujan.Text = "" txtHujanMax.Text = "" chkA.Checked = False chkB.Checked = False chkC.Checked = False chkD.Checked = False
27
chkE.Checked = False chkAsam.Checked = False chkNetral.Checked = False chkBasa.Checked = False txtAMin.Text = "" txtAMax.Text = "" txtJenisTanah.Text = "" txtTeksturTanah.Text = "" txtSolum.Text = "" cboDayaTranspirasi.Text = "" txtDayaSerap.Text = "" cboGaram.Text = "" cboGenang.Text = "" txtBentuk.Text = "" txtDiameter.Text = "" cboArsitektur.Text = "" cboKelasTinggi.Text = "" cboKelasTajuk.Text = "" txtTinggi.Text = "" Kriteria = "" txtGambar.Text = "" txtGambar2.Text = "" txtGambar3.Text = "" PictureBoxTanaman.Image = Nothing PictureBoxTanaman2.Image = Nothing PictureBoxTanaman3.Image = Nothing End Sub Public Sub Tampilkan_Detil() sql = "SELECT * FROM Tumbuhan, Famili WHERE Tumbuhan.ID_Famili=Famili.Id_famili and NamaIlmiah = '" & lstNama.Text & "'" cmd = New OleDbCommand(sql, conn) rdr = cmd.ExecuteReader() If rdr.Read Then txtID.Text = rdr("ID") txtNama.Text = rdr("NamaDaerah") txtIlmiah.Text = rdr("NamaIlmiah") txtManfaat.Text = rdr("Manfaat") cboCahaya.Text = rdr("Cahaya") If rdr("AltitudMin") = 0 Or IsDBNull(rdr("AltitudMin")) = True Then txtAMin.Text = "0" Else txtAMin.Text = rdr("AltitudMin") End If If rdr("AltitudMax") = 0 Or IsDBNull(rdr("AltitudMax")) = True Then txtAMax.Text = "0" Else txtAMax.Text = rdr("AltitudMax") End If If Not rdr("JenisTanah") = Nothing Then txtJenisTanah.Text = rdr("JenisTanah") Else txtJenisTanah.Text = "-" End If If Not rdr("TeksturTanah") = Nothing Then txtTeksturTanah.Text = rdr("TeksturTanah") Else
28
txtTeksturTanah.Text = "-" End If txtSolum.Text = rdr("Solum") If rdr("pH") = "Asam" Then chkAsam.Checked = True chkNetral.Checked = False chkBasa.Checked = False ElseIf rdr("pH") = "Netral" Then chkAsam.Checked = False chkNetral.Checked = True chkBasa.Checked = False ElseIf rdr("pH") = "Basa" Then chkAsam.Checked = False chkNetral.Checked = False chkBasa.Checked = True ElseIf rdr("pH") = "Asam - Netral" Then chkAsam.Checked = True chkNetral.Checked = True chkBasa.Checked = False ElseIf rdr("pH") = "Asam - Basa" Then chkAsam.Checked = True chkNetral.Checked = False chkBasa.Checked = True ElseIf rdr("pH") = "Netral - Basa" Then chkAsam.Checked = False chkNetral.Checked = True chkBasa.Checked = True ElseIf rdr("pH") = "Asam - Netral - Basa" Then chkAsam.Checked = True chkNetral.Checked = True chkBasa.Checked = True Else chkAsam.Checked = False chkNetral.Checked = False chkBasa.Checked = False End If txtHujan.Text = rdr("curahHujanMin") txtHujanMax.Text = rdr("curahHujanMax") cboDayaTranspirasi.Text = rdr("DyTransp") txtDayaSerap.Text = rdr("DySerapCO2") cboGaram.Text = rdr("KetGaram") cboGenang.Text = rdr("KetGenang") txtBentuk.Text = rdr("BentukTajuk") txtDiameter.Text = rdr("DiameterTajuk") cboArsitektur.Text = rdr("ModelArsitektur") cboKelasTinggi.Text = rdr("KelasTinggi") cboKelasTajuk.Text = rdr("KelasTajuk") txtTinggi.Text = rdr("TinggiTumbuhan") txtGambar.Text = rdr("Foto") txtGambar2.Text = rdr("Foto2") txtGambar3.Text = rdr("Foto3") cboFamili.Text = rdr("NamaFamili") End If rdr.Close() End Sub
29
Private Sub lstNama_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lstNama.SelectedIndexChanged Tampilkan_Detil() If Not txtGambar.Text = "-" And Not txtGambar.Text = "" Then PictureBoxTanaman.Image = Image.FromFile(Directory.GetCurrentDirectory & "\images\" & txtGambar.Text) Else txtGambar.Text = "" PictureBoxTanaman.Image = Nothing End If If Not txtGambar2.Text = "-" And Not txtGambar2.Text = "" Then PictureBoxTanaman2.Image = Image.FromFile(Directory.GetCurrentDirectory & "\images\" & txtGambar2.Text) Else txtGambar2.Text = "" PictureBoxTanaman2.Image = Nothing End If If Not txtGambar3.Text = "-" And Not txtGambar3.Text = "" Then PictureBoxTanaman3.Image = Image.FromFile(Directory.GetCurrentDirectory & "\images\" & txtGambar3.Text) Else txtGambar3.Text = "" PictureBoxTanaman3.Image = Nothing End If 'DecodeFile() btnUbah.Enabled = True End Sub Private Sub btnRefresh_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRefresh.Click bacadata() clear() btnTambah.Enabled = True btnHapus.Enabled = True btnUbah.Enabled = False btnSimpan.Enabled = False End Sub Public Sub Keasaman() If chkAsam.Checked = True Then PH = "Asam" End If If chkNetral.Checked = True Then PH = "Netral" End If If chkBasa.Checked = True Then PH = "Basa" End If If chkAsam.Checked = True And chkNetral.Checked = True Then PH = "Asam - Netral" End If If chkAsam.Checked = True And chkBasa.Checked = True Then PH = "Asam - Basa"
30
End If If chkNetral.Checked = True And chkBasa.Checked = True Then PH = "Netral - Basa" End If If chkAsam.Checked = True And chkNetral.Checked = True And chkBasa.Checked = True Then PH = "Asam - Netral - Basa" End If If chkAsam.Checked = False And chkNetral.Checked = False And chkBasa.Checked = False Then PH = "" End If End Sub Private Sub btnSimpan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSimpan.Click Dim status, ID As Integer 'Tipe_Hujan() Keasaman() query = "SELECT * FROM Tumbuhan Order By ID Desc" cmd = New OleDbCommand(query, conn) rdr = cmd.ExecuteReader() If rdr.Read Then ID = rdr("ID") End If rdr.Close() ID = ID + 1 Dim s As String = txtGambar.Text Dim parts As String() = s.Split(New Char() {"\"c}) Dim part As String jum_path = 0 For Each part In parts gambar = (part) jum_path = jum_path + 1 Next Dim s2 As String = txtGambar2.Text Dim parts2 As String() = s2.Split(New Char() {"\"c}) Dim part2 As String jum_path = 0 For Each part2 In parts2 gambar2 = (part2) jum_path = jum_path + 1 Next Dim s3 As String = txtGambar3.Text Dim parts3 As String() = s3.Split(New Char() {"\"c}) Dim part3 As String jum_path = 0 For Each part3 In parts3 gambar3 = (part3) jum_path = jum_path + 1 Next If gambar = "" Then gambar = "-" End If If gambar2 = "" Then
31
gambar2 = "-" End If If gambar3 = "" Then gambar3 = "-" End If If chkAsam.Checked = False And chkNetral.Checked = False And chkBasa.Checked = False Then PH = "-" End If If txtID.Text = "ID" Or txtID.Text = "" Then If txtIlmiah.Text = "" Then MessageBox.Show("Nama Ilmiah Harus diisi", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error) ElseIf Fam.Text = "fam" Or Fam.Text = "0" Then MessageBox.Show("Famili Harus diisi", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error) Else If txtAMin.Text = "" Then txtAMin.Text = 0 End If If txtAMax.Text = "" Then txtAMax.Text = 0 End If If txtHujan.Text = "" Then txtHujan.Text = 0 End If If txtHujanMax.Text = "" Then txtHujanMax.Text = 0 End If If Not txtAMax.Text = "" And Not IsNumeric(txtAMax.Text) Then MessageBox.Show("Altitude maximum harus angka!", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error) ElseIf Not txtAMin.Text = "" And Not IsNumeric(txtAMin.Text) Then MessageBox.Show("Altitude minimum harus angka!", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error) ElseIf Not txtHujanMax.Text = "" And Not IsNumeric(txtHujanMax.Text) Then MessageBox.Show("Curah hujan maximum harus angka!", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error) ElseIf Not txtHujan.Text = "" And Not IsNumeric(txtHujan.Text) Then MessageBox.Show("Curah Hujan minimum harus angka!", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error) ElseIf txtHujan.Text > txtHujanMax.Text Then MsgBox("Curah Hujan Salah! CURAH HUJAN MINIMUM harus lebih kecil dari CURAH HUJAN MAKSIMUM", MsgBoxStyle.Exclamation, "Warning") ElseIf txtAMin.Text > txtAMax.Text Then MsgBox("Altitud Salah! ALTITUD MINIMUM harus lebih kecil dari ALTITUD MAKSIMUM", MsgBoxStyle.Exclamation, "Warning") Else
32
sql = "INSERT INTO Tumbuhan(ID,NamaIlmiah,NamaDaerah,id_Famili, Manfaat, CurahHujanMin,curahHujanMax,Cahaya,AltitudMin,AltitudMax, " _ & " JenisTanah,TeksturTanah,Solum,pH,DyTransp,DySerapCO2,KetGaram,KetG enang,BentukTajuk,DiameterTajuk," _ & " ModelArsitektur,TinggiTumbuhan,KelasTinggi,KelasTajuk,foto, foto2, foto3) VALUES (" _ & "'" & ID & "'," _ & "'" & txtIlmiah.Text & "'," _ & "'" & txtNama.Text & "'," _ & "'" & Fam.Text & "'," _ & "'" & txtManfaat.Text & "'," _ & "'" & txtHujan.Text & "'," _ & "'" & txtHujanMax.Text & "'," _ & "'" & cboCahaya.Text & "'," _ & "'" & txtAMin.Text & "'," _ & "'" & txtAMax.Text & "'," _ & "'" & txtJenisTanah.Text & "'," _ & "'" & txtTeksturTanah.Text & "'," _ & "'" & txtSolum.Text & "'," _ & "'" & PH & "'," _ & "'" & cboDayaTranspirasi.Text & "'," _ & "'" & txtDayaSerap.Text & "'," _ & "'" & cboGaram.Text & "'," _ & "'" & cboGenang.Text & "'," _ & "'" & txtBentuk.Text & "'," _ & "'" & txtDiameter.Text & "'," _ & "'" & cboArsitektur.Text & "'," _ & "'" & txtTinggi.Text & "'," _ & "'" & cboKelasTinggi.Text & "'," _ & "'" & cboKelasTajuk.Text & "'," _ & "'" & gambar & "'," _ & "'" & gambar2 & "'," _ & "'" & gambar3 & "')" cmd = New OleDbCommand(sql, conn)
33
status = cmd.ExecuteNonQuery() If status = 1 Then MsgBox("Tumbuhan Baru berhasil di tambahkan!", MsgBoxStyle.Information, "Tambah Data") Else MsgBox("Tumbuhan Baru gagal di tambahkan!", MsgBoxStyle.Information, "Tambah Data") End If bacadata() End If End If Else If MessageBox.Show("Anda Yakin akan mengupdate record ini?", "Update Data", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then sql = "UPDATE Tumbuhan SET NamaIlmiah = '" & txtIlmiah.Text & "', " _ & "NamaDaerah = '" & txtNama.Text & "', " _ & "id_Famili = " & Fam.Text & ", " _ & "Manfaat = '" & txtManfaat.Text & "', " _ & "curahHujanMin = '" & txtHujan.Text & "', " _ & "curahHujanMax = '" & txtHujanMax.Text & "', " _ & "Cahaya = '" & cboCahaya.Text & "', " _ & "AltitudMin = '" & txtAMin.Text & "', " _ & "AltitudMax = '" & txtAMax.Text & "', " _ & "JenisTanah = '" & txtJenisTanah.Text & "', " _ & "TeksturTanah = '" & txtTeksturTanah.Text & "', " _ & "Solum = '" & txtSolum.Text & "', " _ & "pH = '" & PH & "', " _ & "DyTransp = '" & cboDayaTranspirasi.Text & "', " _ & "DySerapCO2 = '" & txtDayaSerap.Text & "', " _ & "KetGaram = '" & cboGaram.Text & "', " _ & "KetGenang = '" & cboGenang.Text & "', " _ & "BentukTajuk = '" & txtBentuk.Text & "', " _ & "DiameterTajuk = '" & txtDiameter.Text & "', " _ & "ModelArsitektur = '" & cboArsitektur.Text & "', " _ & "TinggiTumbuhan = '" & txtTinggi.Text & "', " _ & "KelasTinggi = '" & cboKelasTinggi.Text & "', " _ & "KelasTajuk = '" & cboKelasTajuk.Text & "', " _ & "Foto = '" & gambar & "', " _ & "Foto2 = '" & gambar2 & "', " _ & "Foto3 = '" & gambar3 & "'" & " WHERE ID = " & txtID.Text cmd = New OleDbCommand(sql, conn) status = cmd.ExecuteNonQuery() If status = 1 Then MessageBox.Show("UPDATE Sukses", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information) Else MessageBox.Show("UPDATE Gagal", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information) End If
34
bacadata() Else MessageBox.Show("Update data dibatalkan", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information) End If End If End Sub Private Sub btnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClear.Click clear() End Sub Private Sub btnTambah_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTambah.Click btnSimpan.Enabled = True clear() End Sub Private Sub cboFamili_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboFamili.SelectedIndexChanged query = "SELECT * FROM Famili WHERE NamaFamili='" & cboFamili.Text & "'" cmd = New OleDbCommand(query, conn) rdr = cmd.ExecuteReader() If rdr.Read Then Fam.Text = rdr("ID_Famili") End If rdr.Close() End Sub Private Sub btnHapus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnHapus.Click Dim status As Integer If MessageBox.Show("Anda Yakin akan menghapus record ini?", "Hapus Data", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then sql = "DELETE FROM Tumbuhan WHERE ID=" & txtID.Text & "" cmd = New OleDbCommand(sql, conn) status = cmd.ExecuteNonQuery() If status = 1 Then MessageBox.Show("Hapus Data Sukses", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information) Else MessageBox.Show("Hapus Data Gagal", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information) End If bacadata() Tampilkan_Detil() cmd.Dispose() Else MessageBox.Show("Hapus data dibatalkan", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information) End If
35
bacadata() clear() btnTambah.Enabled = True btnHapus.Enabled = True btnUbah.Enabled = False btnSimpan.Enabled = False End Sub Private Sub btnUbah_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUbah.Click btnTambah.Enabled = False btnSimpan.Enabled = True btnHapus.Enabled = False End Sub Public Sub Cari() 'Tipe_Hujan() Keasaman() Kriteria = "" If Len(Trim(txtIlmiah.Text)) > 0 Then Kriteria = Kriteria & "(Tumbuhan.NamaIlmiah Like '" & txtIlmiah.Text & "%')" End If If Len(Trim(txtNama.Text)) > 0 Then If Len(Trim(Kriteria)) > 0 Then Kriteria = Kriteria & " AND " Kriteria = Kriteria & "(Tumbuhan.NamaDaerah Like '%" & txtNama.Text & "%')" End If If Len(Trim(cboFamili.Text)) > 0 Then If Len(Trim(Kriteria)) > 0 Then Kriteria = Kriteria & " AND " Kriteria = Kriteria & "(Tumbuhan.id_Famili = " & Fam.Text & ")" End If If Len(Trim(txtHujan.Text)) > 0 Then If Len(Trim(Kriteria)) > 0 Then Kriteria = Kriteria & " AND " Kriteria = Kriteria & "(curahHujanMin >= " & txtHujan.Text & ")" End If If Len(Trim(txtHujanMax.Text)) > 0 Then If Len(Trim(Kriteria)) > 0 Then Kriteria = Kriteria & " AND " Kriteria = Kriteria & "(curahHujanMax<= " & txtHujanMax.Text & ")" End If If Len(Trim(cboCahaya.Text)) > 0 Then If Len(Trim(Kriteria)) > 0 Then Kriteria = Kriteria & " AND " Kriteria = Kriteria & "(Cahaya Like '%" & cboCahaya.Text & "%')" End If If Len(Trim(txtAMin.Text)) > 0 Then If Len(Trim(Kriteria)) > 0 Then Kriteria = Kriteria & " AND " Kriteria = Kriteria & "(AltitudMin >= " & txtAMin.Text & ")" End If
36
If Len(Trim(txtAMax.Text)) > 0 Then If Len(Trim(Kriteria)) > 0 Then Kriteria = Kriteria & " AND " Kriteria = Kriteria & "(AltitudMax <= " & txtAMax.Text & ")" End If If Len(Trim(txtJenisTanah.Text)) > 0 Then If Len(Trim(Kriteria)) > 0 Then Kriteria = Kriteria & " AND " Kriteria = Kriteria & "(JenisTanah Like '%" & txtJenisTanah.Text & "%')" End If If Len(Trim(txtTeksturTanah.Text)) > 0 Then If Len(Trim(Kriteria)) > 0 Then Kriteria = Kriteria & " AND " Kriteria = Kriteria & "(TeksturTanah Like '%" & txtTeksturTanah.Text & "%')" End If If Len(Trim(txtSolum.Text)) > 0 Then If Len(Trim(Kriteria)) > 0 Then Kriteria = Kriteria & " AND " Kriteria = Kriteria & "(Solum Like '%" & txtSolum.Text & "%')" End If If Len(Trim(PH)) > 0 Then If Len(Trim(Kriteria)) > 0 Then Kriteria = Kriteria & " AND " Kriteria = Kriteria & "(pH = '" & PH & "')" End If If Len(Trim(cboDayaTranspirasi.Text)) > 0 Then If Len(Trim(Kriteria)) > 0 Then Kriteria = Kriteria & " AND " Kriteria = Kriteria & "(DyTransp Like '%" & cboDayaTranspirasi.Text & "%')" End If If Len(Trim(txtDayaSerap.Text)) > 0 Then If Len(Trim(Kriteria)) > 0 Then Kriteria = Kriteria & " AND " Kriteria = Kriteria & "(DySerapCO2 Like '%" & txtDayaSerap.Text & "%')" End If If Len(Trim(cboGaram.Text)) > 0 Then If Len(Trim(Kriteria)) > 0 Then Kriteria = Kriteria & " AND " Kriteria = Kriteria & "(KetGaram Like '%" & cboGaram.Text & "%')" End If If Len(Trim(cboGenang.Text)) > 0 Then If Len(Trim(Kriteria)) > 0 Then Kriteria = Kriteria & " AND " Kriteria = Kriteria & "(KetGenang Like '%" & cboGenang.Text & "%')" End If If Len(Trim(txtBentuk.Text)) > 0 Then If Len(Trim(Kriteria)) > 0 Then Kriteria = Kriteria & " AND " Kriteria = Kriteria & "(BentukTajuk Like '%" & txtBentuk.Text & "%')" End If
37
If Len(Trim(txtDiameter.Text)) > 0 Then If Len(Trim(Kriteria)) > 0 Then Kriteria = Kriteria & " AND " Kriteria = Kriteria & "(DiameterTajuk Like '%" & txtDiameter.Text & "%')" End If If Len(Trim(cboArsitektur.Text)) > 0 Then If Len(Trim(Kriteria)) > 0 Then Kriteria = Kriteria & " AND " Kriteria = Kriteria & "(ModelArsitektur Like '%" & cboArsitektur.Text & "%')" End If If Len(Trim(txtTinggi.Text)) > 0 Then If Len(Trim(Kriteria)) > 0 Then Kriteria = Kriteria & " AND " Kriteria = Kriteria & "(TinggiTumbuhan Like '%" & txtTinggi.Text & "%')" End If If Len(Trim(cboKelasTinggi.Text)) > 0 Then If Len(Trim(Kriteria)) > 0 Then Kriteria = Kriteria & " AND " Kriteria = Kriteria & "(KelasTinggi Like '%" & cboKelasTinggi.Text & "%')" End If If Len(Trim(cboKelasTajuk.Text)) > 0 Then If Len(Trim(Kriteria)) > 0 Then Kriteria = Kriteria & " AND " Kriteria = Kriteria & "(KelasTajuk Like '%" & cboKelasTajuk.Text & "%')" End If 'If Len(Trim(txtHewan.Text)) > 0 Then ' If Len(Trim(Kriteria)) > 0 Then Kriteria = Kriteria & " AND " ' Kriteria = Kriteria & "(Hewan Like '%" & txtHewan.Text & "%')" 'End If If Len(Trim(Kriteria)) > 0 Then sql = "SELECT * FROM Tumbuhan,Famili WHERE Tumbuhan.Id_Famili = Famili.Id_Famili AND " & Kriteria & "ORDER BY NamaIlmiah" Else bacadata() End If cmd = New OleDbCommand(sql, conn) rdr = cmd.ExecuteReader() lstNama.Items.Clear() Do While rdr.Read lstNama.Items.Add(rdr("NamaIlmiah")) Loop rdr.Close() jum.Text = lstNama.Items.Count() End Sub Private Sub btnCari_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCari.Click Cari() End Sub
38
Private Sub btnBrowse_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBrowse.Click Dim openDlg As OpenFileDialog = New OpenFileDialog openDlg.Filter = "All Images files|*.JPG; *.PNG; *.GIF" Dim filter As String = openDlg.Filter openDlg.Title = "Open a Image File" If (openDlg.ShowDialog() = Windows.Forms.DialogResult.OK) Then curFileName = openDlg.FileName txtGambar.Text = curFileName PictureBoxTanaman.Image = Image.FromFile(curFileName) PictureBoxTanaman.Invalidate() '################################################################# ############ Dim s As String = txtGambar.Text Dim parts As String() = s.Split(New Char() {"\"c}) Dim part As String jum_path = 0 For Each part In parts gambar = (part) jum_path = jum_path + 1 Next 'binaryFile = Convert.ToBase64String(System.IO.File.ReadAllBytes(gambar)) 'binaryFile = Convert.ToBase64String(System.IO.File.ReadAllBytes(txtGambar.Text) ) End If End Sub Private Sub btnBrowse2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBrowse2.Click Dim openDlg As OpenFileDialog = New OpenFileDialog openDlg.Filter = "All Images files|*.JPG; *.PNG; *.GIF" Dim filter As String = openDlg.Filter openDlg.Title = "Open a Image File" If (openDlg.ShowDialog() = Windows.Forms.DialogResult.OK) Then curFileName = openDlg.FileName txtGambar2.Text = curFileName PictureBoxTanaman2.Image = Image.FromFile(curFileName) PictureBoxTanaman2.Invalidate() Dim s As String = txtGambar2.Text Dim parts As String() = s.Split(New Char() {"\"c}) Dim part As String jum_path = 0 For Each part In parts gambar2 = (part) jum_path = jum_path + 1 Next 'binaryFile = Convert.ToBase64String(System.IO.File.ReadAllBytes(gambar2)) binaryFile = Convert.ToBase64String(System.IO.File.ReadAllBytes(txtGambar2.Text ))
39
End If End Sub Private Sub txtHewan_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) End Sub Private Sub txtBentuk_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtBentuk.TextChanged End Sub Private Sub txtIlmiah_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtIlmiah.TextChanged End Sub Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click End Sub Private Sub cboArsitektur_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboArsitektur.SelectedIndexChanged End Sub Private Sub Fam_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Fam.Click End Sub Private Sub PictureBoxTanaman_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBoxTanaman.Click End Sub Private Sub btnBrowse3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBrowse3.Click Dim openDlg As OpenFileDialog = New OpenFileDialog openDlg.Filter = "All Images files|*.JPG; *.PNG; *.GIF" Dim filter As String = openDlg.Filter openDlg.Title = "Open a Image File" If (openDlg.ShowDialog() = Windows.Forms.DialogResult.OK) Then curFileName = openDlg.FileName txtGambar3.Text = curFileName PictureBoxTanaman3.Image = Image.FromFile(curFileName) PictureBoxTanaman3.Invalidate() Dim s As String = txtGambar3.Text Dim parts As String() = s.Split(New Char() {"\"c}) Dim part As String jum_path = 0
40
For Each part In parts gambar3 = (part) jum_path = jum_path + 1 Next 'binaryFile = Convert.ToBase64String(System.IO.File.ReadAllBytes(gambar3)) binaryFile = Convert.ToBase64String(System.IO.File.ReadAllBytes(txtGambar3.Text )) End If End Sub End Class
Lampiran 3. Form Famili 'Import librari untuk mengolah database Imports System.Data Imports System.Data.OleDb Imports System.IO Public Class Famili 'Deklarasi variabel Public conn As OleDbConnection 'variabel untuk koneksi Public connStr As String 'variabel untuk simpan koneksi Public sql As String 'variabel untuk mengolah database Public cmd As OleDbCommand 'variabel untuk menyimpan perintah dari dan ke database Public rdr As OleDbDataReader 'variabel untuk menyimpan hasil baca dari database Dim item As ListViewItem Public Sub bukakoneksi() connStr = "Provider=Microsoft.Jet.OleDb.4.0;" & "Data Source=" + Directory.GetCurrentDirectory + "\db32b.mdb" conn = New OleDbConnection(connStr) conn.Open() End Sub Public Sub bacadata() txtNama.Enabled = False txtID.Text = "" txtNama.Text = "" sql = "SELECT * FROM Famili ORDER BY NamaFamili" cmd = New OleDbCommand(sql, conn) rdr = cmd.ExecuteReader() lstNama.Items.Clear() Do While rdr.Read lstNama.Items.Add(rdr("NamaFamili")) Loop rdr.Close() End Sub Private Sub Famili_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load bukakoneksi() bacadata() End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click bacadata() End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click txtID.Text = "" txtNama.Text = "" txtNama.Enabled = True End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click txtNama.Enabled = True End Sub
42
Public Sub Tampilkan_Detil() sql = "SELECT * FROM Famili WHERE NamaFamili='" & lstNama.Text & "'" cmd = New OleDbCommand(sql, conn) rdr = cmd.ExecuteReader() If rdr.Read Then txtID.Text = rdr("ID_Famili") txtNama.Text = rdr("NamaFamili") End If rdr.Close() End Sub Private Sub lstNama_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lstNama.SelectedIndexChanged Tampilkan_Detil() End Sub Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click Dim status As Integer If txtID.Text = "ID" Or txtID.Text = "" Then If txtNama.Text = Nothing Then MsgBox("Silahkan masukkan nama Family!", MsgBoxStyle.Exclamation, "Tambah Data") Else sql = "INSERT INTO Famili(NamaFamili) VALUES (" _ & "'" & txtNama.Text & "')" cmd = New OleDbCommand(sql, conn) status = cmd.ExecuteNonQuery() If status = 1 Then MsgBox("Famili Baru berhasil di tambahkan!", MsgBoxStyle.Information, "Tambah Data") Else MsgBox("Famili Baru gagal di tambahkan!", MsgBoxStyle.Information, "Tambah Data") End If bacadata() End If Else If txtNama.Text = Nothing Then MsgBox("Silahkan masukkan nama Family!", MsgBoxStyle.Exclamation, "Tambah Data") Else If MessageBox.Show("Anda Yakin akan mengupdate record ini?", "Update Data", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then sql = "UPDATE Famili SET NamaFamili = '" & txtNama.Text & "'" _ & " WHERE Id_Famili = " & txtID.Text & "" cmd = New OleDbCommand(sql, conn) status = cmd.ExecuteNonQuery() If status = 1 Then MessageBox.Show("UPDATE Sukses", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information)
43
Else MessageBox.Show("UPDATE Gagal", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information) End If bacadata() Else MessageBox.Show("Update data dibatalkan", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information) End If End If End If End Sub Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click Dim status As Integer If MessageBox.Show("Anda Yakin akan menghapus record ini?" & vbCrLf & "SEMUA SPESIES TUMBUHAN DENGAN FAMILI INI AKAN TERHAPUS", "Hapus Data", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then sql = "DELETE FROM Famili WHERE Id_Famili=" & txtID.Text & "" cmd = New OleDbCommand(sql, conn) status = cmd.ExecuteNonQuery() If status = 1 Then MessageBox.Show("Hapus Data Sukses", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information) Else MessageBox.Show("Hapus Data Gagal", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information) End If bacadata() Tampilkan_Detil() cmd.Dispose() Else MessageBox.Show("Hapus data dibatalkan", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information) End If bacadata() End Sub End Class
Lampiran 4. Form Tutorial Imports System.Data Imports System.Data.OleDb Imports System.IO Public Class Tutorial Private conn As OleDbConnection Private connStr As String Private sql, query As String Private cmd As OleDbCommand Private rdr As OleDbDataReader Private rdr1 As OleDbDataReader Dim TipeHujan, PH, Kriteria As String Private curFileName Public binaryFile Public tombol As String Private Sub buka_Koneksi() connStr = "Provider=Microsoft.Jet.OleDb.4.0;" & "Data Source=" + Directory.GetCurrentDirectory + "\db32b.mdb" conn = New OleDbConnection(connStr) conn.Open() End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click PictureBox1.Image = Nothing tombol = "Tumbuhan" sql = "SELECT * FROM Tutorial Where Keterangan = 'Tumbuhan' ORDER BY ID" cmd = New OleDbCommand(sql, conn) rdr = cmd.ExecuteReader() lstNama.Items.Clear() Do While rdr.Read lstNama.Items.Add(rdr("Nama")) Loop rdr.Close() End Sub Private Sub Tutorial_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load buka_Koneksi() home() End Sub Private Sub lstNama_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lstNama.SelectedIndexChanged 'Label2.Text = tombol sql = "SELECT * FROM Tutorial WHERE Nama = '" & lstNama.Text & "' AND Keterangan = '" & tombol & "'" cmd = New OleDbCommand(sql, conn) rdr = cmd.ExecuteReader() If rdr.Read Then Label1.Text = rdr("Gambar")
45
End If 'MsgBox(Label1.Text) PictureBox1.Image = Image.FromFile(Directory.GetCurrentDirectory & Label1.Text) End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click PictureBox1.Image = Nothing tombol = "Family" sql = "SELECT * FROM Tutorial Where Keterangan = 'Family' ORDER BY ID" cmd = New OleDbCommand(sql, conn) rdr = cmd.ExecuteReader() lstNama.Items.Clear() Do While rdr.Read lstNama.Items.Add(rdr("Nama")) Loop rdr.Close() End Sub Private Sub home() tombol = "Home" sql = "SELECT * FROM Tutorial Where Keterangan = 'Home' ORDER BY ID" cmd = New OleDbCommand(sql, conn) rdr = cmd.ExecuteReader() lstNama.Items.Clear() Do While rdr.Read lstNama.Items.Add(rdr("Nama")) Loop rdr.Close() End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click PictureBox1.Image = Nothing home() End Sub Private Sub SplitContainer2_Panel1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles SplitContainer2.Panel1.Paint End Sub End Class