Minggu, 12 Agustus 2012


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

import java.io.IOException;
import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.GameCanvas;
import javax.microedition.lcdui.game.Sprite;
import javax.microedition.m3g.Graphics3D;


/**
 * @author kira
 */
public class Game extends GameCanvas implements Runnable{
   
    Graphics g = getGraphics();
    Image bg;
    boolean aktif=true;
    int posX=100,posY=100,kec=3,bgpos=1,score=0,waktu=60,jalan=0;
    Sprite pesawat,ufo,bom,peluru,kar;
    private Random r;
    private Timer t;
    int kiri[]={1,2};
     int kanan[]={3,4};
      int depan[]={5,6};
       int belakang[]={7,8};
    public Game(){
        super(true);
        init();
        new Thread(this).start();
    }
    private void init(){
        r = new Random();
        t = new Timer();
        t.schedule(new TimerTask() {

            public void run() {
                waktu--;
            }
        }, 1000, 1000);
       
        try {
            bg=Image.createImage("/bg2.png");
            pesawat=new Sprite(Image.createImage("/airplane.png"));
            ufo=new Sprite(Image.createImage("/ufo.png"));
            bom=new Sprite(Image.createImage("/ledakan.png"), 125/5, 25);
            peluru=new Sprite(Image.createImage("/peluru.png"));
            kar=new Sprite(Image.createImage("/char.png"),420/10,44);
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }

    public void run() {
        while(true){
            //looping game
            g.setColor(255,0,0);
            bgpos++;
            if(bgpos>bg.getHeight()){
                bgpos=0;
            }
            g.drawImage(bg, 0, bgpos, 0);
            g.drawImage(bg, 0, bgpos-bg.getHeight(), 0);
            g.drawString("Score :"+score, 5, 5, 0);
            g.drawString("Time :"+waktu, 150, 5, 0);
            pesawatX();
             ufoX();
            peluruX();
            bomX();
            karX();
            pesawatX();
         
            //batas loop game
            flushGraphics();
            try {
                Thread.sleep(50);
            } catch (InterruptedException ex) {
                ex.printStackTrace();
            }
        }
    }
 
    private void pesawatX(){
//        int tombol = getKeyStates();
//        if(tombol==RIGHT_PRESSED){
//            posX+=kec;
//          
//            if(posX>=200)posX=200;
//        }
//        if(tombol==LEFT_PRESSED){
//            posX-=kec;
//            if(posX<=0)posX=0;
//        }
//        if(tombol==DOWN_PRESSED){
//            posY+=kec;
//        }
//        if(tombol==UP_PRESSED){
//            posY-=kec;
//        }
 //       if(tombol==FIRE_PRESSED){
 //           aktif=false;
 //       }
   
        pesawat.setPosition(posX, posY);
        pesawat.paint(g);
    }
    private void peluruX(){
        if(aktif){
            peluru.setPosition(pesawat.getX(),pesawat.getY());
            peluru.setVisible(false);
        }else{
            peluru.setVisible(true);
            peluru.move(0, -5);
        }
       
        if(peluru.getY()<0)aktif=true;
       
        if(peluru.collidesWith(ufo, true)){
            aktif=true;
            score+=10;
        }
        peluru.paint(g);
    }
    private void ufoX(){
        ufo.setPosition(10, 50);
        ufo.paint(g);
    }
    private void bomX(){
        //bom.setPosition(120, 20);
        bom.move(0, 5);
        bom.nextFrame();
        if(bom.getY()>getHeight()){
              bom.setPosition(r.nextInt(getWidth()-bom.getWidth()), 0);
        }
     
        bom.paint(g);
    }
    private void karX(){
        //kar.setPosition(100, 200);
     
        int tombol = getKeyStates();
       
        if(tombol==RIGHT_PRESSED){
            if(jalan<1){kar.setFrameSequence(kanan);jalan=0;}
            kar.nextFrame();
            kar.move(3, 0);
         
        }
        if(tombol==LEFT_PRESSED){
             if(jalan==0){kar.setFrameSequence(kiri);jalan=1;}
            kar.nextFrame();
            kar.move(-3, 0);
        }
        if(tombol==DOWN_PRESSED){
            kar.setFrameSequence(depan);
            kar.nextFrame();
            kar.move(0, 3);
        }
        if(tombol==UP_PRESSED){
            kar.setFrameSequence(belakang);
            kar.nextFrame();
            kar.move(0, -3);
        }
       
         kar.paint(g);
    }
   
}


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

import java.io.IOException;
import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.game.GameCanvas;
import javax.microedition.lcdui.game.LayerManager;
import javax.microedition.lcdui.game.Sprite;
import javax.microedition.lcdui.game.TiledLayer;


/**
 * @author kira
 */
public class Game extends GameCanvas implements Runnable{
    private static final int SPEED = 3;
    private static final int MIN_BUFFER = 20;
    private int viewPortX = 0;
    private int viewPortY = 0;
    Graphics g = getGraphics();
    GameDesign gd;
    Sprite Karakter;
    TiledLayer lantai,tembok,tlBase,pohon;
    LayerManager lm;
    private byte lastDirection = -1;
    private SpriteAnimationTask KarakterAnimator;
    private Timer timer;
   
