Thursday, December 24, 2009

Ski #1 [Phoenix Park]














Hidup itu seperti bermain ski

Kadang terjal kadang landai
Kadang kita takut duluan melihat turunan yang terjal seperti kita kadang takut duluan memikirkan masa depan
Tidak percaya pada diri sendiri membuat kita jadi lemah dan mudah jatuh

Hidup itu seperti bermain ski

Orang-orang mencapai tempat tujuan dengan kecepatan dan gaya yang berbeda
Ada yang sangat cepat tapi tidak bisa mengontrol geraknya sendiri
Bisa-bisa terjatuh, terpleset, menabrak sesuatu atau orang lain
Ada yang berhati-hati dan bisa mengontrol gerak dan kecepatannya
Seperti hidup, orang yang tidak bisa mengontrol dirinya sendiri bukan hanya membahayakan diri sendiri tapi juga membahayakan orang lain

Hidup itu seperti bermain ski

Friday, December 11, 2009

Self Organizing Map (SOM)


       SOM? Som? Somay? T_T Entah kenapa waktu mau nulis postingan ini bawaanya kepikiran somay terus,, Mau masuk musim dingin kali ya? Bawaannya jadi ngantuk dan laper terus, ehehe,,

       Self Organizing Map adalah salah satu tipe dari artificial neural network(ANN), termasuk tipe belajar tanpa bimbingan(unsupervised learning), juga termasuk competitive learning. Neuron-neuronnya biasanya dibuat beberapa dimensi, tapi yang sering di pakai adalah 1 dimensi atau 2 dimensi. Model SOM sebagai ANN diperkenalkan oleh Professor Teuvo Kohonen dari Finlandia, sehingga SOM juga sering disebut Kohonen map.


       Prosesnya sendiri mirip dengan ANN yang lain, yaitu merubah nilai-nilai weight pada neuron untuk tujuan tertentu. SOM yang sering di pakai adalah yang berstruktur 2 dimensi. Setelah dimasukkan input dan dilakukan proses pembelajaran (learning), neuron-neuron yang mempunyai nilai weight yang mirip akan berkumpul berdekatan sehingga terbentuk cluster-cluster. Kalau kita visualisasikan maka akan terlihat seperti peta.

       Karena bisa membentuk cluster-cluster pada 2 dimensi (sehingga memudahkan visualisasi data), SOM biasanya digunakan untuk mengklasifikasi informasi berdimensi tinggi ke dimensi lebih rendah (biasanya 2 dimensi) dengan tetap mempertahankan topologinya.

       Pada proses pembelajaran, perubahan weight menggunakan rumus Wv(t + 1) = Wv(t) + Θ (v, t) α(t)(D(t) - Wv(t)) , dimana Wv(t) adalah weight sebelum dirubah, Wv(t + 1) setelah dirubah, α(t) adalah kadar pembelajaran(learning rate), Θ (v, t) adalah fungsi penentu jumlah neuron tetangga yang memberi efek(neighborhood function), dan D(t) adalah nilai input. Ketika menentukan pemenang(winner) pada neuron ditentukan dengan neuron yang paling mirip/dekat dengan input, menggunakan Euclidean distance.

Secara ringkas algoritmanya adalah sebagai berikut:

Langkah 1 : Tentukan nilai weight awal secara random.
Langkah 2 : Set jumlah tetangga yang memberi pengaruh & kadar pembelajaran (atara 0 dan 1).
Langkah 3 : Selama syarat menghentikan proses belajar belum terpenuhi ulang Langkah 4 sampai Langkah 8.
    Langkah 4 : Untuk setiap input x lakukan Langkah 5 sampai 8.
       Langkah 5 : Hitung jarak/perbedaan antara input dengan setiap node menggunakan Euclidean distance.
       Langkah 6 : Tentukan node pemenang(winner) yaitu yang memiliki jarak terpendek.
       Langkah 7 : Update nilai weight node pemenang serta tetangganya yang ada dalam radius jumlah tetangga yang memberi pengaruh.
       Langkah 8 : Kurangi nilai kadar pembelajaran & jumlah tetangga yang memberi pengaruh.
       Langkah 9 : Tes apakah syarat untuk menghentikan proses sudah terpenuhi.

       Huh,, fiuh,, kalau dijelaskan dengan rumus dan kata-kata sepertinya ribet banget ya! Jadi saya lampirkan contoh program SOM sederhana yang dibuat dengan MFC(C++) dan Visual Studio 2005. Program ini menggunakan komponen warna R, G, B sebagai weight setiap neuronnya, sehingga lebih mudah di visualisasi dan terlihat jelas pembagian clusternya. Jumlah iterasi sebagai syarat berhenti proses pembelajaran.

