Membuat Virtual Hardisk pada VirtualBox

Belang Telon | Salah satu masalah dalam penggunaan VirtualBox adalah kurangnya kapasitas virtual hardisk yang telah kita buat ketika pertama kali kita menginstall sistem operasi. Kebanyakan kita berfikir membuat kapasitas hardisk hanya untuk instalasi sistem operasi saja, tetapi kita melupakan kalau ada kemungkinan jika kita ingin melakukan percobaan-percobaan software yang akan kita install. Atau jika kita ingin menyimpan file-file kita di dalam virtualbox. Tentunya kita harus menyediakan media penyimpanan lagi dalam virtualbox.
Terdapat beberapa cara untuk memperbesar ukuran virtual hardisk kita, yaitu dengan membuat cloning hardisk kita dengan kapasitas yang lebih besar. Bisa kita gambarkan kita mengcopy sistem operasi kita ke dalam hardisk baru yang lebih besar. Tetapi ada yang lebih mudah yaitu dengan menambahkan media penyimpanan baru didalam virtualbox. Hal ini seperti kita mamasang secondary drive pada komputer.
Pada posting ini akan saya bahas tentang penambahan kapasitas hardisk dengan cara yang kedua yaitu penambahan secondary drive. Karena cara ini jauh lebih mudah daripada harus melakukan cloning seperti cara yang pertama. Sistem Operasi yang saya gunakan adalah Ubuntu 9 dengan host computer Windows XP.
Pertama-tama kita akan membuat virtual hardisk dengan format vdi.
Kita gunakan tool yang ada dalam VirtualBox, yaitu VBoxManage.exe. Lokasi file biasanya terdapat pada folder "Program Files" yang juga berisi file VirtualBox.exe.
- Masuk pada command prompt.
- Arahkan pada lokasi dimana file VBoxManager berada untuk menjalankannya. Atau bisa juga dengan "drag and drop" file ke dalam jendela command prompt.
- ketik perintah createvdi -filename [namafile] -size [ukuranfile]
Seperti gambar dibawah :

Pada gambar diatas, kita membuat virtual hardisk dengan nama file "hdd02.vdi" dan kapasitas sebesar 20Gb. File tersebut akan disimpan secara default pada folder VirtualBox. Sebagai contoh pada komputer saya terdapat di "C:\Documents and Settings\Administrator\.VirtualBox"
Dan selamat, kita sudah mempunyai hardisk baru dengan ukuran semau kita tanpa harus mengeluarkan uang. Tapi ingat, seperti halnya Hardisk baru kita harus memformat sebelum bisa menggunakannya.
Bagaimana cara memformat agar hardisk tersebut bisa kita gunakan dalam Ubuntu yang sudah terinstall pada VirtualBox akan berlanjut pada posting selanjutnya. Trims all.

Mengubah Gambar RGB menjadi Grayscale

Belang Telon | Di posting sebelumnya sudah ada penjelasan bagaimana cara Konversi atau Mengubah Gambar RGB menjadi Black and WhiteSelanjutnya akan saya berikan contoh source code untuk Konversi atau Mengubah Gambar RGB menjadi Grayscale. Untuk sementara masih menemukan 2 cara mendapatkan warna grayscale. Yang pertama yaitu dari class yang terdapat dalam paket Java, dan yang kedua kita buat sendiri dari hasil pengubahan warna per  pixel. Gak usah lama-lama cuap-cuapnya, langsung saja masuk ke codingnya.

class yang perlu kita import :
import java.awt.image.ColorConvertOp;
import java.awt.image.BufferedImage;
import java.awt.Toolkit;
import java.awt.Image;

       //Fungsi class Java
    ColorConvertOp colorConvert = new ColorConvertOp(ColorSpace.getInstance(ColorSpace.CS_GRAY), null);
    colorConvert.filter(bi, bi);
    
     
      //Fungsi buatan
     for(int i=0; i<displayImage.getWidth(this); i++){
           for(int j=0; j<displayImage.getHeight(this); j++){
               int warnaGambar =  bi.getRGB(i,j);
               int alpha = (warnaGambar << 24) & 0xFF;
               int r = (warnaGambar >> 16) & 0xFF;
               int g = (warnaGambar >> 8 ) & 0xFF;
               int b = (warnaGambar >> 0) & 0xFF;
               int nilai = (r + g + b) / 3;
               int gray = alpha | nilai << 16 | nilai << 8 | nilai;
               bi.setRGB(i, j, gray);
           }
     }

