Tampilkan postingan dengan label IT. Tampilkan semua postingan
Tampilkan postingan dengan label IT. Tampilkan semua postingan

26 Januari 2012

Blind dan Non-Blind Watermarking

Watermark harus dapat diekstraksi atau dideteksi kembali bergantung pada sifat dan tujuan algoritma watermarking. Pada beberapa algoritma watermarking, watermark dapat diekstraksi dalam bentuk yang eksak, sedangkan pada sebagian algoritma yang lain, kita hanya dapat mendeteksi apakah watermark terdapat di dalam citra, sehingga prosedurnya dinamakan pendeteksian watermark
Berdasarkan cara ekstraksi watermark-nya, watermarking bisa dibedakan menjadi blind watermarking dan nonblind watermarking. Sistem blind watermarking tidak membutuhkan citra asli untuk mengekstraksi watermark. Sedangkan pada nonblind watermarking membutuhkan citra asli untuk dapat mengekstrak watermark.

Klasifikasi Watermarking Citra Digital : Robustness

Pada postingan sebelumnya kita telah membahas pengertian dasar Digital Image Watermarking. Visible watermark seringkali digunakan untuk menandai kepemilikan suatu citra. Sedangkan Invisible watermark biasanya digunakan untuk berbagai tujuan khusus yang lebih advance dan bersifat rahasia, tekniknya pun disesuaikan dengan masing-masing tujuannya. Tujuan watermarking (invisible watermarking) diantaranya adalah untuk menyembunyikan data rahasia di dalam citra (steganografi), mendeteksi apakah suatu citra sudah pernah di-edit (tamper detection), dan sebagainya. 
Invisible watermark atau jenis watermark yang tak terlihat, dapat diklasifikasikan berdasarkan tingkat kekokohan/robustness-nya, yaitu:

1.    Secure watermarking
Secure watermarking artinya watermark mampu bertahan dari non-malicious attack maupun malicious attack. Non-malicious attack merupakan serangan berupa manipulasi yang normal terjadi terhadap sebuah citra ber-watermark, misalnya kompresi, operasi penapisan, penambahan derau, penskalaan, penyuntingan, operasi geometri (translasi, rotasi, dsb), cropping dan lain-lain. Sedangkan malicious attack merupakan serangan yang bertujuan menghilangkan atau merubah watermark pada citra sehingga watermark tidak dapat dipergunakan sebagaimana mestinya.

2.    Robust watermarking
Watermark jenis ini harus mampu bertahan terhadap non-malicious attack. Watermark masih bisa diekstraksi setelah terjadi modifikasi pada citra.

3.    Fragile watermarking
Pada fragile watermarking, watermark sengaja dibuat agar mudah berubah, rusak, atau bahkan hilang ketika dilakukan modifikasi pada citra ber-watermark. Fragile watermarking digunakan pada aplikasi yang bertujuan untuk memverifikasi isi (content) citra, misalnya untuk image authentication atau tamper detection (deteksi manipulasi). Watermark yang telah rusak atau hilang adalah pertanda bahwa citra sudah mengalami manipulasi dan tidak otentik lagi.

Digital Image Watermarking : Pengertian

Saat ini segala sesuatu yang berformat digital, khususnya citra digital, sangat mudah didapatkan, disimpan, digandakan, dan disebarluaskan. Hal tersebut didukung oleh berkembangnya teknologi Internet yang kini semakin cepat dan mudah diakses. Orang dengan mudah bisa mengunggah atau mengunduh citra digital melalui Internet. Selain itu, citra digital kini sangat mudah dimanipulasi dengan menggunakan berbagai perangkat lunak yang juga mudah didapatkan. Yang menjadi permasalahan adalah apabila citra digital tersebut merupakan citra yang harus dilindungi seperti hasil seni fotografi, citra hasil penginderaan jauh, citra medis, dan sebagainya. Perlindungan harus dilakukan terkait dengan masalah kepemilikan, pelanggaran hak cipta (copyright), atau masalah keaslian citra.
Permasalahan tersebut dapat diatasi dengan menggunakan digital image watermarking. Digital image watermarking adalah teknik penyisipan informasi tertentu ke dalam citra digital (host/carrier image). Informasi yang disisipkan inilah yang disebut sebagai watermark. Watermark dapat berupa teks, logo, atau ekstraksi ciri dari host image. Penyisipan dilakukan sedemikian rupa sehingga watermark tidak merusak citra digital yang dilindungi. Selain itu, watermark yang telah disisipkan tidak dapat dipersepsi oleh mata manusia, tetapi dapat dideteksi oleh komputer.
Berdasarkan visibilitasnya, watermark pada citra digital bisa dikategorikan menjadi 2 jenis, yaitu visible watermark dan invisible watermark.
1. Visible watermark artinya watermark terlihat oleh mata manusia, biasanya berupa teks atau logo semi transparan yang ditmbahkan pada citra. Misalkan pada gambar dibawah ini, sebuah foto diberi visible watermark dengan memberikan tahun pembuatan dan nama website pemilik sebagai tanda hak cipta.
2. Invisible watermark artinya watermark disisipkan dengan teknik tertentu sehingga tidak terlihat oleh mata manusia. Mata manusia memiiki keterbatasan dalam membedakan 2 buah piksel dengan perbedaan intensitas yang sangat kecil. Hal ini lah yang dimanfaatkan dalam penyisipan watermark sehingga adanya watermark dala suatu citra digital tidak disadari oleh manusia.

