9 Maret 2011

CLOUD COMPUTING : WEB OPERATING SYSTEM

Web Desktop (webtop) atau lebih sering disebut Web Operating System (Web OS) merupakan salah satu jenis aplikasi web yang mengimplementasikan teknologi Cloud Computing.

Cloud Computing adalah teknologi yang menggunakan jaringan Internet dan server terpusat untuk mengelola data dan menjalankan aplikasi. Cloud Computing membantu user untuk menggunakan aplikasi tanpa melakukan instalasi, mengakses file pribadi mereka di komputer manapun dengan akses internet. Teknologi ini memungkinkan efisiensi lebih dengan memusatkan penyimpanan data, memory, pemrosesan aplikasi, dan resource lainnya di Internet (server). Dengan Cloud Computing, seorang user hanya membutuhkan komputer dengan web browser dan akses Internet untuk menjalankan berbagai aplikasi seperti game, office application, Web Desktop/Web Operating System, dan sebagainya.

Secara teknis, Web OS atau juga disebut Web Desktop (webtop) adalah sebuah desktop environment yang berjalan di atas web. Web OS dapat diartikan sebagai “sistem operasi” yang berjalan di atas web browser. Tentunya, Web OS bukanlah sebuah sistem operasi yang sebenarnya. Web OS hanyalah meniru tampilan, look-and-feel, dan beberapa fitur yang biasanya ditemukan pada sebuah sistem operasi seperti Windows, Linux, atau Mac OS. Dengan kata lain, Web OS bisa juga disebut sebagai virtual desktop yang berjalan di dalam web browser. Semua aplikasi, data, file, dan konfigurasi berada di server (cloud) dan diakses secara remote dari client melalui jaringan. Fungsi web browser hanya sebagai media penampil dan input.  

. Contoh – contoh Web OS

1. SilveOS (www.silveos.com)

silveOS.com memberikan kenyamanan yang sama seperti aplikasi desktop (windows) tetapi dituangkan dalam web browser. system host dari keseluruhan data disimpan dalam server pusat, sehingga kita dapat menggunakannya dimanapun kita berada. tidak terpaku dalam suatu tempat. Kita dapat menjalankan aplikasi tanpa menginstall aplikasi tersebut.

2. EyeOS (www.eyeos.org)

EyeOS adalah sebuah aplikasi web yang menampilkan desktop ke dalam web browser. Dalam aplikasi tersebut sudah terdapat office dan beberapa aplikasi default dalam windows. Sama halnya sebuah frame work yang dikembangkan untuk web aplikasi dimana aplikasi tersebut memiliki aplikasi desktop. Aplikasi ini bersifat open source, jadi dapat didapat dengan mudah.

Teknologi yang digunakan dalam membangun aplikasi Web desktop sangat beragam tergantung dari masing-masing penyedia layanan. Secara umum Web desktop menggunakan teknologi Client-server dan menggunakan engine berbasis PHP, Ajax, Java, Flash, Silverlight (Microsoft), atau kombinasinya.

Sedikit paparan tentang teknologi dari web Desktop:

a. SilveOS.com adalah web aplikasi berbasis silverlight (web OS). SilveOS.com berbasis web dan membutuhkan Silverlight 3 untuk menjalankannya. aplikasi berjalan dalam sandbox silverlight. defaultnya kita tidak dipebolehkan untuk mengakses file system atau melakukan sesuatu yang dapat merusak sistem kerja mesin. selain desktop, taskbar, start menu dan sidebar terdapat beberapa aplikasi yang sudah dimasukkan kedalamnya, meliputi:
* File Explorer * Internet Explorer * Video Player * Rich text editor * RSS reader * Notepad * Paint * Twitter client * Flickr viewer * Youtube viewer * Virtual Earth * Chat * Calculator

b. EyeOS adalah web aplikasi berbasis PHP, XML, dan JavaScript. Tiga hal tersebut merupakan platform utama dari pembuatan web aplikasi tersebut. Dalam aplikasi tersebut sudah terdapat office dan beberapa aplikasi (±67 aplikasi).

ANALISIS ALGORITMA REKURSIF QUICK SORT

Abstrak

