Wahju T. Saputro

Yogyakarta

G. Tambora vs G. Eyjafjallajokull

Letusan Gunung Eyjafjallajokull di Islandia menyemburkan abu vulkanik yang memusingkan, karena mengacaukan lalu lintas udara Eropa. Ribuan penumpang tertahan di bandara, perekonomian terganggu, barang-barang komoditas pertanian membusuk karena tak bisa dikirim. Namun, menurut laman Wall Street Journal, Sabtu 24 April 2010 dampak letusan Gunung Eyjafjallajökull tak sebanding dengan letusan Gunung Tambora di Sumbawa Indonesia.

Pada 5 April 1815 sore, gunung berapi Tambora mulai bergemuruh dan ‘batuk -batuk’. Kondisi ini terjadi dalam beberapa hari. Beberapa hari kemudian, pada 11 dan 12 April letusan Gunung Tambora mencapai klimaksnya. Gunung besar itu meletus, getarannya mengguncangkan bumi hingga jarak ratusan mil. Selama lebih dari 10 hari kemudian, Tambora mengeluarkan 24 kubik mil (1 mil = 1,6 kilometer) lava dan bebatuan gunung. Saking dahsyatnya, di puncak Tambora tercipta kawah selebar tiga mil dan dalamnya hampir 1 mil. Lelehan lava panas, batu yang berterbangan, dan gas mematikan yang keluar dari perut Tambora saat itu menewaskan puluhan ribuan orang.

Jutaan ton abu dan debu memenuhi udara, mengubah siang hari menjadi gelap gulita. Debu tebal menyelimuti wilayah kaki gunung dan bahkan Bali. Debu menutup semua vegetasi di Pulau Bali dan menyelimuti lautan. Sekitar 117.000 orang di wilayah yang dulu dikenal sebagai Hindia Belanda tewas. Banyak dari mereka terkena imbas letusan,  jadi korban kelaparan dan penyakit.

Itu baru permulaan. Letusan gunung di Islandia sama sekali bukan bandingan untuk Tambora. Badan Geologi Amerika Serikat atau US Geological Survey bahkan menobatkan letusan Tambora sebagai “yang terkuat sepanjang sejarah”. Letusan Tambora bahkan lebih dahsyat dari Krakatau. Menurut data Volcanic Explosivity Index (VEI), indeks letusan gunung yang mirip skala Richter untuk mengukur kekuatan gempa.

Perhitungan VEI ada pada skala 1 hingga 8, setiap satu angka adalah 10 lebih besar dari sebelumnya. Tambora ada di level tujuh, Krakatau enam. Ini berarti Tambora lebih kuat 10 kali lebih besar dari letusan Krakatau.

Bagaimana letusan gunung Islandia? Leel VEI-nya hanya dua atau tiga. Ataiu 10.000 kali lebih lemah dari Tambora. Letusan Eyjafjallajökull ‘saja’ bisa mempengaruhi atmoser dan membuat dunia penerbangan kalang kabut. Tak terbayang jika Tambora meletus di era ini. Seperti meriam raksasa, tambora menyemburkan abu, debu, dan setidaknya 400 juta ton gas sulfur ke udara, hingga 27 mil tegak lurus ke strastofer, jauh di atas awan cuaca.

Ini mengakibatkan ledakan di lapisan troposfer — lapisan terdekat dari permukaan Bumi, di mana awan, angin, dan hujan, serta 75 persen dari berat atmosfer berada. Semburan Tambora juga menyobek lapisan tipis ozon yang melindungi Bumi dari radiasi sinar matahari.

Karena daya tarik grafitasi yang ringan di angkasa, abu dan debu Tambora melayang dan menyebar mengelilingi dunia. Debu Tambora menetap di lapisan troposfer selama beberapa tahun dan turun melalui angin dan hujan kembali ke Bumi. Letusan Tambora berakibat luar biasa. Gagal panen di China, Eropa, dan Irlandia. Hujan tanpa henti dselama delapan minggu memicu epidemi tifus yang menewaskan 65.000 orang di Inggris dan Eropa. Kelaparan melumpuhkan di Inggris.

Tambora juga jadi salah satu pemicu kerusuhan di Perancis yang warganya kekuarangan makanan. Juga mengubah sejarah saat Napoleon kalah akibat musim dingin berkepanjangan dan kelaparan pada 1815 di Waterloo.

Sumber:  klik disini.

Tools UML dan Referensi

