Selasa, 23 Juni 2015

Sistem Pendukung Keputusan

Sistem Pendukung Keputusan (SPK) atau Decision Support System (DSS) adalah sebuah sistem yang mampu memberikan kemampuan pemecahan masalah maupun kemampuan pengkomunikasian untuk masalah dengan kondisi semi terstruktur dan tak terstruktur. Sistem ini digunakan untuk membantu pengambilan keputusan dalam situasi semi terstruktur dan situasi yang tidak terstruktur, dimana tak seorangpun tahu secara pasti bagaimana keputusan seharusnya dibuat (Turban, 2001).

SPK bertujuan untuk menyediakan informasi, membimbing, memberikan prediksi serta mengarahkan kepada pengguna informasi agar dapat melakukan pengambilan keputusan dengan lebih baik.

SPK merupakan implementasi teori-teori pengambilan keputusan yang telah diperkenalkan oleh ilmu-ilmu seperti operation research dan menegement science, hanya bedanya adalah bahwa jika dahulu untuk mencari penyelesaian masalah yang dihadapi harus dilakukan perhitungan iterasi secara manual (biasanya untuk mencari nilai minimum, maksimum, atau optimum), saat ini computer PC telah menawarkan kemampuannya untuk menyelesaikan persoalan yang sama dalam waktu relatif singkat.

Sprague dan Watson mendefinisikan Sistem Pendukung Keputusan (SPK) sebagai sistem yang memiliki lima karakteristik utama yaitu (Sprague et.al, 1993):

  1. Sistem yang berbasis komputer. 
  2. Dipergunakan untuk membantu para pengambil keputusan 
  3. Untuk memecahkan masalah-masalah rumit yang mustahil dilakukan dengan kalkulasi manual 
  4. Melalui cara simulasi yang interaktif 
  5. Dimana data dan model analisis sebaai komponen utama.

Komponen Sistem Pendukung Keputusan

Secara umum Sistem Pendukung Keputusan dibangun oleh tiga komponen besar yaitu database Management, Model Base dan Software System/User Interface. Komponen SPK tersebut dapat digambarkan seperti gambar di bawah ini.
Komponen Sistem Pendukung Keputusan (SPK)
Komponen Sistem Pendukung Keputusan (SPK)

a. Database Management

Merupakan subsistem data yang terorganisasi dalam suatu basis data. Data yang merupakan suatu sistem pendukung keputusan dapat berasal dari luar maupun dalam lingkungan. Untuk keperluan SPK, diperlukan data yang relevan dengan permasalahan yang hendak dipecahkan melalui simulasi.

b. Model Base

Merupakan suatu model yang merepresentasikan permasalahan kedalam format kuantitatif (model matematika sebagai contohnya) sebagai dasar simulasi atau pengambilan keputusan, termasuk didalamnya tujuan dari permaslahan (objektif), komponen-komponen terkait, batasan-batasan yang ada (constraints), dan hal-hal terkait lainnya. Model Base memungkinkan pengambil keputusan menganalisa secara utuh dengan mengembangkan dan membandingkan solusi alternatif.

c. User Interfase / Pengelolaan Dialog

Terkadang disebut sebagai subsistem dialog, merupakan penggabungan antara dua komponen sebelumnya yaitu Database Management dan Model Base yang disatukan dalam komponen ketiga (user interface), setelah sebelumnya dipresentasikan dalam bentuk model yang dimengerti computer. User Interface menampilkan keluaran sistem bagi pemakai dan menerima masukan dari pemakai kedalam Sistem Pendukung Keputusan.

Manfaat Sistem Pendukung Keputusan

SPK dapat memberikan berbagai manfaat dan keuntungan. Manfaat yang dapat diambil dari SPK adalah :
  1. SPK memperluas kemampuan pengambil keputusan dalam memproses data / informasi bagi pemakainya. 
  2. SPK membantu pengambil keputusan untuk memecahkan masalah terutama barbagai masalah yang sangat kompleks dan tidak terstruktur. 
  3. SPK dapat menghasilkan solusi dengan lebih cepat serta hasilnya dapat diandalkan. 
  4. Walaupun suatu SPK mungkin saja tidak mampu memecahkan masalah yang dihadapi oleh pengambil keputusan, namun dia dapat menjadi stimulan bagi pengambil keputusan dalam memahami persoalannya,karena mampu menyajikan berbagai alternatif pemecahan.

Pengertian Java

Java adalah salah satu bahasa pemrograman berorientasi objek (OOP-Object Oriented Programming). Paradigma OOP menyelesaikan masalah dengan merepresentasikan masalah ke model objek.
Pemrograman Berorientasi Obyek (OOP)
Pemisalan Objek dalam OOP
Objek-objek dalam dunia nyata, mempunyai 2 karakteristik khusus : Status dan Perilaku. Contohnya, sepeda punya status(jumlah gir, jumlah pedal, dua buah ban) dan perilaku(mengerem, mempercepat, 
ubah gir).
Bahasa yang berorientasi pada objek pun mempunyai karakteristik yang sama dengan objek-objek di dunia nyata. Yaitu status yang dalam bahasa pemrograman biasanya disimpan sebagai Variabel dan perilaku yang diimplementasikan sebagai Method.

