Rabu, 03 Juli 2013

The Programmers Life


Cara Menyetting Jetty di Eclipse

Saya mengasumsikan kita sudah mendownload jetty di eclipse. Dan berikut cara memasang jetty di eclipse :

  1. Klik tanda panah kebawah di sebelah tombol Run, lalu pilih Run Configuration :


  2. Klik kanan di Jetty Webapp, lalu New :


  3. Lalu isi sesuai nomor berikut :

    Keterangan :
    1, Name : nama alias di run
    2. Pilih tab Jetty
    3. Select a Jetty version : pilih Jetty 6.1.26
    4. Project : arahkan ke projek yang akan di run
    5. Port : port alias yang akan di panggil di browser
    6. Context : adalah path yang akan ditulis di browser setelah menuliskan port
    7. Webapp dir : arahkan ke webapp di project kita
    Klik Apply, lalu Run

  4. Terakhir buka browsernya lalu tulis localhost:port/contextnya (port diisian ke 5, dan context diisian ke 6 diatas)

Rabu, 05 Juni 2013

Meremote Database Komputer Ketiga Menggunakan Putty

-->
Skenario :
Ada 3 komputer :
Komputer A adalah komputer kita,
Komputer B mempunyai IP public dan IP private,
Komputer C terdapat database namun tidak ada IP public, tapi bisa di ping melalui B.

Nah, cara supaya kita bisa meremote database di komputer C dari A adalah sebagai berikut :
  1. Di komputer C, didatabasenya jalankan query :
    GRANT ALL ON *.* to root@'%' IDENTIFIED BY 'password_databasenya';
    ( memberi akses user root supaya bisa mengakses semua database dari luar )
  2. FLUSH PRIVILEGES;
  3. Buka Putty di komputer A :
    • Pada menu Session :

      Keterangan :
      - Host Name : isikan alamat IP Public Komputer B
      - Save Sessions : isikan nama sembarang untuk menyimpan ke dalam listbox
      - Lalu tekan Save

    • Pindah ke menu Connection – SSH – Tunnel, lalu isikan seperti berikut :

      Keterangan :
      - Source port : port yang nantinya akan dipakai di sql client (angka bebas)
      - Destination : berisi IP private komputer C diikuti : dan port mysql
      - lalu tekan Add, maka inputan ini akan masuk di Forwarded ports :


  4. Setelah itu kembali lagi ke menu Session lalu tekan Save lagi kemudian tekan Open maka akan muncul seperti berikut :


  5. Kemudian buka SQL Client yang dipakai, sebagai contoh adalah SQLyog, buatlah koneksi seperti berikut :
    - MySQL Host Address : localhost
    - Username : username database anda
    - Password : password database anda
    - Port :4444 ( ini adalah port yang dimasukkan dilangkah ketiga diatas )
    - Database : nama databasenya

    Lalu tekan Test Connection, jika berhasil maka akan muncul window Connection Info


    Kemudian klik Connect, maka kita bisa menjalankan database di client kita.


Catatan :
Jangan tutup putty selama kita mau mengakses database di Komputer C.

Sabtu, 25 Mei 2013

Query Untuk Mereplace Karakter di Sebuah Kolom

Jika ada data seperti ini :



Kemudian kita ingin mengganti email tersebut tanpa ada @mail.com nya, maka kita bisa membuat sebuah query seperti berikut :


SELECT nama, alamat, hp, REPLACE(email, '@mail.com', '') email FROM anggota

Maka akan menghasilkan output seperti dibawah ini :



Namun bagaimana jika ada kasus @yahoo.com juga seperti ini:




Maka kita dapat menggunakan substring di dalam query, logikanya adalah kita mendapatkan karakter '@' dalulu, kemudian kita ambil karakter dari 1 sampai sebelum karakter '@' itu. Querynya seperti ini untuk mendapatkan hasilnya:


SELECT nama, alamat, hp, SUBSTR(email, 1, LOCATE('@', email)-1) email FROM anggota

Hasilnya :

Cara Membuat Index di MySQL

