Maret 2013 - Elang Sakti
Download Ebook Belajar Arduino PDF, Arduino untuk pemula
Jasa Pembuatan Program Arduino, pemrograman Arduino
# Hack Your Skills! to be Professional Mechatronics

Teori Dasar, Pengertian, Manfaat, dan Sejarah Penemuan Listrik

6 komentar
Teori Dasar, Pengertian, Manfaat, dan Sejarah Penemuan Listrik
Sudah tahu apa itu Listrik dan bagaimana sejarahnya? Kadang penulis sejarah bisa bohong Lho... :). Baik, kali ini kita akan membahas tentang hal penting tentang listrik, pengertian, manfaat, dan sejarahnya ditemukannya. Semoga menjadi referensi buat pembaca semua. :)

Daftar Bahasan
   1. Pengertian dan Teori Dasar Listrik
   2. Manfaat Listrik
   3. Sejarah Penemuan Listrik
    * Versi Pertama (Zaman Mesir Kuno)
    * Versi Kedua (Thales)
    * Versi Ketiga (Faraday)

Pengertian dan Teori Dasar Listrik
Menurut Wikipedia, Listrik adalah kondisi dari partikel subatomik tertentu, seperti elektron dan proton, yang menyebabkan penarikan dan penolakan gaya di antaranya. Atau menurut pengertian lainnya, Listrik adalah sumber energi yang disalurkan melalui kabel. Listrik memungkinkan terjadinya banyak fenomena fisika yang dikenal luas, seperti petir, medan listrik, dan arus listrik. Listrik digunakan dengan luas di dalam aplikasi-aplikasi industri seperti elektronik dan tenaga listrik.

Listrik memberi kenaikan terhadap empat gaya dasar alami (gaya gravitasi, gaya elektromagnetisme, gaya nuklir lemah dan gaya nuklir kuat). "Jumlah listrik" juga dikenal dengan istilah "Muatan Listrik" atau "Jumlah Muatan". Ada dua jenis muatan listrik: positif dan negatif. Melalui eksperimen, muatan-sejenis saling menolak dan muatan-lawan jenis saling menarik satu sama lain.

Jika listrik mengalir melalui bahan khusus, misalnya dari wolfram dan tungsten, cahaya pijar akan dipancarkan oleh logam itu. Bahan-bahan seperti itu dipakai dalam bola lampu (bulblamp atau bohlam). Setiap kali listrik mengalir melalui bahan yang mempunyai hambatan, maka akan dilepaskan panas. Semakin besar arus listrik, maka panas yang timbul akan berlipat. Sifat ini dipakai pada elemen setrika dan kompor listrik.

Aliran listrik mengalir dari saluran positif ke saluran negatif. Dengan listrik arus searah jika kita memegang hanya kabel positif (tapi tidak memegang kabel negatif), listrik tidak akan mengalir ke tubuh kita (kita tidak terkena strum). Demikian pula jika kita hanya memegang saluran negatif.

Sedangkan pada listrik arus bolak-balik, listrik juga bisa mengalir ke bumi (atau lantai rumah). Hal ini disebabkan oleh sistem perlistrikan yang menggunakan bumi sebagai acuan tegangan netral (ground). Karena itu jika kita memegang sumber listrik dan kaki kita menginjak bumi atau tangan kita menyentuh dinding, membuat listrik mengalir dari tangan ke kaki sehingga kita akan mengalami kejutan listrik ("terkena strum").

Daya listrik dapat disimpan, misalnya pada sebuah aki atau batere. Listrik yang kecil, misalnya yang tersimpan dalam batere, tidak akan memberi efek setrum pada tubuh. Pada aki mobil yang besar, biasanya ada sedikit efek setrum, meskipun tidak terlalu besar dan berbahaya. Listrik mengalir dari kutub positif batere/aki ke kutub negatif. Untuk informasi Arus Listrik dan "Setrum", silakan baca Konsep dan Pengertian Arus dan Tegangan pada Rangkaian Listrik.

Manfaat Listrik
Listrik tidak bisa dipisahkan dari manusia. Sebagian besar kegiatan manusia kini bergantung pada listrik, baik yang sifatnya primer maupun sekunder. Listrik juga sangat penting dalam kehidupan pribadi, sosial, pendidikan, perdaganan, dan lini-lini kehidupan lainnya. Kebutuhan Primer: Pompa air listrik, handphone, alat penerangan rumah, penanak nasi listrik, setrika listrik,  dll. Kebutuhan Sekunder: Komputer, Televisi, peralatan media pendidikan, dll.

Sejarah Penemuan Listrik
Sejarah tentang penemu listrik ada beberapa versi. Versi yang pertama, listrik sudah ditemukan pada zaman mesir kuno. Versi yang kedua, Listrik ditemukan oleh Thales dari Melitus. Dan Versi yang ketiga, Listrik ditemukan oleh Faraday.

Versi Pertama (Zaman Mesir Kuno)
Teori bahwa listrik dikenal dan digunakan dalam zaman kejayaan Eropa ternyata keliru, orang Mesir lah yang menemukannya tetapi orang eropa hanya mempopulerkan. Kunci untuk seluruh teori ini terletak beberapa ratus kilometer timur Mesir, di Irak. Ada beberapa pot aneh yang ditemukan. Beberapa kedap air berisi silinder tembaga, dilem ke dalam lubang dengan aspal. Di tengah silinder itu ada sebuah batang besi. Para penggali menemukan pot pertama pada tahun 1936 yakin: ini adalah elemen galvanik, baterai yang primitif. Rekonstruksi memang menunjukkan bahwa adalah mungkin untuk menciptakan listrik dengan itu.

Fakta kembali ditemukan dalam kuil di Dendera, beberapa puluhan kilometer utara Luxor, beberapa ahli menemukan cahaya. Seorang insinyur listrik Norwegia melihat objek ditampilkan pada relief di bagian atas halaman ini bisa bekerja sebagai lampu. Seorang rekan Austria mampu membangun sebuah model kerja, dan dua penulis terkenal di AAS, Peter Krassa dan Rainer Habeck, bahkan bisa bekerja di luar teori yang nyata saat ini.

Setelah dua potong bukti telah dieliminasi sekarang kita harus melihat lebih dekat pada obyek itu sendiri. Petunjuk “teknis”, uraian berikut menjelaskan ilmu pengetahuan Mesir tentang listrik. Buku ” Lights of the Pharaohs ” oleh penulis Austria Krassa & Habeck mereka menulis ringkasan tesis yang paling populer. Setelah membaca buku yang awam mungkin bertanya, mengapa Mesir Kuno membiarkan seperti sampah tentang sejarah Mesir, karena tampaknya sejarah Mesir benar-benar berbeda. Sebagian besar dari sejarah Mesir menurut penulis mengungkap penemuan bebas.

Sejarah Teori Dasar, Pengertian, Manfaat, dan Sejarah Penemuan Listrik 
Lampu Listrik Versi Mesir Kuno

Keterangan Gambar :
  1. Priest
  2. ionised fumes
  3. electric discharge (snake)
  4. Lamp socket (Lotos)
  5. Cable (Lotos stem)
  6. Air god
  7. Isolator (Djed-Pillar)
  8. Light bringer Thot with knifes
  9. Symbol for “current”
  10. nverse polarity (Haarpolarität +)
  11. Energy storage (electrostatic Generator?)
Atas dasar gambar inilah insinyur W. Garn membangun sebuah perangkat kerja yang benar-benar memberi kejelasan. Dalam buku Krassa/Habeck dia memberi sketsa (berdasarkan gambar di atas) dan deskripsi berikut:

“If we evacuate a glass bulb with two metal parts reaching into it (B), (C), we can see a discharge at much lower levels, depending on the size of the glass balloon (D). At a pressure of about 40 t (tonnes) (40 mm of mercury) a snakelike light filament meanders from one metal part to the other (E). If we evacuate further, the light filament grows wider until it fills the whole glass balloon. This is exactly what we see in on the pictures in the subterranean chambers of the Hathor sanctuary.”
Ini adalah dasar dari interpretasi teknis. Kedengarannya logis, bisa dipahami. Anda mungkin telah memperhatikan bahwa saya menekankan kata “two” di komentar Garns. Mengapa? Karena “dua” adalah kata kunci. Secara “normal” lampu membutuhan dua elektroda untuk menghasilkan cahaya, bola lampu sederhana atau Garn-konstruksi.

Versi Kedua (Thales)
Sejarah awal ditemukannya listrik adalah oleh seorang cendikiawan Yunani yang bernama Thales, yang mengemungkakan fenomena batu ambar yang bila digosok - gosokkan akan dapat menarik bulu sebagai fenomena listrik. Kemudian setelah bertahun - tahun semenjak ide Thales dikemukakan, baru kemudian muncul lagi penapat - pendapat serta teori -teori baru mengenai listrik seperti yang diteliti dan dikemukakan oleh William Gilbert, Joseph priestley, Charles De Coulomb, AmpereMichael Farraday, Oersted, dll.

Dalam hal kelistrikan, memang banyak tokoh yang telah berpartisipasi. Sebut saja de Coulomb, Alesandro Volta, Hans C. Cersted, dan Andre Marie Ampere. Mereka ini dianggap "jago-jago" terbaik di bidang listrik. Namun, dari semua itu, orang tak boleh melupakan satu nama yang sangat berjasa dan dikenal sebagai perintis dalam meneliti tentang listrik dan magnet. Dialah Michael Faraday, seorang ilmuwan asal Inggris.

Versi Ketiga (Faraday)
Michael Faraday adalah ilmuwan Inggris yang mendapat julukan “Bapak Listrik”, karena berkat usahanya listrik menjadi teknologi yang banyak gunanya. Faraday lahir 22 September 1791 di Newington, Inggris. Ia mempelajari berbagai bidang ilmu pengetahuan, termasuk elektromagnetisme dan elektrokimia. Dia juga menemukan alat yang nantinya menjadi pembakar Bunsen, yang digunakan hampir di seluruh laboratorium sains sebagai sumber panas yang praktis.

Untuk membantu ekonomi keluarga, pada usia 14 tahun Faraday bekerja sebagai penjilid buku sekaligus penjual buku. Di sela-sela pekerjaannya ia manfaatkan untuk membaca berbagai jenis buku, terutama ilmu pengetahuan alam, fisika, dan kimia.

Ketika umurnya menginjak 20 tahun, dia mengikuti ceramah-ceramah yang diberikan oleh ilmuwan Inggris kenamaan. Salah satunya adalah Sir Humphry Davy, seorang ahli kimia yang juga kepala laboratorium Royal Institution. Selama mengikuti ceramah, Faraday membuat catatan dengan teliti dan menyalinnya kembali dengan rapi apa yang didengarnya. Kemudian, berkas catatan itu ia kirimkan kepada Humphry Davy disertai lamaran kerja. Ternyata sang dosen tertarik dan mengangkat Faraday sebagai asistennya di Laboratorium Universitas terkenal di London. Saat itu dia berusia 21 tahun.

Di bawah bimbingan Davy, Faraday menunjukkan kemajuan pesat. Awalnya, ia hanya bekerja sebagai seorang pencuci botol. Tetapi, berkat kegigihannya dalam belajar, hanya dalam waktu relatif singkat, ia dapat membuat penemuan-penemuan baru atas hasil kreasinya sendiri, yaitu menemukan dua senyawa klorokarbon dan berhasil mencairkan gas klorin dan beberapa gas lainnya. Berkat kepandainnya pula, Faraday dapat berhubungan dengan para ahli ternama, seperti Andre Marie Ampere. Di samping itu, ia juga mendapat kesempatan berkeliling Eropa bersama Davy. Pada kesempatan itu, Faraday mulai membangun pengetahuannya yang praktis dan teoritis.

Davy memiliki pengaruh besar dalam pemikiran Faraday dan telah mengantarkan Faraday pada penemuan-penemuannya. Penemuan Faraday pertama yang penting di bidang listrik terjadi tahun 1821. Dua tahun sebelumnya Oersted telah menemukan bahwa jarum magnet kompas biasa dapat beringsut jika arus listrik dialirkan dalam kawat yang tidak berjauhan. Dari temuan ini, Faraday berkesimpulan, jika magnet diketatkan, yang bergerak justru kawatnya. Bekerja atas dasar dugaan ini, dia berhasil membuat suatu skema yang jelas di mana kawat akan terus-menerus berputar berdekatan dengan magnet sepanjang arus listrik dialirkan ke kawat.

