05 September 2009

Loop (Perulangan) Dalam Java

Hai pembaca, jumpa lagi dalam tulisan saya kali ini. Untuk pembahasan kali ini kita akan mencoba teknik-teknik dasar konsep programming. Semoga pembahasan konsep-konsep dasar ini dapat menambah wawasan dan pengertian kita semua terhadap aspek-aspek konsep pemograman. Untuk pembahasan kali ini kita akan memabahas Perulangan atau Loop.

Loop atau perulangan adalah suatu bentuk kegiatan mengulang suatu statement sampai batas yang diinginkan. Dalam pemograman Loop atau perulangan sangat berguna sekali. Kegunaan sederhana dalam perulangan terlukis seperti ini: Jika kita ingin menuliskan kata “saya ganteng” sebanyak seribu kali maka kita harus membuat seribu baris kata “saya ganteng” dalam kode pemrogaman kita. Tapi dengan adanya perulangan maka kita hanya cukup menuliskan 5 sampai 7 baris kode saja. Dalam praktek sebenarnya, tentu saja perulangan sangat membantu sekali. Misal untuk memuat seluruh isi table dari sebuah database dimana datanya ingin kita tampilkan.

Loop atau perulangan dalam Java dapat dilakukan dengan 3 teknik:

  • Perulangan dengan for

    for (inisialisasi ekspresi; kondisi loop; ekspresi penambahan){
    // pernyataan
    }
    Perulangan dengan teknik ini dikontrol oleh tiga bagian yang ada dalam tanda kurung dan masing-masing bagian ini dipisahkan oleh titik-koma. Pada bagian pertama(inisialisasi ekspresi), sebuah variabel akan di deklarasikan sebagai sebuah titik awal dari perulangan, biasanya variable ini mempunyai tipe data integer atau float. Sementara pada bagian kedua disinilah perulangan akan diperiksa apakah masih memenuhi syarat atau tidak, jika masih memenuhi syarat maka statement dibawahnya akan di eksekusi. Sedangkan bagian ketiga adalah bagian dimana jika bagian kedua masih memenuhi syarat maka nilai variabel akan ditambahkan sesuai dengan syarat yang dituliskan. Bagian ketiga ini secara otomatis akan tidak dibaca oleh program jika kondisi pada bagian ke-dua sudah tidak lagi memenuhi syarat, dan perulangan pun menjadi terhenti. Untuk lebih jelasnya perhatikan potongan contoh berikut ini:
  • for (int i=0; i <=1000; i++){
    System.out.println(“Saya Ganteng”);
    }
    Jika digambarkan jalannya program akan seperti ini: variable i akan di inisialisasi pertama kali dan langsung diberi nilai 0, kemudian variable i tersebut akan diperiksa pada bagian kedua, apakah i lebih kecil atau sama dengan 1000, jika nilai I pertama kali adalah 0 maka pernyataan tersebut bernilai benar (true), sehingga bagian ketiga pun di eksekusi dan kali ini nilai i menjadi sama dengan 1. setelah nilai i bertambah menjadi 1 maka langkah selanjutnya program akan mengeksekusi baris pernyataan yang ada didalam tanda kurung, program akan menuliskan ke layar “Saya Ganteng”. Setelah itu kursor baris akan kembali lagi keatas ke posisi for lagi, namun inisialisasi variabel dilewatkan dan langsung ke bagian kedua yaitu memeriksa apakah i <=1000, dan jika masih memenuhi syarat maka bagian ketiga dan baris statement pun di eksekusi kembali, demikian seterusnya hinga nilai variabel i sudah menjadi sama dengan 1001. Jika nilai variabel i sudah tidak lagi memenuhi syarat bagian kedua maka program akan tidak mengeksekusi bagian ketiga dan baris statement, dan pada saat ini pula loop atau perulangan akan berhenti. Jika digambarkan dalam diagram maka seperti inilah perulangan dengan for itu tergambar :
  • Perulangan dengan while.

    while(ekspresi){
    //statement
    }
  • Perulangan dengan menggunakan teknik while ini sebenarnya adalah suatu bentuk perulangan yang memodifikasi teknik pencabangan (branching) secara kasar. Pernyataan yang ada didalam blok perulangan akan dieksekusi dengan cara memeriksa ekspresi yang ada, sepanjang ekspresi bernilai true maka statement akan terus di eksekusi. Variabel sebagai kontrol perulangan bentuk ini diinisialisai di luar blok perulangan ini. Dan penambahan atau increment nilai variabel berada didalam blok perulangan ini. Kelebihan perulangan dengan bentuk ini adalah variabel yang dideklarasikan tidak hanya bertipe integer atau float saja namun bisa juga bertipe boolean atau string. Perhatikan contoh program perulangan dengan menggunakan bentuk ini yang memakai variabel bertipe integer sebagai kontrol perulangannya:

    int i=0;

    while(i<=10000){
    System.out.println(“Saya Ganteng”);
    i++;
    }

    Sepanjang variable i bernilai lebih kecil sama dengan 1000 maka pernyataan mencetak ke layar “Saya Ganteng” akan tetap terus di eksekusi. Yang harus kita perhatikan jika kita menggunakan perulangan dengan teknik ini adalah bahwa incremental variabel i harus ada, sebab jika tidak yang terjadi adalah perulangan yang tidak pernah akan berhenti atau Invinitive Loop.
    Kemudian mari kita lihat potongan kode yang variabel kontrolnya tidak menggunakan integer atau float, berikut ini:
    boolean ctrl =false;
    int i = 0;

    while(ctrl==false){
    System.out.println(“Saya Ganteng”);
    i++;
    if(i == 1000){
    ctrl = true;
    }
    }

    Perhatikan pada potongan kode program tersebut. Pernyataan mencetak kelayar “Saya Ganteng” akan terus dieksekusi selama variabel kontrol perulangan tersebut masih bernilai false, sementara trigger untuk membuat variable bernilai true adalah nilai variable i yang harus sampai dengan 1000.
    Jika digambarkan dalam diagram maka sketsa perulangan dengan bentuk ini seperti gambar berikut:

  • Perulangan dengan do while

    do{
    //statement
    }while(ekspresi);

    Perulangan dengan bentuk seperti ini adalah perulangan dengan membalikkan logika perulangan dengan teknik while. Dalam perulangan dengan bentuk ini, pernyataan dieksekusi dulu, baru kemudian kondisi variabel kontrol perulangannya diperiksa apakah memenuhi syarat atau tidak. Biar lebih mudah memahaminya mari kita lihat potongan code program berikut ini:

    int i=0;

    do{
    System.out.println(“Saya Ganteng”);
    i++;
    }while(i<=10000);

    Variabel kontrol perulangan tetap diinisialisasi diluar blok perulangan dan harus tetap bersifat incremental / bertambah dan letak incrementalnya ada dalam blok perulangan. Secara logika maka diagram yang bisa menggambarkan proses perulangan tersebut adalah:

