Mendadak mbahas ‘AHP’

Sebenernya tulisan ini saya buat atas request dari Bos untuk ngisi Company Blog, cuman ternyata gak jadi kepakek :D
Ya daripada dah susah-susah nulis dan ngitung tapi gak ada yang baca, mending saya share di sini aja kan? Sapa tau bermanfaat :)

Versinya masih bahasa inggris, jadi translate sendiri yee… hehehe… ;)

——————————————————————-
ANALYTIC HIERARCHY PROCESS

Success is not miracle or destiny, but it will come with hardworks, efforts and willpower. But don’t forget it’s relies on making the right decision. Complex information may be available, but with no obvious interpretation. That’s why we needed the Decision Support System (DSS).

“You only have to do a very few things right in your life so long as you don’t do too many things wrong.”
–Warren Buffett

What is DSS? Decision Support Systems (DSS) are a specific class of computerized information system that supports business and organizational decision-making activities. A properly-designed DSS is an interactive software-based system intended to help decision makers compile useful information from raw data, documents, personal knowledge, and/or business models to identify and solve problems and make decisions.

But what is AHP? The Analytic Hierarchy Process (AHP) is a structured technique for helping people deal with complex decisions. Rather than prescribing a “correct” decision, the AHP helps people to determine one that suits their needs and wants. Based on mathematics and psychology, it was developed by Thomas L. Saaty in the 1970’s. The AHP provides a comprehensive and rational framework for structuring a problem, for representing and quantifying its elements, for relating those elements to overall goals, and for evaluating alternative solutions.

And Why AHP? Using AHP is easier and faster for making decision. It’s help us to tailor solutions to meet our exact needs, because it’s not about the technology but the right solutions for our needs and wants, it’s all about our feelings.

How to used it? We’ll try to use Analytic Hierarchy Process (AHP) for Pete’s problem below.

One day, Pete planned to open new branch office in Indonesia. But he still confused to open it at Jakarta, Surabaya, Medan or Denpasar. As a director, he knew that the important factors for new office are location of building, cost for maintenance, market area and long-term prospect. Smartly, Pete decided to use Analytic Hierarchy Process (AHP) for help him solved the problem.
The first step in the Analytic Hierarchy Process is to model the problem as a hierarchy. In doing this, participants explore the aspects of the problem at levels from general to detailed, then express it in the multileveled way that the AHP requires. As they work to build the hierarchy, they increase their understanding of the problem, of its context, and of each other’s thoughts and feelings about both. The Pete’s problem hierarchy could be diagrammed as shown below:

hierarchyAfter this, Pete must establish and defined the priorities of the criteria. The Criteria will be compared as to how important they are to the decision makers, with respect to the Goal. Each pair of items in this row will be compared. Pete does this by comparing each pair of objectives and ranking them on the following scale (pair wise comparison values) :

intensity
With using pair wise comparison values, Pete judging this value for the relative importance of one criterion over another  :

comparisonNow, the AHP is going to make some simple calculations to determine the overall weight that Pete is assigning to each objective. This weight will be between 0 and 1, and the total weights will add up to 1. We do that by taking each entry and dividing by the sum of the column it appears in. And it will become:

averageIt’s suggest that about 8% of the objective weight is on Location, 50% of amount of cost, 30% on market area and 13% on long-term prospect.

For a perfectly consistent decision maker, each column should be identical, except for the normalization. By dividing by the total in each column, therefore, we would expect identical columns, with each entry giving the relative weight of the row’s objective. By averaging across each row, we correct for any small inconsistencies in the decision making process.

Our next step is to evaluate all the relatives on each objective. For this step, we can redo the same things like on the criteria. For example let’s take the LOCATION.

Then do the same things for the other criteria (Cost, Market area, Long-term prospect).
For instance, let’s see the table :

all-averageBy recalling our overall weights and multiply it with relatives on each objectives, we can now get a value for each relative (city):

result

With the result,  Pete thinks his problem was solved and he will open a new branch office at Medan.

*taken from many resources (click picture to enlarge)

Popularity: 44% [?]

Special Request from Nophiena

Kemaren, saya dapet request dari Nophi perihal tutorial editing photo yang bukan lisan maupun chatingan hehe… Yawda sekalian nambahin postingan disini ajah!

Detail requestnya sih pingin ngedit foto dimana objek tertentu tetap berwarna dan yang lainnya menjadi black and white. Saya duluw bisanya juga diajarin via chat sama masboim si tutor online, thank’s aniway… :D
Yawda, mari kita mulai…

1. Pertama-tama, buka duluw file yang akan kita edit *ya iyalah bow*.
Lalu, lakukan seleksi untuk objek yang akan ditonjolkan.

