Senin, 12 November 2012

Guruku Pahlawanku


            Aku seorang mahasiswa semester 6 dari salah satu perguruan tinggi swasta, dengan jurusan teknik informatika. Tugasku setiap hari sangat banyak dan itu semua harus ku kerjakan untuk mencapai nilai IPK yang baik dan juga cita-citaku. Aku sadar akan hal itu, dan aku juga ingat akan pesan orang tua dan juga guruku yang selalu kuingat hingga saat ini. Mereka selalu menasihati aku untuk selalu giat belajar dan rajin mengerjakan tugas supaya mendapat nilai yang memuaskan, dengan begitu nantinya bisa mencapai cita-cita yang ku inginkan.
            Dari kecil aku disekolahkan di sekolah swasta yang mana peraturannya ketat, gurunya agak galak tapi sangat mendidik siswa untuk menjadi siswa yang berprestasi bilamana siswa tersebut mau menuruti nasihat guru tersebut. Aku tahu guruku itu sebetulnya baik walaupun sedikit galak.
            Kenapa guruku itu bersikap seperti itu, karena dia menginnginkan siswa yang dididiknya menjadi pintar dan sukses di kemudian hari. Guruku yang kumaksud galak ini, dia juga adalah wali kelas aku yang mana hampir semua mata pelajaran diajarkan olehnya pada saat itu. Sekarang ini aku sadar mengingat kepedulian guru wali kelasku itu yang galak dalam arti mendidik secara disiplin dalam pengajarannya sehingga sampai saat ini aku mempunyai tanggng jawab pada diriku sebagai seorang mahasiswa melalui pendidikan pelajaran yang berguna yang beliau berikan. Sehingga aku tidak mau bermalas-malasan untuk pergi kuliah atau mengerjakan tugas kuliah.
            Karena kepedulian guru wali kelasku di masa lalu, pengajaran yang berarti yang beliau berikan padaku sangat berguna sekali pada saat itu, dan saat ini yang aku ingat selalu, betapa baiknya guru wali kelas itu bilamana pelajaran matematika yang tidak bisa ku mengerti. Dengan sabar dia mengajari akau sampai aku memahaminya meskipun sikap galaknya sering keluar, dibalik itu semua sampai saat ini aku selalu mengingat beliau yang aku sadari sangat membantu aku terutama dalam pelajaran matematika. Guru ini juga merupakan pahlawan bagiku yang tidak bisa aku balas kebaikannya.
            Tanpa adanya guru itu aku belum tentu seperti sekarang, karena guruku merupakan orang tuaku juga. Selama aku bersekolah selain orang tua kandung yang melahirkan dan membesarkan aku, guruku benar sangat berjasa sekali bagiku. Karena beliau sampai sekarang pun masih terus bertanya-tanya tentang aku meskipun aku sudah dewasa. Karena aku dengan guruku itu bertetangga, kadang guruku itu mampir ke rumahku untuk menasehati dan memberikan masukkan hal-hal yang positif padaku aku, misalnya supaya aku memilih teman yang benar dalam bergaul, tidak bergaul dengan teman yang nakal yang suka pergi dugem atau minum-minuman keras, narkoba, dll. Karena itu semua bisa merusak masa depan dan usaha dalam menggapai cita-citaku.
            Semua nasihat yang beliau berikan sama dengan nasihat dari orang tuaku. Aku tahu guru dan orang tuaku sangat perhatian pada aku, aku juga sudah diangap seperti anak kandung oleh guruku. Betapa senang perasaanku karena ada guru yang mau memperhatikan muridnya seperti itu.
            Ada keinginan dalam hati aku untuk membalas semua kebaikan yang sudah diberikan guruku itu, walau aku tahu guruku itu tidak pernah minta balasan juga pada aku sebagai mantan muridnya, begitu juga dengan murid yang lainnya.
            Sangat cocok bila guru disebut pahlawan tanpa tanda jasa, yang berarti seorang guru yang mendidik dan mengajar murid-muridnya dengan tujuan yang pasti yaitu supaya murid-murid yang diajarkan menjadi pintar. Dalam pengertian positif juga menjadi orang yang berprestasi atau berkedudukan, dan di waktu dewasa nanti saat murid dari guru tersebut mempunyai suatu pekerjaan yang berguna bagi masyarakat dan Negara.
            Semoga harapan semua guru bisa menjadi nyata dan tidak hanya harapan saja, tetapi untuk mencapai semua itu tergantung pada masing-masing muridnya untuk menjalani perilaku yang positif. Dimana tentu saja guru selalu mendidik dan mengarahkan murid-muridnya kearah yang baik. Karena adanya hubungan yang baik antara murid dan guru, maka semua keinginan dan harapan untuk hal-hal yang positif dapat menjadi nyata.


Jumat, 28 September 2012

IBM Worklight, Solusi Mudah Untuk Developer Mobile Application

Sekarang ini hidup kita sudah tidak bisa lepas lagi dari yang namanya Smart Phone. Banyaknya pengguna Smart Phone, pada akhirnya juga memicu munculnya banyak developer aplikasi untuk masing-masing platform.
Masing-masing platform dalam pengembangan aplikasinya tentu saja butuh kemampuan menguasai bahasa pemrograman yang mendukung untuk masing-masing platform seperti untuk Android berbasis Java, lalu IPhone berbasis Object C, dan lainnya.
Kemarin pada tanggal 27 September saya mengikuti seminar mengenai IBM Worklight yang diadakan di auditorium kampus saya. Pada seminar tersebut dijelaskan bahwa IBM Worklight ini adalah sebuah framework untuk membangun aplikasi berbagai jenis platform hanya dengan menggunan HTML 5, CSS 3, dan Java Script. Dijelaskan pula kelebihan HTML 5 dibandingkan dengan HTML versi sebelumnya, yaitu pada HTML 5 kita dapat dengan mudah mengembed video tanpa perlu program tambahan seperti flash,dll.
Program yang telah kita buat nantinya bisa diubah menjadi source code platform Smart Phone yang kita inginkan, dimana proses deploy aplikasi dilakukan ke server IBM. IBM Worklight ini terdiri dari empat komponen utama, yaitu : IBM Worklight Studio, IBM Worklight Server, IBM Worklight Runtime Components, dan IBM Worklight Console.

Untuk penjelasan langsung dari IBM dan jika ingin mendownload silahkan lihat link di bawah ini :
Referensi Artikel : http://www-01.ibm.com/software/mobile-solutions/worklight/

Minggu, 29 Juli 2012

Address Space Layout Randomization (ASLR) / Pengacakan Tata Letak Ruang Alamat

Saat ini ada beberapa OS yang bisa dibilang memiliki sistem keamanan yang baik. Sistem keamanan yang digunakan OS-OS itu adalah Address Space Layout Randomization (ASLR) / Pengacakan Tata Letak Ruang Alamat.
Apa itu Address Space Layout Randomization (ASLR) / Pengacakan Tata Letak Ruang Alamat ?
Mungkin sudah ada yang tahu mengenai istilah ini tetapi banyak juga mungkin yang belum mengenal istilah ini.

Address Space Layout Randomization (ASLR) / Pengacakan Tata Letak Ruang Alamat adalah sistem keamanan komputer yang berupa pengaturan area data utama secara acak, biasanya meliputi basis eksekusi dan posisi dari library, heap, dan stack dalam ruang alamat proses itu.
ASLR ini menghambat beberapa jenis serangan keamanan dengan membuat lebih sulit bagi penyerang untuk memprediksi alamat target.

Efektivitas

Pengacakan tata letak Ruang alamat didasarkan pada rendahnya kesempatan penyerang untuk menebak mana daerah secara acak ditempatkan berada. Keamanan ditingkatkan dengan meningkatkan ruang pencarian. Dengan demikian, alamat pengacakan ruang lebih efektif bila lebih banyak entropi  berada dalam offset acak. Entropi ditingkatkan dengan baik meningkatkan jumlah ruang daerah memori virtual dimana pengacakan terjadi atau mengurangi periode dimana pengacakan terjadi. Periode ini biasanya diimplementasikan sekecil mungkin, sehingga kebanyakan sistem harus meningkatkan pengacakan ruang VMA.

