Category Archives: Pemrograman

Fat Model – Skinny Controller

Fat Model – Skinny Controller adalah design pattern (pola desain) dengan proses membuat logika pada script terletak pada model bukan pada controller. Controller hanya menjadi jembatan yang menghubungkan antara model dan view jika memang dibutuhkan data dari model atau operasi yang melibatkan database.

Bagi anda yang pertama belajar tentang konsep MVC (Model View Controller) sebagai konsep yang banyak dianut oleh beberapa framework ternama  , Saya rasa anda akan lebih mudah dalam memahami alur program yang anda buat dengan menggunakan pola ini. coba perhatikan ilustrasi berikut :

Contoh Script Fat Controller
 
 
Contoh Script Skinny Model
 

dari contoh script di atas anda bisa melihat kalau data data yang akan di-assign untuk kepeluan parameter dan logikanya di dilakukan pada controller, sedangkan pada modelnya hanya perintah untuk memeriksa saja dengan menggunakan bantuan active record. dengan mengingat controller juga erat kaitannya dengan routing (bahasa mudahnya pengalamatan aplikasi), menurut saya akan lebih rumit dalam pengecekan kesalahan (karena script yang terlalu banyak). Sekarang kita bandingkan dengan konsep fat model skinny controller


Contoh Script Skinny Controller
 

Contoh Script Fat Model

Pada contoh kedua data yang akan di-assign dan logika disimpan pada model oleh controller, setelah di olah di model baru dikirimkan ke controller untuk diteruskan. sehingga akan kelihatan sepertinya code bertumpuk di model, makanya disebut dengan Fat model. Menurut saya sendiri konsep ini sangat membantu saya ketika ada proses perbaikan terhadap code yang kita buat proses pengolahan data terjadi di dalam model dengan bantuan alur yang ada pada controller yang terlihat rapi dan ringkas (skinny) mempercepat saya dalam memperbaiki kesalahan yang terjadi saat program dijalankan. tentunya. Hal ini akan semakin luar biasa jika View dibuat hanya untuk menampilkan data dari contoller dan tidak terjadi banyak pengolahan variabel lagi di script View.

Sumber :

belajarPHP

SatriaSensei

Tutorial PHP – Tahun Kabisat

Tahun Kabisat adalah tahun Syamsiah dimana jumlah hari pada tahun tersebut terdiri dari 366 hari dengan menambahkan 1 hari setelah 28 Febuari.  Berikut ini adalah Syarat agar suatu Tahun dapat dikatakan tahun kabisat.

  1. Jika angka tahun itu habis dibagi 400
  2. Jika angka tahun itu tidak habis dibagi 400, tidak habis dibagi 100 akan tetapi habis dibagi 4, maka tahun itu merupakan tahun kabisat.
Pertama-tama kita akan membuat Program untuk menentukan Apakah Suatu Tahun merupakan tahun kabisat atau tidak dengan bantuan operator logika dan operator perbandingan.
Logika Dasar Menentukan Tahun Kabisat atau Bukan

Logika Dasar Menentukan Tahun Kabisat atau Bukan

Sedangkan untuk memunculkan n Tahun Kabisat Setelah Tahun ini kita dapat menggunakan Perulangan (Looping)

Menentukan daftar n Tahun Kabisat setelah tahun ini

Menentukan daftar n Tahun Kabisat setelah tahun ini

 

Penjelasan dari Script di atasa adalah sebagai berikut:

Nilai variabel tahun di set sama dengan nilai tahun sekarang dengan bantuan fungsi date(‘Y’), dengan Looping akan berhenti ketika nilai count dalam hal ini diartikan sebagai jumlah tahun kabisat mencapai 100, Pada setiap kali perulangan, nilai tahun ditingkatkan sebesar 1 (ditunjukan dengan increment variabel tahun). Jika syarat tahun kabisat terpenuhi maka akan ditampilkan jumlah tahun kabisat saat ini dan nilai tahun kemudian ditambahkan jumlah tahun kabisat saat ini sebesar 1 (ditunjukkan dengan increment variabel count). ketika syarat tahun kabisat terpenuhi 100 kali maka nilai count akan memiliki nilai 101 yang artinya sudah melewati batas Looping. Sehingga Looping dihentikan dan Program Selesai