Sejarah Java

 

Dimulai pada tahun 1991 dibentuknya suatu tim yang diberi nama green
Tim ini dipimpin oleh Patrick Naughton dan James Gosling (Sekelompok insinyur Sun ).
Awalnya mereka ingin membuat suatu bahasa komputer yang dapat digunakan oleh TV kabel ( Cable TV Box) yang memiliki memori kecil dan setiap perusahaan memiliki tipe yang berbeda.
Untuk mengaplikasikan hal tersebut mereka menggunakan hal yang pernah dicoba oleh bahasa pascal.
Sebelumnya Niclaus Wirth telah membuat sebuah bahasa yang portable yang akan digunakan dalam mesin bayangan selanjutnya ini disebut sebagai Virtual Mesin namun saat itu belum diumumkan.
Akhirnya tim green mengunakan ide ini akhirnya mereka menciptakan Java Virtual Mesin.
Vitual mesin inilah yang menbuat java dapat dijalankan diberbagai platform.
Pada tahun 1992 tim green membuat produknya yang diberi nama *7 (Star Seven )
Namun produk ini gagal dipasaran.

Setelah itu dibuat produk yang baru. Inilah java, pada awalnya bahasa pemrograman yang dibuat tersebut diberi nama “oak “ (Kemungkinan nama ini diambil dari nama pohon yang ada didepan jendela James Gosling)
Namun setelah diperiksa ternyata nama oak sudah pernah digunakan. Maka lahirlah nama “ Java “
Pada tahun 1993 sampai pertengahan 1994 tim green yang mempunyai nama baru First person. Inc hanya menghabiskan waktu dengan memperhatikan penjualan dari produknya. Ternyata tidak satupun orang ditemukan. Akhirnya pada tahun 1994 First Person dibubarkan.
Pada tahun itu Web berkembang sangat pesat saat itu browser yang banyak digunakan adalah Mosaic suatu broser yang gratis.

Dalam suatu wawancara pada pertengahan tahun 94 James Gosling mengatakan “We could build a real cool browser. It was one of the few things in the client/serve mainstream that needed some of the weird things we’d done: architecture neutral, real-time,reliable, secure—issues that weren’t terribly important in the workstation world. So we built a browser.”
Akhirnya dibuatlah suatu browser oleh Patrick Naughton dan Jonathan Payne.
Browser itu diberi nama Hot Java. Browser ini dibuat dengan menggunakan bahasa java untuk menunjukkan kemampuan dari java.
Yang tidak kalah hebatnya mereka juga membuat teknologi yang disebut Aplet sehingga browser dapat menjalankan kode program didalam browser.
Inilah bukti dari teknologi itu yang ditunjukkan java pada tanggal 25 mei 1995
Sejak saat itu browser java memberikan lisensinya kepada browser lain untuk bisa menjalankan Applet dan pada tahun 1996 diberikan pada Internet Explorer.
Akhirnya pada tahun 1996 dikeluarkan versi pertama dari java dengan mengeluarkan java 1.02
Pada tahun 1998 dikeluarkan java 1.2 dan java mulai mengeluarkan slogannya “Write once, Run anywhre “
Edisi Java
Java adalah bahasa yang dapat dijalankan dimanapun dan di sembarang platform apapun, di beragam lingkngan : internet, intranets,consumer electronic products, dan computer applications.The java 2 platform tersedia dalam 3 edisi untuk keperluan berbeda. Untuk beragam aplikasi yang dibuat dengan bahasa Java, java dipaketkan dalam edis – edisi berikut :
1.Java 2 Standard Edition ( J2SE )
2.Java 2 Enterprise dition ( J2EE )
3.Java 2 Micro Edition ( J2ME )
Masing – masing edisi berisi Java 2 Software Development Kit ( J2SDK ) untuk mengembangkan aplikasi dan Java 2 Runtime Environent ( J2RE ) untuk menjalankan aplikasi.
Kelebihan Java di bandingkan dengan C++
Pembuat program java telah merancang java untuk menghilangkan pengalokasian dan dealokasi memori secara manual, karena java memiliki Garbage Collection
Diperkenalkannya deklarasi array yang sebenarnya dan menghilangkan aritmatika pointer. Hal ini yang sering menyebabkan memori overwrite.
Dihilangkannya multiple inheritance, mereka menggantinya dengan interface.

Kelebihan dan Kekurangan

 

