Laravel vs Codeigniter, Mana Framework PHP Terbaik ?

Laravel vs Codeigniter, Mana Framework PHP Terbaik ?

Halo sobat Rumah Coding,

Dalam dunia web development, Laravel vs Codeigniter merupakan sebuah hal yang kerap kali diperdebatkan. Terutama di era modern ini, di mana framework PHP menjadi pilihan utama untuk keperluan pengembangan situs web perusahaan. Bahkan, kini juga semakin banyak developer yang membutuhkan framework mumpuni untuk kebutuhan proyeknya.

berikut kami akan paparkan perbandingan serta kekurangan dan kelebihan framework Laravel dan Codeigniter.

Mengenal Laravel dan Codeigniter

Sebelum mengulas kekurangan dan kelebihan Laravel vs Codeigniter, kita harus mengenal kedua framework tersebut terlebih dahulu.

Laravel adalah framework PHP bersifat open source yang dapat digunakan secara cuma-cuma. Ia menyediakan seperangkat alat dan sumber daya untuk membangun aplikasi PHP modern. 

Dengan ekosistem lengkap yang memanfaatkan fitur bawaannya, popularitas Laravel telah tumbuh pesat dalam beberapa tahun terakhir.

Banyak developer yang mengadopsinya sebagai framework pilihan mereka untuk proses development yang sederhana.

Di sisi lain, Codeigniter merupakan sebuah framework untuk developer yang hendak membangun situs web menggunakan bahasa pemrograman PHP. 

Tujuan perangkat ini adalah untuk membantu developer mengembangkan proyek dengan lebih cepat.

Ia menyediakan kumpulan pustaka yang kaya untuk tugas-tugas yang umumnya sulit dieksekusi, tampilan UI yang sederhana, dan struktur aplikasi yang mudah untuk diakses.

Codeigniter mempersiapkan semua fitur tersebut agar penggunanya mampu menyelesaikan proses development dengan cepat.

Laravel vs Codeigniter

Setelah mengenal kedua framework tersebut, saatnya kita ulas perbandingan antara Laravel vs Codeigniter.

Kelebihan dan Kekurangan Laravel

Salah satu kelebihan utama Laravel adalah tools yang sudah mereka siapkan dalam aplikasi.

Tools ini dianggap mampu memfasilitasi tugas-tugas umum yang diperlukan untuk membangun situs web dengan menawarkan paket siap pakai untuk keperluan otentikasi pengguna dan menguji API.

Tak hanya itu, framework satu ini menggunakan mesin templating yang dikenal sebagai Blade.

Mesin satu ini menawarkan kemampuan luar biasa untuk memformat data dan membuat tata letak situs web yang kompleks dengan sistem navigasi yang mudah.

Blade juga memungkinkan penambahan modul dan fitur baru tanpa membuat perubahan apa pun pada inti situs web.

Kelebihan lain Laravel adalah komunitas penggunanya yang luas. Framework ini memiliki jumlah pengguna terbanyak di seluruh dunia.

Maka dari itu, setiap kali merasa kesulitan, kamu bisa tanyakan solusinya secara langsung pada komunitas pengguna Laravel.

Nah, untuk kekurangan Laravel sendiri terletak pada jumlah solusi yang diberikan oleh built in library mereka.

Hal inilah bahkan yang memulai perdebatan Laravel vs Codeigniter yang terkenal akan built in library-nya.

Selain itu, Laravel memiliki fitur yang dianggap lightweight. 

Meskipun bukan masalah besar, fitur lightweight dapat menyebabkan penurunan performa seiring bertambahnya data congestion.

Kelebihan dan kekurangan Codeigniter

Jika membahas Codeigniter, satu hal yang perlu diapresiasi dari framework tersebut adalah keamanannya.

Codeigniter menyediakan kustomisasi aplikasi yang dapat membantu memperkuat keamanan.

Framework ini membuat proses pembangunan protokol keamanan menjadi lebih mudah.

Selain itu, perbedaan Laravel vs Codeigniter adalah bahwa Codeigniter memiliki foot print yang kecil.

Keunggulan satu ini membuat Codeigniter lebih cepat daripada framework PHP lainnya.

Meskipun demikian, Codeigniter tak lepas dari beberapa kekurangan. Salah satunya adalah tidak mendukung pemisahan kode modular secara default

Hasilnya, developer harus meluangkan waktu dan upaya lebih untuk memelihara atau memperbarui kode.

Selain itu, kekurangan lain dari Codeigniter adalah minimnya pembaruan versi.

Hasilnya, development dan pertumbuhan menjadi stagnan sehingga mengakibatkan versi situs menjadi tidak sinkron.

Kesimpulan

Kita dapat mengatakan bahwa kedua framework PHP ini memiliki relevansi dan manfaatnya masing-masing. 

Kinerjanya akan sangat bergantung pada kebutuhan proyek development-mu.

Meskipun demikian, dapat dikatakan bahwa Laravel memiliki sedikit keunggulan dibandingkan CodeIgniter karena fitur-fiturnya yang lebih lengkap dan canggih.

Bagaimana? Sudah tahu ingin menggunakan framework yang mana?

Demikian artikel kali ini, semoga menambah wawasan kalian dan sampai bertemu di artikel selanjutnya

adminlte3

Menerapkan Dashboard AdminLTE 3 Pada PHP part 2

adminlte3

Halo teman Rumah Coding, kali ini saya akan melanjutkan pembahasan Menerapkan Dashboard AdminLTE 3 Pada PHP. bagi kalian yang belum mengikuti part1 silahkan dibaca Menerapkan Dashboard AdminLTE 3 Pada PHP part 1.

Setelah semua tahapan tadi selesai, sekarang kita lihat hasil nya dengan mengakses localhost/dashboard_adminlte. Apabila semua pengaturan sesuai maka akan tampil seperti ini

Template-dashboard

Setelah kita memecah atau mempartisi script menjadi beberapa bagian. Sekarang kita akan membuat template berdasarkan file index tersebut. Jadi nantinya kita lebih mudah dalam membuat halaman konten baru. Buka file index.php lalu potong script dari baris ke 1 sampai sebelum <!—Content Wrapper. Contains page content –> kemudian ganti dengan script

<?php include 'template_header.php' ?>

Potong script index.php

Ubah index.php