21 Januari 2012

3.5 tahun kuliah di IT Telkom : Calon ST?

Gak terasa udah hampir 3.5 tahun kuliah di fakultas informatika kampus putih biru IT Telkom (STT Telkom). Tugas Akhir udah beres dan tinggal sidang hari selasa minggu depan (doakan lancar :D ). Setelah sekitar 6 bulan tidur dengan buku TA dan paper, coding siang malam, sampe nyari dokter spesialis kandungan dilakoni buat kesempurnaan TA. Tinggal semoga sidang nanti bisa lancar dan lulus :D, amin.

Kuliah di IT Telkom terutama Teknik Informatika bukanlah hal yang mudah. Banyak teman2 yang gak bisa survive akhirnya kuliah molor bahkan banyak juga yang cabut. Saat ini mungkin hanya sekitar 75% teman sekelas di IF-32-01 yang masih tersisa. Yang lain udah banyak yang pindah karena gak kuat atau alasan lain. Seorang senior yang bekerja di Microsoft bilang bahwa Tugas Besar mata kuliah di IT Telkom (informatika) adalah yang terberat di Indonesia, wow!. Tugas besar disini hampir setara dengan Tugas Akhir kampus lain.Selain itu kuliah disini relatif mahal (untung pas angkatan 2008 biaya masih cukup murah, anak angkatan 2011 biaya kuliahnya udah hampir 2 kali lipat!!) tapi jika kuliah dilakoni sungguh2, saya rasa biaya itu cukup worth it lah. Selain itu godaan disini cukup besar, eksotisnya kota Bandung, pergaulan malam, foya-foya selalu mengiming-imingi kita. Intinya kalo mau sukses kuliah di IT Telkom kita harus bener2 survive!.

Sekian dulu ceritanya, lain kali akan saya bahas lebih detail pengalaman saya :D

11 Januari 2012

CodeIgniter (CI)

Code Igniter adalah sebuah framework PHP. Framework itu sendiri adalah suatu kerangka kerja yang berupa sekumpulan folder yang memuat file-file php yang menyediakan class libraries, helpers, plugins dan lainnya . Framework menyediakan konfigurasi dan teknik coding tertentu. Code Igniter dapat di peroleh secara gratis, dengan mengunduhnya di www.codeigniter.com.

Konsep MVC (Model View Controller) adalah konsep pemisahan antara logic dengan tampilan dan database. Manfaat konsep ini adalah, membuat coding logic lebih simple, karena sudah di pisah dengan code untuk tampilan dan membuat programmer dapat bekerja secara terpisah dengan designer. Programmer mengerjakan logic, sedangkan designer berkutat dengan design dan tampilan.

1.    Model
Merupakan code struktur data. Model berisi fungsi di dalam pengolahan database. Sintaks SQL masuk di sini.
2.    View
Merupakan code untuk menampilkan tampilan suta program. Tampilan dapat berupa web page, header, footer dan apa saja yang berjenis tampilan.
3.    Controller
Merupakan kode untuk logic, algoritma dan sebagai penghubung antara model, view, dan sumber lain yang di perlukan untuk mengolah HTTP request dan generate web page.

Code Igniter menerapkan pola MVC yang fleksibel, karena Model tidak harus di gunakan. Anda dapat hanya menggunakan Controller dan View saja. Jika tidak memerlukan pemisahan di dalam struktur data dan database atau menganggap penggunaan Model hanya menambah kompleks aplikasi dengan keuntungan yang kurang sebanding, maka Model bisa tidak digunakan.

Fuzzy Logic : Kelebihan dan Kekurangan

