Greeting


Hello, everyone, knockturn’s here!

Why knockturn? Because I’m kinda like nocturnal animals, live at night and sleep at day.

Enjoy reading!

Bhinneka Tunggal Ika


Sungguh tidak enak menjadi orang yang beda. Masih perlu bukti? Tanyakanlah pada korban tragedi Mei 1998. Tanyakanlah pada alm. Munir. Tanyakanlah pada Pak Ahok. Tapi jangan tanya saya, karena saya tidak merasa beda!

Tapi sebenarnya apa sih perbedaan itu? Kenapa aku dan kamu bisa beda? Apa yang membedakan kita dan mereka? Continue reading

Yuk Keep Stupid


Well said.. Sayang pakai bahasa Inggris

Jendela kata

I am an uncle. I am twenty one, and I’ve already been an uncle of young cutie little niece, Teresia Chatra Sarasvati. My family call her Eyi. She is a very smart girl; she learns everything so fast that she memorizes every single thing and thinks in such logical thinking. My Dad (which is actually her grandpa; gosh, he is now a grandpa) ever asked her some Javanese questions and it became a short funny conversation, just like this.

Eyi           : “Kula nuwun…”

Grandpa   : “Inggih… sinten, nggih?”

Eyi           : “Eyi…”

Grandpa   : “Eyi putrine sinten?”

Eyi           : “Eyi putrine mama Nova…”

Grandpa   : “Daleme pundi?”

Eyi           : “Rejondani…”[1]

We don’t know how she learned Javanese. She just did it. The point is that God gives her a brilliant mind and she learns very fast, more than we used to learn.

My niece also likes watching television. Just like…

View original post 2,751 more words

Router (sangat) sederhana: Default Gateway dengan Fedora Core 8


Kelihatannya cukup mudah, tapi apakah untuk Ubuntu Desktop bisa semudah ini? Let’s do some research 🙂

Iwan Binanto: "hari-hari ku yang berlalu .."

Coba-coba membuat Router sederhana dengan Fedora Core 8. (Seting IP tidak dibahas pada artikel ini, dan diasumsikan seting IP dan Gateway sudah benar). Gambaran jaringan yang akan dikonfigurasi adalah sbb:

Konfigurasi utama di router PC Linux hanya mengaktifkan IP Forwarding saja dengan cara:

  • Edit file sysctl.conf yang berada di /etc untuk mengubah isian net.ipv4.ip_forward menjadi 1 (jika sebelumnya berisi 0)
  • Restart layanan jaringan komputer dengan perintah:
    service network restart

Dengan melakukan langkah-langkah di atas, seharusnya client A atau client B sudah dapat melakukan ping ke client C. Tetapi pada Fedora 8, hal ini tidak dapat dilakukan. Ketika ping dilakukan dari client A atau client B ke client C, yang terjadi adalah muncul pesan dengan salah satu katanya adalah “Prohibited”.

View original post 287 more words

C# Delegates vs. Java Single-Method Interfaces


...
JButton btn1 = new JButton();
btn1.setText("Click me");
btn1.addActionListener(new ActionListener(){
    public void actionPerformed(){
        System.out.println("Hello World");
    }
});

Para pengguna Java pastinya sudah akrab dengan sintaks di atas. Snippet tersebut berisi kode untuk meng-handle event click di JButton. Ketika diklik, tombol tersebut akan mencetak “Hello World” di console.

Sekarang mari kita lihat bagaimana hal seperti itu diimplementasikan di C#:

...
Button btn1 = new Button();
btn1.Text = "Click me";
btn1.Click += delegate(object sender, EventArgs e){
    System.Console.WriteLine("Hello World");
};
...

Ada beberapa kemiripan dari dua snippet di atas:

  1. addActionListener diganti dengan operator +=
  2. new ActionListener() diganti dengan delegate(object sender, EventArgs e)
  3. public void actionPerformed(), well, tidak diperlukan di C#

Mengapa kode C# lebih singkat satu baris? Karena C# menggunakan model delegate, sesuatu yang tidak ada di Java.

