C, C++, C#, Java

Di awal-awal gw masuk kuliah, gw dapet mata kuliah yang ngajarin dasar-dasar pemrograman pake bahasa C. Terus gw ketemu sama sepupu gw yang ngambil jurusan Sistem Informasi di Binus, dia dapet mata kuliah yang sejenis. Bedanya, dia pake bahasa pemrograman Java. Nggak berapa lama habis itu, gw ketemu temen SMA gw yang masuk Teknik Informatika di kampus yang beda dengan gw, temen SMA gw ini juga diajarin pemrogramannya pake Java. Lalu ada temen lagi yang ngambil Teknik Informatika di ITB, yang ini beda lagi. Dia dapet Lisp dulu, baru ntar nyambung ke C. Sementara temen gw yang lain lagi yang ngambil Teknik Industri di ITB dapet Pascal & C, lalu baru-baru ini satu orang temen ngambil jurusan Computer Science di Amerika (gw gak tanya kampusnya) bilang dia dapet pelajaran dasar pemrogramannya pake bahasa C++.

Anggeplah temen gw yang di Amerika itu juga dapetnya C biasa, bukan C++. Soalnya bahasa C++ biasanya kalo dipake buat belajar dasar-dasar pemrograman sih fitur-fitur yang dipakenya cuma fitur-fitur yang ada di C, yang asli dari C++ masih kurang banyak dipake. Lisp & Pascal mungkin agak jarang gw denger sih. Strukturnya yang beda dari C juga bikin gw agak bingung ngebaca source codenya, terutama Lisp. Kalo Pascal sih gw lumayan bisa ngerti pas bacanya, cuma gw nggak bisa ngodingnya karena nggak pernah bikin program pake Pascal.

Continue reading

Deretan Fibonacci, Iteratif & Rekursif

Kebetulan pagi-pagi ada yang nanya gw soal gimana cara ngerjain program deretan Fibonacci. Sebenernya sih bahasannya mirip dengan waktu gw ngebahas faktorial beberapa waktu yang lalu, cuma kasusnya sedikit lebih ribet. Deretan Fibonacci ini bentuknya kayak begini.

1, 1, 2, 3, 5, 8, 13, 21, 34, 55, …

Di atas ini gw ngasih deretan Fibonacci mulai dari bilangan pertama sampe bilangan kesepuluh. Di deretan Fibonacci ini bilangan pertama & keduanya udah pasti nilainya 1, untuk bilangan ketiga & seterusnya dipakai rumus ini.

F(n) = F(n-1) + F(n-2)

F(n) nilai bilangan ke-n di deretan Fibonacci
F(n-1) nilai bilangan ke-(n-1) di deretan Fibonacci
F(n-2) nilai bilangan ke-(n-2) di deretan Fibonacci

Jadi bilangan ketiga sama dengan bilangan pertama ditambah bilangan kedua, bilangan keempat sama dengan bilangan kedua ditambah bilangan ketiga, bilangan kelima sama dengan bilangan ketiga ditambah bilangan keempat, & seterusnya sampe bilangan ke-n.

Continue reading

HTTPS, Aman di Jalan

Januari tahun ini, pas gw UAS mata kuliah Keamanan Komputer & jaringan, di lembar soalnya ada satu pertanyaan ini. Gw nggak inget bener gimana kata-kata di soal itu, sekarang udah lewat dua bulan dari waktu gw ngerjain soal itu kemarin. Pokoknya di soal itu kita ditanya & disuruh ngejelasin, apa protokol HTTPS bisa nyegah serangan XSS & SQL injection di website yang bersangkutan?

Kira-kira gimana jawabannya? Bisa atau nggak?

Jawabannya sih nggak bisa. Alesannya, karena HTTPS itu fungsinya cuma untuk enkripsi & dekripsi data yang ditransfer antara client & server. Serangan XSS & SQL injection bakal tetep jalan selama scriptnya bisa dijalanin di server, & pastinya enkripsi dari protokol HTTPS nggak ada gunanya di sini. Soalnya script tadi bakal didekripsi lagi di server, & kalo udah didekripsi ya…scriptnya kembali jadi script XSS atau SQL injection lagi. HTTPS nggak ngelakuin filter untuk script-script begini, serangan semacem ini perlu ditangani pake cara lain.

Continue reading

Bandwidth, Throughput, & Goodput

Kayaknya sih udah sering kita ngeliat promo ISP (Internet Service Provider) yang nawarin bandwidth gede di promonya. Tapi biasanya habis itu yang make terus komplen gara-gara kecepatannya dianggap nggak sesuai dengan yang di iklan, dianggepnya ISP ngibulin konsumen. Misalnya ada yang ngiklan kalo bandwidth yang mereka kasih up to 2Mbps, tapi ternyata pas dipake kecepatannya cuma sekitar 120kBps. Terus yang make komplen, “Kok cuma 120kBps sih? Katanya 2Mbps!”