Setelah membahas mengenai pengertian java, selanjutnya kita membahas mengenai kelebihan dan kekurangan java. Kelebihan Java yang pertama tentu saja multiplatform. Java dapat dijalankan dalam beberapa platform komputer dan sistem operasi yang berbeda. Hal ini sesuai dengan slogannya yangs udah dibahas sebelumnya. Yang kedua adalah OOP atau Object Oriented Programming. Java memiliki library yang lengkap. Library disini adalah sebuah kumpulan dari program yang disertakan dalam Java. Hal ini akan memudahkan pemrograman menjadi lebih mudah. Kelengkapan library semakin beragam jika ditambah dengan karya komunitas Java.

Setiap hal pasti memiliki kelebihan dan kekurangan. Kekurangan yang dimiliki oleh Java adalah pada satu slogannya, takni “Tulis sekali dan jalankan dimana saja” ternyata tidak sepenuhnya benar. Beberapa hal harus disesuaikan jika dijalankan pada platform yang berbeda. Misalnya untuk J2SE dengan platform SWT-AWT bridge tidak dapat berfungsi di Mac OS X. Kekurangan lainnya adalah kemudahan aplikasi Java didekompilasi. Dekompilasi adalah suatu proses membalikkan sebuah aplikasi menjadi kode sumbernya. Hal ini memungkinkan terjadi pada Java karena berupa bytecode yang menyimpan bahasa tingkat tinggi. Hal ini terjadi pula pada platform .NET dari Microsoft sehingga program yang dihasilkan mudah dibajak kodenya karena sulit untuk disembunyikan.

Kekurangan Java yang lain adalah penggunaan memori yang cukup banyak, lebih besar daripada bahasa tingkat tinggi sebelum generasi Java. Namun hal ini memang sesuai dengan fitur beragam yang dimiliki oleh Java. Masalah memori ini juga tidak dialami oleh semua pengguna aplikasi Java. Mereka yang sudah menggunakan perangkat keras dengan teknologi terbaru tidak merasakan kelambatan dan konsumsi memori Java yang tinggi. Lain halnya dengan mereka yang menggunakan teknologi lama atau komputer yang sudah berumur tua lebih dari empat tahun akan merasakan adanya kelambatan. Namun apapun kelemahan yang dimiliki Java, faktanya adalah Java merupakan bahasa pemrograman yang populer dan digunakan di seluruh dunia saat ini.

Metode Topsis

TOPSIS (Technique For Others Reference by Similarity to Ideal Solution) adalah salah satu metode pengambilan keputusan multikriteria yang pertama kali diperkenalkan oleh Yoon dan Hwang (1981). TOPSIS menggunakan prinsip bahwa alternatif yang terpilih harus mempunyai jarak terdekat dari solusi ideal positif dan terjauh dari solusi ideal negatif dari sudut pandang geometris dengan menggunakan jarak Euclidean untuk menentukan kedekatan relatif dari suatu alternatif dengan solusi optimal.
Solusi ideal positif didefinisikan sebagai jumlah dari seluruh nilai terbaik yang dapat dicapai untuk setiap atribut, sedangkan solusi negatif-ideal terdiri dari seluruh nilai terburuk yang dicapai untuk setiap atribut.
TOPSIS mempertimbangkan keduanya, jarak terhadap solusi ideal positif dan jarak terhadap solusi ideal negatif dengan mengambil kedekatan relatif terhadap solusi ideal positif. Berdasarkan perbandingan terhadap jarak relatifnya, susunan prioritas alternatif bisa dicapai.
Metode ini banyak digunakan untuk menyelesaikan pengambilan keputusan secara praktis. Hal ini disebabkan konsepnya sederhana dan mudah dipahami, komputasinya efisien,dan memiliki kemampuan mengukur kinerja relatif dari alternatif-alternatif keputusan.
PROSEDUR TOPSIS
  • Menghitung separation measure
  • Menentukan jarak antara nilai setiap alternatif dengan matriks solusi ideal positif dan negatif
  • Menentukan nilai preferensi untuk setiap alternatif
  • Decision matrix D mengacu terhadap m alternatif yang akan dievaluasi berdasarkan n kriteria yang didefinisikan sebagai berikut:
  • Dengan xij menyatakan performansi dari perhitungan untuk alternatif ke-i terhadap atribut ke-j.
Langkah-langkah metode TOPSIS
  1. Membangun normalized decision matrix
Elemen rij hasil dari normalisasi decision matrix R dengan metode Euclidean length of a vector adalah:
2. Membangun weighted normalized decision matrix
Dengan bobot W= (w1, w2,…..,wn), maka normalisasi bobot matriks V adalah  :
3. Menentukan solusi ideal dan solusi ideal negatif.
Solusi ideal dinotasikan A*, sedangkan solusi ideal negatif dinotasikan A- :
4. Menghitung separasi
Si* adalah jarak (dalam pandangan Euclidean) alternatif dari solusi ideal didefinisikan sebagai:
Dan jarak terhadap solusi negatif-ideal didefinisikan sebagai:
5.  Menghitung kedekatan relatif terhadap solusi ideal
6. Merangking Alternatif
Alternatif dapat dirangking berdasarkan urutan Ci*. Maka dari itu, alternatif   terbaik adalah salah satu yang berjarak terpendek terhadap solusi ideal dan berjarak terjauh dengan solusi negatif-ideal.
HUBUNGAN TOPSIS DAN AHP (Analytic Hierarchy Process)