Apa itu delegate?

Ada bermacam-macam cara menjelaskan delegate, akan tetapi yang menurut saya paling mendekati adalah bahwa delegate “membungkus” method sehingga bisa berlaku layaknya sebuah objek/variabel.

Mengapa kita perlu “membungkus” method?

Analogi: saya punya dua macam buah: pisang dan stroberi. Akan tetapi, saya tidak tahu akan saya apakan kedua buah itu. Ada yang punya ide?

  • Bagaimana jika dibuat banana split dengan topping stroberi?
  • Atau jus campuran pisang dan stroberi?
  • Mungkin pisang saus stroberi?

Ada 3 ide, dengan setiap ide pasti mempunyai konsep dan cara pembuatannya masing-masing. Bagaimana sang empunya ide “menyerahkan” idenya kepada saya?

Dengan menulis resepnya, tentu saja.

Itulah persis yang dilakukan delegate. Membungkus tiap method untuk diserahkan kepada entitas lain, supaya entitas lain tersebut bisa melakukan persis seperti idenya.

Contoh kasus: Sebuah form punya tombol. Event Click milik tombol tersebut bertanya, “Ada yang punya ide apa yang akan saya lakukan ketika saya diklik?”

  • Cetak “Hello World”
  • Ganti teks tombol dengan jumlah klik
  • Keluar dari program

Untuk setiap ide, akan ada sebuah method yang bersesuaian. Delegate bertugas membungkus method itu dan memberikannya kepada event Click, supaya event Click bisa melakukan persis seperti ide nya: mencetak “Hello World”, Mengganti teks tombol, atau keluar dari program.

Sebetulnya ada “jembatan” antara konsep delegate C# dan single-method interface Java: Lambda expression. Tetapi lambda expression baru tersedia di Java versi 1.8, jadi untuk sementara belum dapat diimplementasikan, setidaknya sampai Java 1.8 (JDK8) dirilis dengan status GA (general availability).

Sekian penjelasan singkat tentang delegate, semoga bisa membantu para developer Java untuk berpindah haluan ke C# 😛
Seperti biasa, bagian komentar selalu terbuka untuk diskusi 🙂

Monodualisme


Pernah mendengar konsep dualisme? Konsep itu meyakini bahwa segala sesuatu diciptakan beserta lawannya. Terang dan gelap, panas dan dingin, proton dan electron, electron dan positron, and the list could go on forever…

Dari konsep dualisme itu aku membuat konsep sendiri: konsep monodualisme (entah nama konsep itu sudah ada yang memakai atau belum). Konsepnya mirip dualisme, tetapi bahwa sebenarnya itu hanya satu hal. Yang termasuk monodualisme adalah terang dan gelap, panas dan dingin, baik dan jahat. Kenapa mereka monodualis? Karena mereka sebenarnya satu hal. Terang dan gelap itu berkaitan (secara fisis) dengan ada atau tidaknya partikel cahaya. Terang kalau ada, gelap kalau tidak ada. Begitu juga panas: panas jika ada kalor, dingin jika tidak ada kalor. Continue reading

Ubuntu: Getting Started


Melanjutkan artikel sebelumnya tentang linux, sekarang saya akan membagikan cara membuat dan menjalankan LiveUSB Ubuntu, dan apa yang harus (sebaiknya) dilakukan selanjutnya.

Setelah mendapatkan image Ubuntu, hal yang selanjutnya dilakukan adalah membakar image tersebut ke CD/DVD, atau membuat LiveUSB nya. Untuk membakar image (selanjutnya disebut ISO), bisa menggunakan fasilitas CD burner bawaan Windows atau aplikasi bawaan Ubuntu bernama “Brasero”. Teknisnya tidak akan saya jelaskan di sini, silakan mencari tutorialnya di Google kalau belum tahu 😛 Continue reading

Guardian Angel


Pernah kepikiran nggak kalo Guardian Angel itu malaikatmu yang kamu friendzone? Ya, friendzone. Kebayang nggak sih gimana jahat dan egoisnya kamu sampai malaikat pun kamu friendzone?
Continue reading