Dalam penanganan kasus sorting terdapat bermacam-macam tipe algoritma, baik itu secara rekursif maupun non-rekursif. Salah satu algoritma sorting yang dianggap paling mangkus adalah algoritma Quick Sort yang merupakan algoritma rekursif. Quick Sort adalah algoritma yang terkenal cepat dalam proses sorting suatu data dibandingkan dengan algoritma yang lain sehingga algoritma ini disebut ‘Quick’ sort. Pada makalah ini, penulis mencoba membahas tentang algoritma Quick Sort tersebut. Pembahasan makalah ini berupa analisis dari kompleksitas waktu algoritma Quick Sort, baik itu kondisi Best case maupun worst case. Data-data dalam makalah ini penulis peroleh dari berbagai sumber yang berkaitan. Selain dari diktat dan slide mata kuliah Desain Analisis Algoritma pada Jurusan Teknik Informatika IT Telkom tahun ajaran 2009/2010, penulis juga mengambil referensi dari berbagai sumber di Internet.

Kata kunci: Sorting, algoritma, Quick Sort, rekursif 

Untuk lebih lengkapnya silahkan download makalah versi PDF saya di link di bawah ini

DOWNLOAD : Makalah Analisa Algoritma Quick Sort Rekursif - Febri Puguh Permana

Algoritma Knuth-Morris-Pratt (KMP)


Algoritma Knuth-Morris-Pratt dikembangkan secara terpisah oleh Donald E. Knuth pada tahun 1967 dan James H. Morris bersama Vaughan R. Pratt pada tahun 1966, namun keduanya mempublikasikannya secara bersamaan pada tahun 1977.
Algoritma Knuth-Morris-Pratt (KMP) merupakan algoritma yang digunakan untuk melakukan proses pencocokan string. Algoritma ini merupakan jenis Exact String Matching Algorithm yang merupakan pencocokan string secara tepat dengan susunan karakter dalam string yang dicocokkan memiliki jumlah maupun urutan karakter dalam string yang sama.
Contoh : kata ‘algoritma’ akan menunjukkan kecocokan hanya dengan kata ‘algoritma’. Pada algoritma Knuth-Morris-Pratt (KMP), kita simpan informasi yang digunakan untuk melakukan pergeseran lebih jauh, tidak hanya satu karakter seperti algoritma Brute Force. Algoritma ini melakukan pencocokan dari kiri ke kanan.
Terdapat beberapa definisi pada algoritma Knuth-Morris-Pratt (KMP) :
1.       Misalkan A adalah alfabet dan x = x1x2…xk adalah string yang panjangnya k yang dibentuk dari karakterkarakter di dalam alfabet A.
• Awalan (prefix) dari x adalah upa-string (substring) u dengan u = x1x2…xk – 1 , k ϵ {1, 2, …, k –1}dengan kata lain, x diawali dengan u.
• Akhiran (suffix) dari x adalah upa-string (substring) u dengan u = xk – b xk – b + 1 …xk , k ϵ {1, 2, …, k– 1}dengan kata lain, x di akhiri dengan v
• Pinggiran (border) dari x adalah upa-string r sedemikian sehingga r = x1x2…xk – 1 dan u=xk–bxk – b + 1 …xk , k ϵ {1, 2, …, k –1}, dengan kata lain, pinggiran dari x adalah upa-string yang keduanya awalan dan juga akhiran sebenarnya dari x.
2.       Fungsi Pinggiran b(j) didefinisikan sebagai ukuran awalan terpanjang dari P yang merupakan akhiran dari P[1..j].

pseudo code : (KLIK UNTUK MEMPERBESAR)

Alogoritma Boyer-Moore


Algoritma Boyer-Moore adalah salah satu algoritma pencarian string, dipublikasikan oleh Robert S. Boyer, dan J. Strother Moore pada tahun 1977. Algoritma ini dianggap sebagai algoritma yang paling efisien pada aplikasi umum.Tidak seperti algoritma pencarian string yang ditemukan sebelumnya, algoritma Boyer-Moore mulai mencocokkan karakter dari sebelah kanan pattern. Ide dibalik algoritma ini adalah bahwa dengan memulai pencocokkan karakter dari kanan, dan bukan dari kiri, maka akan lebih banyak informasi yang didapat. (Wikipedia)
Algoritma Boyer-Moore melakukan pencocokan karakter dimulai dari kanan ke kiri. Karakter paling kanan pada pola merupakan karakter pertama yang akan dicocokkan dengan teks. Algoritma ini mempunyai dua fase, yaitu fase preprocessing dan fase pencarian. Pada fase preprocessing terdapat dua buah fungsi untuk menggeser pola ke arah kanan. Kedua fungsi ini disebut good-suffix-shift dan bad-character-shift. Fungsi good-suffix-shift disimpan ke dalam sebuah tabel bmGs berukuran m+1. Sedangkan fungsi bad-character-shift disimpan ke dalam sebuah tabel bmBc yang berukuran n. 