Sebelumnya, kita liat dulu satuan kecepatan yang dipakai. 2Mbps itu berarti kecepatannya 2 megabit per second, yang 120kBps itu berarti 120 kilobyte per second. Apa bedanya? Ya, itu beda banget. 1 byte itu sama dengan 8 bit, berarti 2 megabit (2 juta bit) itu harus dibagi 8 dulu baru bisa dapet angka kecepatannya dalam satuan byte. 2Mb itu kalo dijadiin ke satuan byte sama dengan 250kB. Terus apa ISP bikin promosi pake satuan Mbps buat nipu biar bandwidthnya keliatan lebih gede? Mungkin aja, tapi yang pasti sih standar satuan untuk perhitungan kapasitas bandwidth itu pake hitungan bit per second, bukan byte per second.

Tunggu, kalo begitu harusnya kecepatannya 250kBps? Kenapa dapetnya cuma 120kBps? Karena hitungan bandwidth itu selalu pake kata ‘up to’, yang berarti sukur-sukur kalo kecepatan kita bisa dapet segitu. Normalnya sih pasti lebih rendah dari itu, apalagi kalo lagi banyak yang make koneksi Internetnya. Lagian emang kapasitas bandwidth itu nunjukin kecepatan maksimum yang bisa didapet, bukan rata-rata kecepatan koneksinya.

Continue reading

Bilangan Desimal, Biner, Oktal, & Heksadesimal

Sekarang gw mau ngebahas tentang sistem-sistem bilangan yang biasa dipake di komputer. Bilangan desimal kayaknya sih udah cukup umum, termasuk buat orang-orang yang nggak familiar dengan pemrograman & ilmu komputer. Tapi kayaknya gw bakal mulai dari situ dulu. Angka-angka yang kepake di sistem bilangan desimal cuma angka 0-9, penulisannya sih standar aja. Ini deretan bilangan desimal dari angka 0 sampe angka 20.

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20

Udah tau lah ya kalo bilangan desimal? Kalo ngikutin urutan sistem bilangan yang gw sebut di judul postingan kali ini, seharusnya gw ke bilangan biner dulu baru ke bilangan oktal. Tapi kayaknya lebih gampang buat diikutin kalo gw tunjukin bilangan oktal dulu, disusul bilangan biner, lalu bilangan heksadesimal. Angka yang kepake buat penulisan bilangan oktal cuma angka 0-7. Ini deretan bilangan oktal dari angka 0 sampe angka 20.

0, 1, 2, 3, 4, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 20, 21, 22, 23, 24

Continue reading

Social Engineering: The Bug in Human Hardware

All they need to do is to set up some website somewhere selling some bogus product at twenty percent of the normal market prices and people are going to be tricked into providing their credit card numbers.

Kevin Mitnick

Social engineering, bukan trik yang butuh skill teknis yang ‘wah’, tapi terbukti cukup ampuh. Kevin Mitnick sendiri ngaku kalo social engineering ini trik yang paling banyak dia pake buat ngedapetin username, password, & data-data penting lain dari korbannya. Fokus kali ini bukan hacker legendaris yang satu ini, tapi kalo berminat buat tau lebih banyak tentang dia bisa baca di sini.

Social engineering sendiri sering disebut “eksploitasi bug manusia”, soalnya di sini hackernya nggak perlu ngebobol jaringan atau manfaatin bug yang ada di program buat dapetin yang apa yang dia mau. Dia cukup ngibulin orang lain buat ngelakuin sesuatu yang bisa bikin si hacker ngedapetin apa yang dia mau. Kurang lebih mirip dengan penipu-penipu yang biasa di berita kriminal deh. Kalo kata gw sih sama persis cara kerjanya.

Continue reading

JavaScript untuk Pencegahan Copy-Paste Artikel, Masih Kurang Ampuh

Habis gw liat-liat belakangan ini, kayaknya banyak orang yang ngeproteksi blog atau website pribadinya pake kode JavaScript untuk disable right-click & text selection di blog atau website mereka. Alasannya sih simpel, gara-gara nggak mau artikel-artikel yang mereka buat dicopas begitu aja sama orang buat diposting ulang di blog si pelaku. Oke, masalah kasus tukang copas artikel orang terus diposting ulang seolah-olah itu tulisan mereka yang punya ini emang agak…hina?  Gw juga pernah jadi korban beberapa kali, jadi ya…tau rasanya lah. I know that feel, Bro.

Temen SMA gw ini juga sempet ngasih saran ke gw buat pake JavaScript buat disable right-click & text selection aja biar nggak bisa dicopas. Tapi blog yang dibuat di WordPress rasanya nggak bisa dipasangin JavaScript. Mungkin bisa sih kalo gw pake servis yang berbayar atau gw akalin sendiri gimana caranya gw nyisipin script itu ke sini pake teknik XSS. Gw nggak nyobain sih tapi, selain gara-gara gw ada postingan yang isinya potongan source code yang kayaknya perlu bisa dicopas dengan mudah, gw sih sama sekali nggak ngerasa ada kesulitan apa-apa buat copas sesuatu dari blog yang udah dilindungin script buat disable right-click & text selection itu.

Continue reading