Special Need


Percaya atau tidak, manusia memiliki “kebutuhan khusus”. Manusia butuh merasa dicintai. Jika kebutuhan ini tidak terpenuhi, manusia akan perlahan-lahan kehilangan kemanusiaannya. Seorang manusia yang kehilangan kemanusiaannya bisa menjadi dua: binatang atau mesin. Continue reading

Object-Oriented Programming: Introduction


Tulisan ini ada karena keprihatinanku akan temen2ku yang (entah kenapa) kesusahan banget buat ngerti OOP (PBO). Sebenernya OOP itu asik banget loh. Suer! Kapan (gimana) lagi coba kita bisa bikin komputer melakukan apa yang orang lain inginkan (instead of our own)?

Aku sendiri sudah sekitar 3 tahunan pengalaman dengan OOP. Pertama kali belajar OOP dulu pake bahasa Basic (Visual Basic.NET). Itu bahasa yang gampang sebetulnya, tapi agak kurang cocok buat programmer. Kenapa? Karena terlalu banyak kata-kata. Sedangkan prinsip programmer sendiri adalah “ketik sesedikit mungkin”. Tapi buat yang penasaran bisa coba Visual Basic Express, free.

Tapi semua berubah ketika C++ menyerang. Aku dikenalkan pada “mbah”nya bahasa pemrograman. Mother of programming language. Mulai saat itu juga VB kutinggalkan, dan aku beralih haluan ke keluarga C.

Setelah C++, aku belajar C#. Tidak  jauh beda dengan C++, hanya beda compiler dan IDE. Bagi yang belum tahu, C# adalah bahasa yang dikembangkan Microsoft. Bahasanya sangat mirip C++, dengan sedikit penyesuaian (karena C# memakai .NET virtual machine, berbeda dengan C++ yang native).

Aku menghabiskan waktu lebih banyak lagi untuk belajar C#, khususnya karena waktu itu ada proyek game development Gemastik. Kami menggunakan Unity sebagai engine-nya. Unity memakai bahasa C# dan JavaScript untuk game logic nya. Since I’m not really familiar with JS, I went with C#. The project went on for quite some time, until we realize that we wouldn’t make it. And we did not, indeed. However, I learnt a lot about C# while we was on the project. So that was not so bad.

I didn’t learn Java until I found out about Android SDK. It’s a software development environment used to develop Android applications. It uses Java as the language, therefore I was enforced to learn it. I learned a bit, but then I quit, because Java is a resource-eater SOAB! The VM is very greedy in term of computing resources, particularly memory usage.

I went back to C#, this time with a pure C# project using XNA Game Studio (also Microsoft’s). With more knowledge than the last time, I thought I could conquer the world. But I didn’t. We didn’t.

Then there’s this subject on college: PBO (OOP). I’m enforced to learn Java once again, but this time, with my current level of C#, Java doesn’t look so hard.

So that’s my journey of OOP-ing. See, it takes time to be expert in something. If you really want to learn OOP, I’d say go with VB. It’s really easy to learn. When you’ve got a grab of it, go to the next level. Learn C++. Then either learn C# or learn Java. Then be a great programmer. Make great programs. Leave a legacy. Craft your name on the programming world. Be the next Dennis Ritchie. Or not.

Linux? Open Source? Yes, please!


Ahh, artikel terakhir ternyata sudah sangat lama ya… Itu pun cuma forward-an dari facebook. Yah, mau bagaimana lagi, jarang dapet ide sih. Ditambah lagi jarang ada koneksi internet, jadi susah juga.

Anyway, kali ini saya akan membahas linux. Buat yang belum tahu, linux (aslinya) adalah nama sebuah kernel sistem operasi yang  diprakarsai oleh seorang Linus Torvalds. Sedangkan kernel adalah inti sebuah sistem operasi, jembatan antara hardware dan sistem operasi itu sendiri. Continue reading

%d bloggers like this: