Monday, March 1, 2010

Facebook Chat & Yahoo Chat Dengan Digsby

Anda yang sering menggunakan fasilitas chatting pada Facebook tentu merasakan betapa repotnya chatting lewat browser, terlebih jika pada saat yang bersamaan Anda melakukan chatting dengan beberapa orang sekaligus. Ditambah lagi jika Anda juga melakukan chatting dengan menggunakan yahoo messenger.

Nah, untuk mengurangi “kerepotan” tersebut Anda bisa menggunakan salah satu software facebook chat terbaik yaitu Digsby. Digsby merupakan aplikasi yang “menggabungkan” instant messaging (IM) dan social network (SN) seperti Facebook Chat, Yahoo Messenger, MSN, ICQ, dll ke dalam satu aplikasi. Dengan demikian Anda bisa melakukan chatting dengan teman Anda baik mereka menggunakan akun Facebook, Yahoo maupun ICQ.

Salah satu fitur yang cukup menarik dari software ini adalah fasilitas tab — seperti tab yang terdapat pada Firefox. Jadi ketika Anda chatting, tampilan chat tidak dalam bentuk jendela sendiri-sendiri tapi dalam bentuk tab.

Untuk menggunakan software ini Anda harus melakukan registrasi terlebih dahulu (registrasinya gratis). Setelah itu Anda download dan install Digsby pada komputer Anda. Langkah berikutnya adalah menambahkan akun pada Digsby, bisa akun Facebook, Yahoo, MSN, atau ICQ.

Setelah akun ditambahkan ke Digsby, maka ketika Anda login ke Digsby secara otomatis Anda juga login ke akun yang telah dimasukkan ke Digsby tersebut.

Jika Anda tertarik dengan software Digsby, Anda dapat mendownlodnya di http://www.digsby.com/

Saturday, February 20, 2010

LANGKAH MENGGAMBARKAN MODEL BISNIS

Untuk mulai membuat model bisnis, kita membentuk tim proyek yang terdiri dari para Pimpinan, Representatif Bisnis, Spesialis BPR. Spesialis pemodelan bisnis (business modeler) dan user (management representative) untuk secara tim mulai melakukan identifikasi elemen-elemen model bisnis seperti bisnis Actor, bisnis Worker, bisnis Use Case, lalu menggambarkan model bisnisnya serta mendokumentasikannya. Langkah-langkah dalam menggambar model bisnis sebagai berikut :


1.Identifikasi Bisnis Actor

- Lihat ruang lingkup (scope) proyek apa sajakah yang terdapat di dalamnya.

- Lakukan brainstorming diantara anggota tim untuk memutuskan elemen-elemen dari model bisnis.

- Lakukan review visi, goal, material lain untuk mengetahui bisnis entiti.

Contoh dalam sebuah perusahaan penerbangan, materi untuk mempromosikan penerbangan terdiri dari customer dan employee. Disini kita dapat mengidentifikasikan ada dua bisnis Actor yaitu Customer dan Potensial Employee. Selanjutnya setelah mewawancarai petugas Hubungan Masyarakat (Humas), yang menyatakan bahwa perusahaan mempunyai pemilik, maka mungkin kita menambahkan bisnis Actor Shareholder. Selanjutnya kita juga mengetahui bahwa perusahaan penerbangan terikat dengan aturan-aturan Federasi Penerbangan (FAA), maka kita memunculkannya sebagai bisnis Actor, selain itu juga pembuat pesawat terbang, dimunculkan sebagai bisnis Actor.











2. Identifikasi Bisnis Worker

Untuk mengidentifkasi bisnis Worker , lihatlah sekali lagi ruang lingkup(scope) dari proyek. Apabila didalam organisasi itu telah terdapat gambar struktur organisasi, akan memudahkan untuk menemukan bisnis Worker itu. Tetatpi harus diingat, bahwa menentukan bisnis Worker bukan dari posisi –nya tetapi dari peran(role) dari bisnis Worker itu di dalam organisasi. Lalu buatlah daftar seluruh bisnis Worker yang ada di dalam perusahaan.

Contoh : Pada perusahaan penerbangan tadi, kita menemukan pilot, co-pilot, navigator, steward dan stewardesses, mechanics, ticket sales, luggage handler, security guard dan sebagainya.













3. Identifikasi Bisnis Use Case

Untuk mengidentifikasi bisnis Use Case, kita mulai dengan mempelajari visi dan misi perusahaan. Selanjutnya dirinci ke dalam kegiatan-kegiatan yang harus ada untuk mencapai misi tersebut. Untuk setiap kegiatan dapat ditanyakan aktifitas apa yang dilakukan . Penelitian dilakukan pada kegiatan utama(core workflow) maupun kegiatan lainnya yang ada di dalam perusahaan seperti Sales, Marketing, Accounting, dan area bisnis lainnya.








Contohnya :Perusahaan penerbangan tadi mempunyai misi mengantar para penumpang keseluruh kota di seluruh dunia. Sehingga pada waktu ditanyakan kegiatan apa yang dilakukan jika terdapat seorang penumpang ingin berangkat dari satu airport ke satu kota tujuan. Pertama, penumpang itu harus Membeli Tiket, selanjutnya melakukan Check-in di bagian bagasi, mengisi bahan bakar untuk pesawat, bagasi dan penumpang; meyakinkan bahwa keselamatan penumpang telah terjamin, menerbangkan pesawat, mendaratkan pesawat dan mengeluarkan isinya di bandara tujuan.

Pada kasus ini kita menemukan Use Case yang terdiri dari Issue Ticket, Check Passenger, Check Luggage, Perform Safety Check, Load Aircraft, Fliying Aircraft, Land Aircraft, Unload Aircraft, dan sebaginya.



4. Menggambarkan interaksi diantara elemen model bisnis

Tahap selanjutnya setelah bisnis Actor, bisnis Worker, bisnis Use Case ditemukan, adalah menggambarkan interaksi diantara mereka.

Pada gambar diatas, tanda panah dari bisnis Worker ke bisnis Use Case menyatakan bahwa bisnis Worker memberikan perintah (menginisiasi) kepada bisnis Use Case agar melakukan kegiatannya.








Sedangkan tanda panah dari bisnis Actor ke bisnis Use Case menyatakan bahwa Actor memerintahkan bisnis Use Case melakukan prosesnya.



SEQUENCE DIAGRAM

Sequence diagram menggambarkan interaksi antar objek di dalam dan di sekitar sistem (termasuk pengguna, display, dan sebagainya) berupa message yang digambarkan terhadap waktu. Sequence diagram terdiri atar dimensi vertikal (waktu) dan dimensi horizontal (objek-objek yang terkait).

Sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai respons dari sebuah event untuk menghasilkan output tertentu. Diawali dari apa yang men-trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan output apa yang dihasilkan.

Masing-masing objek, termasuk aktor, memiliki lifeline vertikal. Message digambarkan sebagai garis berpanah dari satu objek ke objek lainnya. Pada fase desain berikutnya, message akan dipetakan menjadi operasi/metoda dari class.

Activation bar menunjukkan lamanya eksekusi sebuah proses, biasanya diawali dengan diterimanya sebuah message.

Untuk objek-objek yang memiliki sifat khusus, standar UML mendefinisikan icon khusus untuk objek boundary, controller dan persistent entity.

Contoh sequence diagram :

CLASS DIAGRAM

Class adalah sebuah spesifikasi yang jika diinstansiasi akan menghasilkan sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi objek. Class menggambarkan keadaan (atribut/properti) suatu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metoda/fungsi).

Class diagram menggambarkan struktur dan deskripsi class, package dan objek beserta hubungan satu sama lain seperti containment, pewarisan, asosiasi, dan lain-lain.

Class memiliki tiga area pokok :
1. Nama (dan stereotype)
2. Atribut
3. Metoda

Atribut dan metoda dapat memiliki salah satu sifat berikut :
• Private, tidak dapat dipanggil dari luar class yang bersangkutan
• Protected, hanya dapat dipanggil oleh class yang bersangkutan dan anak-anak yang mewarisinya
• Public, dapat dipanggil oleh siapa saja








Class dapat merupakan implementasi dari sebuah interface, yaitu class abstrak yang hanya memiliki metoda. Interface tidak dapat langsung diinstansiasikan, tetapi harus diimplementasikan dahulu menjadi sebuah class. Dengan demikian interface mendukung resolusi metoda pada saat run-time.









Sesuai dengan perkembangan class model, class dapat dikelompokkan menjadi package. Kita juga dapat membuat diagram yang terdiri atas package.







Hubungan Antar Class

1. Asosiasi, yaitu hubungan statis antar class. Umumnya menggambarkan class yang memiliki atribut berupa class lain, atau class yang harus mengetahui eksistensi class lain. Panah navigability menunjukkan arah query antar class.

2. Agregasi, yaitu hubungan yang menyatakan bagian (“terdiri atas..”).

3. Pewarisan, yaitu hubungan hirarkis antar class. Class dapat diturunkan dari class lain dan mewarisi semua atribut dan metoda class asalnya dan menambahkan fungsionalitas baru, sehingga ia disebut anak dari class yang diwarisinya. Kebalikan dari pewarisan adalah generalisasi.

4. Hubungan dinamis, yaitu rangkaian pesan (message) yang di-passing dari satu class kepada class lain. Hubungan dinamis dapat digambarkan dengan menggunakan sequence diagram yang akan dijelaskan kemudian.


Contoh Class Diagram :






ACTIVITY DIAGRAM

Activity diagrams menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir. Activity diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi.


Activity diagram merupakan state diagram khusus, di mana sebagian besar state adalah action dan sebagian besar transisi di-trigger oleh selesainya state sebelumnya (internal processing). Oleh karena itu activity diagram tidak menggambarkan behaviour internal sebuah sistem (dan interaksi antar subsistem) secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari level atas secara umum.


Sebuah 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.


Sama seperti state, standar UML menggunakan segiempat dengan sudut membulat untuk menggambarkan aktivitas. Decision digunakan untuk menggambarkan behaviour pada kondisi tertentu. Untuk mengilustrasikan proses-proses paralel (fork dan join) digunakan titik sinkronisasi yang dapat berupa titik, garis horizontal atau vertikal.


Activity diagram dapat dibagi menjadi beberapa object swimlane untuk menggambarkan objek mana yang bertanggung jawab untuk aktivitas tertentu.


Contoh activity diagram tanpa swimlane:

USE CASE DIAGRAM

Use case diagram menggambarkan fungsionalitas yang diharapkan dari sebuah sistem. Yang ditekankan adalah “apa” yang diperbuat sistem, dan bukan “bagaimana”. Sebuah use case merepresentasikan sebuah interaksi antara aktor dengan sistem. Use case merupakan sebuah pekerjaan tertentu, misalnya login ke sistem, meng-create sebuah daftar belanja, dan sebagainya. Seorang/sebuah aktor adalah sebuah entitas manusia atau mesin yang berinteraksi dengan sistem untuk melakukan pekerjaan-pekerjaan tertentu.

Use case diagram dapat sangat membantu bila kita sedang menyusun requirement sebuah sistem, mengkomunikasikan rancangan dengan klien, dan merancang test case untuk semua feature yang ada pada sistem.

Sebuah use case dapat meng-include fungsionalitas use case lain sebagai bagian dari proses dalam dirinya. Secara umum diasumsikan bahwa use case yang di-include akan dipanggil setiap kali use case yang meng-include dieksekusi secara normal.

Sebuah use case dapat di-include oleh lebih dari satu use case lain, sehingga duplikasi fungsionalitas dapat dihindari dengan cara menarik keluar fungsionalitas yang common.

Sebuah use case juga dapat meng-extend use case lain dengan behaviour-nya sendiri. Sementara hubungan generalisasi antar use case menunjukkan bahwa use case yang satu merupakan spesialisasi dari yang lain.

Contoh use caase diagram :

GOMS

  • Goal : goal apa yang ingin dicapai oleh user
  • Operator : level terendah analisa, tindakan dasar yang harus dilakukan user dalam menggunakan sistem
  • Methods : Ada beberapa cara yang dilakukan dimana memisahkan kedalam beberapa subgoals. Contoh : pada window manager, perintah CLOSE dapat dilakukan dengan menggunakan popup menu atau hotkey
  • Selection : Pilihan terhadap metode yang ada

Analisa GOMS umumnya terdiri dari single high-level goal, kemudian didekomposisi menjadi deretan unit task, selanjutnya dapat didekomposisi lagi sampai pada level operator dasar. Dimana dalam membuat dekomposisi tugas digunakan hierarchical task analysis.

Analisa struktur goal GOMS dapat digunakan untuk mengukur kinerja. Kedalaman tumpukan struktur goal dapat digunakan untuk mengestimasi kebutuhan memori jangka-pendek.


Cognitive Complexity Theory (CCT)

CCT (Kieras dan Polson) dimulai dengan premis dasar dekomposisi goal dari GOMS dan menyempurnakan model untuk menghasilkan kekuatan yang lebih terprediksi.

Deskripsi goal user berdasarkan hirarki goal mirip-GOMS, tetapi diekspresikan terutama menggunakan production rules yang merupakan urutan rules:

If kondisi then aksi

Dimana kondisi adalah pernyataan tentang isi dari memori kerja. Aksi dapat terdiri satu atau lebih aksi elementary.


Wednesday, February 17, 2010

UML (Unified Modelling Language)

Unified Modelling Language (UML) adalah sebuah "bahasa" yg telah menjadi standar dalam industri untuk visualisasi, merancang dan mendokumentasikan sistem piranti lunak. UML menawarkan sebuah standar untuk merancang model sebuah sistem.

Dengan menggunakan UML kita dapat membuat model untuk semua jenis aplikasi piranti lunak, dimana aplikasi tersebut dapat berjalan pada piranti keras, sistem operasi dan jaringan apapun, serta ditulis dalam bahasa pemrograman apapun. Tetapi karena UML juga menggunakan class dan operation dalam konsep dasarnya, maka ia lebih cocok untuk penulisan piranti lunak dalam bahasa-bahasa berorientasi objek seperti C++, Java, C# atau VB.NET. Walaupun demikian, UML tetap Dapat digunakan untuk modeling aplikasi prosedural dalam VB atau C.

Seperti bahasa-bahasa lainnya, UML mendefinisikan notasi dan syntax/semantik. Notasi UML merupakan sekumpulan bentuk khusus untuk menggambarkan berbagai diagram piranti lunak. Setiap bentuk memiliki makna tertentu, dan UML syntax mendefinisikan bagaimana bentuk-bentuk tersebut dapat dikombinasikan. Notasi UML terutama diturunkan dari 3 notasi yang telah ada ebelumnya: Grady Booch OOD (Object-Oriented Design), Jim Rumbaugh OMT (Object Modeling Technique), dan Ivar Jacobson OOSE (Object-Oriented Software Engineering).













Sejarah UML sendiri cukup panjang. Sampai era tahun 1990 seperti kita ketahui puluhan metodologi pemodelan berorientasi objek telah bermunculan di dunia. Diantaranya adalah: metodologi booch, metodologi coad, metodologi OOSE, metodologi OMT, metodologi shlaer-mellor, metodologi wirfs-brock, dsb. Masa itu terkenal dengan masa perang metodologi (method war) dalam pendesainan berorientasi objek. Masing-masing metodologi membawa notasi sendiri-sendiri, yang mengakibatkan timbul masalah baru apabila kita bekerjasama dengan group/perusahaan lain yang menggunakan metodologi yang berlainan.

Konsepsi Dasar UML
Dari berbagai penjelasan rumit yang terdapat di dokumen dan buku-buku UML, sebenarnya konsepsi dasar UML bisa kita rangkumkan dalam gambar dibawah.




















Abstraksi konsep dasar UML yang terdiri dari structural classification, dynamic behavior, dan model management, bisa kita pahami dengan mudah apabila kita melihat gambar diatas dari Diagrams. Main concepts bisa kita pandang sebagai term yang akan muncul pada saat kita membuat diagram. Dan view adalah kategori dari diagaram tersebut.

Pengembangan Sistem

Pengembangan sistem dapat berarti menyusun suatu sistem yang baru untuk menggantikan sistem yang lama secara keseluruhan atau memperbaiki sistem yang telah ada.


Perlunya Pengembangan Sistem :

  • Adanya permasalahan (problem) yang timbul pada sistem yang lama.

Permasalahan yang timbul dapat berupa :

- Ketidakberesan

- Pertumbuhan organisasi

  • Untuk meraih kesempatan (opportunities).

Teknologi informasi telah berkembang dengan cepatnya

  • Adanya instruksi-instruksi (directives).


Prinsip Pengembangan Sistem

  • Sistem yang dikembangkan adalah untuk manajemen.
  • Sistem yang dikembangkan adalah investasi modal yang besar.

Investasi modal harus mempertimbangkan 2 hal :

1. Semua alternatif yang ada harus diinvestigasi

2. Investasi yang terbaik harus bernilai

  • Sistem yang dikembangkan memerlukan orang yang terdidik.

  • Proses pengembangan sistem tidak harus urut.

  • Jangan takut membatalkan proyek.

  • Dokumentasi harus ada untuk pedoman dalam pengembangan sistem.


Tahapan Pengembangan Sistem

Tahapan utama siklus hidup Pengembangan Sistem terdiri dari :

1. Perencanaan Sistem (Systems Planning)

2. Analisis Sistem (System Analysis)

3. Perancangan Sistem (Systems Design) Secara Umum

4. Seleksi Sistem (System Selection)

5. Perancangan Sistem (Systems Design) Secara Umum

6. Implementasi dan Pemeliharaan Sistem (System Implementation & Maintenance).


Model Pengembangan Sistem Intruksional

Pengembangan sistem intruksional ialah proses menciptakan situasi dan kondisi tertentu yang memungkinkan siswa berinteraksi sehingga terjadi perubahan perilaku pengembangan, sistem ini memerlukan pemantauan interaksi siswa. Pengembangan senantiasa didasarkan pada pengalaman. Pengamatan yang seksama dan percobaan yang terkendali. Ada dua proses pengembangan, pertama ialah pendekatan secara empiris yang menggunakan dasar-dasar teori, bahan pengajaran disusun berdasarkan pengalaman pengembang. Pendekatan kedua ialah dengan pendekatan model. Dalam penyusunan rancangan pengajaran ada langkah-langkah secara sistem : cara mencapainya dipilihkan cara-cara tertentu, kondisi tertentu, dan perubahan tertentu. Hasil uji coba memberi informasi tertentu yang dapat dijadikan bahan penilaian perihal tingkat kesulitan suatu program. Model ialah seperangkat prosedur yang berurutan untuk mewujudkan suatu proses melaksanakan pengembangan sistem pengajaran seperti penentuan suatu kebutuhan. Ada beberapa model pengembangan intruksional :


  1. Model Bella Banathy

Model ini ada 6 langkah :

  • Merumuskan tujuan
  • Mengembangkan test
  • Menganalisis kegiatan belajar
  • Mendesain sistem intruksioanal
  • Melaksanakan kegiatan dan mengetes hasil
  • Mengadakan perbaikan.


  1. Model Kemp

Langkah-langkahnya :

  • Penentuan Tujuan Intruksional Umum (TIU)
  • Menganalisis karakteristik siswa
  • Menentukan Tujuan Intruksioanal Khusus (TIK)
  • Menentukan materi pelajaran yang sesuai dengan TIK yang ditetapkan
  • Mengadakan penjajakan awal
  • Menentukan starategi belajar yang relevan : efisiensi, keefektifan, ekonomis, kepraktisan
  • Mengkoordinasikan sarana penunjang yang dibutuhkan : biaya, fasilitas, peralatan, waktu dan tenaga
  • Mengadakan evaluasi.


  1. Model IDI (Intruksional Development Institute)

Langkah-langkahnya :

  • Pembatasan. Ada 3 hal yang perlu dipertimbangkan : karakteristik siswa, kondisi, sumber-sumber yang relevan.
  • Pengembangan. Tujuan yang hendak dicapai, TIK merupakan penjabaran yang lebih rinci dibandingkan dengan TIU. Ini karena TIK : Dapat memehami secara jelas, building block dari pengajaran yang diberikan, sebagai penanda tingkah laku yang harus diperhatikan.
  • Penilaian.


Monday, January 18, 2010

Model Pengembangan Sistem

  1. Waterfall Development Model

Model ini adalah model klasik yang bersifat sistematis, berurutan dalam membangun software. Berikut ini ada dua gambaran dari waterfall model. Sekalipun keduanya menggunakan nama-nama fase yang berbeda, namun sama dalam intinya.

Fase-fase dalam Waterfall Model menurut referensi Pressman:






Fase-fase dalam Waterfall Model menurut referensi Sommerville :







a. Requirements analysis and definition

Mengumpulkan kebutuhan secara lengkap kemudian kemudian dianalisis dan didefinisikan kebutuhan yang harus dipenuhi oleh program yang akan dibangun. Fase ini harus dikerjakan secara lengkap untuk bisa menghasilkan desain yang lengkap.

b. System and software design

Desain dikerjakan setelah kebutuhan selesai dikumpulkan secara lengkap.
c. Implementation and unit testing
Desain program diterjemahkan ke dalam kode-kode dengan menggunakan bahasa pemrograman yang sudah ditentukan. Program yang dibangun langsung diuji baik secara unit.

d.Integration and system testing

Penyatuan unit-unit program kemudian diuji secara keseluruhan (system testing).

e.Operation and maintenance

Mengoperasikan program dilingkungannya dan melakukan pemeliharaan, seperti penyesuaian atau perubahan karena adaptasi dengan situasi sebenarnya.


Kekurangan yang utama dari model ini adalah kesulitan dalam mengakomodasi perubahan setelah proses dijalani. Fase sebelumnya harus lengkap dan selesai sebelum mengerjakan fase berikutnya.

Masalah dengan waterfall :

- Perubahan sulit dilakukan karena sifatnya yang kaku.

- Karena sifat kakunya, model ini cocok ketika kebutuhan dikumpulkan secara lengkap sehingga perubahan bisa ditekan sekecil mungkin. Tapi pada kenyataannya jarang sekali konsumen/pengguna yang bisa memberikan kebutuhan secara lengkap, perubahan kebutuhan adalah sesuatu yang wajar terjadi.

- Waterfall pada umumnya digunakan untuk rekayasa sistem yang besar dimana proyek dikerjakan di beberapa tempat berbeda, dan dibagi menjadi beberapa bagian sub-proyek.


  1. Spiral Development Model








Proses digambarkan sebagai spiral. Setiap loop mewakili satu fase dari software process. Loop paling dalam berfokus pada kelayakan dari sistem, loop selanjutnya tentang definisi dari kebutuhan, loop berikutnya berkaitan dengan desain sistem dan seterusnya. Setiap Loop dibagi menjadi beberapa sektor :


  1. Objective settings (menentukan tujuan)

Menentukan tujuan dari fase yang ditentukan. Batasan-batasan pada proses dan produk sudah diketahui. Perencanaan sudah disiapkan. Resiko dari proyek sudah diketahui. Alternatif strategi sudah disiapkan berdasarkan resiko-resiko yang diketahui, dan sudah direncanakan.


  1. Risk assessment and reduction (Penanganan dan pengurangan resiko)

Setiap resiko dianalisis secara detil pada sektor ini. Langkahlangkah penanganan dilakukan, misalnya membuat prototype untuk mengetahui ketidakcocokan kebutuhan.


  1. Development and Validation (Pembangunan dan pengujian):

Setelah evaluasi resiko, maka model pengembangan sistem dipilih. Misalnya jika resiko user interface dominan, maka membuat prototype User Interface. Jika bagian keamanan yang bermasalah, maka menggunakan model formal dengan perhitungan matematis, dan jika masalahnya adalah integrasi sistem model waterfall lebih cocok.


  1. Planning

Proyek dievaluasi atau ditinjau-ulang dan diputuskan untuk terus ke fase loop selanjutnya atau tidak. Jika melanjutkan ke fase berikutnya rencana untuk loop selanjutnya.


Pembagian sektor tidak bisa saja dikembangkan seperti pada pembagian sektor berikut pada model variasi spiral di bawah ini:









  1. Customer communication

Membangun komunikasi yang baik dengan pengguna/customer.

  1. Planning

Mendefinisikan sesumber, batas waktu, informasi-informasi lain seputar proyek

  1. Risk analysis

Identifikasi resiko managemen dan teknis

  1. Engineering

Pembangunan contoh-contoh aplikasi, misalnya prototype

  1. Construction and release

Pembangunan, test, install dan support.

  1. Customer evaluation

Mendapatkan feedback dari pengguna beradasarkan evaluasi PL pada fase engineering dan fase instalasi.


Pada model spiral, resiko sangat dipertimbangkan. Resiko adalah sesuatu yang mungkin mengakibatkan kesalahan. Model spiral merupakan pendekatan yang realistik untuk PL berskala besar. Pengguna dan pembangun bisa memahami dengan baik software yang dibangun karena setiap kemajuan yang dicapai selama proses dapat diamati dengan baik. Namun demikian, waktu yang cukup panjang mungkin bukan pilihan bagi pengguna, karena waktu yang lama sama dengan biaya yang lebih besar.


  1. Incremental Development Model












    1. Kombinasikan element-element dari waterfall dengan sifat iterasi/perulangan.

    2. Element-element dalam waterfall dikerjakan dengan hasil berupa produk dengan spesifikasi tertentu, kemudian proses dimulai dari fase pertama hingga akhir dan menghasilkan produk dengan spesifikasi yang lebih lengkap dari yang sebelumnya. Demikian seterusnya hingga semua spesifikasi memenuhi kebutuhan yang ditetapkan oleh pengguna.

    3. Produk hasil increment pertama biasanya produk inti (core product), yaitu produk yang memenuhi kebutuhan dasar. Produk tersebut digunakan oleh pengguna atau menjalani review/pengecekan detil. Hasil review tersebut menjadi bekal untuk pembangunan pada increment berikutnya. Hal ini terus dikerjakan sampai produk yang komplit dihasilkan.

    4. Model ini cocok jika jumlah anggota tim pengembang/pembangun PL tidak cukup.

    5. Mampu mengakomodasi perubahan secara fleksibel.

    6. Produk yang dihasilkan pada increment pertama bukanlah prototype, tapi produk yang sudah bisa berfungsi dengan spesifikasi dasar.


Masalah dengan Incremental model:

    1. cocok untuk proyek berukuran kecil (tidak lebih dari 200.000 baris coding)

    2. mungkin terjadi kesulitan untuk memetakan kebutuhan pengguna ke dalam rencana spesifikasi masing-masing hasil increment



  1. Evolutionary Development Model

  • Pengembangan yang berdasarkan penyidikan

Tujuannya untuk mengaktifkan pengguna dan memperolah model final berasal dari initial spesifikasi awal. Seharusnya diawali dengan kebutuhan yang sudah dimengerti.

  • Throw-away prototyping

Tujuannya adalah untuk memahami kebutuhan sistem. Biasanya diawali dengan pemahaman kebutuhan yang minim.







Permasalahan dalam model pengembangan yang berevolusi:

  1. Kekurangan visibilitas proses

  2. Model sistem biasanya tidak terstruktur

  3. Membutuhkan kemampuan khusus (mis.: bahasa pemrograman untuk rapid prototyping).


Pemakaian model pengembangan yang berevolusi:

  1. Untuk sistem interaktif yang kecil atau menengah

  2. Untuk salah satu bagian dari sistem yang besar (mis. User Interface)

  3. Untuk sistem yang digunakan tidak terlalu lama (short lifetime).




Tuesday, January 5, 2010

Perintah-Perintah Linux

&
Perintah & digunakan untuk menjalan perintah di belakang (background). Contoh :
wget http:/ / id. wikibooks.org &
Perintah & dipakai dibelakang perintah lain untuk menjalankannya di background. Apa itu jalan di background? Jalan dibackground maksudnya adalah kita membiarkan sistem untuk menjalankan perintah sendiri tanpa partisipasi kita dan membebaskan shell / command prompt agar bisa dipergunakan menjalankan perintah yang lain. Silahkan lihat juga perintah bg dan fg.