Sesungguhnya, dalam hal ini Faraday sudah menemukan motor listrik pertama, suatu skema pertama penggunaan arus listrik untuk membuat sesuatu benda bergerak. Betapa pun primitifnya, penemuan Faraday ini merupakan "nenek moyang" dari semua motor listrik yang digunakan dunia sekarang ini. Sejak penemuannya yang pertama pada tahun 1821, Michael Faraday si ilmuwan autodidak ini namanya mulai terkenal. Hasil penemuannya dianggap sebagai pembuka jalan dalam bidang kelistrikan.

Written by ElangSakti
Teori Dasar, Pengertian, Manfaat, dan Sejarah Penemuan Listrik
Bahasan: Sudah tahu apa itu Listrik dan bagaimana sejarahnya? Kadang penulis sejarah bisa bohong Lho... :). Baik, kali ini kita akan membahas te...
Published at Selasa, 26 Maret 2013, Updated at Selasa, 26 Maret 2013
Reviewed by dr. on
Rating: 4.7

6 komentar :

Posting Komentar

# Hack Your Skills! to be Professional Mechatronics

Konversi String ke Bilangan (Integer, Double, Biner, Heksadesimal) dalam Java

Tidak ada komentar
Ini juga fundamental bagi programmer, konversi string ke beberapa tipe data. Seperti string ke integer, double, biner, dan heksadesimal. Kayaknya sih ini merupakan hal sepele, akan tetapi casting dari tipe data ke tipe data yang lain merupakan hal yang susah-susah gampang. :)

Sebelumnya telah kita bahas tentang Konversi Bilangan Biner, Desimal, dan Heksadesimal dalam Java dan PHP, kini kita akan membahas tentang konversi string ke beberapa tipe data dalam Java. Kalau di PHP sih gampang jika ingin konversi dari string ke angka dan sebaliknya. Tapi kalau di bahasa pemrograman lain seperti java, butuh instant yang lebih banyak.

Berikut source codenya:
/**
 *
 * @author x86
 */
public class string {
    public static void main(String hx[]){

        String str0 = "12345";
        String str1 = "12345.5";
        String str2 = "Hello World!";

        //String ke integer
        System.out.println("String ke Integer");
        System.out.println("=================");
        try{
            int Int0 = Integer.parseInt(str0);
            System.out.println("Integer : "+Int0);
        }catch(Exception s){
            System.out.println(str0+" Tidak bisa diconvert ke Integer.");
        }
        try{
            int Int1 = Integer.parseInt(str1);
            System.out.println("Integer : "+Int1);
        }catch(Exception s){
            System.out.println(str1+" Tidak bisa diconvert ke Integer.");
        }
        try{
            int Int2 = Integer.parseInt(str2);
            System.out.println("Integer : "+Int2);
        }catch(Exception s){
            System.out.println(str2+" Tidak bisa diconvert ke Integer.");
        }
        System.out.println();

        //String ke double
        System.out.println("String ke Double");
        System.out.println("=================");
        try{
            double Dou0 = Double.parseDouble(str0);
            System.out.println("Double : "+Dou0);
        }catch(Exception s){
            System.out.println(str0+" Tidak bisa diconvert ke Double.");
        }
        try{
            double Dou1 = Double.parseDouble(str1);
            System.out.println("Double : "+Dou1);
        }catch(Exception s){
            System.out.println(str1+" Tidak bisa diconvert ke Double.");
        }
        try{
            double Dou2 = Double.parseDouble(str2);
            System.out.println("Double : "+Dou2);
        }catch(Exception s){
            System.out.println(str2+" Tidak bisa diconvert ke Double.");
        }
        System.out.println();

        //String ke biner
        System.out.println("String ke Biner");
        System.out.println("=================");
        String bin0 = "";
        byte[] bytes = str0.getBytes();
        for(byte b : bytes){
            bin0 = bin0 + Integer.toBinaryString(b)+" ";
        }
        System.out.println(str0+" : "+bin0);

        String bin1 = "";
        bytes = str1.getBytes();
        for(byte b : bytes){
            bin1 = bin1 + Integer.toBinaryString(b)+" ";
        }
        System.out.println(str1+" : "+bin1);

        String bin2 = "";
        bytes = str2.getBytes();
        for(byte b : bytes){
            bin2 = bin2 + Integer.toBinaryString(b)+" ";
        }
        System.out.println(str2+" : "+bin2);
        System.out.println();

        System.out.println("String ke Hexa");
        System.out.println("=================");
        String hex0 = "";
        bytes = str0.getBytes();
        for(byte b : bytes){
            hex0 = hex0 + Integer.toHexString(b)+" ";
        }
        System.out.println(str0+" : "+hex0);

        String hex1 = "";
        bytes = str1.getBytes();
        for(byte b : bytes){
            hex1 = hex1 + Integer.toHexString(b)+" ";
        }
        System.out.println(str1+" : "+hex1);

        String hex2 = "";
        bytes = str2.getBytes();
        for(byte b : bytes){
            hex2 = hex2 + Integer.toHexString(b)+" ";
        }
        System.out.println(str2+" : "+hex2);
    }
}



Hasilnya
run:
String ke Integer
=================
Integer : 12345
12345.5 Tidak bisa diconvert ke Integer.
Hello World! Tidak bisa diconvert ke Integer.

String ke Double
=================
Double : 12345.0
Double : 12345.5
Hello World! Tidak bisa diconvert ke Double.

String ke Biner
=================
12345 : 110001 110010 110011 110100 110101 
12345.5 : 110001 110010 110011 110100 110101 101110 110101 
Hello World! : 1001000 1100101 1101100 1101100 1101111 100000 1010111 1101111 1110010 1101100 1100100 100001 

String ke Hexa
=================
12345 : 31 32 33 34 35 
12345.5 : 31 32 33 34 35 2e 35 
Hello World! : 48 65 6c 6c 6f 20 57 6f 72 6c 64 21 
BUILD SUCCESSFUL (total time: 0 seconds)


Written by ElangSakti
Konversi String ke Bilangan (Integer, Double, Biner, Heksadesimal) dalam Java
Bahasan: Ini juga fundamental bagi programmer, konversi string ke beberapa tipe data. Seperti string ke integer, double, biner, dan heksadesimal. K...
Published at Kamis, 21 Maret 2013, Updated at Kamis, 21 Maret 2013
Reviewed by dr. on
Rating: 4.7

Tidak ada komentar :

Posting Komentar

# Hack Your Skills! to be Professional Mechatronics

Konsep dan Pengertian Arus dan Tegangan pada Rangkaian Listrik

16 komentar
Apa yang membuat kita kena setrum? Arus Listrik atau Tegangan Listrik? Untuk menjawabnya, kita harus paham tentang definisi / pengertian dari arus listrik dan tegangan listrik.

Arus Listrik
Arus listrik adalah banyaknya muatan listrik yang mengalir dalam suatu rangkaian pada satu waktu. Muatan listrik yang dimaksud di sini adalah elektron. Arus listrik terjadi karena adanya aliran elektron dari kutub negatif ke kutub posisif. Pada konsepnya, elektron bergerak dari negatif ke positif, sedangkan arus listrik bergerak dari positif ke negatif? Kenapa demikian, Mari perhatikan gambar berikut:

Konsep dan Pengertian Arus dan Tegangan pada Rangkaian Listrik
Gambar aliran elektron pada baterai
Pada gambar di atas menunjukkan sumber tegangan listrik yang disambungkan ke sebuah penghantar. Pada kutub positif penghantar, muatan negatif akan ditarik oleh muatan positif pada sumber tegangan melewati ruang-ruang kosong (Hole). Hole digambarkan dalam bentuk bulat tanpa tanda negatif "-". Sedangkan pada kutub negatif penghantar, muatan akan terisi elektron baru dari sumber tegangan, sehingga elektron pada penghantar juga terdorong untuk bergerak ke arah kutub posisitif.

Menurut aturan bahwa arus listrik mengalir dari positif ke negatif,sedangkan elektron mengalir dari negatif ke positif. Kenapa bisa begitu? Karena sejatinya aturan berpatokan bahwa elektron berpindah dari negatif ke positif meninggalkan hole dan mengisi hole baru maka seolah-olah hole tersebut bergerak dari positif ke negatif.

Arus listrik merupakan satu dari tujuh satuan pokok dalam satuan internasional. Satuan internasional untuk arus listrik adalah Ampere (A). Secara formal satuan Ampere didefinisikan sebagai arus konstan yang, bila dipertahankan, akan menghasilkan gaya sebesar 2 x 10-7 Newton/meter di antara dua penghantar lurus sejajar, dengan luas penampang yang dapat diabaikan, berjarak 1 meter satu sama lain dalam ruang hampa udara.

Tidak semua bahan bisa menghantarkan elektron dengan baik. Kemampuan penghantar mengalirkan elektron ditentukan oleh susunan atom dari bahan penghantar tersebut. Bahan yang mempunyai kemampuan mengalirkan elektron dengan baik disebut dengan konduktor seperi besi, tembaga, air sumur,dll. Sedangkan bahan yang sulit untuk mengalirkan elektron disebut dengan isolator, misalnya plastik, kertas, air murni (H2O), dll.

Tegangan Listrik
Tegangan listrik merupakan perbedaan potensial listrik antara dua titik pada suatu penghantar atau rangkaian listrik. Beda potensial adalah perbedaan jumlah elektron yang berada dalam suatu arus listrik. Di satu sisi sumber arus listrik terdapat elektron yang bertumpuk sedangkan di sisi yang lain terdapat jumlah elektron yang sedikit. Hal ini terjadi karena adanya gaya magnet yang memengaruhi materi tersebut. Dengan kata lain, sumber tersebut menjadi bertegangan listrik. Tegangan listrik (disebut juga voltase) identik dengan beda potensial.

Pada dasarnya, beda potensial (tegangan) inilah yang menyebabkan aliran elekron dari potensial rendah (negatif) ke potensial tinggi (positif). Artinya adanya arus listrik disebabkan karena adanya tegangan listrik pada dua titik (kutub positif dan kutub negatif). Pada rangkain listik, bisa jadi setiap komponen listrik mempunyai beda potensial yang berbeda tergantung hambatan komponen tersebut.

Alat untuk mengukur arus listrik adalah Ohm Meter, sedangkan alat untuk mengukur tegangan adalah Volt Meter. Tapi saat ini ada alat Multitester / Multimeter Atau AVO Meter yang multifungsi. Lalu kita kembali ke pertanyaan mendasar kita kali ini "Apa yang membuat kita kena setrum, Arus atau Tegangan?".

Dari pembahasan di atas, tegangan adalah awal dari terjadinya aliran arus (elektron), jadi mereka berdua tidak bisa dipisahkan satu sama lain. Tak akan ada arus yang mengalir tanpa adanya tegangan (beda potensial). Lalu kenapa kita bisa kena setrum? Jawabannya adalah karena ada tegangan listrik dan kita menjadi konduktornya (penghantarnya).

Tubuh kita terdiri dari air dan mineral yang berfungsi sebagai konduktor listrik. Setiap kita menyentuh sumber listrik, kita akan kena setrum. Hanya saja tidak akan terasa jika voltasenya kecil. Setruman voltase kecil akan terasa jika kita mengetesnya dengan lidah, walaupun hanya 3 Volt. Coba saja, hehe.. Jika permukaan kulit kita kering, kita tidak akan tersetrum listrik sebab tak ada elektron dari listrik yang mengalir ke tubuh kita.

Kesimpulannya, makin tinggi tegangan maka makin tinggi arus yang akan mengalir. Adapun efek yang akan terjadi jika kita kena setrum, tergantung hambatan (Ohm) pada tubuh kita. Makin tinggi hambatannya, maka makin kecil arus yang akan mengalir melewati tubuh kita dan kita pun lebih punya potensi untuk selamat. :D

Written by ElangSakti
Konsep dan Pengertian Arus dan Tegangan pada Rangkaian Listrik
Bahasan: Apa yang membuat kita kena setrum? Arus Listrik atau Tegangan Listrik ? Untuk menjawabnya, kita harus paham tentang definisi / pengertian...
Published at , Updated at
Reviewed by dr. on
Rating: 4.7

