Tuesday, October 19, 2010

PHP : Excel to Postgree Converter

Dulu saya pernah membuat converter dari excel langsung ke mysql, keinginan untuk membuat converter dengan database yang berbeda muncul ketika saya menggunakan database postgree dan membutuhkan converter tersebut untuk aplikasi di kantor. akhirnya saya menemukan blog ini, dan mencoba memodifikasi dan ternyata berhasil.

Cara kerja dari converter ini sangat sederhana, Library membaca File excel, kemudian file excel tersebut dimapping sesuai dengan header tabel dan nama field yang ada didalam tabel. kemudian record tersebut dimasukkan kedalam tabel.

Cekidot aja deh contohnya dibawah ini, semoga bermanfaat :

require_once 'Excel2Psql/excel2psql.php';


$excel_file = "testing_koperasi.xls";

$excel2psql = new Excel2PgSQL($excel_file);
//$excel2psql ->setConvertArea( '$A$1:$E$5' );

$excel2psql ->setRowStart(1);
$excel2psql ->setColStart('A');

$excel2psql ->setColMapping(
array('1'=>'field_1',
'2'=>'field_2','3'=>'field_3',
'4'=>'field_4','5'=>'field_5',
'6'=>'field_6','7'=>'field_7',
'8'=>'field_8','9'=>'field_9',
'10'=>'field_10','11'=>'field_11',
'12'=>'field_12','13'=>'field_13',
'14'=>'field_14','15'=>'field_15',
'16'=>'field_16','17'=>'field_17',
'18'=>'field_18','19'=>'field_19',
'20'=>'field_20','21'=>'field_21',
'22'=>'field_22','23'=>'field_23','24'=>'field_24')
);

$excel2psql ->connectDB ('localhost','nama_user_db','pass_user_db','nama_db','nama_tabel');
$excel2psql ->injectData();

if($excel2psql ){

echo "Improt data berhasil";
}else{
echo "Improt data gagal";

}

Klik excel2pgsql.rar untuk source lengkapnya...

Lanjut ....

Wednesday, July 28, 2010

Kurs Mata Uang Dengan RSS


Wiget kurs mata uang biasa ditambilkan pada situs-situs berita seperti detik, kompas dan lain sebagainya. banyak tehnik yang digunakan untuk mendapatkan data kurs yang bisa update dari sumbernya. yang sering digunakan biasanya tehnik grabbing, yaitu mengambil beberapa bagian dari sebuah situs. tehnik ini sangat beresiko, karena kita mengambil source dari situs lain tanpa permisi, disamping itu juga akan membuat situs kita dan situs yang digrabbing semakin lama untuk dibuka.disamping itu juga ketika situs yang digrabbing berubah tampilan maka coding kita juga harus menyesuaikan.

Situs yang sering dijadikan acuan untuk grabbing biasanya situs BI, BCA dan Mandiri. nah saya mencoba berbagi dengan menggunakan teknik 2 yaitu dengan menggunakan RSS atau XML, dengan cara ini lebih aman dan pastinya mudah dalam coding. kenapa lebih mudah?

  1. RSS formatnya sudah seragam dan dipakai standard dalam situs-situs yang menyedian berita.
  2. Formatnya XML, lebih mudah dalam hal parsing data