Sejarah
Proyek PaX pertama menciptakan istilah "ASLR". Proyek ini mempublikasikan desain pertama dan pelaksanaan ASLR pada bulan Juli, 2001. Publikasi ini merupakan implementasi yang paling lengkap, menyediakan pengacakan stack kernel dari bulan Oktober 2002 dan seterusnya. Proyek ini juga terus memberikan entropi trerbaik untuk setiap tata letak acak dibandingkan dengan implementasi lainnya.

OS-OS yang sudah mengimplementasikan sistem ini, antara lain :
  • OpenBSD
  • Linux (Sejak Kernel  2.6.12  )
  • Microsoft Windows ( Microsoft's Windows Vista (released January 2007), Windows Server 2008Windows 7, and Windows Server 2008 R2 )
  • Mac OSX ( Mac OS X v10.5 )
  • iOS (iPhone, iPod touch, iPad) (iOS 4.3)
  • Android (Android 4.0 Ice Cream Sandwich dan Android 4.1 Jelly Bean)






Referensi :
The Main Refrence Of My Articles :
http://en.wikipedia.org/wiki/Address_space_layout_randomization

The Supporting Refferences :
http://www.indogamers.com/read/28/07/2012/4327/android_jelly_bean__android_dengan_sistem_keamanan_terbaik/
http://www.itheming.de/vbglossar.php?do=showentry&id=24&language=id&langid=1
http://andylaoe.blogspot.com/2012/07/android-jelly-bean-adalah-os-android.html
http://www.teknoup.com/news/17746/jelly-bean-adalah-android-yang-paling-aman/

Rabu, 11 April 2012

Program Java Operasi Bilangan Kompleks

Kali ini saya membuat sebuah program Java untuk melakukan operasi bilangan kompleks, tetapi baru jumlah, kurang, dan bagi.\
Buat Class utama untuk constructor dan method yang digunakan dengan nama Kompleks.java
Berikut Listing Programnya :

/**
 *
 * @author Jonathan
 */
public class Kompleks {
private double real;
private double imajiner;


public Kompleks (){
    setreal(0);
    setimajiner(0);
}

public void setreal(double r){
    real=r;
}

public void setimajiner(double i){
    imajiner=i;
}


public double getreal(){
    return real;
}

public double getimajiner(){
    return imajiner;
}

public String HasilKom(){
    return getreal()+"+"+getimajiner()+"i";
}

public void penjumlahan(Kompleks Kom1, Kompleks Kom2){
    setreal(Kom1.getreal()+ Kom2.getreal());
    setimajiner(Kom1.getimajiner()+ Kom2.getimajiner());

}

public void pengurangan(Kompleks Kom1, Kompleks Kom2){
    setreal(Kom1.getreal()- Kom2.getreal());
    setimajiner(Kom1.getimajiner()- Kom2.getimajiner());

}

public void perkalian(Kompleks Kom1, Kompleks Kom2){
    setreal((Kom1.getreal()*Kom2.getreal())- (Kom1.getimajiner()*Kom1.getreal()));
    setimajiner((Kom1.getimajiner()*Kom2.getreal())+ (Kom1.getreal()*Kom2.getimajiner()));

}

}

Lalu Buat class untuk Menginput dan mencetak output dengan nama KompleksTest.java
Berikut listing Programnya :
import javax.swing.JOptionPane;

/**
 *
 * @author Jonathan
 */
public class KompleksTest {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        Kompleks bilangan1 = new Kompleks();
        Kompleks bilangan2 = new Kompleks();
        Kompleks hasil = new Kompleks();

        Double real1= Double.parseDouble(JOptionPane.showInputDialog("Masukan Bilangan Real 1 : "));
        Double imaj1= Double.parseDouble(JOptionPane.showInputDialog("Masukan Bilangan Imajiner 1 : "));
        Double real2= Double.parseDouble(JOptionPane.showInputDialog("Masukan Bilangan Real 2 : "));
        Double imaj2= Double.parseDouble(JOptionPane.showInputDialog("Masukan Bilangan Imajiner 2 : "));
        int op=Integer.parseInt(JOptionPane.showInputDialog("Masukan Pilihan Operasi : \n"+"1. +\n"+"2. -\n"+"3. *\n"+"4. /\n"));
        bilangan1.setreal(real1);
        bilangan1.setimajiner(imaj1);
        bilangan2.setreal(real2);
        bilangan2.setimajiner(imaj2);

    switch(op){
            case 1:
            hasil.penjumlahan(bilangan1, bilangan2);
            JOptionPane.showMessageDialog(null, "Operasi yang akan dilakukan "+"("+real1+"+"+imaj1+"i"+" "+")"+"+"+" "+"("+real2+"+"+imaj2+"i"+" "+")");
            JOptionPane.showMessageDialog(null,"Hasil Operasi yang dilakukan :"+hasil.HasilKom());
            break;
            case 2:
            hasil.pengurangan(bilangan1, bilangan2);
            JOptionPane.showMessageDialog(null, "Operasi yang akan dilakukan "+"("+real1+"+"+imaj1+"i"+" "+")"+"-"+" "+"("+real2+"+"+imaj2+"i"+" "+")");
            JOptionPane.showMessageDialog(null,"Hasil Operasi yang dilakukan :"+hasil.HasilKom());
            break;
            case 3:
            hasil.perkalian(bilangan1,bilangan2);
            JOptionPane.showMessageDialog(null, "Operasi yang akan dilakukan "+"("+real1+"+"+imaj1+"i"+" "+")"+"+"+" "+"("+real2+"*"+imaj2+"i"+" "+")");
            JOptionPane.showMessageDialog(null,"Hasil Operasi yang dilakukan :"+hasil.HasilKom());
            break;
            case 4:
            //hasil.pembagian(bilangan1, bilangan2);
            //JOptionPane.showMessageDialog(null, "Operasi yang akan dilakukan "+"("+real1+"+"+imaj1+"i"+" "+")"+"/"+" "+"("+real2+"*"+imaj2+"i"+" "+")");
            //JOptionPane.showMessageDialog(null,"Hasil Operasi yang dilakukan :"+hasil.HasilKom());
            JOptionPane.showMessageDialog(null,"Belum tahu konsepnya cuy ^_^");
            break;
        default:
             JOptionPane.showMessageDialog(null,"Pilihan Tidak Ada");
    }


    }

}