16 komentar :

Posting Komentar

# Hack Your Skills! to be Professional Mechatronics

SEO on Page : Mengatasi Duplicate Meta Tag Title dan Description pada Wordpress

1 komentar
Beberapa cara SEO on Page yang saya lakukan untuk optimalisasi halaman website agar bagus menurut kacamata google. :) Yaitu dengan mengatasi duplicate meta tag title dan meta tag description pada Wordpress.

Beberapa script yang 'terpaksa' saya tanamkan pada wordpress untuk mendukung SEO dan optimasi page. Sebenarnya gara-gara Dulicate Title dan Duplicate Meta Tags Description di Google Webmaster sih.. hehe. Sehingga saya lakuin injeksi-injeksi script pada tema wordpress.


Plugin Meta Tag Description
Plugin ini merupakan plugin Wordpress untuk SEO on Page, yaitu guna mengisi sendiri meta tag description. Dengan plugin ini, meta tag description tidak langsung dicomot dari tulisan di awal paragraf artikel, tapi kita bisa mengisinya manual sesuai kata-kata apa yang kita ingin munculkan di SERP google. Plugin-nya bisa dicek di Membuat Plugin SEO WordPress. Tapi untuk menampilkannya masih manual, jadi plugin ini belum sepenuhnya rampung. Untuk sementara, setelah menginstall plugin tersebut, script yang saya tanamkan untuk menampilkan meta tag descriptionnya seperti ini.
function the_desc(){
 global $post;
 $weit = mysql_query("select meta_value from hx_postmeta where post_id=".$post->ID." and meta_key='elangsakti_text'");
 $wood = mysql_fetch_array($weit);
 echo $wood['meta_value'];
}

Script tersebut saya letakkan di header.php pada bagian paling atas. Kemudian untuk cara menempatkan meta tag descriptionnya seperti ini
<meta name="description" content="<?php if($paged>1) echo "Page ".$paged." "; if(is_single()){ the_desc(); }else{ wp_title($sep = '' ); echo " | "; bloginfo( 'name' ); echo " # "; bloginfo( 'description' ); } ?>" />

Pada script di atas, if($paged>1) echo "Page ".$paged." "; berfungsi untuk ketika yang dibuka adalah halaman multipage, sebab multipage bisa menyebabkan duplicate tag title dan description. Meta tag yang kita masukkan via plugin ini hanya akan muncul ketika membuka halaman artikel saja ( if(is_single()) ), sedangkan jika bukan halaman artikel akan muncul sesuai dengan title tag (wp_title()).

Current Link untuk Link Unik Canonical dan URL
Link canonical berfungsi sebagai penanda bahwa artikel yang kita tulis adalah asli tulisan kita dan link aslinya adalah yang kita tampilkan di rel canonical. Berikut script yang saya gunakan untuk mengambil URL yang aktif pada halaman artikel. Sebenarnya bisa menggunkana the_permalink(), akan tetapi ketika pada halaman bukan artikel tidak sesuai.
function this_url(){
 echo "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
}

Cara memasangnya tinggal seperti di bawah ini:
<link rel="canonical" href="<?php this_url(); ?>" />
<meta property="og:url" content="<?php this_url(); ?>" />



Menempatkan Category dan Tags pada Meta Tag Keywords
Berikut cara untuk mengambil tag dan kategori pada artikel yang sedang aktif.
// mengambil list tag
function this_tags(){
  $ptags = get_the_tags();
  foreach($ptags as $ptag){
    echo ", ".$ptag->name;
  }
}

// mengambil list category
function this_cats(){
  $pcats = get_the_category();
  foreach($pcats as $pcat){
    echo ", ".$pcat->name;
  }
}

Cara penempatannya sebagai berikut:
<meta name="keywords" content="<?php echo "Keyword default1, keyword default2, keyword default3, dst "; this_tags(); this_cats(); ?>" />

Baiklah, demikian dulu sharing tentang beberapa langkah yang kami lakukan untuk SEO on Page, semoga membantu. Silakan jika ada yang mau berkomentar...

Written by ElangSakti
SEO on Page : Mengatasi Duplicate Meta Tag Title dan Description pada Wordpress
Bahasan: Beberapa cara SEO on Page yang saya lakukan untuk optimalisasi halaman website agar bagus menurut kacamata google. :) Yaitu dengan menga...
Published at , Updated at
Reviewed by dr. on
Rating: 4.7

1 komentar :

Posting Komentar

# Hack Your Skills! to be Professional Mechatronics

Bahasan Fundamental tentang Blind Search dan Heuristic Search

3 komentar
Sudah saatnya kita mengenal algoritma pada Blind Search (pencarian buta) dan Heuristic Search (pencarian terbimbing). Khususnya bagi pelajar dan mahasiswa, apalagi yang sudah melewati kedua status tersebut yang masih fokus di dunia programming.

Blind Search dan Heuristic Search merupakan sub bahasan yang sifatnya fundamental dalam mata kuliah Kecerdasan Buatan (Artificial Intelligence). Bahkan dalam dunia nyata, kita sering dituntut untuk berpikir dengan cara-cara tersebut. Seperti ketika bermain puzzle, catur, kubus cerdas, atau mengira-ngira rute perjalanan mana yang akan kita tempuh. Semua itu terkait dengan otak kita yang sudah otomatis berpikir dengan algoritma blind search atau heuristic search, atau bahkan lebih kompleks lagi.

Lalu apa yang membedakan Blind Search dan Heuristic Search?

Blind Search merupakan pencarian asal ketemu. Jika solusi sudah ketemu, maka pencarian akan dihentikan. Jika dibuat skemanya, pencarian buta hanya mengenal tiga bagian, [masalah]-[pencarian]-[solusi]. Misalkan dalam kotak ada 3 kelereng warna merah, 3 biru, dan 3 kuning. Masalahnya adalah, ambillah satu kelereng yang berwarna merah. Solusi, setelah melakukan pencarian, kemudian didapat satu kelereng warna merah, nah, itulah solusinya.

Berbeda dengan Heuristic Search, Heuristic Search adalah pencarian bersyarat (terbimbing). Artinya, solusi yang diperoleh adalah solusi yang terbaik, bukan solusi sekali ketemu. Bagian-bagiannya adalah [masalah]-[pencarian]-[syarat]-[solusi]. Misal contoh masalah pada kasus di atas, Ambillah kelereng merah yang tidak pecah dan tidak lonjong. Sehingga ketika ketemu kelereng merah dan ada pecahnya, itu masih bukan solusi karena tidak sesuai dengan syarat (tidak pecah dan tidak lonjong).

Sehingga perbedaan mendasar dari Blind Search dan Heuristic Search adalah :
  • Blind Search merupakan pencarian biasa, sedangkan Heuristic Search adalah pencarian bersyarat
  • Variabel data pada Blind Search tidak mempunyai atribut / informasi tambahan, sedangkan pada Heuristic Search memiliki. Contoh pada kasus di atas, "pecah" dan "lonjong" merupakan atribut dari "kelereng".

Konsep Blind Search dan Heuristic Search memiliki beberapa penerapan algoritma. Algoritma yang termasuk Blind Search yaitu Breadth First Search (BFS), Depth First Search (DFS), Uniform Cost Search (UCS), Depth-Limited Search (DLS), Iterative-Deeping Search (IDS), dan Bi-directional search (BDS). Hanya saja yang paling banyak dibahas adalah Breadth First Search (BFS) dan Depth First Search (DFS). Sedangkan untuk contoh algoritma Heuristic Search yaitu Generate and Test, Simple Hill Climbing, Steepest-Ascent Hill Climbing, Simulated Annealing, Greedy, Best-First Search, dan A* (A Star).

Berikut konsep dan penerapan algoritma pencarian yang sudah kami bahas:
1. DFS : Implementasi Algoritma Depth First Search (DFS) dengan PHP

Ada yang mau beri saran untuk implemenetasinya?

Written by ElangSakti
Bahasan Fundamental tentang Blind Search dan Heuristic Search
Bahasan: Sudah saatnya kita mengenal algoritma pada Blind Search ( pencarian buta ) dan Heuristic Search ( pencarian terbimbing ). Khususnya bagi p...
Published at Rabu, 20 Maret 2013, Updated at Rabu, 20 Maret 2013
Reviewed by dr. on
Rating: 4.7

3 komentar :

Posting Komentar

# Hack Your Skills! to be Professional Mechatronics

Implementasi Algoritma KMP Multi Search via Database (2)

15 komentar
Bagaimana menfungsikan algoritma KMP agar bisa memfilter kata-kata jorok pada bagian komentar suatu artikel? Bagaimana jika Algoritma KMP ngambil datanya dari database? Mari kita bahas pada tulisan ini..

Sebelumnya kita sudah membahas apa itu algoritma string matching KPM dan implementasinya dalam pencarian kata, baca Algoritma KMP dengan PHP dan Implementasi KMP dengan PHP 1. Selanjutkan kita akan membahas lebih jauh beberapa implementasi dari algoritma ini. Kasusnya adalah, kita ingin memfilter kata-kata jorok yang muncul pada artikel berdasarkan tabel kata-kata jorok.

Oke, kita langsung praktek. Langkah-langkah yang akan kita lakukan adalah sebagai berikut:
1. Membuat tabel artikel dan tabel filter_kata pada database(pada kasus ini kita gunakan MySQL)
2. Buat halaman artikel dan meng-import file kmp.php, versi terakhir kelas KMP bisa dicek di Core Algoritma KMP
3. Percobaan dan hasil

Buat tabel artikel dan tabel filter_kata seperti gambar berikut:

Atau import SQL berikut:
/*!40101 SET NAMES utf8 */;

/*!40101 SET SQL_MODE=''*/;

/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;

CREATE DATABASE /*!32312 IF NOT EXISTS*/`web` /*!40100 DEFAULT CHARACTER SET latin1 */;

USE `web`;

/*Table structure for table `artikel` */

DROP TABLE IF EXISTS `artikel`;