Pembaca dapat memilih tools yang disukai untuk mendisain UML, ada yang komersial maupun open source. Secara lengkap dari tools UML yang open source kunjungi URL http://java-source.net/open-source/uml-modeling. Tools UML yang open source diantaranya:

  1. StarUML, merupakan piranti lunak untuk mengembangkan UML. Cepat, fleksibel, kaya fitur. Dapat running di platform Linux/Windows.
  2. ArgoUML, cukup powerfull, mudah digunakan, interaktif, support dalam mendisain  UML.
  3. UniMod, fokus pada desain dan implementasi application behavior. Didistribusikan di bawah lisensi Open Software v.2.1.
  4. Alma, piranti lunak yang bekerja untuk modelling dan analyzing. Alma support untuk mendisain lingkungan piranti lunak berbasis GIS dan mendokumentasikan piranti lunak berorientasi obyek.
  5. UMLet, menggambarkan UML berbasis open source pada tool Java. Mampu mentransfer diagram dalam bentuk SVG, JPG, PDF dan LaTeX. UMLet juga mampu memandu dalam pembuatan diagram secara ceat.

Untuk tools UML yang komersial diantaranya:

Sebagai referensi dalam mempelajari UML beberapa pointer penting yaitu:

Konsep Dasar UML

Secara ringkas sebenarnya konsep dasar UML di rangkum seperti tabel di bawah:

Tabel 1. Konsep dasar UML

Untuk menguasai UML sebenarnya cukup dua hal yaitu:

  1. Kuasai pembuatan diagram UML.
  2. Kuasai langkah-langkah dalam analisis dan pengembangan UML.

Use Case Diagram

Yaitu rangkaian yang saling terkait membentuk sistem secara teratur dan diawasi/dilakukan oleh aktor. Aktor yaitu manusia atau mesin. Menggambarkan fungsionalitas dari sistem. Fokus pada “apa” yang diperbuat sistem misal login ke sistem, meng-create daftar stok barang dan fungsionalitas lain. Use case diagram sangat membantu dalam hal:

Class Diagram

Yaitu sebuah spesifikasi yang jika diinstalasi menghasilkan obyek dan inti dari pengembangan disain berorientasi obyek. Class diagram menggambarkan properti dan metode/fungsi. Class memiliki tiga area yaitu:

  1. Nama dan stereotype.
  2. Atribut.
  3. Metoda.

Atribut dan metode dapat memiliki salah satu sifat berikut:

Hubungan antar class ada empat yaitu:

  1. Asosiasi, yaitu hubungan statis antar class. Panah navigasi menunjukkan arah query antar class.
  2. Agregasi, yaitu hubungan yang menyatakan bagian (“terdiri atas…”)
  3. Pewarisan, yaitu hubungan hirarki antar class. Artinya sebuah class dapat diturunkan menjadi class lain dan mewarisi semua atribut serta metode dari class induknya.
  4. Hubungan dinamis, rangkaian pesan yang di passing dari class ke class lain. Hubungan dinamis digambarkan menggunakan sequence diagram.

Statechart Diagram

Yaitu menggambarkan transisi dari satu state ke state lain suatu obyek pada sistem. State digambarkan segi empat dengan sudut tumpul dan memiliki nama sesuai kondisinya. Transisi state ditulis dalam kurung siku. Action yang dilakukan akibat dari event diawali garis miring. State awal digambarkan dengan lingkaran penuh. State akhir digambarkan dengan lingkaran setengah.

Activity Diagram

Menggambarkan berbagai alur aktivitas dalam sistem yang sedang dirancang. Juga menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi.  Activity Diagram sebagian besar state merupakan action dan transisi di trigger. Activity diagram menggambarkan proses dan jalur aktivitas dari level atas. Satua aktivitas dapat direalisasikan oleh satu use case atau lebih. Aktivitas menggambarkan proses yang berjalan, sementara use case menggambarkan bagaimana aktor menggunakan sistem untuk melakukan aktivitas.

Simbol-simbol:

  1. Aktivitas disimbolkan segi empat tumpul.
  2. behaviour disimbolkan decision.
  3. Proses paralel digambarkan dengan titik sinkronisasi atau titik saja atau garis horisontal atau vertikal.

Sequence Diagram

Menggambarkan interaksi antar obyek di dalam dan sekitar sistem berupa message. Juga menggambarkan skenario atau langkah yang dilakukan sebagai respon dari client untuk menghasilkan output. Sequence Diagram terdiri atas:

Setiap obyek termasuk aktor memiliki lifeline vertikal. Message digambarkan sebagai garis panah. Pada fase disain message akan dipetakan menjadi metode/operasi. Action bar menunjukkan la eksekusi sebuah proses.