Tujuan di buat sebuah index di dalam table di database supaya mempercepat hasil SELECT ke suatu table. Daftarkan nama-nama field yang ada di dalam table yang sering digunakan untuk join.

Cara membuat index :

CREATE INDEX nama_index_penjualan
ON table_penjualan(kode_produk, kode_cabang) USING BTREE;

Dengan penambahan index di sebuah table, maka kecepatan dalam membaca sebuah query lebih cepat daripada tidak diberi index.

Memotong String Berisi Angka Untuk Dijumlahkan

Kasus:
Ketika ada sebuah String yang berisi angka terpisahkan oleh spasi, kemudian kita ingin menjumlahkan angka-angka yang terpisahkan oleh spasi tersebut

Berikut adalah caranya:


package com.lingkarankode.training;

import java.util.ArrayList;

public class MemotongString {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		String text = new String("345 2 88888888 1000 55 55 55");
		String data = text.trim();
		String[] data2 = data.split(" ");
		
		//split data dan menyimpan dalam  string array
		int hasil=0;
		for(int i=0; i < data2.length; i++){				
			hasil = hasil + Integer.parseInt(data2[i]);
		}
		int temp=0;
		String data1 = null;

		//mencari panjang data yg max
		for(int i=0; i < data2.length; i++){
			if(temp < data2[i].length()){
				temp =data2[i].length();
				data1 = data2[i];
			}		
		}
		/*System.out.println("data maximum length = " + data1);
		System.out.println("panjang karakter max = " + temp);*/
		int x =4;
		int lengthMax ;
		lengthMax= temp + 4;
		ArrayList spasi = new ArrayList();
		ArrayList nilai = new ArrayList();
		String spasi1= "";
		for(int i=0; i < data2.length; i++){
			if(data2[i].length() < lengthMax){
				int loop = lengthMax - data2[i].length();
				for(int j=0; j < loop ;j++){
					spasi1 = spasi1 +" ";
				}
				spasi.add(spasi1);		       
				spasi1="";
			}

		}
		for(int i=0; i < data2.length; i++){
			nilai.add(spasi.get(i) + data2[i]);
		}
		for(int i=0; i < data2.length; i++){
			System.out.println(nilai.get(i));
		}
		//untuk hasil
		String hasil1 = String.valueOf(hasil);
		if(hasil1.length() < lengthMax){
			int loop = lengthMax - hasil1.length();
			System.out.println("------------");
			for(int j=0; j < loop ;j++){
				spasi1 = spasi1 +" ";
			}
			hasil1 = spasi1 + hasil;
			System.out.println(hasil1);
		}
	}
}


Hasil running :

         345
           2
    88888888
        1000
          55
          55
          55
------------
    88890400


Thanks to: Gede Mahendra, Merina Harmon

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'

Ketika kita menjalankan perintah mysql lewat prompt :

mysql -u root -p

Lalu menemukan pesan error :

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'

disini mysql akan membaca file konfigurasi yang ada di /etc/mysql/my.cnf

Ini adalah sebagian dari isi my.cnf dari system yang terkait dengan mysql sebagai client

[client] #password = your_password port = 3306 socket = /var/run/mysqld/mysqld.sock

nilai pada 'socket' itu yang menyebabkan error tadi. Jika kita memang ingin menggunakan mysql yang dari repo untuk mengakses mysql dari lampp, maka ubah nilai socket menjadi:

socket = /opt/lampp/var/mysql/mysql.sock

Dan ketika kita menjalankan mysql dari lampp :

/opt/lampp/bin/mysql -u root -p

seharusnya tidak ada error seperti tadi.



thanks to: saa7_go

Selasa, 14 Mei 2013

Terimalah Perbedaan Agama


Abis baca artikel yang dishared sama salah seorang temen di facebook, rasanya geregetan pengen ngomentari, tapi errr...

Kenapa sih masih aja mencari-cari kesalahan dan kekurangan agama lain?
Kenapa sih sulit menerima perbedaan dengan agama lain?
Ada masalah di kaumnya sendiri, tapi knapa masih dihubung2kan dengan kaum agama lain?