Ini adalah kondisi awalnya. Neuron yang belum dilakukan proses pembelajaran memiliki nilai weight yang acak(random).

Pada bagian 'Set Parameter' bisa kita pilih warna-warna yang akan kita pakai sebagai input, kadar pembelajaran, jumlah neuron tetangga yang memberi efek, serta jumlah iterasi proses belajar.


Setelah di klik tombol 'Learning' maka akan terjadi proses pembelajaran dan terbentuk cluster-cluster.

Execute file dan source codenya bisa di download di sini.

Referensi :
- http://en.wikipedia.org/wiki/Self-organizing_map
- 뉴로 컴퓨터, 오창석저, 충복대학교 컴퓨터공학과

Monday, November 23, 2009

اللَّهُمَّ إِنِّيْ أَسْتَخِيْرُكَ بِعِلْمِكَ ، وَأَسْتَقْدِرُكَ بِقُدْرَتِكَ ، وَأَسْأَلُكَ مِنْ فَضْلِكَ الْعَظِيْمِ فَإِنَّكَ تَقْدِرُ وَلاَ أَقْدِرُ، وَتَعْلَمُ وَلاَ أَعْلَمُ ، وَأَنْتَ عَلاَّمُ الْغُيُوبُ ، اللَّهُمَّ إِنْ كُنْتَ تَعْلَمُ أَنْ هَذَا الأَمْرَ ( ) خَيْرٌ لِيْ فِي دِيْنِي وَمَعَاشِي وَعَاقِبَةِ أَمْرِي عَاجِلَهُ وَآجِلَهُ فَاقْدِرْهُ لِي وَيَسِّرْهُ لِي ، ثُمَّ بَارِكْ لِي فِيْهِ ، وَإِنْ كُنْتَ تَعْلَمُ أَنَّ هَذَا الأَمْر( ) شَرٌّ لِي فِي دِيْنِي وَمَعَاشِي وَعَاقِبَةِ أَمْرِي عَاجِلَهُ وآجِلَهُ فَاصْرِفْهُ عَنِّي وَاصْرِفْنِيْ عَنْهُ ، وَاقْدُرهُ لِيْ الخَيْرَ حَيْثُ كَانَ ، ثُمَّ ارْضِِى بِهِ

Wednesday, November 11, 2009

Pepero Day


      11 November hari apa? Di Korea, setiap 11 November (11/11) disebut sebagai hari Pepero Day. Pepero day ini sebagai bentuk promosi salah satu produk Lotte. Pepero ini biskuit seperti biskuit Jepang, Pocky yang di produksi oleh Glico. Karena bentuknya panjang-panjang seperti angka satu pada tanggal 11 bulan 11.


      Di hari yang mirip seperti hari Valentine ini, dimana muda-mudi saling memberikan Pepero kepada orang-orang yang dekat dengan mereka dan mereka sayangi. Mulainya sejak kapan juga tidak pasti. Aku tanya ke teman dan kakak kelas juga mereka tidak tahu. Tapi dari wikipedia ditulis bahwa Pepero Day ini dimulai tahun 1994 oleh murid SMP di Busan sebagai pengganti hadiah yang berarti "tinggi dan langsing seperti Pepero".
      Ternyata pada saat Pepero Day, bukan hanya produk Pepero dari Lotte saja yang laris, produk-produk biskuit imitasi yang berbentuk mirip pun ikut laris manis.
      Ada-ada aja ya di Korea. Ndak ikut-ikutan ah~ hihi~

