Rabu, 03 September 2014

Memilih Nilai Tertinggi antara 2 Nilai [PHP]


ada pertanyaan yang meluncur di group PHP Indonesia, yang mana kasusnya pernah saya hadapi dulu kala.
berikut kasusnya
Oleh karena itu saya akan coba buat data yang sama sehingga menghasilkan seperti ini.
Gimana cukup sama bukan :D.
jadi permasalahnya adalah mencari Nilai tertinggi dari nilai Semester dan Remedial.
tidak terlalu rumit dan hasilnya adalah seperti berikut ini :
Gmn kelar kan. Caranya cukup mudah disini saya masih menggunakan CodeIgniter.
pertama yang saya belum tahu apakah yang di dalam database nilai semester dan remedial menyimpan value angka atau huruf, disini saya menggunakan value angka.
dengan hitungan saya adalah :
nilai Angka = Nilai Huruf
4 = A
3 = B
2 = C
1 = D
0 = E
supaya saat outputnya meuncul nilai huruf saya membuat sebuah helper function 
function huruf($nilai)
{
if( $nilai == 4 )
{
$huruf = 'A';
}
else if ( $nilai == 3 )
{
$huruf = 'B';
}
else if ( $nilai == 2 )
{
$huruf = 'C';
}
else if ($nilai == 1)
{
$huruf = 'D';
}
else
{ $huruf = 'E';
}
return $huruf;
}
dengan menggunakan function  helper huruf ini permasalah konversi nilai dari angka ke huruf sudah teratasi.
tinggal mengambil nilai tertinggi dari kedua nilai tersebut. disini saya masih menggunakan function  helper lagi.
function tertinggi($a,$b)
{
if( $a > $b )
{
$tinggi = $a;
}
else if ( $b > $a)
{
$tinggi = $b;
}
else if ( $a == $b )
{
$tinggi = $a;
}
else
{ $tinggi = 'ERROR';
}
return $tinggi;
}
saya mengasumsikan adalah :
$a = Nilai Semester
$b = Nilai Remedial
jika anda menjalakan Function ini maka akan muncul nilai angka saja, jadi harus menggunakan sub function seperti contoh saya membuatnya seperti ini :
<?= huruf(tertinggi($dt->semester,$dt->remedial));?> 
 $dt->semester = mengambil nilai semester dan menjadikan $a
$dt->remedial = mengambil nilai remedial dan menjadikan $b
tertinggi = function pemelihan nilai tertinggi
huruf = konversi nilai yang di hasilkan oleh function tertinggi menjadi huruf.
Itulah solusi dari permasalah di atas. bagaiman cukup mudah bukan :D. semoga bermanfaat

Parse Template [CodeIgniter] Part 2


Melanjutkan artikel sebelumnya yang masih tentang Parse Template CodeIgniter.
Sebelumnya kita mempunyai controllers Tes
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Tes extends CI_Controller {
public function index()
{
$this->load->library('parser');
  $data=array(
   'title'=>'Belajar Parse',
   'judul'=>'Parse Template [CodeIgniter]',
   'link'=>'http://h4nk.blogspot.com/2014/09/parse-template-codeigniter.html',
   );
        $this->parser->parse('tes',$data);
}
}
dan pada View tes Kita mempunyai script :
<html>
<head>
<title>{title}</title>
</head>
<body>
<a href="{link}">{judul}</a></br>
Linknya di sini : {link}</body>
</html> 
 Sekarang kita akan melakukan parse dari database, yang mana sebelumnya buat sebuah tabel pada database