Apakah agama orang lain itu jelek?!
Atau agama kita kah yang paling bagus diantara agama lain?!
Buzet dah kalo masih ada yang mikir kayak gitu..

Kadang emang geregetan sih ketika agama yang kita anut direndah2kan ama orang lain. Aku sebagai umat Katolik, melihat kalo ada sebagian dari umat kami ada yang ga suka dengan agama yang lain. Sama halnya dengan yang aku liat dengan agama lain, bahwa ada juga sebagian dari mereka yang ga menyukai agama kami. Dan memang ga bisa dipungkiri kalo hal itu nyata ada didepan kita dan di semua agama.
Tapi yang aku yakini bahwa itu semua cuman sebagian kecil dari semua umat agama kok guys. Yang ada justru lebih banyak orang yang sudah bisa membuka mata buat menerima perbedaan2 diantara kita.

Hey guys, warna merah, jingga, kuning, hijau, biru, nila dan ungu kalo dicampur menjadi satu justru menghasilkan warna yang gelap, bahkan mendekati hitam. Tapi coba kalau kita susun berdampingan warna-warna itu, yang ada justru paduan warna yang menarik bukan. Sama halnya dengan perbedaan2 yang sudah ada di dunia ini, kalo emang udah jelas ga bisa disatukan ya setidaknya bisa saling berdampingan satu sama lain, hasilnya bakalan jadi lebih baik juga kan.

Contoh lagi, coba deh liat jaman dulu,, dulu Indonesia dijajah Belanda, Jepang dan negara-negara lain berapa lama? Ratusan tahun kan? Tapi liat perkembangannya sekarang, setelah Indonesia merdeka justru saat ini bangsa2 ini saling bekerjasama dalam berbagai bidang tanpa melihat buruknya hubungan masa lalu antar bangsa ini. Masing2 bangsa punya harga diri, namun mereka juga sudah sadar akan toleransi.

Sama halnya dengan perbedaan agama yang ada di dunia ini guys, mungkin di jaman dulu hubungan antara kaum Muslim dan umat Kristen memang buruk, buktinya sudah jelas ada perang salib. Tapi itu dulu guys,, itu udah terjadi ratusan tahun lalu. Nah anehnya itu kan masa lalu, trus kenapa kebencian itu masih terjadi sampai sekarang. Cobalah buat menerima perbedaan yang sudah ada, karena emang ga mungkin di dunia ini cuman ada satu agama aja. Sadari bahwa agama adalah keyakinan dari masing2 kita terhadap Tuhan yang disembah, jadi jangan paksakan untuk orang lain harus atau wajib mengikuti agama yang kita peluk.

Kalo emang diantara umat2 agama tertentu merendahkan agama kita, ya udah jangan dibales dengan cemoohan ke agama mereka juga. Sebelum kita ngebales cemoohan atau merendahkan agama mereka, coba deh tanya ke diri kita masing2 dulu:

"Kalau aku ngebalas omongan mereka dengan cemoohan, berarti aku sama aja donk dengan mereka yang suka ngerendahin agama orang lain?"

Itu guys intinya, cemoohan dibales dengan cemoohan, emosi dibales pake emosi, trus kapan mau selesai masalahnya. Yang ada justru makin panjang dan malah makin benci kan.. Bener gak?!

Coba deh renungin baik2, jangan menodai kerukuan umat beragama dengan saling menghina, berdamai dalam perbedaan adalah solusi. Dan gak perlu gengsi, gak perlu milih2, dan gak perlu malu. Sadarilah bahwa dengan adanya perbedaan diantara kita itu justru bisa saling melengkapi, dan persamaan diantara kita justru akan saling menguatkan.


Thanks.



Gambar : http://danikaizen.blogspot.com/

Selasa, 07 Mei 2013

Video: Membuat Group By di Jasper iReport Berdasarkan Field Tertentu

Senin, 15 April 2013

Mencetak Bilangan Ganjil

Perulangan untuk membuat susunan sebuah karakter :

public class BilanganGanjil {
 public static void main(String[] args) {
        for (int bilangan=0; bilangan<=50; bilangan++){
            if (bilangan%2==1){
                System.out.print(bilangan +" ");
            }
        }
 }
}

Hasil running :

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 

Deret Fibonacci

Perulangan untuk membuat deret fibonacci :

public class DeretFibonacci {
    public static void main(String[] args) {
        int bil1=0, bil2=1;

        for (int bil3=0; bil3<=1000; bil3++){
            System.out.print(bil1 +" ");
            bil1=bil1+bil2;
            bil2=bil1-bil2;

             // jika ingin memberi batas diberi "if"
            if (bil1>100){    
                break;
            }
        }
    }
}

Hasil running :

0 1 1 2 3 5 8 13 21 34 55 89 

Perulangan For Membuat Bintang (5)

Perulangan untuk membuat susunan sebuah karakter :

public class Bintang5 {
   public static void main(String[] args) {
      for(int k=1;k<=2;k++){
         for(int l=1;l<=3;l++){
            if(l%2==0){
               System.out.println("**");
            } else {
               System.out.println("*");
            }
         }
         if(k%2==1){
            System.out.println("***");
         }
      } 
   }
}

Hasil running :

*
**
*
***
*
**
*

Perulangan For Membuat Bintang (4)

Perulangan untuk membuat susunan sebuah karakter :

public class Bintang4 {
   public static void main(String[] args) {
      for(int g=1; g<=5; g++){
         for(int h=1; h<=(5-g); h++){
            System.out.print(" ");
         }
         for(int h=1; h<=g; h++){
            System.out.print("*");
         }
            System.out.print("\n");
      } 
   }
}

Hasil running :

    *
   **
  ***
 ****
*****

Perulangan For Membuat Bintang (3)

Perulangan untuk membuat susunan sebuah karakter :

public class Bintang2 {
   public static void main(String[] args) {
      for(int i=1;i<=5;i++){
         for(int j=1;j < i;j++){
            System.out.print(" ");
         }
         for(int j=5;j >= i;j--){
            System.out.print("*");
         }
         System.out.print("\n");
      }
   }
}

Hasil running :

*****
 ****
  ***
   **
    *

Perulangan For Membuat Bintang (2)

Perulangan untuk membuat susunan sebuah karakter :

public class Bintang2 {
   public static void main(String[] args) {
      for(int e=1; e<=5; e++){ 
         for(int f=5; f>=e; f--){
            System.out.print("*");
         }
         System.out.println("");
      } 
   }
}

Hasil running :

*****
****
***
**
*

Function INITCAP Untuk MySQL

Jika kita menggunakan Oracle mungkin kita tidak perlu repot-repot membuat function karena fungsi INITCAP di Oracle sudah ada. Tapi jika kita di MySQL, maka kita perlu membuat sebuah function sendiri karena function initcap tidak disediakan di MySQL.

Function initcap untuk MySQL :

DELIMITER $$

CREATE FUNCTION `mysql_training`.`initcap`(X VARCHAR(255)) 
RETURNS VARCHAR(255)
    BEGIN
     SET @str   = '';
     SET @l_str = '' ;
 
     WHILE X REGEXP ' ' DO
      SELECT SUBSTRING_INDEX(X, ' ', 1) INTO @l_str;
      SELECT SUBSTRING(X, LOCATE(' ', X)+1) INTO X;
      SELECT CONCAT(@str, ' ', CONCAT(UPPER(SUBSTRING(@l_str, 1, 1)), 
      LOWER(SUBSTRING(@l_str, 2)))) INTO @str;
     END WHILE;

     RETURN LTRIM(CONCAT(@str, ' ', CONCAT(UPPER(SUBSTRING(X, 1, 1)), 
     LOWER(SUBSTRING(X, 2)))));
    END$$

DELIMITER ;

Cara Running :

SELECT 
 initcap('isikan seBuAh fiELD atAu sTRing sEmBARang') STRING
FROM DUAL;

Hasil Eksekusi :

STRING
-----------------------------------------
Isikan Sebuah Field Atau String Sembarang


Sabtu, 13 April 2013

Perulangan For Membuat Bintang (1)

Perulangan untuk membuat susunan sebuah karakter :

public class Bintang1 {
   public static void main(String[] args) {
      for (int baris = 1; baris <= 5; baris++) {
         for (int bintang = 1; bintang <= baris; bintang++) {
            System.out.print("*");
         }
         System.out.println();
      }
   }
}

Hasil running :

*
**
***
****
*****

Function Untuk Menampilkan Format Tanggal Indonesia

Function untuk menampilkan format tanggal dalam bahasa Indonesia.

Code :

DELIMITER $$

CREATE FUNCTION `mysql_training`.`fn_tanggal_indonesia`(tanggal DATE) 
    RETURNS VARCHAR(20)
    BEGIN
	DECLARE tglIndonesia VARCHAR(20) DEFAULT '';
	DECLARE hari INT;
	DECLARE tahun INT;
	DECLARE namaBulan ENUM (
		'Januari',
		'Februari',
		'Maret',
		'April',
		'Mei',
		'Juni',
		'Juli',
		'Agustus',
		'September',
		'Oktober',
		'November',
		'Desember'
	);
	SET hari	= EXTRACT(DAY FROM tanggal);
	SET namaBulan	= EXTRACT(MONTH FROM tanggal);
	SET tahun	= EXTRACT(YEAR FROM tanggal);
	
	SET tglIndonesia = CONCAT(hari, ' ', namaBulan, ' ', tahun);
	RETURN tglIndonesia;
    END$$

DELIMITER ;

Eksekusi :

SELECT fn_tanggal_indonesia(NOW()) tanggal FROM DUAL;

Hasil run :

tanggal
-------------
13 April 2013

QUERY LOAD DATA INFILE



Load data infile digunakan untuk memasukkan data ke tabel di dalam database dari sebuah file dari suatu folder.

Format Umum :
LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name'
    [REPLACE | IGNORE]
    INTO TABLE tbl_name
    [CHARACTER SET charset_name]
    [{FIELDS | COLUMNS}
        [TERMINATED BY 'string']
        [[OPTIONALLY] ENCLOSED BY 'char']
        [ESCAPED BY 'char']
    ]
    [LINES
        [STARTING BY 'string']
        [TERMINATED BY 'string']
    ]
    [IGNORE number LINES]
    [(col_name_or_user_var,...)]
    [SET col_name = expr,...]
Contoh 1:
LOAD DATA INFILE 'C:/testsql/databuku.txt'
INTO TABLE t_buku;
Contoh 2:
LOAD DATA INFILE 'C:/testsql/databuku.txt'
INTO TABLE t_buku
FIELDS TERMINATED BY '|'
LINES TERMINATED BY '\n';
Contoh 3:
LOAD DATA INFILE 'C:/testsql/databuku.txt'
INTO TABLE t_buku
FIELDS TERMINATED BY '|'
LINES TERMINATED BY '\n'
(CODE,judul,tahun_terbit);

Senin, 08 April 2013

Cara Mereset Auto Increment

Cara mereset field table yang diset dengan auto increment adalah sebagai berikut:

ALTER TABLE t_buku AUTO_INCREMENT=0;

-- note

Kamis, 14 Maret 2013

How To Write Good Code

Rabu, 13 Maret 2013

Membuat Parameter IN dan NOT IN di Jasper iReport

Ada kalanya kita menggunakan query IN ataupun NOT IN untuk dimasukkan ke dalam Jasper iReport. Berikut adalah langkah-langkahnya :


Pertama buat parameternya:



Kedua, ubah Paramter Classnya menjadi java.util.Collection:


Ketiga, pasang parameter tersebut dengan sintak $X{IN, nama_field_nya, nama_parameter_nya} seperti digambar berikut:


Terakhir, jalankan hasilnya dengan memasukkan nilainya:


Jika kita ingin menggunakan NOT IN, tinggal ganti pemanggilan parameternya menjadi $X{NOTIN, nama_field_nya, nama_parameter_nya} seperti dibawah ini:




Berikut adalah contoh video membuat parameter IN dan NOT IN di Jasper iReport:


Kamis, 14 Februari 2013

How to Cut a Pizza