[Ubuntu] Cara Upgrade Versi PHP ke 5.6 di Ubuntu 14.04

  1. Tambahkan repository dan update
  2. sudo add-apt-repository ppa:ondrej/php

  3. sudo apt-get update

  4. Install PHP 5.6
  5. sudo apt-get install -y php5.6 php5.6-mcrypt php5.6-mbstring php5.6-curl php5.6-cli php5.6-mysql php5.6-gd php5.6-intl php5.6-xsl php5.6-zip libapache2-mod-php5.6

  6. Matikan module php sebelumnya
  7. sudo a2dismod php5

  8. Aktifkan module php module versi sekarang
  9. sudo a2enmod php5.6

  10. Restart service apache
  11. sudo service apache restart

Referensi :

https://stackoverflow.com/questions/40567133/cannot-add-ppa-ppaondrej-php5-5-6

[MySQL] Cara Melakukan Pencarian Like IN atau Multi Like dalam Query

Untuk melakukan pencarian like yang multi umumnya seperti ini:

SELECT * FROM `jobposition` where name like ‘%supervisor%’ or name like ‘%manager%’ or name like ‘%director%’ or name like ‘%partner%’

Ternyata bisa disimple kan dengan :

SELECT * FROM `jobposition` where name REGEXP  ‘supervisor|manager|director||partner’

 

Referensi:

https://stackoverflow.com/questions/4172195/mysql-like-multiple-values

https://forums.mysql.com/read.php?10,392332,392950#msg-392950

[MySQL] Contoh Penggunaan If Else di Query MySQL

 

SELECT employees.fullname Fullname, departement.name Departement, jobposition.name Position, overtime.duration, overtimeplan.id,

IF(overtimeplan.id != NULL,    ‘planned’,       ‘not planned’    ) AS isplanned 

FROM `overtime`inner join net_hrd.employees on overtime.employees_id=employees.id

inner join net_hrd.departement on employees.departement_id = departement.id

inner join net_hrd.jobposition on employees.jobposition_id = jobposition.id

LEFT JOIN overtimeplan on overtime.employees_id=overtimeplan.employees_id and overtime.date=overtimeplan.datewhere overtime.date>=’2018-01-01′

 

Referensi :

https://stackoverflow.com/questions/8763310/how-do-write-if-else-statement-in-a-mysql-query

http://www.easysolutionweb.com/mysql-tutorials/how-to-use-if-and-else-in-mysql

[Pemrograman] Membuat Helper Function di Laravel 5

Buat yang sudah terbiasa dengan Codeigniter dan merasakan manfaatnya helper, akan merindukan mempunyai helper di Laravel.

Bagaimana membuatnya :

 

  1. Buat file helper.php
  2. Buat function yang kita inginkan
  3. Simpan di folder config/helper.php  (saya memakai laravel 5.4)
  4. Buka file composer.json dan masukkan nama file ke dalam bagian autoload

 “autoload”: {

“classmap”: [            “database”        ],

“psr-4”: {            “App\\”: “app/”,  “Modules\\”: “modules/”       },

“file”: [“app/helper.php”]

},

4. Jalankan autoload dengan cara

composer dumpautoload

5. Helper siap digunakan, function2 siap digunakan

 

Sumber: Medium.com/teknomuslim

[Pemrograman] Cara Meredirect http ke https

Untuk meredirect dari http ke https maka tambahkan script berikut di .htaccess:

 

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

 

Misal kita sudah ada RewriteEngine On di .htaccess maka tidak perlu ditambahkan lagi

Cukup tambahkan yang di bawahnya.

 

Referensi :

https://id.godaddy.com/help/redirect-http-to-https-automatically-8828

Git – Untuk Keluar dari Editor Vi

Jika kita ingin commit ke Git dan masuk ke editor vi maka setelah kita menulis keterangan di vi dan ingin menyimpan dan keluar, menggunakan :

    1. Tekan esc
    2. Tekan : x  (tanpa spasi antara : dan x)

 

Dan apabila kita inign keluar tanpa menyimpan

  1. Tekan esc
  2. Tekan :q!

Referensi:

https://stackoverflow.com/questions/13507430/git-commit-in-terminal-opens-vim-but-cant-get-back-to-terminal

[Laravel] Mengatasi Error : No supported encrypter found. The cipher and / or key length are invalid.

Untuk mengatasi error di atas maka caranya adalah :

php artisan key:generate

Apabila perlu ada .env maka caranya:

cp .env.example .env

 

Referensi:

https://laravel.io/forum/06-09-2015-no-supported-encrypter-found-the-cipher-and-or-key-length-are-invalid

 

 