Yup, jika diperhatikan untuk merubah warna RGB menjadi grayscale cara yang digunakan sama seperti bagaimana cara merubahnya menjadi black nad white. Jika Warna Black and White merubah warna menjadi 2 macam warna (lihat kembali source code merubah warna Black and White), maka pada grayscale jumlah dari pixel RGB yang di dapat akan dibagi menjadi 3.

Sedikit penjelasan untuk Class ColorConvertOp.
Kelas ini digunakan dalam konversi warna pada gambar. Nilai skala warna yang dihasilkan disesuaikan dengan ketepatan tujuan. Color conversion, ColorSpace ICC_Profile atau dapat kita tentukan melalui array dari objek.
RenderingHints, Jika objek ditentukan dalam konstruktor, kita dapat mengontrol konversi warna menggunakan warna rendering hint dan dithering.
Source dan destination dapat menjadi obyek yang sama.

Kalo ada yang kurang jelas, jangan sungkan-sungkan berikan komentar.

Teknik Kompilasi - Pendahuluan

Belang Telon | Teknik Kompilasi merupakan teknik dalam melakukan pembacaan suatu program yang ditulis dalam bahasa sumber, kemudian diterjemahkan ke dalam suatu bahasa lain yang disebut bahasa sasaran. Dalam melakukan proses penerjemahan tersebut, sudah barang tentu kompilator akan melaporkan adanya keanehan-keanehan atau kesalahan yang mungkin ditemukannya. Proses penerjemahan yang dilakukan oleh kompilator ini disebut proses kompilasi (compiling).
Bila dipandang sepintas lalu, maka akan timbul beranekaragam kompilator yang dapat dibuat antara lain sebagai berikut :
ü      Bahasa Sumber seperti bahasa FORTRAN, PASCAL, C dan juga bahasa-bahasa lainnya yang sifat dan pemakaiannya agak spesifik atau khusus, seperti bahasa untuk program DBASE, SPSS dan lain sebagainya.
ü      Bahasa Sasaran dapat berupa bahasa sumber lain seperti C, FORTRAN dan lain sebagainya atau Bahasa Mesin (Machine Language) yang digunakan oleh suatu prosessor mikro atau sumber komputer besar maupun komputer super.
Sejarah perkembangan suatu kompilator sudah dimulai sejak lama, yaitu pada saat mulai ditemukannya komputer pada awal 1950-an. Sejak waktu tersebut teknik dan cara pembentukan suatu kompilator telah berkembang dengan sangat pesat dan pembentukkan suatu kompilator dapat dilakukan makin mudah. Demikian pula program bantu (tools) untuk membuat suatu kompilator sudah dapat diperoleh sehingga pembentukan suatu kompilator dapat dilakukan dengan cepat.
Kompilator pertama yang dibuat adalah kompilator untuk bahasa FORTRAN yang pada saat itu dikembangkan dengan memakan sejumlah tenaga ahli yang setara dengan pekerjaan yang dilakukan oleh 18 orang. Dengan adanya program bantu dan tata cara pembentukan yang sistematis dan tertata dengan baik serta pendefinisian struktur bahasa yang cermat, maka suatu kompilator untuk bahasa yang terstruktur seperti PASCAL atau C dapat dikembangkan.
Proses kompilasi dari suatu kompilator pada dasarnya dapat dibagi ke dalam 2 bagian utama yaitu bagian analisis dan bagian sintesis.
ü      Tahap analisis program yang ditulis dalam bahasa sumber dibagi dan dipecah ke dalam beberapa bagian yang kemudian akan dipresentasikan ke dalam suatu bentuk antara dari program sumber.
Operasi-operasi yang dilakukan oleh program sumber ditentukan dan dicatat dalam suatu struktur pohon (tree) yang disebut dengan nama pohon sintaks (sintax tree) Dalam hal ini setiap nodal pada tree tersebut menyatakan suatu operasi, sedangkan anak dari nodal (titik) tersebut memberikan argumen yang diperlukan