Jika butuh penjelasan silahkan komentar saja.

Kamis, 22 Maret 2012

Program Java Operasi Pecahan

Program ini saya buat dengan menggunakan constructor dan method, dan menggunakan 2 class.
Pertama buat class dengan nama Pecahan.java, berikut listing programnya :

public class Pecahan {
private double pembilang1;
private double pembilang2;
private double penyebut1;
private double penyebut2;

public Pecahan(){
    setpembilang1(0);
    setpembilang2(0);
    setpenyebut1(0);
    setpenyebut2(0);
}
public Pecahan(double pb1,double pb2,double pn1, double pn2){
    pembilang1=pb1;
     pembilang2=pb2;
      penyebut1=pn1;
      penyebut2=pn2;
}

public void setpembilang1(double pb1){
    pembilang1=pb1;
}
public void setpembilang2(double pb2){
    pembilang2=pb2;
}
public void setpenyebut1(double pn1){
    penyebut1=pn1;
}public void setpenyebut2(double pn2){
    penyebut2=pn2;
}

public double getpembilang1(){
    return pembilang1;
}
public double getpembilang2(){
    return pembilang2;
}
public double getpenyebut1(){
    return penyebut1;
}
public double getpenyebut2(){
    return penyebut2;
}


public double getjumlahpembilang(){
    if (getpenyebut1()== getpenyebut2())
        {
       return getpembilang1()+getpembilang2();
    }
 else
    {
        return (getpenyebut2()*getpembilang1())+(getpenyebut1()*getpembilang2());
 }
}
public double getkurangpembilang(){
    if (getpenyebut1()== getpenyebut2())
        {
       return getpembilang1()-getpembilang2();
    }
 else
    {
        return (getpenyebut2()*getpembilang1())-(getpenyebut1()*getpembilang2());
 }
}
public double getkalipembilang(){
    return getpembilang1()*getpembilang2();
}
public double getbagipembilang(){
    return getpembilang1()*getpenyebut2();
}
public double getjumlahpenyebut(){
    if (getpenyebut1()== getpenyebut2())
        {
       return getpenyebut1();
    }
 else
    {
        return getpenyebut1()*getpenyebut2();
 }
}
public double getkurangpenyebut(){
    if (getpenyebut1()== getpenyebut2())
        {
       return getpenyebut1();
    }
 else
    {
        return getpenyebut1()*getpenyebut2();
 }
}
public double getkalipenyebut(){
    return getpenyebut1()*getpenyebut2();
}
public double getbagipenyebut(){
    return getpenyebut1()*getpembilang2();
}


}

