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

Solusi Peringatan "Notice: Undefined offset: N" pada PHP

7 komentar
Pesan "Notice" merupakan pesan peringatan (Warning) yang muncul akibat adanya bug pada script php yang kita buat. Walaupun pesan tersebut muncul, script php tetap akan berjalan sebagaimana mestinya. Jadi pesan tersebut merupakan peringatan bahwa kita dianjurkan untuk menjadi programmer yang baik untuk menerapkan sintaks dan logika bahasa pemrograman sesuai aturan. :)

Pesan "Notice: Undefined offset: N", dimana N adalah angka, merupakan pesan peringatan yang biasa muncul ketika kita bermain-main dengan data array. Pesan tersebut muncul ketika posisi array yang kita tunjuk tidak ada isinya atau belum diinisialisasi. Perhatikan contoh berikut :

//script 1
$a=array();
echo $a[1];

//output
Notice: Undefined offset:  1 in Command line code on line 2

//script 2
$a=array('a','b');
echo $a[1];

//output
b

//script 3
$a=array('a','b');
echo $a[2];

//output
Notice: Undefined offset:  2 in Command line code on line 1

Dari ketiga contoh script di atas, peringatan Notice akan muncul ketika meminta nilai dari posisi array yang belum ada isinya. Misal contoh pertama, kita hanya membuat variabel array 'a' tapi belum diisi, kemudian kita minta data pada posisi ke 1 untuk ditampilkan, maka akan muncul peringatan. Kemudian pada script yang ketiga, kita hanya punya 2 data yaitu pada posisi ke 0 dan 1 ('a' dan 'b'), akan tetapi kita minta posisi ke 2, maka juga akan muncul error.

SOLUSI

Solusi untuk menghilangkan peringatan ini ada dua cara, pertama kita nonaktifkan saja pesan peringatannya. Walaupun ada peringatan, toh script kita tetap bisa jalan dengan normal. Cara yang kedua kita perbaiki scriptnya, caranya adalah memeriksa terlebih dahulu apakah posisi array yang kita minta sudah ada atau sudah diset apa belum, misal dengan perintah if(isset(array[posisi])).

Cara yang pertama, kita modifikasi file php.ini. File ini merupakan konfigurasi untuk php, biasanya jadi satu di dalam folder instalasi php. Di dalam file tersebut ada tulisan "error_reporting" tanpa ada tanda titik koma ';' di depannya. Kemudian di belakang tulisan tersebut biasanya ada tulisan "E_ALL", dll. Untuk menonaktigkan pesan ini kita ganti baris tersebut dengan
error_reporting = E_ALL & ~E_NOTICE

Penting!! Jangan lupa setelah menyimpan perubahan file php.ini tersebut kita harus merestart Web Servernya (misal Apache). Jika web server belum di restart, perubahan tersebut tidak akan berefek.

Cara yang kedua, menyisipkan script isset() untuk memeriksa apakah data yang kita minta dari array ada isinya apa belum. Berikut contoh modifikasi dari script di atas.
//script 1
$a=array();
if(isset($a[1])) echo $a[1];

//output
(kosong)

//script 2
$a=array('a','b');
echo $a[1];

//output
b

//script 3
$a=array('a','b');
if(isset($a[2])) echo $a[2];

//output
(kosong)

Nah, begitulah kira-kira penjelasan singkatnya. :)

Karena tulisan ini dipicu oleh pertanyaan mas 'adpermana' pada artikel Implementasi KMP di PHP, maka modifikasi script kmp.php yang sudah tidak muncul peringatan "Notice" bisa dicek di Modifikasi Core Algoritma Knuth-Morris-Pratt .

Written by ElangSakti
Solusi Peringatan "Notice: Undefined offset: N" pada PHP
Bahasan: Pesan "Notice" merupakan pesan peringatan (Warning) yang muncul akibat adanya bug pada script php yang kita buat. Walaupun pesan...
Published at Sabtu, 13 April 2013, Updated at Sabtu, 13 April 2013
Reviewed by dr. on
Rating: 4.7