    public Game(){
        super(true);
        init();
        new Thread(this).start();
    }
    private void init(){
       gd = new GameDesign();
       lm = new LayerManager();
       this.timer = new Timer();
       
        //define the reference in the midle of sprites frame so that transformations work well
       
        try {
            this.tlBase = this.gd.getLantai();
            Karakter= gd.getKar();
            tembok=gd.getTembok();
            pohon=gd.getPohon();
            this.Karakter.defineReferencePixel(8, 8);
        this.KarakterAnimator = new SpriteAnimationTask(this.Karakter, false);
        this.timer.scheduleAtFixedRate(this.KarakterAnimator, 0, gd.karbelakangDelay);
         
            gd.updateLayerManagerForDesain(lm);
           
           
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }

    public void run() {
        while(true){
            //looping game
              //check for user input
            int keyState = getKeyStates();

            //if user is pressing the left button
            if ((keyState & LEFT_PRESSED) != 0) {
                //if the previous direction was other than left set the sequence
                //correct sequence & transform needed for walking to the left
                if (this.lastDirection != LEFT) {
                    this.lastDirection = LEFT;
                    this.Karakter.setFrameSequence(gd.karkiri);
                    this.Karakter.setTransform(Sprite.TRANS_NONE);
                    continue;
                }
                //assign the sequence playback direction
                this.KarakterAnimator.forward();
                //move the sprite to the left
                this.Karakter.move(-SPEED, 0);
                //if moving the sprite generates a collision return sprite back
                //to its original position
                if (this.spriteCollides(this.Karakter)) {
                    this.Karakter.move(SPEED,0);
                    continue;
                }
                //attempt to adjust the viewport to keep the sprite on the screen
                this.adjustViewport(this.viewPortX - SPEED, this.viewPortY);
            } else if ((keyState & RIGHT_PRESSED) != 0) {
                if (this.lastDirection != RIGHT) {
                    this.lastDirection = RIGHT;
                    this.Karakter.setFrameSequence(gd.karkanan);
                    this.Karakter.setTransform(Sprite.TRANS_NONE);
                    continue;
                }
                this.KarakterAnimator.forward();
                this.Karakter.move(SPEED, 0);
                if (this.spriteCollides(this.Karakter)) {
                    this.Karakter.move(-SPEED,0);
                    continue;
                }
                this.adjustViewport(this.viewPortX + SPEED, this.viewPortY);
            } else if ((keyState & UP_PRESSED) != 0) {
                if (this.lastDirection != UP) {
                    this.lastDirection = UP;
                    this.Karakter.setFrameSequence(gd.karbelakang);
                    this.Karakter.setTransform(Sprite.TRANS_NONE);
                    continue;
                }
                this.KarakterAnimator.forward();
                this.Karakter.move(0, -SPEED);
                if (this.spriteCollides(this.Karakter)) {
                    this.Karakter.move(0,SPEED);
                    continue;
                }
                this.adjustViewport(this.viewPortX, this.viewPortY - SPEED);
            } else if ((keyState & DOWN_PRESSED) != 0) {
                if (this.lastDirection != DOWN) {
                    this.lastDirection = DOWN;
                    this.Karakter.setFrameSequence(gd.kardepan);
                    this.Karakter.setTransform(Sprite.TRANS_NONE);
                    continue;
                }
                this.KarakterAnimator.forward();
                this.Karakter.move(0, SPEED);
               if (this.spriteCollides(this.Karakter)) {
                    this.Karakter.move(0,-SPEED);
                    continue;
                }
                this.adjustViewport(this.viewPortX, this.viewPortY + SPEED);
            } else {
                this.KarakterAnimator.setMoving(false);
            }

            this.lm.paint(g, 0, 0);
            flushGraphics(0, 0, this.getWidth(), this.getHeight());

            try {
                Thread.sleep(50);
            } catch (InterruptedException ex) {
                ex.printStackTrace();
            }
        }
    }


 private class SpriteAnimationTask extends TimerTask {

        private boolean moving = false;
        private boolean forward = true;
        private Sprite sprite;

        public SpriteAnimationTask(Sprite sprite, boolean forward) {
            this.sprite = sprite;
            this.forward = forward;
        }

        public void run() {
            if (!this.moving) {
                return;
            }
            if (this.forward) {
                this.sprite.nextFrame();
            } else {
                this.sprite.prevFrame();
            }
        }

        public void forward() {
            this.forward = true;
            this.moving = true;
        }

        public void backward() {
            this.forward = false;
            this.moving = true;
        }

        public void setMoving(boolean isMoving) {
            this.moving = isMoving;
        }
    }

 private void adjustViewport(int x, int y) {

        int sx = this.Karakter.getX();
        int sy = this.Karakter.getY();

        int xmin = this.viewPortX + MIN_BUFFER;
        int xmax = this.viewPortX + this.getWidth() - this.Karakter.getWidth() - MIN_BUFFER;
        int ymin = this.viewPortY + MIN_BUFFER;
        int ymax = this.viewPortY + this.getHeight() - this.Karakter.getHeight() - MIN_BUFFER;

        //if the sprite is not near the any screen edges don't adjust
        if (sx >= xmin && sx <= xmax && sy >= ymin && sy <= ymax) {
            return;
        }

        //if the sprite is moving left but isn't near the left edge of the screen don't adjust
        if (this.lastDirection == LEFT && sx >= xmin) {
            return;
        }
        //if the sprite is moving right but isn't near the right edge of the screen don't adjust
        if (this.lastDirection == RIGHT && sx <= xmax) {
            return;
        }
        //if the sprite is moving up but isn't at near top edge of the screen don't adjust
        if (this.lastDirection == UP && sy >= ymin) {
            return;
        }
        //if the sprite is moving down but isn't at near bottom edge of the screen don't adjust
        if (this.lastDirection == DOWN && sy <= ymax) {
            return;
        }

        //only adjust x to values that ensure the base tiled layer remains visible
        //and no white space is shown
        if (x < this.tlBase.getX()) {
            this.viewPortX = this.tlBase.getX();
        } else if (x > this.tlBase.getX() + this.tlBase.getWidth() - this.getWidth()) {
            this.viewPortX = this.tlBase.getX() + this.tlBase.getWidth() - this.getWidth();
        } else {
            this.viewPortX = x;
        }

        //only adjust y to values that ensure the base tiled layer remains visible
        //and no white space is shown
        if (y < this.tlBase.getY()) {
            this.viewPortY = this.tlBase.getY();
        } else if (y > this.tlBase.getY() + this.tlBase.getHeight() - this.getHeight()) {
            this.viewPortY = this.tlBase.getY() + this.tlBase.getHeight() - this.getHeight();
        } else {
            this.viewPortY = y;
        }

        //adjust the viewport
        this.lm.setViewWindow(this.viewPortX, this.viewPortY, this.getWidth(), this.getHeight());
    }

     public boolean spriteCollides(Sprite sprite) {
        return sprite.collidesWith(this.tembok, true)
            || sprite.collidesWith(this.pohon, true)
            || sprite.getX() < 0 || sprite.getY() < 0
            || sprite.getX() > (this.tlBase.getWidth() - sprite.getWidth())
            || sprite.getY() > (this.tlBase.getHeight() - sprite.getHeight()
            );
    }


}

Kamis, 02 Agustus 2012

Sekilas tentang PJJ


1.     Perbedaan 2 model Pembelajaran Pendidikan Tatap Muka dan Pendidikan Jarak Jauh dari segi :
-          Pengajar
Untuk Pendidikan Tatap Muka
1.       Sistem pembelajaran dilaksanakan secara langsung melalui pertemuan tatap muka
2.       Terbatas ruang dan waktu untuk sistem pengajaran
3.       Memerlukan waktu dan tenaga lebih untuk digunakan dalam mengajar
4.       Kecepatan dalam penyampaian materi harus disesuaikan dengan peserta didik

Untuk sistem PJJ
1.        Mudah digunakan dalam pengajaran
2.       Memungkinkan pembuatan bahan pelajaran online dan kelas online dengan cepat dan mudah
3.       Hanya memerlukan pelatihan minimal
4.       Memungkinkan pengajaran dengan cara mereka sendiri
5.       Memungkinkan mereka mengendalikan lingkungan pengajaran

-          Peserta Didik
Pendidikan Tatap Muka
1.       Peserta didik terikat waktu
2.       Terpaket, peserta didik harus mengambil seluruh mata kuliah
3.       Terikat jadwal pertemuan tatap muka di bawah bimbingan pengajar
4.       Dominan tatap muka
5.       Jumlah peserta didik Terbatas

Pendidikan Jarak Jauh
1.       Peserta didik bebas memilih waktu
2.       Peserta didik bebas memilih sesuai kebutuhan
3.       Bebas menentukan jadwal belajar dan tatap muka dengan tutor
4.       Dominan jarak jauh (belajar mandiri)
5.       Jumlah peserta Massal
-          Bahan Ajar
Untuk Pendidikan Tatap Muka
1.       Media yang digunakan adalah media visual secara langsung dengan pengajaran tatap muka.
2.       Masih membutuhkan metode tradisional seperti buku dan alat-alat lainnya.
Untuk Pendidikan Jarak Jauh.
3.       Tutorial yang bersifat pengkajian substansi , tutorial tatap muka jenis ini difokuskan pada kemampuan peserta didik untuk menguasai substansi materi mata kuliah yang lebih bersifat kognitif, termasuk yang bersifat keterampilan kognitif atau keterampilan intelektual.
4.       Tutorial yang bersifat Latihan dan Penghayatan, Tutorial ini difokuskan pada pembentukan keterampilan serta sikap dan nilai.

Untuk Pendidikan Jarak Jauh
Untuk pendidkan jarak jauh metoda yang digunakan untuk bahan ajar adalah Tutorial jarak jauh, tutorial yang dialakukan secara online maupun media pengiriman jarak jauh. Antara lain :
1.      Tutorial secara tertulis yang disampaikan melalui korespondensi
2.      Tutorial melalui multi media.
3.       Tutorial secara tersiar, baik melalui radio maupun televisi (TV)
4.       Tutorial melalui telepon
5.       Tutorial melalui online


2.     Kriteria yang dibutuhkan dari sebuah media pembelajaran agar memenuhi kebutuhan proses  belajar mengajar dalam PJJ
Untuk pelaksanaan pendidikan terbuka dan jarak jauh ada tiga hal yang harus diperhatikan yaitu
1.       Access: provision of quality education everywhere needed
2.       Equity: provision of quality of education to everyone (education for all)
3.       Quality: standardized of quality education everywhere, everytime, for everybody
Sedangkan untuk indikator yang perlu diperhatikan yang sangat khas untuk sistem PTJJ  adalah:
1.       Quality of ODL = quality of face to face learning (knowledge, skills, attitude).  
2.       Economics of scale versus price for quality
3.       Networking  vs. self-sufficient
4.       Sustainability issue (massive versus focused)

Untuk menciptakan media pembelajaran yang baik, maka media tersebut harus memenuhi beberapa syarat, diantaranya:
1. Media pembelajaran harus mempunyai tujuan untuk memberikan dan meningkatkan motivasi peserta didik
2. Media harus merangsang peserta didik untuk mengingat apa yang sudah dipelajari.
3. Media yang baik akan mengaktifkan peserta didik dalam memberikan tanggapan, umpan balik, dan juga mendorong peserta didik untuk melakukan praktek-praktek dengan benar.
4. Penggunaan media harus terencana, untuk menghindari adanya komunikasi yang tidak lengkap, tidak tuntas, atau tertunda.

Selain harus memenuhi syarat di atas, media pembelajaran juga harus kita lihat dari sisi keefektifannya. Menurut Thorn (1995) ada enam karakteristik untuk menilai keefektifan sebuah media:
1. Kemudahan navigasi; sebuah program harus dirancang sedemikian rupa atau sesederhana mungkin sehingga peserta didik tidak perlu belajar komputer dahulu secara menyeluruh.
2. Kandungan kognisi; program ini harus mudah dicerna oleh peserta didik;
3. Pengetahuan dan presentasi informasi; kedua kriteria ini untuk menilai isi dari program itu sendiri, apakah program tersebut telah memenuhi kebutuhan pembelajaran peserta didik atau belum.
4. Integrasi media; media harus mengintegrasikan aspek-aspek pembelajaran yang harus dipelajari;
5. Estetika; media yang digunakan harus mempunyai tampilan yang artistik sehingga menarik minat peserta didik;
6. Fungsi secara keseluruhan; program yang dikembangkan harus memberikan pembelajaran yang diinginkan oleh peserta didik, sehingga pada waktu peserta didik selesai menjalankan program dia akan merasa telah belajar sesuatu.

3.     Faktor pendukung maupun kendala perkembangan PJJ di Indonesia

1.  Aktivitas ganda mahasiswa; aktivitas ganda mahasiswa banyak memberatkan dan menggangu mahasiwa baik kapasitasnya sebagai guru maupun sebagai mahasiswa. Aktivitas ganda menyita banyak waktu, sebab mahasiswa tetap mengajar sebagaimana biasanya disisi lain juga harus mengerjakan tugas-tugas kuliah yang sudah “dipaket”, implikasi atas waktu yang padat adalah pada tugas kuliah dan tugas mengajar yang tidak makasimal, bahkan implikasi negatif pada sebagian mahasiswa melakukan copy paste tugas insiasi milik temannya.
2. Peran ganda dosen yang tetap menjalankan tugas pada perkuliahan konvensional (mengajar, meneliti, menguji dan pengabdian) dan dalam waktu bersamaan menjadi tutor program PJJ berbasis ICT berdampak pada rendahnya monitoring terhadap mahasiswa PJJ.
3. Budaya ICT literacy mahasiswa dan tutor terindikasi masih rendah, hal ini ditunjukan dengan tugas on-line yang lamban direspon oleh tutor maupun mahasiswa, perasaan berat bekerja lewat internet dan sebagian mahasiswa maupun tutor sering lupa dengan alamat web on-line atau password. Upaya untuk mengatasi keterbatasan dan kebiasaan menggunakan perangkat ICT dilakukan pengelola dengan mengadakan program pelatihan peningkatan kemampuan ICT serta “memaksa” mahasiswa untuk senantiasa bersentuhan dengan internet melalui cara pemberian tugas, informasi dan bahan ajar hanya dapat diakses lewat internet.
4. Keterbatasan akses internet pada wilayah tertentu menjadi kendala pelaksanaan pembelajaran, namun sebagian mahasiswa berupaya mengatasi hambatan akses internet dengan memanfaatkan jasa internet pribadi, sementara untuk tutor sebagian besar mengakses internet hanya dilakukan di kampus karena di rumah tidak memiliki internet pribadi.
5. Motivasi belajar dan berprestasi mahasiswa rendah; indikasi dapat dilhat dari tugas yang dikerjakan mahasiswa terkesan seadanya, bahkan sebagian mahasiswa yang terlambat mengumpulkan tugas serta tugas yang di copy paste merupakan kenyataan yang menunjukan bahwa motivasi belajar dan berprestasi mahasiswa masih rendah. Upaya yang dilakuakan untuk meningkatkan motivasi belajar dan berprestasi diantanya dengan memberikan pembekalan belajar.
6. Dukungan sarana belajar; keterbatasan sarana belajar sangat menghambat pelaksanaan pembelajaran pada program PJJ S-1 PGSD FIP UNY, sarana yang paling dibutuhkan oleh mahasiswa untuk mendukung pelaksanaan pembelajaran adalah komputer atau labtop, karena hampir sebagian besar tugas harus dikerjakan dengan komputerais.

Installasi Windows



Installasi XP:
untuk spesifikasi minimal hardware yg dibutuhkan yaitu
• Processor : Pentium III 500 MHz
• Memory (RAM) : 64 MB
• CD-ROM : 35X
• Harddisk : 5 GB
• VGA card : 16 MB• Monitor : VGA, 512 color

Langkah awal Installasi
1. Tekan ENTER atau sembarang tombol, lalu proses instalasi akan mengecek hardware komputer anda, kemudian akan muncul tulisan "windows setup" seperti gambar dibawah ini
2. lalu file-file di dalam cd akan di load ke dalam komputer, kemudian akan muncul tampilan "welcome to setup".
3.Tekan "ENTER" untuk menginstal windows xp, "R" untuk repair system windows yang sebelumnya pernah terinstal, "F3" untuk keluar dari proses instalasi, lalu akan muncul (End User Licese Aggrement).
4.Tekan "F8" kemudian proses instalasi akan mencari dan membaca partisi hardisk anda, kemudian akan muncul semua partisi hardisk anda.
5. Tekan "ENTER" untuk langsung menginstal windows, "C" untuk membuat partisi hardisk anda, kapasitas partisi sesuai dengan kebutuhan anda, dalam satuan MB, selanjutnya jika anda membuat partisi dengan menekan tombol "C"
6. Kemudian tuliskan kapasitas partisi yang ingin anda buat, misalkan kapasitas hardisk anda 40 GB, lalu anda ingin membagi dua, maka tuliskan 20000,jangan 20, karna partisi satuannya MB, tentunya anda mengerti kan...?? cat" 1GB = 1000 MB
7. Kenudian tekan "ENTER" maka akan muncul gambar seperti dibawah ini
8. kemudian pilih "format the partition using the NTFS file system (Quick)" atau "format the partition using the NTFS file system (Quick)" lalu tekan "ENTER"
9. Kemudian arahkan pointer pada posisi "unpartitioned space", lalu tekan "C", dalam hal ini layar yang akan muncul menunjukan sisa partisi yang telah anda bagi, jika anda cuma membagi 2 partisi saja maka langsung tekan "ENTER" tapi jika anda ingin mempartisi lagi sisa hardisknya maka tinggal di bagi lagi aj, seperti langkah-langkah sebelumnya, mengertikan maksud saya....??
setelah selesai partisi ketika anda menekan "ENTER" seperti yang di jelaskan di atas,  setelah itu arahkan poiter di posisi C: partition1 [New Raw], tapi biasanya sudah berada di posisi tersebut, maka anda tinggal menekan "ENTER" saja untuk proses instalasi windows,
10. Setelah selesai format, kemudian windows akan ,menyalin file untuk proses instalasi,
11.Setelah proses penyalinan selesai, secara otomatis komputer akan melakukan restart seperti gambar di bawah ini, dalam hal ini untuk mempercepat proses restart, anda bisa langsung menekan "ENTER"
12. Setelah restart selanjutnya proses instalasi windows di mulai 1..2..3...GOoooo muncul layar
13. Kemudian muncul Regional and language Options klik aja next
14. Muncul box name and organitation isikan terlebih dahulu.
15. Muncul Product Key isikan key sesuai dengan licensi bawaan cd windows anda
16. Muncul date and time setting pilih sesuai regional waktu anda. Klik next.
17. Muncul Network setting pilih typical setting untuk default networknya klik next
18. Muncul Workgroup configuration isikan sesuai workgroup network anda. Klik next
19. Tunggu hingga selesai. dari sini proses installasi dan konfigurasi windows sudah selesai.
20. restart maka windows xp sudah dapat digunakan.

CodeIgniter Part IV : CRUD pada CI


Sebelumnya kita persiapkan terlebih dahulu databasenya. Kita buat databasenya dengan nama “d4b6”. Buat juga tabelnya dengan nama news dengan struktur sqlnya seperti dibawah ini :
CREATE TABLE `db_d4b6`.`news` (`id` INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,`title` VARCHAR( 255 ) NOT NULL ,`content` TEXT NOT NULL ,`create` DATETIME NOT NULL ,`udpate` TIMESTAMP NOT NULL ,`delete` DATETIME NOT NULL
) ENGINE = INNODB;
Setelah kita buat tabel dan databasenya langkah kita berikutnya adalah sebagai berikut:
1. Membuat inputan kedalam data base:
- pertama kita buat file modelnya dengan nama newsModel.php (application/model/modelNews.php) dengan scriptnya seperti gambar dibawah ini :
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class ModelNews extends CI_Model {
                function __construct()
                {
         parent::__construct();
                }
               
                function getAllNews(){
                                $q="SELECT * FROM news";             
                                return $this->db->query($q);
                }
               
                function insertNews($title,$content){
                                $q="INSERT INTO news (title,content,`create`,`update`,`delete`) VALUES ('$title','$content','1','1','1')";          
                                return $this->db->query($q);
                }              
}

- langkah kedua kita buat untuk controllernya dengan nama news.php(application/controllers/news.php) dengan code sebagai berikut:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class News extends CI_Controller {
public function show()
                {
                                $data['n'] = $this->ModelNews->getAllNews();
                                $this->load->view('news/view_show_page', $data);

                }
public function input()
                {
                                $this->load->helper(array('form', 'url'));

                                $this->load->library('form_validation');

                                $this->form_validation->set_rules('title', 'Title', 'required');
                                $this->form_validation->set_rules('content', 'Content', 'required');

                                if ($this->form_validation->run() == FALSE)
                                {
                                                $this->load->view('news/view_input');
                                }
                                else
                                {
                                                $this->ModelNews->insertNews($_POST['title'],$_POST['content']);
                                                redirect('news/show');
                                }              
                }
}

- langkah selanjutnya kita buat tampilan form inputnya pada view, dengan nama view_input.php (application/view/view_input.php) dengan script sbb:
<html>
<head>
<title>My Form</title>
</head>
<body>
<?php echo validation_errors(); ?>
<?php echo form_open('news/input'); ?>
<h5>TItle</h5>
<?php echo form_error('title'); ?>
<input type="text" name="title" value="<?php echo set_value('title'); ?>" size="50" />
<h5>Content</h5>
<?php echo form_error('content'); ?>
<input type="text" name="content" value="<?php echo set_value('content'); ?>" size="50" />
<div><input type="submit" value="Submit" /></div>
</form>
</body>
</html>
- Maka ketika kita ketikkan urlnya http://localhost/d4b6/news/input maka akan muncul halaman seperti gambar dibawah ini:
input.png

-          Setelah muncul halaman seperti diatas maka kita akan membuat halaman actionnya ketika berhasil menginputkannya.  Kita buat untuk halaman menampilkan datanya dengan nama view_show_page.php (application/view/view_show_page.php) dengan script seperti gambar dibawah ini :
<? 
                print_r($n);
                $sr = $n->result();
?>

<p>List News</p>

<? foreach($sr as $r){ ?>
                <? echo $r->id?> <br />
                <? echo $r->title?> <br />
                <? echo $r->content?> <br />
                <?echo $r->create?> <br />
                                ||<a href="<?=base_url();?>news/delete/<?=$r->id?>"> Delete</a>
                                <br />    
<? } ?>
-          Selanjutnya isikan data pada form input maka ketika disubmit akan menampilkan halaman view_show_page.php seperti gambar dibawah ini :

Bila nampak seperti gambar diatas maka proses inputan kita telah berhasil.

2.  Delete Data
Setelah kita berhasil menginputkan data maka langkah selanjutnya  kita buat fungsi delete pada model. Tambahkan script pada modelNews.php  sbb:
  function delNewsById($id){
                                $q="DELETE FROM news WHERE id='$id'";    
                                return $this->db->query($q);
                }
Kemudian buat controllernya pada news.php seperti dibawah ini:
                public function delete($id="")
                {
                                $this->ModelNews->delNewsById($id);
                                redirect('news/show');

                }

3. Membuat upload file

Langkah awal pembuatan upload file menurut dari user guide adalah sebagai berikut :
-          Buat folder “uploads” pada folder d4b6 (nama folder codeigniter)
-          Membuat  controller terlebih dahulu dengan nama upload.php (application/controllers/upload.php
Ketikkan script seperti gambar dibawah ini :
<?php
class Upload extends CI_Controller {
                function __construct()
                {
                                parent::__construct();
                                $this->load->helper(array('form', 'url'));
                }
                function index()
                {
                                $this->load->view('view_upload', array('error' => ' ' ));
                }

                function do_upload()
                {
                                $config['upload_path'] = './uploads/';
                                $config['allowed_types'] = 'gif|jpg|png';
                                $config['max_size']              = '1000';
                                $config['max_width']  = '2000';
                                $config['max_height']  = '1000';
                                $this->load->library('upload', $config);
                                if ( ! $this->upload->do_upload())
                                {
                                                $error = array('error' => $this->upload->display_errors());

                                                $this->load->view('view_upload', $error);
                                }
                                else
                                {
                                                $data = array('upload_data' => $this->upload->data());
                                                $this->load->view('upload_success', $data);
                                }
                }
}
?>

-          Setelah kita buat controllernya selanjutnya kita buat untuk viewnya, buat file dengan nama view_upload.php (application/view/view_upload.php). ketikkan scriptnya seperti berikut:
<html>
<head>
<title>Upload Form</title>
</head>
<body>
<?php echo $error;?>
<?php echo form_open_multipart('upload/do_upload');?>
<input type="file" name="userfile" size="20" />
<br /><br />
<input type="submit" value="upload" />
</form>
</body>
</html>
-          Setelah kita buat untuk viewnya maka kita buat juga untuk tampilan berhasil uploadnya dengan nama upload_success.php dengan script sebagai berikut :
<html>
<head>
<title>Upload Form</title>
</head>
<body>
<h3>Your file was successfully uploaded!</h3>
<ul>
<?php foreach ($upload_data as $item => $value):?>
<li><?php echo $item;?>: <?php echo $value;?></li>
<?php endforeach; ?>
</ul>
<p><?php echo anchor('upload', 'Upload Another File!'); ?></p>
</body>
</html>

Untuk pengujian buka browser dan ketikkan http://localhost/d4b6/upload maka akan nampak tampilan seperti gambar dibawah ini :
Pilih file dan submit maka bila berhasil memasukkan gambar akan muncul tampilan seperti gambar dibawah ini: