Friday, December 7, 2007

Memilih Pasangan dengan Analytic Hierarchy Process

Bingung memilih pasangan? bingung karena pilihan calon pasangan yang ada memiliki kelebihan dan kekurangan jika dibandingkan satu sama lain? ... Ya iya laaah..
Mari kita coba memutuskan dengan menggunakan metode pendekatan Analytic Hierarchy Process (AHP).
Tambah bingung..?? tenang aja.. :)

AHP diperkenalkan oleh Thomas L Saaty dalam bukunya "The Analytic Hierarchy Process" (1990) adalah salah satu dari beberapa model pendakatan Multi-Attribute Decision Modelling (MADM). Diantara beberapa model MADM yang ada, AHP yang paling pertama yang bisa saya pahami, berarti menurut saya ini yang paling mudah.
Tambah bingung lagi?? ..Ya sudah, yang ini tidak usah dipikir..

Kita mulai..., tapi mulai dari mana..?

Menurut Herbert Simon dalam buku "The New Science of Management Decision" (1977), untuk pengambilan keputusan kita perlu melakukan tiga langkah, intelligent, modelling, dan choice (wah kita sudah melibatkan dua pakar nih..).
Jadi langkah pertama kita adalah intelligent.

Tahap intelligent adalah mengumpulkan data yang kita butuhkan serta menyusun kriteria pemilihan.
Sebaiknya dalam kasus ini kita tentukan kriteria dulu, supaya kita tau data apa yang harus kita cari atau kita ukur. OK?

Untuk memilih pasangan, kita ingin pasangan kita cantik, cerdas, dan baik hati, Setuju..?
Kalau setuju, berarti kita sudah dapat kriterianya, mudah bukan..?
Kalau punya kriteria yang lain, silahkan ditambahkan sendiri.

Eit.., ada kriteria yang paling penting, harus se-iman.., kriteria yang ini tidak usah dipakaikan rumus atau metode pendekatan, langsung saja pilih calon-calon dari yang se-iman (memeluk agama yang sama). Don't forget this..!

Satelah ditetapkan, tentukan skala dari masing-masing kriteria, misalnya begini

Cerdas dua kali lebih penting dari pada cantik
Cantik tiga kali lebih penting dari pada baik hati
Cerdas empat kali lebih penting dari pada baik hati

Masing-masing orang bisa beda-beda, silahkan tentukan sendiri, menurut Saaty, skala nilainya 1-9

Selanjutnya, masih dalam tahap intelligent, kita perlu melakukan fit-and-proper test untuk mengukur kapasitas calon-calon pasangan yang ada (kita sebut saja Fitri, Tari, dan Wati) atas kriteria-kriteria yang kita sudah tetapkan. Hasilnya, misalkan seperti ini:

Fitri lebih cerdas dibandingkan Tari dan Wati. Tari dua kali lebih cerdas dari Wati, bisa jadi Fitri tiga kali lebih cerdas dari Wati, dan Fitri dua kali lebih cerdas dari Tari
Wati dua kali lebih cantik dari Fitri, dan Tiga kali lebih cantik dari Tari. Fitri dua kali lebih cantik Tari
Fitri dua kali lebih baik hati dari pada Tari dan Wati, Wati dan Tari sama baik-hatinya, Nah lho..

Silahkan diukur seperti itu.., tetap mengikuti contoh dari Saaty, beri skala 1-9

(nama adalah fiktif, jika ada kesamaan semata-mata hanya suatu kebetulan)

Sekarang kita melangkah ke tahap modelling (pemodelan). Kita sudah memilih model pendekatannya adalah AHP.

PERTAMA, kita menghitung bobot dari dari setiap kriteria berdasarkan skala yang sudah kita tentukan, susun dalam matrix seperti ini




sudah bisa melihat hubungannya dengan skala kriteria yang kita tentukan di atas?
kalau sudah, baru kita lanjutkan..

Lalu, konversi bilangan pecahan menjadi nilai desimal, sebaiknya ketelitian paling tidak sampai empat angka di belakang koma


KEDUA, untuk menghasilkan/mendapatkan bobot dari masing-masing kriteria, Saaty mengatakan bahwa kita harus menggunakan pendekatan eigenvector, atau kita harus menghitung eigenvector dari matrix di atas. Saya tidak tahu apa persisnya eigenvector itu (tanyakan pada ahli matematika).

Dari web di http://www.boku.ac.at/mi, saya membaca presentasi menarik dari Dr. Rainer Haas dan Dr. Oliver Meixner yang berjudul "An Illustrated Guide to the Analytic Hierarchy Process", yang didalamnya ada cara yang (relatif) gampang menghitung eigenvector:

step 1:
kwadratkan matrix (kalikan dengan dirinya sendiri, tau kan..?!)

eit.., sudah tau cara mengalikan matrix kan..??!
kalau tau, pasti dapat hasil kayak gini step 2:
jumlahkan setiap baris ke samping, kemudian jumlahkan lagi hasil penjumlahannya

step 3:
lalu, kata Haas dan Meixner, di normalisasi, tapi sederhananya saya bisa bilang hitung prosentase:

tau kan cara hitungnya..? ( contoh: baris satu 12.7500 dibagi dengan 39.9165 menghasilkan 0.3194)
jumlah semuanya harus sama dengan 1
Nah.., hasil akhir ini adalah matrix kolom yang disebut eigenvector itu

0.3194
0.5595
0.1211

Tapi.. kata Haas dan Meixner lagi, proses atau step 1 sampai step 3 harus di iterasi (diulangi) sampai eigenvector tidak berubah dari perhitungan eigenvector sebelumnya (makanya kita pakai 4 angka dibelakang koma, supaya kalau tidak ada selisih atau selisih sangat kecil dalam empat angka di belakang koma, kita sudah bisa bilang eigenvector-nya sudah oke)

let's start again..

step 1:
matrix hasil kwadrat di kwadratkan lagi

hasilnya:

step 2:
jumlahkan tiap baris

step3:
normalisasi


dan.., kita dapatkan eigenvector yang baru

0.3196
0.5584
0.1220

lanjut..

step 4:
bandingkan, hitung selisih eigenvector yang baru dengan eigenvector sebelumnya

selisih sampai empat tempat desimal sudah cukup kecil..? atau mau di ulang sekali lagi ?
siapa tahu sudah bisa jadi nol ...

E ehh..!, jangan mabok dulu..., ayo kuatkan hati.. katanya mau pilih pasangan..

Oke, untuk contoh, kita anggap cukup dulu, dan kita ambil eigenvector yang terakhir,
dan dari eigenvector ini, maknanya adalah bobot untuk masing-masing kriteria

(sst.. ternyata kita sedang mencari gadis yang cerdas, cantiknya nomor dua..)

OK.., next.., let's put the girls into criteria..

Artinya.., setiap gadis kita bandingkan satu dengan yang lainnya dalam masing-masing kriteria..
Untungnya, kita sudah tau caranya.. EIGENVECTOR AGAIN...!!! :)

Dari hasil fit-and-proper test, kita sudah punya nilai untuk masing-masing gadis..,
supaya tidak usah scroll jauh ke atas, saya ulangi di sini

Tari dua kali lebih cerdas dari Wati, bisa jadi Fitri tiga kali lebih cerdas dari Wati, dan Fitri dua kali lebih cerdas dari Tari
Wati dua kali lebih cantik dari Fitri, dan Tiga kali lebih cantik dari Tari. Fitri dua kali lebih cantik Tari
Fitri dua kali lebih baik hati dari pada Tari dan Wati, Wati dan Tari sama baik-hatinya

sekarang susunlah dalam matrix

matrix cantik:

atau


matrix cerdas:

atau

matrix baik hati:

atau


Masih kuat friend..??? silahkan hitung eigenvector dari masing-masing matrix.
Saya dapatnya begini:


Nah.. hirarki lengkap dari proses analisa kita (judulnya kan AHP) adalah:

catatan:
Jika untuk mengukur cantik, cerdas, baik hati, diperlukan kriteria lagi atau sub-kriteria (ditentukan saat fase intelligent), maka setiap sub-kriteria dianalisa dengan cara yang sama. Karena itu maka cara ini disebut proses analisa hirarkis

Langkah terakhir adalah mamadukan nilai setiap calon dengan bobot setiap kriteria
lakukan dengan perkalian matrix

Dan hasilnya adalah

Jadi, menurut Thomas L. Saaty, Rainer Haas, dan Oliver Meixner, serta didukung dangan penentuan kriteria dan hasil fit-and-proper test kita, maka disarankan untuk memilih Fitri sebagai best choice

Tapi .., fase ketiga menurut Simon adalah fase choice, dan itu berada ditangan anda
Semua proses di atas hanyalah sebuah Decision Support System (Sistem Penunjang Pengambilan Keputusan)


Anda sudah memilih..?, bagaimana hasilnya..?

Apa..?????! Tiga-tiganya nolak...?
Maaf, saya cuma bisa bantu sampai di sini

Monday, December 3, 2007

SOAP

Simple Object Access Protocol (SOAP) adalah protokol komunikasi yang sering digunakan dalam Web Services, yang menjembatani pertukaran data antara sejumlah aplikasi web yang dibangun dengan sistem dan platform yang berbeda.

Untuk dapat menjembatani berbagai platform, SOAP menggunakan XML yang merupakan bahasa markup multiplatform untuk merepresentasikan data kedalam bentuk yang dapat diterima dan dikenali oleh banyak sistem. XML sendiri merupakan satu bentuk representasi data berbasis text yang dapat didistribusikan lintas platform.

SOAP memuat spesifikasi yang mendefinisikan format-format XML dari data yang dikomunikasikan antar platform yang akan saling bertukar data/informasi, disamping itu SOAP juga memungkinkan untuk pemanggilan remote procedure call (RPC) dan menerima nilai return dari hasil eksekusi RPC, yang kesemuanya dikomunikasikan antara client dan server dalam format XML.

Dalam penggunaan dan implementasi SOAP, tidak dibutuhkan protokol tambahan, cukup dengan memanfaatkan protokol HTTP dengan tambahan kapabilitas XML pada layer application (browser). Dengan demikian, aplikasi web maupun web services yang dikembangkan dengan menggunakan SOAP, dapat diimplementasikan dengan mudah tanpa harus melakukan banyak perubahan sistem, dan hanya tergantung pada kapabilitas browser.Pada RIA, peranan SOAP sangat penting mengingat user atau pengguna aplikasi dalam jaringan atau aplikasi internet bisa sangat beragam dan bekerja di atas platform yang sangat beragam pula, yang belum tentu sama dengan platform dimana server-side scripting dari aplikasi bekerja.

Rich Internet Application

Rich Internet Application (RIA) adalah aplikasi berbasis web (web application) yang menjalankan fungsionalitas dan fitur sebagaimana layaknya pada aplikasi-aplikasi berbasis desktop. RIA mencoba memadukan fleksibilitas dan portabilitas web application dengan kehandalan dan kemampuan eksekusi realtime dari dekstop application.
Sebagai aplikasi berbasis web, RIA berjalan dalam lingkungan client server/multitier, yang melibatkan sedikitnya 2 layer RIA mentransfer sebagian operasi/proses ke sisi client (client-side) dan sebagian proses yang lain tetap berada di server aplikasi.

Pada RIA, web browser menjadi media utama sebagai sarana presentasi dan user interface dari aplikasi. Saat user melakukan klik pada presentasi aplikasi web pada browser yang mewakili satu tindakan tertentu, maka web browser akan menterjemahkannya sebagai sebuah request yang dikirim ke server. Server kemudian akan memberikan respon sesuai dengan request yang dikirimkan. Respon yang dihasilkan bisa jadi hasil dari eksekusi script untuk proses tertentu.

Sebuah halaman web pada dasarnya merupakan hasil rakitan dari sejumlah komponen lepas, seperti image, script, CSS, applet , dan lain-lain, dan setiap penampilan satu komponen terlebih dahulu dilakukan request atas komponen tersebut kepada server. Artinya untuk menyajikan satu halaman web yang lengkap, web browser harus melakukan sejumlah request ke server dan dibalas oleh server dengan mengirimkan respon berupa komponen yang diminta oleh browser. Semakin kompleks tampilan satu halaman web, maka komunikasi antara web browser dengan web server juga menjadi semakin intens.

Pada web tradisional user harus menunggu sampai seluruh komponen selesai di download dan halaman web tampil secara lengkap, ini disebabkan karena komunikasi synchronous yang bergantung pada interaksi user, artinya proses request komponen web ke server bergantung pada aktifitas user, dan ada proses menunggu sampai respon server diterima secara lengkap. Lamanya waktu tunggu juga bergantung pada jumlah dan ukuran dari komponen yang didownload dari server. Di level ini, peranan cache sangat besar, dimana web browser tidak perlu melakukan request apabila komponen yang sama pernah yang di-request sebelumnya masih tersimpan di cache browser.

Pada perkembangan terakhir, komunikasi asynchronous sudah dapat diterapkan pada komunikasi web, dimana komponen-komponen yang nantinya akan dibutuhkan telah direquest lebih dulu oleh web browser di latar belakang, sehingga pada saat akan diperlukan komponen dapat langsung ditampilkan tanpa terasa adanya jeda utnuk menunggu proses download dari server

Dengan model komunikasi asynchronous, performance RIA meningkat secara signifikan, dan mendekati realtime sebagaimana layaknya sebuah aplikasi desktop. Asynchronous JavaScript And XML (AJAX) merupakan salah satu sarana yang memungkinkan implementasi komunikasi asynchronous pada web application

Multitier System

Multitier adalah sistem client-server dimana sejumlah aspek dari proses dalam sebuah aplikasi, seperti presentation atau user interface, logical bussines process, dan resources management (contoh: database), ditangani secara terpisah, dan dapat dijalankan pada sistem dan/atau platform yang berbeda.

Sebuah aplikasi web melibatkan sedikitnya dua hingga tiga tier (three-tier), web browser sebagai media presentasi dan interface user dianggap sebagai tier pertama, web server yang menjalankan sebagaian besar proses dari aplikasi sebagai tier kedua. Bila aplikasi melibatkan penanganan resources seperti database yang berhubungan dengan aplikasi, maka akan dianggap sebagai tier ketiga. Dalam sistem yang lebih kompleks, akan melibatkan lebih banyak tier

Keuntungan dari sistem multitier adalah fleksibilitas dalam implementasi dan pengembangan, karena setiap layer atau setiap tier dapat dikembangkan secara independen, dan dapat menerapkan banyak kemungkinan resources untuk implementasi tanpa harus bergantung pada platform atau vendor tertentu.

Kelemahan dari sistem multitier umumnya lebih kepada meningkatnya latency atau response time yang berakibat pada penurunan performance bila melibatkan banyak tier dalam infrastruktur jaringan yang kurang reliabel atau kurang memadai.