adduser
Perintah adduser digunakan untuk menambahkan user. Biasanya hanya dilakukan oleh root untuk menambahkan user atau account yang baru. Setelah perintah ini bisa dilanjutkan dengan perintah passwd, yaitu perintah untuk membuat password bagi user tersebut. Contoh :
# adduser Turyanto
# passwd anakkampung
Perhatikan bahwa semua perintah yang membutuhkan akses root, di sini saya tulis dengan dengan menggunakan tanda #, untuk memudahkan Anda membedakannya dengan perintah yang tidak perlu akses root. Jika Anda menjalankan perintah adduser, Anda akan diminta memasukkan password untuk user yang Anda buat. Isikan password untuk user baru tersebut dua kali dengan kata yang sama.

alias
Digunakan untuk memberi nama lain dari sebuah perintah. Alias digunakan untuk memudahkan agar tidak harus mengetikkan perintah yang panjang, tapi cukup aliasnya saja. Misalnya bila Anda ingin perintah ls dapat juga dijalankan dengan mengetikkan perintah dir, maka buatlah aliasnya sbb :
$ alias dir=ls
Kalau Anda suka dengan tampilan berwarna-warni, cobalah bereksperimen dengan perintah berikut :
$ alias dir="ls -ar --color:always"
Untuk melihat perintah-perintah apa saja yang mempunyai nama lain saat itu, cukup ketikkan alias saja (tanpa argumen). Lihat juga perintah unalias.

bg
Untuk memaksa sebuah proses yang dihentikan sementara(suspend) agar berjalan di background. Misalnya Anda sedang menjalankan sebuah perintah di foreground (tanpa diakhiri perintah &) dan suatu saat Anda membutuhkan shell tersebut maka Anda dapat memberhentikan sementara perintah tersebut dengan Ctrl-Z kemudian ketikan perintah bg untuk menjalakannya di background. Dengan cara ini Anda telah membebaskan shell tapi tetap mempertahankan perintah lama berjalan di background. Lihat juga perintah fg.

cat
Menampilkan isi dari sebuah file di layar. Contoh :
$ cat /nama/suatu/file

cd
Change Directory atau untuk berpindah direktori dan saya kira Anda tidak akan menemui kesulitan menggunakan perintah ini karena cara penggunaanya mirip dengan perintah cd di DOS.

chgrp
Perintah ini digunakan untuk merubah kepemilikan kelompok file atau direktori. Misalnya untuk memberi ijin pada kelompok atau grup agar dapat mengakses suatu file. Sintaks penulisannya adalah sbb:
# chgrp

chmod
Digunakan untuk menambah dan mengurangi ijin pemakai untuk mengakses file atau direktori. Anda dapat menggunakan sistem numeric coding atau sistem letter coding. Ada tiga jenis permission / perijinan yang dapat dirubah yaitu:
r untuk read,
w untuk write dan
x untuk execute.
Dengan menggunakan letter coding, Anda dapat merubah permission diatas untuk masing-masing u (user), g (group), o (other) dan a (all) dengan hanya memberi tanda plus (+) untuk menambah ijin dan tanda minus (-) untuk mencabut ijin. Misalnya untuk memberikan ijin baca dan eksekusi file coba1 kepada owner dan group, perintahnya adalah:
$ chmod ug+rx coba1
Untuk mencabut ijin-ijin tersebut :
$ chmod ug-rx coba1
Dengan menggunakan sitem numeric coding, permission untuk user, group dan other ditentukan dengan menggunakan kombinasi angka-angka, 4, 2 dan 1 dimana 4 (read), 2 (write) dan 1 (execute). Misalnya untuk memberikan ijin baca(4), tulis(2) dan eksekusi(1) file coba2 kepada owner, perintahnya adalah :
$ chmod 700 coba2
Contoh lain, untuk memberi ijin baca(4) dan tulis(2) file coba3 kepada user, baca(4) saja kepada group dan other, perintahnya adalah :
$ chmod 644 coba3
Perhatian : Jika Anda hosting di server berbasis Linux, perintah ini sangat penting sekali bagi keamanan data Anda. Saya sarankan semua direktori yang tidak perlu Anda tulis di chmod 100 (jika Apache jalan sebagai current user (Anda)) atau di chmod 501 jika Apache jalan sebagai www-data atau nobody (user lain).

chown
Merubah user ID (owner) sebuah file atau direktori
$ chown

cp
Untuk menyalin file atau copy. Misalnya untuk menyalin file1 menjadi file2 :
$ cp

fg
Mengembalikan suatu proses yang dihentikan sementar (suspend) agar berjalan kembali di foreground. Lihat juga perintah bg diatas.

find
Untuk menemukan dimana letak sebuah file. Perintah ini akan mencari file sesuai dengan kriteria yang Anda tentukan. Sintaksnya adalah perintah itu sendiri diikuti dengan nama direktori awal pencarian, kemudian nama file (bisa menggunakan wildcard, metacharacters) dan terakhir menentukan bagaimana hasil pencarian itu akan ditampilkan. Misalnya akan dicari semua file yang berakhiran .doc di current direktori serta tampilkan hasilnya di layar :
$ find . -name *.doc -print
Contoh hasil :
. /public/docs/account.doc
. /public/docs/balance.doc
. /public/docs/statistik/prospek.doc
./public/docs/statistik/presconf.doc

grep
Global regular expresion parse atau grep adalah perintah untuk mencari file-file yang mengandung teks dengan kriteria yang telah Anda tentukan. Format perintah :
$ grep
Misalnya akan dicari file-file yang mengandung teks marginal di current direktori :
$ grep marginal
diferent.doc: Catatan : perkataan marginal luas dipergunakan di dalam ilmu ekonomi prob.rtf: oleh fungsi hasil marginal dan fungsi biaya marginal jika fungsi prob.rtf: jika biaya marginal dan hasil marginal diketahui maka biaya total.