Fuzzy Logic (FL) pertama diperkenalkan oleh Lotfi. A. Zadeh. Tidak seperti logika boolean atau logika digital yang hanya bernilai 0 atau 1, logika fuzzy ini bernilai antara 0 dan 1. Fuzzy logic digunakan untuk menangani  fuzziness (kesamaran) dengan cara merepresentasikan nilai yang bersifat linguistik. Misalnya besar, kecil, sedang, pelan, agak cepat, cepat dan sebagainya. Permasalahan yang tidak dapat dilihat sebagai ‘hitam’ atau ‘putih’ seperti ini lebih sering terjadi di dunia nyata. Terdapat hal ‘abu-abu’ yang jika diperhitungkan dapat membua kita menentukan keputusan yang lebih adil.
Secara umum dalam sistem logika fuzzy terdapat empat buah elemen dasar, yaitu:
1.  Berbasis rule, yang berisi aturan-aturan secara linguistik yang bersumber dari pakar (atau data training).
2.  Suatu mekanisme pengambilan keputusan (inference engine), yang memodelkan bagaimana pakar mengambil suatu keputusan dengan menerapkan pengetahuan (knowledge).
3.  Proses fuzzification, yang mengubah nilai crisp ke nilai fuzzy.
4.  Proses defuzzification, yang mengubah nilai fuzzy hasil inference ke nilai crisp.

Kelebihan Fuzzy Logic
Diibandingkan dengan sistem logika lain, fuzzy logic bisa menghasilkan keputusan yang lebih adil dan lebih manusiawi. Fuzzy logic memodelkan perasaan atau intuisi dengan cara merubah nilai crisp menjadi nilai linguistik dengan fuzzification dan kemudian memasukkannya ke dalam rule yang dibuat berdasarkan knowledge.
Kelebihan yang kedua adalah Fuzzy logic cocok digunakan pada sebagian besar permasalahan yang terjadi di dunia nyata. Permasalahan di dunia nyata kebanyakan bukan biner dan bersifat non linier sehingga fuzzy logic cocok digunakan karena menggunakan nilai linguistik yang tidak linier. Fuzzy dapat mengekspresikan konsep yang sulit untuk dirumuskan, seperti misalnya “suhu ruangan yang nyaman”.
Pemakaian fungsi keanggotaan memungkinkan fuzzy logic untuk melakukan observasi obyektif  terhadap nilai-nilai yang bersifat subyektif. Selanjutnya fungsi keanggotaan ini dapat dikombinasikan untuk membuat pengungkapan konsep yang lebih jelas.

Kekurangan Fuzzy Logic
Selain kelebihan yang telah dijelaskan di atas, ternyata Fuzzy Logic juga memiliki kekurangan. Dalam mendesain fuzzy logic, sering ditemukan kesulitan dalam menentukan preferensi atau parameter agar output yang dihasilkan akurat, yaitu :
1.    Model Mamdani atau Sugeno atau model lain?
Penentuan model inference harus tepat, Mamdani biasanya cocok untuk masalah intuitive sedangkan sugeno untuk permasalahan yang menangani control
2.    Jumlah Nilai Linguistik untuk setiap variabel?
Kita harus merubah nilai crisp menjadi nilai linguisik. Jumlah dari nilai linguistik yang digunakan harus sesuai dengan permasalahan yang akan kita selesaikan.
3.    Batas-batas Nilai Linguistik?
Batas-batas nilai linguistik akan sangat berpengaruh pada akurasi fuzzy logic.
4.    Fungsi Keanggotaan: Segitiga, trapesium, phi, …?
5.    Fuzzy rule yang tepat?
Parameter-parameter di atas lah yang membentuk  knowledge. Knowledge tersebut bisa berasal dari pengetahuan pakar maupun data training. Pemilihan data training pun bisa menjadi kesulitan tersendiri, sebab data yang digunakan harus merepresentasikan data yang sebenarnya. Pemilihan data training akan sangat menentukan knowledge dan akurasi fuzzy logic yang dihasilkan. Pada intinya akurasi fuzzy logic tergantung dari pakar atau data training.

Referensi
1.    Suyanto. 2007. Artificial Intelligence: Searching, Reasoning, Planning and Learning. Informatika, Bandung Indonesia
2.    Nugroho, Anto Satriyo. 2003. Pengantar Softcomputing. Modul Kuliah Umum IlmuKomputer.Com. http://asnugroho.net/papers/ikcsc.pdf
3.    http://wangready.wordpress.com/2011/05/03/fuzzy-logic/
4.    http://digilib.ittelkom.ac.id/index.php?option=com_content&view=article&id=506:fuzzy-system&catid=20:informatika&Itemid=14

Pengalaman Kerja Praktek di PT. Industri Telekomunikasi Indonesia (PT. INTI)