Filter Retinex


       Filter ini biasanya dipakai untuk meningkatkan kualitas gambar (image enhancement). Emang kualitas gambar yang baik yang bagaimana sih?
      1. Detailnya jelas, sehingga kita bisa mengambil banyak informasi dari gambar tersebut
      2. Terlihat natural (ketika dilihat dengan mata)
      3. Jelas iluminasi(penerangan)nya
      4. Ada gambar cowo cakep dan cewe cantiknya, halah,,

       Cukup banyak peneliti yang meneliti filter ini. Setiap orang memodifikasi teori retinex untuk diaplikasikan di filter retinex mereka sehingga sekarang banyak sekali variasi dari filter ini. Antara lain seperti yang diteleti oleh Akang D. J. Jobson dan teman-temannya. (sok kenal mode on lagi)

       Menurut model pembentukan gambar (image formation model), sebuah gambar adalah gabungan dari komponen iluminasi dan komponen refleksi(reflectance).

       Tujuan dari metode Retinex ini untuk memisahkan dua komponen tersebut. Memperbaiki warna-warna pada gambar dengan membuang iluminasi yang membuat warna berubah.


____________ to be continued __________________

Retinex


Kekonstanan warna (color constancy)

       Kekonstanan warna adalah salah satu sifat yang ada pada pengelihatan manusia yang membuat manusia melihat sebuah objek dengan warna yang sama dalam kondisi iluminasi(penerangan/pencahayaan) yang berbeda. Misalnya sebuah apel yang berwarna hijau akan terlihat berwarna hijau di bawah sinar matahari siang, tetap bewarna hijau di bawah sinar matahari senja atau di dalam kamar yang agak redup. Hal ini memudahkan manusia untuk mengidentifikasi sebuah objek.
       Contohnya bisa kita lihat pada gambar berikut


       Kotak selang-seling hitam dan putih terlihat begitu jelas. Coba, coba,, kotak A warnanya apa? Hitam? Ok,,, Kotak B warnanya apa? Putih? Ok,, Terlihat jelas kan bedanya? Coba kita hapus gambar lain kecuali gambar 2 kotak itu!


Kaget kan? Ternyata 2 kotak itu memiliki warna yang sama!
       Itu yang dimaksud dengan sifat kekonstanan warna, dimana pengelihatan manusia beradaptasi dengan gambar disekelilingnya sehingga dapat mempertahankan kekonstanan warna hitam pada setiap kotak hitam dan warna putih pada setiap kotak putih. Hal ini membuktikan bahwa manusia tidak melihat hanya dengan mata, namun juga dengan otak(terutama bagian korteks otak tengah).


Teori Retinex

       Retinex berasal dari kata retina dan cortex yang berarti bahwa dua organ ini berperan dalam proses melihat. Yang dibuktikan dengan contoh kekonstanan warna yang dijelaskan di atas. Teori ini disampaikan oleh Bang Edwin H. Land (Bang? ahaha,, sok kenal mode on) pada tahun 1986.


Beda pengelihatan manusia dan kamera

       Seperti pada teori retinex, pengelihatan manusia dilakukan dengan mata dan otak, sehingga ketika iluminasinya rendah kita masih bisa melihat benda dengan cukup jelas. Sedangkan kamera tidak bisa mengontrol, sehingga tidak jarang apa yang kita lihat melalui mata berbeda dengan yang kita coba abadikan di sebuah foto. Iya kan?


Filter Retinex

       Kenapa namanya 'filter'? Sesuai artinya yaitu saringan, ketika kita menyaring kita memisahkan sesuatu sehingga tinggal hal-hal yang kita inginkan saja yang tersisa. (Yang lainnya, hal-hal yang tidak diinginkan, atau yang kita istilahkan dengan 'sampah'/'noise', kita buang)
       Filter ini terinspirasi oleh cara kerja pengelihatan manusia yang bisa beradaptasi sendiri dalam berbagai kondisi iluminasi, seperti pada teori Retinex, sehingga filter ini disebut filter Retinex. :)
       Tentang filter Retinex akan dijelaskan di postingan berikutnya~ Dadah~

Sumber :
[1] http://en.wikipedia.org/wiki/Color_constancy

Friday, November 6, 2009

Sudah siap?


      Kebanyakan hal yang datang dalam hidup ini tidak pernah perduli apakah kita sudah siap menerimanya atau belum. Misalnya ...

Ujian
      Maksud contoh 'ujian' disini ujian di sekolahan. Kalau sudah jadwalnya ujian, ya, mau ga mau harus dijalanin. Jarang sekali ada guru/dosen/pengajar yang bertanya dulu 'Kamu sudah siap ujian? Kalau sudah siap, baru kita ujian.' Mungkin kalau ditanya begitu sebagian besar murid akan terus menunda ujian karena merasa belum siap, mungkin ujiannya malah tidak akan pernah terlaksana.

Cobaan
      Begitu juga dengan cobaan yang bisa berupa kecelakaan, bangkrut, bencana alam, sakit dan lain-lain. Kalau ujian mungkin masih mending, karena ada jadwalnya, sedangkan cobaan datangnya begitu tiba-tiba. Tentu saja kita mengatakan 'tiba-tiba' karena hampir tidak ada orang yang mempersiapkan datangnya cobaan. Mungkin lucu bagi kita mendengar istilah 'siap-siap diri untuk bangkrut', 'siap-siap diri untuk terkena bencana alam', atau 'siap-siap diri untuk sakit'.

Kematian
      'Kamu sudah siap untuk mati?' Kalau ada yang bertanya seperti itu, apa yang akan kamu jawab? Mungkin kalau saya sendiri cuma terdiam dan merinding jika ditanya seperti itu. Apa yang akan terjadi di akhirat nanti mengingat amalan di dunia sekarang yang cuman segini.
      Tapi itu dia justru yang penting, banyak mengingat dan mempersiapkan kematian akan membuat hidup kita jadi lebih lurus -karena takut berbuat buruk yang berakibat dibalas di akhirat- dan lebih berharga dan ingin membuat hidup jadi lebih bermanfaat-karena ada akhirnya, yaitu mati-.
      Kematian yang datangnya tidak pernah menunggu kita siap atau belum ini bisa datang kepada kita atau orang-orang disekitar kita. Sayangi orang disekitar kita karena entah waktu kapan maut bisa saja merenggut mereka.

Jodoh
      Jodoh,, ah~ Ada yang sudah siap jiwa, umur, materi, namun jodohnya belum kunjung datang,, Ada yang orang yang kelabakan sendiri ketika akan dipinang karena berbagai alasan belum siap seperti merasa belum siap jiwanya, belum cukup materinya, belum siap mengurus orang lain yang akan menjadi suami/istrinya, belum siap mengurus anak, belum membahagiakan orang tua, atau dengan alasan belum bisa masak!
      Memang bersatu dengan jodoh, menikah, bisa direncanakan dan dipersiapkan, tapi dari cerita beberapa teman, jodoh mereka datang -permintaan menikah- bukan ketika mereka 100% siap.
      Ada cerita lucu dari obrolan kakak-kakak kelasku.
      kakak kelas itu : Ah,, pengen menikah. Kapan ya aku menikah?
      kakak kelas lain : Ya, menikahlah,, Kamu kan sudah dapat pekerjaan.
      kakak kelas itu : Iya,, tapi masalahnya menikah dengan siapa?
      kakak kelas lain : Lha? Kamu kan punya pacar.
                           Ya, menikahlah dengan pacarmu!
      senior itu : Yah,, itu kan pacar. Bukan berarti harus menikah.
      Waduh,, kalau bukan kakak kelas, rasanya pengen aku jitak!

      Tentu saja selain dari 4 hal ini banyak sekali yang harus kita persiapkan. Dan banyak hal itu tidak akan bertanya dan 'berpermisi' dulu sebelum datang. Cuma kita yang harus selalu bertanya pada diri sendiri 'Apakah aku sudah siap?'

Thursday, October 29, 2009

Menyeting OpenCV 2.0 dan Visual Studio 2005


      Untuk yang baru berkenalan dengan OpenCV mungkin sedikit bingung bagaimana cara menggunakannya di Visual Studio 2005, karena paket OpenCV 2.0 tidak termasuk file .lib untuk VS dan harus dibuild sendiri oleh user.
      Berikut step by step untuk menyeting OpenCV 2.0 library di Visual Studio 2005.

0. Pastikan anda sudah punya program Visual Studio 2005
1. Pertama download dan install OpenCV 2.0
Setingan default letak direktori OpenCV adalah 'C://OpenCV2.0'
2. Download dan install CMake
3. Kemudian jalankan program CMake

4. Pada bagian 'Where is the source code' masukan folder dimana file OpenCV2.0 berada