7 komentar :

Posting Komentar

# Hack Your Skills! to be Professional Mechatronics

Modifikasi Core Algoritma Knuth-Morris-Pratt pada kmp.php

Tidak ada komentar
Solusi untuk pertanyaan mas adpermana, ada penambahan script isset() pada baris 27, 42, dan 65. Silakan dicek lagi, jika ada yang kurang pas, monggo kita diskusi lagi :).

<?php
// Knuth-Morris-Pratt Algorithm
// Created March 31, 2010 - 07:10:33 WIB
// Modified (again) April 13, 2013 - 06: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)){
      if(isset($pattern[$i]) && isset($lompat[$i])){
        while($i>-1 && $pattern[$i]!=$text[$j]){
            // jika tidak cocok, maka lompat sesuai tabel lompatan
            $i = $lompat[$i];
        }
      }else{
        $i = 0;
      }

      $i++;
      $j++;
      if($i>=count($pattern)){
          // jika cocok, tentukan posisi string yang cocok
          // kemudian lompat ke string berikutnya
          $hasil[$num++]=$j-count($pattern);
          if(isset($lompat[$i])){
              $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(isset($pattern[$i])&&isset($pattern[$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
Modifikasi Core Algoritma Knuth-Morris-Pratt pada kmp.php
Bahasan: Solusi untuk pertanyaan mas adpermana, ada penambahan script isset() pada baris 27, 42, dan 65. Silakan dicek lagi, jika ada yang kurang p...
Published at , Updated at
Reviewed by dr. on
Rating: 4.7

Tidak ada komentar :

Posting Komentar

# Hack Your Skills! to be Professional Mechatronics

Short Tutorial : CSS Sprites untuk Mempercepat Loading Web

3 komentar
Programmer web tentu wajib menguasai CSS sebab CSS merupakan inti dari style website seperti pewarnaan dan beberapa animasi minor. Tapi css bukan segalanya, tapi CSS bisa melakukan sesuatu yang tidak bisa dilakukan oleh HTML. Lalu apa bedanya CSS (biasa) dengan CSS Sprites? Tidak ada. Kita hanya menggunakan fasilitas css untuk menampilkan bagian tertentu dari gambar. Jadi, CSS Sprites sekedar teknik pengembangan.

CSS Sprites merupakan salah satu teknik CSS dalam mempercepat loading halaman web. Umumnya CSS Sprites digunakan pada icon-icon atau button yang beragam. Biasanya, setiap icon adalah satu gambar. Maka jika ada 50 icon, berarti ada 50 gambar. Dengan demikian, akan ada 50 link yang harus dirambah oleh browser untuk menampilkan ke-50 gambar tersebut. Jika menggunakan CSS Sprites, kita hanya butuh satu gambar yang berisi banyak icon sehingga loadingnya lebih cepat. Misalkan seperti berikut :


Icon Teknik biasa :
http://www.elangsakti.com/img/icon1.png
http://www.elangsakti.com/img/icon2.png
http://www.elangsakti.com/img/icon3.png
http://www.elangsakti.com/img/icon4.png
.....
http://www.elangsakti.com/img/icon49.png
http://www.elangsakti.com/img/icon50.png



Icon Teknik CSS Sprites :
http://www.elangsakti.com/img/icons.png



Jika untuk menampilkan satu icon butuh waktu 0.5 detik, maka untuk menampilkan 50 icon butuh 25 detik atau dalam hal ini bandwidth juga berpengaruh. Jadi CSS Sprites ini solusi untuk pengguna dengan koneksi lemah. :)

Untuk mengecek seberapa cepat loading web/blog, kita bisa ngecek lewat Google Insight (https://developers.google.com/speed/pagespeed/insights). Dengan tool tersebut, kita akan tahu apa yang membuat loading web kita jadi berat yang dikategorikan dalam High, Medium, dan Low Priority. Bisa karena gambar background, gambar button, css, external link, dll. Salah satu solusi yang direkomendasikan adalah CSS Sprites. Ini hal yang sangat menarik (tentu karena tulisan ini sedang membahas itu :P ).

Oke, kita mulai belajar memnggunakan CSS Sprites. Untuk membuat CSS Sprites, kita butuh dua langkah, pertama membuat icon-icon dalam satu buah gambar. Lebih mudah jika ukuran gambarnya seragam. Kedua, menampilkan gambar tersebut sebagai background sesuai dengan posisi pixelnya.

Berikut contoh gambar icon dalam bentuk array:

Short Tutorial : Belajar CSS Sprites untuk Mempercepat Loading Web


Icon yang dibuat adalah 20x20 pixel dalam array 3x3. Untuk menentukan posisi gambar pada array yaitu menggunakan gambar yang sebelah kanan. Semakin ke kanan posisi gambar, nilai pixelnya semakin negatif. Dan semakin ke bawah posisi gambar nilai pixelnya juga semakin negatif. Untuk menggambarnya dalam bentuk html, kita contohkan menggunakan 'div' berukurang 20x20 pixel sesuai dengan ukuran icon yang sudah dibuat. Berikut script html sekaligus dengan CSS-nya.
<html>
    <head>
        <title>Belajar CSS Sprites</title>
        <style>
        .icon{
            background-image: url('icons.jpg');
            width: 20px;
            height: 20px;
            float: left;
            margin-right: 5px;
        }
        .senyum{
            background-position:-40px 0px;
        }
        .damai{
            background-position:0px -20px;
        }
        .bengong{
            background-position:-40px -40px;
        }
        </style>
    </head>
    <body>
        <div>
            <div class="icon"></div>Sedih
        </div>
        <div>
            <div class="icon senyum"></div>Senyum
        </div>
        <div>
            <div class="icon damai"></div>Damai
        </div>
        <div>
            <div class="icon bengong"></div>Bengong
        </div>
    </body>
</html>

Hasil tampilan dari script di atas :



Semoga Bermanfaat :)

Written by ElangSakti
Short Tutorial : CSS Sprites untuk Mempercepat Loading Web
Bahasan: Programmer web tentu wajib menguasai CSS sebab CSS merupakan inti dari style website seperti pewarnaan dan beberapa animasi minor. Tapi cs...
Published at Rabu, 10 April 2013, Updated at Rabu, 10 April 2013
Reviewed by dr. on
Rating: 4.7

3 komentar :

Posting Komentar

# Hack Your Skills! to be Professional Mechatronics

Magnet : Teori Tentang Gejala Kemagnetan, Definisi, Sifat, dan Implementasinya

2 komentar
Kenapa kompas bisa menetukan utara dan selatan? Tahu kenapa mikrofon bisa berbunyi? jawabnya adalah karena adanya magnet pada perangkat tersebut. Karena magnet dan listrik merupakan komponen penting dalam mekatronika, maka kali ini kita akan mengulas tentang magnet, yaitu bagaimana sebenarnya magnet, apa definisinya, bagaimana sifatnya, dan contoh implementasinya dalam kehidupan sehari-hari.

Magnet : Teori Tentang Gejala Kemagnetan, Definisi, Sifat, dan Implementasinya


Pengertian Magnet
Kata magnet berasal dari bahasa Yunani yaitu magnes atau magnetis lithos yang berarti batu dari magnesia. Magnet merupakan benda yang dapat menarik benda-benda lain di sekitarnya seperti besi, baja, dan kobalt. Sifat kemagnetan suatu bahan ditentukan oleh spin elektron dan gerak elektron mengelilingi inti.

Spin elektron membentuk momen magnetik yang merupakan magnet-magnet kecil (magnet elementer). Spin elektron tersebut berpasangan dan tidak menimbulkan sifat kemagnetan, karena arah spinnya berlawanan sehingga saling meniadakan. Spin elektron yang tidak berpasangan bersifat sebagai magnet kecil. Sebuah magnet merupakan gabungan dari spin elektron (magnet-magnet kecil) yang arah spin (utara-selatan)-nya sama.


Teori Kemagnetan
Untuk menjelaskan tentang magnet, Weber telah mengmukakan teorinya yang disebut dengan hipotesis Weber yang isinya sebagai berikut :
  • Bahan magnetik terdiri atas atom-atom magnetik yang disebut magnet elementer. Setiap magnet memiliki kutub utara dan kutub selatan. Ketka magnet dipotong, maka potongan-potongan tersebut akan menjadi magnet baru yang juga mempunyai kutub utara dan kutub selatan. Jika pemotongan terus dilakukan hingga sekecil-kecilnya, maka akan terbentuk atom magnet. Atom magnet tersebut pun akan memiliki kutub utara dan kutub selatan.
  • Pada bahan yang belum menjadi magnet, maka magnet elementernya belum tersusun dengan teratur. Sehingga kutub utara sebuah magnet elementer terhubung dengan kutub selatan pada magnet elementer yang lain. Dengan demikian, magnet-magnet elementer pada bahan tersebut terangkai seperti lingkaran.
  • Pada bahan yang sudah menjadi magnet, magnet elementer sudah tersusun dalam barisan yang teratur dengan pola lurus. Kutub utara bertemu dengan kutub selatan dengan berurutan.
  • Magnet elementer besi mudah diarahkan sehingga besi lebih mudah dijadikan magnet. Akan tetapi sifat kemagnetan besi mudah hilang. Sedangkan magnet elemeter baja sangat sukar diarahkan, akan tetapi ketika sudah bisa diarahkan, sifat kemagnetannya akan bertahan lama.

Sufat-Sifat Magnet :
  • Memiliki dua kutub, yaitu kutub utara dan kutub selatan. Kutub utara adalah kutub magnet yang selalu mengarah ke kutub utara bumi. Kutub selatan adalah kutub magnet yang mengarah ke selatan bumi.
  • Kutub yang sama akan tolak-menolak. Kutub yang tidak sama akan tarik-menarik.

Implementasi Magnet dalam Kehidupan Sehari-hari :
  • Jarum kompas adalah dari magnet permanen.
  • Pintu kulkas memiliki magnet permanen agar selalu tertutup dan kedap udara, dengan itu menghindari pemborosan energi.
  • TV dan monitor komputer menggunakan elektromagnetik untuk menghasilkan gambar.
  • Mikrofon dan speaker menggunakan kombinasi magnet permanen dan elektromagnetik.
  • Media rekaman magnetik: Tape VHS biasa mengandung golongan tape bermagnet. Informasi yang memproduksi video dan suara dikodekan pada lapisan bermagnet pada tape.
  • Kaset audio kompak mengandung magnet untuk menghasilkan audio.
  • Kartu kredit, kartu debit, dan kartu ATM: Semua kartu ini memiliki jalur bermagnet pada sisi-sisnya. Jalur ini mengandung informasi yang dibutuhkan untuk menghubungi institusi keuangan pribadi dan menghubungkan dengan rekening bank.
  • Motor listrik dan generator: Motor listrik (seperti speaker) tergantung pada kombinasi eletromagnet dan magnet permanen, dan seperti speaker, mengganti energi listrik menjadi energi mekanis. Generator bertindak merubah energi mekanis ke energi listrik.
  • Transformer / trafo : Transformer merupakan perangkat yang mengkonversi energi listrik antara dua perangkat yang terpisah mengngunakan listrik melalui konektor magnet.
Demikianlah sekilas tentang teori kemagnetan, berikutnya kita akan bahas lebih luas lagi tentang magnet dan implementasinya. Doakan bisa menyempatkan waktu untuk nulis. :)

Written by ElangSakti
Magnet : Teori Tentang Gejala Kemagnetan, Definisi, Sifat, dan Implementasinya
Bahasan: Kenapa kompas bisa menetukan utara dan selatan? Tahu kenapa mikrofon bisa berbunyi? jawabnya adalah karena adanya magnet pada perangkat te...
Published at Rabu, 03 April 2013, Updated at Rabu, 03 April 2013
Reviewed by dr. on
Rating: 4.7

2 komentar :

Posting Komentar