Apabila anda merupakan seorang warga kota Bandung pasti sudah tidak asing lagi dengan PT. INTI. Perusahaan yang memiliki kantor pusat di Jalan Moh Toha 77 Bandung ini merupakan salah satu perusahaan yang menjadi ciri kota Bandung. Dengan gedung utama yang tinggi disertai logo INTI yang besar membuatnya mudah dikenal oleh warga Bandung dan menjadi salah satu landmark.

Perusahaan yang memiliki hampir 700 orang karyawan ini sudah berdiri sejak sekitar 35 tahun yang lalu. Saat ini PT. INTI telah merubah orientasi bisnis dari yang semula berbasis manufaktur sekarang menjadi perusahaan yang menyediakan solusi kesisteman dalam bidang infokom serta integrasi teknologi. Salah satu contoh bisnis PT. INTI diantaranya menangani solusi dan layanan jaringan tetap dan seluler.

Dari tahun ke tahun PT. INTI tidak pernah absen menerima siswa atau mahasiswa yang akan melaksanakan KP dan PKL. Di perusahaan ini terdapat bagian diklat yang khusus menangani KP dan PKL. Pada saat melamar KP ke bagian diklat kami  dilayani dengan sangat baik. Sudah terdapat sistem khusus yang mencatat para peserta KP dan pembimbing lapangan yang masih tersedia. Setelah bertemu dengan Kepala Diklat, Bapak Kasnanta, lamaran KP kami langsung disetujui dan dipertemukan dengan Pak Iwan Mohamad Ridwan, Kepala Urusan SISFO Divisi MSDM, sebagai pembimbing lapangan kami.

Pada kerja praktek ini saya bekerja sebagai satu tim bersama rekan saya Saiful Saputra. Di divisi MSDM pak Iwan memberikan tugas untuk membuat aplikasi web untuk permohonan dokumen. Proses bisnis permohonan dkumen sebenarnya sudah berjalan secara manual. Kami diminta untuk mendesain sistem yang tepat agar proses bisnis ini menjadi lebih mudah dan efisien.

Pada pertengahan KP, setelah presentasi progres report, aplikasi kami dirasa sudah cukup. Untuk mengisi sisa waktu KP pak Iwan menawarkan untuk membantu pembuatan aplikasi mobile di Divisi RICE. Kami pun setuju dan dipertemukan dengan Bapak Gerhard Simanjuntak, Manajer RICE. Disini kami diminta untuk menambahkan fitur pemutar suara pada Aplikasi Doa Sehari-Hari berbasis J2ME bersama pak Sapto.

Masalah yang dihadapi
Permasalahan yang pertama dihadapi pada pelaksanaan KP di Divisi MSDM PT. INTI adalah tidak ada seat kosong yang tersedia, hanya ada meja rapat di ruangan tersebut. Selain itu, sistem keamanan jaringan di PT. INTI tidak membolehkan akses internet dari komputer atau laptop yang tidak terdaftar. Hal ini cukup menjadi masalah karena kami membutuhkan akses internet untuk mencari referensi. Sebenarnya peraturan kerja praktek di PT. INTI adalah kita wajib hadir pada hari kerja dari pukul 07.00 sampai pukul 12.00. Namun, setelah berdiskusi dengan pak Iwan akhirnya kita dipersilahkan untuk mengerjakan aplikasi dirumah dan hanya perlu hadir 2 kali seminggu untuk laporan progres dan diskusi. Kendalanya adalah kita tidak bisa sewaktu-waktu meminta bimbingan jika terdapat masalah atau pertanyaan.

Kendala teknis yang dihadapi sudah pasti ada. Yang pertama, kami tidak familiar dengan framework CodeIgniter sehingga kita harus benar-benar belajar dari awal. Kendala kedua adalah kita tidak boleh mengakses database karyawan milik PT. INTI, padahal aplikasi kami sangat berhubungan dengan database.
Setelah pelaksanaan KP di divisi MSDM, kami kemudian berpindah ke divisi RICE. Suasana di RICE jauh berbeda dengan MSDM. Sebelumnya kami terbiasa bekerja dengan pak Iwan yang ramah dan banyak mengajari kami. Sedangkan di RICE, jadwal pembimbing disini, pak Sapto, tidak menentu dan kadang sulit untuk ditemui dan berkomunikasi. Seringkali kami harus menunggu untuk waktu yang lama. Disini kami benar-benar bekerja sendiri dan hanya mempresentasikan progres saja.

