Welcome

Minggu, 12 Februari 2012 0 komentar

Cara Instalasi Windows XP

Windows XP Professional
Windows XP adalah suatu sistem pengoperasian (operating system) yang paling banyak dipakai sampai saat ini karena selain kemudahan dalam pemakaiannya Windows XP digunakan sebagai standarisasi pembelajaran yang di pakai oleh sekolahan-sekolahan dan perguruan tinggi pada umumnya.

Untuk melakukan penginstalan windows xp diperlukan ketelitian dan kesabaran dalam prosesnya karena memerlukan waktu yang lumayan lama.

Ada beberapa jenis windows xp diantaranya windows xp professional, Home Edition, Media Center Edition, Tablet PC Edition, Starter Edition, Professional x64 Edition, Professional 64-bit Edition For Itanium.

berikut langkah-langkah yang mudah dan lengkap cara menginstal windows xp :

1.
Siapkan CD WINDOWS XP

2.
Siapkan CD DRIVER MOTHERBOARD

3.
Atur bios terlebih dahulu agar prioritas bootingnya dimulai dari CD(DVD)-ROM, caranya:

a.
Masuk ke BIOS dengan menekan tombol Del, atau F1, atau juga F2.
Pilih menu Advanced Settings, kemudian carilah ‘Boot Priority’ atau yang sejenis.

b.
ubah pengaturanya, agar CDROM jadi urutan yang pertama kemungkinan pilihan ini ada 2 jenis

* menu ‘First boot priority’, ‘Second boot priority’ dll: Aturlah ‘First boot priority’ ke ‘CDROM’ dengan menekan tombol PgDn/Pgup (Page Down/Up) atau +/-.
Atur juga ‘Second boot priority’nya ke HDD0/HDD1.
* Jika menunya ‘Boot priority’: atur ke ‘CDROM, C, A’ atau ‘CDROM, A,

C.
dengan menekan tombol PgDn/Up.


Cara paling mudah instal windows xp
(lengkap dengan gambar):

gak usah di utak-atik biosnya. biarin aja bios diload masukin CD WINDOWSnya, lalu Restart komputer, trus tekan-tekan F8 atau F10 atau F11 (boleh dicoba satu-satu) nanti bakal muncul opsi boot selection. pilih aja yg ada 'bau' cd-nya. trus enter. selesai deh...ga pake repot-repot...

4.
Tunggu beberapa saat sampai muncul tulisan "press any key to boot from CD" seperti tampilan Seperti gambar di bawah ini



5. Tekan ENTER atau sembarang tombol, lalu proses instalasi akan mengecek hardware komputer anda, kemudian akan muncul tulisan "windows setup" seperti gambar dibawah ini



6. lalu file-file di dalam cd akan di load ke dalam komputer, kemudian akan muncul tampilan "welcome to setup" seperti gambar dibawah ini



7. Tekan "ENTER" untuk menginstal windows xp, "R" untuk repair system windows yang sebelumnya pernah terinstal, "F3" untuk keluar dari proses instalasi, lalu akan muncul (End User Licese Aggrement) seperti gambar di bawah ini



8. Tekan "F8" kemudian proses instalasi akan mencari dan membaca partisi hardisk anda, kemudian akan muncul semua partisi hardisk anda, seperti gambar di bawah ini



9. Tekan "ENTER" untuk langsung menginstal windows, "C" untuk membuat partisi hardisk anda, kapasitas partisi sesuai dengan kebutuhan anda, dalam satuan MB, selanjutnya jika anda membuat partisi dengan menekan tombol "C", maka akan muncul gambar seperti di bawah ini



10. Kemudian tuliskan kapasitas partisi yang ingin anda buat, seperti terlihat pada gambar diatas, sebagai contoh, misalkan kapasitas hardisk anda 40 GB, lalu anda ingin membagi dua, maka tuliskan 20000,jangan 20, karna partisi satuannya MB, tentunya anda mengerti kan...?? cat" 1GB = 1000 MB

11.
Kenudian tekan "ENTER" maka akan muncul gambar seperti dibawah ini



12. kemudian pilih "format the partition using the NTFS file system (Quick)" atau "format the partition using the NTFS file system (Quick)" lalu tekan "ENTER" maka akan muncul layar sepert gambar di bawah ini



13. Kemudian arahkan pointer pada posisi "unpartitioned space", lalu tekan "C" maka akan muncul gambar seperti gambar sebelumnya, dalam hal ini layar yang akan muncul seperti gambar sebelumnya menunjukan sisa partisi yang telah anda bagi, jika anda cuma membagi 2 partisi saja maka langsung tekan "ENTER" tapi jika anda ingin mempartisi lagi sisa hardisknya maka tinggal di bagi lagi aj, seperti langkah-langkah sebelumnya, mengertikan maksud saya....??
setelah selesai partisi ketika anda menekan "ENTER" seperti yang di jelaskan di atas, maka akan muncul gambar sperti gambar diatas, setelah itu arahkan poiter di posisi C: partition1 [New Raw], tapi biasanya sudah berada di posisi tersebut, maka anda tinggal menekan "ENTER" saja untuk proses instalasi windows, kemudian akan muncul proses format seperti gambar di bawah ini



14. Setelah selesai format, kemudian windows akan ,menyalin file untuk proses instalasi, seperti gambar di bawah ini



15. Setelah proses penyalinan selesai, secara otomatis komputer akan melakukan restart seperti gambar di bawah ini, dalam hal ini untuk mempercepat proses restart, anda bisa langsung menekan "ENTER"



16. Setelah itu akan muncul loading windows seperti gambar di bawah ini



17. selanjutnya proses instalasi windows di mulai 1..2..3...GOoooo muncul layar seperti gambar di bawah ini



18. selanjutnya tinggal menunggu, sambil ngopi jg bisa, biar lebih terinspirasi, eitssss, tp jangan kemana mana dulu, karna selanjutnya akan muncul layar seperti gambar di bawah ini



19. Langsung klik "NEXT" aja BOS...!!! lalu mucul lagi bos layar seperti gambar di bawah ini



20. Isi nama dan organisasinya, terserah BOS aja... lalu tekan "NEXT" kemudian akan muncul layar seperti gambar di bawah ini



21. Masukan serial nombernya, jangan sampe salah ya....!!! kemudian tekan "Next" selanjutnya akan muncul layar administrator, isi aja mau dinamain apa komputernya, terserah deeeehhhhh......
kalau mau pake pasword tinggal di isi juga paswordnya, terserah juga mo apa paswordnya.... lalu tekan "Next" maka muncul layar Date and Time Setting seperti gambar di bawah ini




22. Masukan settingan jam dan tanggal, tentukan juga time zone anda, untuk jakarta : pilih GMT+7 Klik "Next" lagi BOS.... setelah proses instalasi windows delanjutkan, seperti gambar di bawah ini



23. Silahkan Menunggu lumayan lama BOS,.... sampai muncul layar seperti gambar di bawah ini



24. Selanjutnya akan muncul layar work group or computer Domain,seperti gambar di bawah ini



25. jika komputer anda terhubung dengan sebuah domain, maka isikan nama domainnya, tapi jika komputer anda stand alone, maka pilih radio button yang paling atas, lalu tekan "Next"

26. Selanjutnya akan muncul display setting, seperti gambar di bawah ini, klik "OK" aja BOS....!!!



27. Kemudian windows akan mendeteksi tampilan optimal dari PC anda, seperti terlihat pada gambar di bawah ini, Klik "OK" aj BOS...!!!



28. Proses instalasi hampir selesai BOS..... selanjutnya akan muncul loading jendela windows seperti gambar di bawah ini



29. Selanjutnya anda akan dibawa masuk ke dalam windows untuk pertama kalinya seperti terlihat pada gambar di bawah ini, tekan "Next" aj BOS..



30. Selanjutnya akan muncul layar "Help Protect Your PC", seperti gambar di bawah ini, kemudian pilih "Not Right Now" lalu tekan "Next"



31. Kemudian komputer akan mengecek koneksi ke internet, seprti terlihat pada gambar di bawah ini, pilih "Yes" lalu tekan "Next"



32. Kemudian akan muncul pilihan aktivasi windows, seperti gambar di bawah ini, lalu tekan "Next"



33. Setelah itu akan muncul tampilan seperti gambar di bawah ini yang menunjukan pilihan untuk menambah pengguna komputer, Anda bisa memasukkan beberapa pengguna yang akan mengakses komputer Anda, Namun jika satu akun sudah cukup, atau Anda menginstall komputer untuk dipakai bergantian, cukup masukkan satu user kemudian klik "Next"

34. Proses instalasi windows selesai, kemudian akan muncul layar seperti gambar di bawah ini, klik "finish", maka proses instalasi selesai.....



35. Selesailah sudah semua.... kemudian perlahan masuk ke windowsnya seperti telihat pada gambar di bawah ini




36. Kemudian tinggal menginstal CD Driver Motherboad, dan perangkat pendukung lainnya....

Demikianlah langkah-langkah dan cara install windows xp lengkap berikut gambarnya..
0 komentar

MENYIKAPI HARI VALENTINE

Sejarah Valentine di atas menjelaskan kepada kita apa dan bagaimana Valentine’s Day itu, yang tidak lain bersumber dari paganisme orang musyrik, penyembahan berhala dan penghormatan pada pastor. Bahkan tak ada kaitannya dengan kasih sayang. Lalu kenapa kita masih juga menyambut hari valentine? Adakah ia merupakan hari yang istimewa? Adat kebiasaan? Atau hanya ikut-ikutan semata tanpa tahu asal muasalnya? Bila demikian, sangat disayangkan banyak teman-teman kita -remaja putra-putri muslim – yang terkena penyakit ikut-ikutan mengekor budaya Barat dan acara ritual agama lain.
Allah SWT berfirman :
“Dan janganlah kamu mengikuti apa yang kamu tidak mengetahui tentangnya. Sesungguhnya pendengaran, penglihatan dan hati, semuanya akan diminta pertangggungjawabnya? (QS. Al-Isra’ [17]: 36).
Ikut Valentine’s Day berarti menghancurkan kepribadian dan karakter kita sendiri, kepribadian muslim. Maka dari itu jauhilah kebiasaan yang jahiliyah, yang dapat merusak kepribadian kita, merusak keIslaman kita. Jika generasi muda muslim telah rusak, maka Islam ini akan mudah dihancurkan. Kita sebagai muslim memiliki karakter dan kepribadian yang khas dan istimewa berdasarkan teladan Rasulullah SAW. Tanggung jawab kita adalah menyerap, mengamalkan dan memeliharanya. Jadi, mengapa harus mengambil kepribadian orang lain yang belum tentu baik, atau bahkan nyata keburukannya? Wallahu A’lam.
Sabtu, 04 Februari 2012 0 komentar

Cara Menghapus Akun Gmail Ponsel Android...

