26 Januari 2012

Hiding My Heart

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.

Lelucon bijak

Seorang pria bijak memasuki sebuah cafe dan mulai menceritakan sebuah lelucon yang membuat semua orang dalam cafe itu tertawa. Beberapa saat kemudian pria itu mengulangi leluconnya, namun kali ini hanya beberapa orang saja yang tertawa.
Lima menit kemudian pria itu kembali menceritakan lelucon yang sama, dan ternyata gak ada yang tertawa.

Pria inipun tersenyum lebar, sambil berkata, "Bila kamu gak bisa tertawa berulang-ulang pada lelucon yang sama, lalu mengapa kamu terus menangis berulang-ulang pada masalah yang sama?"

Kesusahan hari kemarin cukuplah untuk kemarin.. Kalau masih ingin bersedih, mari kita bikin kesusahan baru. Kalau tidak bisa, bukankah lebih baik sekarang kita tersenyum... :)

- dari Muhammad Khafidh -

Einstein VS Mr Bean

Einstein dan Mr Bean duduk berdampingan dalam sebuah penerbangan. Einstein mengajak memainkan sebuah permainan tebak-tebakan.

Einstein : Aku akan mengajukan satu pertanyaan, jika Anda tidak tahu jawabannya maka Anda membayar saya hanya $ 5, dan jika saya tidak tahu jawabannya, saya akan membayar Anda $ 500.

Einstein mengajukan pertanyaan pertama:  Berapa jarak dari Bumi ke Bulan ?

Mr Bean tidak mengucapkan sepatah kata pun, merogoh saku, mengeluarkan $ 5.

Sekarang, giliran Mr Bean...

Dia bertanya kepada Einstein:  Apakah yang naik ke atas bukit dengan 3 kaki, dan akan turun dengan 4 kaki ?
Einstein melakukan pencarian internet, dan meminta semua teman-temannya yg cerdas.
Setelah satu jam mencari jawaban… akhirnya ia memberikan Mr Bean $ 500.
Einstein sambil penasaran bertanya:  Nah, jadi apa naik keatas bukit dengan tiga kaki dan turun dengan empat kaki ???
Mr Bean merogoh saku, dan memberikan Einstein $ 5. !!!