CREATE TABLE IF NOT EXISTS `artikel` (
  `id_artikel` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(250) NOT NULL,
  `judul` varchar(250) NOT NULL,
  `link` text NOT NULL,
  PRIMARY KEY (`id_artikel`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;

INSERT INTO `artikel` (`id_artikel`, `title`, `judul`, `link`) VALUES
(1, 'Belajar Parse Part 1', 'Parse Template [CodeIgniter]  Part 1', 'http://h4nk.blogspot.com/2014/09/parse-template-codeigniter.html'),
(2, 'Belajar Parse Template [CodeIgniter] Part 2', 'Parse Template [CodeIgniter] Part 2', 'http://h4nk.blogspot.com/2014/09/parse-template-codeigniter-part-2.html');
lakukan konfigurasi database pada CodeIgniter dengan benar.
pada Controller tahap pertama kita akan melakukan load 2 library yaitu database dan parse
$this->load->database();
  $this->load->library('parser');
Melakukan pemanggilan data ke tabel artikel yang mana sebelumnya sudah kita buat.
  $sql=$this->db->query('Select * from artikel');
Memasukan hasil Sql kedalam array :
 $data=array(
   'artikel'=>$sql->result(),
   );
Melakukan parse data ke tampilan view
        $this->parser->parse('tes',$data);
Pada Script Views tes kita akan menambahkan beberapa sintax supaya data dalam database terbaca dengan benar.
<html>
<head>
{artikel}
<title>{title}</title>
</head>
<body>
<a href="{link}">{judul}</a></br>
Linknya di sini : {link}</body></br>
{/artikel}
</html>
sehingga akan menghasilkan output seperti gambar dibawah ini :
 Untuk melihat script controller full :
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Tes extends CI_Controller {
public function index()
{
$this->load->database();
  $sql=$this->db->query('Select * from artikel');
  $this->load->library('parser');
  $data=array(
   'artikel'=>$sql->result(),
   );
        $this->parser->parse('tes',$data);
    }
}
Coba anda lihat pada view tes
ada {artikel} , {/artikel} , {judul} ,{link} dan {title}

Intinya pada artikel tersebut ada nama-nama field pada tabel artikel tersebut.
Keterangan :
{artikel} = Memulai fetch data
{/artikel} = Mengakhiri fetch data
{judul} {link} {title}= mengambil field pada tabel artikel

Download Script

Baca Juga :
Parse Template [CodeIgniter] Part 1

Parse Template [CodeIgniter]


Website Parse Template (WPT) adalah format terbuka berbasis XML yang menyediakan HTML deskripsi struktur pada halaman situs web.
pada sebagian pendapat parse adalah membuat shortcode untuk digunakan pada sebuah file html. Anda masih bingung akan hal ini, oleh karena itu saya akan menjelaskan dengan beberapa contoh, untuk hal ini saya menggunakan Framework CodeIgniter.
Kita sudah mengenal memberikan data terhadap view dengan menggunakan :
$data['title']='Hello World!';
$this->load->view('tes',$data);
pada View seperti ini :
<html>
<head>
<title><?= $title;?></title>
</head>
<body>
<?= $title;?>
</body>
</html>
Dengan sintax seperti itu akan menghasilkan seperti gambar di bawah ini :
View hasil pengiriman data
 sekarang kita akan menggunakan teknik parse pada CodeIgniter
sebelumnya load library parse
$this->load->library('parser');
Saya akan membuat sebuah array 

$data=array(
   'title'=>'Belajar Parse',
   'judul'=>'Parse Template [CodeIgniter]',
   'link'=>'http://h4nk.blogspot.com/2014/09/parse-template-codeigniter.html',
   );
 Lalu akan view lewat parse      
 $this->parser->parse('tes',$data);
Pada View saya menggunakan script ini :

<html>
<head>
<title>{title}</title>
</head>
<body>
<a href="{link}">{judul}</a></br>
Linknya di sini : {link}</body>
</html> 


Sehingga menghasilkan pada output nya

Pada view kita tidak perlu lagi melakukan <?= $title;?> tapi langsung pada {title}.
tujuan artikel ini adalah untuk mempermudah anda untuk membangun sebuah templatenya. Untuk kelanjutan artikel ini adalah kita akan mencoba parse dengan menggunakan database.

Download Script

Baca Juga :
Parse Template [CodeIgniter] Part 2

Senin, 01 September 2014

Multiple Input [CodeIgniter]


Multiple Input adalah melakukan inputan data sekaligus , beda dengan inputan data satu persatu. Pada kasus ini saya akan memberikan contoh adalah input katalog buku. yang mana pada tabel databasenya mempunyai field penerbit,nama,tahun.
untuk exekusi saya menggunakan Framework CodeIgniter. ada beberapa cara untuk melakukan multiple inputa ini, untuk kasus ini saya menggunakan cara memberikan jumlah masukan input.
Tampilan Masukan Jumlah Inputan
Sebelum melakukan inputan kita harus memasukan jumlah item yang akan di proses. menurut saya ini metode yang simpel untuk melakukan multiple inputan.
tahap-tahap yang dapat di atur adalah :
1. Download FrameWork CodeIgniter terlebih dahulu.
Download Disini
2. Buat Folder tempat pembuatannya.
3. Buat Sebuah database dengan .
script Database :
CREATE TABLE IF NOT EXISTS `buku` (
  `id` int(5) NOT NULL AUTO_INCREMENT,
  `penerbit` varchar(50) NOT NULL,
  `nama` varchar(100) NOT NULL,
  `tahun` year(4) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
4. Atur Konfigurasi pada CodeIgniter dengan Database anda
path : application/config/database.php 
$db['default']['hostname'] = 'localhost'; // Masukan sesuai dengan Host database
$db['default']['username'] = ''; // Masukan sesuai dengan user database
$db['default']['password'] = ''; // Masukan sesuai dengan password database
$db['default']['database'] = ''; // Masukan sesuai dengan Nama database
$db['default']['dbdriver'] = 'mysqli';
5.  Buat Sebuah Controller disini saya beri nama Buku.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Buku extends CI_Controller {

function add_multiple() {
        if($_POST==NULL) {
            $this->load->view('add_multiple');
        }else {
            redirect('Buku/add_multiple_post/'.$_POST['banyak_data']);
        }
    }
    function add_multiple_post($banyak_data=0) {
        if($_POST==NULL) {
            $data['banyak_data'] = $banyak_data;
            $this->load->view('add_multiple_form',$data);
        }else {
            foreach($_POST['data'] as $d){
                $this->db->insert('buku',$d);
            }
            redirect('Buku/lihat_data');
        }
    }
function lihat_data(){
        $data['buku'] = $this->db->get('buku')->result();
        $this->load->view('list_buku',$data);
    }
}
6. Buah File View add_multiple.php

<h2>Multiple Form Input Katalog Buku</h2><form action="" method="post">    Banyak Buku Yang kan dimasukan :    <input name="banyak_data" size="3" /> Buah<br />    <input type="submit" value="Lanjut" /></form>
7. Buat File view add_multiple_form.php

<h2>Multiple Form Input Katalog Buku</h2>
<form action="" method="post">
    <table>
        <tr>  
   <td>No</td>
            <td>Penerbit</td>
            <td>Nama Buku</td>
            <td>Tahun Terbit</td>
        </tr>
        <?php for($i=1;$i<=$banyak_data;$i++): ?>
        <tr>  <td><?= $i ?></td>
            <td><input type="text" name="data[<?= $i ?>][penerbit]" /></td>
            <td><input type="text" name="data[<?= $i ?>][nama]" /></td>
            <td><input type="text" name="data[<?= $i ?>][tahun]" /></td>
        </tr>
        <?php endfor ?>
    </table>
    <input type="submit" value="simpan" />
</form>

8. Buat File View list_buku.php

<h2>Daftar Katalog Buku</h2>
<table>
    <tr>
        <th>No</th>
        <th>Penerbit</th>
        <th>Nama Buku</th>
        <th>Tahun Terbit</th>
    </tr>
    <?php $i = 0 ?>
    <?php foreach($buku as $bk): ?>
    <tr>
        <td><?= $i++ ?></td>
        <td><?= $bk->penerbit ?></td>
        <td><?= $bk->nama ?></td>
        <td><?= $bk->tahun ?></td>
    </tr>
    <?php endforeach ?>
</table>
<?php echo anchor('Buku/add_multiple','Tambah Data') ?>
Download Script