Buat file baru dengan nama template_header.php lalu pastekan potongan script tadi ke dalam file template_header.php

Template_header.php

Sekarang kita potong juga bagian bawah index.php. mulai dari setelah <!– /.content-wrapper –> sampai script bagian paling bawah, lalu ganti dengan script dibawah ini

<?php include 'template_footer.php' ?>

Potong script index.php

Ubah index.php


Buat file baru dengan nama template_footer.php lalu pastekan potongan script tadi kedalamnya.

Template_footer.php

Sekarang cek hasilnya setelah kita lakukan modifikasi, seharusnya tidak ada perubahan secara tampilan. Dan berarti kita selesai dalam tahap pembuatan template tersebut.


Bisa diperhatikan pada bagian content-wrapper index.php. disitu adalah script untuk mengatur tampilan dari konten dashboard. Jadi kedepannya kita bisa memanfaatkan file index.php ini untuk membuat halaman baru, dengan cara copy file index.php, rename sesuai dengan halaman yang akan dibuat lalu modifikasi sesuai dengan kebutuhan halaman baru.

Dengan melakukan pemotongan script ke beberapa bagian seperti ini tujuannya adalah memudahkan kita dalam membangun sebuah project. Misalnya kita ingin menggunakan plugin lain kedalam project kita. Cukup dengan tambahkan / modifikasi file stylesheet.php dan js-file.php dalam folder partials.

Demikian pembahasan kita tentang penerapan AdminLTE pada PHP, silahkan lakukan perubahan tampilan baik content maupun bagian lainnya menyesuaikan keinginan kalian. Terus berlatih dan sampai jumpa di artikel selanjutnya.

adminlte3

Menerapkan Dashboard AdminLTE 3 Pada PHP part 1

adminlte3

Halo teman Rumah Coding, pada artikel kali ini saya akan memberikan tutorial cara menerapkan template dashboard AdminLTE3 pada PHP. Untuk yang belum tahu apa itu dashboard AdminLTE 3 bisa baca terlebih dahulu postingan sebelumnya mengenai 3 Rekomendasi Dashboard Admin Bootstrap

Pada tutorial penerapan adminLTE 3 ini yang akan dibahas antara lain :

  • persiapan download
  • memilih file-file yang hanya dibutuhkan untuk project
  • memecah /  memotong script menjadi beberapa bagian untuk memudahkan maintenance

baik, mari kita praktekan untuk penerapan dashboard AdminLTE3 pada PHP kali ini.

Persiapkan AdminLTE 3

Hal pertama yang pasti kita lakukan yaitu mendownload template AdminLTE. Untuk link download bisa melalui link ini. Extract ke folder sementara hasil download AdminLTE 3 tersebut untuk nantinya akan kita pilah file-file yang hanya kita butuhkan saja, kemudian kita siapkan juga folder project kita di dalam folder htdocs. Beri nama folder dashboard_adminlte.

setelah itu kita copy file dan folder berikut yang ada didalam folder AdminLTE3 kedalam folder project kita.


Folder dist berisi file asset yang dibutuhkan seperti css file, js file dan image, folder plugins berisi plugin-plugin yang bisa kita gunakan didalam aplikasi kita contoh datatables. Starter.html adalah template yang akan kita gunakan dan akan kita ubah strukturnya untuk kita manfaatkan pada project kita. Ubah terlebih dahulu file starter.html menjadi index.php



Memecah script index.php ke beberapa bagian

index.php ke beberapa bagian Untuk bagian ini, kita membutuhkan satu folder untuk mengumpulkan tiap partial yang kita buat. Kita buat satu folder dengan nama partials


Stylesheet.php

Sekarang kita buka folder project kita menggunakan vscode dan buka file index.php. kita akan potong script bagian stylesheet. Script yang kita potong pada file index.php kita ganti dengan

<?php include 'partials/stylesheet.php' ?>

potong bagian stylesheet index.php

Ubah file index.php


Buat file stylesheet.php didalam folder partials, lalu kita paste atau tempel script ke dalam file stylesheet.php

stylesheet.php



Navbar.php

Lalu kita akan memotong bagian navbar dengan memotong script bagian navbar pada index.php dari <!—Navbar –> sampai <!—/.Navbar –,  Script yang kita potong, kita ganti dengan

<?php include 'partials/navbar.php' ?>

potong script navbar

ubah index.php

buat file navbar.php didalam folder partials lalu paste script navbar tadi kedalam file navbar.php.

Navbar.php

Sidebar.php

Sekarang kita lanjut ke bagian sidebar. Potong script sidebar bagian tag <aside> sampai </aside> lalu ganti dengan script

<?php include 'partials/sidebar.php' ?>

Potong script sidebar

ubah script index.php

Buat file dengan nama sidebar.php pada folder partials, lalu pastekan script sidebar tadi kedalam file sidebar.php



Footer.php

Untuk bagian footer kita potong script pada index.php bagian tag <footer> sampai dengan </footer> lalu ganti dengan script berikut

<?php include 'partials/footer.php' ?>

potong script footer index.php

ubah index.php

Buat file dengan nama footer.php dan pastekan potongan script footer tadi kedalam file footer.php

footer.php


Js-file.php

Sekarang kita akan memotong script bagian js file yang ada di bagian bawah. Dan ganti script nya dengan

<?php include 'partials/js-file.php' ?>

potong script js-file index.php

ubah file index.php

Buat file didalam folder partials dengan nama js-file.php lalu pastekan potongan script yang tadi kedalam file js-file.php

js-file.php

validasi php

Membuat Form Validasi Sederhana PHP



Halo teman Rumah Coding, pada artikel kali ini kita akan membahas tentang pembuatan form validasi pada PHP. Kita akan membuat validasi nama dan email, dimana input nama akan di cek apakah sudah terisi atau kosong dan input email akan di cek valid atau tidak.

Validasi pada form aplikasi bisa dikatakan hal dasar dan wajib dipelajari, bayangkan jika kita membuat aplikasi tanpa adanya  validasi. Input user pasti tidak akan sesuai dengan ketentuan form aplikasi yang kita buat. Maka dari itu validasi ini akan berguna untuk membuat filter input agar sesuai dengan ketentuan dari form aplikasi.