CREATE TABLE `artikel` (
  `id_artikel` int(11) NOT NULL,
  `judul` varchar(1024) DEFAULT NULL,
  `isi` text,
  PRIMARY KEY (`id_artikel`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

/*Data for the table `artikel` */

insert  into `artikel`(`id_artikel`,`judul`,`isi`) values (1,'Bahasa Sanskerta','Bahasa Sanskerta (ejaan tidak baku: \"Sansekerta\") adalah salah satu bahasa Indo-Eropa paling tua yang masih dikenal dan sejarahnya termasuk yang terpanjang. Bahasa yang bisa menandingi \'usia\' bahasa ini dari rumpun bahasa Indo-Eropa hanya bahasa Het. Bahasa Het tak ada kata jeruk. Kata Sanskerta, dalam bahasa Sanskerta Sa?sk?tabh?sa artinya adalah bahasa yang sempurna. Maksudnya, lawan dari bahasa Prakerta, atau bahasa rakyat. Di Indonesia tidak ada orang yang suka berkata jorok sebab kata-kata jorok bisa membuat orang juruk. Antara jorok, juruk, dan jeruk merupakan kata yang sangat manis.\r\n\r\nPosisinya dalam kebudayaan Asia Selatan dan Asia Tenggara mirip dengan posisi bahasa Latin dan Yunani di Eropa. Orang-orang tersebut gemar memakan jeruk. Bahasa Sanskerta berkembang menjadi banyak bahasa-bahasa modern di anakbenua India. Bahasa ini muncul dalam bentuk pra-klasik sebagai bahasa Weda. Yang terkandung dalam kitab Rgweda merupakan fase yang tertua dan paling arkhais. Arkhais berarti ketidak sopanan yang menjorok 3 cm ke kiri. Teks ini ditarikhkan berasal dari kurang lebih 1700 SM dan bahasa Sanskerta Weda adalah bahasa Indo-Arya yang paling tua ditemui dan salah satu anggota rumpun bahasa Indo-Eropa yang tertua.');

/*Table structure for table `filter_kata` */

DROP TABLE IF EXISTS `filter_kata`;

CREATE TABLE `filter_kata` (
  `kode_kata` int(11) NOT NULL,
  `kata_jorok` varchar(200) DEFAULT NULL,
  `kata_bagus` varchar(200) DEFAULT NULL,
  PRIMARY KEY (`kode_kata`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

/*Data for the table `filter_kata` */

insert  into `filter_kata`(`kode_kata`,`kata_jorok`,`kata_bagus`) values (1,'jorok','Kata Bagus 1'),(2,'juruk','Kata Bagus 2'),(3,'jeruk','Kata Bagus Tiga');

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;

Berikutnya, buatlah file artikel.php dengan isi sebagai berikut:
<?php
// koneksi ke database
$c  = mysql_connect("localhost", "root", "");
$db = mysql_select_db("web", $c);

if(!$db){
    echo "Purcase DB! :p";
    exit();
}

include_once("kmp.php");

// ambil daftar kata jorok
$katajorok =  array();
$kata  = mysql_query("select * from filter_kata");
while($jorok = mysql_fetch_array($kata)){
  $katajorok[] = $jorok;
}

$KMP = new KMP();

$art = mysql_query("select * from artikel");
while($teks = mysql_fetch_array($art)){
  $hasil = $teks['isi'];
  foreach($katajorok as $pattern){
    $hasil = $KMP->KMPReplace($pattern['kata_jorok'],'<b style="color:red" >'.$pattern['kata_jorok'].'</b>',$hasil);
  }
  echo "<div style='width:600px;'>";
  echo "<h3>".$teks['judul']."</h3><hr/>";
  echo nl2br($hasil);
  echo "</div>";
}

$art = mysql_query("select * from artikel");
while($teks = mysql_fetch_array($art)){
  $hasil = $teks['isi'];
  foreach($katajorok as $pattern){
    $hasil = $KMP->KMPReplace($pattern['kata_jorok'],'<b style="color:blue" >'.$pattern['kata_bagus'].'</b>',$hasil);
  }
  echo "<div style='width:600px;'>";
  echo "<h3>".$teks['judul']."</h3><hr/>";
  echo nl2br($hasil);
  echo "</div>";
}
?>

Yang terakhir, kita tengok hasilnya. Artikel yang atas sebelum difilter dan Artikel yang bawah setelah difilter:

Implementasi Algoritma KMP Multi Search via Database (2)

Implementasi Algoritma KMP Multi Search via Database (2) 2


Written by ElangSakti
Implementasi Algoritma KMP Multi Search via Database (2)
Bahasan: Bagaimana menfungsikan algoritma KMP agar bisa memfilter kata-kata jorok pada bagian komentar suatu artikel? Bagaimana jika Algoritma KMP...
Published at Senin, 18 Maret 2013, Updated at Senin, 18 Maret 2013
Reviewed by dr. on
Rating: 4.7

15 komentar :

Posting Komentar

# Hack Your Skills! to be Professional Mechatronics

PHP : Modifikasi Class Algoritma KMP Untuk Replace String

2 komentar
Kali ini kita akan membahas tentang replace string pada PHP dengan bantuan algoritma string matching KMP (Knuth-Morris-Pratt).

Pada tulisan Algoritma Pencocokan / Pencarian String dengan Knuth-Morris-Pratt Menggunakan PHP kita sudah belajar membuat core dari Algoritma KMP dengan bahasa PHP. Kini kita akan menambahkan fungsi replace string setelah menemukan kata yang cocok. Pada artikel Implementasi Algoritma String Matching Knuth-Morris-Pratt Menggunakan PHP (1) kita sudah mengetahui posisi string kata pada teks. Akan tetapi untuk mereplace string yang cocok, pada script tersebut masih menggunakan bawaan PHP yaitu str_replace(). Kini kita akan membuat fungsi replace sendiri berdasarkan algoritma KMP.

Tambahan fungsi ini digunakan untuk memudahkan ketika kita ingin mengganti kata yang cocok menjadi kata yang kita inginkan. Untuk penggunaannya, setelah kita membuat instance dari kelas KMP, kita tinggal memanggilnya dengan perintah KMP->KMPReplace(string_awal, string_pengganti, $teks).


<?php
// Knuth-Morris-Pratt Algorithm
// Created March 31, 2010 - 07:10:33 WIB
// Modified (again) March 16, 2013 - 17:43:54 WIB
class KMP{
  /* pencarian KMP
   * input :
   *   $p = (string) pattern;
   *   $t = (string) teks;
   * output :
   *   $hasil = (array int) posisi string pada teks
   */
  function KMPSearch($p,$t){
    $hasil = array();
 // pattern dan text dijadikan array
    $pattern = str_split($p); 
    $text    = str_split($t);

 // hitung tabel lompatan dengan preKMP()
    $lompat = $this->preKMP($pattern);
 //print_r($lompat);

 // perhitungan KMP
 $i = $j = 0;
    $num=0;
    while($j<count($text)){
      while($i>-1 && $pattern[$i]!=$text[$j]){
     // jika tidak cocok, maka lompat sesuai tabel lompatan
        $i = $lompat[$i];
      }
      $i++;
      $j++;
      if($i>=count($pattern)){
     // jika cocok, tentukan posisi string yang cocok
  // kemudian lompat ke string berikutnya
        $hasil[$num++]=$j-count($pattern);
        $i = $lompat[$i];
      }
    }
 return $hasil;
  }

  /* menetukan tabel lompatan dengan preKMP
   * input :
   *   $pattern = (string) pattern
   * output :
   *   $lompat = (array int) untuk jumlah lompatan  
   */
  function preKMP($pattern){
    $i = 0;
    $j = $lompat[0] = -1;
    while($i<count($pattern)){
      while($j>-1 && $pattern[$i]!=$pattern[$j]){
        $j = $lompat[$j];
      }
      $i++;
      $j++;
      if($pattern[$i]==$pattern[$j]){
        $lompat[$i]=$lompat[$j];
      }else{
        $lompat[$i]=$j;
      }
    }
    return $lompat;
  }

  /* replace string
   * input :
   *   $str1 = (array string) string yang akan diganti dengan str2
   *   $str2 = (array string) string yang akan mengganti str1
   *   $text = (string) text yang akan dicari
   * output :
   *   $t = teks yang sudah difilter
   */
  function KMPReplace($str1,$str2,$text){
    $num = 0;
    $location = $this->KMPSearch($str1,$text);
 $t = '';
 $n = 0; $nn = 0;
 foreach($location as $in){
   $t .= substr($text,$n+$nn,$in-$n-$nn).$str2;
   $nn = strlen($str1);
   $n = $in;
 }
 $t .= substr($text,$n+$nn);
 return $t;
  }
}
?>


Written by ElangSakti
PHP : Modifikasi Class Algoritma KMP Untuk Replace String
Bahasan: Kali ini kita akan membahas tentang replace string pada PHP dengan bantuan algoritma string matching KMP (Knuth-Morris-Pratt). Pada tu...
Published at Minggu, 17 Maret 2013, Updated at Minggu, 17 Maret 2013
Reviewed by dr. on
Rating: 4.7

2 komentar :

Posting Komentar

# Hack Your Skills! to be Professional Mechatronics

Mekanisme dan Cara Kerja Iron Dome-nya Israel, Ayo Bikin!

2 komentar
Pernah berpikir bahwa algoritma bisa digunakan untuk menembak roket dan melindungi negara? Sudah tahu Iron Dome? Mari kita tengok apaitu Iron Dome dan bagaimana cara kerjanya sehingga membuat Israel bisa menangkis serangan rudal Hamas.

Iron dome merupakan defense system yang dibangun oleh Israel bekerja sama dengan Amerika Serikat. Iron Dome memiliki tiga komponen: instalasi radar dan pendeteksi, battle management and weapons control (BMC), dan unit peluncuran misil. Sistem radar mendeteksi misil atau artileri musuh ketika diluncurkan. Sementara BMC bisa disebut sebagai otak dari sistem. Ia mengkalkulasi lintasan dan perkiraan jatuhnya roket. BMC mampu melacak, menembak beberapa target secara bersamaan.


Jika sebuah roket masuk ke daerah berisiko rendah, seperti bidang kosong, Iron Dome akan membiarkannya. Tetapi jika roket berada pada jalur untuk target sensitif, seperti area penduduk, Iron Dome akan meluncurkan misil Tamir yang bisa mengintersepsi dan menghancurkan roket tersebut.[2]

Iron Dome dioperasikan dengan sejumlah komponen kunci, termasuk sistem radar yang dapat mendeteksi rudal balistik dan roket. Informasi yang diperoleh radar memungkinkan alat ini bisa melacak letak roket atau rudal yang mengancam. Dengan cepat, alat ini bisa menentukan sasaran dan menganalisa ancaman. Sebuah peluncur yang berisi 20 rudal penghalau bisa bekerja secara mandiri.

Menurut kepala proyek yang mengembangkan sistem ini, Fitur kunci dari sistem Iron Dome adalah komando dan pusat kontrol, yang menyinkronkan informasi dari sistem radar. Kemudian, alat ini menentukan target mana yang akan dihalau. Alat ini bekerja dengan algoritma kompleks, dengan daya dukung dan kapasitas yang mengagumkan.

Selain bisa mendeteksi segala bentuk ancaman rudal, Iron Dome bisa mengukur lintasan peluru, kapan, dan bagaimana identifikasi ancaman akan menyerang wilayah yang dilindungi. Rencana intersepsi dibangun berdasarkan jenis ancaman.

Namun, sistem pencegah ini perlu diluncurkan pada waktu yang tepat. Supaya tepat sasaran dan bisa menghancurkan target pada tempat yang tepat pula. Program pada sistem pertahanan ini mampu mengukur dan bertindak sesuai dengan tingkat ancaman, perubahan data pada program interseptor, dan bagaimana mengenai sasaran.

Sistem Iron Dome bekerja dengan tingkat akurasi tinggi dari jarak jauh. Artinya, wilayah yang berada dalam jangkauan rudal penghalau ini akan aman dari serangan rudal dan roket musuh. Sistem Iron Dome ini mampu menghalau roket yang diluncurkan dari jarak lebih dari 70 kilometer, lebih jauh dari yang diperkirakan. Sistem ini mampu menghantam roket yang mengancam dengan jarak 15 sampai 20 kilometer dari peluncur.[1]

Referensi:
1. http://echonov.blogspot.com/2012/11/lawan-palestina-iron-dome-israel-tak.html
2. http://chip.co.id/news/technology/3999/bagaimana_cara_kerja_iron_dome
3. http://www.youtube.com/watch?v=IMBSWGYlnF0

Written by ElangSakti
Mekanisme dan Cara Kerja Iron Dome-nya Israel, Ayo Bikin!
Bahasan: Pernah berpikir bahwa algoritma bisa digunakan untuk menembak roket dan melindungi negara? Sudah tahu Iron Dome? Mari kita tengok apaitu I...
Published at Jumat, 15 Maret 2013, Updated at Jumat, 15 Maret 2013
Reviewed by dr. on
Rating: 4.7

2 komentar :

Posting Komentar

# Hack Your Skills! to be Professional Mechatronics

Pengertian, Fungsi, Prinsip, dan Cara Kerja Relay

113 komentar
Tahu kenapa sein motor dan mobil kita berbunyi 'tek tek tek'? Kok bisa ya ada pompa air otomatis? Itu semua adalah aplikasi dari relay. Sudah tahu apa itu relay? Bagaimana cara menggunakan relay?

Relay adalah komponen listrik yang bekerja berdasarkan prinsip induksi medan elektromagnetis. Jika sebuah penghantar dialiri oleh arus listrik, maka di sekitar penghantar  tersebut timbul medan magnet. Medan magnet yang dihasilkan oleh arus listrik tersebut selanjutnya diinduksikan ke logam ferromagnetis.

Logam ferromagnetis adalah logam yang mudah terinduksi medan elektromagnetis. Ketika ada induksi magnet dari lilitan yang membelit logam, logam tersebut menjadi "magnet buatan" yang sifatnya sementara. Cara ini kerap digunakan untuk membuat magnet non permanen. Sifat kemagnetan pada logam ferromagnetis akan tetap ada selama pada kumparan yang melilitinya teraliri arus listrik. Sebaliknya, sifat kemagnetannya akan hilang jika suplai arus listrik ke lilitan diputuskan.

Fungsi Relay - Prinsip Cara Kerja Relay - Pengertian Driving Relay
Rangkaian Dasar Relay
Berikut ini penjelasan dari gambar di atas:
  • Amarture, merupakan tuas logam yang bisa naik turun. Tuas akan turun jika tertarik oleh magnet ferromagnetik (elektromagnetik) dan akan kembali naik jika sifat kemagnetan ferromagnetik sudah hilang.
  • Spring, pegas (atau per) berfungsi sebagai penarik tuas. Ketika sifat kemagnetan ferromagnetik hilang, maka spring berfungsi untuk menarik tuas ke atas.
  • Shading Coil, ini untuk pengaman arus AC dari listrik PLN yang tersambung dari C (Contact).
  • NC Contact, NC singkatan dari Normally Close. Kontak yang secara default terhubung dengan kontak sumber (kontak inti, C) ketika posisi OFF.
  • NO Contact, NO singkatan dari Normally Open. Kontak yang akan terhubung dengan kontak sumber (kontak inti, C) kotika posisi ON.
  • Electromagnet, kabel lilitan yang membelit logam ferromagnetik. Berfungsi sebagai magnet buatan yang sifatya sementara. Menjadi logam magnet ketika lilitan dialiri arus listrik, dan menjadi logam biasa ketika arus listrik diputus.
  • Aplikasi Rangkaian Pemicu Relay, ini adalah rangkaian / alat yang akan memicu relay untuk menjadi ON ketika sesuai situasi / kondisi tertentu. Rangkaian pemicu ini biasanya memiliki sensor atau rangkaian timer (memanfaatkan 'time delay'). Rangkaian yang menggunakan sensor misalnya sensor suhu, sensor air, sensor cahaya, sensor arus, dll. Sedangkan rangkain timer misalnya timer pada mesin cuci, timer tv, dll.
Sebenarnya aplikasi relay banyak sekali. Dari mobil-mobilan, kulkas, lampu sein motor dan mobil, pompa air otomatis, hingga peralatan pada pesat terbang. Dari relay yang jenisnya kecil hingga yang mempunyai daya besar. Dari relai DC 5 volt, 12 volt hingga yang bervoltase tinggi. Keuntungan kita dalam menggunakan relay:
  1. Kita bisa membuat rangkaian otomatis penyambung/pemutus (switch) tegangan  AC dan DC
  2. Relay bisa digunakan pada switch tegangan tinggi
  3. Relay juga menjadi solusi pada switch dengan arus yang besar
  4. Bisa melakukan swith pada banyak kontak dalam waktu yang bersamaan
Jika mau bertanya atau berdiskusi, silakan isi komentar. Masukan dan sarannya juga sangat kami butuhkan.. :)

Contoh cara mengaktifkan relay 12 volt dengan inputan 3 volt atau yang lebih rendah... klik Video : Driving Relay - Mengaktifkan Relay 12v dengan 3v Input

Written by ElangSakti
Pengertian, Fungsi, Prinsip, dan Cara Kerja Relay
Bahasan: Tahu kenapa sein motor dan mobil kita berbunyi 'tek tek tek'? Kok bisa ya ada pompa air otomatis? Itu semua adalah aplikasi dari r...
Published at , Updated at
Reviewed by dr. on
Rating: 4.7

113 komentar :

Posting Komentar

# Hack Your Skills! to be Professional Mechatronics

Implementasi Algoritma String Matching Knuth-Morris-Pratt MenggunakanPHP (1)

34 komentar
Mari kita bahas tentang pencarian kata pada suatu artikel. Kronologisnya adalah, kita mencari suatu kata pada artikel kemudian menghitung seberapa sering kata itu muncul dan menandainya dengan perubahan warna pada kata tersebut. Aplikasi ini bisa dipakai untuk menganalisa gaya bahasa seseorang berdasarkan kompleksitas dan keragaman kata dalam tulisan yang dia buat.

Untuk metode pencariannya yaitu menggunakan Knuth-Morris-Pratt, saya harap kita sudah menengoknya pada pada artikel sebelumnya, Algoritma Pencocokan / Pencarian String dengan Knuth-Morris-Pratt Menggunakan PHP. Tulisan tersebut berisi source code PHP sebagai core class atau kelas utama algoritma pencocokan string (string matching) yang akan kita bahas kali ini. Baik, berikut langkah-langkah yang akan kita lakukan:
1. Buat database yang berisi artikel. Biar seragam, kita buat tabel seperti di bawah.
2. Buat halaman pencarian untuk menampilkan artikel
3. Proses pencarian dan hasil

Eksekusi perintah SQL berikut untuk membuat database dan tabel
CREATE DATABASE /*!32312 IF NOT EXISTS*/`web` /*!40100 DEFAULT CHARACTER SET latin1 */;

USE `web`;

/*Table structure for table `artikel` */

DROP TABLE IF EXISTS `artikel`;

CREATE TABLE `artikel` (
  `id_artikel` int(11) NOT NULL,
  `judul` varchar(1024) DEFAULT NULL,
  `isi` text,
  PRIMARY KEY (`id_artikel`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

/*Data for the table `artikel` */

insert  into `artikel`(`id_artikel`,`judul`,`isi`) values (1,'Bahasa Sanskerta','Bahasa Sanskerta (ejaan tidak baku: \"Sansekerta\") adalah salah satu bahasa Indo-Eropa paling tua yang masih dikenal dan sejarahnya termasuk yang terpanjang. Bahasa yang bisa menandingi \'usia\' bahasa ini dari rumpun bahasa Indo-Eropa hanya bahasa Het. Kata Sanskerta, dalam bahasa Sanskerta Sa?sk?tabh?sa artinya adalah bahasa yang sempurna. Maksudnya, lawan dari bahasa Prakerta, atau bahasa rakyat.\r\n\r\nBahasa Sanskerta merupakan sebuah bahasa klasik India, sebuah bahasa liturgis dalam agama Hindu, Buddhisme, dan Jainisme dan salah satu dari 23 bahasa resmi India. Bahasa ini juga memiliki status yang sama di Nepal.\r\n\r\nPosisinya dalam kebudayaan Asia Selatan dan Asia Tenggara mirip dengan posisi bahasa Latin dan Yunani di Eropa. Bahasa Sanskerta berkembang menjadi banyak bahasa-bahasa modern di anakbenua India. Bahasa ini muncul dalam bentuk pra-klasik sebagai bahasa Weda. Yang terkandung dalam kitab Rgweda merupakan fase yang tertua dan paling arkhais. Teks ini ditarikhkan berasal dari kurang lebih 1700 SM dan bahasa Sanskerta Weda adalah bahasa Indo-Arya yang paling tua ditemui dan salah satu anggota rumpun bahasa Indo-Eropa yang tertua.\r\n\r\nKhazanah sastra Sanskerta mencakup puisi yang memiliki sebuah tradisi yang kaya, drama dan juga teks-teks ilmiah, teknis, falsafi, dan agamis. Saat ini bahasa Sanskerta masih tetap dipakai secara luas sebagai sebuah bahasa seremonial pada upacara-upacara Hindu dalam bentuk stotra dan mantra. Bahasa Sanskerta yang diucapkan masih dipakai pada beberapa lembaga tradisional di India dan bahkan ada beberapa usaha untuk menghidupkan kembali bahasa Sanskerta.');

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;

Kode untuk halaman pencarian kata dalam PHP dan HTML
<?php
$c  = mysql_connect("localhost", "root", "");
$db = mysql_selectdb("web", $c);

if(!$db){
    echo "Purcase DB! :p";
    exit();
}

include_once("kmp.php");
$kata = '';
if(isset($_GET['kata']))
  $kata = $_GET['kata'];

?>
<div style="width:600px;">
<form method="get" action="">
Cari Kata : <input type="text" name="kata" value="<?php echo $kata; ?>" /> <input type="submit" value="Cari">
</form>
</div>
<?php
$KMP = new KMP();

$art = mysql_query("select * from artikel");
while($teks = mysql_fetch_array($art)){

  if($kata!=''){
    $hasil = $KMP->KMPSearch($kata,$teks['isi']);
 echo "Kata yang dicari adalah : ".$kata."<br/>";
 echo "Jumlah kata yang ditemukan : ".count($hasil)."<br/>";
 echo "Yaitu pada posisi string ke : ";
 foreach($hasil as $h) echo $h." ";
 echo "<br/>";
  }
  echo "<div style='width:600px;'>";
  echo "<h3>".$teks['judul']."</h3><hr/>";
  echo nl2br(str_replace($kata,"<font color='red'>".$kata."</font>",$teks['isi']));
  echo "</div>";
}
?>

Hasil pencarian

Implementasi Algoritma String Matching Knuth-Morris-Pratt MenggunakanPHP


Untuk yang mau berdiskusi saya persilakan untuk mengisi komentar... :)

Written by ElangSakti
Implementasi Algoritma String Matching Knuth-Morris-Pratt MenggunakanPHP (1)
Bahasan: Mari kita bahas tentang pencarian kata pada suatu artikel. Kronologisnya adalah, kita mencari suatu kata pada artikel kemudian menghitung ...
Published at Kamis, 14 Maret 2013, Updated at Kamis, 14 Maret 2013
Reviewed by dr. on
Rating: 4.7

34 komentar :

Posting Komentar

# Hack Your Skills! to be Professional Mechatronics

Algoritma Pencocokan / Pencarian String dengan Knuth-Morris-Pratt Menggunakan PHP

11 komentar
Pre Note: Kadang Algoritma Knuth-Morris-Pratt ini dijadikan tugas akhir untuk pencarian kata dalam teks / artikel, list kata biasanya ada dalam database atau berdasarkan pencarian, atau ada ide lain? hehe. :)

Algoritma Knuth-Morris-Pratt merupakan salah satu algoritma pencarian string (string matcing) yang dikembangkan secara terpisah oleh Donald E. Knuth pada tahun 1967 dan James H. Morris bersama Vaughan R. Pratt pada tahun 1966, namun keduanya mempublikasikannya secara bersamaan pada tahun 1977 (Wikipedia : Knuth-Morris-Pratt). Langkah-langkah yang dilakukan algoritma Knuth-Morris-Pratt pada saat mencocokkan string yaitu (modifikasi):
  1. String pattern (kata yang dicari) akan dipecah menjadi array karakter
  2. String text (teks, artikel, dsb) akan dipecah menjadi array karakter
  3. Menentukan lompatan yang akan dilakukan ketika pencarian (funsi preKMP())
  4. Algoritma Knuth-Morris-Pratt mulai mencocokkan pattern pada awal teks. ()
  5. Dari kiri ke kanan, algoritma ini akan mencocokkan karakter per karakter pattern dengan karakter di teks yang bersesuaian, sampai salah satu kondisi berikut dipenuhi:
  6. Karakter di pattern dan di teks yang dibandingkan tidak cocok (mismatch).
  7. Semua karakter di pattern cocok. Kemudian algoritma akan memberitahukan penemuan di posisi ini.
  8. Algoritma kemudian menggeser pattern berdasarkan tabel next (lompat), lalu mengulangi langkah 2 sampai pattern berada di ujung teks.

Script di bawah ini merupakan core (inti) dari algoritma Knuth-Morris-Pratt dalam kode PHP. Jadi untuk penggunaan dan implementasinya kita bahas pada artikel berikutnya. :). (Update: kelas PHP ini sudah mengalami modifikasi, silakan kunjungi PHP : Modifikasi Class Algoritma KMP Untuk Replace String)
<?php
// Knuth-Morris-Pratt Algorithm
// Created March 31, 2010 - 07:10:33 WIB
// Modified March 13, 2013 - 09:39:31 WIB
// x90
class KMP{
  function KMPSearch($p,$t){
    $hasil = array();
 // pattern dan text dijadikan array
    $pattern = str_split($p); 
    $text    = str_split($t);

 // hitung tabel lompatan dengan preKMP()
    $lompat = $this->preKMP($pattern);
 print_r($lompat);

 // perhitungan KMP
 $i = $j = 0;
    $num=0;
    while($j<count($text)){
      while($i>-1 && $pattern[$i]!=$text[$j]){
     // jika tidak cocok, maka lompat sesuai tabel lompatan
        $i = $lompat[$i];
      }
      $i++;
      $j++;
      if($i>=count($pattern)){
     // jika cocok, tentukan posisi string yang cocok
  // kemudian lompat ke string berikutnya
        $hasil[$num++]=$j-count($pattern);
        $i = $lompat[$i];
      }
    }
 return $hasil;
  }

  // menetukan tabel lompatan dengan preKMP
  function preKMP($pattern){
    $i = 0;
    $j = $lompat[0] = -1;
    while($i<count($pattern)){
      while($j>-1 && $pattern[$i]!=$pattern[$j]){
        $j = $lompat[$j];
      }
      $i++;
      $j++;
      if($pattern[$i]==$pattern[$j]){
        $lompat[$i]=$lompat[$j];
      }else{
        $lompat[$i]=$j;
      }
    }
    return $lompat;
  }
}
?>

Jika ada masukan dan saran, silakan isi di komentar ya... :)

Written by ElangSakti
Algoritma Pencocokan / Pencarian String dengan Knuth-Morris-Pratt Menggunakan PHP
Bahasan: Pre Note: Kadang Algoritma Knuth-Morris-Pratt ini dijadikan tugas akhir untuk pencarian kata dalam teks / artikel, list kata biasanya ada...
Published at Rabu, 13 Maret 2013, Updated at Rabu, 13 Maret 2013
Reviewed by dr. on
Rating: 4.7

11 komentar :

Posting Komentar

# Hack Your Skills! to be Professional Mechatronics

Problem : Yang Mana (atau Apa) Sebenarnya Bandwidth Itu?

Tidak ada komentar
Jika 1Hz = 1 bit, brarti 2.4GHz adalah 2.4G bit. Artinya Wifi yang beroperasi pada frekuensi 2.4GHz bisa mengirim data 2.4Gbps. Apa benar begitu??

Masalah ini sebenarnya tak habis seharian dipikirkan dan dicari dari berbagai referensi. Sebut saja bukunya S'to "Wireless Kung Fu", disana dijelaskan tentang channel-channel yang ada pada Access Point. Pada wireless 2.4GHz itu tidak sepenuhnya tepat 2.4GHz, tetapi mempunya rentang, yaitu 2.412GHz - 2.484GHz. Dari rentang tersebut dibagi lagi menjadi rentang yang lebih kecil yang disebut channel. Misalnya channel 1 rentangnya 2.401GHz - 2.423GHz (cek list channel di Radio Electronics), maka selisihnya 22MHz. Nah, apakah ini bandwidthnya?

Kalau mengacu pada pengertian di beberapa buku (Komunikasi Elektronika Jilid 2 : Dennis Roddy, Komunikasi Data : Donny Arius, [0],[1],[2],[3],[4],[5],[6],[7],[8], dan [9]), Bandwidth adalah selisih dari frekuensi terendah dan frekuensi tertinggi dalam rentang waktu tertentu. Nah, kemudian muncul istilah-istilah baru yang makin membingungkan yaitu Digital Bandwidth, Analog Bandwidth, dan Bandwidth Komputer. Mungkin penjelasan di bawah ini bisa sedikit memberi pencerahan. Tapi ada pertanyaan yang harus saya ajukan, dan harus ketemu jawabannya. Secepatnya. :)

Digital Bandwidth adalah jumlah atau volume data yang dapat dikirimkan melalui sebuah saluran komunikasi dalam satuan bits per second tanpa distorsi. Analog Bandwidth adalah perbedaan antara frekuensi terendah dengan frekuensi tertinggi dalam sebuah rentang frekuensi yang diukur dalam satuan Hertz (Hz) atau siklus per detik, yang menentukan berapa banyak informasi yang bisa ditransimisikan dalam satu saat. Sedangkan Bandwidth Komputer Di dalam jaringan Komputer, Bandwidth sering digunakan sebagai suatu sinonim untuk data transfer rate yaitu jumlah data yang dapat dibawa dari sebuah titik ke titik lain dalam jangka waktu tertentu (pada umumnya dalam detik).

Pertanyaanya:
  1. Berarti Bandwidth yang kita omongkan dalam komputer (media kabel) berbeda dengan bandwidth yang ada pada wireless?
  2. Lalu bagaimana dengan dengan pengiriman data via wireless? Yang berlaku pengiriman dengan data digital apa analog?
  3. Jika dikirim dengan digital, dan tiap 1 Hz adalah 1 bit, berarti jika frekuensinya 2.4GHz berarti kita bisa mengirim data sebanya 2.4Gbps, begitu kah?
  4. Ada yang bisa memberikan referensi lagi?