Pada dasarnya TOPSIS tidak memiliki model inputan yang spesifik dalam penyelesaian suatu kasus, TOPSIS menggunakan model inputan adaptasi dari metode lain (ex. AHP,UTA,ELECTRE,TAGUCHI dll)
Dalam menyelesaikan suatu kasus multikriteria, AHP membandingkan tiap kriteria menggunakan matriks perbandingan berpasangan untuk setiap alternatif kemudian hasilnya adalah sebuah matriks keputusan yang menunjukkan skor setiap alternatif pada semua kriteria.
Alternatif terbaik adalah alternatif dengan skor tertinggi setelah dikalikan dengan vektor bobot • Sedangkan pada metode TOPSIS, matriks keputusan yang dihasilkan dari metode AHP merupakan modal awal/inputan awal dalam perhitungan selanjutnya.

Pengertian Turbo Pascal


Dalam tutorial pertama belajar pemrograman pascal di duniailkom ini kita akan berkenalan dengan bahasa pascal, mulai dari pengertian bahasa pemrograman pascal, fitur-fitur yang tersedia di dalam bahasa pascal serta mengenal compiler pascal: Turbo Pascal dan Free Pascal.

Pengertian Bahasa Pemrograman PASCAL

Pascal adalah salah satu bahasa pemrograman komputer yang umumnya digunakan sebagai pengantar untuk mulai belajar algoritma dan pemrograman. Pascal relatif mudah dipelajari karena perintah-perintahnya yang mirip dengan bahasa inggris sehari-hari seperti begin, end, write, dan read.
Pascal diambil dari nama ahli matematika prancis abad pertengahan, Blaise Pascal. Bahasa Pascal di kembangkan oleh Niklaus Wirth pada tahun 1970, dan populer digunakan pada era 1970 hingga awal 1990an.
Dari awal dikembangkan, Pascal dirancang untuk keperluan akademik. Atas alasan itu pula Pascal masih digunakan di berbagai sekolah dan universitas di seluruh dunia (termasuk Indonesia). Pascal juga menjadi bahasa pemrograman yang digunakan pada Olimpiade Sains Nasional (OSN) bidang komputer.

Fitur Bahasa PASCAL

Pascal memiliki beberapa fitur yang membuatnya cocok untuk belajar pemrograman dan untuk membuat aplikasi komersil. Beberapa diantaranya adalah:
  • Tipe data bawaan: Pascal memiliki tipe data standar yang umum terdapat dalam bahasa pemrograman komputer seperti Integer, Real, Character, dan Boolean.
  • Tipe data bentukan: Pascal membolehkan kita untuk membuat tipe data bentukan yang didefenisikan sendiri.
  • Memiliki beragam struktur data: Pascal menyediakan beberapa struktur data seperti Array, Record, File dan Set.
  • Aturan tipe data yang ketat: Pascal membatasi penggunaan tipe data secara ketat. Kita hanya bisa menggunakan variabel untuk 1 tipe data saja dan variabel tersebut harus dideklarasikan terlebih dahulu.
  • Mendukung struktural programming: Bahasa Pascal dirancang dengan konsep pemrograman terstruktur yang mendukung sub program melalui fungsi dan prosedur
  • Sederhana dan expresif: Pascal banyak menggunakan perintah-perintah dalam bahasa inggris sederhana, sehingga mudah dipahami.
  • Mendukung pemrograman objek: Walaupun tidak banyak dibahas, tetapi Pascal juga mendukung pemrograman berbasis objek, terutama pada compiler versi terakhir.

Mengenal Borland Turbo Pascal

Jika membicarakan aplikasi untuk membuat program menggunakan pascal, maka yang paling terkenal adalah Turbo Pascal.
Turbo Pascal adalah compiler (program untuk menjalankan bahasa pascal) yang dibuat oleh perusahaan asal Amerika: Borland. Turbo Pascal hanyalah salah satu dari banyak compiler pascal yang tersedia. Pada periode 1980an, terdapat aplikasi UCSD Pascal, Microsoft Pascal, maupun QuickPascal yang kesemuanya digunakan untuk menjalankan bahasa pemrograman Pascal.

Compiler Free Pascal