Class di atas berisi semua method dan objek yang akan digunakan pada class utama.
Berikutnya buat class utama dengan nama PecahanTest.java, dimana class ini merupakan clas utama untuk menjalankan program, berikut listing programnya :

import javax.swing.JOptionPane;


/**
 *
 * @author Jonathan
 */
public class PecahanTest {
public static void main (String args[]){
    Pecahan bilangan = new Pecahan();
    double pemb1= Double.parseDouble(JOptionPane.showInputDialog("Masukan Pembilang 1 : "));
    double peny1= Double.parseDouble(JOptionPane.showInputDialog("Masukan Penyebut 1 : "));
    double pemb2= Double.parseDouble(JOptionPane.showInputDialog("Masukan Pembilang 2 : "));
    double peny2= Double.parseDouble(JOptionPane.showInputDialog("Masukan Penyebut 2 : "));
    int op=Integer.parseInt(JOptionPane.showInputDialog("Masukan Pilihan Operasi : \n"+"1. +\n"+"2. -\n"+"3. *\n"+"4. /\n"));
    bilangan.setpembilang1(pemb1);
    bilangan.setpembilang2(pemb2);
    bilangan.setpenyebut1(peny1);
    bilangan.setpenyebut2(peny2);

    switch(op){
            case 1:
            JOptionPane.showMessageDialog(null, "Operasi yang akan dilakukan "+"("+pemb1+"/"+peny1+" "+")"+"+"+" "+"("+pemb2+"/"+peny2+")");
            JOptionPane.showMessageDialog(null,"Hasil Operasi yang dilakukan :"+bilangan.getjumlahpembilang()+"/"+bilangan.getjumlahpenyebut());
            break;
            case 2:
            JOptionPane.showMessageDialog(null, "Operasi yang akan dilakukan "+"("+pemb1+"/"+peny1+" "+")"+"-"+" "+"("+pemb2+"/"+peny2+")");
            JOptionPane.showMessageDialog(null,"Hasil Operasi yang dilakukan :"+bilangan.getkurangpembilang()+"/"+bilangan.getkurangpenyebut());
            break;
            case 3:
            JOptionPane.showMessageDialog(null, "Operasi yang akan dilakukan "+"("+pemb1+"/"+peny1+" "+")"+"*"+" "+"("+pemb2+"/"+peny2+")");
            JOptionPane.showMessageDialog(null,"Hasil Operasi yang dilakukan :"+bilangan.getkalipembilang()+"/"+bilangan.getkalipenyebut());
            break;
            case 4:
            JOptionPane.showMessageDialog(null, "Operasi yang akan dilakukan "+"("+pemb1+"/"+peny1+" "+")"+"/"+" "+"("+pemb2+"/"+peny2+")");
            JOptionPane.showMessageDialog(null,"Hasil Operasi yang dilakukan :"+bilangan.getbagipembilang()+"/"+bilangan.getbagipenyebut());
            break;
        default:
             JOptionPane.showMessageDialog(null,"Pilihan Tidak Ada");
    }
}
}


