Laman

Senin, 17 Desember 2012

e-book Laravel Documentation (PDF Format)

0 tanggapan
Salam bagi para kelana dunia maya.

Hari ini saya mo posting Laravel Documentation dalam format PDF.

Silakan diunduh, read from Google drive and download Laravel Documentation PDF

Rabu, 06 Juni 2012

Salah Kaprah Data Integer MySQL

3 tanggapan

Awalnya kita akan menyimpan data nilai matematika, rentang nilai adalah 0 s/d 100. Tipe data apa yang akan dipilih? Apakah INT(3)!

Jika YA, mari kita berkelana bersama…

Mengenal Ragam Jenis Interger

Di dalam MySQL dikenal jenis data numeric antara lain TINYINT, SMALLINT, MEDIUMINT, INT (atau INTEGER), BIGINT, FLOAT, DOUBLE, REAL, DECIMAL, NUMERIC, dan BIT. Sementara kita tinggalkan yang lain dan memusatkan kepada 5 yang pertama.

Menurut kitab MySQL Manual bab pembahasan Data Type Storage Requirements, ragam jenis interger dibedakan dari ruang penyimpanan (memori) yang digunakan. Rincian lihat tabel berikut,

Jenis

Memori Digunakan

TINYINT

1 byte

SMALLINT

2 byte

MEDIUMINT

3 byte

INT atau INTEGER

4 byte

BIGINT

8 byte

Kemudian, ruang penyimpanan ini yang menentukan rentang nilai angka yang bisa ditampung. Sebagai contoh, tipe data TINYINT menggunakan memori 1 byte = 8 bit. Sehingga rentang nilai yang dapat tampung TINYINT,

Rentang = 2n(bit) = 28 = 256.
Rentang nilai TINYINT adalah 256, berarti 0 s/d 255 (untuk unsigned/tanpa tanda) atau –128 s/d 127 (signed/bertanda). Lengkapnya bisa dilihat pada tabel berikut,

Jenis

Memori Digunakan

Rentang

 
TINYINT

1 byte = 8 bit

0 s/d 255 unsigned
    -128 s/d 127 signed
SMALLINT

2 byte = 16 bit

0 s/d 65535 unsigned
    -32.768 s/d 32.767 signed
MEDIUMINT

3 byte = 24 bit

0 s/d 16.777.215 unsigned
    -8.388.608 s/d 8.388.607 signed
INT/INTEGER

4 byte = 32 bit

0 s/d 4.294.967.295 unsigned
    -2.147.483.648 s/d 2.147.483.647 signed
BIGINT

8 byte = 64 bit

0 s/d 18.446.744.073.709.551.615 unsigned
    -9.223.372.036.854.775.808 s/d 9.223.372.036.854.775.807 signed

Kembali pada permasalahan menyimpan nilai matematika 0 s/d 100, tipe data apa yang seharusnya digunakan? Jika sebelumnya Ki Sanak memilih tipe data INT, artinya kolom tersebut dapat menampung rentang nilai 2 miliar+. Lebih tepat gunakan TINYINT.

Lantas, apa masalahnya? Toh tetap bisa disimpan kan?
Ya memang, tetapi kesalahan pilihan jenis data menyebabkan efiensi ruang penyimpanan terabaikan.

Tunggu, tunggu… Apa Makna (3) pada INT(3)?

Sebelumnya didefinisikan tipe data INT(3), bukan kah artinya INT dengan maksimal panjang 3 karakter???

Kerancuan Panjang Tampilan

Perlu cermati, bahwa tipe data integer tidak sama dengan tipe data varchar, yang mana nilai length membatasi panjang karakter. Pada VARCHAR(3), bila di-insert nilai “EMPU” akan tersimpan sebagai “EMP”. Tidak demikian pada INT(3), bila di-insert nilai 1986 maka akan tersimpan 1986. Ini dikarenakan nilai 1986 masih dapat ditampung dalam rentang 2 miliar.

Length 3 pada INT(3) adalah panjang tampilan. Ki Sanak dapat menggunakan opsi length ini jika menginginkan nilai integer “tampil” seragam. Opsi length ini digunakan bersama ZEROFILL. Sehingga untuk INT(3) ZEROFILL, akan tampil:

  • 007
  • 049
  • 100
  • 083

Ikhtisar

  1. Deklarasi length pada INT dan saudara-saudaranya tidak membatasi nilai yang dapat di-insert selama masih dalam rentang nilai penyimpanan.
  2. Deklarasi LENGTH pada INT tidak mempengaruhi memori yang digunakan untuk penyimpanan data.

Jumat, 13 April 2012

Timezone dan PHP 5.3.0+

7 tanggapan

PHP 5.3 ke atas sekarang membutuhkan pernyataan zona waktu, bila tidak maka akan menerbitkan peringatan E_WARNING seperti “It is not safe to rely on the system's timezone settings. Dst…”.

Untuk menyatakan zona waktu, bisa dilakukan dengan 3 cara. Mana yang Ki Sanak pilih tergantung kebutuhan dan selera.

  1. Menyisipkan fungsi date_default_timezone_set('Asia/Jakarta') pada awal skrip;
  2. Mengatur nilai date.timezone = 'Asia/Jakarta' pada php.ini; atau
  3. Menulis perintah php_value date.timezone 'Asia/Jakarta' pada berkas .htaccess.

Sedangkan zona waktu valid untuk wilayah Indonesia antara lain:

Semoga membantu, selamat berkarya.

Kamis, 01 Maret 2012

7 Tips Sehat Bekerja di Depan Komputer