.google ( gmail ) di handphone atau ponsel android.., salah satunya mungkin disebabkan karena ponsel yang anda beli adalah ponsel bekas / second.., jadi settingan untuk akun gmail-nya, masih menggunakan settingan akun dari pengguna sebelum anda.....
Berikut ini ada 2 Cara Menghapus Akun Gmail Ponsel Android... Baca Juga :
Cara Membuat Refresh Otomatis di Blog

  • Cara 1 : Hapus akun gmail melalui menu pengaturan aplikasi
Cara menghapus akun Gmail di Android ini dapat dilakukan pada handphone / ponsel yang masih menggunakan sistem operasi Android Froyo ataupun sebelumnya. Berikut cara-caranya:

1. Masuk Ke Settings (Pengaturan)
2. Klik Applications(aplikasi)
3. Klik Manage Applications (kelola aplikasi)
4. Geser layar handphonekeatas, kebawah, cari dan klik aplikasi Google Apps”.
5. Setelah Google Apps di klik > klik “Clear data” (Hapus Data) > klik OK
6. Restart handphonenya, setelah itu buka aplikasi Gmail atau Android Market > anda akan diminta untuk memasukkan akun Google yang baru
.
Bila tidak dapat menemukan Google Apps, coba perhatikan pada saat kita masuk ke menu Manage Application (kelola aplikasi), lihat di atas layar, apakah ada tulisan Downloaded (Terunduh), All (semua), On SD card (pada kartu SD), dan Running (Berjalan). Bila ada tulisan tersebut, maka untuk menemukan Google Apps, kita harus klik “All” (semua).
ket:
Klik "ALL" jika Google Apps tidak ditemukan
Bila Google Apps tetap tidak dapat ditemukan, berarti cara ini tidak dapat dilakukan pada handphone Anda.

  • Cara 2 : Hapus akun gmail melalui menu pengaturan akun dan sinkronisasi
Jika ingin mengganti akun tambahan (bukan akun utama), maka kita dapat melakukan cara ini. Sebenarnya, cara ini dapat juga digunakan untuk mengganti akun utama Gmail / Google, namun hanya bekerja di beberapa tipehandphoneatau tablet Android saja, khususnya yang telah menggunakan sistem operasi Gingerbread dan setelahnya. Berikut cara-caranya:
1. Masuk ke menu Settings (pengaturan)
2. Klik Accounts & Sync (Akun & Sinkronisasi)
3. Klik pada akun Google yang mau dihapus
4. Klik Remove Account (Hapus Akun)
5. Klik Remove Account untuk menghapus akun Google.
0 komentar

ternyata tanaman putri malu sangat berkhasiat


Putri malu (Mimosa pudica L.) adalah tumbuhan liar. Ciri khas tumbuhan ini adalah daunnya mengatup jika disentuh serta memiliki duri di batangnya. Baik secara medis maupun empiris, putri malu bisa mencegah dan mengobati beberapa penyakit.
Kandungan:
- Tanin
- mimosin
- asam pipekolinat

Khasiat:
Rebusan putri malu telah diuji mampu mencegah dan mengobati hepatitis. Caranya dengan merebus putri malu sebanyak 10 gram dengan air 200 cc sampai mendidih selama 15 menit. Hasil rebusan diminum rutin.
Khasiat lain, putri malu secara empiris dapat mengatasi insomnia, batuk bronkitis, dan rematik.

Putri malu (Mimosa pudica L.) banyak kita jumpai di rumput-rumput liar dan juga merupakan salah satu tumbuhan liar. Bagi yang masih belum tau putri malu, tanaman ini memiliki bentuk daun kecil-kecil tersusun majemuk, bentuk lonjong dengan ujung lancip, warna hijau (ada yang warna kemerah-merahan), memiliki duri di batangnya. Tanaman ini kadang berbunga juga, bentuk bunganya bulat seperti bola, warna merah muda, bertangkai. Ciri khas tumbuhan ini adalah tumbuhan ini sensitif sekali dengan sentuhan sehingga daunnya akan mengatup begitu disentuh dan tumbuhan ini


Walaupun banyak orang tau dan pernah lihat tanaman putri malu ini akan tetapi tidak banyak yang tau kalau ternyata putri malu ini berkhasiat sekali baik secara medis maupun empiris. Putri malu bisa mencegah dan mengobati beberapa penyakit. Hampir semua bagian dari putri malu ini berkhasiat, dari daun, akar, sampai ke seluruh tanaman, baik masih segar atau dikeringkan.


Beberapa khasiat putri malu antara lain:


Susah Tidur (Insomnia)


Bagi orang yang menderita susah tidur, bisa mencoba untuk merebus sebanyak 30-60 gram daun putri malu dan diminum airnya. Atau rasanya mungkin akan lebih enak kalau mencampur 15 gram daun putri malu dengan 15 gram daun sawi langit (vemonia cinerea) dan 30 gram daun calincing lalu direbus dan airnya kemudian diminum.


Bronchitis Kronik


Penyakit Bronchitis adalah merupakan salah satu penyakit paru-paru. Bagi yang punya penyakit, bisa merebus 60 gram akar putri malu dengan sebanyak 600 cc air, direbus dengan api kecil sehingga menjadi 200 cc. Lalu airnya dibagi untuk dua kali minum.


Mimosa pudica 30 gram, Akar peristrophe roxburghiana 10 gram, keduanya direbus, dibagi menjadi 2 dosis/hari.


Hepatitis
Putri malu ini mengandung tanin, mimosin, dan asam pipekolinat dan berkhasiat untuk mencegah dan mengobati hepatitis. Caranya dengan merebus putri malu sebanyak 10 gram dengan air 200 cc sampai mendidih selama 15 menit. Hasil rebusan diminum rutin. Khasiat lain ternyata putri malu secara empiris dapat mengatasi insomnia, batuk bronkitis, dan rematik.


Batuk berdahak
Tanaman ini juga berkhasiat untuk yang sedang batuk apalagi yang banyak dahaknya. Caranya rebus akar putri malu sebanyak 10-15 gram lalu airnya diminum.


Rematik
15 gram akar Mimosa pudica direndam dalam arak putih 500 cc selama 2 minggu. Kemudian ditempelkan di tempat yang sakit.


Lain-lain
Selain khasiatnya diatas, putri malu juga berkhasiat untuk mengatasi penyakit lainnya. Akar dan bijinya berkhasiat untuk merangsang muntah. Bahkan para ahli pengobatan Cina dan juga penelitian AS serta Indonesia mengindikasikan bahwa tanaman putri malu bisa mengobati berbagai macam penyakit antara lain radang mata akut, kencing batu, panas tinggi pada anak-anak, dan herpes. Hal ini dikarenakan putri malu mengandung sifat kimiawi dan efek farmakologis manis, astringen, agak dingin. Penenang (tranquiliser), sedative, peluruh dahak (expectorant), anti batuk (antitusive), penurun panas (antipiretic), anti radang (anti-inflammatory), peluruh air seni (diuretic).


Peringatan
Tapi harus diperhatikan juga kalau tanaman ini BERBAHAYA bagi Ibu hamil. Jadi Bagi ibu hamil, TIDAK BOLEH MENGKONSUMSI tanaman ini karena bisa mengakibatkan kematian pada janin. Juga harus diperhatikan bahwa penggunaan akar putri malu dalam dosis yang tinggi bisa MENYEBABKAN KERACUNAN DAN MUNTAH-MUNTAH
0 komentar

6 orang misterius di Indonesia

Inilah 6 orang misterius di Indonesia dari jaman dahulu sampai sekarang,

Supriyadi



Supriyadi adalah pahlawan nasional Indonesia, pemimpin pemberontakan pasukan Pembela Tanah Air (PETA) terhadap pasukan pendudukan Jepang di Blitar pada Februari 1945. Ia ditunjuk sebagai menteri keamanan rakyat pada kabinet pertama Indonesia, namun tidak pernah muncul untuk menempati jabatan tersebut.

Pada waktu itu, Supriyadi memimpin sebuah pasukan tentara bentukan Jepang yang beranggotakan orang orang Indonesia. Karena kesewenangan dan diskriminasi tentara Jepang terhadap tentara PETA dan rakyat Indonesia, Supriyadi gundah. Ia lantas memberontak bersama sejumlah rekannya sesama tentara PETA. Namun pemberontakannya tidak sukses. Pasukan pimpinan Supriyadi dikalahkan oleh pasukan bentukan Jepang lainnya, yang disebut Heiho.

Kabar yang berkembang kemudian, Supriyadi tewas. Tetapi, hingga kini tidak ditemukan mayat dan kuburannya. Oleh karena itu, meski telah dinobatkan sebagai pahlawan nasional oleh pemerintah, keberadaan Supriyadi tetap misterius hingga kini. Sejarah yang ditulis pada buku-buku pelajaran sekolah pun menyebut Supriyadi hilang.

Namun yang membikin sosok Supriyadi semakin misterius adalah banyaknya kemunculan orang-orang yang mengaku sebagai Supriyadi. Salah satu yang cukup kontroversial adalah sebuah acara pembahasan buku ‘Mencari Supriyadi, Kesaksian Pembantu Utama Bung Karno’, yang diadakan di Toko Buku Gramedia di Jalan Pandanaran Semarang. Dalam acara itu, seorang pria sepuh bernama Andaryoko Wisnu Prabu membuka jati diri dia sesungguhnya. Dia mengaku sebagai Supriyadi, dan kini berusia 88 tahun.

Namun sampai sekarang pengakuan tersebut belum bisa dibuktikan kebenarannya, meski secara perawakan dan sejumlah saksi membenarkan klaim tersebut.


Tan Malaka



Salah satu sosok pahlawan nasional kita yang terlupakan. Mungkin salah sedikit (atau satu-satunya) sosok pahlawan yang memiliki kisah petualangan dari negara ke negara lain dan menjadi sosok yang paling dicari oleh Belanda dan banyak negara lain. Selain itu, pada masa revolusi kemerdekaan keberadaannya selalu dicari oleh para pejuang pada saat itu (termasuk oleh Bung Karno) karena hobinya melakukan penyamaran untuk menghindari mata-mata musuh, sehingga sosoknya selalu misterius dan tidak banyak yang mengenal dengan pasti seperti apa sosok yang bernama asli Sutan Ibrahim gelar Datuk Tan Malaka itu.

Namun sayangnya keberadaan dari tokoh aliran kiri ini hilang secara misterius dalam pergolakan revolusi kemerdekaan itu. Konon kabarnya Tan Malaka dibunuh pada tanggal 21 Februari 1949 atas perintah Letda Soekotjo dari Batalyon Sikatan, Divisi Brawijaya di daerah Kediri, Jawa Timur. Hingga kini makamnya tidak pernah bisa ditemukan.

Gunadarma



Borobudur dan Gunadarma adalah dua nama yang tidak bisa terpisahkan. Dalam sejumlah literatur, Candi Borobudur diarsiteki oleh sekelompok kaum atau sekelompok brahmana yang meletakkan dasar pada sebuah tempat pemujaan nya dan kemudian entah beberapa waktu kemudian (kemungkinan bisa puluhan, ratusan atau malah ribuan) dibuatkan sebuah proyek mega raksasa, pemberian sebuah “kulit� yang katanya dikepalai oleh seorang arsitek bernama Gunadarma.