[Pemrograman] Mengatasi Git Error :fatal: early EOF fatal: index-pack failed

Saya ada kasus saat git error: yaitu

fatal: early EOF

fatal: index-pack failed

Maka untuk mengatasinya adalah:

git config –global pack.packSizeLimit 2047m
git config –global pack.windowMemory 2047m

git config –global pack.deltaCacheSize 2047m

git config –global core.compression 9

git config –global core.packedGitLimit 512m
git config –global core.packedGitWindowSize 512m

 

Referensi:

https://stackoverflow.com/questions/1943914/git-clone-fails-with-index-pack-failed

Cara Mengecek Versi Laravel

Laravel - Mahrizal

Laravel Logo

 

Untuk mengecek versi laravel maka gunakan :

php artisan –version

Contoh :

laravel

 

Referensi :

http://www.elcoderino.com/check-laravel-version/

Kelebihan dan Kekurangan Laravel

Laravel - Mahrizal

Laravel

 

Kelebihan dan kekurangan Laravel

Temen2 yang ingin belajar framework PHP maka Framework ini layak untuk dipelajari dan digunakan.

Framework ini langsung populer begitu framework Codeigniter colaps waktu itu.

Meski sekarang Codeigniter diteruskan kembali oleh suatu universitas namun kabar Codeigniter yang tidak disupport oleh EllisLab lagi membuat para programmer mencari Framework alternatif, diantaranya Laravel.

Laravel dari segi kesulitan memang sedang namun menjanjikan fitur yang powerful. Kesulitan dalam arti pintu gerbang untuk memahami pertama kali. namun jika sudah paham maka justru malah memudahkan bahkan rasanya tidak mau kembali lagi ke Codeigniter, karena lebih efisien dalam pembuatannya.

Kelebihan Laravel

  1. Dokumentasi yang lengkap

 

Laravel mempunyai dokumentasi yang lengkap dari mulai install sampai fitur2 yang lengkap.

 

Di dokumentasinya kita bisa membaca uraian fitur2nya dengan detail beserta contoh penggunaannya.

 

Kita bisa mengakses dokumentasi yang lengkap di website nya : https://laravel.com/docs/5.5

Dokumentasi laravel tidak hanya berupa teks tapi juga berupa tutorial video yang bisa diakses di Laracast. https://laracasts.com/

Laracast menyediakan video-video tutorial, ada yang gratis ada pula yang berbayar.

 

  1. Komunitas yang besar

Laravel mempunyai komunitas yang besar sehingga saat kita mendapatkan kendala kita bisa bertanya ke komunitas.

Ada forum laravel yang membahas problem-problem laravel di https://laravel.io/forum

Aktifnya diskusi di forum laravel menunjukkan besarnya komunitas laravel.

Termasuk di stackoverflow tempat bertanya segala permasalahan programming, banyak ditemui permasalahan tentang laravel dan banyak pula yang menjawab.

  1. Fitur Yang membuat efisien

Laravel menyediakan fitur yang membuat pembuatan aplikasi menjadi lebih efisien yang tidak didapati oleh Codeigniter. Contohnya adalah Eloquent ORM. Laravel mendukung Eloquent ORM yang memudahkan query database bahkan join table.

  1. Cara Install Yang Modern

Install Laravel ialah menggunakan Composer.

composer create-project –prefer-dist laravel/laravel blog

Apa itu composer?

Composer menurut web nya ialah dependency manager for php.

Bahasa mudahnya composer adalah tool yang berfungsi untuk mendownload software untuk keperluan php.

Layaknya npm yang dimiliki nodejs.

Bila belum mempunyai composer maka download terlebih dahulu di situs  : https://getcomposer.org/

  1. Fitur yang Wah

Laravel ialah framework yang powerful sehingga menyediakan fitur-fitur yang wah dan lengkap.

Kita akan belajar hal-hal baru yang tidak ada di Codeigniter.

Bagi yang migrasi dari Codeigniter bisa dipastikan akan ternganga dengan wah nya fitur Laravel.

 

Kekurangan Laravel

 

Kurang lengkap kiranya jika saya tidak menyertakan kekurangan Laravel sebagaimana setiap sesuau, setiap kelebihan selalu ada kekurangan.

Kekurangannya ialah :

  1. Tidak Mudah memahami untuk pertama kali

Buat para beginner yang memahami laravel relatif akan kesulitan. sebab laravel tidak semudah codeigniter untuk dipahami. untuk masuk ke pintu gerbang nya diperlukan fokus agar bisa memahami laravel. Terlebih buat yang baru belajar Framework. Akan terbantu bila pernah belajar Framework sebelumnya seperti Codeigniter.

