20 Juli 2010

Mengambil konten web dengan PHP Curl dan Batch File, posting ke Wordpress secara otomatis

. 20 Juli 2010
0 comments

phplogo_thumb1 Sebelumnya, saya ingin menegaskan bawa tulisan saya ini hanya untuk pembelajaran semata. dengan script PHP, Curl dan Batch File ini saya mengambil konten blog http://topnew-gadget.blogspot.com dan langsung saya posting ke sebuah blog dengan engine wordpress dengan memanfaatkan fitur Remote Publishingnya.
Pada contoh ini saya menggunakan server lokal apache2triad dan untuk koneksi Internet tidak menggunakan proxy.

 

Jika anda ingin mencobanya, berikut ini cara yang saya pergunakan :

  1. Enable setting XMLPRC Worpress.

    Masuk ke halaman WP-Admin dan aktifkan Remote Publishing Wordpress yang akan menampung postingan dari web target dari menu :  setting –> Writing –> Remote Publishing –> cek Enable the WordPress, Movable Type, MetaWeblog and Blogger XML-RPC publishing protocols.

        wordpress_xmlprc
  2. Download scriptnya di http://www.mediafire.com/?b222oes0wnt5h8d
  3. Extract file ke htdocs sehingga terdapat sebuah folder mycurl yangberisi 5 file yaitu : curl.exe, crawler.bat, setting.php, crawler_idx.php, dan crawler_detail.php.
    (jangan rubah nama folder dan nama filenya jika anda belum memahami code didalamnya)
  4. buka file setting.php dengan notepad : rubah username, password dan alamat blog wordpress anda. jangan lupa disimpan. 

    $params = array('','','USERNAME','PASSWORD',$XML,1);

    $request = xmlrpc_encode_request('blogger.newPost',$params);
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
    curl_setopt($ch, CURLOPT_URL, 'http://localhost/wordpress/xmlrpc.php');

  5. Double click crawler.bat. Jika semua setting telah benar, semua posting dari web target akan masuk sebagai posting di blog anda.

    Pada proses ini, Akan terbentuk folder crawler yang berisi file2 hasil download, dan folder log yang berisi log url yang telah didowload (telah dincode ke md5), log ini berfungsi sebagai pengecek agar link yang telah diambil tidak diambil ulang.

Berikut ini cara kerja script diatas :

  1. Crawler.bat terlebih dahulu memanggil file crawler_idx.php
  2. crawler_idx.php mengunjungi halaman http://topnew-gadget.blogspot.com dan mengambil semua url yang berisi judul posting di halaman blog tersebut, lalu menyimpannya dalam file url.txt
  3. crawler.bat mendownload semua url yang ada di url.txt dan menyimpannya di server lokal
  4. crawler.bat memanggil file crawler_detail.php dan memproses halaman hasil proses no.3 dan mempostingnya ke bolg yang sudah anda tentukan. crawler_detail.php juga memebentuk folder log yang berisi log md5 url yang telah didownload.

Jika ingin bereksperimen lebih lanjut dengan target lain, anda harus menyesuaikan kode-kode didalamnya terutama regular expressionnya…..  semoga bermanfaat.

18 Juli 2010

Backup Otomatis Database Mysql

. 18 Juli 2010
0 comments