Walaupun populer, Turbo Pascal sudah jauh melampaui zamannya. Turbo Pascal versi terkahir (Turbo Pascal 7) dirilis pada tahun 1992 untuk sistem operasi Microsoft DOS (MS-DOS) yang dijalankan pada arsitektur 16-bit. Sehingga kita tidak bisa menjalankan aplikasi Turbo Pascal di sistem operasi modern seperti Windows 7 atau 8 yang menggunakan arsitektur 32-bit atau 64-bit. Turbo Pascal juga sudah tidak dikembangkan lagi oleh Borland.
Salah satu cara untuk dapat menjalankan aplikasi Turbo Pascal 7 adalah dengan menggunakan emulator MS-DOS seperti DOSBox (www.dosbox.com). Emulator adalah sebuah program yang men-simulasikan suatu sistem di dalam sistem lain, sehingga kita bisa menjalankan Turbo Pascal dari dalam DOSBox.
Alternatif lainnya untuk menjalankan Pascal adalah menggunakan compiler Free Pascal (www.freepascal.org). Free Pascal adalah aplikasi compiler pascal yang terus dikembangkan hingga sekarang secara sukarela oleh berbagai programmer dari seluruh dunia. Free Pascal dapat digunakan secara gratis dan bisa diinstal langsung ke dalam sistem operasi modern tanpa memerlukan emulator atau aplikasi tambahan.
Dalam tutorial belajar pascal di duniailkom ini saya akan menggunakan freepascal karena kita tidak direpotkan untuk menginstall emulator dan masalah hak cipta/copyright.
Terkait dengan masalah hak cipta, Turbo Pascal 7 sebenarnya aplikasi berbayar dan tidak dirilis dengan gratis. Borland secara resmi merilis Turbo Pascal 1.0, Turbo Pascal 3.02 dan Turbo Pascal 5.5 dengan gratis, namun tidak untuk Turbo Pascal 7.
Permasalahannya, saat ini Borland juga tidak lagi menjual Turbo Pascal 7, sehingga Turbo Pascal 7 yang banyak beredar adalah ‘bajakan’ dari versi aslinya. Oleh karena itu saya juga menyarakan anda untuk menggunakan Free Pascal. Dari sisi fitur dan tampilan, baik Turbo Pascal 7 dan Free Pascal sangatlah mirip.
Cara instalasi Turbo Pascal 7 dengan DOSBox dan Instalasi Free Pascal akan saya bahas dalam tutorial terpisah.

Perlukah Belajar Pascal?

Jika anda melihat lowongan kerja programmer saat ini, nyaris tidak ada yang membutuhkan keahlian bahasa pascal, jadi untuk apa mempelajari pascal?
Karena berbagai alasan dan sejarah yang panjang, saat ini Pascal ‘kalah bersaing’ dengan bahasa pemrograman lain, seperti C, C++, Java bahkan bahasa BASIC (melalui Microsoft Visual Basic). Ini terjadi bukan karena bahasa Pascal yang tidak ‘bagus’, akan tetapi lebih karena sisi marketing dan kurangnya dukungan Industri.
Sebagai contoh, banyak kalangan yang menganggap Pascal lebih bagus dan lebih terstruktur dibandingkan dengan BASIC, namun BASIC didukung oleh perusahaan sekelas Microsoft dengan Microsoft Visual Basic, sehingga lebih populer dibandingkan Borland Delphi (aplikasi sejenis Visual Basic yang menggunakan bahasa Pascal).
Walaupun tidak sepopuler bahasa C,C++ atau Java, saat ini Pascal masih banyak digunakan sebagai bahasa pemrograman pengantar di sekolah dan universitas.
Pascal adalah untuk anda yang ingin mempelajari algoritma dan pemrograman dari dasar, atau siswa SMA/SMK yang ingin mengikuti olimpiade komputer. Pascal juga cocok bagi siswa SMA yang berencana mengambil jurusan Ilmu Komputer / Teknik Informatika dan ingin ‘curi start’ berkenalan dengan bahasa pemrograman.
Jika anda sudah paham garis besar algoritma dan ingin menguasai bahasa ‘dunia kerja’, Pascal mungkin tidak terlalu cocok. Anda bisa langsung mempelajari C++, C#, Java, Python, atau bahasa pemograman modern lainnya.
Sebagai penutup, saat ini juga tersedia aplikasi Lazarus (www.lazarus-ide.org) yang menyediakan fitur mirip Microsoft Visual Basic dan Borland Delphi untuk membuat aplikasi Windows dengan cepat. Aplikasi ini bisa digunakan dengan gratis, sehingga bahasa pascal yang anda pelajari masih bisa digunakan untuk membuat proyek ‘real world’.

Sebelum kita mulai menulis program pascal, ada baiknya melihat sejenak tentang sejarah perjalanan bahasa pemrograman pascal sejak awal kemunculannya pada tahun 1970 hingga sekarang.

Pengertian Kriptografi

Secara etimologi kata kriptografi (Cryptography) berasal dari bahasa Yunani, yaitu kryptos yang artinya yang tersembunyi dan graphein yang artinya tulisan (Prayudi, 2005). Awal mula kriptografi dipahami sebagai ilmu tentang menyembunyikan pesan (Sadikin, 2012), tetapi seiring perkembangan zaman hingga saat ini pengertian kriptografi berkembang menjadi ilmu tentang teknik matematis yang digunakan untuk menyelesaikan persoalan keamanan berupa privasi dan otentikasi (Diffie, 1976).