Pada kesempatan kali ini kita akan membuat form validasi sederhana dimana form yang akan kita buat berisi input nama dan email. data akan dikirim ke file php terpisah yang kemudian data-data tersebut akan di periksa untuk validasi. Validasi yang akan kita lakukan adalah cek terisi atau tidak seluruh input pada form dan apakah email yang diinput valid atau tidak. Jika input tidak terisi atau email tidak valid akan mengembalikan pesan eror sesuai dengan bagian input yang kosong pada form input. Untuk lebih jelasnya mari kita mulai praktekkan.

Membuat Tampilan Form Validasi

Pertama kita akan membuat tampilan form untuk input data. Buat sebuah file baru dengan nama index.php

<?php
    // Memberi nilai awal kosong pada variabel
    $namaPesan = $emailPesan = "";

    session_start();

    // Memberi nilai baru pada variabel $namaPesan jika ada $_Session "namaPesan"
    if (isset($_SESSION['namaPesan'])){
        $namaPesan = $_SESSION['namaPesan'];
    }

    // Memberi nilai baru pada variabel $emailPesan jika ada $_Session "namaPesan"
    if (isset($_SESSION['emailPesan'])){
        $emailPesan = $_SESSION['emailPesan'];
    }
    session_unset();
    session_destroy();
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Form Validasi | blog.rumahcoding.co.id</title>
</head>
<body>
    <h1>Form Validasi | blog.rumahcoding.co.id</h1>
    
    <!-- validasi akan di lakukan pada file cek-validasi.php -->
    <form action="cek-validasi.php" method="post">
        <table>
            <tr>
                <td>Nama : </td>
                <td>
                    <input type="text" name="nama" id="id">

                    <!-- berfungsi menampilkan pesan eror berdasar kan nilai dari $namaPesan -->
                    <span style="color:red;">* <?= $namaPesan ?></span>
                </td>
            </tr>
            <tr>
                <td>Email : </td>
                <td>
                    <input type="text" name="email" id="email">

                    <!-- berfungsi menampilkan pesan eror berdasar kan nilai dari $emailPesan -->
                    <span style="color:red;">* <?= $emailPesan ?></span>
                </td>
            </tr>
            <tr>
                <td></td>
                <td><input type="submit" name="submit" id="submit" value="Kirim"></td>
            </tr>
        </table>
    </form>
</body>
</html>



Jalankan index.php pada browser untuk melihat tampilan



Penjelasan index.php :

<?php
    // Memberi nilai awal kosong pada variabel
    $namaPesan = $emailPesan = "";

    // Memberi nilai baru pada variabel $namaPesan jika ada $_Session "namaPesan"
    if (isset($_SESSION['namaPesan'])){
        $namaPesan = $_SESSION['namaPesan'];
    }

    // Memberi nilai baru pada variabel $emailPesan jika ada $_Session "namaPesan"
    if (isset($_SESSION['emailPesam'])){
        $emailPesan = $_SESSION['emailPesan'];
    }
?>


Bagian ini berfungsi untuk menerima pesan eror yang di kirim dari cek-validasi.php dan menampung pesan eror tersebut kedalam variabel $namaPesan dan $emailPesan.

<span style="color:red;">* <?= $namaPesan ?></span>


Tag span ini  berfungsi untuk menampilkan pesan eror pada kolom nama berdasar nilai variabel $namaPesan.

<span style="color:red;">* <?= $emailPesan ?></span>


Tag span ini  berfungsi untuk menampikan pesan eror pada kolom email berdasar nilai variabel $emailPesan.
Pada tag Form Action mengarah ke cek-validasi.php, dimana proses validasi akan dilakukan pada file tersebut yang akan kita buat nanti.

Membuat Validasi Data Terisi atau Kosong.


Setelah membuat tampilan untuk input data, sekarang kita akan membuat logic untuk memvalidasi setiap input pada form. Buatlah file dengan nama cek-validasi.php.

<?php
    if (isset($_POST['submit'])){

        // memulai session untuk mengirim pesan eror pada session
        session_start();

        // menyimpan nilai dari request POST
        $nama = $_POST['nama'];
        $email = $_POST['email'];

        // menampung nilai eror pada validasi sebagai status eror
        $eror = false;

        // cek variabel $nama bernilai kosong ("") atau tidak
        if ($nama == ""){
            // membuat session namaPesan untuk memberi pesan eror pada kolom nama yang diterima index.php
            $_SESSION['namaPesan'] = "Kolom nama harus diisi";

            // mengubah nilai $eror menjadi true
            $eror = true;
        }

        // cek variabel $email bernilai kosong ("") atau tidak
        if ($email == ""){
            // membuat session emailPesan untuk memberi pesan eror pada kolom email yang diterima index.php
            $_SESSION['emailPesan'] = "Kolom email harus diisi";

            // mengubah nilai $eror menjadi true
            $eror = true;
        }

        // cek nilai akhir variabel $eror, jika bernilai true maka akan redirect ke halaman index.php jika bernilai false akan membuat echo
        if ($eror == true){
            header('location: index.php');
        } else {
            echo "Data berhasil diinput";
        }
    }
?>


Penjelasan cek-validasi.php :

// menyimpan nilai dari request POST
    $nama = $_POST['nama'];
    $email = $_POST['email'];

Bagian ini adalah pembuatan variabel untuk menerima nilai dari request POST nama dan email.

// menampung nilai eror pada validasi sebagai status eror
    $eror = false;

Variabel $eror berfungsi untuk menampung status validasi sebagai penentu eksekusi lanjutan file cek-validasi.php

// cek variabel $nama bernilai kosong ("") atau tidak
    if ($nama == ""){
        // membuat session namaPesan untuk memberi pesan eror pada kolom nama yang diterima index.php
        $_SESSION['namaPesan'] = "Kolom nama harus diisi";

        // mengubah nilai $eror menjadi true
        $eror = true;
    }

Bagian ini untuk cek nilai variabel $nama. Jika bernilai kosong maka akan dibuat session namaPesan dengan berisi pesan eror yang akan ditampilkan dan mengubah nilai $eror menjadi true menandakan terdapat pesan eror yang harus ditampilkan

// cek nilai akhir variabel $eror, jika bernilai true maka akan redirect ke halaman index.php jika bernilai false akan membuat echo
    if ($eror == true){
        header('location: index.php');
    } else {
        echo "Data berhasil diinput";
    }