Demikianlah pembahasan kita kali ini mengenai Perulangan atau Loop dalam pemrograman Java. Ada beberapa hal yang bisa kita simpulkan dan kita catat dalam pembahasan kali ini:
  1. Dalam perulangan harus ada variable kontrol, dimana variabel tersebut yang bertugas mengontrol perulangan hingga batas apa atau berapa perulangan bisa dilakukan.
  2. Variable kontrol harus bersifat incremental atau juga bersifat dapat dimodifikasi sehingga perulangan dapat berjalan dengan semestinya.
  3. Incremental atau modifikasi variabel kontrol berada dalam lingkup perulangan.

Point-point diatas menjadi konsep dasar pengertian kita akan makna Loop atau perulangan dalam bahasa pemrograman.


Semoga Bermanfaat


Salam

Josescalia

24 August 2009

Mohon Maaf

Pembaca setia blog ini, saya ingin sekali menyampaikan permohonan maaf, mungkin anda yang sudah berkali-kali membuka blog ini, namun tidak menemukan artikel-artikel baru yang mungkin bermanfaat.
Bukan saya sudah malas menulis, melainkan karena ada beberapa hal masalah pekerjaan yang sangat harus diselesaikan, dan ini sangat memakan waktu saya, sehingga saya belum mempunyai kesempatan untuk kembali mengisi blog ini dengan catatan-catatan yang saya ketahui.
Sebelumnya saya ingin mengucapkan terima kasih yang seluas-luasnya untuk para pembaca blog ini, karena kunjungan andalah saya merasa ada tanggung jawab untuk kembali menulis apa-apa yang saya ketahui. Saya tahu karena saya memakai hit counter pada blog ini. setiap minggu saya amati ternyata banyak juga yang datang untuk mengunjungi blog ini. dalam satu minggu paling tidak ada sekitar 250 pengunjung pada blog ini. Bila sedang ada artikel baru bisa mencapai 500 pengunjung dalam satu minggu.
Saya cukup senang dengan statistik tersebut, paling tidak saya merasa bahwa tulisan saya pantas dibaca dan mungkin diterapkan pada kegiatan komputer anda sehari-hari.
Masalah pekerjaan yang menghantam saya 3 bulan belakangan sungguh sangat menyita waktu saya, saya mencoba mencari apa yang sebenarnya saya inginkan dari pekerjaan yang saat ini saya jalani. Dan akhirnya saya menemukan sebuah kesimpulan yang melahirkan sebuah keputusan yang sungguh berat, dan itu harus saya ambil.
Saya memutuskan untuk resign dari kantor saya sekarang, kantor yang telah memberi banyak ilmu dan pengetahuan buat saya, kantor yang telah banyak memberikan limpahan materi yang bahkan tidak pernah saya bayangkan ketika saya sekolah dulu. Tapi keputusan sudah saya ambil, dan Insya Allah saya tidak pernah akan menyesalinya. Karena sebelumnya sudah melalui pertimbangan yang matang, dan pemikiran yang matang pula.
Insya Allah pula, selesai masa transisi pengetahuan ke staff-staff yang masih bekerja di perusahaan saya ini, saya akan kembali mencoba untuk menuliskan apa-apa yang saya ketahui nantinya pada blog ini. 5 Tahun bukan waktu yang sebentar buat saya untuk langsung menghilangkan begitu saja kenangan-kenangan yang saya telah dapatkan di perusahaan ini.
Mohon doa dari seluruh pembaca setia blog ini semoga saya selalu diberikan kesehatan yang prima dan diberikan waktu luang untuk bisa menuliskan yang saya ketahui pada blog ini.
Sekali lagi saya mengucapkan terima kasih yang seluas-luasnya telah tetap setia mengunjungi blog ini, semoga semua yang telah pembaca dapatkan dari blog ini bisa bermanfaat. Dan Insya Allah habis lebaran tahun ini, saya akan mencoba untuk kembali menulis....