Referensi:
[0] http://id.wikipedia.org/wiki/Lebar_pita
[1] http://en.wikipedia.org/wiki/Bandwidth_%28signal_processing%29
[2] http://en.wiktionary.org/wiki/bandwidth
[3] http://hyperphysics.phy-astr.gsu.edu/%E2%80%8Chbase/audio/sumdif.html
[4] http://www.haystack.mit.edu/edu/pcr/RFI/RFI_page32-38.pdf
[5] http://www.princeton.edu/~achaney/tmve/wiki100k/docs/Bandwidth_%28signal_processing%29.html
[6] http://cnx.org/content/m13375/latest/
[7] http://www.hlsresearch.com/High_Frequency_Conf/HF%20FINAL%20Papers%20%28PDFs%29/Final%20-%20Culver.pdf
[8] http://www.radio-electronics.com/info/wireless/wi-fi/80211-channels-number-frequencies-bandwidth.php
[9] http://staff.unud.ac.id/~sukadarmika/wp-content/uploads/2009/09/dsk-pert-02-satuansiskom.pdf

Written by ElangSakti
Problem : Yang Mana (atau Apa) Sebenarnya Bandwidth Itu?
Bahasan: Jika 1Hz = 1 bit, brarti 2.4GHz adalah 2.4G bit. Artinya Wifi yang beroperasi pada frekuensi 2.4GHz bisa mengirim data 2.4Gbps. Apa benar ...
Published at , Updated at
Reviewed by dr. on
Rating: 4.7

Tidak ada komentar :

Posting Komentar

# Hack Your Skills! to be Professional Mechatronics

Network Basic : Arti dari Perintah Ping Komputer

Tidak ada komentar
Aplikasi "ping" merupakan tool sederhana dan ampuh untuk menguji dan mengecek koneksi suatu jaringan. Sebenarnya, pada awalnya tool kecil ini dibuat untuk Unix, hanya saja saat ini juga dipakai pada Windows dan sistem operasi lainnya. Tool kecil nan ampuh ini bisa digunakan untuk menganalisa koneksi jaringan yang sedang mengalami masalah. Hanya saja untuk sistem operasi Windows, dari Windows Vista ke atas, secara default mengaktifkan firewall untuk mencegah pengecekan dengan ping.

Ping itu sendiri sebenarnya adalah pengiriman paket ICMP (Internet Control Message Protokol) untuk membangkitkan koneksi antar dua host. Host yang pertama mengirimkan Echo Request, sedangkan host target membalasnya dengan Echo Reply. Hasil yang tampil saat melakukan ping merupakan seberapa lama paket dikirim dan diterima, termasuk waktu tercepat, terlama, dan rata-ratanya. Sering saya mengidentikkan proses ping dengan proses ‘mengucapkan salam’ dan ‘membalas salam’.

Struktur umum untuk perintah dasar ping yaitu: ping alamatkomputer/namakomputer
atau jika ingin mengetahui opsi apa saja yang bisa diberikan silakan ketikkan:
>ping /? => (untuk windows)
$ping -h => (untuk linux)

Pada sistem operasi unix/linux, sekali melakukan ping, maka request akan dikirimkan terus-menerus hingga Anda menghentikannya dengan menekan CTRL+C. Sedangkan pada sistem operasi Windows, sekali melakukan Ping, secara default hanya mengirimkan 4 paket saja. Agar melakukan pengiriman terus menerus, maka Anda harus menggunakan option /t atau -t (ping target /t). Untuk menghentikannya, Anda bisa menghentikannya dengan CTRL+C. Walaupun sederhana, Ping yang dibuat oleh Mike Muuss pada December 1983 ini bisa bermanfaat tetapi juga bisa digunakan untuk serangan Denial of Service (DoS)  komputer seperti kasus PingFlood.

Secara umum, maka Reply dari pinging sebagai berikut (contoh pada Linux):
$ ping google.com
PING google.com (173.194.38.131): 56 data bytes
64 bytes from 173.194.38.131: icmp_seq=0 ttl=253 time=0.398 ms
64 bytes from 173.194.38.131: icmp_seq=1 ttl=253 time=0.552 ms
64 bytes from 173.194.38.131: icmp_seq=2 ttl=253 time=0.554 ms
64 bytes from 173.194.38.131: icmp_seq=3 ttl=253 time=0.553 ms
64 bytes from 173.194.38.131: icmp_seq=4 ttl=253 time=0.554 ms
64 bytes from 173.194.38.131: icmp_seq=5 ttl=253 time=0.551 ms
64 bytes from 173.194.38.131: icmp_seq=6 ttl=253 time=0.552 ms
64 bytes from 173.194.38.131: icmp_seq=7 ttl=253 time=0.554 ms
64 bytes from 173.194.38.131: icmp_seq=8 ttl=253 time=0.554 ms
64 bytes from 173.194.38.131: icmp_seq=9 ttl=253 time=0.553 ms
^C
----localhost PING Statistics----
10 packets transmitted, 10 packets received, 0% packet loss
round-trip min/avg/max = 0.398/0.537/0.554 ms $

C:\Users\x86>ping elangsakti.com -t

Pinging elangsakti.com [202.52.146.36] with 32 bytes of data:
Reply from 202.52.146.36: bytes=32 time=286ms TTL=55
Reply from 202.52.146.36: bytes=32 time=198ms TTL=55
Reply from 202.52.146.36: bytes=32 time=97ms TTL=55
Reply from 202.52.146.36: bytes=32 time=97ms TTL=55
Request timed out.
Reply from 202.52.146.36: bytes=32 time=1218ms TTL=55
Request timed out.
Reply from 202.52.146.36: bytes=32 time=188ms TTL=55
Reply from 202.52.146.36: bytes=32 time=149ms TTL=55
Reply from 202.52.146.36: bytes=32 time=258ms TTL=55
Reply from 202.52.146.36: bytes=32 time=227ms TTL=55
Reply from 202.52.146.36: bytes=32 time=598ms TTL=55
Reply from 202.52.146.36: bytes=32 time=309ms TTL=55
Reply from 202.52.146.36: bytes=32 time=468ms TTL=55
Reply from 202.52.146.36: bytes=32 time=187ms TTL=55
Reply from 202.52.146.36: bytes=32 time=105ms TTL=55

Ping statistics for 202.52.146.36:
    Packets: Sent = 16, Received = 14, Lost = 2 (12% loss),
Approximate round trip times in milli-seconds:
    Minimum = 97ms, Maximum = 1218ms, Average = 313ms
Control-C
^C
C:\Users\x86>

Dari hasil ping tersebut, ada beberapa informasi yang kita dapat:

  • Nomor IP target yang kita ping, dalam kasus ini yaitu 173.194.38.131 (google.com) dan 202.52.146.36 (elangsakti.com)
  • ICMP Sequence (icmp_seqs=x), x yaitu merupakan nomer urut paket data yang dikirimkan. Jika pada contoh angkanya berurut dari 0 hingga 9, berarti setiap paket ICMP yang dikirim, direspon dengan baik dan tidak ada paket yang hilang. Dalam kasus lain, bisa saja angka icmp_seqs tidak teratur atau tidak berurutan. Jika hal itu terjadi, berarti ada paket yang hilang, rusak, atau entah kemana :D
  • TTL, untuk ping defaultnya adalah 255. Setiap kali paket ping yang dikirim melewati router, maka angka TTL akan dikurangi 1. Andai saja ada router yang menerima paket yang TTL-nya 0, maka paket tersebut akan dibuang. Dalam kasus lain, bisa saja TTL-nya akan berubah jika ada gangguan pada jalur awal dan beralih pada jalur lain. Maksudnya, jika angka TTL-nya berbeda-beda, berarti paket yang dikirim melewati router yang berbeda-beda, dan kesimpulannya yaitu koneksi jaringan sedang tidak baik.
  • Informasi lamanya peket dibalas dalam milidetik. Sederhananya, berarti lamanya ‘pulang-pergi’ paket yang dikirim. Semakin besar angka yang ditampilkan, berarti semakin lama respon yang dberikan oleh target.