Selamat Belajar dan Mengembangkan Kemampuan Anda
Imagine, Think, Learn and Share

Tutorial PHP – Bilangan Fibonacci

Barisan fibonacci adalah barisan yang berawal dari angka 0 dan 1, kemudian angka berikutnya didapat dengan cara menambahkan kedua bilangan yang berurutan sebelumnya. Dengan aturan ini, maka barisan bilangan Fibonaccci yang pertama adalah:

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946…

Secara matematis bilangan fibonacci dituliskan sebagai berikut

Fungsi Bilangan Fibonacci

Fungsi Bilangan Fibonacci

Sebelum mengerjakan program PHP untuk menghasilkan bilangan fibbonacci, mari kita pahami dulu sejarah singkat dari bilangan fibonacci. Sejarah singkat bilangan fibonacci yang saya temukan di Wikipedia menjelaskan sebagai berikut :

Berdasarkan buku The Art of Computer Programming karya Donald E. Knuth, barisan ini pertama kali dijelaskan oleh matematikawan India, Gopala dan Hemachandra pada tahun 1150, ketika menyelidiki berbagai kemungkinan untuk memasukkan barang-barang ke dalam kantong. Di dunia barat, barisan ini pertama kali dipelajari oleh Leonardo da Pisa, yang juga dikenal sebagai Fibonacci (sekitar 1200), ketika membahas pertumbuhan ideal dari populasi kelinci.

 

Dari Sejarah itu kita mendapat pengetahuan baru, ternyata Fibonacci bukanlah nama asli melainkan sebuah nama beken dari Mendiang Leonardo de Pisa. Bisa jadi Phytagoras juga bukan nama sebenarnya bukan?

 

Mari kita bahas bagaimana membuat program untuk menghasilkan bilangan Fibonacci.

A. Program Untuk menghasilkan bilangan Fibonacci sampai bilangan fibonacci ke-n

Capture11

 

 

B. Program Untuk menghasilkan bilangan Fibonacci sampai bilangan fibonacci ke-n

Bilangan Fibonacci sampai bilangan fibonacci ke n

Bilangan Fibonacci sampai bilangan fibonacci ke n

 

C. Program Fungsi Menentukan bilangan ke n dari deret fibonacci

Fungsi Menentukan bilangan ke n dari deret fibonacci

Fungsi Menentukan bilangan ke n dari deret fibonacci

 

Sumber :

Wikipedia

 

Enkripsi dan Dekripsi PHP Sederhana dengan base64

 

Berdasarkan definisi dari wikipedia, Enkripsi adalah proses mengamankan suatu informasi dengan membuat informasi tersebut tidak dapat dibaca tanpa bantuan pengetahuan khusus. sedangkan dekripsi adalah proses kebalikan dari enkripsi yaitu proses mendapatkan informasi yang dienkripsi.

Proses enkripsi dan deskripsi sangatlah penting ketika kita membuat suatu sistem aplikasi dengan login authentification, misalnya aplikasi perpustakaan yang mensyaratkan user untuk login aplikasi.
Begitu pentingnya kombinasi password dan username menggambarkan seolah-olah kombinasi kedua item tersebut adalah identitas si pengguna sendiri. sebagai penggambarannya misalnya saya adalah A, saya mempunyai akun Facebook demikian pula teman saya B. Dalam akun jejaring sosial facebook saya adalah A karena saya masuk (login) dengan kombinasi password_A dan username_A, Sebaliknya saya adalah B di facebook jika saya masuk dengan kombinasi password_B dan username_B.
Pengamanan dengan metode enkripsi oleh sistem aplikasi diterapkan dapat pada username dan password maupun hanya passwordnya saja. hal ini diupayakan agar bilamana ada hacker atau orang yang tidak diinginkan masuk ke sistem basis data (database) sistem anda, tidak serta merta mendapatkan username dan password akun sistem aplikasi anda. Saya contohkan dengan gambar berikut:

Dari gambar di atas ketika saya masuk ke sistem database saya akan langsung mengetahui username dan password akun sistem aplikasi yang saya buat. Hal ini akan berbeda jika saya melakukan enkripsi misal pada gambar di bawah ini :