2. Copy hasil seleksi sebagai layer baru, misalnya kita beri nama layer selection.
Coba hilangkan gambar mata (indikator layer visiblility) pada layer background seperti berikut ini :

Sehingga hanya akan terlihat layer selection sebagai berikut :

3. Pada layer background, pilih menu Image > Adjusment > Desaturate.

Apakah proses ini sudah selesai? Sabar… masih belum kawan :D
Read more

Popularity: 73% [?]

Edit text dalam file UNIX dengan command ’sed’

Hi there!
I’m back with new lesson, and again.. it’s about shell script :D
Jadi seperti biasa, karena tuntutan profesi saya terpaksa harus belajar dengan cepat cara-cara handle problem. Dan kali ini saya akan bahas sedikit tentang command sed.
Mari kita mulai…

Sed (stream editor) merupakan utility unix yang dapat digunakan untuk mengganti teks/string dengan teks/string lain dalam sebuah file.

Command ini usefull banget untuk melakukan perubahan dalam suatu file, karena dia kaya jenis fungsi dan jujur saja banyak yang belum saya pahami. Seperti biasa, saya gak akan bicara panjang lebar. Langsung saja saya berikan contoh penggunaan command ’sed’ (yang sudah saya praktekkan) disini.

For example, disini kita gunakan data sumber dari myfile.txt, yang isinya dapat kita liat di capturenya. Dari data ini, kita akan melakukan beberapa manipulasi text dengan command ’sed’

  • REPLACE SOME CHARACTER WITH OTHER CHARACTER
    Seumpama saja kita ingin mereplace karakter ‘abc’ menjadi ‘ABC’. Simply, kita cukup mengetikkan : sed ’s/abc/ABC/g/’ myfile.txt
    Dan hasilnya akan seperti ini :
  • DELETE BLANK LINES
    Dalam myfile.txt terdapat banyak baris kosong (white space or enter), dan saya ingin menghilangkannya. Simply, kita tinggal mengetikkan command berikut : sed ‘/^$/d’ myfile.txt
    Dan hasilnya akan seperti ini :
  • DELETE MULTIPLE LINES CONTAINING A VARIABLE STRING
    Di dalam myfile.txt ada sejumlah angka dalam beberapa barisnya, bagaimana cara kita membuang baris yang mengandung angka ‘1′ ?? Simply, kita tinggal mengetikkan command berikut : sed -e ‘/1/d’ myfile.txt
    Dan hasilnya akan seperti ini :

Dari tiga contoh sederhana di atas, dapat disimpulkan bahwa command ’sed’ menggunakan karakter slash (/) sebagai delimiter perintahnya. Bukan slash biasa, tapi dia memiliki banyak fungsi dan berperan besar terhadap kinerja command ’sed’.

Hmm… mungkin cukup sekian duluw untuk command ’sed’. Sebenernya masih banyak banget yang perlu dibahas, maybe next time deh… ntar malah kepanjangan postnya :P

Aniway, for the manual you can download here and here for more tutorial.
Semoga membantu ya… Ciao ;)

Popularity: 50% [?]

Flow Control using Case and Function

Saya kembali :)
Kali ini saya akan membahas tentang Shell Flow Control, dan secara spesifik saya pilih dengan menggunakan command case dan function.
OK then, mari kita mulai..

Sebenarnya, apa sih function itu?
Function adalah satu atau beberapa perintah (command) yang memiliki satu fungsi tujuan. Hmm… bingung ya? Intinya siy, function itu meringkas beberapa baris command dan menyimpannya dalam satu tempat dan sewaktu-waktu dapat dipanggil tanpa menuliskan keseluruhan scriptnya, tapi cukup memanggil nama function tsb.
Pola penulisan function adalah sbb :

function_name()
{
script listing;
}

Lalu, case itu apa?
Command Case memungkinkan kita untuk melakukan sejumlah tindakan yang berbeda terhadap sejumlah kemungkinan nilai.
Command Case hanya akan mengerjakan satu perintah yang dipilih dari daftar perintah yang disediakan.
Pola penulisan command case adalah sbb :

case variable_pilihan
pilihan1)command1;;


pilihann)commandn;;
esac

Setiap akhir dari command case selalu ditutup dengan esac (kebalikan case). Dan setiap akhir dari command dari setiap pilihan ditutup dengan ‘;;’ (dua titik koma)

Lalu, bagaimana menggabungkan antara command case dan function yang sudah kita buat?
Langsung saja kita coba contoh script berikut ini :

Dalam script tsb digunakan 4 buah function, yaitu: proc_tambah, proc_kurang, proc_kali dan proc_bagi. Dan dalam command case disediakan 6 buah pilihan perintah yang memiliki nilai berbeda, dan nilai pilihan kita simpan dalam variable $pil. Nilai bilangan pertama dan kedua merupakan nilai yang diinputkan sendiri kemudian disimpan/dibaca sebagai sebuah variabel.