jangankan untuk memahami alurnya, untuk install pertama kali pun kalau para beginner bisa dibuat bingung. karena cara install yang modern

  1. Update versi terlalu cepat

Update Laravel cepat bahkan menurut saya terlalu cepat. Sehingga bagi yang tidak mengikuti perkembangan laravel bisa ketinggalan jauh. Dan perubahan fitur nya pun terbilang signifikan.

Terlebih yang dari versi 4 ke versi 5, sangat signifikan perubahannya baik fitur maupun struktur folder nya.

Versi 5 pun cepat update versinya, sekarang saat saya menulis ini sudah sampai versi 5.5

  1. Install di Server tidak semudah Codeigniter

Bila Install codeigniter di ftp tinggal upload dan ubah konfigurasi database, maka install Laravel tidak semudah itu.

Apabila kita sewa hosting di tempat lain, kita harus punya akses putty ke server agar bisa install composer.

Untuk apa composer? Untuk kita menjalankan perintah

composer update

Kenapa kita jalankan perintah itu, karena beda lingkungan OS beda sistem laravel.

Laravel di windows beda dengan Laravel di Linux

untuk itu jika kita membuat aplikasi di windows maka saat di upload di server Linux kita perlu jalankan perintah composer update di root aplikasi agar laravel bisa menyesuaikan lingkungan OS yang baru.

  1. Relatif lebih berat

Laravel relatif lebih berat bila dibanding dengan framework Codeigniter.

Hal ini wajar karena laravel meload banyak file dan asset untuk menjalankan aplikasinya.

Tapi hal ini sudah ditanggulangi oleh Laravel 5 yang sudah menyederhanakan dari laravel versi 4 yang berat.

The Real Programmer VS Programmer Instant

Apa yang membedakan The Real programmer atau programmer sejati dengan programmer instant?

Tidak lain adalah proses dan hasilnya

The Real Programmer akan melalui proses belajarnya step by step, dia pantang dengan short cut atau jalan pintas. Sehingga The Real programmer punya logika kuat punya problem solving yang kuat dan punya skill yang tidak diragukan.

Sementara Programmer instant adalah programmer copy paste, dia tidak tahu menahu alurnya, dia hanya mengambil source code dari orang lain kemudian memodifikasi. programmer instant tidak akan pernah berkembang kemampuannya. Saat membuat aplikasi dia akan mengambil yang sudah jadi kemudian dimodifikasi. alasan utamanya satu lebih cepat dan efisien di waktu. dia tidak mau membuat aplikasi dari nol, dalam pikirannya hanya bagaimana aplikasi jadi lebih cepat dan menghasilkan uang. dia tidak punya jiwa idealis sebagai programmer.

Hal ini bukan berarti tidak boleh mengambil source code orang lain, bukan pula harus membuat aplikasi dari nol. semua tergantung kasus. Untuk kasus standar dan , oke lah pakai yang sudah jadi… ambil wordpress misal… tapi kalau sudah kasus yang memungkinkan ada perkembangan lebih jauh dan custom maka buat dari nol, pakai framework yang powerful, pakai framework tidak apa2 malah bagus.

 

 

CodeIgniter HMVC – Memperbaiki Error Message: Call to undefined method MY_Loader::_ci_object_to_array()

Untuk memperbaiki Error di atas maka :

  1. Buka application/third_party/MX/Loader.php
  2. Cari function  public function view($view, $vars = array(), $return = FALSE) Cari… (Line 300)

return $this->_ci_load(array(‘_ci_view’ => $view, ‘_ci_vars’ => $this->_ci_object_to_array($vars), ‘_ci_return’ => $return));

Ganti dengan :

if (method_exists($this, ‘_ci_object_to_array’))
{
return $this->_ci_load(array(‘_ci_view’ => $view, ‘_ci_vars’ => $this->_ci_object_to_array($vars), ‘_ci_return’ => $return));
} else {
return $this->_ci_load(array(‘_ci_view’ => $view, ‘_ci_vars’ => $this->_ci_prepare_view_vars($vars), ‘_ci_return’ => $return));
}

Selesai…

 

Referensi : http://stackoverflow.com/questions/41557760/codeigniter-hmvc-object-to-array-error

Laravel Error : ErrorException in Filesystem.php : file_put_contents failed to open stream: Permission denied

Saya mendapatkan error di atas saat saya upload aplikasi Laravel saya dari local windows ke server Ubuntu.

Bagaimana Solusinya :