mysql_kompiku Akan terasa sangat membosankan bila kita harus melakukan pekerjaan yang sama setiap harinya, apalagi jika pekerjaan itu hanya untuk membackup database… (bukan berarti saya meremehkan arti pentingnya backup databse), ada sebuah cara simple untuk membackup database mysql anda setiap hari secara otomatis, berikut ini caranya :

 

  1. Buka notepad anda (penulis menggunakan notepad++)
  2. Copas kode berikut :

    @echo off
    cls
    echo backup data mysql by kompiku.com
    echo ============================================
    SET TANGGAL=%date:/=-%
    echo %TANGGAL%
    mysqldump --opt --user=USER --password=password database >
    D:\%TANGGAL%_backup_db.sql

  3. ubah kode berwarna merah sesuai dengan setting database anda.
    - USER : username database mysql
    - password : password database mysql
    - database : nama database mysql yang akan anda backup
    - D:\%TANGGAL%_backup_db.sql adalah lokasi hasil backup database anda.  pada contoh ini file akan disimpan di drive D dengan nama file sesuai dengan tanggal backup, misalnya : 10-7-2010_backup_db.sql.
  4. jika konfigurasi sudah selesai, simpan file diatas dengan nama backup.bat pada komputer yang terinstal database mysql yang akan dibackup.
    (coba jalan kan file tersebut dengan double click)
  5. Jika proses berhasil, anda akan menemukan di drive D sebuah file dengan nama 10-7-2010_backup_db.sql
  6. Agar Proses dapat berjalan otomatis anda dapat memanfaatkan fitur scheduled Tasks milik windows, dari menu Accessories –> System Tools –> Scheduled Tasks

    scheduled-tasks
  7. Browse lokasi file backup.bat, lalu atur agar file tersebut berjalan setiap hari pada jam yang telah anda tentukan.

10 Juni 2010

Explorer2 : alternatif Mengatasi Windows Explorer Error

. 10 Juni 2010
0 comments

img_powertoys Kesal ya jika windows Explorer gak dapat berjalan... Jika semua cara telah dilakukan dan tidak mendapatkan hasil termasuk sudah merubah setting DEP tetep juga gak mau. Aplikasi Portable yang bernama Explorer2 ini mungkin bisa sedikit mengobati kekesalan anda, meskipun tidak mampu memberikan penyelesaian final. Anda tidak perlu menginstall aplikasi ini, cukup copy saja diflasdisk atau CD… Pemakaiannya juga tidak susah, mirip dengan windows explorer buatan Windows. berikut ini screenshootnya :

explorer_2

Bagi anda yang membutuhkannya silahkan download di sini

31 Mei 2010

Dasar Object Oriented Programming PHP : Mengenal Kelas Dan Objek

. 31 Mei 2010
0 comments

phplogo_thumb1_thumb[1] Untuk memahami kelas dan objek dalam PHP kita buat saja sebuah permisalan. Misalnya sebuah kelas adalah mobil, sementara itu sedan, truk, VW dapat diibaratkan sebagai objek-objeknya. Jadi setiap dibicarakan sebuah sedan, sedan tersebut tidak dapat terlepas dari kelasnya yaitu sebuah mobil yang memiliki mesin, roda, kemudi, tempat duduk, dan lain-lain. Dari sudut pandang yang sebaliknya dapat dikatakan bahwa jika sebuah kelas mobil didefinisikan, maka dapat didefinisikan pula sebuah objek sedan atau minibus atau jeep yang memiliki seluruh sifat dari mobil.

 

Mengenal Class

Kelas adalah sebuah kumpulan variabel dan fungsi-fungsi yang bekerja dengan variabel tersebut. Untuk mendefinisikan kelas, sintaks yang digunakan adalah sebagai berikut:

class namakelas {
var $namavariabel;
...Kumpulan fungsi...
}


Di dalam kelas, variabel didefinisikan dengan pernyataan var. Di dalam sebuah kelas secara default dikenal sebuah variabel bernama $this yang mereferensikan kelas itu sendiri. Kemudian untuk merujuk kepada variabel yang didefinisikan dengan pernyataan var digunakan tanda ->.



Untuk lebih jelasnya berikut akan diberikan contoh sebuah kelas yang berisi fungsi-fungsi perhitungan matematika sederhana:



<?
class hitung {
var $hasil;

function kali($x,$y) {
$this->hasil = $x * $y;
}

function bagi($x,$y) {
$this->hasil = $x / $y;
}

function tambah($x,$y) {
$this->hasil = $x + $y;
}

function kurang($x,$y) {
$this->hasil = $x - $y;
}
}
?>