Kami disini mengerjakan aplikasi berbasis J2ME yaitu aplikasi Doa Sehari-Hari.Meskipun kami sudah terbiasa dengan Java Standard Edition, tapi untuk mengerjakan aplikasi J2ME adalah pengalaman kami yang pertama. Lai-lagi kami harus mempelajari J2ME dari nol dan tentunya harus memahaminya dengan cepat karena terbatasnya waktu kerja praktek. Selain itu, aplikasi yang akan kami lanjutkan ternyata tidak memiliki dokumentasi yang lengkap sehingga kami harus mempelajari hanya dari baris-baris kodenya saja.

Penyelesaian Masalah
Mengenai tidak adanya seat kosong serta kesulitan akses internet, untungnya pak Iwan mengerti akan hal ini. Beliau memperbolehkan kami mengerjakan aplikasi ini di kos dengan syarat tetap hadir 2 kali seminggu untuk melakukan laporan, presesntasi, maupun diskusi.

Kurangnya waktu dikantor ini kami atasi dengan benar-benar memanfaatkan waktu pertemuan dengan pak Iwan. Untungnya pak iwan seorang yang friendly dan mudah akrab dengan kami. Beliau terlihat sangat antusias bila kami datang untuk berdiskusi maupun laporan, bahkan betah diskusi berlama-lama dari pagi hari hingga menjelang istirahat siang. Seringkali beliau memberikan motivasi dan cerita-cerita yang membuat kami bersemangat dan membuat KP di MSDM menjadi sangat menyenangkan.

Karena kami belum familiar dengan framework CodeIgniter, kami mengatasinya dengan meminjam buku dan CD CodeIgniter dari teman. Kami juga mencari referensi dan video tutorial dari Internet. Kami tidak punya waktu lama untuk belajar sehingga kami belajar sambil langsung mengerjakan aplikasinya. Sedangkan mengenai kendala akses databse, pak Iwan mengatakan bahwa kami cukup membuat database dummy sendiri untuk mengembangkan aplikasi ini. Selanjutnya beliau sendiri yang akan mencoba mengintegrasikannya dengan database perusahaan.

Setelah berpindah ke RICE, kendala pertama dalah pertemuan dan komunikasi dengan pembimbing disini, pak Sapto. Kehadiran dan waktu beliau di kantor yang tidak menentu cukup menyulitkan kita. Untuk mengatasi hal ini kami mencoba meminta nomor kontaknya dan menghubungi beliau sebelum pertemuan untuk membuat janji. Namun, seringkali kita tetap harus menunggu cukup lama.

Pada tahap awal pengembangan aplikasi doa sehari-hari, karena kami belum terbiasa dengan J2ME, pak sapto memberikan waktu untuk mempelajari J2ME dan versi awal dari aplikasi yang akan kita kembangkan tersebut. Untuk belajar J2ME kami juga meminjam buku dan meminta bimbingan kepada teman kami yang kebetulan juga mengerjakan aplikasi J2ME dan sudah lebih dulu mulai.

Melaksanakan KP di 2 divisi yang berbeda ini membuat kita menjumpai karakter orang yang berbeda-beda dan dituntut untuk tetap bisa menjalani komunikasi dengan baik.

Penutup
Banyak hal yang saya dapatkan dari pelaksanaan kerja praktek di PT. INTI yang bisa saya jadikan bekal dan pelajaran, di antaranya :
1.    Saya mulai belajar menghadapi banyak karakter orang yang berbeda-beda. Melaksanakan KP di 2 divisi yang berbeda ini membuat kami menjumpai berbagai tipe orang dan dituntut untuk tetap bisa menjalani komunikasi dengan baik.
2.    Saya belajar bagaimana bekerja sama dalam tim dengan baik. Dengan keterbatasan waktu dan kemampuan kami, kami belajar bagaimana membagi tugas dan memanajemen waktu dengan tepat untuk belajar sambil bekerja sehingga tugas kami selesai dengan baik dan tepat waktu.
3.    Saya belajar untuk bekerja dibawah tekanan dan tuntutan untuk tepat waktu dan tidak asal-asalan. Pada pengerjaan aplikasi Doa Sehari-Hari misalnya, aplikasi ini rencananya akan di-bundle di HP produksi PT. INTI sehingga aplikasi ini harus benar-benar berjalan dengan baik. Seringkali pak Sapto merasa aplikasi kami masih kurang sehingga kami harus bersabar dan terus memperbaikinya.
4.    Ilmu apapun selama kita mau belajar pasti kita bisa memahaminya meskipun dalam waktu yang singkat. Kami membuktikannya bahwa meskipun kami tidak bisa menggunakan CodeIgniter maupun J2ME tapi pada akhirnya kita bisa mengerjakan tugas-tugas tersebut karena kami dituntut belajar.

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.