Bagian ini menentukan hasil dari file cek-validasi.php, jika nilai $eror adalah true maka akan dilakukan redirect ke halaman index.php dan menampilkan pesan eror. Jika tidak akan ditampilkan tulisan “Data berhasil diinput” Jalankan program tersebut lalu lakukan input pada form



Membuat Validasi Email Valid



Untuk validasi email, kita akan modifikasi dari file cek-validasi.php dan menambahkan sedikit logic untuk memvalidasi input email. Silahkan tambahkan code dibawah ke dalam file cek-validasi.php

// cek apakah email yang diinput valid atau tidak
    if ($email != "" && !filter_var($_POST["email"], FILTER_VALIDATE_EMAIL)){
        // membuat session emailPesan untuk memberi pesan eror pada kolom email yang diterima index.php
        $_SESSION['emailPesan'] = "Email yang anda masukan tidak valid";

        // mengubah nilai $eror menjadi true
        $eror = true;
    }


Maka file cek-validasi.php akan menjadi seperti ini

<?php
if (isset($_POST['submit'])){

    // memulai session untuk mengirim pesan eror pada session
    session_start();

    // menyimpan nilai dari request POST
    $nama = $_POST['nama'];
    $email = $_POST['email'];

    // menampung nilai eror pada validasi sebagai status eror
    $eror = false;

    // cek variabel $nama bernilai kosong ("") atau tidak
    if ($nama == ""){
        // membuat session namaPesan untuk memberi pesan eror pada kolom nama yang diterima index.php
        $_SESSION['namaPesan'] = "Kolom nama harus diisi";

        // mengubah nilai $eror menjadi true
        $eror = true;
    }

    // cek variabel $email bernilai kosong ("") atau tidak
    if ($email == ""){
        // membuat session emailPesan untuk memberi pesan eror pada kolom email yang diterima index.php
        $_SESSION['emailPesan'] = "Kolom email harus diisi";

        // mengubah nilai $eror menjadi true
        $eror = true;
    } 

        // cek apakah email yang diinput valid atau tidak
    if ($email != "" && !filter_var($_POST["email"], FILTER_VALIDATE_EMAIL)){
        // membuat session emailPesan untuk memberi pesan eror pada kolom email yang diterima index.php
        $_SESSION['emailPesan'] = "Email yang anda masukan tidak valid";

        // mengubah nilai $eror menjadi true
        $eror = true;
    }
    

    // cek nilai akhir variabel $eror, jika bernilai true maka akan redirect ke halaman index.php jika bernilai false akan membuat echo
    if ($eror == true){
        header('location: index.php');
    } else {
        echo "Data berhasil diinput";
    }
}
?>


Penjelasan tambahan syntax :

// cek apakah email yang diinput valid atau tidak
    if ($email != "" && !filter_var($_POST["email"], FILTER_VALIDATE_EMAIL)){
        // membuat session emailPesan untuk memberi pesan eror pada kolom email yang diterima index.php
        $_SESSION['emailPesan'] = "Email yang anda masukan tidak valid";

        // mengubah nilai $eror menjadi true
        $eror = true;
    }


Bagian ini akan cek variabel email yang terisi data dan akan divalidasi data input tersebut sesuai dengan format email yang valid atau tidak. Validasi dilakukan menggunakan fungsi filter_var().

Setelah dilakukan perubahan silahkan jalankan program tersebut





Jika variabel $eror bernilai false maka tampil tulisan Data berhasil diinput

Demikian pembahasan untuk validasi form input, silahkan kalian lakukan modifikasi untuk mempercantik tampilan. Terus kembangkan apa yang sudah dipelajari dengan terus melatih, Sampai bertemu di artikel selanjutnya

PHPEZ : Program Faktorial menggunakan PHP

PHPEZ : Program Faktorial menggunakan PHP

Halo teman – teman, pada artikel kali ini kita akan membahas mengenai pembuatan program yang akan menghasilkan faktorial dari sebuah bilangan pada bahasa PHP.

Dalam matematikafaktorial dari bilangan asli n yaitu hasil perkalian selang bilangan bulat positif yang kurang dari atau sama dengan n. Faktorial ditulis sebagai n! dan dinamakan n faktorial.

Sebagai contoh, 4! yaitu mempunyai nilai 1×2×3×4 = 24.

Pada program PHP faktorial ini kita akan mengambil bilangan bulat dan menampilkan faktorial dari bilangan tersebut dan menghitung nilai nya menggunakan looping.

Program

<?php
$result = 1;
$n = (int)readline("Masukkan bilangan bulat : ");

if ($n <= 0){
    echo "Angka yang dimasukkan bukan bilangan bulat atau adalah angka 0";
} else {
    for ($i = 1; $i <= $n; $i++) {
         $result *= $i;
    }
    echo "Angka faktorial ". $n . " adalah " . $result;
}
?>

Output nya adalah

Masukkan bilangan bulat : 4
Angka faktorial 4 adalah 24

Penjelasan

  • Buat variabel penampung hasil faktorial nya. Selanjutnya, buat variabel penampung hasil input user dari console. Jangan lupa untuk mengubah tipe data dari masukan user menjadi integer.
$result = 1;
$n = (int)readline("Masukkan bilangan bulat : ");
  • Kita cek terlebih dahulu apakan nilai yang dimasukkan oleh user lebih dari 0. Jika nilai n kurang dari 0 maka akan di keluarkan output gagal.
if ($n <= 0){
   echo "Angka yang dimasukkan bukan bilangan bulat atau adalah angka 0";
} else {
   // Program           
}
  • Selanjutnya, di bagian blok else kita buat loopingnya terlebih dahulu.
for ($i = 1; $i <= $n; $i++) {
    // operasi
}

blok looping tersebut akan dijalankan ketika nilai i masih kurang atau sama dengan dari nilai yang diinputkan oleh user.

Di dalam blok looping nya kita panggil variabel faktorial yang nilai nya akan dikalikan dengan variable i

for ($i = 1; $i <= $n; $i++) {
    $result *= $i;
}

Sehingga hasilnya akan menjadi seperti ini.

n = 4
faktorial = 1 * 1 = 1
faktorial = 1 * 2 = 2
faktorial = 2 * 3 = 6
faktorial = 6 * 4 = 24

  • Jangan lupa untuk mengeluarkan outputnya.