Sejarah Kriptografi

Sejarah penulisan rahasia tertua dapat ditemukan pada peradaban Mesir kuno, yakni tahun 3000 SM. Bangsa Mesir menggunakan ukiran rahasia yang disebut dengan hieroglyphics untuk menyampaikan pesan kepada orang-orang yang berhak.

Awal tahun 400 SM bangsa Spartan di Yunani memanfaatkan kriptografi di bidang militer dengan menggunakan alat yang disebut scytale, yakni pita panjang berbahan daun papyrus yang dibaca dengan cara digulungkan ke sebatang silinder. Sedangkan peradaban Cina dan Jepang menemukan kriptografi pada abad 15 M.

Scytale
Scytale 


Peradaban Islam juga menemukan kriptografi karena penguasaannya terhadap matematika, statistik, dan linguistik. Bahkan teknik kriptanalisis dipaparkan untuk pertama kalinya pada abad 9 M oleh seorang ilmuwan bernama Abu Yusuf Ya’qub ibn ‘Ishaq as-Shabbah al Kindi atau dikenal dengan Al-Kindi yang menulis kitab tentang seni memecahkan kode. Kitabnya berjudul Risalah fi Istikhraj al-Mu’amma (Manuskrip untuk memecahkan pesan-pesan Kriptografi). Terinspirasi dari perulangan huruf dalam Al-Qur’an, Al-Kindi menemukan teknik analisis frekuensi, yakni teknik untuk memecahkan ciphertext berdasarkan frekuensi kemunculan karakter pada sebuah pesan (Wirdasari, 2008).

Risalah fi Istikhraj al-Mu’amma
Risalah fi Istikhraj al-Mu’amma

Istilah-istilah dalam Kriptografi

Dalam kriptografi akan dijumpai beberapa istilah-istilah penting antara lain adalah plaintext, ciphertext, enkripsi, dekripsi, cryptanalysis, dan cryptology. Plaintext adalah data yang dapat dibaca, sedangkan teknik untuk menjadikan data tidak dapat dibaca disebut enkripsi. Data yang telah dienkripsi disebut ciphertext, dan teknik untuk mengembalikan ciphertext menjadi plaintext disebut dekripsi (Prayudi, 2005).

Cipher merupakan algoritma kriptografi, yakni fungsi matematika yang berperan dalam enkripsi dan dekripsi data (Rizal, 2011). Pelaku yang ahli dalam bidang kriptografi disebut cryptographer.

Cryptanalysis adalah ilmu untuk memecahkan ciphertext menjadi plaintext dengan tidak melalui cara yang semestinya, sedangkan orang yang menguasai ilmu ini disebut Cryptanalyst. Cabang matematika yang meliputi kriptografi dan cryptanalysis disebut Cryptology, sedangkan orang yang menguasai ilmu ini disebut cryptologist.

Proses enkripsi dan dekripsi
Proses enkripsi dan dekripsi

Jenis Kriptografi Berdasarkan Perkembangan

Algoritma kriptografi dapat diklasifikasikan menjadi menjadi dua jenis berdasarkan perkembangannya, yaitu kriptografi klasik dan kriptografi modern.

a. Algoritma Kriptografi Klasik 

Algoritma ini digunakan sejak sebelum era komputerisasi dan kebanyakan menggunakan teknik kunci simetris. Metode menyembunyikan pesannya adalah dengan teknik substitusi atau transposisi atau keduanya (Sadikin, 2012). Teknik substitusi adalah menggantikan karakter dalam plaintext menjadi karakter lain yang hasilnya adalah ciphertext. Sedangkan transposisi adalah teknik mengubah plaintext menjadi ciphertext dengan cara permutasi karakter. Kombinasi keduanya secara kompleks adalah yang melatarbelakangi terbentuknya berbagai macam algoritma kriptografi modern (Prayudi, 2005).

b. Algoritma Kriptografi Modern 

Algoritma ini memiliki tingkat kesulitan yang kompleks (Prayudi, 2005), dan kekuatan kriptografinya ada pada key atau kuncinya (Wirdasari, 2008). Algoritma ini menggunakan pengolahan simbol biner karena berjalan mengikuti operasi komputer digital. Sehingga membutuhkan dasar berupa pengetahuan terhadap matematika untuk menguasainya (Sadikin, 2012).

Jenis Kriptografi Berdasarkan Kunci

Algoritma kriptografi dapat diklasifikasikan menjadi dua jenis berdasarkan kuncinya, yaitu algoritma simetris dan algoritma asimetris (Prayudi, 2005).

a. Algoritma Simetris 