Beberapa Reply yang mungkin terjadi:

  • Reply From …, Artinya tidak ada masalah dengan jaringan kita (Card LAN, Kabel, alamat IP, hub/swich sudah OK).
  • Request Timed Out, Artinya komputer kita tidak terhubung dengan target baik secara fisik atau secara logic. Periksa kabel, firewall target, switch/hub, konfigurasi IP, atau hidup/matinyasi si target.
  • Destination Host Unreachable, Artinya alamat host/komputer target ada di luar jangkauan, atau kita tidak dalam satu jaringan. Untuk itu, periksa gateway atau settingan Router.

Written by ElangSakti
Network Basic : Arti dari Perintah Ping Komputer
Bahasan: Aplikasi "ping" merupakan tool sederhana dan ampuh untuk menguji dan mengecek koneksi suatu jaringan. Sebenarnya, pada awalnya t...
Published at Selasa, 12 Maret 2013, Updated at Selasa, 12 Maret 2013
Reviewed by dr. on
Rating: 4.7

Tidak ada komentar :

Posting Komentar

# Hack Your Skills! to be Professional Mechatronics

PHP : Encode dan Decode Format JSON Data

9 komentar
Yak, kembali lagi. Setelah kita belajar tentang apa itu JSON dan bagaimana membuat dan mengolahnya (baca Bacaan Wajib Programmer : Mengenal Data JSON Lebih Dekat). Kini kita akan membuat dan mengolah JSON dengan bahasa pemrograman web, yaitu PHP. Untuk PHP, kita tidak perlu lagi menambahkan modul atau plugin karena PHP sudah mendukung format JSON yaitu menggunakan fungsi json_encode() dan json_decode(). JSON pada php mudah, tidak sesulit pada pemrogramalan lainnya sebab memang dasar php mudah. Akan tetapi mudah yang saya maksud bisa relatif. :)

Untuk logikanya tidak terlalu berbeda dengan JSON yang telah kita pelajari sebelumnya (baca Encode dan Decode JSON Data dengan Java). Jadi, penggunaan di PHP lebih simple dan lebih sederhana. Berikut dibawah ini script yang bisa saya sajikan. Untuk database, masih sama dengan artikel sebelumya.

<?php
// koneksi ke database
$c  = mysql_connect("localhost", "root", "");
$db = mysql_selectdb("bukubase", $c);

// jika tidak bisa terkoneksi ke database, hentikan proses.
if(!$db){
    echo "Purcase DB! :p";
    exit();
}

// MEMBUAT DATA DENGAN FORMAT JSON

// buat inisialisasi variabel dengan tipe data array yang masih kosong
// ambil data dari tabel daftar_buku di database
// kemudian masukkan data-data tersebut ke variabel $datas;
$datas = array();
$get = mysql_query("select * from daftar_buku order by buku_kode");
while($data = mysql_fetch_array($get)){
    $datas[] = $data;
}

//konversi data array tadi menjadi "semuah string" dengan format json.
$json_format = json_encode($datas);

echo $json_format;
echo "<br/>";

// MENGOLAH DATA BERFORMAT JSON
// true untuk menjadikannya array
$json_data = json_decode($json_format,true);

for($i=0; $i<count($json_data); $i++){
    echo $json_data[$i]['buku_kode']."<br/>";
    echo $json_data[$i]['buku_judul']."<br/>";
    echo $json_data[$i]['buku_penerbit']."<br/>";
    echo $json_data[$i]['buku_tahun']."<br/>";
    echo "<br/>";
}

echo "<br/>";
foreach ($json_data as $thedata->buku_kode) {
    foreach ($thedata as $value) {
        echo $value['buku_kode']."<br/>";
        echo $value['buku_judul']."<br/>";
        echo $value['buku_penerbit']."<br/>";
        echo $value['buku_tahun']."<br/>";
        echo "<br/>";
    }
}

?>

Outputnya:
[{"0":"1","buku_kode":"1","1":"Wordpress Advanced","buku_judul":"Wordpress Advanced","2":"Neomedia","buku_penerbit":"Neomedia","3":"2001","buku_tahun":"2001"},{"0":"2","buku_kode":"2","1":"PHP For Evil Genius","buku_judul":"PHP For Evil Genius","2":"Socka Inc.","buku_penerbit":"Socka Inc.","3":"1999","buku_tahun":"1999"},{"0":"3","buku_kode":"3","1":"Linux Kernel For Breakfast","buku_judul":"Linux Kernel For Breakfast","2":"Socka Inc.","buku_penerbit":"Socka Inc.","3":"2009","buku_tahun":"2009"},{"0":"4","buku_kode":"4","1":"Play With Perl Undercover for Evil genius","buku_judul":"Play With Perl Undercover for Evil genius","2":"Socka Inc.","buku_penerbit":"Socka Inc.","3":"2009","buku_tahun":"2009"},{"0":"5","buku_kode":"5","1":"Android Cook Book For Mother","buku_judul":"Android Cook Book For Mother","2":"Dopler Crook","buku_penerbit":"Dopler Crook","3":"2008","buku_tahun":"2008"}]
1
Wordpress Advanced
Neomedia
2001

2
PHP For Evil Genius
Socka Inc.
1999

3
Linux Kernel For Breakfast
Socka Inc.
2009

4
Play With Perl Undercover for Evil genius
Socka Inc.
2009

5
Android Cook Book For Mother
Dopler Crook
2008

1
Wordpress Advanced
Neomedia
2001

2
PHP For Evil Genius
Socka Inc.
1999

3
Linux Kernel For Breakfast
Socka Inc.
2009

4
Play With Perl Undercover for Evil genius
Socka Inc.
2009

5
Android Cook Book For Mother
Dopler Crook
2008

Semoga bermanfaat. Jika ada yang keliru, atau ada yang mau bertanya,, silakan isi di bagian komentar.. :)

Written by ElangSakti
PHP : Encode dan Decode Format JSON Data
Bahasan: Yak, kembali lagi. Setelah kita belajar tentang apa itu JSON dan bagaimana membuat dan mengolahnya (baca Bacaan Wajib Programmer : Mengena...
Published at Minggu, 10 Maret 2013, Updated at Minggu, 10 Maret 2013
Reviewed by dr. on
Rating: 4.7

9 komentar :

Posting Komentar

# Hack Your Skills! to be Professional Mechatronics

Encode dan Decode JSON Data dengan Java

11 komentar
Sebelumnya kita telah mempelajari tentang bagaimana cara kerja dan format JSON. Bagi yang belum mengikuti pembahasannya, diharap menengoknya terlebih dahulu di Bacaan Wajib Programmer : Mengenal Data JSON Lebih Dekat. Untuk kali ini kita langsung ke koding dan sedikit penjelasannya. Semoga bermanfaat. :)

Untuk Java, yang kita gunakan pada percobaan kali ini yaitu menggunakan API JSON yang bernama json-simple dalam bentuk jar file, bisa langsung didownload di code.google.com. Dengan bantuan API ini, kita lebih mudah dalam memprogram tentunya. Setelah didownload, tambahkan, jar tersebut ke library editor kita. Jika menggunakan netbean, di bagian project - Library - Klik kanan, lalu Add Jar/Folder. Setelah itu ambil jar json-simple yang telah kita download.

Encode dan Decode JSON Data dengan Java

Setelah itu, siapkan database yang akan dibuat. Buatlah database dengan isi sebagai berikut:
Script Encode dan Decode JSON Data dengan Java


Atau bisa dengan menjalankan perintah SQL serperti di bawah ini.
CREATE DATABASE /*!32312 IF NOT EXISTS*/`bukubase` /*!40100 DEFAULT CHARACTER SET latin1 */;

USE `bukubase`;

/*Table structure for table `daftar_buku` */

DROP TABLE IF EXISTS `daftar_buku`;

CREATE TABLE `daftar_buku` (
  `buku_kode` int(11) NOT NULL,
  `buku_judul` varchar(100) DEFAULT NULL,
  `buku_penerbit` varchar(100) DEFAULT NULL,
  `buku_tahun` year(4) DEFAULT NULL,
  PRIMARY KEY (`buku_kode`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

/*Data for the table `daftar_buku` */

insert  into `daftar_buku`(`buku_kode`,`buku_judul`,`buku_penerbit`,`buku_tahun`) values (1,'Wordpress Advanced','Neomedia',2001),(2,'PHP For Evil Genius','Socka Inc.',1999),(3,'Linux Kernel For Breakfast','Socka Inc.',2009),(4,'Play With Perl Undercover for Evil genius','Socka Inc.',2009),(5,'Android Cook Book For Mother','Dopler Crook',2008);

Berikut ini contoh script java untuk melakukan encode dan decode JSON.
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

import java.io.IOException;
import java.io.StringWriter;
import java.io.Writer;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.LinkedHashMap;
import org.json.simple.*;
import org.json.simple.parser.JSONParser;

/**
 *
 * @author x86, haripinter in case :P
 * 
 */
public class Json {

    /**
     * @param args the command line arguments
     */

    // class untuk pengumpulan data sebelum diencode ke format JSON
    // input : String[] key -> String[] value
    static class pushdata implements JSONStreamAware{
        private String[] key;
        private String[] value;

        public pushdata(String[] key, String[] value){
            this.value = value;
            this.key  = key;
        }

        public void writeJSONString(Writer writer) throws IOException {
            LinkedHashMap obj = new LinkedHashMap();
            for(int i=0; i<key.length; i++){
                obj.put(key[i], value[i]);
            }
            JSONValue.writeJSONString(obj, writer);
        }
    }

    public static void main(String[] args) {
        String host = "localhost";
        String debe = "bukubase";
        String user = "root";
        String pass = "";
        Connection con = null;
        Statement sta = null;
        try{
            Class.forName("org.gjt.mm.mysql.Driver");
            con = DriverManager.getConnection("jdbc:mysql://"+host+"/"+debe,user,pass);
            sta = con.createStatement();
        }catch(Exception e){
        }

        try{
            System.out.println("====================================");
            System.out.println("Sebelum diencode menjadi format JSON");
            System.out.println("====================================");
            // inisialisasi JSONArray dan pengambilan data dari database
            JSONArray js = new JSONArray();
            ResultSet res = sta.executeQuery("select * from daftar_buku order by buku_kode");
            while(res.next()){
                //cetak sebelum mnejadi string JSON
                System.out.println(res.getString("buku_kode"));
                System.out.println(res.getString("buku_judul"));
                System.out.println(res.getString("buku_penerbit"));
                System.out.println(res.getString("buku_tahun"));

                // membuat key dan value untuk dipush ke json
                String[] key = {
                    "buku_kode",
                    "buku_judul",
                    "buku_penerbit",
                    "buku_tahun"
                };
                String[] value = {
                    res.getString("buku_kode"),
                    res.getString("buku_judul"),
                    res.getString("buku_penerbit"),
                    res.getString("buku_tahun")
                };

                // kelompokkan data untuk dibuat json
                js.add(new pushdata(key,value));
            }

            // encode ke format JSON
            StringWriter hasil = new StringWriter();
            js.writeJSONString(hasil);
            String jsons = hasil.toString();

            System.out.println();
            System.out.println("====================================");
            System.out.println("Setelah diencode menjadi format JSON");
            System.out.println("====================================");
            System.out.println(jsons);
            System.out.println();

            // decode json array
            // inisialisasi dengan memparsing array JSON
            JSONParser jpars = new JSONParser();
            Object object = jpars.parse(jsons);
            // JSON dijadikan array objek kemudian kita ambil datanya
            System.out.println("====================================");
            System.out.println("Setelah didecode menjadi format biasa");
            System.out.println("====================================");
            JSONArray jsonArr = (JSONArray) object;
            for(int i=0; i<jsonArr.size(); i++){
                // ekstraksi array objek, menjadi objek...
                JSONObject obj = (JSONObject) jsonArr.get(i);
                System.out.println(obj.get("buku_kode"));
                System.out.println(obj.get("buku_judul"));
                System.out.println(obj.get("buku_penerbit"));
                System.out.println(obj.get("buku_tahun"));
            }
        }catch(Exception e){

        }
    }
}

run:
====================================
Sebelum diencode menjadi format JSON
====================================
1
Wordpress Advanced
Neomedia
2001-01-01
2
PHP For Evil Genius
Socka Inc.
1999-01-01
3
Linux Kernel For Breakfast
Socka Inc.
2009-01-01
4
Play With Perl Undercover for Evil genius
Socka Inc.
2009-01-01
5
Android Cook Book For Mother
Dopler Crook
2008-01-01

====================================
Setelah diencode menjadi format JSON
====================================
[{"buku_kode":"1","buku_judul":"Wordpress Advanced","buku_penerbit":"Neomedia","buku_tahun":"2001-01-01"},{"buku_kode":"2","buku_judul":"PHP For Evil Genius","buku_penerbit":"Socka Inc.","buku_tahun":"1999-01-01"},{"buku_kode":"3","buku_judul":"Linux Kernel For Breakfast","buku_penerbit":"Socka Inc.","buku_tahun":"2009-01-01"},{"buku_kode":"4","buku_judul":"Play With Perl Undercover for Evil genius","buku_penerbit":"Socka Inc.","buku_tahun":"2009-01-01"},{"buku_kode":"5","buku_judul":"Android Cook Book For Mother","buku_penerbit":"Dopler Crook","buku_tahun":"2008-01-01"}]

====================================
Setelah didecode menjadi format biasa
====================================
1
Wordpress Advanced
Neomedia
2001-01-01
2
PHP For Evil Genius
Socka Inc.
1999-01-01
3
Linux Kernel For Breakfast
Socka Inc.
2009-01-01
4
Play With Perl Undercover for Evil genius
Socka Inc.
2009-01-01
5
Android Cook Book For Mother
Dopler Crook
2008-01-01
BUILD SUCCESSFUL (total time: 1 second)

Jika ada yang kurang jelas, silakan isi bertanya di bagian komentar... :). Untuk Encode dan decode JSON dengan PHP, bisa cek di Encode dan Decode JSON dengan PHP.

Written by ElangSakti
Encode dan Decode JSON Data dengan Java
Bahasan: Sebelumnya kita telah mempelajari tentang bagaimana cara kerja dan format JSON. Bagi yang belum mengikuti pembahasannya, diharap menengokn...
Published at , Updated at
Reviewed by dr. on
Rating: 4.7

11 komentar :

Posting Komentar

# Hack Your Skills! to be Professional Mechatronics

Bacaan Wajib Programmer : Mengenal Data JSON Lebih Dekat

4 komentar
Note: Pengetahuan dasar ini akan berguna ketika membuat aplikasi berbasis mobile seperti Android sebab data yang dikirimkan berformat JSON.

Menurut pembuatnya, http://www.json.org/, JSON (JavaScript Object Notation) adalah format pertukaran data yang ringan, mudah dibaca dan ditulis oleh manusia, serta mudah diterjemahkan dan dibuat (generate) oleh komputer. Format ini dibuat berdasarkan bagian dari Bahasa Pemprograman JavaScript, Standar ECMA-262 Edisi ke-3 - Desember 1999. JSON merupakan format teks yang tidak bergantung pada bahasa pemprograman apapun karena menggunakan gaya bahasa yang umum digunakan oleh programmer keluarga C termasuk C, C++, C#, Java, JavaScript, Perl, Python dll. Oleh karena sifat-sifat tersebut, menjadikan JSON ideal sebagai bahasa pertukaran-data.

Menurut hemat saya, JSON layaknya seperti database dalam bentuk string. Data tersebut bisa kita kirim lintas aplikasi, lintas platform, dan lintas jaringan sebab JSON memang merupakan format pertukaran data yang fleksibel. Seperti halnya data yang kita ambil dari database, JSON bisa merupakan single data yang hanya terdiri dari key dan value (disebut JSON Object) atau kumpulan dari key dan value (kumpulan JSON Object disebut JSON Array). Pada JSON, terdapat key dan value yang bertindak layaknya baris dan kolom. Itu bayangan JSON di kepala saya :). Mari kita lanjut dengan JSON Object, JSON Array, dan Contohnya.