Sedangkang siapa sebenarnya sekelompok kaum brahmana yang terdahulu tidak diketemukan catatan resmi tentang mereka, kemudian cerita tentang kepala penanggung jawab mega proyek pembuatan “kulit� situs tersebut yaitu Gunadarma juga tidak ada sebuah keterangan resmi mengenainya, bisa jadi kata Gunadarma adalah sebuah kata symbol dan bukan merupakan nama seseorang.

Kalau memang benar Gunadarma yang mengarsiteki pembangunan Candi Borobudur, maka perlu kita acungi jempol (kalo perlu pake empat kaki!) bagaimana Gunadarma melakukan perencanaan yang tepat dengan kondisi teknologi yang pada saat itu belum begitu canggih. Namun sampai saat ini nama Gunadarma dan Borobudur itu sendiri masih menjadi misteri yang belum bisa diungkapkan dengan tuntas.

Ki Panji Kusmin



Suatu ketika majalah Sastra, dengan cetakan tahun VI No. 48, Agustus 1968, memuat sebuah cerpen yang berjudul Langit Makin Mendung yang dikarang oleh Ki Panji Kusmin (diduga ini nama samaran). Cerpen ini bercerita tentang Nabi Muhammad yang memohon izin kepada Tuhan untuk menjenguk umatnya. Disertai malaikat Jibril, dengan menumpang Bouraq, Nabi mengunjungi Bumi. Namun Bouroq bertabrakan dengan satelit Sputnik sehingga Nabi serta Malaikat Jibril terlempar dan mendarat di atas Jakarta. Di situ Nabi menyaksikan betapa umatnya telah menjadi umat yang bobrok. Cerpen ini adalah sindiran terhadap laku keagamaan masyarakat luas yang ”menyimpang” pada waktu yang belum jauh berselang dari terjadinya Tragedi 1965.

Namun akibat penerbitan Cerpen yang bikin heboh umat ini, Ki Panji Kusmin dituduh telah melakukan penodaan terhadap agama karena mempersonifikasikan Tuhan, Nabi Muhammad, dan Malaikat Jibril. Tanpa ampun lagi H.B. Jassin selaku penanggung jawab majalah itu dibawa ke pengadilan dan dipaksa untuk mengungkap siapa sebenarnya Ki Panji Kusmin. H.B. Jassin menolak untuk mengungkap jati diri Ki Panji Kusmin. Untuk itu ia dituntut Pengadilan Tinggi Medan dan divonis in absentia berupa kurungan selama satu tahun dan masa percobaan dua tahun.

Dan sampai saat ini pun identitas dari Ki Panji Kusmin tidak terungkap dan dibawa hingga ke liang lahat oleh H.B. Jassin.

Imam Sayuti alias Tebo



Suatu hari, pada 1970 hiduplah sepasang suami-istri Fai dan Nasikah di lereng Gunung Watungan, Desa Wuluhan, Kecamatan Ambulu, Kabupaten Jember, Jawa Timur. Fai bekerja sebagai kuli bangunan, istrinya membantu mencari kayu di hutan Ambulu. Masih pengantin baru, konon mereka belum sempat berhubungan suami-istri, Fai pergi ke kota untuk bekerja di proyek. Fai pun pamit untuk jangka waktu lama.

Ternyata, baru tiga hari pamitan, ‘Fai’ pulang lagi menemui Nasikah. (Dipercaya sebagai gendruwo atau makhluk halus. Postur, cara bicara, suara, dan perilakunya persis Fai, sang suami asli). Nah, si gendruwo yang menyamar sebagai Fai ini kemudian menyetubuhi Nasikah.

Nasikah, wanita desa itu, tenang-tenang saja karena menganggap ‘laki-laki’ itu suaminya yang sah. Bulan ketujuh Nasikah hamil, Fai palsu pamit. Datanglah Fai yang asli. Maka gegerlah sudah keluarga baru ini. Untung saja, ulama terkemuka di Ambulu meminta Fai untuk bersabar karena istrinya tidak selingkuh. Ada pesan atau isyarat spiritual yang terjadi dengan istrinya. Lalu, lahirlah bayi penuh rambut di tubuh dengan bintik-bintik merah. Orang tuanya memberi nama Imam Sayuti. Tapi laki-laki kekar ini diberi nama gaib, Tebo, sesuai dengan petunjuk ‘dari langit’. Tebo kemudian diasuh oleh pasangan suami-istri ini layaknya anak mereka sendiri.

Sosok ini cukup menarik perhatian ketika Tebo dititipkan oleh manajer Wahana Misteri (penyelenggara pameran yang berkaitan dengan hal-hal gaib) pada tahun 1990 dan menjadi bintang pameran di sana. Akhirnya kontroversi keberadaan sosok ini merebak.

Tentu suatu hal yang ganjil jika ada makhluk alam lain bisa ’bersetubuh’ dengan manusia dan melahirkan manusia ’gado-gado’. Hingga saat ini belum ada penelitian yang lebih ilmiah untuk membuktikan keberadaan ’makhluk’ ini.

Perobek Bendera Belanda di Hotel Oranje



Peristiwa 10 November 1945 tentu tidak lepas dari dipicunya oleh salah satu peristiwa yang paling heroik, yaitu perobekan bendera Belanda di atas Hotel Oranje. Kisah ini dipicu oleh berita bahwa di Hotel Oranje di Tunjungan telah dikibarkan bendera Belanda merah-putih-biru oleh Mr Ploegman. Tentu saja hal tersebut tidak diterima oleh para arek-arek Suroboyo yang merasa pengibaran bendera tersebut dianggap sebagai penghinaan sebagai bangsa yang merdeka.

Pada akhirnya Mr. Ploegman dibunuh oleh seorang pemuda mendekati dirinya tanpa ia ketahui dan menusukkan pisaunya bertubi-tubi. Pada saat itu Mr. Ploegman menghadapi ribuan massa di depan hotel yang menuntut penurunan bendera triwarna tersebut. Pada saat itu teriakan untuk menurunkan bendera kian membahana. Sejumlah pemuda telah membawa tangga untuk naik ke atap hotel, terdapat 8 sampai 10 pemuda. Dari atap ada yang naik ke tiang bendera dalam gemuruh teriakan, lalu bagian biru bendera itu pun dirobek, dan jadilah kini Sang Merah Putih yang berkibaran di angkasa.
0 komentar

Tanaman Beracun Yang Mematikan

Masih ingat beberapa tahun yang lalu dimana salah satu institusi pendidikan di Bandung memperingatkan mengenai adanya tanaman berbahaya yang tumbuh di sekeliling kota? Pemda bergerak cepat dengan melokalisir tanaman-tanaman tersebut, dan dimusnahkan sekiranya berada di tempat-tempat keramaian utamanya anak-anak. Setelah sekian millenium melalui trial and error, manusia dan binatang telah memilah-milah mana tanaman yang aman, mana yang berbahaya, atau mana yang berada di antaranya. Untunglah, berbagai metoda dalam memilih dan memasak makanan membuatnya menjadi aman untuk konsumsi sehari-hari. Tapi mungkin Anda akan tekejut jika Anda baru sadar bahwa ada beberapa tanaman yang benar-benar sangat berbahaya tumbuh di sekitar kita, bahkan kadang ditaruh di pot dan diletakkan di meja kita?


Kebanyakan tanaman diketahui mengandung sekian jumlah racun (seperti alkaloids) untuk mekanisme pertahanan diri. Oke, mari kita lihat tanaman-tanaman apa saja yang tergolong sangat berbahaya dan sebenarnya tidak layak berada halaman rumah kita apalagi di atas meja kita.

Castor Bean (Biji Kasturi)

Anda mungkin Anda akan terkejut jika mengetahui bahwa kandungan di dalam biji kesturi (castor bean) merupakan racun tanaman paling mematikan di muka bumi. Sebenarnya, sebiji kecil kesturi cukup untuk membunuh seorang dewasa hanya dalam beberapa menit saja. Sedangkan minyak kesturi aman digunakan (tapi tidak untuk dimakan) karena senyawa racunnya yang dikenal sebagai ricin telah dihilangkan.

Rosary Pea (Kacang Polong Rosary)

Lihat sosoknya, rosary pea memang kelihatan tanaman yang manis dan aman-aman saja, tapi kenyataannya dia adalah salah satu tanaman yang paling berbahaya di dunia. Bijinya mengandung lectin khusus yang disebut abrin. Biji ini gampang dikenali karena warna merah yang membungkusnya dan ada sebuah noda hitam. Abrin, yang membunuh dengan membuat ribosomes tidak berfungsi, adalah salah satu racun fatal di dunia. Setelah masuk dalam tubuh, akan menyebabkan demam, mual, mengeluarkan busa, disfungsi gula darah dan juga kejang-kejang, lalu menyerang ginjal, kamdung kemih, pendarahan retina, dan luka dalam yang menyebar.

Angel’s trumpet (terompet malaikat)

Racun Angel’s trumpet adalah sejenis hallucinogen (penyebab halusinasi - alias mabok lagiii... -red) yang seharusnya tidak digunakan untuk iseng karena bisa fatal akibatnya. Di wikipedia dijelaskan sbb: "Kandungan aktifnya adalah atropine, hyoscyamine dan scopolamine yang diklasifikasikan sebagai zat penghilang kesadaran atau anticholinergics. Resiko yang tinggi jika terjadi overdosis dibuktikan dengan laporan pasien yang dirawat di rumah sakit dan juga yang meninggal karena menggunakannya untuk iseng."

Choke cherry

Chokecherry, atau cherry liar, adalah tanaman Amerika Utara yang diketahui mempunyai banyak bunga-bunga putih kecil. Buahnya kecil dan tidak bisa dimakan. Batang kayu tanaman ini dan daun-daunnya penuh dengan hydrocyanic acid, yang berakibat fatal jika dikonsumsi. Racunnya menginfeksi sistem pernapasan dan mengakibatkan sesak napas seperti tercekik.

Nightshade

Tanaman ini juga dikenal sebagai cherry setan, cherry hitam, great morel, dan belladona, semua bagian nightsade beracun. Mengandung atropin, alkaloid mematikan, siapa saja yang terinfeksi sedikit saja akan segera menyadari mereka telah kehilangan suaranya. Masalah pernapasan dan kejang-kejang kemudian akan mengikutinya. Tanaman ini menjadi masalah karena buahnya yang sangat manis dan menarik hati anak-anak. Anehnya, kuda, burung, domba, dan babi seperti kebal terhadap efek racun nightsade ini. Racun nighsade dapt diobati dengan zat emetic (pendorong muntah) jika dilakukan dengan segera. Konon racun tanaman ini pernah digunakan untuk melumpuhkan musuh ketika tentara kerajaan Macbeth meracuni pasukan Danes denga menjamu mereka dengan anggur dari sejenis buah manis.