Algoritma ini disebut simetris karena memiliki key atau kunci yang sama dalam proses enkripsi dan dekripsi sehingga algoritma ini juga sering disebut algoritma kunci tunggal atau algoritma satu kunci. Key dalam algoritma ini bersifat rahasia atau private key sehingga algoritma ini juga disebut dengan algoritma kunci rahasia (Prayudi, 2005).

b. Algoritma Asimetris 

Algoritma ini disebut asimetris karena kunci yang digunakan untuk enkripsi berbeda dengan kunci yang digunakan untuk dekripsi. Kunci yang digunakan untuk enkripsi adalah kunci publik atau public key sehingga algoritma ini juga disebut dengan algoritma kunci publik. Sedangkan kunci untuk dekripsi menggunakan kunci rahasia atau private key

Metode SAW

1.1  Pengertian Metode Simple Additive Weighting (SAW)

Metode Simple Additive Weighting (SAW) sering juga dikenal istilah metode penjumlahan terbobot.
Konsep dasar metode SAW adalah mencari penjumlahan terbobot dari rating kinerja pada setiap alternatif pada semua atribut (Fishburn, 1967) (MacCrimmon, 1968).
Metode SAW membutuhkan proses normalisasi matriks keputusan (X) ke suatu skala yang dapat diperbandingkan dengan semua rating alternatif yang ada.  Metode ini merupakan metode yang paling terkenal dan paling banyak digunakan dalam menghadapi situasi Multiple Attribute Decision Making (MADM). MADM itu sendiri merupakan suatu metode yang digunakan untuk mencari alternatif optimal dari sejumlah alternatif dengan kriteria tertentu.
Metode SAW ini mengharuskan pembuat keputusan menentukan bobot bagi setiap atribut. Skor total untuk alternatif diperoleh dengan menjumlahkan seluruh hasil perkalian antara rating (yang dapat dibandingkan lintas atribut) dan bobot tiap atribut. Rating tiap atribut haruslah bebas dimensi dalam arti telah melewati proses normalisasi matriks sebelumnya.

1.2  Langkah Penyelesaian Simple Additive Weighting (SAW)
  Langkah Penyelesaian SAW sebagai berikut :
1.  Menentukan kriteria-kriteria yang akan dijadikan acuan dalam pengambilan keputusan, yaitu Ci.
2.  Menentukan rating kecocokan setiap alternatif pada setiap kriteria.
3.  Membuat matriks keputusan berdasarkan kriteria(Ci), kemudian melakukan normalisasi matriks berdasarkan persamaan yang disesuaikan dengan jenis atribut (atribut keuntungan ataupun atribut biaya) sehingga diperoleh matriks ternormalisasi R.
4.  Hasil akhir diperoleh dari proses perankingan yaitu penjumlahan dari perkalian matriks ternormalisasi R dengan vektor bobot sehingga diperoleh nilai terbesar yang dipilih sebagai alternatif terbaik (Ai)sebagai solusi.

Formula untuk melakukan normalisasi tersebut adalah :

Dimana :
rij     = rating kinerja ternormalisasi
Maxij         = nilai maksimum dari setiap baris dan kolom
Minij         = nilai minimum dari setiap baris dan kolom
Xij    = baris dan kolom dari matriks
Dengan rij adalah rating kinerja ternormalisasi dari alternatif Ai pada atribut Cj; i =1,2,…m dan j = 1,2,…,n.
Nilai preferensi untuk setiap alternatif (Vi) diberikan sebagai :

Dimana :
Vi  = Nilai akhir dari alternatif
wj  = Bobot yang telah ditentukan
rij   = Normalisasi matriks
Nilai Viyang lebih besar mengindikasikan bahwa alternatifAi lebih terpilih


Contoh kasus1:
Bagian kemahasiswaan telah membuat pengumuman tentang dibukanya kesempatan memperoleh “BEASISWA”. Beasiswa ini diperuntukkan untuk tiga Mahasiswa. Jumlah pendaftar sampai pada tanggal terakhir terkumpul 50 mahasiswa.
Ø  Tugas Kita, adalah “membangun Sistem Pendukung Keputusan untuk menentukan calon penerima beasiswa bagi mahasiswa”.
Langkah-Langkah
MASALAH
ü  “ seleksi calon penerima beasiswa “
Kriteria
ü  Usia, jumlah penghasilan orangtua, semester, jumlah tanggungan orangtua, dan jumlah saudara kandung.
Penentuan criteria yang dapat digolongkan ke dalam criteria benefit
·         Jumlah tanggungan orangtua,
·         jumlah saudara kandung, dan
·         IPK

Penentuan criteria yang dapat digolongkan ke dalam criteria cost
·         Usia
·         Jumlah penghasilan orangtua
·         semester







Pembuatan table,
No
KRITERIA
KETERANGAN
1
C1
Usia
2
C2
Jumlah Penghasilan Orangtua
3
C3
Semester
4
C4
Jumlah Tanggungan Orangtua
5
C5
Jumlah saudara kandung
6
C6
IPK