5. Pada bagian 'Where to build the binaries' masukan path direktori tujuan.
Misalnya saya membuat folder baru di C: dengan nama 'cmake_binary_dir' dan ingin saya masukkan ke folder tersebut. Jadi saya masukkan 'C://cmake_binary_dir'
6. Setelah itu klik 'configure' dan akan muncul seperti tampilan berikut.
Ganti pilihan pada 'Specify the generator for this project' menjadi 'Visual Studio 8 2005' dan klik 'Finish'

7. Akan muncul tampilan seperti ini.

Warna merah bukan berarti error ya, hihi,, Bisa coba klik 'configure' sekali lagi kalau mau menghilangkan warna merah tersebut.
8. Kemudian klik 'generate' maka CMake akan bekerja. Kemudian kalau kita lihat di direktori tujuan maka akan terlihat seperti gambar berikut.

9. Buka OpenCV solution (project di visual studio 2005). Ganti setingan 'Debug' menjadi 'Release'seperti pada gambar berikut.

10. Kemudian klik 'build' -> 'build solution'

11. Setelah di build. Klik 'tool' -> 'option'

12. Klik bagian 'VC++ directory'

13. Ganti bagian yang ditunjuk menjadi 'Include file'

14. Tambahkan direktori dimana header-header file OpenCV berada. Klik gambar yang ditunjuk untuk menambah direktori. Kemudian klik 'Ok'
Untuk setingan default, direktori header file berada di 'C://OpenCV2.0\include\opencv'

15. Kemudian ganti bagian yang ditunjuk menjadi 'library file'

16. Kemudian tambah direktori dimana library file berada. Untuk menambah direktori klik gambar yang ditunjuk. Setelah itu klik 'Ok'.
Seperti yang disebutkan di poin no 5, saya menaruh hasil CMake di 'C://cmake_binary_dir', jadi path direktori yang saya masukkan adalah 'C://cmake_binary_dir\lib\release'.


Langkah berikut menyeting library di project yang akan dibuat.
17. Jalankan program Visual Studio 2005. Buat project baru dengan mengklik 'file' -> 'make new(N)'-> 'project'

18. Pilih 'Win32 Console Application Program'. Kemudian masukkan nama file dan klik 'ok'.

19. Ikuti seperti tampilan berikut.


20. Tambahkan file .cpp dengan mengklik kanan pada 'source file' ->'add'->'add(D)'->'new item'

21. Pilih 'C++ file', masukan nama file, dan klik 'add'.

22. Klik kanan pada project dan masuk ke 'property'.

23. Pada jendela property, pilih bagian 'linker'->'input'->kemudian tambahkan file library yang diperlukan pada bagian yang ditandai.

24. Copy dll file yang diperlukan ke direktori project.


25. Yuhu~ sekarang sudah selesai setingannya!! Anda bisa mulai mencodingcoding. Misalnya menampilkan gambar dengan kode seperti dibawah ini. Selamat ber happy OpenCV~


Fiuh,, akhirnya selesai juga ngepos postingan ini,, karena saya pakai Visual Studio 2005 yang berbahasa Korea, jadi versi bahasa inggrisnya saya tulis yang seingat saya saja, kalau sedikit berbeda harap dimaklumi,, Semoga bermanfaat

Tuesday, October 20, 2009

Pindahan!!!#4 [kakek love nenek]


      Karena semester ini aku tidak ada kelas di kampus di universitas Kyungsung aku belajar di lab di universitas Busan. Supaya tidak capai bolak-balik aku cari tempat tinggal di dekat universitas Busan di bantu oleh seniorku. Sempat susah juga nyari tempat tinggal yang cocok. Entah ga cocok harganya atau fasilitasnya.

      Setelah menimbang-nimbang akhirnya aku putuskan untuk tinggal di tempat yang paling akhir kami coba lihat. Ini pertama kalinya aku tinggal ngekos di dalam rumah keluarga korea (kalau homestay sih udah pernah sebelumnya). Yang punya rumah itu kakek-kakek dan tinggal hanya bersama istrinya. Di kamarku tidak ada apa-apa cuma ada 1 lemari baju, juga tidak ada internet. Aku pikir ga mengapa toh cuma pulang untuk tidur dan sisanya lebih sering berada di lab.

      Cerita lucu waktu cari rumah. Aku mau tanya tentang jaringan internet disana supaya lebih mudah kontak dengan keluarga.