echo "Angka faktorial ". $n . " adalah " . $result;

Oke teman teman, sekian dulu artikel kali ini. Sampai jumpa di artikel berikutnya.

PHPEZ : Cara Manipulasi String pada PHP

PHPEZ : Cara Manipulasi String pada PHP

Halo teman – teman, pada artikel kali ini kita akan membahas mengenai manipulasi variable tipe dengan tipe data String pada bahasa PHP.

String merupakan salah satu tipe data non – primitif yang digunakan untuk menampung kalimat, kata – kata, atau kumpulan karakter.

Terkadang, dalam dunia pemrograman ada kasus dimana kita harus melakukan penggabungan kalimat, pemisahan kalimat, merubah sebuah kalimat menjadi huruf kapital, dan lainnya. Operasi tersebut disebut dengan manipulasi String.

Pada bahasa pemrograman PHP sendiri disediakan beberapa fungsi yang digunakan untuk operasi manipulasi String. Kita akan bahas satu persatu.

1. Concat

Untuk menggabungkan beberapa kata atau Kalimat pada PHP, disebut dengan concatenation. Di PHP sendiri ada beberapa cara yang populer untuk melakukan concat.

// Menggunakan karakter (.) : 
$namaDepan = "Rafi";
$namaBelakang = "Izzatul";
$namaLengkap = $namaDepan . " " . $namaBelakang;
echo $namaLengkap; 
// output : Rafi Izzatul
// Menggunakan interpolasi
$namaDepan = "Rafi";
$namaBelakang = "Izzatul";
$namaLengkap = "$namaDepan $namaBelakang";
echo $namaLengkap; 
// output : Rafi Izzatul

2. substr

substr merupakan fungsi yang digunakan untuk mengambil beberapa karakter dari sebuah Kalimat atau kata. Fungsi ini memiliki 3 parameter, yaitu nilai string yang akan digunakan, index awalan, dan juga index akhir. Indexnya diambil sesuai dengan urutan karakter yang ada di Kalimat tersebut. (Karakter pertama berindex 0).

$namaLengkap = "Rafi Izzatul";
$namaBelakang = substr($namaLengkap, 5, 12);
echo $namaBelakang; 
// output : Izzatul

3. strpos

Untuk mengecek Apakah sebuah Kalimat mengandung karakter yang kita tentukan atau tidak, kita bisa memakai fungsi strpos. Fungsi ini akan mengembalikan atau menghasilkan boolean true jika Kalimat tersebut mengandung karakter yang kita inputkan. Sebaliknya, fungsi contains akan menghasilkan boolean false jika Kalimat tersebut tidak mengandung Kalimat yang kita inputkan.

$namaLengkap = "Rafi Izzatul";
echo strpos($namaLengkap, "afi"); 
// output : 1 (artinya true)

4. strtolower

strtolower adalah fungsi yang digunakan untuk merubah Kalimat atau karakter menjadi huruf kecil. 

$namaDepan = "RAFI";
echo strtolower($namaDepan); 
// output : rafi

5. strtoupper

Kebalikan dari fungsi strtolower, fungsi strtoupper adalah fungsi yang digunakan untuk merubah Kalimat atau karakter menjadi huruf kapital.

$namaBelakang = "izzatul";
echo strtoupper($namaBelakang); 
// output : IZZATUL

6. str_replace

Fungsi str_replace merupakan fungsi yang digunakan untuk mengganti karakter yang ada di dalam String menjadi karakter baru yang kita inginkan. Fungsi ini mempunyai 3 parameter. Parameter yang pertama berisi karakter apa yang ingin kita ganti dalam sebuah string. Parameter yang kedua berisi karakter baru yang akan menggantikan karakter lama yang kita isi pada parameter pertama. Dan paramater yang terakhir diisi dengan value string nya.

$greeting = "Hai";
echo str_replace("a", "e", $greeting); 
// output : Hei

7. strlen

strlen adalah fungsi yang digunakan untuk menghitung berapa banyak jumlah karakter yang ada di dalam sebuah String.

$namaLengkap = "Rafi Izzatul";
echo strlen($namaLengkap); 
// output : 12

Oke teman teman, sekian dulu artikel kali ini. Sampai jumpa di artikel berikutnya.

Workshop Rumah Coding Web Development Bulan Agustus 2017

Bulan Agustus 2017 mendatang, Rumah Coding kembali mengadakan workshop dan pelatihan seputar coding supaya menjadi developer program terutama bagi pemula yang ingin mendalami ilmu dalam dunia website. Berbeda dengan workshop-workshop sebelumnya yang banyak mengangkat tema aplikasi Android, workshop kali ini mengambil tema seputar pengembangan sebuah Website . Dengan mendatangkan pemateri yang kompeten di bidangnya, tentunya sangat sayang untuk dilewatkan. Workshop ini diperuntukan bagi para pemula yang ingin menambah ilmu dan pengetahuannya seputar koding (khusus web), jadi jika belum memiliki skill coding, jangan putus asa, inilah waktu yang tepat untuk belajar. Berikut adalah beberapa workshop pada bulan Agustus 2017 mendatang.

1. Mastering JavaScript : JQuery
Hari: Minggu,
Tanggal: 13 Agustus 2017
Waktu: 09:00 – 17:00
Biaya: Rp. 200.000

2. Mastering PHP : CodeIgniter
Hari: Minggu,
Tanggal: 27 Agustus 2017
Waktu: 09:00 – 17:00
Biaya: Rp. 200.000

3.Develop Your Own WordPress Theme
Hari: Minggu,
Tanggal: 10 September 2017
Waktu: 09:00 – 17:00
Biaya: Rp. 200.000

Tempat: DILo (Digital Innovation Longue ) Depok
Jl. Margonda Raya No. 23 (Rukan Sebelah BPJS Kesehatan Kota Depok),
Kel. Depok, Kec. Pancoran MAS, Depok, Pancoran MAS, Kota Depok, Jawa Barat 16431
https://goo.gl/maps/2cb1AZBRGZQ2

 

Persyaratan:
1. Memiliki laptop sendiri (Windows/Linux/Mac 2GB RAM)