Berikut adalah Algoritmanya : (KLIK UNTUK MEMPERBESAR)

8 Maret 2011

Konversi Color Space RGB-HSV dan HSV-RGB dengan Metode Travis

Warna merupakan hasil persepsi dari cahaya dalam spektrum wilayah yang terlihat oleh retina mata, dan memiliki panjang gelombang antara 400nm sampai dengan 700nm. Suatu model warna adalah model matematis abstrak yang menggambarkan cara agar suatu warna dapat direpresentasikan sebagai baris angka, biasanya dengan nilai-nilai dari tiga atau empat buah warna atau komponen, misalnya RGB (Red-Green-Blue) , CMYK (Cyan-Magenta-Yellow-Key/Black), HSI (Hue-Satruation-Lightness), atau HSV (Hue-Satruation-Value).
Warna pada dasarnya merupakan bentukan 3 dimensi, sehingga disebut sebagai "color space". Untuk aplikasi yang berbeda ruang warna yang dipakai bisa juga berbeda, peralatan tertentu biasanya membatasi ukuran dan jenis ruang warna yang dapat digunakan. Misalnya layar monitor menggunakan RGB sedangkan printer menggunakan CMYK. Oleh karena itu, diperlukan konversi color space agar gambar kita misalnya bisa tampil di monitor dan bisa di print dengan benar oleh printer, serta masih banyak contoh lainnya. Yang akan penulis bahas selanjutnya adalah konversi HSV ke RGB.
Model warna HSV mendefinisikan warna dalam terminologi Hue, Saturation dan Value. Keuntungan HSV adalah terdapat warna-warna yang sama dengan yang ditangkap oleh indra manusia. Sedangkan warna yang dibentuk model lain seperti RGB merupakan hasil campuran dari warna-warna primer.
A.     Konversi RGB ke HSV
HSV merupakan kependekan dari Hue, Saturation, dan Value. Dimana karakteristik pokok dari warna tersebut adalah:
1.       Hue: menyatakan warna sebenarnya, seperti merah, violet, dan kuning dan digunakan menentukan kemerahan (redness), kehijauan (greeness), dsb.
2.       Saturation: kadang disebut chroma, adalah kemurnian atau kekuatan warna.
3.       Value : kecerahan dari warna. Nilainya berkisar antara 0-100 %. Apabila nilainya 0 maka warnanya akan menjadi hitam, semakin besar nilai maka semakin cerah dan  muncul variasi-variasi baru dari warna tersebut.
RGB merupakan kependekan dari Red, Green, Blue. Warna – warna yang dibentuk oleh model warna merupakan hasil campuran dari warna-warna primer merah, hijau, dan biru berdasarkan komposisi tertentu.
Ada sebuah metode untuk mengkonversi HSV ke RGB dan sebaliknya yang dibuat oleh Travis sebagai berikut:
Pertama-tama cari nila maksimum dan minimum dari ketiga komponen RGB.
1.       Satruation (S) :
S=(max-min)/max
2.       Value (V) :                                  
V= max
3.       Hue (H) : Pertama-tama hitung R’, G’, dan B’
R'=max-R / max-min
G'=max-G / max-min
B'=max-B / max-min
Jika Satruation, S=0, maka hue tidak terdefinisi (tidak memiliki hue berarti monochrome). kemungkinan lain:
·         if (R = max and G = min)        -> H = 5 + B’
·         else if (R = max and G ≠ min)   -> H = 1 − G’
·         else if (G = max and B = min)   -> H = R’ + 1
·         else if (G = max and B ≠ min)   -> H = 3 – B’
·         else if (R = max)               -> H = 3 + G’
·         otherwise                       -> H = 5 – R’
Hue (H) lalu dikonversi menjadi derajat/degrees dengan cara mengalikan dengan 60 sehingga menghasilkan HSV dengan S dan V antara ) dan 1 dan H antara 0-360
B.      Konversi HSV ke RGB
Untuk mengkonversi balik dari HSV ke RGB ,pertama ambil nilai H (range 0-360) dan bagi dengan 60.
Hex = H/60
Lalu hitung nilai dari warna primer, warna sekunder, a, b, dan c. Warna primer adalah komponen integer dari Hex ( misal dalam C : floor(Hex) ).
Secondary colour = Hex – primary colour
a = (1-S)V
b = (1 − (S * secondary colour))V
c = (1 − (S * (1 − secondary colour)))V
Selanjutnya hitung nilai RGB dengan cara berikut :
·         if primary colour = 0 then     -> R = V,G = c,B = a
·         if primary colour = 1 then     -> R = b,G = V,B = a
·         if primary colour = 2 then     -> R = a,G = V,B = c
·         if primary colour = 3 then     -> R = a,G = b,B = V
·         if primary colour = 4 then     -> R = c,G = a,B = V
·         if primary colour = 5 then     -> R = V,G = a,B = b