Berikut hasil running script contoh jika kita memilih pilihan ‘all’ :

Jadi gimana? Mudah sekali bukan?
Sebenarnya penggunaan function akan lebih maksimal jika ia digunakan berkali-kali dalam suatu command pilihan. Kalo hanya satu baris dan satu kali pakai saja ya mending langsung dituliskan dalam command case.
Be wise untuk menentukan pilihanmu :)

Baiklah… cukup sekian untuk kali ini, dan sampai jumpa dalam tips/materi berikutnya.
Ciao… ;)

Popularity: 45% [?]

sedikit tentang ‘awk’

Sebagai seorang beginner di dunia per-’shell script’-an, command ‘awk’ merupakan salah satu PR buat saya untuk menguak rahasianya. Karena apa? ‘awk’ benar-benar mampu mempermudah pekerjaan saya :-D
OK, mari kita mulai saja..

Apa siy sebenarnya ‘awk’ itu? adalah sebuah utility filter untuk memanipulasi file teks. AWK sendiri merupakan singkatan dari nama-nama belakang penciptanya, yaitu Alfred V. Aho, Peter J. Weinberger dan Brian W. Kernighan. Hmm… sepertinya cukup itu saja pendahuluannya, kita langsung masuk ke cara penggunaannya.

bash-3.00$ date
Mon Apr 14 23:53:40 WIT 2008
bash-3.00$ date | awk ‘{print $4}’
23:54:12
bash-3.00$ date | awk ‘{print $3,$2}’
14 Apr
bash-3.00$ date | awk ‘{print $3$2}’
14Apr
bash-3.00$ date | awk ‘{print “DATE: ” $3,$2, “TIME :” $4}’
DATE: 14 Apr TIME :23:55:59
bash-3.00$ date | awk ‘{print $0}’
Mon Apr 14 23:56:15 WIT 2008

Dari contoh diatas, dapat disimpulkan bahwa AWK secara default memisahkan tiap field dari sebuah record dengan delimiter spasi/tab. Field pertama merupakan $1 dan field terakhir adalah $n. Sedangkan $0 dapat diartikan merupakan keseluruhan sebuah record. Owh ya, kita bisa menggunakan perintah {print} untuk menampilkan suatu field atau record. Dalam command print sendiri kita dapat menggunakan beberapa variasi seperti contoh di atas, sila dicobain sendiri deh :-P

Kita juga dapat mengubah separator antar field sesuai keinginan, caranya dengan menggunakan option -F dan menentukan karakter apa yang akan kita gunakan sebagai separatornya. Sebagai contoh kita gunakan file /etc/passwd yang berisi data all user dalam system. Jika kita ingin menampilkan home direktori dari semua user dalam system, bisa kita gunakan perintah sbb :

awk < /etc/passwd -F: ‘{print $6}’

Maksud dari perintah tsb adalah menampilkan field/column ke 6 (’{print $6}’) dari sebuah file (etc/passwd) yang tiap fieldnya dipisahkan oleh karakter titik-dua (-F:).

Selain itu, ‘awk’ juga dapat digunakan dalam operasi aritmatika, seperti penjumlahan (+), pengurangan (-), perkalian (*), pembagian (/), sisa pembagian/modulus (%), dsb. Untuk penggunaannya, bisa dilihat pada contoh berikut :

bash-3.00$ echo 2 3 | awk ‘{print $1 + $2}’
5
bash-3.00$ echo 2 3 | awk ‘{print $1 - $2}’
-1
bash-3.00$ echo 2 3 | awk ‘{print $1 * $2}’
6
bash-3.00$ echo 2 3 | awk ‘{print $1 / $2}’
0.666667
bash-3.00$ echo 5 3 | awk ‘{print $1 % $2}’
2

Semua fungsi-fungsi yang dimiliki oleh ‘awk’ juga dapat digunakan secara bersama-sama. Misalnya, saya ingin menjumlahkan size dari beberapa file yang karakter awal nama filenya adalah abe, maka cukup dengan mengetikkan :

bash-3.00$ ls -l abe* | awk ‘{sum=sum + $5} END {print sum}’
197904

Pada command ls -l field yang menunjukkan size suatu file adalah pada field ke-5 ($5), ls -l abe* digunakan untuk me-list file yang berawalan abe. Sedangkan untuk command ‘awk’ digunakan variabel sum untuk menyimpan hasil penjumlahan dari $5 pada setiap line/file name, pada akhir baris dalam list file nilai dari variabel sum ditampilkan.

Sekian duluw materi ‘awk’ untuk kali ini. Sebenarnya masih banyak sekali rahasia dari ‘awk’, mungkin akan saya lanjutkan di postingan berikutnya. Ciao… ;-)

Popularity: 38% [?]