Tahap pendaftaran:
1. Mengisi formulir di bawah.
2. Peserta akan dihubungi melalui email/whatsapp
3. Pembayaran via transfer
4. Workshop.

Fasilitas:
1. Sertifikat
2. Lunch
3. Ruangan Full AC

Catatan:
– Tersedia koneksi internet, tetapi untuk berjaga-jaga, silahkan mempersiapkan koneksi internet masing-masing.

Informasi:
085274127245
[email protected]

 

Menampilkan Data dari MySQL ke Dalam List View Pada Android Menggunakan PHP

Pada tutorial ini, anda akan belajar membuat sebuah aplikasi android sederhana yang menggunakan List View. Data yang akan ditampilkan adalah kumpulan aplikasi android yang populer di Play Store lengkap dengan icon, total download dan data rating dari masing-masing aplikasi. Data total download dan rating yang kita gunakan dalam tutorial ini bukan merupakan data asli, akan tetapi hanya berupa data dumi untuk tujuan demo.

Data dumi tersebut akan disimpan dalam database MySQL. Kemudian anda juga akan membuat script PHP yang akan mengambil data dumi tadi dari database MySQL. Aplikasi android yang anda buat kemudian memanggil script PHP tadi untuk mengambil data dumi dalam format JSON (Javascript Object Notation). Sebelum saya menjelaskan tahap-tahap pembuatan aplikasi tersebut. Saya akan menjelaskan terlebih dahulu konsep-konsep dasar yang perlu anda pahami.

 

Mengenal JSON

JSON (Javascript Object Notation) merupakan format pertukaran data. Sebuah objek JSON merupakan kumpulan dari pasangan key dan value yang diawali dengan tanda “{” dan diakhiri dengan tanda “}”. Berikut ini adalah contoh sebuah objek JSON yang akan anda gunakan dalam tutorial ini.

var json = {
    'title' : 'Facebook',
    'rating' : 5,
    'total_dl' : 10990998,
    'icon' : 'facebook'
};

Sebuah array dari JSON merupakan serangkaian object JSON. Di bawah ini merupakan contoh array dari beberapa objek JSON di atas.

var json = [
    {'title' : 'Facebook',
    'rating' : 5,
    'total_dl' : 10990998,
    'icon' : 'facebook'},
    {'title' : 'Twitter',
    'rating' : 5,
    'total_dl' : 12343487,
    'icon' : 'twitter'},
    {'title' : 'Whatsapp',
    'rating' : 4,
    'total_dl' : 5635989,
    'icon' : 'whatsapp'}
    ];

 

Konsep Dasar

 

As I’ve stated before, we’ll create simple android application that show a list of top application. We use android list view to display the data. The list data come from MySQL server. So this application will have a http connection feature. Communication between server and android application is use JSON based data. In this tutorial we’ll use apached server in localhost that running AVD (Android Virtual Device).
The data that are fetched from server including applicatoin title, rating, total download and icon name. For simplicity of the tutorial, we’ll use an icons that are saved in /res/drawable folder for applications. This will reduce the complexity of downloading the icons from server.
Below is final screenshot of our tutorial

Populate Listview Using JSON
Populate Listview Using JSON

Server Side Task

1. Creating A Database in MySQL

Before creating a database in MySQL, make sure you’ve create a user to login into the MySQL server. In this tutorial, we use a default user root with blank password.
We’ll create a simple database scheme for the application. The database will be used to store application data. Execute the following sql to create such database.

CREATE DATABASE apps;

Now, we have a database apps. We need to create a table in database apps that will store the application title, total download, rating and icon file name. Execute the following sql to create the table.

CREATE TABLE `app_data`(
    `id` int unsigned NOT NULL AUTO_INCREMENT,
    `app_title` varchar(150) NOT NULL,
    `total_dl` int unsigned NOT NULL default 0,
    `rating` int unsigned NOT NULL default 0,
    `icon` varchar(120) NOT NULL,
    primary key(`id`)
);

Now, we must put sample application data into the table. Execute the following sql to create sample application data.

INSERT INTO app_data VALUES(null, "Facebook", 20099099, 5, "facebook");
INSERT INTO app_data VALUES(null, "Twitter", 11342099, 5, "twitter");
INSERT INTO app_data VALUES(null, "Google +", 10123023, 4, "google");
INSERT INTO app_data VALUES(null, "Whatsapp", 10033876, 3, "whatsapp");
INSERT INTO app_data VALUES(null, "Youtube", 10023444, 4, "youtube");
INSERT INTO app_data VALUES(null, "Line", 9023434, 5, "line");
INSERT INTO app_data VALUES(null, "Kakao Talk", 8247836, 3, "kakao");
INSERT INTO app_data VALUES(null, "Linked In", 784736, 4, "linkedin");
INSERT INTO app_data VALUES(null, "Angry Bird", 693847, 2, "angrybird");
INSERT INTO app_data VALUES(null, "Skype", 528374, 3, "skype");

 

2. Create PHP Script to Fetch the Data

The database now ready, we need create a PHP script that connect to MySQL server and get the application data. Then the application data is converted into JSON string that will send into client (android application). This script use user root with blank password to login into MySQL server, you can change them to meet your server account.

<?php
$host = "localhost"; // host of MySQL server
$user = "root"; // MySQL user
$pwd = ""; // MySQL user's password
$db = "apps"; // database name

// Create connection
$con = mysqli_connect($host, $user, $pwd, $db);

// Check connection
if(mysqli_connect_errno($con)) {
    die("Failed to connect to MySQL: " . mysqli_connect_error());
} 

// query the application data
$sql = "SELECT * FROM app_data ORDER By id";
$result = mysqli_query($con, $sql);

// an array to save the application data
$rows = array();

// iterate to query result and add every rows into array
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
    $rows[] = $row; 
}

// close the database connection
mysqli_close($con);

// echo the application data in json format
echo json_encode($rows);

Save above source as PHP file and give a name apps.php and you must place it in apache document root, for example http://localhost/test/apps.php.

3. Testing PHP Script in A Browser

We must test the PHP script we’ve created to make sure the script works well. Open your browser and goto http://localhost/test/apps.php (the url may depend on your environtment). If the script works well, you’ll see the following result in your browser.

JSON In Browser
JSON In Browser

Client Side Task (Android Application)