Dari perhitungan di atas maka akan didapatkan nilai-nilai dari model warna RGB.
references :

Pengenalan Java Swing

Swing adalah sebuah widget toolkit untuk Java yang merupakan bagian dari Java Foundation Classes (JFC) dari Sun Microsystem. Swing adaah sebuah API (Application Programming Interface) yang menyediakan Graphical User Interface (GUI) untuk program Java dan applet. Swing dikembangkan untuk menyediakan komponen GUI yang lebih canggih dari komponen sebelumnya yang bernama AWT  dan bertujuan untuk mempermudah pengembangan aplikasi JAVA GUI.
AWT dan Swing keduanya menyediakan komponen GUI yang dapat digunakan dalam membuat aplikasi Java dan applet. Namun, tidak seperti beberapa komponen AWT yang menggunakan native code, keseluruhan Swing ditulis menggunakan bahasa pemrograman Java. Swing menyediakan implementasi platform-independent dimana aplikasi yang dikembangkan dengan platform yang berbeda dapat memiliki tampilan look and feel yang sama. Swing API dibangun dari beberapa API yang mengimplementasikan beberapa jenis bagian dari AWT. Kesimpulannya, komponen AWT dapat digunakan dengan komponen Swing.

. Komponen Swing
Package dari Swing menyediakan banyak kelas untuk membuat aplikasi GUI. Package tersebut dapat ditemukan di javax.swing. Komponen Swing ditulis menyeluruh menggunakan Java. Kesimpulannya, program GUI ditulis menggunakan banyak kelas dari package Swing yang mempunyai tampilan look and feel yang sama meski dijalankan pada beda paltform. Lebih dari itu, Swing menyediakan komponen yang lebih menarik seperti color chooser dan option pane.
Nama dari komponen GUI milik Swing hampir sama persis dengan komponen GUI milik AWT. Perbedaan jelas terdapat pada penamaan komponen. Pada dasarnya, nama komponen Swing sama dengan nama komponen AWT tetapi dengan tambahan huruf J pada prefixnya. Sebagai contoh, satu komponen dalam AWT adalah button class. Sedangkan pada Swing, nama komponen tersebut menjadi Jbutton class.
Dalam  ranah  antarmuka  pengguna,  komponen  merupakan  bagian fundamental  di  Java.  Pada  prinsipnya,  segala  sesuatu  yang  kita  lihat  di tampilan aplikasi Java adalah suatu komponen—misalnya window, menu, dan button.
Di  sisi  lain,  container  adalah  jenis  komponen  yang  “menampung”  dan mengelola  komponen-komponen  lainnya.  Idealnya,  suatu  komponen harus diletakkan di sebuah container agar ia dapat digunakan.
Komponen-komponen Swing dapat diklasifikasikan ke dalam tiga bagian, yaitu  top-level  container,  intermediate  container,  dan  komponen  atomic(tunggal).
1.       Container tingkat atas (top-level) berfungsi untuk menyediakan ruang bagi  komponen komponen  lainnya.  Container  jenis  ini  terdiri  dari JFrame, JWindow, JDialog, dan JApplet.
2.       Container  menengah  adalah  komponen  (non         top-level)  yang keberadaannya  untuk  menampung  komponen  lainnya,  misalnya panel, tabbed, dan tool bar. 
3.       Komponen  atomic  berfungsi  untuk  menampilkan  dan/atau  menerima informasi.  Contoh  komponen  atomic  adalah  text  field,  button,  dan label.
Berikut adalah daftar dari beberapa komponen Swing.
(KLIK GAMBAR BILA KURANG JELAS ^^ )

Sekilas tentang Jaringan Syaraf Tiruan (Artificial Neural Network)