Pada gambar di atas saya melakukan enkripsi dengan fungsi PASSWORD( ) yang merupakan fungsi bawaan dari mysql. sehingga ketika ada user masuk dia tidak serta merta mendapatkan username dan password user. Namun dalam proses enkripsi ingat bahwa bisa saja pelaku menebak teknik enkripsi yang kita lakukan (ini lain halnya dengan pelaku yang dapat mengakses script program aplikasi kita).

Kali ini saya akan memberikan contoh melakukan enkripsi dengan fungsi base64 (base64_encode dan base64_decode : Silakan klik link untuk mendapatkan penjelasan lebih lanjut dari situs php.net )
 
  $string="PasswordKu";
  $string_enc=base64_encode($string);
  echo $string_enc;

Pada Script di atas kita  akan mendapatkan hasil “UGFzc3dvcmRLdQ==” untuk mendapatkan kembali nilai “PasswordKu” kita dapat membalikkan proses enkripsi tersebut dengan fungsi base64_decode, berikut contohnya

 
  $string="PasswordKu";
  $string_enc=base64_encode($string);
  $string_dec=base64_decode($string_enc);
  echo $string_dec;  

Dengan demikian kita sudah dapat melakukan enkripsi dan dekripsi, enkripsi dan dekripsi sangatlah penting jika password yang “lupa” dapat dikembalikan ke user dengan password yang sama misalnya melalui email. Namun beberapa aplikasi terkadang membuat “Reset” password sehingga fungsi dekripsi terkadang tidak dianggap perlu, cukup dengan enkripsi tangguh saja, ketika user lupa user dapat mereset menjadi  Password baru tanpa mengetahui password lama user tersebut.

Berikut contoh manipulasi fungsi enkripsi dan dekripsi

 function enc_pass($data){
  $string1="12234";
  $string2="12346";
  $md5_string1=md5($string1);
  $md5_string2=md5($string2);
  $text1=substr($md5_string1, 0,4);
  $text2=substr($md5_string2, 0,4);
  $enc=base64_encode(base64_encode($text1.$data.$text2));
  return $enc;
 }

 function dec_pass($data){
  $dec1=base64_decode(base64_decode($data));
  $strlen=strlen($dec1);
  $strlenkey=$strlen-8;
  $pass=substr($dec1, 4,$strlenkey);
  return $pass;
 }

Selamat Belajar dan Memperluas Pengetahuan Anda

Imagine, Think, Learn and Share

Scratch MIT – Pengenalan Awal

Scratch adalah bahasa pemrograman visual berbasis blok kode yang didesain oleh Kindergarden Lifelong Learning Group di MITuntuk memperkenalkan konsep dasar pemrograman dalam bahasan yang interaktif dan menyenangkan. Pada awalnya Scratch ditujukan kepada anak-anak agar dapat menanamkan pemahaman konsep dasar Pemrograman dengan Menyenangkan. Namun seiring dengan perkembangannya Scratch memiliki fitur-fitur yang dapat mendukung pemodelan dan Input Sensor yang disediakan semakin memantapkan Scratch sebagai media pemrograman baru. Dalam bahasa pemrograman Scratch, objek (sprites) dimanipulasi dalam background (stage) dengan menggunakan berbagai script. Setiap sprite memiliki script yang mengontrol interaksinya dengan sprite yang lain.

Scratch ; Aplikasi yang dikembangkan MIT

Perangkat lunak ini menggunakan lisensi opensource MIT sehingga dapat digunakan secara gratis dan bebas oleh siapa saja. Beberapa aplikasi bersumber dari source Scratch diantaranya adalah BYOB dan SNAP yang dikembangkan oleh Berkerley University. Perbedaan yang mendasar jika dibandingkan dengan program konvensional, kode pada program Scratch disusun dengan menggunakan gambar. Tipe penyusunan kode yang mirip dengan permainan lego ini diharapkan dapat memudahkan pembuat aplikasi pemula maupun yang sudah mahir.

Berikut ini Aplikasi Fisika yang dibuat dengan bantuan Scratch

Program Simulasi dengan Scratch

1 2