Aplikasi POS

KATA PENGANTAR
Puji dan syukur penulis panjatkan kehadirat Allah SWT karena telah memberikan rahmat dan karunia-Nya sehingga penulis dapat menyelesaikan laporan tugas akhir sistem basis data
Dalam kesempatan ini penulis ingin mengucapkan banyak terima kasih kepada yang terhormat bapak Yopi Hidayatul Akbar selaku dosen basis data, kepada rekan-rekan yang telah membantu pengerjaan laporan ini, dan tak lupa kepada kedua orang tua dan seluruh keluarga tercinta yang telah memberikan do’a dan dorongan baik secara moril maupun secara materiil.
Penulis menyadari bahwa dalam penyusunan laporan ini masih banyak kekurangan, mengingat adanya kemampuan dan pengetahuan yang kami miliki masih sangat terbatas, maka dari itu penulis mengharapkan saran dan kritik demi menyempurnakan laporan tugas akhir. Semoga laporan tugas akhir ini dapat memberikan banyak manfaat.



DAFTAR ISI

                                                                                      Halaman
KATA PENGANTAR……………………………………………………. 1
DAFTAR ISI……………………………………………………………....  2
BAB I PENDAHULUAN
1.1  Pendahuluan…………………………………………………….  4
1.2  Tujuan…………………………………………………………..  4
1.3  Manfaat…………………………………………………………  5
BAB II PEMBAHASAN
           2.1 Pengertian dan Fungsi NetBeans, XAMPP,Code Igniter................6
           2.2 Menggunakan Aplikasi POS...........................................................12
           2.3 source code......................................................................................13
BAB III PENUTUP
            3.1 Kesimpulan………………………………………………..….. ... 18
            3.2 Kemungkinan Pengembangan…...……………………………...  18





BAB I
PENDAHULUAN

I.1 Latar Belakang
Seiring perkembangan teknologi informasi yang sedemikian cepatnya telah membawa dunia memasuki era baru yang lebih cepat dari yang pernah dibayangkan sebelumnya. Perkembangan teknologi saat ini telah membawa banyak perubahan bagi kehidupan manusia. Salah satu dari program teknologi informasi yang dihasilkan adalah aplikasi aplikasi yang membantu manusia dalam melakukan pekerjaan. Aplikasi adalah program yang di buat untuk melaksanakan suatu fungsi bagi pengguna. Aplikasi ini bertujuan agar dapat dimanfaatkan oleh masyarakat pada umumnya  Salah satu contoh aplikasi yang sering digunakan adalah aplikasi Point Of Sales
1.1              Tujuan
Tujuan dari pengerjaan tugas ini adalah sebagai berikut:
1.      Sebagai salah satu syarat untuk memenuhi tugas mata kuliah system basis data
2.      Merancang dan membangun point of sales (POS) standart sesuai dengan kebutuhan
1.2              Manfaat
Manfaat dari pengerjaan tugas akhir ini adalah sebagai berikut:
1.      Meningkatkan kualitas pelayanan
2.      Peningkatan citra usaha
3.      Keuntungan dalam berkompetisi



BAB II
PEMBAHASAN
2.1 Pengertian dan Fungsi NetBeans, XAMPP,Code Igniter
     2.1.1 Pengertian NetBeans

Netbeans merupakan sebuah aplikasi Integrated Development Environment (IDE) yang berbasiskan Java dari Sun Microsystems yang berjalan di atas swing. Swing merupakan sebuah teknologi Java untuk pengembangan aplikasi desktop yang dapat berjalan pada berbagai macam platform seperti windows, linux,  Mac OS X dan Solaris. Sebuah IDE merupakan lingkup pemrograman yang di integrasikan ke dalam suatu aplikasi perangkat lunak yang menyediakan Graphic User Interface (GUI), suatu kode editor atau text, suatu compiler dan suatu debugger.
Netbeans juga digunakan oleh sang  programmer untuk menulis, meng-compile, mencari kesalahan dan menyebarkan program netbeans yang ditulis dalam bahasa pemrograman java namun selain itu dapat juga mendukung bahasa pemrograman lainnya dan program ini pun bebas untuk digunakan dan untuk membuat professional desktop, enterprise, web, and mobile applications dengan Java language, C/C++, dan bahkan dynamic languages seperti PHP, JavaScript, Groovy, dan Ruby.
NetBeans merupakan sebuah proyek kode terbuka yang suksesdengan pengguna yang sangat luas, komunitas yang terus tumbuh, dan memiliki hamper 100 mitra (dan terus bertambah!). Sun Microsystems mendirikan proyek kode terbuka NetBeans pada bulan Juni 2000 dan terus menjadi sponsor utama. Dan saat ini pun netbeans memiliki 2 produk yaitu Platform Netbeans dan Netbeans IDE. Platform Netbeans merupakan framework yang dapat digunakan kembali (reusable) untuk menyederhanakan pengembangan aplikasi deskto dan Platform NetBeans juga menawarkan layanan-layanan yang umum bagi aplikasi desktop, mengijinkan pengembang untuk fokus ke logika yang spesifik terhadap aplikasi
     2.1.2 Fungsi Netbeans
Fungsi Java Netbeans IDE sendiri adalah untuk membuat dan mengembangkan sebuah aplikasi Desktop, contoh dari aplikasi netbeans adalah seperti aplikasi yang ada di toko toko sembako. selain untuk membuat dan mengembangkan sebuah aplikasi Netbeans juga digunakan oleh programer untuk mencompile, linker, debugger DLL. karena IDE sendiri secara global berarti “editor”. IDE adalah sebuah lingkungan terintegritas yang menyediakan semua kebutuhan programer.







2.1.3 Pengertian XAMPP
XAMPP adalah perangkat lunak bebas, yang mendukung banyak sistem operasi, merupakan kompilasi dari beberapa program. Fungsinya adalah sebagai server yang berdiri sendiri (localhost), yang terdiri atas program Apache HTTP Server, MySQL database, dan penerjemah bahasa yang ditulis dengan bahasa pemrograman PHP dan Perl.