Simpan kedua file tersebut dalam satu folder dan jalankan PecahanTest.java.
Jika ada pertanyaan silahkan komentar saja.

Selasa, 10 Januari 2012

Cara Mengatasi Blue Screen dengan "BIOS not fully ACPI compliant" pada PC

      Beberapa hari yang lalu komputer saya ingin menyalakan komputer pentium 4 saya yang sudah 2 minggu saya tidak nyalakan. Saat saya menyalakannya ada sesuatu yang aneh awalnya berhasil nyala dan masuk ke Windows XP, lalu beberapa saat kemudian langsung keluar blue screen dengan tulisan :


A problem has been detected and windows has been shut down to prevent damage to your computer.

If this is the first time you've seen this Stop error screen, restart your computer. If this screen appears again, follow these steps:

The BIOS in this system is not fully ACPI compliant. Please contact your system vendor or visit http://www.hardware-update.com for an updated BIOS. If you are unable to obtain and updated BIOS or the latest BIOS supplied by your vendor is not ACPI compliant, you can turn off ACPI mode during text mode setup. To do this, simply press the F7 key when you are prompted to install storage drivers. The system will not notify you that the F7 key was pressed - it will silently disable ACPI and allow you to continue your installation.

Technical information:

*** STOP: 0x0000000A5 (0x00010007, 0x00000038, 0x00000000, 0x00000000)
Thank you for assisting me in troubleshooting and correcting this problem.

      Saya pun mencoba merestart komputer saya, tetapi setelah itu ternyata keluar pilihan safe mode dan teman2nya dan start windows normally saya pun memilih start windows normally ternyata tidak bisa masuk kw windows tetapi langsung blue screen seperti sebelumnya. Kemudian saya coba restart lagi dan memilih safe mode tetapi hasilnya sama tetap blue screen.
      Saya pun mencoba menekan F7 sesuai perintah pada blue screen tetapi ternyata tidak bisa juga, akhirnya saya mencoba membuka CPU komputer saya.
      Setelah membuka CPU komputer saya, saya berpikiran untuk mereset BIOS, tetapi saya liat di dekat batery CMOS saya tidak ada jumper yang menempel, yang ada hanya tempat untuk meletakannya,. Saya pun bingung apa yang harus saya lakukan lalu saya pun mencoba mengganti kabel SATA, dengan kabel SATA yang ada pada dus motherboard saya ternyata setelah dicoba masih belum bisa. Setelah itu saya pun mencoba mencabut dan memasang beberapa switch seperti gamabar dibawah ini :


                                       
                  Sumber gambar : http://www.cybergooch.com/tutorials/images/buildsystem/IMG_6827.jpg

      Awalnya ternyata setelah saya coba malah bertambah parah komputer saya tidak mau menyala sama sekali hanya keluar suara seperti tombol reset terus ditekan. Kemudian saya pun beberapa kali mencoba mencabut dan memasangnya kembali dan akhirnya komputer saya berhasil menyala dan masuk ke windows kembali seperti normal.
(Saya hanya mencoba-coba untuk PC  saya, untuk PC lain tidak saya jamin akan berhasil atau tidak)

Update 5 Januari 2013 :
Ternyata beberapa hari setelah itu PC saya benar-benar tidak mau menyala sama sekali.

Akhirnya setelah sekian lama, saya membawa PC saya ke tempat servis komputer. Ternyata hanay masalah RAM yang kotor dan harus dibersihkan dengan penghapus. Lalu masalah belum selesai, setelah dinyalakan ternyata masih keluar blue screen saat di shutdown dan ternyata permasalahannya adalah dua RAM (256 MB dan 1 GB) yang tidak kompatibel tipe nya, sehingga RAM 256 MB di lepas, dan setelah itu PC dapat berjalan normal. Setelah itu saya pun menginstall Windows 8.