Aku : "Kek, disini bisa pakai internet?"
Si kakek : "Boleh aja pakai, asal jangan habis listrik banyak."

Sampai di jalan aku kepikiran, kok si kakek jawabnya agak kurang nyambung. Waktu aku cek lagi ternyata ga ada jaringan internet disana, si kakek sepertinya kurang mengerti internet itu apa. Mungkin di kiranya asal ada komputer bisa internetan. Mungkin salah juga aku tanyanya, dalam bahasa korea ada kata yang bisa berarti 'bisa' dan 'boleh'.


foto bersama cucu mereka yang datang waktu chusok


      Nenek tidak bisa bergerak, hanya tiduran terus karena sakit. Jadi setiap hari kakek yang memasak, mengurus rumah dan merawat nenek. Si kakek juga hampir selalu di rumah saja dan khawatir kalau harus meninggalkan rumah lama-lama. Kadang aku iri melihat kakek nenek itu. Bisa nggak ya punya suami yang setia sampai tua seperti itu? :)

Thursday, October 15, 2009

Makanan halal di Korea


      Kadang susah-susah gampang mencari makanan halal di Korea. Apalagi yang kurang bisa berbahasa Korea. Susah untuk bertanya kepada penjual di restoran dan membaca bahan makanan yang ada di kemasan.

      Berikut coba saya share keterangan bahan makanan yang saya ketahui :

* what is?
- 분말[bunmal] (powder)
- 효모[hyomo] (yeast/ragi)
- 경화유[kyonghwayu] (hardened[hydrogenated] oil)
- 식초[sikcho] (cuka)



* no :
- 돼지고기[dwejigogi], 돈지[donji] (daging babi)
- 햄[hem] (ham, daging babi olahan)
- 소고기[sogogi], 쇠고기[soegogi], 쇳고기[soetgogi], 비프[bipe] (daging sapi)
- 닭고기[dakgogi], 치킨[chikin] (ayam)
- 동물성[dongmulsong] (hewani)
- 젤라틴[jellatin] (gelatin)
http://id.wikipedia.org/wiki/Gelatin
Biasanya terdapat di snack yang mengandung jeli, marshmalow, dan terkadang di es krim dan yoghurt. Snack yang mengandung gelatin misalnya :



* ok :
- 식물성[sikmulsong] (nabati)
- 대두[dedu] (kacang kedelai)
- 래시틴[lesitin] (lesitin)
http://id.wikipedia.org/wiki/Lesitin
- 팜유[phamyu] (minyak kelapa)
- 펙틴[phektin] (pektin)
http://id.wikipedia.org/wiki/Pektin
- 물엿[mulyot] (starch syrup, sirup gula dari biji-bijian)



* carefull!
- 쇼태닝[syotening] (lemak)
http://en.wikipedia.org/wiki/Shortening
Harus dilihat keterangannya. Kalau ada tulisan 대두/식물성 boleh dimakan, kalau tidak ada keterangannya diragukan sebaiknya dihindari, misalnya :



- 주정[jujong] (alkohol/etanol)
Kurang jelas ini alkoholnya hasil fermentasi (seperti pada tape) atau dicampuri minuman keras.
Biasanya terdapat dalam 떡[tok] (tok / kue beras korea), 간장[kanjang] (kecap asin) dan lainnya, namun ada juga 떡 atau 간장 yang tidak mengandung 주정.
- 육수[yuksu] (air kaldu)
Kaldu apa harus lihat keterangannya, bisa dari hewan darat atau ikan/binatang laut
- 라면[ramyon] (mi instan)



      Hampir semua mi instan yang dijual di pasaran mengandung sari hewani di dalam bumbunya. Walaupun bungkusnya bergambar seafood tapi biasanya mengandung daging yang lain. Misalnya :



*** Artikel ini bukan menjadi fatwa yang halal/haram. Namun ada baiknya kita memperhatikan makanan yang kita makan. Disini hanya saya tulis bahan makanan yang saya ketahui. Untuk teman-teman yang lebih tahu mungkin bisa dishare juga informasinya.
Hanya Allah yang lebih tahu bahan apa yang mereka pakai. Wallahualam bi shawab.
Semoga bermanfaat : )