Sebuah kelas dapat merupakan perluasan dari kelas yang ada sebelumnya. Misalnya pada contoh kelas di atas fungsi-fungsi yang ada hanyalah kali(), bagi(), tambah(), kurang() dan mungkin itu dirasakan kurang. Jika ingin didefinisikan sebuah kelas lain yang juga mengandung fungsi-fungsi kali(), bagi(), tambah(), dan kurang() serta ditambah sebuah fungsi lagi misalnya pangkat(), maka tidak perlu dibuat sebuah kelas yang baru sama sekali yang mengandung kelima fungsi tersebut. Kelas tersebut dapat merupakan perluasan dari kelas hitung dan hanya mendefinisikan sebuah fungsi baru yaitu pangkat(). Dalam PHP untuk melakukan perluasan terhadap sebuah kelas digunakan pernyataan extends yang sintaksnya adalah sebagai berikut:



class namakelas extends kelaslain {
var $namavariabel;
...Kumpulan fungsi...
}

Contoh:

<?
class hitung_juga extends hitung {
function pangkat($x,$y) {
$this->hasil = pow($x,$y)
}
}
?>


Dari contoh ini dapat disimpulkan bahwa kelas hitung_juga akan memiliki variabel dan fungsi-fungsi yang terdapat pada kelas hitung ditambah dengan sebuah fungsi baru yaitu pangkat().



Perluasan kelas semacam ini dapat dikategorikan sebagai sifat inheritance dari pemrograman berorientasi objek. Kelas hitung_juga pada contoh di atas merupakan inherit dari kelas hitung.



Dalam melakukan perluasan ini, kelas yang merupakan inherit dari kelas lain dapat mendefinisikan fungsi dengan nama yang sama. Contoh:



class A {
function contoh() {
echo "Aku adalah fungsi contoh yang asli";
}
}

class B extends A {
function contoh() {
echo "Aku adalah fungsi contoh yang didefinisikan ulang";
}
}


Dalam hal ini fungsi contoh() di kelas A disebut dengan shadowed dan tidak dapat dipergunakan lagi. Unsur polymorphism terpenuhi di sini.



 



Mengenal Objek





Menurut ilustrasi mobil di atas dapat dikatakan bahwa objek “diperanakkan” dari kelas. Untuk mendefinisikan sebuah objek digunakan sintaks sebagai berikut:



$namaobjek = new namakelas;


Setelah objek didefinisikan, maka seluruh variabel dan fungsi yang terdapat dalam sebuah kelas namakelas otomatis terdapat pula dalam objek namaobjek tersebut. Untuk merujuk pada fungsi atau variabel yang dimiliki oleh kelasnya, maka digunakan juga tanda ->. Berikut akan diberikan contoh bagaimana menggunakan objek dan kelas dengan menggunakan contoh kelas hitung dan hitung_juga yang telah diberikan di atas.



<?
class hitung {
var $hasil;

function kali($x,$y) {
$this->hasil = $x * $y;
}

function bagi($x,$y) {
$this->hasil = $x / $y;
}

function tambah($x,$y) {
$this->hasil = $x + $y;
}

function kurang($x,$y) {
$this->hasil = $x - $y;
}
}
$a = 7;
$b = 3;
echo "Nilai \$a = $a 
";
echo "Nilai \$b = $b 
";
$calc = new hitung;

echo "\$a kali \$b sama dengan ";
$calc->kali($a,$b);
print $calc->hasil;
echo "
";

echo "\$a bagi \$b sama dengan ";
$calc->bagi($a,$b);
print $calc->hasil;
echo "
";

echo "\$a tambah \$b sama dengan ";
$calc->tambah($a,$b);
print $calc->hasil;
echo "
";

echo "\$a kurang \$b sama dengan ";
$calc->kurang($a,$b);
print $calc->hasil;
echo "

";

class hitung_juga extends hitung {
function pangkat($x,$y) {
$this->hasil = pow($x,$y);
}
}

