Kategori: Linux Programming

Konfigurasi HMVC untuk Codeigniter 3

HMVC singkatan dari Hierarichal Model View Controller adalah pengembangan dari konsep MVC (Model View Controller) yang diimplementasikan secara hierarkis, sehingga disetiap module memiliki MVC sendiri atau tidak. Berikut ini adalah perbedaan struktur MVC dan HMVC:

  • Struktur MVC
    • applications/
      • controllers/
      • models/
      • views/
  • Struktur HMVC
    • applications/
      • modules/
        • user/
          • models/
          • views/
          • controllers/
        • salesorder
          • models/
          • views/
          • controllers/

Didalam folder modules terdapat user dan salesorder, didalamnya terdapat folder models, views dan controllers, seperti inilah konsep HMVC.

Beberapa kelebihan dari HMVC adalah

  1. Adanya konsep modular, sehingga lebih mudah ketika membuat aplikasi yang besar dan dibagi menjadi modul-modul kecil.
  2. Lebih mudah saat pengembangan dan maintenance (perawatan).
  3. Teamwork dan pembagian kerja lebih mudah dan ringan.

Artikel sebagai catatan kami saat melakukan konfigurasi HMVC di framework PHP Codeigniter versi 3. Untuk mendownload Codeigniter 3 ada disini dan untuk mendownload HMVC extension ada disini.

Berikut langkah-langkah Konfigurasi HMVC untuk Codeigniter 3 :

  1. Ekstrak framework Codeigniter 3 dan pindahkan ke webroot folder, untuk LAMP di ubuntu server 14.04 ada di /var/www/html/. Dan dengan nama folder ci3, sehingga ketika diakses dari web browser alamat web menjadi http://localhost/ci3/.
  2. Ekstrak HMVC Extention. Hasil ekstrak extenstion terdapat folder core dan third_party.
  3. Masukkan core dan third_party kedalam folder applications milik Codeigniter 3 sehingga struktur folder applications menjadi seperti ini:
    - applications/
    -- core/
    ---- MY_Loader.php
    ---- MY_Router.php
    -- third_party/
    ---- MX/
    ------ Base.php
    ------ Ci.php
    ------ Config.php
    ------ Controller.php
    ------ Lang.php
    ------ Loader.php
    ------ Modules.php
    ------ Router.php
    
  4. Konfigurasi HMVC sudah dilakukan selanjutnya kita lakukan test apakah sudah bisa digunakan atau tidak.

Berikut langkath-langkah Tes HMVC untuk Codeigniter 3:

  1. Buatlah folder modules di dalam folder applications.
    - applications/
    -- core/
    -- third_party/
    -- modules/
    
  2. Selanjutnya didalam folder modules buat folder test, kemudian didalam folder test buatlah tiga folder masing-masing dengan nama models, views, dan controllers.
    - applications/
    -- core/
    -- third_party/
    -- modules/
    --- test/
    ---- models/
    ---- views/
    ---- controllers/
    
  3. Di dalam folder controllers buatlah file controller dengan nama calass Test.php dengan isi file sebagai berikut:
     class Test extends CI_Controller{
        public function __construct() {
            parent::__construct();
        }
        
        public function index() {
            echo "<h1>Tes Konfigurasi HMVC</h1>";
            echo "<p>Modul ini adalah modul HMVC pertama saya</p>";
            echo "<p>Lokasi file ada di applications/modules/test/controllers/Test.php</p>";
        }
    }
    
  4. Tes class Test dengan mengaksesnya di web browser dengan alamat http://localhost/ci3/index.php/test. Jika nama file controller dan nama folder sama maka saat mengaksesnya hanya menggunakan nama folder.
  5. Jika pada web browser ditamplikan seperti hasil dibawah maka tes dan konfigurasi HMVC untuk Codeigniter 3 telah berhasil.
    <h1>Tes Konfigurasi HMVC</h1>
    <p>Modul ini adalah modul HMVC pertama saya</p>
    <p>Lokasi file ada di applications/modules/test/controllers/Test.php</p>

Di internet sudah banyak artikel seperti yang kami tulis ini, kami hanya sekedar berbagai dari pengalaman kami saat mengkonfigurasi HMVC untuk Codeigniter 3.

Semoga Bermanfaat.

 

setting htaccess untuk redirect https codeigniter

RewriteEngine On

RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HOST_NAME}%{REQUEST_URI} [R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1

Penjelasan:

RewriteCond %{HTTPS} off

Cek apakah https aktif atau tidak, apakah kita request menggunakan http:// ataukah https://. Jika menggunakan http:// maka redirect ke https:// melalui rule dibaris selanjutnya. yaitu:

RewriteRule ^(.*)$ https://%{HOST_NAME}%{REQUEST_URI} [R=301]

Pada baris ini:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1

menghilangkan index.php dari url codeigniter. Default-nya url codeigniter adalah  http://namadomain.tld/index.php/controller/param atau http://namadomain.tld/index.php?/controller/param. Dan dengan rule di atas url menjadi http://namadomain.tld/controller/param. Pada artikel ini kami hanya menjelaskan isi file htaccess, dan agar htaccess ini bekerja perlu dilakukan beberapa perubahan di file config.php dan route.php codeigniter.

Semoga bermanfaat …

MaxArray()


<?php
function MaxArray($arr){
$max = 0;
foreach($arr as $row){
if(is_array($row)){
$max = MaxArray($row);
} else {
if($max < $row){
$max = $row;
}
}
}
return $max;
}
$arr = array(array(141,151,161), 2, 3, array(101, 202, array(303,404)));
echo MaxArray($arr);
?>

Belajar SCM (Source Code Management) Software : Git untuk pribadi (1)

Tentang SCM (Source Code Management)

Source Code Management software adalah software yang berfungsi mengendalikan perubahan-perubahan yang terjadi dalam proses pengembangan software. Salah satu aktivitas SCM adalah Revision Control, yaitu pengelolaan terhadap perubahan-perubahan yang terjadi pada artifak (dokumen, source code) oleh banyak programmer  dalam proses pengembangan software. Sedangkan software yang digunakan untuk membantu aktivitas Revision Control disebut dengan Version Control System (VCS). VCS dikelompokkan menjadi 3 kelompok yaitu:

  • Client-Server

Semua programmer harus tersinkronisasi pada server terpusat. Contoh: Subversion, SVN, dan CVS.

  • Terdistribusi (DRCS / Distributed Revision Control System)

Mirip dengan sistem peer-to-peer, sinkronisasi dilakukan dengan mempertukarkan patches-set antar peer. Contoh: git, mercurial, baazar dan lain-lain.

  • Lokal

Semua programmer harus berada pada komputer yang sama. Contoh:  RCS (Remote Control System) dan SCCS (Source Code Control System).

Git merupakan VCS dengan kategori DRCS (Distributed Revision Control System) yang awalnya dikembangkan oleh Linus Trovalds untuk pengembangan kernel Linux. Git merupakan proyek opensource dan dapat diperoleh di http://www.git-scm.org.

Selain install sendiri di lokal komputer, kita juga bisa memanfaatkan DRCS Source Code Hosting. Berikut beberapa DRCS Source Code Hosting yang bersifat bebas dan sering digunakan dalam project open source:

Kami memanfaatkan Atlassian Bitbucket (https://bitbucket.org) yang bersifat free baik untuk project private dan public selama jumlah user yang terdaftar tidak lebih dari 5 user. Sebelum menggunakan git secara remote kita harus bisa menggunakan git secara lokal terlebih dahulu, yaitu hanya satu orang programmer saja. Selanjutnya akan dibahas bagaimana menggunakan git untuk pribadi atau individu.

Git untuk pribadi / individu

Persiapan yang harus kita lakukan adalah instalasi git di komputer, pada OS Slackware 13.37 kami git telah terinstall secara default. Sedangkan di OS Ubuntu 10.04, git dapat diinstall dengan cara:

sudo apt-get install git-core
sudo apt-get install git-gui
suod apt-get install git-doc

Pada artikel ini kita akan belajar git untuk pribadi yaitu tidak ada kolaborasi / campur tangan programmer lain dalam mengembangkan software. Atau dengan kata lain programmer bekerja secara sendirian. Artikel ini mencakup beberapa aktivitas-aktivitas dasar dan penting dalam menggunakan git.

Inisialisasi User

Sebelum melakukan apapun dengan git sebaiknya kita mendaftarkan user-user yang akan menggunakan git. Untuk inisialisasi user gunakan perintah berikut:

$ git config --global user.name "Ibnu Kholid"

$ git config --global user.email "debipraharadika@gmail.com"

pada perintah di atas kita menambahkan user dengan nama Ibnu Kholid dengan emailnya debipraharadika@gmail.com.

Konfigurasi git dapat dilihat di direktori /$HOME/.gitconfig/, contoh isi dari .gitconfig:

[user]
blacknaml = Debi Praharadika
name = Ibnu Kholid
email = debipraharadika@gmail.com

Membuat Repositori

Membuat repositori adalah dengan membuat direktori baru, kita akan membuat direktori baru git_lokal di /media/box/Project/belajar_git/. Buka terminal, gunakan perintah mkdir untuk membuat direktori baru dan perintah cd untuk berpindah direktori.

mkdir /media/box/Project/belajar_git/git_lokal

cd /media/box/Project/belajar_git/git_lokal

Inisialisasi git dengan perintah git init

debi@blacknaml:/media/box/Project/belajar_git/git_lokal$ git init
Initialized empty Git repository in /media/box/Project/belajar_git/git_lokal/.git/

debi@blacknaml:/media/box/Project/belajar_git/git_lokal$

Insya ALLAH, bersambung …

Perbedaan UNION dan UNION ALL pada SQL

Untuk menggabungkan isi dari dua tabel atau lebih sering kita menggunakan UNION. Namun sesungguhnya di SQL terdapat dua jenis UNION, yaitu UNION dan UNION ALL. Secara gambar himpunan dapat kita lihat perbedaan seperti dibawah:

UNION
UNION
UNION ALL
UNION ALL

Dari gambar di atas dapat kita ketahui bahwa pada UNION data yang sama akan ditampilkan satu kali saja. Namun pada UNION ALL data yang sama akan tetap ditampilkan. Berikut contoh di Query mySQL:

Untuk UNION:

SELECT nama_data FROM data_baru WHERE status = 'ok'
UNION
SELECT nama_data FROM data_lama WHERE status = 'ok'

sedangkan isi dari tabel data_baru  adalah sebagai berikut:

id nama_data status
1 Data 1 failed
2 Data 2 failed
3 Data 3 ok
4 Data 4 ok

Dan isi dari tabel data_lama adalah sebagai berikut:

id nama_data status
1 Data 1 failed
2 Data 2 failed
3 Data 3 ok
4 Data 4 ok

Dan ketika kita menggunakan query UNION hasilnya:

nama_data
Data 3
Data 4

Untuk UNION ALL query nya sebagai berikut:

SELECT nama_data FROM data_baru WHERE status = 'ok'
UNION ALL
SELECT nama_data FROM data_lama WHERE status = 'ok'

Untuk isi tabel data_baru dan data_lama sama dengan di atas, maka saat dilakukan query tersebut, hasilnya adalah sebagai berikut:

nama_data
Data 3
Data 3
Data 4
Data 4

Semoga bermanfaat dan menjadi catatan kami.

Corat-coret 06 – jquery.live()

Dengan menggunakan jquery.live():

$(".tombol_dgn").live("click", function(){
$('#dgn_live').after("<button class='tombol_dgn'>Tombol dengan live</button>");
});

Dengan menggunakan jquery.click():

$(".tombol_bkn").click(function(){
$('#bkn_live').after("<button class='tombol_bkn'>Tombol tanpa live</button>");
});

Skrip lengkap untuk demo:

<html>
<head>
<title>Live Jquery</title>
<script src='jquery.js' type='text/javascript'></script>
<script type='text/javascript'>
$(document).ready(function(){
$(".tombol_dgn").live("click", function(){
$('#dgn_live').after("<button class='tombol_dgn'>Tombol dengan live</button>");
});

$(".tombol_bkn").click(function(){
$('#bkn_live').after("<button class='tombol_bkn'>Tombol tanpa live</button>");
});
});
</script>
</head>
<body>
<div id='dgn_live'>
<button class='tombol_dgn'>Tombol dengan live</button>
</div>
<div id='bkn_live'>
<button class='tombol_bkn'>Tombol tanpa live</button>
</div>
</body>
</html>

Lihat Demo

Catatanku untuk penulisan kode php

Penulisan kode sumber php harus standard, karena memang sudah ada standard yang mengaturnya. Tujuannya adalah agar kode sumber php tersebut mudah dibaca oleh programmer lain selain programmer yang membuat. Standard penulisan kode tidak hanya ada di dunia PHP namun juga didunia bahasa pemrograman lain, menurutku karena keahlian memrogram adalah hal teknis, dan hal teknis selalu memiliki standard agar bersifat global apalagi kode sumber tersebut merupakan kode sumber terbuka (open source). Selain mudah dibaca oleh programmer lainnya kode sumber kita juga terlihat rapi. Kami akan menyampaikan beberapa standard penulisan kode sumber yang kami ketahui, antara lain:

– Penamaan Class

Contoh yang benar:


class GeneralLedger {
   function __construct(){

   }
}

class General_Ledger{
   function __construct(){

   }
}

Contoh yang salah:

class generalledger {
    function __construct(){

    }
}

– Penamaan Private dan Public Method

Contoh yang benar (Private):

_purchase_order()
{

}

Contoh yang benar (Public):

purchase_order()
{

}

– Penamaan Function

Contoh yang benar:

function get_picture()
function init_camera()

Contoh yang salah:

function initcamera()
function initCamera()
function getpicturejpeg()
function getPictureJpeg()
function get_picture_jpeg_from_camera()

– Penamaan Variable

Contoh yang benar:

for ($j = 0; $j < 10; $j++)
$str
$temporary
$user_id
$last_page

Contoh yang salah:

$j = 'foo';
$Str
$bufferedText
$groupid
$name_of_last_city_used

– Penamaan Konstanta

Contoh yang benar:

MY_CONSTANT
NEWLINE
SOFTWARE_FULL_VERSION

Contoh yang salah:

mYConstant
newline
SOFTWARE_full_version

– Penulisan TRUE, FALSE dan NULL

Contoh yang benar:

if ($payment == TRUE)
$credit = FALSE;
function set_payment($payment = FALSE)

Contoh yang salah:

if ($payment == true)
$credit = false;
function set_payment($payment = false)

 

Itu adalah beberapa standard penulisan kode sumber php yang kami ketahui, semoga bermanfaat disaat kami lupa.