Silahkan periksa jika dari tanaman-tanaman ini ada di pekarang rumah Anda. Lebih baik singkirkan saja daripada menimbulkan masalah. Mungkin masih banyak lagi tanaman-tanaman beracun yang belum dicantumkan disini, tapi lebih baik kita berhati-hati dalam mengkonsumsi makanan dimana dengan cara memasak yang benar akan turut mencegah dari keracunan makanan. Contohnya, tahukah Anda kalau singkong (ketela kayu) itu harus benar-benar direbus atau digoreng samapai matang benar untuk menghilangkan senyawa racunnya, yang dari jenis sianida? Walah...
Rabu, 01 Februari 2012 0 komentar

Komponen UML (Unified Modeling Language) -

UML adalah bahasa grafis yang dipergunakan untuk menangkap artefak dari pengembangan perangkat lunak.
Bahasa ini memberikan model notasi grafis.
UML merupakan satu – satunya bahasa yang dipergunakan secara luas oleh industry.
Bahasa ini sangat kaya dan memiliki banyak aspek dari praktek terbaik rekayasa perangkat lunak.

Meskipun begitu, UML sendiri hanyalah sebuah sintaks, sebuah alat, sebuah bahasa yang dapat dipergunakan untuk membangun perangkat lunak. Akan tetapi untuk membangun sebuah sistem yang kokoh (robust) dan mudah dirawat bergantung pada prinsip - prinsip perancangan (bukan UML) yang didapat dari pengalaman.

UML menggunakan proses pembangunan perangkat lunak IIF (Iterative, Incremental Framework) dengan 4 tahapan : Inception, Elaboration, Construction, dan Transition. Tahapan construction terdiri dari 4 bagian, yaitu : analisis, perancangan, implementasi, pengujian.

Ciri – ciri UML

UML bersifat generik: UML tidak mengandung hal – hal yang berhubungan dengan proses. Sebuah proses untuk perusahaan A mungkin sangat berbeda dengan proses pada perusahaan B.

Komponen UML

UML memiliki berbagai jenis diagram (model) yang berhubungan dengan stake holder pada sebuah pembangunan perangkat lunak. Stake holder tersebut adalah :
  • Analis
  • Disainer
  • Koder
  • Tester
  • QA
  • Pelanggan
  • Penulis teknis

Berbagai Jenis diagram UML tersebut adalah :

Use case diagram
“How will our system interact with the outside world?”

Mendeskripsikan kelakuan sistem dari sudut pandang pengguna, berguna untuk membantu memahami kebutuhan. Use case adalah dasar dari diagram lain.

Class Diagram
“What objects do we need? How will they be related?”

Dapat dipergunakan pada tingkatan analisis maupun perancangan. Diagram kelas pada tingkatan analisis disebut model konseptual.

Collaboration Diagram
“How will the objects interact?”

Diagram kolaborasi (Collaboration Diagram) menggambarkan kolaborasi (kerja sama) yang dilakukan oleh kelas – kelas pada sistem.

Sequence Diagram
“How will the objects interact?”

Sequence Diagram menggambarkan bagaimana objek – objek di dalam sistem berinteraksi seiring dengan waktu. Ia menampilkan informasi yang sama dengan Diagram Kolaborasi (Collaboration Diagram), hanya dengan bentuk yang berbeda.

State Diagram
“What states should our objects be in?”

Menggambarkan keadaan objek pada suatu waktu di dalam sistem kita.

Package Diagram
“How are we going to modularize our development?”

Package Diagram membagi sistem ke dalam “bagan” yang lebih kecil dan lebih mudah dimengerti.

Component Diagram
“How will our software components be related?”

Component Diagram mirip dengan Package Diagram, ia menotasikan pembagian sistem dan hubungan antar modul. Akan tetapi, Component Diagram lebih menekankan komponen perangkat lunak (file, header, link libraries, executeable, package) daripada pembagian logika seperti pada Package Diagram.

Deployment Diagram
“How will the software be deployed?”

Memberikan gambaran terhadap bagaimana rencana untuk melakukan deploy dari perangkat lunak yang telah dibangun.

1. Tahapan Inception
Pada tahapan inception, UML tidak digunakan. Aktivitas utama dari tahapan ini adalah :

-Menentukan tujuan dari product
-Membuat business case
-Mendefinisikan jangkauan dari proyek
-Menentukan biaya keseluruhan dari proyek

Salah satu contoh hasil dari tahapan ini adalah business plan.

Tahapan Elaboration
Pada tahapan ini, permasalahan yang diutamakan adalah pendetilan masalah (bukan pendetilan implementasi), memahami kebutuhan pelanggan dan bisnisnya, serta mengembangkan rencana ke tingkatan yang lebih lanjut.

Aktivitas utama pada tahapan ini adalah menanggulangi resiko. Semakin cepat sebuah resiko diketahui dan ditanggulangi, semakin kecil akibat yang diakibatkannya terhadap proyek.

Melakukan pemodelan terhadap area yang sulit atau bermasalah dari proyek memberikan bantuan yang besar terhadap penanggulangan resiko.

UML pada Tahap Elaboration

Ada 2 model UML yang dipergunakan pada tahapan ini untuk membantu memahami masalah secara keseluruhan, yaitu : 

Use Case Model dan Diagram Class (Conceptual Model).

Gambar 1 dua model UML pada tahap Elaboration

Short Use Case
Diagram Use Case Model berfungsi untuk mendeskripsikan interaksi antara user dan sistem. Tujuan dari tahapan elaboration menemukan sebanyak mugkin use case yang ada tanpa perlu memberikan detil penuh terhadap setiap use case. Use case tersebut akan dikembangkan lebih lanjut pada tahapan construction. Untuk use case yang memiliki resiko, adalah hal yang baik untuk melakukan pendetilan terhadapnya dan melakukan penanggulangan resiko.

Finding Use Case

Ada beberapa pendekatan yang dapat dilakukan untuk menemukan use case. Salah satunya adalah dengan melakukan wawancara terhadap pengguna potensial dari sistem. Ini adalah tugas yang sangat sulit. Dari 2 orang yang berbeda mungkin saja didapatkan pandangan yang benar – benar berbeda dengan apa yang harus dilakukan oleh sistem (bahkan jika mereka bekerja di bawah organisasi yang sama).

Pendekatan lain yang lebih popular adalah workshop. Pendekatan ini disebut Joint Requirements Plannin Workshops (JRP). Workshop ini mengumpulkan sekumpulan orang yang tertarik pada sistem yang sedang dikembangkan (disebut juga stakeholder) untuk mencari tahu pandangan mereka tentang apa yang perlu dilakukan oleh sistem.

Kunci kesuksesan terletak pada fasilitator. Mereka memimpin kelompok tersebut untuk memastikan bahwa diskusi tetap berjalan sesuai dengan topiknya dan semua stakeholder memberikan tanggapannya. Seorang
juru tulis juga diperlukan untuk mencatat dokumentasi tentang jalannya workshop.

Use Case berperan penting disini, kesederhanaannya memberikan kemampuan kepada stakeholder yang sekalipun gagap teknologi, dapat menangkap konsep dari diagram dengan mudah.

Suatu metode yang sederhana untuk menyukseskan workshop adalah :
  • Brainstorm semua actor yang memungkinkan terlebih dahulu.
  • Brainstorm semua use case yang memungkinkan.
  • Selesai brainstorming, lakukan justifikasi terhadap use case dengan menggunakan grup. Deskripsikan setiap use case dengan 1 baris / paragraf sederhana. Jika use case tidak dapat dideskripsikan, besar kemungkinan ia bukanlah use case.
  • Tuangkan dalam bentuk model.

NB : Jangan memaksakan diri untuk menemukan semua use case dan actor. Adalah hal yang lumrah untuk menambahkan use case dan actor kemudian.

NB : Setiap langkah tidak harus benar 100%!

Sebuah formula untuk menentukan jumlah use case : Apa yang masuk ke dalam sistem adalah jumlah dari keseluruhan use case.

Komponen Use Case

Ada 2 komponen
Use Case Model, yaitu : Use Case dan Actor.

1.Use Case
Gambar 2 Notasi Use Case

Ciri – ciri :

Use Case dideskripsikan menggunakan kombinasi kata kerja dan kata benda.
Use Case tidak dapat di-inisiasi oleh dirinyya sendiri.

2.Actor
Gambar 3 Notasi Actor

Ciri – ciri :
  • Actor dideskripsikan menggunakan kata benda.
  • Dapat (bukan harus) melakukan inisiasi terhadap use case.
  • Actor tidak harus orang, dapat saja sistem, atau entitas yang berhubungan dengan sistem tetapi berasal dari luar sistem.
  • 1 Actor dapat berinteraksi dengan beberapa use case.

Tujuan dari Use Case Model

Meski Use Case terlihat sederhana akan tetapi ia merupakan komponen yang penting di dalam UML. Berikut adalah kegunaan dari Use Case :
  • Mendefinisikan jangkauan dari sistem.
  • Memberikan fokus yang lebih baik kepada kebutuhan (requirement) sistem (sebab biasanya kebutuhan sistem cenderung kabur, membingungkan, ambigu, dan ditulis dengan buruk).
  • Gabungan dari seluruh Use Case adalah sistem secara keseluruhan.
  • Memungkinkan komunikasi antara pelanggan dan pengembang.
  • Menuntun tim pengembang melalui proses
  • pengembangan. Use Case adalah Backbone.
  • Memberikan sebuah metode untuk merencanakan kerja pengembangan dan memungkinkan estimasi mengenai lama pengembangan.
  • Memberikan basis untuk melakukan pengujian sistem.
  • Membantu pembuatan user guide.

Use Case Granularity

Granularity berbicara tentang sebesar apakah isi dari sebuah use case? Apakah setiap interaksi pengguna ke sistem harus dituangkan ke dalam sebuah use case atau seluruh interaksi tersebut dibungkus di dalam sebuah use case?

Kesalahan utama di dalam use case adalah seringkali pengembang membuat sejumlah besar use case kecil dan tidak relevan. Pada sistem yang besar, mungkin saja berakhir dengan jumlah use case yang tidak logis dan menyebabkan kompleksitas meningkat pesat.

Ada hal yang harus diingat mengenai pembuatan use case : “Sebuah use case harus memenuhi tujuan akhir dari actor.”

Contoh : pada kasus mesin ATM, apakah tujuan akhir dari user adalah memasukkan kartu/pin, atau mengambil receipt? Tidak, sehingga tidak perlu membuat use case untuk hal tersebut. Hal yang diperlukan oleh user adalah mengambil uang. Sehingga cukup menggunakan sebuah use case itu saja, meski di dalamnya ada aktivitas seperti memasukkan kartu/pin, dsb.

Use Case Description