Collaboration Diagram

Menggambarkan interaksi antar obyek, namun lebih menekankan pada peran setiap obyek bukan pada waktu penyampaian message. Setiap message memiliki sequence number, dimana message dari level tertinggi memiliki nomor 1. Message dari level yang sama memiliki prefiks yang sama.

Component Diagram

Menggambarkan struktur dan hubungan antar komponen piranti lunak. Komponen piranti lunak berisi code, baik source code maupun binary code baik library maupun executable baik yang muncul pada compile time, link time atau run time. Umumnya komponen terbentuk dari beberapa class atau package. Komponen dapat juga berupa interface.

Deployment Diagram

Menggambarkan bagaimana detail komponen di deploy dalam infrastrukture sistem, dimana akan diletakkan, bagaimana kemampuan jaringan, bagaimana spesifikasi server dan hal lain bersifat fisik. Berikut contoh gambar Deployment Diagram.


Secara lengkap lihat di referensi ini.

Take Home Perancangan Perangkat Lunak

Nomor Lima A

Beberapa Tools UML yang open source yaitu:

  1. StarUML, merupakan piranti lunak untuk mengembangkan UML. Cepat, fleksibel, kaya fitur. Dapat running di platform Linux/Windows. Ini linknya.
  2. ArgoUML, cukup powerfull, mudah digunakan, interaktif, support dalam mendisain  UML. Ini linknya.
  3. UniMod, fokus pada desain dan implementasi application behavior. Didistribusikan di bawah lisensi Open Software v.2.1.
  4. Alma, piranti lunak yang bekerja untuk modelling dan analyzing. Alma support untuk mendisain lingkungan piranti lunak berbasis GIS dan mendokumentasikan piranti lunak berorientasi obyek.
  5. UMLet, menggambarkan UML berbasis open source pada tool Java. Mampu mentransfer diagram dalam bentuk SVG, JPG, PDF dan LaTeX. UMLet juga mampu memandu dalam pembuatan diagram secara cepat.
  6. Umbrello UML Modeller, adalah alat bantu penggambaran UML untuk KDE. Saat ini, Umbrello termasuk salah satu aplikasi UML terbaik untuk LINUX. Ini linknya.


Nomor Lima B

Perancangan dengan memanfaatkan Google API yang saya rancang ada di sini. Berikut ini desain Use Case dan Sequence Diagram:

Google API

Google menyediakan fitur API (Application Programming Interface) untuk menampilkan map. GMaps API merupakan aplikasi yang open source sehingga dapat digunakan secara bebas dan gratis. Ada tiga jenis tampilan yang bisa dipilih yaitu:

  1. Map, menampilkan peta dalam bentuk peta garis.
  2. Sattelite, menampilkan peta dalam bentuk citra/gambar/foto satelit.
  3. Hybrid, merupakan gabungan dari Map dan Sattelite.

Requirement

Requirement adalah kondisi yang harus dipenuhi oleh perangkat lunak. Ada dua jenis requirement yaitu:

  1. Functional requirement, menentukan tindakan yang harus dapat dijalankan oleh perangkat lunak. Sering dimodelkan dalam bentuk use case. Functional requirement mencakup fitur, kemampuan dan security.
  2. Non-functional requirement, menggambarkan atribut dari perangkat lunak dan lingkungannya. Non-functional Requirement biasanya masuk ke dalam sifat property use case. Non-functional requirement mencakup kecepatan, efisiensi, waktur respon dan akurasi.

Beberapa requirement yang diperlukan dalam merancang perangkat lunak berbasis WEB memanfaatkan google API adalah :

  1. User requirement, rancangan aplikasi ini menitikberatkan bagaimana mencari dan menampilkan  wilayah pariwisata di kota yogyakarta. Secara teknis user hanya memasukan  kata kunci yang dimaksud. misal cukup ketik kaliurang atau ketik pantai kuwaru maka sistem akan menyorot wilayah yang dimaksud.
  2. System Requirement, dari sisi entry level, didesain agar user dapat memilih lokasi berdasarkan kategori tertentu. Misal jarak, jenis obyek (gunung, pantai, musium atau kuliner). Kemudian sistem menampilkan textbox untuk mengisikan kata kunci.

Pengujian/Testing

Pengujian sistem yang dirancang mencakup:

Demikian jawaban saya. Karena akan dibaca orang banyak apabila ada kesalahan dalam posting ini mohon commentnya. Terima kasih.

Langkah-langkah Menggunakan UML