Jaringan Saraf Tiruan (JST) atau Artificial Neural Network (ANN), atau juga disebut Simulated Neural Network (SNN), atau umumnya hanya disebut Neural Network (NN), adalah jaringan dari sekelompok unit pemroses kecil yang dimodelkan berdasarkan jaringan saraf manusia. JST merupakan sistem adaptif yang dapat merubah strukturnya untuk memecahkan masalah berdasarkan informasi eksternal maupun internal yang mengalir melalui jaringan tersebut. (Sumber : http://id.wikipedia.org/wiki/Jaringan_saraf_tiruan)

Jaringan saraf tiruan diperkenalkan secara sederhana pada tahun 1943 oleh McCulloch dan Pitts. Pada saat itu McCulloch dan Pitts melalui beberapa komputasi menggunakan neuron-neuron sederhana dapat mengubahnya menjadi sebuah sistem baru (disebut sistem neural) yang mempunya kemampuan komputasi yang lebih baik. Selain itu McCulloch dan Pitts juga mengusulkan pemberian bobot dalam jaringan yang dapat diatur untuk melakukan fungsi logika sederhana. Beliau-beliau ini menggunakan semacam fungsi aktivasi threshold.

Pada tahun 1958, Rosenblatt beserta Minsky dan Papert mulai mengembangkan model jaringan yang disebut dengan perceptron. Dalam model ini mereka mencoba untuk mengoptimalkan hasil iterasinya. Kemudian pada tahun 1960 Widrow dan Hoff mengembangkan model perceptron ini dengan memperkenalkan aturan pelatihan jaringan yang disebut aturan delta (sering juga disebut kuadrat rata-rata terkecil). Aturan tersebut akan mengubah bobot perceptron apabila keluaran yang dihasilkan tidak lagi sesuai dengan target yang telah ditetapkan. Hal inilah yang menyebabkan komputer dapat “belajar” dengan sendirinya. Kecepatan belajar dapat diatur dengan menggunakan parameter tertentu.

Perkembangan selanjutnya dibuat oleh Rumelhart (1986) dengan mencoba mengembangkan sistem layar tunggal (single layer) pada perceptron menjadi sistem layar jamak (multilayers), yang kemudian disebut dengan sistem backpropagation. Setelah itu, muncul beberapa model jaringan saraf tiruan lain yang dikembangkan oleh Kohonen (1972), Hopfield (1982), dan lain-lain.

Sistem jaringan saraf tiruan merupakan analogi yang berkaitan erat dengan proses berpikir dalam otak manusia. Sesungguhnya jaringan saraf tiruan merupakan pembentukan generalisasi model matematika dengan menggunakan beberapa asumsi, diantaranya:
·        - Sistem proses informasi terjadi pada banyak elemen sederhana (neuron).
·         -Sinyal yang dikirimkan di antara neuron-neuron melalui penghubung-penghubung (sinapsis).
·        - Penghubung antarneuron memiliki bobot yang akan memperkuat atau memperlemah sinyal.

·         Untuk menentukan output (target), setiap neuron menggunakan fungsi aktivasi (biasanya bukan merupakan fungsi linear) yang dikenakan pada jumlahan input yang diterima. Besarnya output akan dibandingkan (learning process) dengan suatu batas ambang (threshold).
Dengan demikian, dari asumsi-asumsi tersebut jaringan saraf tiruan ditentukan oleh 3 hal yang paling mendasar:

1.      Pola hubungan antarneuron (arsitektur jaringan),
2.      Metode untuk menentukan bobot penghubung (learning atau training method), dan
3.      Fungsi aktivasi.
Hingga saat ini jaringan saraf tiruan telah memiliki beberapa aplikasi yang banyak digunakan dalam kehidupan manusia. Aplikasi yang sering digunakan antara lain:

·         Pengenalan pola (pattern recognition)
      Jaringan saraf tiruan dapat dipakai untuk mengenali beberapa pola seperti huruf, angka, suara, bahkan tanda tangan. Hal ini sangat mirip dengan otak manusia yang mampu mengenali seseorang, tentu saja yang pernah berkenalan dengan kita.
·         Pengolahan sinyal (signal processing)
      Jaringan saraf tiruan (terutama model ADALINE (adaptive linear newton)) dapat digunakan untuk menekan derau (noise) dalam saluran telepon.
·         Peramalan (forecasting)
      Jaringan saraf tiruan juga dapat dipakai untuk meramalkan apa yang terjadi di masa depan berdasarkan pola yang terbentuk di masa lampau. Hal ini dapat dilakukan karena kemampuan jaringan saraf tiruan untuk mengingat dan membuat generalisasi dari apa yang sudah ada sebelumnya.