Setiap use case memiliki sekumpulan penuh penjelasan detil tertulis mengenai interaksi dan skenario di dalamnya. Berikut adalah template yang digunakan untuk men-spesifikasi-kan struktur dan isi dari dokumen use case description :
Gambar 4 Use Case Description Template

Untuk Short use case, bagian yang harus diisi adalah : nama use case, deskripsi singkat, actor (dapat ditambahkan pada template di atas), dan requirement yang dipenuhinya (dapat ditambahkan pada template di atas).

Ranking Use Case

Pada saat melakukan tahapan construction, use case yang telah dibuat disini akan mengalami iterasi berulang kali. Untuk membagi use case ke dalam pekerjaan iterasi yang ada, use case dialokasikan menggunakan tingkatan (rank). Secara mudah, tingkatan adalah angka yang menunjukkan use case yang akan dikembangkan. Pengalaman yang akan menentukan use case manakah yang akan memiliki tingkatan lebih tinggi. Ada 6 jenis tingkatan secara umum :
  • Risky use cases
  • Major Architechtural Use cases
  • Use cases exercising large areas of system functionality
  • Use Cases requiring extensive research, or new technologies.
  • “Quick wins”
  • Large Payoffs for the customer

Sebuah use case mungkin saja mengalami beberapa kali proses iterasi, pecah use case tersebut ke dalam beberapa versi. Pada akhir setiap iterasi, use case tersebut masih dapat melakukan sesuatu tetapi hanya pada suatu batasan tertentu.

Diagram Class (Conceptual Model)

Conceptual Modeling (disebut juga Domain Modeling) adalah aktivitas untuk menemukan konsep yang penting untuk sistem. Proses ini membantu untuk memahami masalah lebih lanjut, dan mengembangkan pemahaman lebih mendalam tentang keperluan pelanggan. Untuk melakukan hal ini (menemukan konsep), dipergunakan sintaks UML yaitu class diagram.

Catatan pada tahap ini adalah : jangan melakukan perancangan sistem, tahapan yang dilakukan masih analisis.

Class Diagram yang telah dihasilkan pada tahapan ini tidak berhubungan dengan tahapan construction (Tidak melakukan perancangan sistem). Oleh karenanya, class diagram pada tahapan ini lebih sering disebut conceptual model untuk memberikan perbedaan dengan class diagram sesungguhnya pada tahapan construction. Mulai saat ini class diagram pada tahapan ini akan disebut sebagai conceptual model.

Conceptual model tidak boleh berhubungan dengan perancangan (design), seperti : database, daemon process, form, trigger, event, dsb.

“If the customer doesn’t understand the concept, it probably isn’t concept at all.”

Finding Concept

Salah satu cara terbaik untuk menemukan konsep adalah dengan melakukan hal yang sama pada saat mencari use case, yaitu “workshop dan brainstorming”.

Cara lain adalah dengan mencari konsep melalui dokumen kebutuhan (requirement). Beberapa kandidat konsep yang mungkin dapat diambil dari requirement adalah :
  • Objek fisik atau nyata.
  • Tempat
  • Transaksi
  • Tugas (pelanggan, sales, dll)
  • Container untuk konsep lain.
  • Sistem lain (eksternal)
  • Kata benda abstrak
  • Organisasi
  • Kejadian
  • Aturan
  • Catatan

Cara kedua untuk mencari konsep dari dokumen requirement adalah dengan mencari kata benda di dalam dokumen tersebut. Meskipun cara untuk “mencari konsep dari dokumen requirement ” ini cukup sering dipakai, tetapi input dari pelanggan adalah penting!.

Conceptual Model

Ada 2 komponen di dalam conceptual Model, yaitu : Concept Box dan Association.

Concept Box
Gambar 5 Concept Box (Similar to Class)

Concept ditampilkan pada sebuah kotak sederhana dengan judul dari konsep (dalam huruf besar secara konvensi) pada baris teratas kotak. Di dalam kotak yang besar terdapat 2 kotak yang lebih kecil. Kotak pertama (yang berada di tengah) digunakan untuk atribut dari konsep. Kotak kedua (yang berada di bawah) digunakan untuk kelakuan dari konsep.

NB : Pada conceptual model
kelakuan tidak diisi (belum didefinisikan). Kelakuan baru didefinisikan pada tahapan construction saat membuat class diagram.

Finding Attribute

Hal yang seringkali dipermasalahkan adalah apakah sebuah atribut seharusnya adalah konsep? Sebuah saran yang cukup baik untuk masalah ini adalah : jika ragu, jadikanlah atribut tersebut sebagai konsep, waktu akan menyelesaikannya nanti.

Ada beberapa hal yang dapat membantu untuk menentukan atribut :
  • Nilai tunggal (string atau angka) biasanya adalah atribut
  • Jika sebuah property dari konsep tidak dapat melakukan apapun, kemungkinan ia adalah atribut.

Association

Asosiasi berfungsi untuk mendeskripsikan bagaimana 2 buah konsep berhubungan. Di dalam setiap hubungan tersebut ada yang disebut sebagai kardinalitas. Kardinalitas memberitahu berapa banyak instans yang diijinkan untuk setiap konsep.
Gambar 6 Contoh Kardinalitas

Notasi * berarti banyak. Ada sedikit perbedaan pada “*” dan “1..*”. Yang pertama mengartikan “banyak” secara kabur, mungkin banyak konsep yang diijinkan ataupun belum dibuat keputusan yang pantas. Yang terakhir mengartikan “banyak” yang lebih konkret, satu atau lebih dari satu diijinkan.

Untuk setiap asosiasi yang telah dibuat, diberikan nama di atas garis (yang menyatakan asosiasi tersebut). Nama tersebut sesuai dengan arti dari relasi tersebut.

Building the complete model

Setelah sesi brainstorming selesai, akan didapat sekumpulan concept dengan atribut. Untuk menemukan relasi antara 2 konsep hal terbaik adalah dengan menanyakan apakah kedua konsep tersebut saling berhubungan atau tidak. Kesalahan yang mungkin terjadi pada tahap ini biasanya adalah :
  • Pemutusan bahwa 2 konsep berhubungan
  • Pembuatan garis diagram dan tidak ada nama yang diberikan
  • Saat membangun model adalah penting untuk mengingat bahwa asosiasi tidak lebih penting daripada atribut. Setiap asosiasi yang kurang dapat dengan mudah ditambahkan kemudian, tetapi adalah jauh lebih susah untuk mencari atribut yang hilang.

Pada akhirnya, sebuah diagram harus masuk akal ketika pelanggan “membaca kembali” diagram tersebut dalam kalimat biasa.

Tahapan Construction

Pada tahapan construction, produk dibangun, sistem dibawa pada keadaan dimana ia siap diantarkan kepada komunitas pengguna.

Strategi pada tahapan ini adalah sekumpulan proses waterfall pendek, dengan sekumpulan kecil use case yang dikembangkan pada setiap iterasi. Secara ideal, pada akhir iterasi diharapkan sebuah sistem yang dapat berjalan meski terbatas.

Setiap tahapan iterasi waterfall akan memiliki sekumpulan dokumen UML :
  • Pada analisis, akan dihasilkan beberapa use case (yang penuh ataupun diperluas)
  • Pada perancangan, akan dihasilkan class diagram, interaction models, dan state diagrams.
  • Pada pengkodean, akan dihasilkan kode yang telah diuji dan dijalankan.

Fase Analisis

Pada tahapan ini, meski telah berada tahapan construction, akan tetapi kita masih berada pada tahapan analisis. Yang harus kita perhatikan bukanlah solusi, melainkan masalah. Tujuan utama dari fase ini adalah memahami masalah dengan lebih mendalam. Short use case yang telah dibuat pada tahapan elaboration akan dikembangkan kembali di tahapan ini untuk diberikan detil secara penuh.
Gambar 7 Use Case Description Template

Pada bagian ini, short use case telah memberikan detil terhadap bagian “use case” dan “short description” (serta dengan tambahan “actor” dan “requirement” jika diperlukan). 5 bagian lain belum diisi. Berikut adalah keterangan untuk kelima bagian tersebut.

Pre-Conditions

Bagian ini menjelaskan kondisi yang harus dipenuhi sebelum use case dapat berjalan. Bagian pre conditions harus bukan sebuah proses yang termasuk di dalam use case. Contoh : jika ada sebuah pre condition : “user telah berhasil login”, artinya proses validasi user tidak termasuk di dalam use case tersebut.

Post-Conditions

Bagian ini menjelaskan kondisi sistem pada akhir use case. Harus ada proses di dalam use case yang memberikan hasil ini. Kondisi akhir ini dapat menggunakan syarat perbandingan “if-then (jika – maka)”.

The Use Case Flow
Ada 3 Flow utama dari use case, Flow dimulai dari main flow dan berpindah ke flow lain jika diperlukan. Perpindahan ke alternate flow ditandai dengan [An] dengan n adalah nomor urut Alternate Flow. Perpindahan ke exception flow ditandai dengan [En] dengan n adalah nomor urut Exception Flow.
Gambar 8 Full Use Case Description

Berikut adalah penjelasan aliran proses pada sebuah Use Case :

Main Flow
Aliran ini menjelaskan proses use case jika tidak terjadi hal – hal di luar dugaan. Pada aliran proses ini, user dianggap memberikan masukan (input) sesuai dengan harapan (kondisi ideal). Interaksi antara user dengan sistem dijelaskan secara mendetil disini. Kondisi akhir dari main flow adalah post condition.

Alternate Flow(s)
Alternate flow adalah aliran proses yang akan dijalankan (dibangkitkan) jika terjadi hal – hal di luar dugaan pada main flow. Pada alternate flow, mungkin terjadi perubahan post condition. Perubahan pada post condition, ditandai dengan :

Post Conditions à(Post Condition baru).

Exception Flow(s)
Exception Flow adalah aliran proses yang akan dijalankan (dibangkitkan) jika terjadi hal – hal yang tidak diinginkan ataupun hal – hal yang tidak diduga sebelumnya. Pada kode program, bagian ini dipetakan ke bagian penanganan exception (seperti pada C++, Java, Ada, Delphi, dan bahasa pemrograman lainnya). Biasanya akan mengakhiri proses use case seketika.

Pada saat menulis proses dari aliran proses sebuah use case, seringkali terjadi pencampuran antara analisis dan perancangan (disain). Contohnya : di dalam aliran proses seringkali disebutkan bagaimana sistem mengakses dan memodifikasi database, pemindahan data – data di dalam sebuah array, dsb (yang seharusnya tidak boleh). Hal ini mungkin terjadi akibat sulitnya menemukan kata – kata yang tepat untuk menggambarkan
keadaan yang diinginkan oleh pengembang saat menuliskan aliran proses. Untuk menanggulangi masalah ini dapat digunakan sequence diagram untuk membantu (bukan menggantikan) menjelaskan aliran proses dari use case..