$calc_juga = new hitung_juga;

echo "\$a kali \$b sama dengan ";
$calc_juga->kali($a,$b);
print $calc_juga->hasil;
echo "
";

echo "\$a bagi \$b sama dengan ";
$calc_juga->bagi($a,$b);
print $calc_juga->hasil;
echo "
";

echo "\$a tambah \$b sama dengan ";
$calc_juga->tambah($a,$b);
print $calc_juga->hasil;
echo "
";

echo "\$a kurang \$b sama dengan ";
$calc_juga->kurang($a,$b);
print $calc_juga->hasil;
echo "
";

echo "\$a pangkat \$b sama dengan ";
$calc_juga->pangkat($a,$b);
print $calc_juga->hasil;
echo "
";
?>

29 Mei 2010

Menu Tab Autoopen dengan 10 Recent Post dan 10 Recent Comments di blooger

. 29 Mei 2010
0 comments

Untuk menghemat tempat dan sekaligus agar blog kita terlihat lebih bagus kita membutuhkan menu tab untuk ditampilkan di halaman blog. cara memasangnya juga tidak terlalu sulit. berikut ini langkah-langkah untuk membuat menutab seperti ini :


menutab_kompiku

 


  1. Login Ke dahsbord bolgger anda –> Layout –> Edit HTML
  2. Masukan kode CSS di bawah ini diantara <b:skin><![CDATA[/* dan ]]></b:skin>

    /* tabs--*/

    div.TabTampil div.TTs
    {margin-top:1em; height: 30px; overflow: hidden; }
    div.TabTampil div.TTs a:hover, div.TabTampil div.TTs a.Active
    {color:red;height: 28px; background-color:  #ffffff; }
    div.TabTampil div.Halamans
    { clear: both; border:1px solid #DDDDDD; overflow: hidden; background-color: #ffffff;}
    div.TabTampil div.Halamans div.Halaman
    { height: 100%; padding: 0px; overflow: hidden; }
    div.TabTampil div.Halamans div.Halaman div.Alas
    { padding: 3px 5px; }
    div.TabTampil div.TTs a
    { background:#FFFFFF url(http://lh3.ggpht.com/_olbofJ7Fnkk/S_nrBJEBHnI/AAAAAAAAA7s/FXkb6eOeLh4/s800/post_top.gif) no-repeat scroll center top; border-left:1px solid  #DDDDDD; border-right:1px solid  #DDDDDD; border-top:1px solid #DDDDDD; border-bottom:0px solid  #DDDDDD; float: left;
    display: block; width: 100px; text-align: center; height: 24px; padding-top: 3px; vertical-align: middle; text-decoration: none; font-family: "Arial", Serif;
    font-size: 12px; font-weight: 900; color: #222}

  3. Masukkan Kode javascript berikut sebelum tag </head> 
    , kode javascript ini yang akan mengambil 10 recent posts dan 10 rcent comments dari blog anda

    <script type='text/javascript'>
    //credit to hoctro. code to create top recent posts
    function c1(){document.getElementById(&#39;link_page&#39;).onclick();}
    function rp(json) {
    document.write(&#39;&lt;ul&gt;&#39;);for (var i = 0; i &lt; numposts; i++) {
    document.write(&#39;&lt;li&gt;&#39;);
    var entry = json.feed.entry[i];
    var posturl;
    if (i == json.feed.entry.length) break;
    for (var k = 0; k &lt; entry.link.length; k++) {
    if (entry.link[k].rel == &#39;alternate&#39;) {
    posturl = entry.link[k].href;
    break;
    } }
    var posttitle = entry.title.$t;
    posttitle = posttitle.link(posturl);
    var readmorelink = &quot;(more)&quot;;
    readmorelink = readmorelink.link(posturl);
    var postdate = entry.published.$t;
    var cdyear = postdate.substring(0,4);
    var cdmonth = postdate.substring(5,7);
    var cdday = postdate.substring(8,10);
    var monthnames = new Array();
    monthnames[1] = &quot;Jan&quot;;
    monthnames[2] = &quot;Feb&quot;;
    monthnames[3] = &quot;Mar&quot;;
    monthnames[4] = &quot;Apr&quot;;
    monthnames[5] = &quot;May&quot;;
    monthnames[6] = &quot;Jun&quot;;
    monthnames[7] = &quot;Jul&quot;;
    monthnames[8] = &quot;Aug&quot;;
    monthnames[9] = &quot;Sep&quot;;
    monthnames[10] = &quot;Oct&quot;;
    monthnames[11] = &quot;Nov&quot;;
    monthnames[12] = &quot;Dec&quot;;
    if (&quot;content&quot; in entry) {
    var postcontent = entry.content.$t;
    } else if (&quot;summary&quot; in entry) {
    var postcontent = entry.summary.$t;
    } else
    var postcontent = &quot;&quot;;
    var re = /&lt;\S[^&gt;]*&gt;/g;
    postcontent = postcontent.replace(re, &quot;&quot;);
    document.write(posttitle);
    if (showpostdate == true) document.write(&#39; - &#39; + monthnames[parseInt(cdmonth,10)] + &#39; &#39; + cdday);
    if (showpostsummary == true) {
    if (postcontent.length &lt; numchars) {
    document.write(postcontent);
    } else {
    postcontent = postcontent.substring(0, numchars);
    var quoteEnd = postcontent.lastIndexOf(&quot; &quot;);
    postcontent = postcontent.substring(0,quoteEnd);
    document.write(postcontent + &#39;...&#39; + readmorelink);
    } }
    document.write(&#39;&lt;/li&gt;&#39;);
    }
    document.write(&#39;&lt;/ul&gt;&#39;);
    }

    var numposts = 10; 
    var showpostdate = false; 
    var showpostsummary = false; 
    var numchars = 200;
    </script> 

  4. Masukan Kode berikut pada bagian yang akan anda pasang widget ini : misalnya setelah kode <div id='sidebar-wrapper'>

    <form action='tabtampil.html' method='get'>
    <div class='TabTampil' id='TabTampil'>
    <div class='TTs' style='width: 350px;'> <a onmouseover='tabtampil_ubah(&quot;TabTampil&quot;,1);'> Recent Post</a> <a href='#' onmouseover='tabtampil_ubah(&quot;TabTampil&quot;,2);'> Comments</a> <a href='#' onmouseover='tabtampil_ubah(&quot;TabTampil&quot;,3);'> Links</a></div>
    <div class='Halamans' style='width: 350px; height: 300px;'>
    <div class='Halaman'>
    <div class='Alas'>
    <b:section class='tabcontent' id='recpost' maxwidgets='1' showaddelement='no'>
    <b:widget id='HTML233' locked='false' title='10 Recent Post' type='HTML'/>
    </b:section>
    </div>
    </div>

    <div class='Halaman'>
    <div class='Alas'>
    <b:section class='tabcontent' id='reccom' maxwidgets='1' showaddelement='no'>
    <b:widget id='HTML3' locked='false' title='10 Recent Comments' type='HTML'/>
    </b:section>
    </div>
    </div>

    <div class='Halaman'>
    <div class='Alas'>
    <b:section class='tabcontent' id='reccon' maxwidgets='1' showaddelement='no'>
    <b:widget id='HTML5' locked='false' title='Friends Links' type='HTML'/>
    </b:section>
    </div>

    </div>
    </div>

    </div></form>
    <script src='http://menutab-c11774.googlecode.com/files/newscriptab.js' style='text/javascript'/>
    <script type='text/javascript'>tabtampil_inisial(&#39;TabTampil&#39;);</script>


  5. Selamat Mencoba

    mohon maaf jika script yang saya tampilkan sebelumnya bermasalah yang disebabkan oleh kesalahan penggunaab syntax highlighter



Menampilkan IP Pengunjung dihalaman Blogger

ip-address Menampilkan IP Adrees Pengunjung di halaman blogger ternyata tidak semudah seperti di halaman web biasa. Berdasarkan hasil googling yang saya lakukan, Javascript untuk menampilkan IP adress tidak dapat berjalan di halaman blogger… Ada sebuah layanan dari myfundoo yang dapat menyelesaikan masalah tersebut….

Selain menampilkan IP Adress, Widget myfundoo ini juga dapat menampilkan OS, Negara dan Browser Pengunjung. Caranya pun sangat mudah seperti berikut:

  • Copy kode yang disediakan sesuai tampilan yang anda inginkan.
  • Masuk ke dashbord blogger anda
  • Layout
  • page elements
  • Pilih new gadget ,pilih html/javascript paste kode click save
salah satu contoh kode dan hasilnya adalah sebagi berikut :
IP
get yours here


akan memberikan hasil seperti ini : ip-address

27 Mei 2010

Membuat Page Navigataion Number di Blogger

. 27 Mei 2010
3 comments

blogger Akan lebih menarik rasanya apabila blog kita memiliki navigasi halaman dengan angka. berikut ini saya tulis kan bagaimana cara membuat navigasi halaman blogger dengan angka seperti gambar di bawah ini :

 

 

pagenav

 

 

  1. Login Ke dahsbord bolgger anda –> Layout –> Edit HTML
  2. Masukan kode CSS di bawah ini diantara <b:skin><![CDATA[/* dan ]]></b:skin>

    /* –- blogger page number navigation start-- */
    .showpageNum a{padding:1px 8px; margin:0 5px; text-decoration:none; border:0px solid #333; background:#f9f9f9; color:#111}
    .showpageOf{margin:0 8px 0 0; color:#222}
    .showpageNum a:hover{border:0px solid #fff; background:#8F2602; color:#fff}
    .showpageArea{margin:10px 0; font-size:16px; color:#111}
    .showpagePoint{color:#fff; text-shadow:#333 0 1px 2px; padding:1px 8px; margin:2px; font-weight:normal; border:0px solid #333; background:#8F2602; text-decoration:none}

  3. Copas Kode Berikut sebelum tag </body>

    <script type='text/javascript'>
    var pageCount=9;
    var displayPageNum=9;
    var upPageWord =&#39;&#171; First&#39;;
    var downPageWord =&#39;Last &#187;&#39;;
    </script>
    <script src='http://blogger-c11774.googlecode.com/files/pagenav_blogger.js' type='text/javascript'/>

  4. Save…

25 Mei 2010

Cara mereset password root/admin pada database mysql

. 25 Mei 2010
0 comments

mysql_kompiku Mungkin anda pernah mengalami lupa password root mysql seperti yang saya alami beberapa waktu yang lalu, Pada kasus ini saya menggunakan Apache2Triad 1.5.4. berikut ini saya tuliskan langkah langkah Mereset Password Root Mysql :

  1. Matikan Servis Mysql : Run –>cmd –> ketikkan services.msc
  2. Pilih service mysql yang aktif, lalu klik stop

    kompiku_reset_root1
  3. Buka Commad Prompt Windows –> Start—> Run—> ketikkan cmd –> Enter
  4. Arahkan pada direktori mysql (kalo mau enak ngarahinnya gunakan open command windows here )
  5. Pada kasus ini direktori mysql saya ada di C:\apache2triad\mysql\bin
    ketikkan :
    services mysqld stop
    mysqld –skip-grant-tables
    mysql –u root


    kompiku_reset_root2 mysql –u root digunakan sebagai perintah login ke mysql sebagai root
  6. ketikkan :
    use mysql;
    untuk memilih database mysql
  7. ketikkan :
    UPDATE user SET password=password(‘passwordbaru’) where user=’root’;
    FLUSH PRIVILEGES;


    kompiku_reset_root4
  8. ketik exit; dan jalankan kembali servis mysql….

 
Kompiku.com Powered ByBlogger.com