Masuk ke directory root aplikasi kita, kemudian jalankan perintah ini di terminal :

chmod -R gu+w storage

chmod -R guo+w storage

php artisan cache:clear

Done….

It works for me…..

Aplikasi saya bisa berjalan dengan baik….

Referensi : http://stackoverflow.com/questions/29169892/errorexception-in-filesystem-php

Mengatasi Error Ajax Jquery Internal Server Error 500

Saya mengalami error ini dari kemarin, saat membuat ajax pakai jquery. saya memakai laravel di server sidenya. setelah browsing sana sini akhirnya ketemu juga caranya.

Langsung aja ya

  1. Tambahkan script berikut di kode html atas :

<meta name=”csrf-token” content=”{{ csrf_token() }}” />

2. Tambahkan script berikut di Ajax nya :

$.ajaxSetup({
headers: {
‘X-CSRF-TOKEN’: $(‘meta[name=”csrf-token”]’).attr(‘content’)
}
});

Selesai…..

Adapun kode saya akhirnya seperti ini  :

$(function(){
$(‘#btn-add-copy’).click(function(e){
e.preventDefault();
var url = “{{ url(‘user/admin/bookCollection/manage/addQuantityCopy’) }} “;
var qty = $(‘.copy_quantity’).val();

$.ajaxSetup({
      headers: {
     ‘X-CSRF-TOKEN’: $(‘meta[name=”csrf-token”]’).attr(‘content’)
    }
});

$.ajax({
url : url,
type : “POST”,
data : “qty=”+qty,
error : function(xhr, ajaxOptions, thrownError){
console.log(xhr.status);
console.log(xhr.responseText);
console.log(thrownError);
},
success : function(data){
alert(data);
}
});
});

Alhamdulillah berhasil juga kode saya…..

 

Referensi saya :

https://laravel.io/forum/01-30-2015-laravel5-tokenmismatchexception-in-verifycsrftoken

https://laravel.com/docs/5.0/routing#csrf-protection

Cara Convert String ke Date MySQL

Untuk convert dari tipe data String ke Date di MySQL maka bisa menggunakan syntax di bawah ini :

STR_TO_DATE

Contoh :

STR_TO_DATE(’12/31/2011′, ‘%m/%d/%Y’)

Contoh query di table:

SELECT STR_TO_DATE(kolom_tanggal, ‘%m/%d/%Y’) FROM table

Maka hasilnya akan menjadi format :

2016-11-30

Adapun settingan apakah %m/%d/%Y ataukah %d/%m/%Y kita sesuaikan dengan susunan tanggal yang saat itu sebagai string , apakah tanggal dulu ataukan bulan dulu.

 

Referensi :

http://stackoverflow.com/questions/5201383/how-to-convert-a-string-to-date-in-mysql

 

12 Alasan Kenapa Perlu Belajar GIT Untuk Menjadi Programmer Advance

gitscm

git-scm.com situs resmi git

GIT sebagai software dan konsep version control sangat membantu para programmer di dalam mengembangkan project2 nya. Siapa yang ingin project nya rapi maka wajib belajar git.

Apa itu GIT?

Git adalah software untuk membantu kita mengontrol versi2 dari project kita. Tidak mungkin kita membuat sistem sekali jadi tanpa ada modifikasi. Tidak mungkin kita membuat website tanpa revisi. Baik sistem ataupun website sering ada perbaikan2, bahkan dengan perbaikan2 itulah sistem kita menjadi up to date. website kita tidak ketinggalan zaman.

Kenapa perlu belajar?

Karena siapapun kita tentu ingin menjadi programmer yang profesional. Yang kemampuan teknikal nya advance melebihi rata2. Dan diantara skill yang wajib dikuasai programmer advance adalah tahu versi kontrol. Buat apa punya sistem banyak tapi tidak dimaintain dengan baik. Buat apa sering perbaikan fitur tapi tidak punya history dan dokumentasi sistem.

Baik, saya mengumpulkan setidaknya ada 12 alasan kenapa kita perlu belajar GIT

  1. History Coding dan File ada recordnya

Ini yang utama. Programmer yang baik selalu punya dokumentasinya atau history nya. Seperti yang sudah saya singgung di atas, mustahil coding tanpa ada perubahan. baik itu penambahan fitur atau perbaikan bug, selalu coding ada perubahan. dan programmer yang baik akan punya historynya. Agar ke depan mudah maintenancenya. agar ada recordnya ada bug apa saja selama ini, ada perbaikan fitur apa saja selama ini.

Bahkan tidak tanggung2 GIT mencatat setiap line kita yang ada perubahan. GIT tahu line mana yang kita tambah dan line mana yang kita hapus.

2. Tidak perlu merename file untuk membuat backup

Sebelum mengenal GIT, saya selalu merename file sebagai backup. Contoh index-1.php  , atau lebih spesifik index-15-11-2016.php.

Namun setelah mengenal git saya tidak perlu selalu melakukan hal itu. Sebab sudah ada record perubahannya.

3.  Bisa kembali ke perubahan yang sebelumnya bahkan yang paling awal

GIT ibarat mesin waktu yang mana kita bisa kembali ke coding versi sebelumnya bahkan yang paling awal. Setelah kembali kita pun bisa kembali ke coding versi sekarang. Versi berapapun kita ingin kembali kita bisa , kita akan dibuat ternganga karena kita bisa melihat codingan sebelum kita memodifikasi sejauh ini.

4. Bisa membuat versioning dengan rapi

Apa itu Versioning?

Versioning adalah pembuatan versi untuk project kita. Idealnya sebuah sistem ada sistem versioning. Sampai versi berapa sistem kita sekarang. apa saja perubahan dari versi sebelumnya. sehingga kita bisa tahu sejarah perjalanan sistem kita.

5.  Bisa membuat cabang untuk memodifikasi tanpa menyentuh versi asli

Mau memodifikasi tapi tidak mau menyentuh coding yang sudah fix saat ini? Buat cabang dan lakukan di modifikasi di cabang tersebut. Ada fitur baru ? Buat cabang . ada bug dan butuh perbaikan? buat cabang . Kita bisa lakukan itu tanpa menyentuh coding asli. sehingga coding yang stabil aman. Bila sudah selesai modifikasi , fitur baru sudah jadi dan kita ingin menggabungkan, tinggal gabungkan dengan perintah git. enak simple.

6. Bisa Copy paste tanpa Flashdisk 

Kerja team dan kita ingin melihat codingan tim kita? Push atau upload projectnya di server dan kita bisa menarik setiap saat. Kita bisa mengcopy project punya tim kita tanpa flashdisk cukup perintah git. Project akan tertarik dan seolah paste di komputer kita.

Sebaliknya bila kita ingin mengshare project kita, cukup push atau upload ke server, dan minta tim kita untuk menarik project kita.

Tidak hanya project nya yang kita ambil namun history perubahan nya juga akan kita ambil juga.

7. Bisa review tanpa ada kendala jarak

Setelah kita bisa mendapatkan file project dari tim kita, tentu kita mereview setiap saat dan di mana saja.

8. Bisa memodifikasi file dalam waktu bersamaan

Bila kita sedang kita kerja tim dan kita ingin memodifikasi bersamaan maka itu bisa dilakukan.

9. Ketahuan Siapa yang mendedit dan mana yang diedit

Kita akan tahu tim siapa yang mengedit, kapan edit dan bagian mana yang diedit.

10. Project lebih rapi dan mudah dimaintenance

Hasil dari semua ini ialah project kita menjadi lebih rapi dan mudah dimaintenance. kita tidak tahu ke depan apakah akan ada penambahan tim lagi atau tidak. sehingga jika project lebih rapi tim kita yang baru akan lebih cepat beradaptasi dengan coding kita.

11. Ada Hosting Gratis Untuk GIT

Kabar baiknya kita belajar GIT jika kita tidak punya server ialah ada penyedia hosting gratis, yang populer ada 2, Github dan Bitbucket.

Apa bedanya Github dan Bitbucket?

github.png

github.com ajang sharing project sesama programmer

Github lebih unggul kalau kita mau share ke programmer lain di belahan dunia lain. Misal kita punya project untuk kita share free, maka github menjadi pilihan utama. Sudah banyak sekali programmer yang menggunakannya. Bisa dibilang github adalah ajang share para programmer.

bitbucket

Bitbucket.com, memudahkan kerja tim dengan private project

Sedangkan bitbucket kurang lebih sama, hanya bitbucket punya fitur khusus yakni bisa disetting menjadi private. Ini sangat menguntungkan kita untuk kerja tim. Saya sendiri memakai bitbucket dengan tim saya untuk hosting git. karena bisa disetting private tidak untuk dishare.

Sebenarnya di github ada juga settingan buat private tapi bayar. sedangkan di bitbucket free, meskipun dibatasi berapa project free nya, ya namanya free ya, tapi  ya mendinglah buat kita belajar.

12. Project2 kelas Besar pun Menggunakan GIT

Yang terakhir ialah Perusahaan kelas besar pun menggunakan git untuk menghandle project2 besar mereka. sebutlah google, facebook, twitter, microsoft dsb.

git.png

Perusahaan2 yang menggunakan GIT

Apa maksudnya situs git mencantumkan perusahaan2 besar di atas? Tentu agar kita tidak ragu mencoba dan menggunakannya.Wong perusahaan besar saja pakai, masa kita ngga?.

Yap inilah 12 Alasan kenapa kita perlu belajar git menurut versi saya sendiri.

Thanks

15 November 2016

Mahrizal

 

 

 

 

 

 

 

Apa itu Framework dalam Bahasa Pemrograman

Framework adalah kerangka kerja. Seperti kita diajari sewaktu sekolah saat ingin membuat tulisan karangan atau artikel kita butuh kerangka terlebih dahulu. pertama pembukaan, isi, terakhir penutup. setelah kerangka dibuat selanjutnya tinggal dikembangkan berdasarkan kerangka yang sudah kita buat. Dengan adanya kerangka kita lebih punya pakem tidak keluar dari tema dalam mengarang, menjadi terarah, rapi dan berkualitas. Dengan adanya kerangka kita menjadi lebih mudah dalam mengarang.

Sama halnya dalam pemrograman saat kita ingin membuat program, aplikasi, website, sistem kita butuh yang namanya kerangka. Dengan Framework kita bisa membuat sistem lebih rapi, lebih terorganisir, dan lebih mudah dimaintenance untuk jangka panjang.

Dalam bahasa pemrograman khususnya PHP kita mengenal Framework seperti Laravel, CodeIgniter, Phalcon, YII, Symfony, Zend dsb. Dengan menguasai Framework kita level kita akan naik dari pemrograman PHP murni ke pemrograman Framework yang mana common atau umum dipakai orang lain atau dijadikan standar.

Secara umum Manfaat Menggunakan Framework ialah :

1.  Mempercepat Pembuatan Aplikasi

Dalam Framework kita sudah disediakan folder2 mana untuk controller, model, dan tampilan atau view nya. kita tak perlu membuat dan mengelompokkan folder2 sendiri. sudah diatur oleh framework.

Dalam Framework pula sudah disediakan konfigurasi untuk koneksi ke database, kita tinggal mengisi konfigurasinya, begitu kita isi username dan password database kita langsung bisa tersambung , as simple as that. tanpa kita nulis lagi mysqli_connect lagi dsb.

Begitupun saat kita ingin membuat pagination, atau halaman , dari framework sudah menyediakan kita tinggal memanggil class pagination nya. tanpa kita buat sendiri.

Termasuk session , cache dan lain sebagainya yang biasanya kita butuhkan dalam aplikasi sudah tersedia di framework, kita tinggal panggil dan pakai. tanpa kita capek2 membuat sendiri dari nol.

2. Memudahkan Maintenance dalam jangka panjang

Suatu program tidak mungkin ada perubahan. program yang baik selalu ada perubahan dari waktu ke waktu. karena program yang baik selalu menutupi kelemahan dan selalu menjawab kebutuhan seiring berjalannya waktu. Untuk itu program pasti ada perubahan.

Dengan framework kita bisa lebih mudah melakukan maintenance atau modifikasi. Kita manusia banyak lupa akan dipermudah dengan framework jika kita lupa pernah memodifikasi di suatu modul.

Beda dengan kita buat sendiri program kita, setahun kemudian kita buka program kita , kita lupa maklum kita manusia, dan untuk memodifikasinya kita butuh waktu lagi untuk membaca alur programnya, beda dengan memakai framework yang sudah jelas alurnya, kita lebih cepat memodifikasi program kapanpun meskipun kita lupa kapan terakhir kali kita memodifikasinya.

3. Mudah untuk kerja Tim

Bayangkan bila kita tidak memakai framework, masing2 programmer membuat coding dengan style sendiri2, maka saat orang yang membuat program keluar dan kita ingin memodifikasi kita bingung perlu waktu lama untuk bisa memahami alur programnya. Bisa keriting kita memodifikasi program orang lain yang tanpa framework. Untuk itulah manfaat kita memakai framework, agar ada pakem dan standar sehingga mudah untuk dimaintenance dan dimodifikasi oleh kita maupun orang lain. Kita tidak perlu keriting bila diminta memodifikasi program orang lain yang menggunakan framework karena kita sudah tahu standarnya.

 

MySQL : Query Cara Mencari Record yang double atau lebih dari satu dalam table

Untuk mencari record yang double atau lebih dari satu di dalam suatu table bisa menggunakan query sebagai berikut :

SELECT ip_address, COUNT( ip_address )
FROM `visitor_log`
GROUP BY ip_address
HAVING COUNT( ip_address ) >1

ip_address adalah contoh kolom yang unique yang ingin kita cari double nya , sedangkan visitor_log adalah contoh table nya.

Referensi :

http://www.w3schools.com/sql/sql_having.asp

 

Laravel Eloquent Mengambil Satu Kolom atau Kolom Tertentu

Kalau kita ingin mengambil satu kolom atau kolom tertentu dalam Eloquent Laravel caranya ialah dengan menambahkan kolom di belakang fungsi relationship.

Contoh :

public function user(){

return $this->hasOne(‘App\User’)->select(‘fullname’);

}

kalau mau lebih dari satu kolom tinggal menambahkan kolomnya :

public function user(){

return $this->hasOne(‘App\User’)->select(‘fullname’, ’email’);

}

 

Referensi :

https://laracasts.com/discuss/channels/eloquent/eloquent-hasone-relation-get-only-id-or-certain-columns

 

Mendapatkan Log Query pada Laravel

Untuk mendapatkan log query atau query yang dijalankan pada laravel caranya :

Tambahkan script berikut di atas :

use DB;

Kemudian di atas query yang akan kita cari :

DB::enableQueryLog();

dan setelah query tambahkan script berikut :

dd(DB::getQueryLog());

dd berfungsi seperti print_r atau var_dump yang menampilkan dalam bentuk array, dan berfungsi juga seperti exit() yang akan menghentikan program tidak menjalankan program di bawahnya.

Contoh lengkapnya seperti ini :

namespace App\Http\Controllers;

use DB:

class HomeController extends Controller{

public function index(){

DB::enableQueryLog();
$dataSession = (EmployeesModel::find(Auth::user()->employees_id));

dd(DB::getQueryLog());

return view(‘home’);

}

}

Maka akan menghasilkan di browser :

array:1 [
  0 => array:3 [
    "query" => "select * from `net_hrd`.`employees` where `net_hrd`.`employees`.`id` = ? limit 1"
    "bindings" => array:1 []
    "time" => 0.85
  ]
]

DB::enableQueryLog() bisa dipakai untuk menampilkan log query lebih dari satu, tinggal letakkan query2 yang mau kita lihat di antara DB::enableQueryLog() dan DB::getQueryLog().

 

Referensi :

http://itsolutionstuff.com/post/how-to-get-last-executed-mysql-query-in-laravel-example.html

https://laravel.com/docs/5.0/database#query-logging

https://laravel.com/docs/5.1/queries

 

Asah Otak : Bermain dengan Subquery

Forum PHP indonesia

Forum PHP indonesia

Sore2 setelah shalat Ashar iseng buka facebook nemu ngelihat ada yang tanya di forum php tentang query .

Menarik pertanyaannya, sekilas hasilnya simple , tapi dicoba lumayan juga butuh effort mikir.

Akhirnya saya ajak agus buat iseng2 nyoba mecahin.

“Gus ini ada kasus bagus deh buat latihan asah otak”

saya dan agus pun utak atik…

Sudah hampir setengah jam berlalu….

Dan hasilnya…. sore itu kita berdua belum bisa mecahin kasus ini dengan sempurna, cuma agus yang hampir nemu, dia memang jago logika nya di atas saya.

Akhirnya daripada pusing2 mecahin kasus punya orang lain lebih baik saya nerusin aja ah kerjaan kantor yang lebih penting.

“udah gus buat nanti aja kalau lagi iseng, itu butuh konsentrasi lebih”

“Iya jal, butuh konsentrasi lebih nih”

Eh pagi tadi saya datang ke kantor sudah ada agus dan dia bersorak “Jal aku udah temu”, bener dah tuh orang  lebih pinter dari saya.

Akhirnya penasaran, saya coba lagi utak atik , awalnya saya gambar di kertas hasilnya dan saya uraikan di kertas

“Tampilkan kelas, nama, ipk masing2 kelas yang mempunyai nilai ipk tertingi”

itu memang salah satu cara saya menguraikan suatu kasus, saya tulis di kertas uraiannya.

Dan setelah utak atik utak atik di phpmyadmin…tara……berhasil

Ternyata memang butuh istirahat semalam buat ngademin kepala, kemarin sudah penuh kali dari pagi, mungkin juga karena sebelumnya saya uraikan kemarin main hajar aja langsung query.

Yuk ah langsung ke kasus

Ada dua table

Table pertama : mahasiswa

Table mahasiswa

Table mahasiswa

Table kedua : ipk

Table IPK

Table IPK

Dan permintaan dari user adalah :

“Tampilkan nama mahasiswa yang ipk nya tertinggi di masing-masing kelas”

Ini query saya :

SELECT mahasiswa.nama, result.kelas, result.terbesar FROM mahasiswa
INNER JOIN ipk ON mahasiswa.id = ipk.mahasiswa_id
INNER JOIN
( SELECT kelas, MAX(ipk.ipk) AS terbesar FROM `mahasiswa` INNER JOIN ipk ON mahasiswa.id = ipk.mahasiswa_id GROUP BY kelas) AS result ON mahasiswa.kelas = result.kelas AND ipk.ipk = result.terbesar

Dan ini hasilnya tara…:

Hasil Query

Hasil Query

Ternyata saya cocokkan dengan agus, query saya dengan agus hampir sama karena logika pemecahan kasusnya ternyata sama.

Kesimpulan saya :

  1. Kalau kita mentok mungkin kita butuh istirahat, ngga perlu dipaksain
  2. Dengan menuliskan uraian kasus di kertas akan lebih memudahkan dan mempercepat penyelesaian masalah
  3. Subquery atau Query dalam Query atau bisa juga disebut Query bersarang adalah salah satu hal penting yang perlu dipelajari untuk memecahkan kasus yang sulit.

Thanks to https://www.facebook.com/chietra.chandrasari?fref=nf yang sudah membuat saya teman saya , agus berlatih asah otak.

Menambahkan GIT pada PATH Windows 8

Untuk Menambahkn GIT pada Windows carany :

1. Masuk ke My Computer

2. Klik Kanan , Klik Properties

3. Klik Advance System Settings pada menu sebelah kiri

4. Klik Environment variables

5. Klik PATH

6. Klik Edit

7. Tambahkan script berikut ini  :

C:\Program Files\Git\bin;”C:\Program Files\Git\bin\sh.exe” –login -i

8. simpan , selesai

Untuk mengetest buka command prompt dan ketikkan PATH

kalau benar akan ada script yang baru kita tambahkan.

Referensi :

http://blog.countableset.ch/2012/06/07/adding-git-to-windows-7-path/

PHP – Cara Menghilangkan %20 di URL Menjadi Spasi

Untuk menghilangkan %20 di url menjadi spasi di PHP menggunakan syntax rawurldecode, bila diterapkan di codeigniter :

$string_url = $this->uri->segment(3);

echo rawurldecode($string_url);

Bisa juga memakai

urldecode($string_url);

Awalnya saya menggunakan trik preg_replace :

$string_url = $this->uri->segment(3);

echo preg_replace(‘/%20/’, ‘ ‘, $string_url);

keduanya bisa digunakan , hanya saja cara pertama lebih efisien karena fungsi built in php dan cara kedua adalah trik karena belum ketemu yang pertama

sumber  :

http://php.net/manual/en/function.urldecode.php

http://php.net/manual/ro/function.rawurldecode.php

http://php.net/manual/ro/function.preg-replace.php

Menghitung Selisih Bulan Antar Dua Tanggal Dalam PHP

Menghitung selisih bulan antar dua tanggal bisa memakai fungsi berikut :

public  function diffInMonths(\DateTime $date1, \DateTime $date2)
{
$diff =  $date1->diff($date2);

$months = $diff->y * 12 + $diff->m + $diff->d / 30;

return (int) round($months);
}

Adapun cara memakainya tinggal dipanggil functionnya

$start = create_date(‘2015-01-01’);

$end =  create_date(‘2015-06-30’);

echo $this->diffInMonths($start, $end);

fungsi di atas akan menghasilkan nilai 6  , maksudnya 6 bulan

fungsi di atas cukup membantu, setelah tanggal 15 maka akan dihitung satu bulan , jika di bawah 15 maka tidak dihitung , contoh di atas, jika

$end =  create_date(‘2015-06-16’);

maka akan menghasilkan 6  bulan

tapi jika

$end =  create_date(‘2015-06-14’);

maka akan dihitung 5 bulan

sumber :

http://stackoverflow.com/questions/2681548/find-month-difference-in-php

http://www.w3schools.com/php/func_date_date_diff.asp

Menangani Error Notepad++ : Please check whether if this file is opened in another program

Tadi sewaktu edit file php di notepad++ dan mau menyimpan eh keluar error :

 Please check whether if this file is opened in another program

Setelah browsing ketemu dah di stackoverflow , caranya yaitu :

Cukup ubah permission di folder dan subfolder nya

Sumber :

http://stackoverflow.com/questions/2763067/unable-to-edit-and-save-a-file-on-remote-machine-using-notepad