Sequence diagram dapat dipergunakan pada tahapan analisis maupun perancangan (disain). Untuk tahap analisis, sistem dianggap sebagai sebuah “kotak hitam (black box)”. Sequence Diagram dapat dipergunakan hanya untuk main flow, tidak perlu menggambarkan sequence diagram untuk alternate flow dan exception flow kecuali jika benar – benar kompleks atau menarik. Ada 4 komponen dari sequence diagram yang akan dipergunakan pada tahapan analisis :

Actor
Gambar 9 Actor

Actor berada pada sisi kiri dari diagram. Nama dari actor berada di bagian bawah dari gambar actor.

System Box
Gambar 10 System Box

System box berada pada sisi kanan dari diagram. Keseluruhan
sistem direpresentasikan sebagai sebuah kotak dan diberi nama “sistem” (ataupun nama dari sistem).

Timelines
Gambar 11 Timeline

Sebuah garis lurus vertikal ditambahkan di bawah actor dan system box untuk menggambarkan aliran waktu.
Interactions
Gambar 12 Interaction

Interaksi antara user dengan sistem digambarkan dengan garis dan panah antara
user dengan sistem. Kotak yang tergambar di garis
timeline menyatakan waktu yang dihabiskan oleh satu sekuen dari proses. Nama dari interaksi yang terjadi di tulis diatas garis dan mendeskripsikan jenis interaksi yang terjadi.

Berikut adalah contoh dari sequence diagram :
Gambar 13 Contoh Sequence Diagram

Fase Perancangan

Pada fase ini seharusnya permasalahan telah dapat dimengerti sepenuhnya (untuk iterasi ini). Perancangan akan memulai pembuatan solusi untuk masalah. Pada tahapan ini ada 3 hal yang harus diperhatikan :
  • Objek apa saja yang diperlukan oleh sistem
  • Objek yang mana yang bertanggung jawab untuk memenuhi kebutuhan
  • Waktu untuk objek berinteraksi

Untuk menggambarkan interaksi antar objek, digunakan Interaksi diagram. Interaksi diagram terdiri atas 2 jenis diagram yang saling berelasi, yaitu : sequence diagram dan collaboration diagram. Setelah objek – objek yang diperlukan telah dimiliki, sebuah class diagram dipergunakan untuk menangkap informasi bagaimana kelas – kelas saling berelasi. Akhirnya, sebuah model lain dipergunakan untuk memberikan penjelasan tentang state dari setiap objek yang disebut dengan state diagram atau state model.

Karena pada tahapan ini telah memulai pembuatan solusi maka pada tahapan ini akan mulai dibicarakan tentang pemrograman (pseudo-code, code), basisdata, struktur data, dan berbagai hal lain yang berhubungan dengan perangkat lunak.

Pada fase perancangan ini, ada 3 tipe model yang akan dihasilkan : interaction diagram, class diagram, dan state diagram.

Interaction Diagram
Collaboration Diagram

Use case yang telah didapatkan pada tahapan sebelumnya, tugasnya akan dijelaskan dengan menggunakan kolaborasi dari objek yang berbeda. Collaboration Diagram dipergunakan untuk menjelaskan kolaborasi dari objek – objek yang ada untuk memenuhi sebuah use case. Collaboration Diagram memiliki sintaks berikut :

Class
Kelas di dalam collaboration diagram memiliki notasi seperti berikut :
Gambar 14 Notasi Kelas

Objek
Ada 2 jenis objek yang dimodelkan di collaboration diagram, yaitu : “objek biasa (instan dari sebuah kelas)” dan “objek dengan penamaan (nama dari objek) atau objek bernama”.
Gambar 15 Notasi Objek Biasa
Gambar 16 Notasi Objek Bernama

Di dalam collaboration diagram kumpulan (stack) objek dimodelkan dengan notasi berikut :
Gambar 17 Notasi Kumpulan (Stack) Objek

Objek Communication
Untuk menggambarkan komunikasi antar 2 objek, dinotasikan sebagai berikut :
Gambar 18 Notasi Komunikasi Objek

Message Passing and Numbering
Antara 2 objek yang berkomunikasi, komunikasi tersebut terjadi dengan melakukan pertukaran pesan (message passing). Ada 3 jenis pesan yang dapat dikirimkan ketika 2 objek berkomunikasi, yaitu : pesan biasa, pesan dengan parameter, pesan dengan nilai kembalian.
Gambar 19 Notasi Pesan Biasa
Gambar 20 Notasi Pesan dengan Parameter
Gambar 21 Notasi Pesan dengan nilai kembalian

Angka yang berada di samping pesan yang dikirimkan menyatakan urutan pesan tersebut dieksekusi untuk memenuhi use case. Setiap penambahan pesan, nilai di samping pesan akan dinaikkan 1 (increment).

Looping
Untuk menggambarkan terjadinya loop, dipergunakan notasi berikut :
Gambar 22 Notasi Looping (Perulangan)

Tanda asterisk (“*”) pada pesan (message) menandakan bahwa pesan tersebut diulang.

Creating new object
Untuk membuat objek baru, dipergunakan notasi berikut :
Gambar 23 Notasi Create Objek

Meskipun notasi ini memiliki sedikit keanehan, pesan dikirimkan kepada objek yang bahkan belum ada (belum di-create).

Berikut adalah contoh dari sebuah collaboration diagram :
Gambar 24 Contoh Collaboration Diagram

Darimanakah objek – objek yang dipergunakan di dalam collaboration diagram di atas berasal?

Beberapa objek di atas adalah objek baru yang belum pernah dilihat, akan tetapi kebanyakan objek yang berada di dalam collaboration diagram adalah objek yang berasal dari conceptual model yang telah dibuat pada tahap elaboration.

Terkadang pada saat membuat collaboration diagram akan disadari bahwa ada association yang belum ditemukan (dibuat) pada tahap pembuatan conceptual model. Hal ini terkadang dapat mengganggu kebutuhan (requirement) dari pelanggan. Jika hal ini terjadi, tanyakan pada pelanggan terlebih dahulu.

Dengan membuat collaboration diagram, code yang akan diimplementasikan menjadi sistem tidak terpetakan dengan baik. Ada beberapa masalah yang belum terselesaikan melalui collaboration diagram, yaitu :
  • Input dan output (interface) antara user dengan sistem belum terdefinisi
  • Basis data dan jaringan belum terdefinisi disini
  • Keputusan yang dibuat mengenai sebuah kelas belum terdefinisi dengan jelas.

Di dalam membuat collaboration diagram ada 4 hal yang harus dicatat :
  • Buat diagram sesederhana mungkin. Jika sebuah diagram menjadi sangat kompleks, cobalah untuk membuat diagram terpisah untuk setiap interaksi dengan user.
  • Jangan berusaha untuk menjelaskan setiap scenario yang mungkin ada. Alternative
  • flow adalah sesuatu yang jarang terjadi, tidak perlu disertakan di dalam diagram.
  • Jangan membuat kelas dengan nama controller, handler, manager, atau driver. Hal ini membuat desain menjadi tidak berorientasi objek melainkan berorientasi aksi (action oriented).
  • Hindari kelas dewa. Kelas dewa adalah sebuah kelas yang mengerjakan berbagai hal dan tidak banyak berkolaborasi dengan objek lain. Sebuah solusi OO yang baik adalah kelas – kelas kecil yang saling bekerja sama untuk mencapai tujuannya.

Sequence Diagram

Sequence Diagram memberikan informasi yang sama dengan Collaboration Diagram. Pembuatan Sequence Diagram pada tahapan ini sama dengan sequence diagram pada tahapan analisis yang dipergunakan saat menjelaskan aliran proses use case. Perbedaannya adalah pada bagian ini, sistem diperluas dengan objek – objek yang sama seperti pada collaboration diagram. (NB : Hanya berbeda susunan – bukan urutan, ditambah dengan penambahan timeline untuk mempermudah pembacaan diagram).

Class Diagram

Class Diagram yang dipergunakan disini memiliki notasi yang sama dengan conceptual model pada tahapan elaboration. Perbedaan class diagram pada tahapan ini dengan conceptual model (class diagram pada tahapan elaboration) adalah pada conceptual model tidak ada deskripsi kelakuan (fungsi dan prosedur) di dalamnya, semuanya hanya berpusat pada masalah pelanggan.

Conceptual Model yang telah dibuat sebelumnya akan dikembangkan lebih lanjut pada tahapan ini untuk menjadi design class diagram yang sebenarnya. Dengan kata lain, sebuah diagram dimana dapat di-kode-kan.

Pembuatan class diagram didasarkan pada conceptual model dan collaboration diagram. Perubahan ini cukup terstruktur dan mekanis, perubahan ini harusnya tidak terlalu susah. langkah – langkah pembuatannya adalah sebagai berikut :
  • Penambahan operasi (kelakuan)
  • Penambahan navigasi
  • pesan (navigability)
  • Perbaikan atribut
  • Pemutusan Visibilitas
  • Pembuatan agregasi

      NB : Jika agregasi sudah ditemukan pada tahapan conceptual model, boleh ditambahkan.
  • Pembuatan komposisi

       NB : Jika komposisi sudah ditemukan pada tahapan conceptual model, boleh ditambahkan.

NB : praktisi berpedapat bahwa agregasi dan komposisi bukanlah suatu hal yang baik. Relasi ini bersifat redundan (berulang – ulang) dan harus dihilangkan. Meskipun begitu, agregasi tetaplah sebuah konsep OO. Ia tetap legal untuk dipergunakan. Agregasi dan komposisi dapat
dimodelkan sebagai sebuah asosiasi dengan nama “is composed from“.

State Diagram

State Diagram berfungsi untuk memodelkan keadaan – keadaan yang mungkin dimiliki oleh sebuah objek. Model ini memungkinkan untuk menangkap kejadian – kejadian (event) yang penting dan efeknya setelah kejadian (event) tersebut.

Sintaks dari diagram ini adalah sebagai berikut :

Start state
Start State ini menggambarkan keadaan objek di awal pembuatannya.
Gambar 25 Notasi Start

End state
End State ini menggambarkan keadaan objek dihancurkan.
Gambar 26 Notasi End

State Describer
State describer dipergunakan untuk menuliskan keadaan dari objek.
Gambar 27 State Describer    

State Transition
Sebuah event dapat menyebabkan sebuah objek berubah state atau tetap pada state-nya. Perubahan (transition) dari sebuah state ke state lainnya diakibatkan oleh sebuah event digambarkan oleh state transition. Event yang menyebabkan perubahan tersebut dituliskan di atas garis panah. State yang dihasilkan digambarkan di kotak event describer.
Gambar 28 State Transition

Sub/Superstate (Nesting States)

Terkadang diperlukan penggambaran state di dalam sebuah state. Sebuah state yang lebih umum dipergunakan untuk menggambarkan komponen – komponen state yang lebih kecil. State yang lebih umum disebut superstate. State yang lebih khusus (bagian dari superstate) disebut substate.
Gambar 29 Nesting State