Secara umum proses dalam tahap analis terdiri dari 3 bagian utama, yaitu :
1.        Proses analisis leksikal
2.       Proses analisis sintaktik
3.       Proses analisis semantik
ü      Tahap sintesis yang berikutnya program sasaran dibentuk berdasarkan representasi antara yang dihasilkan pada tahap analisis.
Untuk tahap sintetis terdiri dari 2 bagian utama, yaitu
4.      Proses yang menghasilkan kode (code generator)
5.      Proses optimasi kode (code optimizer)
Sebelum Bahasa sasaran dapat dihasilkan, dalam melakukan ini tiap bagian utama akan berhubungan dan berkomunikasi dengan suatu berkas tabel yang disebut tabel simbol (symbol table) yaitu suatu tabel yang berisi semua simbol yang digunakan dalam bahasa sumber. Selain kompilator masih diperlukan beberapa program lainnya sebelum dapat dibentuk bahasa sasaran yang dapat dijalankan. Seperti suatu bahasa sumber dapat dituliskan dalam beberapa modul yang terpisah dan disimpan dalam beberapa file yang terpisah.
Untuk menanggulangi hal ini, maka suatu program khusus yang disebut dengan suatu praprosesor digunakan untuk mengumpulkan modul-modul yang saling lepas ini ke dalam suatu program baru. Praposesor dapat pula melengkapi singkatan-singkatan atau ungkapan-ungkapan maupun kependekan-kependekan yang digunakan dalam bahasa sumber seperti pendefinisian makro dan lain sebagainya.


Sumber : Tehnik-kompilasi.htm, Global Komputer (http://globalkomputer.com/), 2008.

Mengubah Gambar RGB menjadi Black and White.

Belang Telon | Sebenarnya sih gk ikut-ikutan kelas Pengolahan Citra Digital, tapi berhubung ada temen yang minta di jelasin. mau gk mau jadi ikut nimbrung ma tugasnya. Mengubah Gambar RGB menjadi Black and White.
Setelah tanya sana-sini dan googling. Akhirnya ketemu juga source codenya. Dari hasil tahan mata yang udah 5 watt. Gak sia-sia bisa juga baca codingnya.
Sebenernya cukup simpel juga sih. Pertama-tama kita deklarasikan variable-variable buat simpan nilai warna gambar dan mengambil sample gambar yang mau kita "Jadulkan" jadi Hitam-Putih. Dan pastinya tidak lupa kita Import dulu class-class java yang kita butuhkan.

Langkah selanjutnya buat agar gambar kita bisa memanipulasi dan modifikasi pixel dengan bantuan class yang sudah disediakan oleh java yaitu BufferedImage. Setelah itu, barulah kita bisa rubah nilai pixel menjadi yang kita inginkan. Dan jangan lupa simpan hasil olahan tadi, jika ingin melihat hasilnya.

Berikut source codenya dalam bahasa Java.

import java.awt.image.BufferedImage;
import java.awt.image.WritableRaster;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;


public static void main(String[] args) throws IOEimageception{
    File file= new File("file.jpg");
    int NilaiFile, merah, hijau, biru;
    BufferedImage image = ImageIO.read(file);
    int width = image.getWidth();
    int height = image.getHeight();
    int gray = 0;


    BufferedImage im = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
    WritableRaster raster = im.getRaster();


    for(int i=0; i<image.getWidth(); i++){
        for(int j=0; j<image.getHeight(); j++){
            NilaiFile =  image.getRGB(i,j);
            merah = (NilaiFile & 0image00ff0000) >> 16; //red   = -131072
            hijau = (NilaiFile & 0image0000ff00) >> 8; //green = -16711935
            biru = (NilaiFile & 0image000000ff); //blue  = -16776962
            double tot=merah+hijau+biru;
            if(tot <382){
             image.setRGB(i, j, 0);  //black = 0
            }else if(tot >=382){
             image.setRGB(i, j, -1);  //white = -1
            }
        }
    }
    ImageIO.write(image,"JPG",new File("file_new.jpg"));
}


Sumber :
www.pengolahancitra.com/
http://www.java2s.com