Kriteria dan Pembobotan

Teknik pembobotan pada criteria dapat dilakukan dengan beragai macam cara dan metode yang abash. Pase ini dikenal dengan istilah pra-proses. Namun bisa juga dengan cara secara sederhana dengan memberikan nilai pada masing-masing secara langsung berdasarkan persentasi nilai bobotnya. Se dangkan untuk yang lebih lebih baik bisa digunakan fuzzy logic. Penggunaan Fuzzy logic, sangat dianjurkan bila kritieria yang dipilih mempunyai sifat yang relative, misal Umur, Panas, Tinggi, Baik atau sifat lainnya.


Contoh Pembobotan criteria














Pembobotan (W)

No
KRITERIA
Nilai bobot
1
C1
0.15
2
C2
0.30
3
C3
0.10
4
C4
0.20
5
C5
0.10
6
C6
0.15
Total
1

Keterangan
A                 : Calon yang diseleksi
C                 : Kriteria

Diubah ke dalam matrik keputusan sebagai berikut:

Penghitungan Normalisasi

Untuk normalisai nilai, jika faktor kriteria cost digunakanan rumusan

Rii = ( min{Xij} / Xij)

Maka nilai-nilai normalisasi cost menjadi:

R11 = min{1;0.75;0.5} / 1          =             0.5 / 1      = 0.5
R21 = min{1;0.75;0.5} / 0.75     = 0.5 / 0.75 = 0.67
R31 = min{1;0.75;0.5} / 1          = 0.5 / 0.5    = 1

R12 = min{0.5;0.5;0.5} / 0.5      = 0.5 / 0.5 = 1
R22 = min{0.5;0.5;0.5} / 0.5      = 0.5 / 0.5 = 1
R32 = min{0.5;0.5;0.5} / 0.5      = 0.5 / 0.5 = 1

R13 = min{0.8;0.6;0.6} / 0.8      = 0.6 / 0.8 = 0.75
R23 = min{0.8;0.6;0.6} / 0.6      = 0.6 / 0.6 = 1
R33 = min{0.8;0.6;0.6} / 0.6      = 0.6 / 0.6 = 1

Untuk normalisai nilai, jika faktor kriteria benefit digunakanan rumusan

Rii = ( Xij / max{Xij})

Maka nilai-nilai normalisasi benefit menjadi:

R14 =  1.00 / max{1; 0.5;0.25} =             1 / 1      = 1
R24 =  0.50 / max{1; 0.5;0.25} = 0.5 / 1   = 0.5
R34 =  0.25 / max{1; 0.5;0.25} = 0.25 / 1 = 0.25

R15 =  1.00 / max{1; 0.5;0.25} =             1 / 1      = 1
R25 =  0.50 / max{1; 0.5;0.25} = 0.5 / 1   = 0.5
R35 =  0.25 / max{1; 0.5;0.25} = 0.25 / 1 = 0.25

R16 =  0.50 / max{0.5; 0.75;0.25}     = 0.5 / 0.75     = 0.67
R26 =  0.75 / max{0.5; 0.75;0.25}     = 0.75 / 0.75   = 1
R36 =  0.25 / max{0.5; 0.75;0.25}     = 0.25 / 0.75   = 0.33

Tabel faktor ternormalisasi





Perangkingan


Keterangan:

Vi                = rangking untuk setiap alternatif
wj                = nilai bobot dari setiap kriteria
rij                 = nilai rating kinerja ternormalisasi

V1                = 0,8505
V2                = 0,8005
V3                = 0,6745

Kesimpulan

Berdasarkan  nilai perankingan maka dapat direkomendasikan prioritas calon penerima beasiswa adalah V1, V2, dan V3



Contoh kasus 2

Suatu institusi perguruan tinggi akan memilih seorang karyawannya untuk dipromosikan sebagai kepala unit sistem informasi.
Ada empat kriteria yang digunakan untuk melakukan penilaian, yaitu:

                   C1 = tes pengetahuan (wawasan) sistem informasi
                   C2 = praktek instalasi jaringan
                   C3 = tes kepribadian
                   C4 = tes pengetahuan agama

Pengambil keputusan memberikan bobot untuk setiap kriteria sebagai berikut: C1 = 35%; C2 = 25%; C3 = 25%; dan C4 = 15%.
Ada enam orang karyawan yang menjadi kandidat (alternatif) untuk dipromosikan sebagai kepala unit, yaitu:

A1 = Indra,
A2 = Roni,
A3 = Putri,
A4 = Dani,
A5 = Ratna, dan
A6 = Mira.




Tabel nilai alternatif di setiap kriteria:
Alternatif
Kriteria
C1
C2
C3
C4
Indra
70
50
80
60
Roni
50
60
82
70
Putri
85
55
80
75
Dani
82
70
65
85
Ratna
75
75
85
74
Mira
62
50
75
80