Salam hangat

josescalia

07 June 2009

Antara MySQL dan Microsoft Excel

MySQL adalah suatu platform database yang saat ini banyak digunakan. Dalam database kita kenal istilah SQL atau Structure Query Language. Juga dalam database kita kenal DML(Data Manipulation Language), DDL (Data Definition Language), dan DAL(Data Access List). Tapi kita tidak akan bahas semua diatas untuk kesempatan kali ini.

Microsoft Excel adalah sebuah platform Microsoft yang biasa dipakai oleh kita dalam membuat dokumen yang berupa tabulasi atau setidaknya berbentuk tabel. Platform ini sangat terkenal di dunia, sebagai sebuah alat bantu kerja terutama bagi para pekerja yang suka sekali dengan kegiatan laporan dan hitung-menghitung. Dan kali ini pun kita tidak akan membahas pula Microsoft Excel pada kesempatan kali ini.

Lalu apa yang akan kita diskusikan pada kesempatan kali ini? Yang akan kita diskusikan pada kesempatan kali ini adalah menjadikan Microsoft Excell sebagai alat bantu SQL untuk merancang query pada database MySQL. Hmmm menarikkah..? terserah silahkan kita lihat sendiri nantinya.

Terkadang jika seorang IT Engineer terbiasa bermain-main dengan database, pasti paham bagaimana sebuah DML yang akan dieksekusi ke dalam SQL Console harus dirancang dulu sebelum mengeksekusinnya ke dalam SQL console, terutama untuk Query-Query yang tidak hanya memakai satu tabel saja. Dalam artian ada Join Table pada query yang hendak dirancangnya. Dalam pembuatan report misalnya, table a harus di join dengan table b dengan primary keynya adalah kolom z, dan lain-lain.

Ok, let’s cut this bullshit off, just go straight to the point.

..:: Menjadikan excel sheet sebagai wadah hasil query pada MySQL::..

Membuat excel sheet menjadi wadah hasil dari SQL Query yang kita lakukan pada database MySQL, dapat kita lakukan dengan cara membuang output dari hasil query tersebut kepada sebuah file xls. Perhatikan contoh berikut ini:

Katakanlah kita punya sebuah table dengan struktur seperti ini:

Kemudian kita diminta untuk membuat sebuah laporan list dari tabel ini yang LOGIN_DATE nya tertentu, misal selama bulan Desember 2009 dan menempatkan dalam sebuah file Microsoft Excel. Rancangan query yang bisa kita lakukan anggaplah seperti ini “select USERNAME, IP_ADDRESS, LOGIN_DATE, LOGIN_TIME, LOGOUT_DATE,LOGOUT_TIME from user_activity WHERE LOGIN_DATE>=’2008-12-01’ and LOGIN_DATE<=’2009-12-31’”. Setelah rancangan query ini selesai, ketika kita ingin menempatkan hasil query tersebut ke dalam sebuah file excel katakanlah nama filenya adalah web_activity-200912.xls, maka kita bisa mengeksekusi query tersebut dengan cara seperti ini:

    mysql -uroot –pk4tr0k5 -H -e "select USERNAME, IP_ADDRESS, LOGIN_DATE, LOGIN_TIME, LOGOUT_DATE,LOGOUT_TIME from user_activity WHERE LOGIN_DATE>='2008-12-01' and LOGIN_DATE<='2008-12-31'" > web_activity-200912.xls

Penjelasannya:

mysql –uroot –p adalah sebuah perintah konsol pada konsol OS yang memanggil mysql client dengan paramater –u(user) dan –p(password) dimana untuk paramater usernya langsung kita masukan yaitu root dan paramater password yang juga langsung kita masukkan yaitu k4tr0k5. kemudian untuk paramater selanjutnya adalah –H, inilah yang menjadikan hasill dari query yang kita buat menjadi sebuah table, kemudian paramater selanjutnya adalah –e(execute), dimana didalam tanda kutip setelah –e inilah query yang tadi kita rancang kita letakkan. Kemudian yang terakhir adalah simbol >, sebagai sebuah perintah pada Operating System untuk melempar output dari perintah itu semua ke dalam sebuah file.


..:: Merencanakan SQL Query dengan Microsoft Excell ::..

Terkadang ketika kita ingin memasukkan atau mengedit data yang banyak jumlahnya ke atau di dalam table dalam database MySQL menjadi sebuah kegiatan yang sangat membosankan, karena kita berulang kali membuat query yang sama namun value atau nilai yang akan diisikan dalam tabel berbeda-beda. Dengan menggunakan feature Microsoft Excel, hal tersebut bisa menjadi sangat menyenangkan, sebab ketika ingin meng-copy sebuah query yang sama kita hanya menarik kursor pada kolom di Microsoft Access seperti gambar ini:

Dengan fitur ini peng-copi-an dengan 1000 baris data pun akan menjadi mudah dan menyenangkan, namun selain itu ada beberapa fitur lain dalam excel yang bisa kita gunakan untuk membantu kita merancang query yang kita butuhkan guna melakukan DML pada database MySQL. Perhatikan contoh berikut ini:

Anggaplah kita punya sebuah table dalam database dengan strukture seperti ini:

Kemudian kita ingin memasukkan data ke dalam table ini sejumlah 3000 baris, maka querynya akan menjadi seperti ini “insert into user_web values(‘….’, ’….’, ’….’);” titik-titik itu diisi dengan data sebanyak 3000 baris, bayangkan capeknya mengisi satu demi satu titik-titik tersebut hingga mencapai 3000 baris. Jika dengan menggunakan Microsoft Excell maka akan menjadi lebih mudah dan menyenangkan. Caranya adalah:

Petakanlah kolom-kolom tersebut dalam Microsoft Excel, kemudian isi data yg 3000 baris tadi sehingga menjadi seperti gambar ini:

(Dalam contoh ini saya buat sedikit sample saja, yang penting paham konsepnya he..he..he..).

Kemudian letakkan query tadi pada kolom D3 di awali dengan symbol =” dan di akhiri dengan , kemudian ganti masing-masing titik-titik yang ada dengan kolom yang sesuai dengan nilainya, apitlah dengan tanda “&&” pada titik-titik tersebut, sehingga query yang diletakkan pada kolom D3 menjadi seperti ini:

="insert into user_web values('"&A3&"','"&B3&"','"&C3&"');"

Maka hasilnya akan terlihat seperti gambar berikut ini:

Kita bisa melihat pada gambar, panah No. 1 menunjukkan bahwa query pada cell microsoft excel seperti tersebut diatas, sementara pada panah No.2 menunjukkan hasil dari fitur fungsi yang kita pakai pada Microsoft Excel ini.

Sementara untuk langkah selanjutnya, tinggal copy-paste atau tarik kursor cell tersebut keseluruh data yang ada pada rencana data pada kolom di bawahnya. Kemudian untuk mengeksekusi query tersebut tinggal copy-paste blok cell tersebut dalam SQL Console.

Saya sendiri sering memakai trik ini dalam melakukan rencana SQL Query pada table yang ingin saya eksekusi pada pekerjaan sehari-hari saya. Ketika saya bandingkan memang hampir 85% lebih cepat dibanding dengan mengedit satu demi satu Query SQL yang saya rencanakan.

Demikianlah pembahasan kita kali ini, membuat Microsoft Excel sebagai salah satu alat bantu ketika bekerja dengan database MySQL. Kita juga bisa menggunakan alternatif Open Office Calc yang serupa tapi tak sama dengan Microsoft Excel ini. Ya terserah maunya anda pakai yang mana.

Terima kasih telah membaca tutorial dan blog ini. Semoga Bermanfaat.

Menteng, 07 Juni 2009


josescalia