Nama XAMPP merupakan singkatan dari X (empat sistem operasi apapun), Apache, MySQL, PHP dan Perl. Program ini tersedia dalam GNU General Public License dan bebas, merupakan web server yang mudah digunakan yang dapat melayani tampilan halaman web yang dinamis.
2.1.4 Fungsi XAMPP
Fungsi utama dari xampp adalah bagaimana software ini mampu menjalankan berbagai macam bahasa premograman web terutama cms, pada bagian ini hal yang paling banyak digunakan pada xampp adalah htdocs, folder htdocs ini berfungsi sebagai server/media penyimpanan (hosting) namun dalam bentuk virtual hosting (localhost).
Yang tak kalah pentingnya adalah phpmyadmin pada halaman ini pengguna xampp akan membuat database baru berupa mysql yang berguna untuk menyimpan database.
Selain itu kontrol panel utama xampp adalah bagian terpenting karena tanpanya xampp tidak akan berjalan.
Dengan xampp kita bisa membuat berbagai macam project website seperti menginstal cms wordpress, atau cms prestashop, dll. Berikut ini adalah proses Instalasi Xampp dan Pembuatan Database dan Cara menginstal Cms di software xampp.
2.1.5 Code Igniter
CodeIgniter adalah sebuah framework berbasis PHP yang kuat dengan footprint yang sangat kecil, dibangun untuk pengembang yang membutuhkan toolkit sederhana dan elegan untuk membuat aplikasi web dengan fitur lengkap. Lantas Apa itu framework? Framework atau dalam bahasa indonesia dapat diartikan sebagai "kerangka kerja" merupakan sebuah toolyang bekerja pada suatu konsep tertentu dan terdiri dari berbagai fungsi yang dapat dengan mudah dijabarkan atau dialih-gunakan untuk membuat fungsi-fungsi lain yang lebih kompleks. Maksudnya jika seorang Programmer menggunakan sebuah framework sebagai lingkup kerjanya, dia harus mematuhi segala ketentuan dari framework tersebut. Lebih lanjut ia dapat membangun berbagai fungsi yang rumit dan kompleks dengan menggunakan fungsi-fungsi yang telah disediakan oleh Framework tersebut. Jadi dia tidak perlu lagi menulis ulang semua coding, Ia cukup mempelajari cara menggunakan kerangka (frame) yang telah tersedia dari framework tersebut. 
CodeIgniter pertama kali ditulis oleh Rick Ellis (http://www.ellislab.com), seorang musisi rock yang beralih profesi menjadi programmer dalam riset kecil-kecilannya dan menghasilkan suatu framework PHP yang berukuran kecil, ringan serta memenuhi fitur umum aplikasi PHP. Namun, sejak tahun 2014 CodeIgniter telah dimiliki oleh British Columbia Institute of Technology (BCIT).
2.1.6 Fungsi Code Igniter
CodeIgniter adalah sebuah kerangka kerja yang berisi berbagai fungsi yang dapat digunakan untuk membuat fungsi-fungsi yang kompleks. Dalam membangun sebuah web, kita biasa sangat berkutat pada script koneksi database, pagination, proses login, query database. Dengan menggunakan sebuah framework, CodeIgniter tentu saja, kita tidak perlu lagi menuliskan perintah mysql_connect, myql_select_db atau semacamnya, karena CodeIgniter sudah menyediakan semua itu. Kita hanya perlu tau bagaimana cara menggunakannya. Dan saya rasa, semua itu tidaklah terlalu susah. Anda dapat membacanya sendiri dihttp://www.codeigniter.com/user_guide. Jadi intinya adalah ia mampu mempercepat dan mempermudah kita dalam pembuatan website
Disamping itu, penggunaan CodeIgniter juga akan menghasilkan suatu struktur pemrograman yang sangat rapi, baik dari segi kode maupun struktur file phpnya. Struktur aplikasi yang rapi tentu sangat diperlukan dari sebuah aplikasi. Misalnya, jika terjadi suatu error dalam aplikasi, dengan code yang rapi kita dapat dengan mudah menemukan kesalahan tersebut. Bukan hanya itu, bayangkan suatu saat aplikasi yang kita bangun membutuhkan fungsi-fungsi lain yang sangat penting, tentu akan diperlukan pengembangan lebih lanjut. Dan sekali lagi, hal itu juga sangat memerlukan struktur coding yang rapi. Dengan menggunakan CodeIgniter, untuk mewujudkan struktur kode yang rapi sangat-sangat mungkin terjadi. Hal itu dikarenakan CodeIgniter dibangun berbasis MVC (Model, View, Controller) yang memisahkan antara tampilan dan logic aplikasi. 

model-view-controller
Model View Controller CodeIgniter

1.         Model adalah bagian yang bertanggung jawab terhadap operasi database, baik itu create, read, update ataudelete. Ia berupa fungsi-fungsi operasional database yang dapat dipanggilkan oleh Controller.
2.         View adalah bagian yang menangani tampilan. bagian inilah yang bertugas untuk mempresentasikan data kepada user. Ia berbentuk struktur HTML yang berisikan variabel data yang dikirimkan oleh Controller.
3.         Controller adalah bagian yang mengatur hubungan antara Model dan View. Ia adalah otak dari kinerja aplikasi. Ia terdiri dari fungsi-fungsi yang bersifat operasional dan logikal. Saat ada request yang masuk, ia akan menangani dan memprosesnya untuk kemudian ditampilkan dalam View.

Fungsi kedua adalah memberikan Standar Coding sehingga memudahkan kita atau orang lain untuk mempelajari kembali sistem aplikasi yang dibangun.  

 2.2 Menggunakan Aplikasi POS
Tampilan Login

Tampilan Index





Tampilan Kategori Barang


Tampilan Tambah Kategori

Tampilan Edit Data Kategori

Tampilan Data Barang

Tampilan Transaksi Barang

Tampilan Laporan Transaksi Perperiode













2.3 Source Code
Source Controler
auth.php

<?php
class auth extends CI_Controller{
    function __construct() {
        parent::__construct();
        $this->load->model('model_operator');
    }
           
    function login(){
        if(isset($_POST['login'])){
            //proses disini
            $username=  $this->input->post('username');
            $password=  $this->input->post('password');
            $hasil=  $this->model_operator->login($username,$password);
            if($hasil==1){
                // update last login
                $this->db->where('username',$username);
                $this->db->update('operator',array('last_login'=>date('Y-m-d')));
                 $this->session->set_userdata(array('status_login'=>'oke',
                     'username'=>$username));
                redirect('dashboard');
            }else{
                redirect('auth/login');
            }
           
        }
        else{
            //$this->load->view('form_login');
            $this->template->load('template_1','form_login');
        }
    }
    function logout()
    {
        $this->session->sess_destroy();
        redirect('auth/login');
    }
}






barang.php
<?php

class barang extends CI_Controller{
    function __construct() {
        parent::__construct();
        $this->load->model('model_barang');
        chek_session();
       
    }
            function index()
    {
                $this->load->library('pagination');
        $config['base_url'] = base_url().'index.php/barang/index/';
        $config['total_rows'] = $this->model_barang->tampil_data()->num_rows();
        $config['per_page'] = 3;
        $this->pagination->initialize($config);
        $data['paging']     =$this->pagination->create_links();
         $halaman   =   $this->uri->segment(3);
         $halaman   =   $halaman==''?0:$halaman;
         $data['record']=  $this->model_barang->tampilkan_data_paging($halaman,$config['per_page']);
        //$data ['record']= $this->model_barang->tampil_data()->result();
        //$this->load->view('barang/tampil_data',$data);
        $this->template->load('template','barang/tampil_data',$data);
    }
   
    function post(){
        if(isset($_POST['submit']))
        {
            //proses input
            $nama=      $this->input->post('nama_barang');
            $kategori=  $this->input->post('kategori');
            $harga=     $this->input->post('harga');
            $data=array('nama_barang'=>$nama,'kategori_id'=>$kategori,'harga'=>$harga);
            $this->model_barang->post($data);
            redirect('barang');
        }
        else
        {
            $this->load->model('model_kategori');
            $data['kategori']=  $this->model_kategori->tampilkandata()->result();
            //$this->load->view('barang/form_input',$data);
            $this->template->load('template','barang/form_input',$data);
        }
    }
   
    function edit(){
        if(isset($_POST['submit']))
        {
            //proses input
            $id         =  $this->input->post('id');
            $nama       =  $this->input->post('nama_barang');
            $kategori   =  $this->input->post('kategori');
            $harga      =  $this->input->post('harga');
            $data       =  array('nama_barang'=>$nama,'kategori_id'=>$kategori,'harga'=>$harga);
            $this->model_barang->edit($data,$id);
            redirect('barang');
        }
        else
        {
            $id=  $this->uri->segment(3);
            $this->load->model('model_kategori');
            $data['kategori']=  $this->model_kategori->tampilkandata()->result();
            $data['record']=  $this->model_barang->getone($id)->row_array();
            //$this->load->view('barang/form_edit',$data);
            $this->template->load('template','barang/form_edit',$data);
        }
    }
   
    function delete($id){
        $id=  $this->uri->segment(3);
        $this->model_barang->delete($id);
        redirect('barang');
    }
}

dashboar.php
<?php
class dashboard extends CI_Controller{
   
   
    function index(){
        //$this->load->view('view_dashboard');
        $this->template->load('template','view_dashboard');
    }
}


kategori.php
<?php

class kategori extends CI_Controller{
    function __construct() {
        parent::__construct();
        $this->load->model('model_kategori');
        chek_session();
    }
            function index()
    {
                 $this->load->library('pagination');
        $config['base_url'] = base_url().'index.php/kategori/index/';
        $config['total_rows'] = $this->model_kategori->tampilkandata()->num_rows();
        $config['per_page'] = 3;
        $this->pagination->initialize($config);
        $data['paging']     =$this->pagination->create_links();
         $halaman   =   $this->uri->segment(3);
         $halaman   =   $halaman==''?0:$halaman;
         $data['recod']=  $this->model_kategori->tampilkan_data_paging($halaman,$config['per_page']);
         //$this->load->view('kategori/lihat_data',$data);
         $this->template->load('template','kategori/lihat_data',$data);
    }
   
    function post()
    {
        if(isset($_POST['submit']))
        {
            //proses input
            $this->model_kategori->post();
            redirect('kategori');
        }
        else
        {
            //$this->load->view('kategori/form_input');
            $this->template->load('template','kategori/form_input');
        }
       
    }
    function  edit()
    {
    
       if(isset($_POST['submit'])){
            // proses kategori
            $this->model_kategori->edit();
            redirect('kategori');
        }
        else{
            $id=  $this->uri->segment(3);
            $data['record']=  $this->model_kategori->getone($id)->row_array();
            //$this->load->view('kategori/form_edit',$data);
            $this->template->load('template','kategori/form_edit',$data);
        }
    }
    function delete(){
        $id=  $this->uri->segment(3);
        $this->model_kategori->delete($id);
        redirect('kategori');
    }
}

operator.php
<?php

class operator extends CI_Controller{
   
    function __construct() {
        parent::__construct();
        $this->load->model('model_operator');
        chek_session();
    }
    function index(){
        $data['record']=  $this->model_operator->tampildata();
        //$this->load->view('operator/lihat_data',$data);
        $this->template->load('template','operator/lihat_data',$data);
    }
    function post(){
        if(isset($_POST['submit']))
        {
            //proses data
            //$this->model_kategori->post();
            //proses ke database di lakukan disi (controler)
            $nama       =  $this->input->post('nama',true);
            $username   =  $this->input->post('username',true);
            $password   =  $this->input->post('password',true);
            $data       =  array(   'nama_lengkap'=>$nama,
                                    'username'=>$username,
                                    'password'=>md5($password));
            $this->db->insert('operator',$data);
            redirect('operator');
        }
        else
        {
            //$this->load->view('operator/form_input');
            //$this->load->view('operator/lihat_data',$data);
        $this->template->load('template','operator/form_input');
        }
    }
    function edit(){
        if(isset($_POST['submit'])){
            // proses operator
            $id=  $this->input->post('id',true);
            $nama       =  $this->input->post('nama',true);
            $username   =  $this->input->post('username',true);
            $password   =  $this->input->post('password',true);
            if(empety($password)){
                $data       =  array(   'nama_lengkap'=>$nama,
                                    'username'=>$username);
            }else{
                $data       =  array(   'nama_lengkap'=>$nama,
                                    'username'=>$username,
                                    'password'=>  md5($password));
            }
               
          
                                $this->db->where('operator_id',$id);
                               
                                   
            $this->db->update('operator',$data);
            redirect('operator');
        
        }
        else{
            $id=  $this->uri->segment(3);
            $data['record']=  $this->model_operator->getone($id)->row_array();
            //$this->load->view('operator/form_edit',$data);
          
        $this->template->load('template','operator/form_edit',$data);
        }
    }
   
    function delete()
    {
       
        $id= $this->uri->segment(3);
        $this->db->where('operator_id',$id);
        $this->db->delete('operator');
        redirect('operator');
    }
}

transaksi.php
<?php
class transaksi extends CI_Controller{
   
    function __construct() {
        parent::__construct();
        $this->load->model(array('model_barang','model_transaksi'));
        chek_session();
    }
           
    function index(){
      
       
            if(isset($_POST['submit']))
        {
            $this->model_transaksi->simpan();
            redirect('transaksi');
        }
        else
        {
            $data['barang']=  $this->model_barang->tampil_data();
            $data['detail']=  $this->model_transaksi->tampilkan_detail_transaksi()->result();
            $this->template->load('template','transaksi/form_transaksi',$data);
        }
    }
   
    function hapusitem()
    {
        $id=  $this->uri->segment(3);
        $this->model_transaksi->hapusitem($id);
        redirect('transaksi');
    }
   
    function selesai_belanja()
    {
        $tanggal=date('Y-m-d');
        $user= $this->session->userdata('username');
        $id_op= $this->db->get_where('operator',array('username'=>$user))->row_array();
        $data=array('operator_id'=>$id_op['operator_id'],'tanggal_transaksi'=>$tanggal);
        $this->model_transaksi->selesai_belanja($data);
        redirect('transaksi');
       
    }
   
    function laporan()
    {
        if(isset($_POST['submit']))
        {
            $tanggal1=  $this->input->post('tanggal1');
            $tanggal2=  $this->input->post('tanggal2');
            $data['record']=  $this->model_transaksi->laporan_periode($tanggal1,$tanggal2);
            $this->template->load('template','transaksi/laporan',$data);
        }
        else
        {
            $data['record']=  $this->model_transaksi->laporan_default();
            $this->template->load('template','transaksi/laporan',$data);
        }
    }
    function excel()
    {
        header("Content-type=appalication/vnd.ms-excel");
        header("content-disposition:attachment;filename=laporantransaksi.xls");
        $data['record']=  $this->model_transaksi->laporan_default();
        $this->load->view('transaksi/laporan_excel',$data);
    }
    function pdf()
    {
        $this->load->library('cfpdf');
        $pdf=new FPDF('P','mm','A4');
        $pdf->AddPage();
        $pdf->SetFont('Arial','B','L');
        $pdf->SetFontSize(14);
        $pdf->Text(10, 10, 'LAPORAN TRANSAKSI');
        $pdf->SetFont('Arial','B','L');
        $pdf->SetFontSize(11);
        $pdf->Cell(10, 10,'','',1);
        $pdf->Cell(10, 7, 'No', 1,0);
        $pdf->Cell(27, 7, 'Tanggal', 1,0);
        $pdf->Cell(30, 7, 'Operator', 1,0);
        $pdf->Cell(38, 7, 'Total Transaksi', 1,1);
        //Tampil dari database
        $pdf->SetFont('Arial','','L');
        $data=  $this->model_transaksi->laporan_default();
        $no=1;
        $total=0;
        foreach ($data->result() as $r)
        {
            $pdf->Cell(10, 7, $no, 1,0);
            $pdf->Cell(27, 7, $r->tanggal_transaksi, 1,0);
            $pdf->Cell(30, 7, $r->nama_lengkap, 1,0);
            $pdf->Cell(38, 7, $r->total, 1,1);
            $no++;
            $total=$total+$r->total;
        }
        // end
        $pdf->Cell(67,7,'Total',1,0,'R');
        $pdf->Cell(38,7,$total,1,0);
        $pdf->Output();
    }
  
}

Source Model
model_barang.php
<?php

class model_barang extends CI_Model{
   
    function tampil_data(){
         $query= "SELECT b.barang_id,b.nama_barang,b.harga,kb.nama_kategori
                FROM barang as b,kategori_barang as kb
                WHERE b.kategori_id=kb.kategori_id";
        return $this->db->query($query);
    }
    function tampilkan_data_paging($halaman)
  {
     $query = "SELECT b.barang_id,b.nama_barang,b.harga,kb.nama_kategori
                FROM barang as b,kategori_barang as kb
                WHERE b.kategori_id=kb.kategori_id limit $halaman,3";
     return $this->db->query($query);
  }
   
    function post($data){
        $this->db->insert('barang',$data);
        }
       
    function getone($id){
         $param=array('barang_id'=>$id);
        return $this->db->get_where('barang',$param);
    }
   
    function edit($data,$id){
        $this->db->where('barang_id',$id);
        $this->db->update('barang',$data);
    }
   
   function delete($id)
    {
        $this->db->where('barang_id',$id);
        $this->db->delete('barang');
    }
}

model_kategori.php
<?php
class Model_kategori extends CI_Model{
   
    function tampilkandata(){
        return $this->db->get('kategori_barang');
    }
    function post(){
        $data=array(
           'nama_kategori'=>  $this->input->post('kategori')
                    );
        $this->db->insert('kategori_barang',$data);
    }
    function tampilkan_data_paging($halaman,$batas)
  {
      return $this->db->query("select * from kategori_barang limit $halaman,$batas");
  }
    function getone($id){
        $param=array('kategori_id'=>$id);
        return $this->db->get_where('kategori_barang',$param);
    }
    function edit(){
        $data=array(
           'nama_kategori'=>  $this->input->post('kategori')
                    );
        $this->db->where('kategori_id',$this->input->post('id'));
        $this->db->update('kategori_barang',$data);
    }
    function delete($id){
        $this->db->where('kategori_id',$id);
        $this->db->delete('kategori_barang');
    }
}

model_operator.php
<?php
class model_operator extends CI_Model{
   
    function login($username,$password)
    {
        $check=$this->db->get_where('operator',array('username'=>$username,'password'=>  md5($password)));
        if($check->num_rows()>0){
            return 1 ;
        }
        else{
            return 0 ;
        }
    }
    function tampildata()
    {
        return $this->db->get('operator');
    }
    function getone($id){
        $param=array('operator_id'=>$id);
        return $this->db->get_where('operator',$param);
    }
}

model_transaksi.php
<?php

class model_transaksi extends CI_Model{
   
    function simpan(){
       
        $nama_barang    =  $this->input->post('barang');
        $qty            =  $this->input->post('qty');
        $idbarang       = $this->db->get_where('barang',array('nama_barang'=>$nama_barang))->row_array();
        $data           = array('barang_id'=>$idbarang['barang_id'],
                                'qty'=>$qty,
                                'harga'=>$idbarang['harga'],
                                'status'=>'0');
        $this->db->insert('transaksi_detail',$data);
    }
   
    function tampilkan_detail_transaksi(){
        $query  ="SELECT td.t_detail_id,td.qty,td.harga,b.nama_barang
                FROM transaksi_detail as td,barang as b
                WHERE b.barang_id=td.barang_id and td.status='0'";
        return $this->db->query($query);
    }
   
    function hapusitem($id)
    {
        $this->db->where('t_detail_id',$id);
        $this->db->delete('transaksi_detail');
    }
   
    function selesai_belanja($data)
    {
        $this->db->insert('transaksi',$data);
        $last_id=  $this->db->query("select transaksi_id from transaksi order by transaksi_id desc")->row_array();
       $this->db->query("update transaksi_detail set transaksi_id='".$last_id['transaksi_id']."' where status='0'");
        $this->db->query("update transaksi_detail set status='1' where status='0'");
    }
   
    function laporan_default()
    {
        $query= "SELECT t.tanggal_transaksi,o.nama_lengkap,sum(td.harga*td.qty) as total
                FROM transaksi as t,transaksi_detail as td,operator as o
                WHERE td.transaksi_id=t.transaksi_id and o.operator_id=t.operator_id
                group by t.transaksi_id";
        return $this->db->query($query);
       
    }
    function laporan_periode($tanggal1,$tanggal2)
    {
        $query="SELECT t.tanggal_transaksi,o.nama_lengkap,sum(td.harga*td.qty) as total
                FROM transaksi as t,transaksi_detail as td,operator as o
                WHERE td.transaksi_id=t.transaksi_id and o.operator_id=t.operator_id
                and t.tanggal_transaksi between '$tanggal1' and '$tanggal2'
                group by t.transaksi_id";
        return $this->db->query($query);
    }

}

Source View
from_login.php
<?php
echo form_open('auth/login');
?>
<div class="container">
<div class="col-md-0 col-md-offset-0">
  
   <div class="outter-form-login">
    <div class="logo-login">
        <div class="col-md-4"><em class="glyphicon glyphicon-user"></em></div><br>
    <div>
            <h3 class="text-left title-login">&nbsp;&nbsp;Login</h3>
            <div class="form-group">
                <label>&nbsp;&nbsp;&nbsp;&nbsp;Username</label><br>
                <div class="col-md-4"><input type="text" name="username" class="form-control" placeholder="username" required></div>
                <br><br>
            </div>
    </div>
    <div class="form-group">
        <label>&nbsp;&nbsp;&nbsp;&nbsp;Password</label><br>
        <div class="col-md-4"><input type="password" class="form-control"name="password" placeholder="Password" required></div>
    </div>
    </div><br><br>
    <div class="col-md-4"><button type="submit" class="btn btn-primary form-control" name="login">Login</button></div>
</div>
</div>

</form>
template.php

<!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">
    <meta name="description" content="">
    <meta name="author" content="">
    <link rel="icon" href="../../favicon.ico">

    <title>Point Of Salles Application</title>

    <!-- Bootstrap core CSS -->
    <link href="<?php echo base_url('assets1/css/datepicker.css');?>" rel="stylesheet">
    <link href="<?php echo base_url();?>assets/css/bootstrap.min.css" rel="stylesheet">
    <link href="<?php echo base_url('assets1/css/plugins/morris/morris-0.4.3.min.css');?>" rel="stylesheet">
            <link href="<?php echo base_url('assets1/css/plugins/timeline/timeline.css');?>" rel="stylesheet">
    
          

    <!-- Custom styles for this template -->
    <link href="navbar-static-top.css" rel="stylesheet">

    <!-- Just for debugging purposes. Don't actually copy these 2 lines! -->
    <!--[if lt IE 9]><script src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
    <script src="../../assets/js/ie-emulation-modes-warning.js"></script>

    <!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
    <script src="../../assets/js/ie10-viewport-bug-workaround.js"></script>

    <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
  </head>

  <body>

    <!-- Static navbar -->
    <div class="navbar navbar-default navbar-static-top" role="navigation">
      <div class="container">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="<?php echo site_url('dashboard');?>">Point Of Sales</a>
        </div>
        <div class="navbar-collapse collapse">
          <ul class="nav navbar-nav">
            <li class="active"><?php echo anchor('kategori','Kategori Barang');?></li>
            <li><?php echo anchor('barang','Data Barang');?></li>
            <li><?php echo anchor('operator','Operator Sistem');?></li>
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown">Transaksi <span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu">
                <li><?php echo anchor('transaksi','Form Transaksi');?></li>
                <li><?php echo anchor('transaksi/laporan','Laporan Transaksi');?></li>
                <li><?php echo anchor('transaksi/excel','Laporan Excel');?></li>
                <li><?php echo anchor('transaksi/pdf','Laporan PDF');?></li>
              
              </ul>
            </li>
          </ul>
          <ul class="nav navbar-nav navbar-right">
              <li class="acttive"><?php echo anchor('auth/logout','Logout');?></li></li>
          </ul>
        </div><!--/.nav-collapse -->
      </div>
    </div>


    <div class="container">

        <?php echo $contents;?>

    </div> <!-- /container -->


    <!-- Bootstrap core JavaScript
    ================================================== -->
    <!-- Placed at the end of the document so the pages load faster -->
    <script src="<?php echo base_url()?>assets/js/jquery.min.js"></script>
    <script src="<?php echo base_url()?>assets/js/bootstrap.min.js"></script>
    <script src="<?php echo base_url('assets/js/holder.js');?>"></script>
        <script src="<?php echo base_url('assets1/js/bootstrap-datepicker.js');?>"></script>
        <script src="<?php echo base_url('assets1/js/application.js');?>"></script>
       
        <script src="<?php echo base_url('assets1/js/plugins/metisMenu/jquery.metisMenu.js');?>"></script>
        <script src="<?php echo base_url('assets1/js/plugins/morris/raphael-2.1.0.min.js');?>"></script>
        <script src="<?php echo base_url('assets1/js/plugins/morris/morris.js');?>"></script>
        <script src="<?php echo base_url('assets1/js/sb-admin.js');?>"></script>
        <script src="<?php echo base_url('assets1/js/demo/dashboard-demo.js');?>"></script>   
  </body>
</html>
template_1.php

<!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">
    <meta name="description" content="">
    <meta name="author" content="">
    <link rel="icon" href="../../favicon.ico">

    <title>Point Of Salles Application</title>

    <!-- Bootstrap core CSS -->
    <link href="<?php echo base_url();?>assets/css/bootstrap.min.css" rel="stylesheet">

    <!-- Custom styles for this template -->
    <link href="navbar-static-top.css" rel="stylesheet">

    <!-- Just for debugging purposes. Don't actually copy these 2 lines! -->
    <!--[if lt IE 9]><script src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
    <script src="../../assets/js/ie-emulation-modes-warning.js"></script>

    <!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
    <script src="../../assets/js/ie10-viewport-bug-workaround.js"></script>

    <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
  </head>

  <body>

    <!-- Static navbar -->
    <div class="navbar navbar-default navbar-static-top" role="navigation">
      <div class="container">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="#">Point Of Sales</a>
        </div>
        <div class="navbar-collapse collapse">
          <ul class="nav navbar-nav">
           
          </ul>
          
        </div><!--/.nav-collapse -->
      </div>
    </div>


    <div class="container">

        <?php echo $contents;?>

    </div> <!-- /container -->


    <!-- Bootstrap core JavaScript
    ================================================== -->
    <!-- Placed at the end of the document so the pages load faster -->
    <script src="<?php echo base_url()?>assets/js/jquery.min.js"></script>
    <script src="<?php echo base_url()?>assets/js/bootstrap.min.js"></script>
  </body>
</html>
view_dashboard.php
<ul>
    <li><?php echo anchor('kategori','Kategori Barang');?></li>
    <li><?php echo anchor('barang','Data Barang');?></li>
    <li><?php echo anchor('operator','Operator');?></li>
    <li><?php echo anchor('transaksi','Form Transaksi');?></li>
        <li><?php echo anchor('auth/logout','Logout');?></li>
</ul>
Source View Barang
form_edit.php
<h3>Edit Data Barang</h3>
<?php
echo form_open('barang/edit');
?>
<input type="hidden" name="id" value="<?php echo $record['barang_id'];?>">
<table class="table tablebordered">
    <tr>
        <td width='130'>Nama Barang</td>
        <td><div class="col-sm-5"><input type="text" class="form-control" name="nama_barang" value="<?php echo $record['nama_barang'];?>" placeholder="Nama Barang"required </td></div>
    </tr>
    <tr>
        <td width='130'>Kategori</td>
        <td><div class="col-sm-5"><select name="kategori" class="form-control">
            <?php
            foreach ($kategori as $k)
            {
                echo "<option value='$k->kategori_id'";
                 echo $record['kategori_id']==$k->kategori_id?'selected':'';
                echo">$k->nama_kategori</option>";
            }
            ?>
                </select></div>
        </td>
    </tr>
    <tr>
        <td width='130'>Harga</td>
        <td><div class="col-sm-5"><input type="text" class="form-control" name="harga" value="<?php echo $record['harga'];?>" placeholder="Harga" required </td></div>
    </tr>
    <tr>
        <td colspan="2"><button class="btn btn-primary" type="submit" name="submit">Simpan</button>
        <?php echo anchor('barang','Kembali',array('class'=>'btn btn-default'))?>
        </td>
    </tr>

</table>
</form>
form_input.php
<h3>Tambah Data Barang</h3>
<?php
echo form_open('barang/post');
?>
<table class="table tablebordered">
    <tr>
        <td width='130'>Nama Barang</td>
        <td><div class="col-sm-5"><input type="text" class="form-control" name="nama_barang" placeholder="Nama Barang"required </td></div>
    </tr>
    <tr>
        <td width='130'>Kategori</td>
        <td><div class="col-sm-5"><select name="kategori" class="form-control">
            <?php
            foreach ($kategori as $k)
            {
                echo "<option value='$k->kategori_id'>$k->nama_kategori</option>";
            }
            ?>
                </select></div>
        </td>
    </tr>
    <tr>
        <td width='130'>Harga</td>
        <td><div class="col-sm-5"><input type="text" class="form-control" name="harga" placeholder="Harga" required </td></div>
    </tr>
    <tr>
        <td colspan="2"><button type="submit" class="btn btn-primary" name="submit">Simpan</button>
        <?php echo anchor('barang','Kembali',array('class'=>'btn btn-default'))?>
        </td>
    </tr>

</table>
</form>
tampil_data.php
<h3>Data Barang</h3>
<?php
echo anchor('barang/post','Tambah Data',array('class'=>'btn btn-primary btn-sm')) ;
?>
<hr>
<table class="table table-hover table-striped">
    <tr><th>No</th><th>Nama Barang</th><th>Kategori Barang</th><th>Harga</th><th colspan="2">Operasi</th></tr>
    <?php
    $no=1;
    foreach ($record->result() as $r)
    {
        echo "<tr>
            <td width='10'>$no</td>
            <td>$r->nama_barang</td>
            <td>$r->nama_kategori</td>
            <td>$r->harga</td>
            <td width='20'>".anchor('barang/edit/'.$r->barang_id,'Edit',array('class'=>'btn btn-warning btn-sm'))."</td>
            <td width='20'>".anchor('barang/delete/'.$r->barang_id,'Delete',array('class'=>'btn btn-danger btn-sm'))."</td>
            </tr>";
        $no++;
    }
    ?>
</table>
<?php
    echo $paging;
?>
Source View Kategori
form_edit.php
<h3>Edit Data Kategori</h3>
<?php
echo form_open('kategori/edit');
?>
<input type="hidden" value="<?php echo $record['kategori_id']?>" name="id">
<table class="table tablebordered">
    <tr>
        <td width='130'>Nama Kategori</td>
        <td><div class="col-sm-4"><input type="text" class="form-control" name="kategori" required
                                         value="<?php echo $record['nama_kategori'];?>" </td></div>
    </tr>
    <tr>
        <td colspan="2"><button type="submit" class="btn btn-primary" name="submit">Simpan</button>
        <?php echo anchor('kategori','Kembali',array('class'=>'btn btn-default'))?>
        </td>
    </tr>

</table>
</form>
form_input.php
<h3>Tambah Data Kategori</h3>
<?php
echo form_open('kategori/post');
?>
<table class="table tablebordered">
    <tr>
        <td width='130'>Nama Kategori</td>
        <td><div class="col-sm-4"><input type="text" name="kategori" class="form-control" placeholder="Kategori"required </td></div>
    </tr>
    <tr>
        <td colspan="2"><button type="submit" name="submit" class="btn btn-primary">Simpan</button>
        <?php echo anchor('kategori','Kembali',array('class'=>'btn btn-default'))?>
        </td>
    </tr>

</table>
</form>
lihat_data.php
<link href="<?php echo base_url('dataTables.bootstrap.css');?>" rel="stylesheet" />
  <link href="<?php echo base_url('dataTables.responsive.css');?>" rel="stylesheet" />

<h3>Kategori Barang</h3>
<?php
echo anchor('kategori/post','Tambah Data',array('class'=>'btn btn-primary btn-sm')) ;
?>
<hr>
<table class="table table-striped table-responsive table-hover" id="dataTables-example">
    <tr><th>No</th><th>Nama Kategori</th><th colspan="2">Operasi</th></tr>
<?php
    $no=1;
    foreach ($recod->result() as $r)
    {
    echo "<tr>"
            . "<td width='20'>$no</td>"
            . "<td>$r->nama_kategori</td>"
            . "<td width='10'>".anchor('kategori/edit/'.$r->kategori_id,'Edit',array('class'=>'btn btn-warning btn-sm'))."</td>"
            . "<td width='10'>".anchor('kategori/delete/'.$r->kategori_id,'Delete',array('class'=>'btn btn-danger btn-sm'))."</td>"
        . "</tr>"; 
   
    $no++;
    }
?>
   
</table>
<?php
echo $paging;
?>
Source View Operator
form_edit.php
<h3>Edit Data Operator</h3>
<?php
echo form_open('operator/edit');
?>
<input type="hidden" value="<?php echo $record['operator_id']?>" name="id">
<table class="table tablebordered">
    <tr><td width="130">Nama Lengkap</td>
        <td><div class="col-sm-5"><input type="text" name="nama" class="form-control" placeholder="nama lengkap" value="<?php echo $record['nama_lengkap']?>">
                </td></div></tr>
    <tr><td width='130'>Username</td>
        <td><div class="col-sm-5"><input type="text" name="username" class="form-control" placeholder="username" value="<?php echo $record['username']?>">
                </td></div></tr>
     <tr><td width='130'>Password</td>
         <td><div class="col-sm-5"><input type="password" name="password" class="form-control" placeholder="password"></div>
       </td></tr>
    <tr><td colspan="2"><button type="submit" class="btn btn-primary" name="submit">Simpan</button>
        <?php echo anchor('operator','Kembali',array('class'=>'btn btn-default'))?></td></tr>
</table>
</form>
form_input.php
<h3>Tambah Data Operator</h3>
<?php
echo form_open('operator/post');
?>
<table class="table tablebordered">
    <tr><td width="120">Nama Lengkap</td>
        <td><div class="col-sm-5"><input class="form-control" type="text" name="nama" placeholder="nama lengkap">
                </td></div></tr>
    <tr><td width='120'>Username</td>
        <td><div class="col-sm-5"><input type="text" class="form-control" name="username" placeholder="username">
                </td></tr></div>
     <tr><td>Password</td>
         <td><div class="col-sm-5"><input class="form-control" type="password"   name="password" placeholder="password"></div>
        </td></tr></div>
<tr><td colspan="2"><button type="submit" class="btn btn-primary" name="submit">Simpan</button>
        <?php echo anchor('operator','Kembali',array('class'=>'btn btn-default'))?>
        </td></tr>
</table>
</form>
lihat_data.php
<h3>Operator Sistem</h3>
<?php
echo anchor('operator/post','Tambah Data',array('class'=>'btn btn-primary btn-sm')) ;
?>
<hr>
<table class="table table-striped tablebordered">
    <tr><th>No</th><th>Nama Lengkap</th><th>Username</th><th>Last Login</th><th colspan="2">Operasi</th></tr>
<?php
    $no=1;
    foreach ($record->result() as $r)
    {
    echo "<tr>"
            . "<td>$no</td>"
            . "<td>$r->nama_lengkap</td>"
             . "<td>$r->username</td>"
             . "<td>$r->last_login</td>"
            . "<td width='10'>".anchor('operator/edit/'.$r->operator_id,'Edit',array('class'=>'btn btn-warning btn-sm'))."</td>"
            . "<td width='10'>".anchor('operator/delete/'.$r->operator_id,'Delete',array('class'=>'btn btn-danger btn-sm'))."</td>"
        . "</tr>"; 
   
    $no++;
    }
?>
</table>
Source View Transaksi
form_transaksi.php
<?php
echo form_open('transaksi');
?>
<table class="table table-bordered">
    <tr class="success"><th>Form</th></tr>
    <tr><td>
            <div class="col-sm-6"">
                <input list="barang" name="barang" placeholder="masukan nama barang" class="form-control">
            </div>
<div class="col-sm-1"">
                <input type="text" name="qty" placeholder="QTY" class="form-control">
            </div>
</td></tr>
    <tr><td>
            <button type="submit" name="submit" class="btn btn-primary">Simpan</button>
            <?php echo anchor('transaksi/selesai_belanja','Selesai',array('class'=>'btn btn-default'))?>
        </td></tr>
</table>
</form>

<table class="table table-bordered">
    <tr class="success"><th colspan="6">Detail Transaksi</th></tr>
    <tr><th>No</th><th>Nama Barang</th><th>Qty</th><th>Harga</th><th>Subtotal</th><th>Cancel</th></tr>
   
    <?php
    $no=1;
    $total=0;
    foreach ($detail as $r)
        {
         echo "<tr>
            <td>$no</td>
            <td>$r->nama_barang</td>
            <td>$r->qty</td>
            <td>$r->harga</td>
            <td>".$r->qty*$r->harga."</td>
               
            <td>".anchor('transaksi/hapusitem/'.$r->t_detail_id,'Hapus')."</td></tr>";
                $no++;
                $total=$total+($r->qty*$r->harga);
        }
  
    ?>
    <tr><td colspan="5"><p align="right">Total</p></td><td><?php echo $total; ?></td></tr>
   
   
    <datalist id="barang">
        <?php
    foreach ($barang->result() as $b)
    {
        echo "<option value='$b->nama_barang'>";
    }
    ?>
    </datalist>
laporan.php
<h3>Laporan Transaksi</h3>
<?php
echo form_open('transaksi/laporan');
?>

<table class="table table-bordered">
    <tr><td>
            <div class="col-sm-4">
                <input type="date" name="tanggal1" class="form-control" id="tanggal" placeholder="Tanggal Mulai">
            </div>
            <div class="col-sm-4">
                <input type="date" name="tanggal2" class="form-control" placeholder="Tanggal Selesai">
            </div>
        </td></tr>
    <tr><td><button class="btn btn-primary" type="submit" name="submit">Proses</button></td></tr>
</table>
</form>
<table class="table table-bordered">
    <tr><th>No</th><th>Tanggal Transaksi</th><th>Operator</th><th>Total Transaksi</th></tr>
    <?php
 
   
    $no=1;
    $total=0;
    foreach ($record->result() as $r)
    {
        echo "<tr>
            <td width='10'>$no</td>
            <td width='160'>$r->tanggal_transaksi</td>
            <td>$r->nama_lengkap</td>
            <td>$r->total</td>
            </tr>";
        $no++;
         $total=$total+$r->total;
    }
    ?>
<tr><td colspan="3">Total</td><td><?php echo $total;?></td></tr>
</table>
laporan_excel.php
<table border="1">
    <tr><th>No</th><th>Tanggal Transaksi</th><th>Operator</th><th>Total Transaksi</th></tr>
    <?php
    $no=1;
    $total=0;
    foreach ($record->result() as $r)
    {
        echo "<tr>
            <td width='10'>$no</td>
            <td width='160'>$r->tanggal_transaksi</td>
            <td>$r->nama_lengkap</td>
            <td>$r->total</td>
            </tr>";
        $no++;
        $total=$total+$r->total;
    }
    ?>
    <tr><td colspan="3">Total</td><td><?php echo $total;?></td></tr>
</table>


BAB III
PENUTUP

3.1       Kesimpulan
Kesimpulan   Dari hasil penulisan ini dapat disimpulkan bahwa kebutuhan akan basis data merupakan sesuatu yang sangat penting dalam aplikasi point of sales. Pada analisis dan perancangan basis data pada pembuatan aplikasi point of sales berbasis website ini digunakan metode analisis berorientasi objek, dengan menggunakan pendekatan ini data dan fungsi disetarakan serta disatukan pada apa yang disebut dengan objek, sehingga dapat menghasilkan sebuah aplikasi yang lebih fleksibel dan mudah dipelihara. Tool yang digunakan untuk menganalisis aplikasi yang diusulkan yaitu dengan menggunakan dengan UML maka pada tahap analisis dapat dibuat model-model analisis yang tepat dan menspesifikasikan langkah-langkah penting dalam menganalisis dan merancang aplikasi.  Pada analisis dan perancangan basis data pada pembuatan aplikasi POS berbasis website ini menggunakan MySQL sebagai Database Management System (DBMS) yang dipilih. Hal ini dikarenakan MySQL bersifat open source, mudah untuk digunakan dan cepat secara kinerja query.   Hasil yang didapat setelah melakukan uji coba  adalah bahwa transaksi-transaksi basis data yang terdapat pada aplikasi parkir ini dapat dikatakan sudah baik dan dapat digunakan oleh user.

3.2       Kemungkinan Pengembangan
Program ini dapat dikembangkan menjadi lebih baik. Dengan menambah grafik sehingga penampilannya lebih menarik. Kemudian dapat menampung data lebih banyak. Bagaimana jika tiba-tiba listrik mati dan semua data hilang. Maka dari itu, harus terintegrasi dengan database secara di backup tersetruktur  


link download:
google drive

Disusun Oleh:

                                               Gerry Ediana Putra            (A2.1600072)
                                               Nasrul Husna                     (A2.1600111)
                                               Zainal Arip Haryadi P       (A2.1500100)
0 Komentar untuk "Aplikasi POS"

Silakan tinggalkan komentar anda. DILARANG KERAS menyimpan link blog/web pada komentar dengan tujuan backlink, Spam.

 
Copyright © 2014 Tutorial Kampus - All Rights Reserved
Template By. Catatan Info