Terkadang sebuah superstate dapat mengalami interupsi. Adalah memungkinkan untuk menggambarkan keadaan dimana saat sebuah superstate melanjutkan state-nya akan dimulai dari saat state terakhir sebelum diinterupsi. Superstate yang seperti itu disebut history state. Notasinya adalah huruf “H” di dalam lingkaran.
Gambar 30 History State

Entry/Exit Event
Di dalam sebuah state dapat ditambahkan keterangan mengenai keadaan awal dan akhir dari state. Keadaan awal (disebut entry) menggambarkan keadaan yang diperlukan ketika sebuah state berubah (bertransisi) menjadi state yang memiliki keterangan entry. Keadaan akhir (disebut exit) menggambarkan keadaan yang dimiliki oleh state ketika state berakhir.
Gambar 31 Entry/Exit Event

Untuk menggambarkan keadaan dimana sebuah state harus mengirimkan pesan ke objek lain, dipergunakan notasi seperti berikut :

^object.method (parameters)
Gambar 32 Entry berparameter

Guard
Untuk menggambarkan bahwa sebuah kondisi harus dipenuhi supaya terjadi state transition (bukan supaya state transition berhasil seperti pada entry event).
Gambar 33 Guard

Contoh dari state diagram :
Gambar 34 Contoh State Diagram

Bagian ini dipergunakan pada tahapan construction (desain) untuk dapat melakukan sebuah perancangan yang BAIK.

Konsep OO

Pattern

Sebuah pattern adalah sebuah solusi yang dipergunakan dengan baik dan sangat umum untuk masalah – masalah yang cukup sering terjadi. Ada banyak pattern yang dapat dikenal oleh seorang perancang. Pattern yang akan dibahas pada bagian ini disebut GRASP (General Responsibility Assignment Software Patterns). GRASP membantu untuk menentukan kelakuan dari setiap kelas dengan cara yang paling elegan yang dimungkinkan. Pola (Pattern) tersebut dinamakan : Expert, Creator, High Cohersion, Low Coupling, dan Controller. Penggunaan dari kelima pola GRASP akan membuat perancangan OO menjadi lebih dapat dimengerti, mudah diubah, dan kokoh (robust).

Expert

Ini adalah sebuah pola yang sangat sederhana namun juga seringkali dilanggar. Pola ini harus yang paling utama ada di dalam pikiran seorang perancang saat membangun diagram kolaborasi atau merancang
class diagram.

Pola ini membantu alokasi kelakuan (behavior) ke dalam kelas. Alokasi yang baik dari sebuah kelakuan memiliki nilai :
  • Mudah dimengerti
  • Dapat di-extend secara mudah
  • Dapat dipergunakan kembali (reusable)
  • Lebih kokoh (robust)
  • Pola ini memiliki aturan : “Hanya kelas yang expert terhadap suatu behavior saja baru boleh memiliki behavior tersebut.”

Creator

Pola ini adalah penggunaan spesifik dari Expert Pattern. Pola ini menjawab pertanyaan : “Kelas manakah yang harus bertanggung jawab untuk pembuatan instans dari suatu kelas tertentu.”.

Kelas A harus bertanggung jawab untuk pembuatan kelas B, jika :
  • A mengandung objek B
  • A menggunakan objek B secara dekat
  • A memiliki inisialisasi data yang akan digunakan oleh B

High Cohesion

Sebuah perancangan OO yang baik memiliki tanda setiap kelas hanya memiliki sejumlah kecil method. Merupakan hal yang sangat penting untuk memastikan bahwa setiap kelas memiliki tanggung jawab yang terfokus.

Aturan utama dari pembangunan sebuah kelas adalah “setiap kelas harus memiliki hanya satu kunci abstraksi (menggambarkan sebuah “benda” dari dunia nyata)

Low Coupling

Coupling adalah sebuah ukuran untuk menentukan seberapa tergantungnya sebuah kelas terhadap kelas lain. Coupling yang tinggi dapat menyebabkan code yang sulit diubah atau dirawat – sebuah perubahan kecil dapat menyebabkan ombak perubahan terhadap sistem.

Untuk mengurangi coupling salah satu cara terbaik adalah dengan mengikuti model conceptual. Pesan yang dikirimkan hanya jika ada asosiasi yang telah didefinisikan pada tahapan conceptual modeling.

Aturan utama disini adalah : “Jaga coupling seminimum mungkin – conceptual model adalah sumber yang sempurna sebagai ukuran mengenai jumlah coupling minimum. Menaikkan level dari coupling bukanlah sebuah masalah jika telah dipikirkan dengan baik konsekuensinya!“

The Law of Demeter

Hukum ini, dikenal juga sebagai : “Don’t Talk to Strangers“, adalah sebuah metode yang efektif untuk memerangi coupling. Hukum ini menyatakan bahwa setiap objek hanya boleh memanggil method yang dimiliki oleh :
  • Dirinya sendiri
  • Parameter yang dikirimkan kepada method
  • Setiap objek yang dibentuk
  • Setiap yang memegang objek secara langsung.

Beberapa hal yang harus dipertimbangkan mengenai coupling :
  • Jangan pernah membuat atribut dari kelas bersifat public. SEbuah atribut public membuka kesempatan penyalahgunaan sebuah kelas (pengecualian hanya diberikan kepada constants dari kelas).
  • Berikan get dan set hanya pada saat diperlukan.
  • Berikan antarmuka public yang paling minimum.
  • Jangan biarkan data “mengalir” di dalam sistem (minimalisasi pemindahan data).
  • Jangan hanya mempertimbangkan coupling – Ingat mengenai High cohesion dan expert! Sebuah kelas yang tidak memiliki coupling sama sekali akan memiliki kelas yang mengambang dan memiliki terlalu banyak pekerjaan. Biasanya berakhir dengan sistem yang memiliki sedikit “objek aktif” yang tidak berkomunikasi.

Controller

Secara umum penambahan informasi mengenai GUI (Graphical User Interface), basis data, atau objek fisik lainnya ke dalam kelas merupakan sebuah perancangan yang buruk. Kelas – kelas dari conceptual model adalah “kelas bisnis” yang harus dibiarkan tetap murni (tanpa GUI, database, dll). Untuk menghubungkan kelas bisnis dan actor diperkenalkan sebuah kelas baru yang dinamakan controller. Nama dari controller memiliki konvensi sebagai berikut : Handler.

Inheritance

Seringkali di dalam perancangan, beberapa kelas memiliki karakteristik yang sama. Karakteristik yang sama ini dapat digabungkan ke dalam sebuah kelas (untuk mengurangi pengulangan/redundan kode). Kelas ini kemudian dapat di-”waris“-kan (inherit) ke kelas lain yang lebih khusus dan menambahkan atribut serta method kepada kelas yang lebih khusus tersebut.
Gambar 35 dua kelas dengan karakteristik mirip
Gambar 36 Penggunaan Inheritance

Proses pengelompokan karakteristik sebuah kelas yang sama dari beberapa kelas ke dalam sebuah kelas yang lebih umum disebut proses generalisasi.

Kelas yang lebih umum disebut base class (atau superclass). Kelas yang lebih khusus disebut derived class (atau subclass). Sebuah base class dapat diturunkan (inherit) ke base class lain yang lebih khusus.

Permasalahan yang seringkali muncul berhubungan dengan inheritance adalah penggunaan inheritance secara berlebihan. Hal ini dapat menimbulkan permasalahan pada perawatan. Hal ini disebabkan kelas turunan (derived class) memiliki coupling yang sangat erat terhadap kelas basis (base class). Perubahan pada kelas basis akan menyebabkan perubahan pada kelas turunan.

Penggunaan kelas turunan mewajibkan perancang untuk mengetahui kemampuan dari kelas basis. Hal ini berarti harus diadakan eksplorasi terhadap hierarki kelas yang besar. Masalah ini dikenal juga dengan nama proliferation of classes. Hal ini disebabkan karena inheritance dipergunakan ketika ia tidak seharusnya dipergunakan.

Aturan utama di dalam penggunaan inheritance adalah : “Gunakan inheritance hanya sebagai alat (mekanisme) generalisasi – tidak selalu harus menggunakan inheritance“.

Dalam melakukan inheritance ada 2 aturan yang harus diikuti, yaitu : aturan “is – a – kind” dan aturan “100 %“.

Aturan 100 %

Aturan ini berisi : “Semua definisi yang dimiliki oleh kelas basis harus diaplikasikan secara penuh oleh kelas turunan“.

Pengabaian terhadap aturan ini dapat menyebabkan masalah terhadap perawatan.

Substitutability

Sebuah method tidak dapat dihapus di dalam hierarki inheritance.

Aturan is – a – kind

Aturan ini berfungsi untuk melakukan pengujian apakah hierarki inheritance yang dimiliki valid. Aturan ini mengatakan bahwa sebuah frase dengan format : “ is a ” harus masuk akal.

Aggregation vs Inheritance

Jika sebuah kelas sepertinya dapat diturunkan dari sebuah kelas lain (base class) tetapi tidak memenuhi aturan 100% dan aturan is-a-kind maka cobalah mempertimbangkan agregasi untuk menggantikan inheritance yang hendak dilakukan.

Permasalahan dengan Inheritance

Meskipun inheritance terlihat seperti sebuah alat yang powerful untuk memaksimalkan konsep reuse, Ia harus dipergunakan dengan hati – hati. Inheritance dapat menyebabkan hierarki kelas yang kompleks dan sulit dimengerti (profileration of classes). Karenanya pergunakanlah inheritance dengan hati – hati dan yakinkan aturan 100% dan is-a-kind diterapkan dengan baik.

Sebagai tambahan, Inheritance adalah white-box-reuse. Enkapsulasi antara kelas basis dan kelas turunan cukup lemah – secara umum, perubahan terhadap kelas basis dapat menyebabkan perubahan kelas turunan manapun. Hal ini menyebabkan pengguna kelas harus mengetahui hubungan antara parent class (superclass, kelas basis) dengan kelas yang sedang dikerjakan (child class, subclass, kelas turunan).

Protected Visibility

Atribut dalam setiap kelas memiliki karakteristik visibility. Secara default, visibility dari sebuah atribut pada kelas adalah private. Hal ini berarti apapun (kelas manapun) selain dari kelas yang memiliki atribut tersebut tidak dapat melihat nilai dari atribut tersebut. Visibility dengan nilai public artinya apapun (kelas manapun) dapat melihat nilai dari atribut tersebut. OO menyediakan suatu Visibility atribut dengan nilai protected, yang artinya kelas turunan dari kelas tersebut dapat melihat nilai dari atribut-nya tetapi kelas lain tidak.