After the server side is ready and tested, now we’ll create an android application that will create a http request to PHP script that we’ve created previously to get all application data and display the data in a list view. In order to display all of data like application title, total downloads, rating and icon, we must create a custom adapter for the list view.
Open your Eclipse IDE and create new android application. Use JsonDemo as the project’s name.
Do the following step by step to create the application.

1. Create Main Layout File

This file is an xml layout file that defines the main user interface. It contains a list view that will display all of the application data.
Save below source code as /res/layout/activity_main.xml.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" >

    <ListView android:id="@android:id/list" android:layout_width="match_parent" android:layout_height="wrap_content" >
    </ListView>

</LinearLayout>

 

2. Create Custom List View Layout File

This file is an xml layout file. It responsibles to define a custom view the list view that is contained in the main layout. This file will be used in the custom adapter that will be defined later. The layout contains 3 TextView and 1 ImageView. The image view is used to display the application icon. It is placed on the left. First text view is used to display application’s title. It is placed on the right of the icon. Second text is used to display application’s rating. It is placed on the bottom application’s title. The last text view is used to display the application’ total download.
Save below source code as /res/layout/app_custom_list.xml.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" >

    <ImageView android:id="@+id/appIcon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginLeft="3dp" android:layout_marginTop="3dp" android:src="@drawable/facebook" />
    <TextView android:id="@+id/titleTxt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignTop="@id/appIcon" android:layout_toRightOf="@id/appIcon" android:layout_marginLeft="3dp" android:text="Application Title" android:textSize="22dp"/>

    <LinearLayout android:id="@+id/ratingCntr" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@id/appIcon" android:layout_below="@id/titleTxt" android:layout_marginLeft="5dp" >
    </LinearLayout>

    <TextView android:id="@+id/dlTxt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/titleTxt" android:layout_alignParentRight="true" android:layout_marginRight="3dp" android:text="0 dl" />    

</RelativeLayout>

 

3. Create Application Value Object File

This file is a java object class that represents an application value object. It has several properties that are mapped from the app_data table from our database. It has properties such as application name, total downloads, rating and icon. Below is definition of the file. Below is the source code that define application value object. Save it as /src/com/sj/jsondemo/Application.java.

package com.sj.jsondemo;

public class Application {
    private String title;
    private long totalDl;
    private int rating;
    private String icon;
    
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public long getTotalDl() {
        return totalDl;
    }
    public void setTotalDl(long totalDl) {
        this.totalDl = totalDl;
    }
    public int getRating() {
        return rating;
    }
    public void setRating(int rating) {
        this.rating = rating;
    }
    public String getIcon() {
        return icon;
    }
    public void setIcon(String icon) {
        this.icon = icon;
    }
}

 

4. Create Custom Adapter File

This file is list view’s custom adapter that will inflate /res/layout/app_custom_list.xml layout file. It’s constructor is defined with 1 parameter. The parameter is an array list of application value object. The adapter will inflates the layout for each application object in the array list and change the application title, rating, total downloads and icons dynamically.
Below is source code that defines the custom adapter. Save it as /src/com/sj/jsondemo/ApplicationAdapter.java.

package com.sj.jsondemo;

import java.text.NumberFormat;
import java.util.List;

import android.content.Context;
import android.content.res.Resources;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

public class ApplicationAdapter extends ArrayAdapter<Application>{
    private List<Application> items;
    
    public ApplicationAdapter(Context context, List<Application> items) {
        super(context, R.layout.app_custom_list, items);
        this.items = items;
    }
    
    @Override
    public int getCount() {
        return items.size();
    }
    
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View v = convertView;
        
        if(v == null) {
            LayoutInflater li = LayoutInflater.from(getContext());
            v = li.inflate(R.layout.app_custom_list, null);            
        }
        
        Application app = items.get(position);
        
        if(app != null) {
            ImageView icon = (ImageView)v.findViewById(R.id.appIcon);
            TextView titleText = (TextView)v.findViewById(R.id.titleTxt);
            LinearLayout ratingCntr = (LinearLayout)v.findViewById(R.id.ratingCntr);
            TextView dlText = (TextView)v.findViewById(R.id.dlTxt);
            
            if(icon != null) {
                Resources res = getContext().getResources();
                String sIcon = "com.sj.jsondemo:drawable/" + app.getIcon();
                icon.setImageDrawable(res.getDrawable(res.getIdentifier(sIcon, null, null)));
            }
            
            if(titleText != null) titleText.setText(app.getTitle());
            
            if(dlText != null) {
                NumberFormat nf = NumberFormat.getNumberInstance();
                dlText.setText(nf.format(app.getTotalDl())+" dl");            
            }
            
            if(ratingCntr != null && ratingCntr.getChildCount() == 0) {        
                /*
                 * max rating: 5
                 */
                for(int i=1; i<=5; i++) {
                    ImageView iv = new ImageView(getContext());
                    
                    if(i <= app.getRating()) {
                        iv.setImageDrawable(getContext().
                        getResources().getDrawable(R.drawable.start_checked));
                    }
                    else {                
                        iv.setImageDrawable(getContext().
                        getResources().getDrawable(R.drawable.start_unchecked));
                    }
                    
                    ratingCntr.addView(iv);
                }
            }
        }
        
        return v;
    }
}

 

5. Create An Async Task File To Get The Data From Server

This file responsibles to get all the application data by creating a http request to PHP script. It is defined by subclassed AsyncTask object class. This means the task will be execute in the background, so it never block the user interface. When the task is executed, a progress bar will be shown to make the interface user friendly. This file communicate to activity via a listener that we’ll create later. This communication is important because we need to notify the activity when all the data has been fetched.
Below is the source code that define the async task. Save it as /src/com/sj/jsondemo/FetchDataTask.java.

package com.sj.jsondemo;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.os.AsyncTask;

public class FetchDataTask extends AsyncTask<String, Void, String>{
    private final FetchDataListener listener;
    private String msg;
    
    public FetchDataTask(FetchDataListener listener) {
        this.listener = listener;
    }
    