Berikut ini tips pengembangan piranti lunak dengan menggunakan UML:

  1. Buat daftar business process dari level tertinggi untuk mendefinisikan aktivitas dan proses yang mungkin muncul.
  2. Petakan use case untuk setiap business process untuk mendefinisikan fungsionalitas yang harus disediakan oleh sistem. Kemudian perhalus use case diagram dengan dilengkapi requirement, constrains dan catatan lain.
  3. Buat deployment diagram secara kasar untuk mendefinisikan arsitektur fisik sistem.
  4. Definisikan requirement lain (non-fungsional, security dan lainnya) yang harus disediakan oleh sistem.
  5. Berdasarkan use case diagram mulai membuat activity diagram.
  6. Definisikan obyek-obyek level atas (package/domain) dan buat diagram sequence dan/atau collaboration daigram untuk setiap alur proses. Jika use case memiliki kemungkinan alur normal dan error, buat satu diagram untuk setiap alur.
  7. Buat rancangan model user interface yang menyediakan antarmuka bagi pengguna untuk menjalankan skenario use case.
  8. Berdasarkan model yang sudah ada, buat class diagram. Setiap package/domain dipecah menjadi hirarki class lengkap dengan atribut dan metodenya. Lebih baik  bila setiap class dibuat unit test untuk menguji fungsionalitas class dan interaksi dengan class.
  9. Setelah class diagram dibuat selanjutnya melihat kemungkinan pengelompokan class menjadi komponen. Maka buat component diagram pada tahap ini dan definisikan tes integrasi untuk setiap komponen untuk menyakinkan dapat berinteraksi dengan baik.
  10. Perhalus deployment diagram yang sudah di buat. Detailkan kemampuan dan requirement piranti lunak, sistem operasi, jaringan dan lainnya. Petakan komponen ke dalam node.
  11. Mulai membangun sistem. Ada dua pendekatan yang dapat digunakan yaitu pendekatan use case dan pendekatan komponen.
  12. Lakukan uji modul dan uji integrasi serta perbaiki modul serta codenya. Model harus sesuai dengan code yang aktual.
  13. Piranti lunak siap di rilis.

Pengantar UML (Unified Modelling Language)

Sejarah Singkat UML

Sejak tahun 1990 berbagai metodologi pemodelan berorientasi obyek bermunculan. Tokoh UML diantaranya yaitu Grady Booch, Jim Rumbaugh dan Ivar Jacobson. Beberapa metodologi UML yaitu:

  1. Metodologi OOD (Object-Oriented Desaign)
  2. Metodologi Coad
  3. Metodologi OOSE (Object-Oriented Software Engineering)
  4. Metodologi OMT (Object Modelling Technique)

Setiap metodologi di atas mempunyai notasi sendiri-sendiri, sehingga muncul kesulitan ketika diimplementasikan ke perusahaan yang menggunakan metodologi UML lain. Tahun 1994 tiga pakar UML yaitu Grady Booch, Jim Rumbaugh dan Ivar Jacobson bersama-sama membuat metodologi UML yang di rilis tahun 1995. Dan hasilnya muncul UML versi 0.8, kemudian tahun 1996 pengembangan UML dikoordinasi oleh OMG (Object Management Group) http://www.omg.org. Tahun 1997 UML versi 1.1 muncul dan sampai saat ini versi terakhir adalah UML 1.5 yang di rilis Maret 2003. Sejak itu UML menjadi standar bahasa pemodelan untuk aplikasi berorientasi obyek.

Apakah itu UML ?

Sebuah standar untuk visualisasi, merancang dan mendokumentasi sistem perangkat lunak. UML dapat digunakan untuk membuat model semua jenis aplikasi perangkat lunak. UML menggunakan class dan operation dalam konsepnya maka lebih cocok untuk penulisan bahasa berorientasi obyek (JAVA atau C++). Meskipun demikian dapat pula digunakan pada bahasa prosedural (Delphi atau Visual Foxpro).

UML mendefinisikan notasi dan sintak. Notasi UML merupakan sekumpulan bentuk khusus untuk menggambarkan berbagai diagram perangkat lunak. Setiap bentuk memiliki makna. Sintak UML mendefinisikan bentuk-bentuk tersebut agar dapat dikombinasikan.

UML mendefinisikan diagram-diagram berikut:

  1. Use Case Diagram
  2. Class Diagram
  3. Statechart Diagram
  4. Activity Diagram
  5. Sequence Diagram
  6. Collaboration Diagram
  7. Component Diagram
  8. Deployment Diagram