JSON Objek
JSON Objek merupakan pasangan data atara "key" dan "value" yang diapit dengan kurun kurawal "{}". Mungkin juga bisa diibaratkan seperti "variabel" dan "isinya" atau "kolom" dan "isinya". Format penulisannya yaitu "{key:value}" atau jika isinya dalam bentuk array "{key1:value1, key2:value2, key3:value3, ...}". Walaupun isinya seperti array, tetap saja disebut JSON Object. Jika data yang kita punya tunggal, maka kita bisa mengirimnya dalam bentuk JSON Object.
// JSON Object
{'id':1, 'nama':'Hanif', alamat:'Malang'}

JSON Array
JSON Array merupakan wadah dari JSON Object. Jadi bisa terdiri dari satu atau lebih JSON Object. Format penulisannya yaitu menggunakan kurung siku "[]", seperti [JSONObject] atau [ {key:value} ]. Untuk data yang banyak misalnya seperti ini, [{key1:value1, key2:value2, key3:value3, ...}, {key1:value1, key2:value2, key3:value3, ...}, {key1:value1, key2:value2, key3:value3, ...}, ...]. Untuk Contoh misalkan seperti dibawah ini:
// JSON Array
[ {'id':1, 'nama':'Hanif', alamat:'Malang'}, {'id':2, 'nama':'Hanna', alamat:'Magetan'}, {'id':3, 'nama':'Sopin', alamat:'Malang'} ]

Berikut ini perbandingan antara data dalam tabel database dengan hasil encode dengan JSON format (format di bawah ini sudah saya rapikan biar mudah nganalisanya :) ).

Belajar JSON Bacaan Wajib Programmer : Mengenal Data JSON Lebih Dekat

Tabel di atas bisa direpresentasikan dalam bentuk JSON seperti berikut:
[ {"buku_kode":"1","buku_judul":"Wordpress Advanced","buku_penerbit":"Neomedia","buku_tahun":"2001-01-01"},
{"buku_kode":"2","buku_judul":"PHP For Evil Genius","buku_penerbit":"Socka Inc.","buku_tahun":"1999-01-01"},
{"buku_kode":"3","buku_judul":"Linux Kernel For Breakfast","buku_penerbit":"Socka Inc.","buku_tahun":"2009-01-01"},
{"buku_kode":"4","buku_judul":"Play With Perl Undercover for Evil genius","buku_penerbit":"Socka Inc.","buku_tahun":"2009-01-01"},
{"buku_kode":"5","buku_judul":"Android Cook Book For Mother","buku_penerbit":"Dopler Crook","buku_tahun":"2008-01-01"} ]

Jika ada yang membingungkan, silahkan ditanyakan.. :). Berikutnya akan saya sajikan bagaimana membuat mengencode dan decode data dari database menjadi format JSON menggunakan Java dan PHP. Semoga tulisan ini bermanfaat, dan mari kita diskusikan jika ada ide atau pertanyaan.. :)

Written by ElangSakti
Bacaan Wajib Programmer : Mengenal Data JSON Lebih Dekat
Bahasan: Note: Pengetahuan dasar ini akan berguna ketika membuat aplikasi berbasis mobile seperti Android sebab data yang dikirimkan berformat JSON...
Published at , Updated at
Reviewed by dr. on
Rating: 4.7

4 komentar :

Posting Komentar

# Hack Your Skills! to be Professional Mechatronics

PHP : Teknik atau Cara Sederhana untuk Mencegah SQL Injection

4 komentar
Teknik serangan SQL Injection merupakan serangan injeksi perintah SQL pada bagian URL atau bagian Body HTTP Request. Pada bagian URL, bisa kita lakukan langsung dengan memodifikasi kotak URL di browser. Sedangkan untuk injeksi di bagian body, ini biasa dilakukan ketika kita mengisi form. Seperti form login, form pencarian, form pendaftaran, atau form-form lainnya. Tutorial tentang teknik SQL Injection bisa temen-temen pelajari di Belajar Teknik SQL Injection, XSS, LFI, dan RFI beserta Contohnya.

Untuk mencegah serangan SQL Injection ini, kita bisa melakukan filtering pada data yang diinputkan user. Kata pepatah, "Jangan pernah percaya pada user di internet!". Sehingga setiap inputan dan apa saja yang diinputkan user harus kita filter terlebih dahulu. Menurut hemat saya, ada dua jenis data yang perlu kita filter, yaitu inputan yang berupa angka dan string (campuran angka, huruf, dan metakarakter). Oke, kita langsung ke script untuk memfilter angka:

$id = $_GET['id']; // ambil nilai dari parameter 'id'
if(!is_numeric($id)){ // kalau isi dari variabel 'id' bukan angka
  $id = 0;  // berikan nilai default, yaitu $id = 0;
}

// proses SQL

Jika parameter adalah angka, maka solusinya setiap inputan difilter dengan is_numeric(). Parameter yang berupa angka biasanya digunakan untuk menampilkan halaman berdasarkan id tertentu yang ada dalam database. Seperti artikel, gambar, data profil, dan lain-lain. Contoh URL yang menggunakan parameter angka yaitu:
www.web.com/index.php?id=32
www.web.com/index.php?kode=1024
www.web.com/index.php?page=9

Pada contoh URL di atas, parameter id, kode, dan page itulah yang akan kita filter berdasarkan angka karena nilainya berupa angka (32, 1024, 9). Akan tetapi, jika nilainya ada kemungkinan bukan angka, misal index.php?page=home, maka teknik yang kita gunakan adalah teknik yang berikutnya yaitu dengan memfilter string.
www.web.com/index.php?message=Page Not Found
www.web.com/index.php?result=Success
www.web.com/index.php?page=home
www.web.com/index.php?nama=Ahmad&komentar=Selamat menunaikan ibadah belajar

Jika parameter adalah campuran (string, angka, metakarakter), maka solusinya kita filter dengan htmlentities($string,ENT_QUOTES,'WINDOWS-1252'). Penggunaan htmlentities ini berbeda dengan htmlentities yang biasa, yaitu htmlentities($string). htmlentities yang biasa tidak mefilter singlequote dan doublequote, sedangkan htmlentities yang kami sarankan adalah mengaktifkan filter untuk singlequote dan double quote dengan memasukkan parameter ENT_QUOTES dan menggunakan karakter encoding WINDOWS-1252. Untuk masalah encoding tersebut, bisa dicek di Character Encoding Windows-1252.
$data = $_GET['data'];     // ambil string dari parameter 'data'
$data = htmlentities($data,ENT_QUOTES,'WINDOWS-1252'); // filter dengan karakter encoding

// proses SQL

Filter string tersebut juga bisa menangkis serangan Cross Site Scripting (XSS). Sebab script html atau javascript, akan diencode menjadi string biasa. Untuk contoh diatas, input data diambil dari URL, artinya pengiriman data masih menggunakan metode GET. Jika menggunakan metode POST, maka data akan dikirim di bagian body URL. Untuk bisa membedakan metode GET dan POST bisa baca Perbedaan GET dan POST Data pada PHP. Untuk metode POST biasanya digunakan untuk form login dan form isian data seperti nama, alamat, tanggal lahir dan sebagainya sehingga data yang diinputnkan merupaka data campuran. Data campuran tersebut bisa difilter dengan script berikut:
$id = null;
$data = null;
if(isset($_POST['id'])){ // kalau data dikirim dengan method POST
  $id = $_POST['id'];  // ambil data dengan method POST
  $data = $_POST['data'];
}else{    // jika tidak
  $id = $_GET['id'];  // ambil data dengan metode GET
  $data = $_GET['data'];
}

if(!is_numeric($id)){ // kalau isi dari variabel 'id' bukan angka
  $id = 0;   // berikan nilai default, yaitu $id = 0;
}

$data = htmlentities($data,ENT_QUOTES,'WINDOWS-1252'); // filter dengan karakter encoding

Semoga tulisan ini membantu. Bagi yang ingin bertanya, silakan isi di komentar ya.. :)

Written by ElangSakti
PHP : Teknik atau Cara Sederhana untuk Mencegah SQL Injection
Bahasan: Teknik serangan SQL Injection merupakan serangan injeksi perintah SQL pada bagian URL atau bagian Body HTTP Request. Pada bagian URL, bi...
Published at Sabtu, 09 Maret 2013, Updated at Sabtu, 09 Maret 2013
Reviewed by dr. on
Rating: 4.7

4 komentar :

Posting Komentar