Penggambaran protected visibility digambarkan dengan tanda pagar (“#”) di samping atribut yang bersifat protected.
Gambar 37 Protected Visibility

Polymorphism

Kelas turunan dapat mendefinisikan kembali implementasi dari method. Hal ini biasanya disebabkan karena dua buah kelas turunan yang memiliki method turunan dari sebuah kelas basis melakukan implementasi yang berbeda terhadap method tersebut.
Gambar 38 Polymorphism

The “principle of substitutability“ berhubungan erat dengan polymorphism. Prinsip ini mengatakan bahwa jika method yang ada diharapkan dapat “bekerja” pada sebuah kelas tertentu, ia dapat bekerja dengan baik pada kelas turunannya yang manapun.

Prinsip ini tidak mengijinkan kelas turunan untuk menghapus method dari superclass-nya. Hal ini supaya tidak terjadi kesalahan akibat keteledoran di dalam penggunaan kelas.

Contoh kasus :
Method accelerate di atas bekerja dengan menggunakan parameter dengan tipe “Transport”, dan melakukan percepatan dengan menggunakan method move().

Method ini dapat dipanggil dengan aman dan memberikan sebuah objek “Car” kepadanya (karena “Car” adalah subclass dari “Transport”) ataupun sebuah objek “Boat”.

Jika suatu saat nanti, ada sebuah kelas turunan baru dari “Transport” dengan nama “Aeroplane”, kelas “Aeroplane” ini dapat diterima dengan baik tanpa modifikasi terhadap method Accelerate!

Oleh karena alasan inilah sebuah kelas turunan tidak dapat menghapus method dari superclass-nya. Jika diijinkan, mungkin saja kelas turunan “Aeroplane” dapat menghapus method move() dan semua kelebihan yang didapat diatas menjadi hilang.

Abstract Classes

Seringkali di dalam perancangan, diperlukan untuk meninggalkan sebuah method tanpa di-implementasikan dan membiarkan implementasi dilakukan oleh kelas yang berada di bagian bawah pohon hierarki inheritance.

Notasi penulisan method dengan sifat seperti itu dilakukan dengan memiringkan (italic) nama dari method dan kelas. Kelas yang memiliki method seperti itu disebut abstract class. Notasi lain yang dipergunakan untuk menggambarkan abstract class adalah dengan menambahkan “<>” di bawah nama kelas. Notasi ini diperkenalkan karena seringkali huruf miring (italic) sulit untuk dikenali pada sebuah diagram kelas. Pemberian atribut tambahan “<>” disebut stereotyping (“<>” adalah stereotype).
Gambar 39 Abstract Class
Gambar 40 Abstract Class (Stereotype)

System Architechture

Ada beberapa masalah yang dihadapi oleh pengembang perangkat lunak ketika menghadapi pengembangan sistem yang bersifat besar dan lebih kompleks. Untuk menjawab permasalahan itu, UML memberikan beberapa tools yang dapat berguna di dalam pengembangan.

Package Diagram

Semua artefak UML dapat disusun ke dalam “UML Packages”. Package secara mendasar adalah sebuah kontainer logika untuk elemen – elemen yang saling berhubungan. Sebuah package dapat berisi package lain sehingga pada akhirnya akan membentuk hierarki.

Di dalam UML, dapat juga digambarkan sekumpulan packages dimana ada hubungan beberapa package tersebut. 
Gambar 41 Relasi antar package

Contoh di atas adalah model klasik dari “three tier model” di dalam pengembangan perangkat lunak. Benda yang berada di dalam package “Presentation” bergantung pada benda yang berada di dalam package “Business”.

Meskipun semua artefak UML dapat ditaruh di dalam package, penggunaan package yang paling umum adalah untuk menaruh sekelompok kelas yang saling berhubungan. Penamaan kelas dari setiap package harus unik. Namun penamaan kelas dari package yang berbeda tidak bermasalah meskipun memiliki nama kelas yang sama.

Keuntungan dari melakukan packaging adalah :
  • Pengelompokan sistem yang besar ke dalam subsistem yang lebih mudah dikelola.
  • Memungkinkan iterative pengembangan secara parallel.

Keuntungan lain dari packaging adalah jika desain dari sebuah package dilakukan dengan baik dan package tersebut memiliki antarmuka yang jelas untuk digunakan antar package, konsep code reuse dapat dimaksimalkan. Class reuse (penggunaan ulang kelas) adalah sesuatu yang sulit untuk dilakukan dikarenakan kelas memiliki jangkauan yang sempit dan sulit untuk digunakan kembali (dengan kata lain abstraksi kelas rendah). Berbeda dengan package, dengan perancangan yang baik sebuah package dapat menjadi solid dan menjadi sebuah komponen perangkat lunak yang dapat digunakan kembali (memiliki abstraksi yang tinggi).

Ada 3 hal heuristik dari GRASP yang dapat diaplikasikan kepada packaging :
  • Expert : package manakah sebuah kelas harus ditaruh?
  • High Cohesion : sebuah package tidak boleh melakukan terlalu banyak hal
  • Loose Coupling : ketergantungan antar package harus seminimal mungkin.

Package Communication
Komunikasi antara 2 package dapat dilakukan sesuai dengan pola façade (façade pattern). Pola ini memberikan sebuah kelas diantara 2 buah package yang hendak berkomunikasi, sehingga kedua package yang akan berkomunikasi harus melalui kelas ini (yang disebut kelas façade).
Gambar 42 Komunikasi tanpa kelas facade
Gambar 43 Komunikasi dengan kelas facade

Architechture – Centric Development

Proses pembangunan perangkat lunak RUP (Rational Unified Process) menyarankan konsep pengembangan dengan arsitektur terpusat. Dengan kata lain, sistem dirancang sebagai kumpulan dari subsistem mulai dari tahapan yang sangat awal dari pengembangan.

Dengan membuat sekumpulan kecil subsistem yang mudah dikelola, sebuah tim pengembang yang terdiri dari 3 – 4 orang dapat dialokasikan terhadap setiap subsistem. Subsistem tersebut dapat dikerjakan parallel tanpa bergantung satu sama lain.

Tim architecture akan melakukan pengelolaan terhadap antarmuka (façade) di antara subsistem. Meskipun pada saat pengembangan proyek nanti diperlukan perubahan pada façade, yang akan melakukan modifikasi adalah tim architectural bukan tim pengembang yang bekerja pada subsistem individual.

Dikarenakan tim architecture mengelola pandangan “tingkat tinggi” dari sistem, mereka harus memahami akibat dari modifikasi antar interface yang dimiliki oleh subsistem.

Menangani Use Case Besar

Salah satu permasalahan yang muncul dari pengembangan dengan skala besar adalah use case yang pertama sekali dibuat biasanya terlampau besar untuk dikembangkan dalam satu kali iterasi. Solusi yang diberikan bukanlah membuat masa iterasi lebih panjang, melainkan memecah use case menjadi sekumpulan versi yang lebih kecil dan mudah di-kelola.

Untuk setiap iterasi, tim terpisah dapat mengerjakan subsistem terpisah secara paralel. Pada akhir dari iterasi, tahapan integrasi akan dilakukan, dan pengujian terhadap antarmuka subsistem akan dilakukan.

Kesimpulan :

Rational Corp memberikan sebuah pendekatan terbaik untuk pendekatan secara arsitektur terpusat (architecture centric approach), yaitu :
  • Definisikan subsistem dari tahap awal
  • Jaga kompleksitas supaya tetap dapat diatur
  • Iterasi secara parallel tetapi jangan hack interface
  • Tunjuk sebuah tim arsitektural
  • Fase Pengkodean

Salah satu masalah kunci dari perancangan dan koding adalah untuk menjaga model tetap konsisten dengan kode. Untuk melakukan hal ini, salah satu pendekatan yang dapat dilakukan adalah dengan menambahkan sebuah tahapan tambahan pada iterasi, yaitu tahapan sinkronisasi. Tahapan ini berfungsi untuk melakukan sinkronisasi artefak. Disini model diubah untuk menggambarkan keputusan perancangan yang telah dibuat saat melakukan koding di iterasi sebelumnya.
Gambar 44 Tahapan perancangan

Pemetaan perancangan ke kode

[Class Diagram] Class to Code

Definisi kelas yang dikodekan akan diturunkan dari kelas diagram perancangan. Definisi method akan berasal dari collaboration diagram, bantuan lainnya berasal dari use case description (detil tambahan, khususnya pada exception/alternate flows)dan state chart (menangkap kondisi error).

Pemetaan 1 : Class Model à Class
Gambar 45 Class Model
Gambar 46 Class Code

Langkah Pemetaan :
  • Tambahkan constructor untuk setiap kelas yang dibuat
  • Petakan atribut dan method yang ada di dalam class diagram 

Pemetaan 2 : Contain Relationship
Gambar 47 Contain Relationship
Gambar 48 Code

Pemetaan 3 : Pendefinisian Method
Gambar 49 Method (Message Passing)
Gambar 50 Code Method
Gambar 51 Code Method

[Package] Package to Code

Java

Java memiliki dukungan langsung terhadap package. Baris pertama dari deklarasi kelas pada java harus mengatakan pada Java di package manakah kelas tersebut berada. (Jika tidak ada, Java akan menganggap kelas berada pada package “default“).

Java juga memiliki fitur package protection. Kelas (bersama dengan method dan atributnya) hanya dapat dilihat oleh kelas yang berada pada package yang sama. Ini memberikan dukungan yang sempurna untuk enkapsulasi di dalam package. Dengan membuat semua kelas hanya dapat dilihat oleh kelas di dalam satu package (kecuali kelas façade), subsistem (atau package) dapat dikembangkan secara bebas (independent). Meskipun sintaks yang dimiliki java untuk fitur ini tidak terlalu baik, yaitu hanya melakukan deklarasi kelas tanpa kata kunci public, protected, atau private di depan kata kunci kelas.

C++

C++ tidak memiliki dukungan langsung terhadap package, tetapi C++ memiliki konsep yang disebut sebagai namespace. Ini memungkinkan kelas untuk ditaruh pada partisi logika terpisah, untuk menghindari tubrukan nama kelas di antara namespaces.

Meski ia memberikan beberapa dukungan dari packages, sayangnya ia tidak memberikan perlindungan dari visibilities. Kelas yang berasal dari sebuah namespaces dapat mengakses seluruh kelas publik yang terdapat
di namespaces lain.

Component Model

UML menyediakan sebuah notasi yang dapat dipergunakan untuk memodelkan komponen perangkat lunak yang bersifat fisik dan keras (bukan kode, cth : file). Notasi ini menggunakan notasi yang sama dengan package diagram. Ia memodelkan ketergantungan antara entitas fisik perangkat lunak seperti : executeable file, dynamic link library, object file, source file, dll).
Gambar 52 Notasi UML untuk Component Model

Tahapan Transition

Setelah melewati tahapan construction, maka berakhirlah tugas UML. Setelah mencapai tahapan ini, sebuah sistem yang berjalan sesuai dengan spesifikasi telah didapatkan. Tahap transition berkaitan dengan prosedur – prosedur yang diperlukan untuk melakukan deliverable dari sistem yang telah dihasilkan.

Sumber : http://fandimin.blogspot.com/2011/12/komponen-uml-unified-modeling-language.html#ixzz1lC8XMrzD
 
;