    @Override
    protected String doInBackground(String... params) {
        if(params == null) return null;
        
        // get url from params
        String url = params[0];
        
        try {
            // create http connection
            HttpClient client = new DefaultHttpClient();
            HttpGet httpget = new HttpGet(url);
            
            // connect
            HttpResponse response = client.execute(httpget);
            
            // get response
            HttpEntity entity = response.getEntity();
            
            if(entity == null) {
                msg = "No response from server";
                return null;        
            }
         
            // get response content and convert it to json string
            InputStream is = entity.getContent();
            return streamToString(is);
        }
        catch(IOException e){
            msg = "No Network Connection";
        }
        
        return null;
    }
    
    @Override
    protected void onPostExecute(String sJson) {
        if(sJson == null) {
            if(listener != null) listener.onFetchFailure(msg);
            return;
        }        
        
        try {
            // convert json string to json array
            JSONArray aJson = new JSONArray(sJson);
            // create apps list
            List<Application> apps = new ArrayList<Application>();
            
            for(int i=0; i<aJson.length(); i++) {
                JSONObject json = aJson.getJSONObject(i);
                Application app = new Application();
                app.setTitle(json.getString("app_title"));
                app.setTotalDl(Long.parseLong(json.getString("total_dl")));
                app.setRating(Integer.parseInt(json.getString("rating")));  
                app.setIcon(json.getString("icon"));
                
                // add the app to apps list
                apps.add(app);
            }
            
            //notify the activity that fetch data has been complete
            if(listener != null) listener.onFetchComplete(apps);
        } catch (JSONException e) {
            msg = "Invalid response";
            if(listener != null) listener.onFetchFailure(msg);
            return;
        }        
    }
    
    /**
     * This function will convert response stream into json string
     * @param is respons string
     * @return json string
     * @throws IOException
     */
    public String streamToString(final InputStream is) throws IOException{
        BufferedReader reader = new BufferedReader(new InputStreamReader(is));
        StringBuilder sb = new StringBuilder(); 
        String line = null;
        
        try {
            while ((line = reader.readLine()) != null) {
                sb.append(line + "\n");
            }
        } 
        catch (IOException e) {
            throw e;
        } 
        finally {           
            try {
                is.close();
            } 
            catch (IOException e) {
                throw e;
            }
        }
        
        return sb.toString();
    }
}

 

6. Create Fetch Data Listener

This file is simple Java interface. It has two method’s declarations, onFetchCompleted and onFetchFailure. onFetchCompleted method will be called from FetchDataTask when data fetching is complete. onFetchFailure will be called from FetchDataTask when data fetching is failure.
Save below source code as /src/com/sj/jsondemo/FetchDataListener.java.

package com.sj.jsondemo;

import java.util.List;

public interface FetchDataListener {
    public void onFetchComplete(List<Application> data);
    public void onFetchFailure(String msg);
}

 

7. Create Activity

This is main activity that will inflate /res/layout/activity_main.xml to create main user interface. When the activity is created, it’s create new FetchDataTask instance and call execute method of the instance. The task runs and start to get all application data in the background. Before execute the task, the activity show progress bar to the user to indicate that the system is loading the data.
This activity also implements FecthDataListener and overriden onFetchCompleted and onFetchFailure. onFetchFailure is used by activity to hide the progress bar and display failure message to user. onFetchCompleted is used by activity to hide the progress bar and display the application data into the list.
The apache server that we used is localhost which same as host that run AVD(Android Virtual Device), so to refers this host from AVD, we must use IP address 10.0.2.2. For more information please visit Android Developer Site.
Save below source code as /src/com/sj/jsondemo/MainActivity.java.

package com.sj.jsondemo;

import java.util.List;

import android.app.ListActivity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.widget.Toast;

public class MainActivity extends ListActivity implements FetchDataListener{
    private ProgressDialog dialog;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);        
        setContentView(R.layout.activity_main);        
        initView();   
    }

    private void initView() {
        // show progress dialog
        dialog = ProgressDialog.show(this, "", "Loading...");
        
        String url = "http://10.0.2.2/test/apps.php";
        FetchDataTask task = new FetchDataTask(this);
        task.execute(url);
    }
    
    @Override
    public void onFetchComplete(List<Application> data) {
        // dismiss the progress dialog
        if(dialog != null)  dialog.dismiss();
        // create new adapter
        ApplicationAdapter adapter = new ApplicationAdapter(this, data);
        // set the adapter to list
        setListAdapter(adapter);        
    }

    @Override
    public void onFetchFailure(String msg) {
        // dismiss the progress dialog
        if(dialog != null)  dialog.dismiss();
        // show failure message
        Toast.makeText(this, msg, Toast.LENGTH_LONG).show();        
    }
}

8. Create Manifest File

The application make a http request, so the the manifest file must contains network usage permission. Below is complete manifest file. Save it as Android.Manifest.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.sj.jsondemo" android:versionCode="1" android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17" />
    <uses-permission android:name="android.permission.INTERNET" />

    <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" >
        <activity android:name="com.sj.jsondemo.MainActivity" android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

How to get domain name in javascript

Getting domain name from javascript is simple. You can get domain name from [cci]window.location.hostname[/cci] variable.

var hostname = window.location.hostname;
alert(hostname);

Click following button to test above code.

Get full domain name

Domain name you got this way is simply domain name in browser address bar. Sometimes address bar you got not include [cci]http://[/cci] or [cci]www[/cci] prefix. To make sure you get the full domain name, you must check it first.

var hostname = window.location.hostname;
hostname = (hostname.indexOf('www.')!=-1?hostname:'www.'+hostname);
hostname = (hostname.indexOf('http')!=-1?hostname:'http://'+hostname);
alert(hostname);

Click button belo to try above code:

Filter associative array based on array key in PHP

PHP has so many built in function to work with array. In this tutorial I would present to you how to filter an associative array based on array keys. For example, you have an associative array [cci]$groups[/cci]:

$groups = array(
    'a' => 'book',
    'b' => 'pencil',
    'c' => 'pen'
);

And array of keys:

$keys = array('a', 'b');

Now, how to get sub array of [cci]$groups[/cci] which key contained in [cci]$keys[/cci]? Our goal is to create new associative array like this:

$news = array(
    'a' => 'book',
    'b' => 'pencil'
);

Every keys in array [cci]$news[/cci] contained in [cci]$keys[/cci]. Here the way to do that:

$news = array();

foreach($groups as $k=>$v){
    if(in_array($k, $keys)){
        $news[$k]  = $v;
    }
}