gzip
Ini adalah software kompresi zip versi GNU, fungsinya untuk mengkompresi sebuah file. Sintaksnya sangat sederhana :
$ gzip
Walaupun demikian Anda bisa memberikan parameter tertentu bila memerlukan kompresi file yang lebih baik, silakan melihat manual page-nya. Lihat juga file tar, unzip dan zip.

halt
Perintah ini hanya bisa dijalankan oleh super user atau Anda harus login sebagai root. Perintah ini untuk memberitahu kernel supaya mematikan sistem atau shutdown.

hostname
Untuk menampilkan host atau domain name sistem dan bisa pula digunakan untuk mengeset nama host sistem. Contoh pemakaian :
[user@localhost mydirectoryname] $ hostname
localhost.localdomain

kill
Perintah ini akan mengirimkan sinyal ke sebuah proses yang kita tentukan. Tujuannya adalah menghentikan proses. Format penulisan :
$ kill
PID adalah nomor proses yang akan di hentikan. Tidak tahu PID proses mana yang mau dibunuh? Cobalah bereksperimen dengan perintah :
ps aux | grep

less
Fungsinya seperti perintah more.

login
Untuk masuk ke sistem dengan memasukkan login ID atau dapat juga digunakan untuk berpindah dari user satu ke user lainnya.

logout
Untuk keluar dari sistem.

ls
Menampilkan isi dari sebuah direktori seperti perintah dir di DOS. Anda dapat menggunakan beberapa option yang disediakan untuk mengatur tampilannya di layar. Bila Anda menjalankan perintah ini tanpa option maka akan ditampilkan seluruh file nonhidden (file tanpa awalan tanda titik) secara alfabet dan secara melebar mengisi kolom layar. Option -la artinya menampilkan seluruh file / all termasuk file hidden (file dengan awalan tanda titik) dengan format panjang.

man
Untuk menampilkan manual page atau teks yang menjelaskan secara detail bagaimana cara penggunaan sebuah perintah. Perintah ini berguna sekali bila sewaktu-waktu Anda lupa atau tidak mengetahui fungsi dan cara menggunakan sebuah perintah.
$ man
Untuk keluar dari halaman manual, tekan tombol "q".


mesg
Perintah ini digunakan oleh user untuk memberikan ijin user lain menampilkan pesan dilayar terminal. Misalnya mesg Anda dalam posisi y maka user lain bisa menampilkan pesan di layar Anda dengan write atau talk.
$ mesg y atau mesg n
Gunakan mesg n bila Anda tidak ingin diganggu dengan tampilan pesan-pesan dari user lain.

mkdir
Membuat direktori baru, sama dengan perintah md di DOS. Contoh :
mkdir kemudian enter
$mkdir mahasiswa

more
Mempaging halaman, seperti halnya less

mount
Perintah ini akan me-mount filesystem ke suatu direktori atau mount-point yang telah ditentukan. Hanya superuser yang bisa menjalankan perintah ini. Untuk melihat filesystem apa saja beserta mount-pointnya saat itu, ketikkan perintah mount. Perintah ini dapat Anda pelajari di bab mengenai filesystem. Lihat juga perintah umount.
$ mount
/dev/hda3 on / type ext2 (rw)
none on /proc type proc (rw)
/dev/hda1 on /dos type vfat (rw)
/dev/hda4 on /usr type ext2 (rw)
none on /dev/pts type devpts (rw,mode=0622)

mv
Untuk memindahkan file dari satu lokasi ke lokasi yang lain. Bila argumen yang kedua berupa sebuah direktori maka mv akan memindahkan file ke direktori tersebut. Bila kedua argumen berupa file maka nama file pertama akan menimpa file kedua. Akan terjadi kesalahan bila Anda memasukkan lebih dari dua argumen kecuali argumen terakhir berupa sebuah direktori.

passwd
Digunakan untuk mengganti password. Anda akan selalu diminta mengisikan password lama dan selanjutnya akan diminta mengisikan password baru sebanyak dua kali. Password sedikitnya terdiri dari enam karakter dan sedikitnya mengandung sebuah karakter.

pwd
Print working directory, atau untuk menampilkan nama direktori dimana Anda saat itu sedang berada.

rm
Untuk menghapus file dan secara default rm tidak menghapus direktori. Gunakan secara hati-hati perintah ini terutama dengan option -r yang secara rekursif dapat mengapus seluruh file.
Sekali lagi : Hati-hati dengan perintah ini!

rmdir
Untuk menghapus direktori kosong.

shutdown
Perintah ini untuk mematikan sistem, seperti perintah halt. Pada beberapa sistem anda bisa menghentikan komputer dengan perintah shutdown -h now dan merestart sistem dengan perintah shutdown -r now atau dengan kombinasi tombol Ctr-Alt-Del.

su
Untuk login sementara sebagai user lain. Bila user ID tidak disertakan maka komputer menganggap Anda ingin login sementara sebagai super user atau root. Bila Anda bukan root dan user lain itu memiliki password maka Anda harus memasukkan passwordnya dengan benar. Tapi bila Anda adalah root maka Anda dapat login sebagai user lain tanpa perlu mengetahui password user tersebut.

tail
Menampilkan 10 baris terakhir dari suatu file. Default baris yang ditampilkan adalah 10 tapi Anda bisa menentukan sendiri berapa baris yang ingin ditampilkan :
$ tail

talk
Untuk mengadakan percakapan melalui terminal. Input dari terminal Anda akan disalin di terminal user lain, begitu sebaliknya.

