Senin, 11 Oktober 2010
Instalasi BlankOn 6.0 Ombilin
Minggu, 10 Oktober 2010
Cara Menampilkan/Memposting Source Code di Wordpress
[source code language="java"] /*masukkan source code di sini*/ [/source code]
- actionscript3
- bash
- coldfusion
- cpp
- csharp
- css
- delphi
- erlang
- fsharp
- diff
- groovy
- javascript
- java
- javafx
- matlab (keywords only)
- objc
- perl
- php
- text
- powershell
- python
- ruby
- scala
- sql
- vb
- xml
Kamis, 09 September 2010
Garbage Collection pada Bahasa Pemrograman Java
Jika sebelum anda mengenal Java, anda terlebih dahulu mengenal bahasa C/C++, maka pasti anda akan mencari fitur-fitur yang berhubungan dengan pointer. Ya, tugas sebuah pointer di C/C++ adalah untuk mengalokasikan memory sesuai yang ditunjuk pointer itu sendiri. Selain itu mungkin anda juga mencari fitur method free() atau operator delete pada C/C++ dalam penghancuran isi dari memori yang tak terpakai. Perlu diketahui, Java tidak mendukung adanya pointer, method free(), atau operator delete.
Jadi, apakah ini sebuah bug/kelemahan dari Java ?
Tentu saja tidak.
Alasannya, Java sebenarnya dirancang untuk berjalan di atas Java Runtime Environment (JRE) dan mungkin saja akan dieksekusi di atas firewall jika berbentuk applet. Sehingga tentu tidak akan lagi membutuhkan sebuah pointer. Java menyediakan suatu mekanisme yang disebut dengan garbage collection, yaitu :
"mekanisme dalam melakukan dealokasikan memory secara otomatis"
Jika anda sebelumnya telah belajar meng-inisialisasi objek dan membuat variabel array, maka sebenarnya anda telah belajar mengalokasikan objek dan array yang anda buat ke dalam memory (seperti tugas sebuah pointer di C/C++) karena fungsi dari operator new di bahasa Java adalah mengalokasikan objek dan array ke memory.
NamaClass namaObject = new NamaClass();
tipeData namaArray[] = new tipeData[jumlah_elemen]
(ini adalah inisialisasi objek dan pembuatan array. Perhatikan penggunaan operator new)
Setelah kita tahu mekanisme pengalokasiannya, lalu bagaimana melakukan pen-dealokasian objek dan array dari memory? Tentu saja dilakukan dengan mekanisme garbage collection. Java akan melakukannya secara otomatis. Cara kerja sederhananya sebagai berikut:
Interpreter di Java akan tahu persis dimana objek dan array dialokasikan. Ia juga akan tahu variabel-variabel lokal yang merujuk pada objek atau array dan ia juga akan tahu objek atau array yang merujuk objek atau array yang lain. Ini berarti Interpreter akan mengetahui jika suatu objek atau array tidak lagi memiliki referensi atau akses kemana pun lagi. Maka, Interpreter akan mengasumsikan objek atau array tersebut sudah tidak diperlukan lagi. Sehingga Interpreter akan menghancurkannya secara aman dan menggunakan ruang memory yang digunakan sebelumnya untuk dimanfaatkan kepentingan lain. secara aman dan menggunakan ruang memory yang digunakan sebelumnya untuk dimanfaatkan kepentingan lain.
Sebenarnya tidak hanya objek atau array saja yang bisa di-reklamasi (istilah untuk penghancuran memory). Suatu siklus objek yang saling merujuk satu sama lain, tetapi tidak merujuk ke objek yang aktif, juga akan di-reklamasi oleh Interpreter.
Sebenarnya, garbage collection bukanlah suatu inovasi baru dari bahasa Java. Ini sebelumnya telah bertahun-tahun digunakan dalam bahasa pemrograman seperti Lisp. Fakta bahwa kita tidak perlu lagi merisaukan penghancur setiap objek di memory, adalah keunggulan dari Java itu sendiri dan ini menunjukkan Java lebih aman dari bug dari bahasa pemrograman tanpa garbage collection
Rabu, 08 September 2010
Operator Bitwise Shift (Geser) Pada Bahasa Pemrograman Java
Ini adalah operator yang sering dilupakan dan sering tidak digunakan pada saat kita melakukan pemrograman, apalagi kita hanya membuat pemrograman desktop yang lebih menuntut kita untuk bermain di seputar modifikasi swing. Padahal sebenarnya untuk membuat aplikasi yang lebih mengutamakan keamanan, penggunaan operator ini adalah sangat penting, lebih-lebih pada saat kita menerapkan teknik enkripsi pada data yang dimasukkan maupun dikeluarkan. Mengapa? Untuk lebih jelasnya, saya akan terlebih dahulu menjelaskan, apa itu operator bitwise shift (geser).
Operator Bitwise Shift (Geser) adalah operator penggeseran bit ke arah yang ditentukan sebanyak nilai yang telah didefinisikan
Disini saya akan membeberkan 3 operator bitwise shift yang saya ketahui (mungkin jika ada yang tau lebih dari 3, bisa di-share di sini), yaitu :
- Operator Bitwise Shift Right (Geser Kanan) ">>"
- Operator Bitwise Shift Kiri (Geser Kiri) "<<"
- Operator Bitwise Shift Zero Fill ">>>"
1. Operator Bitwise Shift Right (Geser Kanan) ">>"
Ini digunakan untuk melakukan penggeseran bit ke arah kanan sebanyak nilai yang didefinisikan. Apabila terdapat operasi "x >> 3" berarti melakukan penggeseran 3 bit ke kanan dari nilai x yang telah dikonversikan ke dalam bilangan biner. Adapun bentuk umum dari operator ">>" sebagai berikut :
nilai >> banyaknya_penggeseran_bit_ke_arah_kanan
Secara teknis nya, misal :
64 >> 1, maka 64 diubah ke dalam bilangan biner menjadi 1000000. Kemudian dilakukan penggeseran sebanyak 1 bit ke arah kanan. Sehingga yang semula 1000000 akan menjadi100000 yaitu bernilai 32 pada desimal. Jadi, 64 >> 1 = 32. Untuk memudahkan dalam menentukan nilai yang diberikan dari operasi ini, yang perlu diingat :
"setiap proses penggeseran bit yang terjadi sebanyak n, maka operator >> akan membagi suatu nilai dengan 2 sebanyak n juga"
Dari kemudahan diatas, kita bisa menentukan, misal :
64 >> 1 = 32, karena 64 : 2 = 32
64 >> 2 = 16, karena 64 : 2 : 2 = 16
64 >> 3 = 8, karena 64 : 2 : 2 : 2 = 8 (perhatikan jumlah pembagian 2 nya)
Lalu, bagaimana jika ada sisa pembagian ? Misal :
63 >> 1 ini kan berarti 63 : 2 = 31 sisa 1
Sebenarnya, kalau kita tentukan secara teknis, 63 kita ubah ke bilangan biner menjadi 111111. Lalu kita lakukan penggeseran ke arah kanan sebanyak 1 kali, maka bilangan biner menjadi11111, yaitu 31 pada bilangan desimal.
Artinya, untuk sisa pembagian tadi, maka abaikan saja pada hasil sisanya :D
2. Operator Bitwise Shift Left (Geser Kiri) "<<"
Merupakan operator kebalikan dari operator >>, yang berarti kita melakukan penggeseran bit ke arah kiri sebanyak nilai yang didefinisikan. Apabila terdapat operasi "x '<<' 3" berarti melakukan penggeseran 3 bit ke kiri dari nilai x yang telah dikonversikan ke dalam bilangan biner. Adapun bentuk umum dari operator "<<" :
nilai '<<' banyaknya_penggeseran_bit_ke_arah_kiri
Secara teknis nya, misal :
8 '<<' 1 maka 8 diubah ke dalam bilangan biner menjadi 1000. Kemudian dilakukan penggeseran sebanyak 1 bit ke arah kiri. Sehingga yang semula 1000 akan menjadi 10000(pada saat penggeseran nilai paling kanan diisi dengan bit 0) yaitu bernilai 16 pada desimal. Jadi,8 << 1 ="">. Untuk memudahkan dalam menentukan nilai yang diberikan dari operasi ini, yang perlu diingat :
"setiap proses penggeseran bit yang terjadi sebanyak n, maka operator '<<' akan mengalikan suatu nilai dengan 2 sebanyak n juga"
Dari kemudahan diatas, kita bisa menentukan, misal :
8 '<<' 1 = 16 karena 8 x 2 = 16
8 '<<' 2 = 32 karena 8 x 2 x 2 = 32
8 '<<' 3 = 64 karena 8 x 2 x 2 x 2 = 64 (perhatikan jumlah perkalian 2 nya)
3. Operator Bitwise Shift Right Zero Fill ">>>"
Bit paling kiri (high-order bit) digunakan untuk menentukan tanda (sign) dari suatu bilangan (apakah positif atau negatif). Nilai bit 0 menandakan nilai positif dan nilai bit 1 menandakan nilai negatif. Contoh :
Nilai -1 dalam bilangan biner adalah 11111111 11111111 11111111 11111111 (pada bit paling kiri adalah sign dari bilangan yang menunjukkan bahwa bilangan ini negatif)
Nilai 255 dalam bilangan biner adalah 00000000 00000000 00000000 11111111 (pada bit paling kiri adalah sign dari bilangan yang menunjukkan bahwa bilangan ini positif)
Pada saat menggunakan operator >> (shift right), setiap penggeseran yang terjadi akan melakukan penyalinan nilai bit paling kiri ke nilai yang dihasilkan. Namun, apabila kita menggunakan operator >>> (shift right zero fill), maka bit paling kiri akan selalu diisi dengan nilai 0. sebagai contoh :
-1 >>> 24 = 255
11111111 11111111 11111111 11111111 digeser 24 bit ke kanan maka menjadi
00000000 00000000 00000000 11111111 yang bernilai 255 pada bilangan desimal
Dari penjelasan di atas, jadi salah satu fungsi operator bitwise shift zero fill ini, lebih digunakan untuk menggeser bilangan yang bernilai negatif :D
Selasa, 07 September 2010
Mengenal Escape Sequence pada Bahasa Pemrograman Java
Minggu, 05 September 2010
Tipe char Dalam Java Berbeda Dengan Tipe char Dalam C/C++
Sabtu, 04 September 2010
Setting Classpath Untuk Direktori Kerja Bahasa Java di Windows
- Buka Command Prompt, pindah drive dari C:\ ke D:\
- ketikkan "set path = C:\Program Files\Java\jdk1.6.0_21\bin;%path%" (atau sesuaikan dengan folder bin yang terdapat dalam JDK mu ), kemudian enter
- ketikkan "set classpath=.;D:\Project\Java\javaCode", kemudian tekan enter
- Buka direktori kerja kita, misal D:\> cd Project\Java\javaCode
- untuk kompilasi, ketik "javac namafile.java". Jika terjadi kesalahan, maka akan langsung menampilkan pesan error pada console. Jika sukses, maka tidak akan ada pesan apa-apa
- untuk eksekusi, ketik "java namafile".
Kamis, 12 Agustus 2010
Trik Internet Murah dengan Mengurangi Penggunaan Kuota Bandwith
"Saat kita membrowse suatu situs tertentu, maka semua content-content yang terdownload akan tersimpan di komputer. Sehingga pada saat kita membuka situs itu kembali di waktu yang berbeda, maka tool ini akan bekerja dan membuat seolah-olah browser mendownload content-content yang sama, padahal sebenarnya browser mengunduh content yang tersimpan di komputer"
Dari prinsip di atas, maka jatah kuota kita akan sedikit terselamatkan dan tidak terlalu terkuras. Sehingga lebih cepat dan lebih irit bandwith
Tapi, mungkin akan sedikit terlalu makan banyak setting, karena kita harus memastikan tool ini bekerja sesuai kemauan kita. Adapun langkah-langkah setting-nya :
- Extract file yang telah di download di drive C
- Cari folder C:\squid\etc, kemudian buka
- Ada 4 file di folder tersebut, yaitu :
cachemgr.conf.default
mime.conf.default
squid.conf.default
squid_radius_auth.conf.default
- Rename semua file dengan menghilangkan ".default", sehingga menjadi :
cachemgr.conf
mime.conf
squid.conf
squid_radius_auth.conf
- Buka file "squid.conf" dengan notepad,atau editor lainya
- Untuk notepad, CTRL+F dan cari kata "TAG: http_port", dan cek dibawah statement "# Squid normally listens to port 3128" sudah ada statement "http_port 3128"? Jika belum ada,tambahkan dibawahnya.
- Cari kata "TAG: visible_hostname", dan cek dibawah statement "# none" sudah ada statement "visible_hostname localhost"? Jika belum ada,tambahkan dibawahnya.
- Cari kata "http_access allow localnet", dan cek dibawah statement "http_access allow localnet" sudah ada statement "http_access allow localhost"? Jika belum ada,tambahkan dibawahnya.
- Cari kata "TAG: dns_nameservers", dan tambah statement dengan DNS masing-masing sehingga formatnya menjadi "dns_nameservers [primary DNS] [secondary DNS]". Contoh : dns_nameservers 208.67.220.220 208.67.222.222
- Simpan perubahan dengan CTRL+S
- Langkah selanjutnya, buka Command Prompt dan masuklah ke drive C\:squid\sbin. Contoh : cd C:\squid\sbin
- Setelah masuk ke folder tersebut, ketik "squid -z", sampai proses Creating Swap Directories selesai
- Ketik "squid -d l -D", kemudian tekan CTRL+C
- Ketik "squid -i".
- Dan terakhir, ketik "squid -O -D"
- Buka "Control Panel-Administrative Tools-Services". Kemudian cari nama "squid", dan klik kanan "Start"
- Ubah proxy di browser kesayangan anda dengan mengganti alamat proxy "localhost" dengan port "3128"
- Selesai, silahkan coba untuk membuka situs2 keinginan anda
NB : Untuk me-remove tool ini, maka anda dapat mengetik "squid -r -n squid" Command Prompt
Sabtu, 07 Agustus 2010
Trik Internet Murah Ala Timordotx
AXIS
-tarif yang bikin murah :
"6500 rupiah dapet kuota 100Mb untuk seminggu"
-harga perdana nya sendiri :
"3000",
tapi aktifkan dulu lewat hape sesuai pengaktifan GPRS, yaitu
"ketik Data
-setelah dapat settingan untuk instalasi, untuk pertama kali, silahkan coba dulu berinternet ria
lewat hape,
-jika percobaan sukses (bisa membuka halaman web), maka langkah selanjutnya adalah
mendaftarkan tarif mingguan tersebut,dengan cara SMS :
"ketik Menu kirim ke 777", setelah mendapat balasan, pilih yang mingguan, dengan cara
me-reply "ketik 2" (tergantung opsi) kirim ke 777
- jika pendaftaran selesai, mulai masukkan SIM ke modem(kebetulan modemnya HUAWEI
E160 hanya bisa GSM)
-manage profile untuk AXIS, yaitu :
APN : AXIS
Accses Number : *99#
Username : axis
Password : 123456
-tinggal konek ke interner
3(Three)
-tarif yang bikin murah :
"25000 rupiah kuota 500Mb untuk sebulan"
-harga perdananya sendiri sama :
"3000"
-untuk aktifasi GPRSnya :
"otomatis setelah registrasi SIM Card"
-tapi perlu juga di coba dulu lewat hape, apakah dapat membuka halaman web atau tidak
-untuk pendaftaran tarifnya :
"ketik MAU
-untuk manage profile-nya :
APN : 3gprs
Accses Number : *99#
Username : 3gprs
Password : 3gprs
Nah,jika sudah terkoneksi, langkah selanjutnya mengakali browsernya, kebetulan browser yg sy gunakan adalah Firefox v3+ . Caranya, dengan memanfaatkan 2 addon dari Firefox, yaitu imgLikeOpera dan AdBlock Plus.
imgLikeOpera digunakan untuk :
1. Menyimpan cache gambar, sehingga jika membuka halaman yang sama di waktu yang berbeda, browser tidak perlu mengunduh gambar yg sama kembali.
2. Me-nonaktif-kan mengunduh gambar, sehingga tidak terlalu banyak makan kuota.
AdBlock Plus digunakan untuk :
Memblokir konten2 yang tidak harus ditampilkan saat membuka sebuah halaman web
Nah,itulah cara menghemat tarif internet yg saya gunakan. Memang tujuan dari penggunaan cara ini sebenarnya ditujukan untuk :
- ngeblogging
- plurk
- dan mencari info yang bersifat teks
Cara ini tidak dianjurkan untuk mengunduh file2 besar, dan mengakses media audio maupun video. ^^y
Mengganti Hostname Pada Linux (Ubuntu, Fedora, dan distro lainnya)
1. Buka terminal, kemudian ketik :
$ hostname
2. Akan muncul nama hostname yang lama, nah setelah itu ketik lagi ke terminal :
$ sudo gedit /etc/hostname
3. Setelah jendela gedit terbuka, langkah selanjutnya adalah tinggal meng-edit nama hostname yang baru tersebut.4. Simpan perubahan. Dan selesai. Nama hostname anda telah berubah
Mudah bukan? hehehe :D