Sayangnya situs-situs yang dijadikan sumber kurs mata uang di indonesia masih sangat jarang :-(

Berikut saya sertakan contoh penggunaan dan pemakaiannya menggunakan PHP

<html>
<head>
<title>Kurs Mata Uang dengan RSS </title>
</head>
<body>
<style type="text/css">
.currency table { border-collapse: collapse; margin: 5px 0; padding: 0; }
.currency table tbody { border-bottom: 1px solid #eee; }
.currency table th { padding: 5px 10px; font: .9em Arial, Helvetica, sans-serif; background: #0991D1; border: 1px solid #17AFF5; border-bottom: 2px solid #054D71; color: #fff; text-shadow: 1px 1px 0 #666; }
.currency table td { padding: 5px 10px; font: .8em Arial, Helvetica, sans-serif; border-bottom: 1px solid #ccc; }
.currency span { display: blockl; padding: 4px; font: .7em Arial, Helvetica, sans-serif; font-style: italic; }
.currency table tr.odd { background: #fff; }
.currency table tr.even { background: #F2F2F1;}
</style>

<div class="currency">
<table>
<tr>
<th>Mata Uang</th>
<th>Jual</th>
<th>Beli</th>
</tr>
<?php
// URL Sumber RSS
$url = "http://feeds.feedburner.com/Kurs";

$rss = simplexml_load_file($url);
if($rss)
{
echo '<h1>'.$rss->channel->title.'</h1>';
echo 'Update Terakhir '.$rss->channel->lastBuildDate.'';
$items = $rss->channel->item;

//Perulangan untuk item
foreach($items as $item)
{
$title = $item->title;
$link = $item->link;

// Memecah array menjadi 3 bagian
// mata uang, kurs jual, kurs beli
$kurs = explode(" ",$title);

echo '<tr>';
echo '<td><a href="'.$link.'">'.$kurs[0].'</a></td>
<td align="right"><a href="'.$link.'">'.number_format($kurs[1],2).'</a></td>
<td align="right"><a href="'.$link.'">'.number_format($kurs[2],2).'</a></td>';
echo '</tr>';


}// end or foreach

}
?>
</table>
</div>
</body>
</html>

Lanjut ....

Wednesday, June 30, 2010

Unlock PDF File Online

Sering kita menemui mendapatkan file pdf yang kita dapatkan dari searching sana-sini di mbah google eh malah diprotect, gak bisa diprint, gak bisa dicopy paste, gak bisa dibuka dan gak bisa yang lainnya. awalnya aku cari tools untuk unlock file PDF, tapi ternyata dapat tapi yang versi mbayar, trial, bikin sakit ati aja karena cuma bisa unlock 1 halaman :-(, blom lagi ditambah klo kita nyari cracknya yang ada malah situs-situs gak bener. tapi setelah mengembara sana-sini dapatlah saya pada 2 situs yang lumayan ampuh mengatasi masalah diatas, semoga bisa membantu :
  • Ensode.net [ http://www.ensode.net/pdf-crack.jsf ]
Situsnya agak rame dengan iklan, tombol browsenya terletak dibawah, maximal 5 Mb file PDF yang bisa diupload.
  • PDF Unlock! [http://www.pdfunlock.com/]
Sama dengan situs diatas terdapat add sense, tapi tidak sebanyak ensode.net, hanya saja tombol browse untuk upload File PDFnya terletak diatas, terlihat begitu simple dan file PDFnya bisa sampai 10 Mb yang bisa diupload.

Lanjut ....

Sunday, June 27, 2010

Deactivate Account FB Ku


Malam ini akhirnya kuputuskan untuk menonaktifkan untuk sementara waktu akun FBku.
bukan karena alasan dikantor FB di blok ataupun dilarang FBan di kantor tapi lebih kepada usaha untuk memperbaiki diri, memanfaatkan waktu yang ada dengan hal-hal yang positif demi meraih mimpi dan cita - cita mulia. Kepada seluruh sahabat dan saudaraku dimohon pengertiannya :D

Lanjut ....

Dwilogi Padang Bulan (Bag 1)

Awalnya aku gak menduga andrea akan mengeluarkan novel baru lagi setelah novel terakhirnya maryamah karpov dan peluncuran film layar lebar sang pemimpi.yang ku tunggu-tunggu malah novel terbarunya kang abik. aku tahu novel terbaru pun dari email yang dikirim oleh agen inibuku.com. aku tertarik karena mendapatkan diskon 15 % dan ongkos kirim yang cuma 3500 untuk wilayah jakarta. ku pikir naik busway aja bolak-balik 7000, blom lagi ditoko buku memang blom ada display Novel Padang Bulan, karena memang jadwal launcingnya tanggal 25 juni 2010. Iseng - iseng aku pesan, eh tiga hari kemudian masuk email yang memberitahukan bahwa buku siap dikirimkan hari ini juga, sorenya datang seorang agen menyerahkan novel tersebut ke kantor. padahal waktu itu uang di dompet tinggal selembar :-(, tp gak apa - apalah saya berhasil mendapatkan novel tepat dihari launcingnya novel tersebut dengan harga yang lebih murah dan tanpa harus repot-repot ke toko buku.

Novel Andrea terbaru ini berjudul Dwilogi Padang Bulan dan Cinta di Dalam Gelas.jadi satu novel berisi dua cerita(Dwilogi). dwilogi yang bertama berjudul Padang Bulan dan Dwilogi Kedua Berjudul Cinta Dalam Gelas.

Dwilogi Pertama (Padang Bulan)
Awal cerita novel ini bermula dari kisah seorang gadis kecil bernama enong yang terpaksa harus putus sekolah di kelas 6 SD lantaran ayahnya(Zamzani) yang seorang pendulang timah meninggal karena tertimbun tanah. ayah enong meninggal tepat setelah membelikan kamus 1 Milyar kata untuk anaknya yang bercita -cita ingin menjadi guru bahasa inggris. ia terpaksa keluar sekolah dan mencari pekerjaan di kota. namun karena fisiknya yang masih kecil dan tak selembar ijasahpun ia punya maka tak ada perusahaan yang mau menerima ia. alhasil enong memutuskan untuk menjadi penambang timah demi adik-adiknya agar tidak putus sekolah.

Kisah enong hanyalah pelengkap dari padang bulan saja. alur cerita terbanyak menceritakan kisah andrea sendiri yang kebakaran jenggot karena kekasih hatinya akan dinikahi oleh seseorang yang LEBIH dari andrea. lebih ganteng, tinggi, multi talenta dalam segala hal.
kabar tersebut dia dapat warga kampung, kemudian dia minta bantuan kepada detektif M Nur. temannya dikampung untuk menyelidiki siapa laki-laki yang berani merebut ali dari hatinya.

Disinilah alur cerita novel pertama ini mengalir. Penyelidikan detektif M Nur dan kesintingan andrea menceritakan kisahnya mengalahkan laki-laki(Zinar) yang merebut A ling darinya. dia ingin membuktikan pada A ling bahwa ia juga bisa mengalahkan dan ingin membuktikan pada A ling bahwa ia juga bisa seperti zinar dengan harapan A ling mau berpaling dari Zinar. Andrea menyiapkan Strategi dari Plant A sampai plant E. rencana itu dari menantang Zinar main catur pada acara 17an, bermain bola pingpong sampai dengan bermain bola yang endingnya tragis. tak satupun pertandingan melawan zinar yang berhasil ia menangkan. yang ada hanyalah kekalahan.

Dan rencana terakhir yang membuat dia hampir mati adalah rencana untuk menambah tinggi badan sebesar 4 Cm dengan harapan agar dia PD ketika bertemu aling. alat peninggi badan tersebut berbentuk seperti baju yang dipakai dan digantungkan pada badan. singkat cerita karena product itu kurang nyaman dipakai dan karena masalah teknis maka talinya terputus dan andrea hampir mati gantung diri. untunglah datang si enong disusul detektif M Nur menyelamatkannya.singkat cerita pada akhirnya setelah rencana demi rencana andrea yang gagal, datanglah A ling ke rumah andrea yang memberikan undangan pernikahan Zinar. Disitu terkuak ternyata zinar menikah bukan dengan aling melainkan dengan perempuan lain. peran aling disitu hanyalah sebagai perantara atau mak jomblang. dia kesal bukan kepalang kepada detektif M Nur yang salah memberikan informasi. Namun pada akhirnya luluh berdamai juga kedua sahabat itu setelah detektif M Nur mengajak andrea nonton film.

begitulah ending novel bagian 1. sanggat sulit menjelaskan secara detail 254 halaman dwilogi bagian pertama ini, biar lebih jelas baca novelnya aja langsung :D,

"Memisahkan diri darinya, bak menceraikan melati dari harumnya..."

"Berikan padaku sesuatu yang besar untuk kutaklukkan! Beri aku mimpi-mimpi yang tak mungkin karena aku belum menyerah!
tak kan menyerah. Takkan pernah"

Lanjut ....

Wednesday, June 23, 2010

Zona Nyaman

Zona nyaman atau temanku pernah menyebutnya sebagai jebakan batman. keadaan ini membuat seseorang malas belajar hal-hal yang baru, malas untuk melakukan perubahan dan merasa ogah untuk pindah-pindah posisi yang berbeda.

Zona nyaman dalam dunia pekerjaan merupakan hal yang paling ditakuti oleh para atasan perusahaan yang sudah mapan namun paling dicari oleh para karyawan. Hal ini pernah saya baca dalam blog salah satu direktur utama perusahaan telekomunikasi ternama di indonesia. beliau mengatakan bahwa karyawan tidak boleh terlalu lama menduduki suatu jabatan, malah dalam perusahaan tersebut ada ketentuan yang mengharuskan seseorang minimal telah menjabat 3 bagian yang berbeda untuk menempati posisi direktur.

Namun ketika kita berada dalam lingkungan Pe eN Es, zona nyaman itu menjadi semacam SOP yang telah disahkan. Masuk PNS setiap 4 tahun sekali ada kenaikan golongan, yang otomatis naik penghasilan, walaupun kerjanya seperti itu-itu saja. Bahkan ada yang beranggapan seperti ini "seboros-borosnya PNS masih punya penghasilan dalam setiap bulannya". Gak salah juga ketika surat saktinya PNS berupa SK laku keras di bank manapun.

Saya pribadi memang termasuk orang yang sedang berusaha untuk meraih zona nyaman dalam arti nyaman ketika bekerja, nyaman untuk masa depan dan nyaman untuk mengembangkan potensi yang ada dalam diri saya tanpa terjebak oleh zona nyaman itu sendiri :-), susah memang, tapi harus diusahakan agar hal tersebut bisa tercapai. sejujurnya malas juga ketika harus pindah-pindah tempat kerja, banyak hal yang harus disesuaikan ketika ditempat baru.
Salah satu yang mungkin bisa dilakukan untuk meraihnya mungkin dengan memanfaatkan waktu luang kita untuk belajar hal-hal yang baru, menemukan lingkungan yang baru, relasi yang baru, dan terus mengasah kemampuan yang ada dalam diri kita.





Lanjut ....

Tuesday, June 1, 2010

Membuat Struk Dengan PHP

Bagaimana caranya membuat struk belanja seperti struk pada saat kita belanja di supermarket

atau swalayan dengan menggunakan php? berikut tutorial singkatnya :
  1. Pastikan tanda comment ;extension=php_printer.dll telah dihilangkan
    pada file php.ini yang terletak di \apache\bin\php.ini
  2. Restart apache
  3. Berikut contoh scriptnya


<?php
$tanggal = date("d-m-Y");
$jam = date("H:i:s");
$var_magin_left = 10;
$p = printer_open('\\\\komputer1\\EPSON TM-U210D');
printer_set_option($p, PRINTER_MODE, "RAW"); // mode disobek (gak ngegulung kertas)
printer_start_doc($p);
printer_start_page($p);
$font = printer_create_font("Arial", 8, 7, PRINTER_FW_NORMAL, false, false, false, 0);
printer_select_font($p, $font);
printer_draw_text($p, ".: CASMADI LIBRARY :.",130,0);
printer_draw_text($p, date("Y/m/d H:i:s"),255, 40);

printer_draw_text($p, "Kasir", $var_magin_left, 40);
printer_draw_text($p, ":",70, 40);
printer_draw_text($p, 'casmadi',80, 40);

// Header Bon
$pen = printer_create_pen(PRINTER_PEN_SOLID, 1, "000000");
printer_select_pen($p, $pen);
printer_draw_line($p, $var_magin_left, 65, 400, 65);
printer_draw_text($p, "TRANSAKSI", $var_magin_left, 70);
printer_draw_text($p, "QTY", 290, 70);
printer_draw_text($p, "PRICE", 350, 70);
printer_draw_line($p, $var_magin_left, 85, 400, 85);

$row +=150;
printer_draw_text($p, "Terima Kasih Atas Kunjungan Anda", 80, $row);

printer_delete_font($font);
printer_end_page($p);
printer_end_doc($p);
printer_close($p);
?>

Penjelasan Skript :

$p = printer_open('\\\\komputer1\\EPSON TM-U210D');

berfungsi untuk membuka koneksi ke printer, contoh diatas adalah apabila printer berada didalam jaringan / printer sharing. Sedangkan untuk printer yang ada di komputer kita tinggal menuliskan nama printernya saja. Contohnya seperti dibawah ini :

$p = printer_open('EPSON TM-U210D');

Membuat dan memilih jenis garis
$pen = printer_create_pen(PRINTER_PEN_SOLID, 1, "000000");
printer_select_pen($p, $pen);

Menuliskan teks
printer_draw_text($p, ".: CASMADI LIBRARY :.",130,0);

Lanjut ....

Thursday, January 14, 2010

Fungsi Logika dalam Query Oracle

Kondisi if selain diletakkan dalam bahasa pemrograman, juga bisa dilakukan didalam sql.
contoh dibawah ini merupakan penggunaan logika if dengan 1 kondisi menggunakan decode dalam oracle :

sintaknya :

decode (expression, search_1, result_1)

Contoh Penggunaan :

"Merubah nominal pada tabel TAGIHAN menjadi negative yang mempunyai KODE_AKUN 1600 "

select KODE_AKUN,JML_TAGIHAN AS JUM_TAGIHAN,
decode(KODE_AKUN, '1600', -(JML_BAYAR), JML_BAYAR) JUM_BAYAR
from TAGIHAN;

Untuk kondisi lebih dari satu bisa menggunakan case when

sintaknya :

case when x = y then a else b end
case when x <>then a when x = y then b else c end

Contoh Penggunaan :

"Merubah nominal pada tabel TAGIHAN menjadi negative yang mempunyai KODE_AKUN 1600 dan 2309 "

select JML_TAGIHAN,
case when
(KODE_AKUN IN ('1600','2309')) then -(JML_BAYAR) else JML_BAYAR end AS JUM_BAYAR
from TAGIHAN;

Lanjut ....