tar
Menyimpan dan mengekstrak file dari media seperti tape drive atau hard disk. File arsip tersebut sering disebut sebagai file tar. Sintaknya sebagai berikut :
$ tar
Contoh:
$ tar -czvf namaFile.tar.gz /nama/direktori/*
Perintah di atas digunakan untuk memasukkan semua isi direktori, lalu dikompres dengan format tar lalu di zip dengan gzip, sehingga menghasilkan sebuah file bernama namaFile.tar.gz
$ tar -xzvf namaFile.tar.gz
Perintah di atas untuk mengekstrak file namaFile.tar.gz

umount
Adalah kebalikan dari perintah mount, yaitu untuk meng-unmount filesystem dari mount-pointnya. Setelah perintah ini dijalankan direktori yang menjadi mount-point tidak lagi bisa digunakan.
# umount

unalias
Kebalikan dari perintah alias, perintah ini akan membatalkan sebuah alias. Jadi untuk membatalkan alias dir seperti telah dicontohkan diatas, gunakan perintah :
$ unalias dir

unzip
Digunakan untuk mengekstrak atau menguraikan file yang dikompres dengan zip. Sintaknya sederhana dan akan mengekstrak file yang anda tentukan :
$ unzip
Lihat juga perintah-perintah gzip dan unzip.

wall
Mengirimkan pesan dan menampilkannya di terminal tiap user yang sedang login. Perintah ini berguna bagi superuser atau root untuk memberikan peringatan ke seluruh user, misalnya pemberitahuan bahwa server sesaat lagi akan dimatikan.
# wall Dear, everyone..... segera simpan pekerjaan kalian, server akan saya matikan 10 menit lagi.

who
Untuk menampilkan siapa saja yang sedang login. Perintah ini akan menampilkan informasi mengenai login name, jenis terminal, waktu login dan remote hostname untuk setiap user yang saat itu sedang login. Misalnya:
$ who
root ttyp0 May 22 11:44
flory ttyp2 May 22 11:59
pooh ttyp3 May 22 12:08

xhost +
Perintah ini digunakan untuk memberi akses atau menghapus akses (xhost -) host atau user ke sebuah server X.

xset
Perintah ini untuk mengeset beberapa option di X Window seperti bunyi bel, kecepatan mouse, font, parameter screen saver dan sebagainya. Misalnya bunyi bel dan kecepatan mouse dapat Anda set menggunakan perintah ini :
$ xset b
$ xset m

zip
Perintah ini akan membuat dan menambahkan file ke dalam file arsip zip. Lihat juga perintah gzip dan unzip.





Monday, January 4, 2010

Memahami Cara Kerja VB.NET

Untuk memahami pengembangan Visual Basic dalam lingkungan .Net, pertama-tama kita tentu saja harus memahami beberapa komponen dari lingkungan .Net dan bagaimana mereka berinteraksi.

Program Visual Basic .Net dicompile dan berjalan didalam kerangka kerja .Net. Mesin untuk mengeksekusi perintah-perintah yang dibuat oleh visual basic dikenal dengan nama common language runtime (CLR). CLR bertugas untuk meloading dan mengeksekusi perintah (kode) dan juga menangani masalah manajemen memori, keamanan, dan tipe-tipe data.

Pada level teratas dari semua ini adalah bahasa visual basic sendiri, atau bahasa-bahasa lain yang digunakan untuk membuat kode-kode perintah yang nantinya mengacu pada CLR. Kompiler VB mengambil kode-kode yang ditulis oleh programmer dan kemudian membuat intermediate language (IL) . Sebagai contoh, file-file DLL dan EXE mengandung IL yang dimengerti oleh CLR. Setiap kode yang dibuat untuk dijalankan dalam CLR dikenal sebagai managed code, karena kode tersebut berjalan dibawah kontrol dari CLR. Managed code adalah sebuah IL , karena setengahnya merupakan high level language (VB) dan setengahnya lagi adalah bahasa tingkat rendah (assembly / bahasa mesin).

Pada saat run-time, CLR mengkompile IL kedalam bentuk native code pada saat program berjalan dengan menggunakan kompiler Just-In-Time (JIT). Kompiler JIT membuat native code sesuai dengan spesifikasi CPU, jadi kita bisa membuat IL dari VB kemudian mengkompilenya untuk komputer dengan arsitektur yang berbeda. Ini kelihatan seolah-olah pemborosan karena mengkompile kode yang sangat banyak pada saat run time, padahal sebenarnya kompiler JIT tidak mengkonversi semua IL menjadi native code, namun hanya mengkonversi yang dibutuhkan / yang akan gunakan.

Keuntungan dari mengkompile dengan menggunakan JIT adalah ruang kerja dari aplikasi bisa dikurangi, karena penggunaan memori komputer untuk memproses intermediate code jauh lebih kecil. Didalam mengeksekusi aplikasi, hanya kode-kode yang dibutuhkan yang dikompile. Kode yang tidak digunakan, seperti kode untuk memprint jika si pengguna tidak memprint maka tidak akan dikompile oleh JIT, selanjutnya CLR bisa mengoptimasi eksekusi program on the fly pada saat run time. Sebagai contoh, dalam platform Windows, CLR mungkin mencari jalan untuk mengurangi page fault dalam memory manager dengan mengatur kembali kode yang sudah dikompile di memori, dan ini bisa dilakukan semua pada saat run time. Dikatan, ada waktu ketika hasil kompilasi JIT bisa meningkatkan performance komputer. Dalam kasus ini, kita bisa menggunakan native image generation (NGen) untuk mencompile IL di tempat program tersebut berjalan.

Dapat dilihat, bahwa teknologi CLR menggantikan file-file runtime VB dan juga mengeliminir penggunaan dari COM, DCOM, MTS, or COM+. Aplikasi VB sekarang berjalan dalam konteks CLR, jadi tidak dibutuhkan lagi kumpulan dll yang cukup merepotkan, tentu saja VB net masih bisa menggunakan COM components jika nanti dibutuhkan melalui fitur .NET.