0 tanggapan
Gambar dari Noldus
Untuk orang yang pekerjaannya sedikit berhubungan dengan computer masalah tersebut memang tidak terlalu mengganggu, tetapi jika untuk orang yang pekerjaannya tiap hari didepan computer, masalah tersebut akan sangat mengganggu. Untuk menghilangkan masalah tersebut memanglah sulit, tetapi jika untuk mengurangi masalah tersebut agar tidak mengganggu pekerjaan kita, saya akan memberi sedikit tips yang semoga dapat mengurangi rasa capek akibat bekerja didepan computer terlalu lama.
Tips nya sebagai berikut:

Biasakanlah bangun pagi diwaktu fajar. Karena menurut para pakar kesehatan menyatakan bahwa udara diwaktu fajar amat kaya akan oksigen, sehingga sangat bermanfaat untuk optimalisasi metabolisme tubuh yang berpengaruh terhadap vitalitas seseorang dalam aktifitasnya sehari penuh. Itulah sebabnya orang yang memulai aktifitas dengan bangun di waktu fajar biasanya menjalani hari dengan penuh kesegaran, semangat dan optimis.

Biasakanlah setelah bangun pagi anda meminum segelas air putih ditambah dengan sesendok madu asli. Karena menurut penelitian oleh para pakar kesehatan madu merupakan obat yang mengandung mikronutrisi dan sangat dibutuhkan oleh tubuh untuk mencegah atau melindungi tubuh dari berbagai penyakit.

Kemudian mandi dengan air dingin. Karena mandi menggunakan air dingin dapat mempengaruhi suasana hati atau perasaan kita menjadi positif, dan untuk menghindarkan kita dari rasa ngantuk pada saat bekerja.

Siapkan segelas air putih di meja kerja anda. Sebelum anda memulai bekerja dengan computer , siapkanlah segelas air putih di meja kerja anda, ini untuk memudahkan anda supaya tidak perlu pergi atau beranjak dari tempat duduk anad saat anda merasa haus di waktu sedang bekerja.

Atur posisi duduk anda. Kemudian posisikan mata anda sejajar dengan monitor computer, menurut penelitian, dengan memposisikan pandangan mata dan badan kita terhadap monitor computer dapat mengurangi rasa lelah pada mata dan punggung kita.

Kemudian minumlah air putih. Jika anda sudah bekerja cukup lama, sesekali tegakkan badan dan berdiri kemudian minumlah air putih yang telah anda siapkankan tadi. Dengan berdiri dan meminum segelas air putih dapat melencarkan peredaran darah kita yang sempat terhambat saat kita terlalu lama duduk.

Kemudian kembalilah duduk. Setelah itu buatlah tulisan diudara menggunakan kaki kanan dan dilanjutkan dengan kaki kiri. Hal ini dilakukan untuk menghilangkan rasa jenuh anda ketika terlalu lama bekerja.

Jumat, 24 Februari 2012

Variabel Dengan Atribut Dinamis Twig

0 tanggapan
Hari ini saya mengalami kesulitan mengakses method entitas pada mesin template Twig.
Idenya adalah bagaimana membuat macro template untuk meciptakan tabel dari suatu entitas.
Bila dituliskan pada bahasa PHP seperti ini,
$columns = array ('id'=>'ID', 'name'=>'Name', 'address'=>'Address');

// $entities adalah object dari hasil query select database
foreach ($entities as $entity)
{
 foreach($columns as $key=>$val)
 {
  echo $entity->$key;
 }
}
dalam sytax Twig menjadi,
{% set columns = {id: "ID", name: "Name", address: "Address"} %}

{# entities adalah object dari hasil query select database #}
{% for entity in entities %}
 {% for key in columns|keys %}
  {{ entity.key }}
 {% endfor %}
{% endfor %}

Apa yang salah dengan syntax twig tersebut?

Twig menerjemahkan {{ entity.key }} dengan key bukan sebagai variabel. Pada kasus entity adalah valid objek, key diperlakukan sebagai teks sederhana untuk indeks pencarian property atau method dalam objek entity. Baca lebih lanjut tentang variabel pada Twig
Implementasinya, Twig secara berurutan akan mencari properti entity::key, method entity::key(), entity::getKey(), entity::isKey(). Jika gagal ditemukan akan menyebabkan framework menerbitkan exception Twig_Error_Runtime.
Seorang pengelana bernama Big Joe mencari wangsit di padepokan StackOverflow menanyakan hal yang hampir sama, Accessing array values using array key from Twig.

Pencerahan

http://twig.sensiolabs.org/doc/functions/attribute.html
Semenjak Twig versi 1.2 telah ditambahkan fungsi attribut untuk mengakses atribut dinamis pada variabel {{ attribute(object, method) }}.
Sytax Twig diperbaiki menjadi,
{% set columns = {id: "ID", name: "Name", address: "Address"} %}

{# entities adalah object dari hasil query select database #}
{% for entity in entities %}
 {% for key in columns|keys %}
  {{ attribute(entity, key) }}
 {% endfor %}
{% endfor %}

Kamis, 23 Februari 2012

Doctrine Extension Bundle untuk Symfony2

0 tanggapan

Jika Ki Sanak menggunakan Symfony2 + Doctrine2 dan memerlukan tabel dengan struktur pohon bersarang (nested tree), Ki Sanak dapat menggunakan StofDoctrineExtensionsBundle.

StofDoctrineExtensionsBundle mengintegrasikan ekstensi Doctrine2 buatan Gediminas sebagai bundle Symfony2.

Cara instalasi StofDoctrineExtensionsBundle silakan Ki Sanak simak di kitab ini.