Sistem Informasi SPBU

Document Sample
Sistem Informasi SPBU Powered By Docstoc
					          Sistem Informasi SPBU




            Disusun Oleh Kelompok A2 :

             Hilman Farid Puryadinata

              M. Rezkya Feurstinnov

                   Nia Marianti

                   Reza Irwanto

         Yudhitaprawesti Shahranuwiragusti

                  Yulius Eryanto




JURUSAN TEKNIK KOMPUTER DAN INFORMATIKA

       POLITEKNIK NEGERI BANDUNG

                      2009
                                           Kata Pengantar


     Pertama – tama mari kita panjatkan puji syukur atas rahmat dan karunia-Nya kami dapat
menyelesaikan Topik 4 ini sesuai dengan waktu yang telah ditentukan. Pada laporan yang kami buat
ini, yakni mengenai sistem informasi (program) yang dijalankan dalam jual/beli produk di SPBU.
Dalam pembuatan laporan ini tidak lain adalah menerangkan bagaimana proses selama ini yang kami
kerjakan dalam penyelesaian Topik 4 ini.


     Selain sebagai salah satu point penilaian pada mata kuliah Project 1, tujuan pembuatan laporan
ini diharapkan dapat membantu dan mempermudah rekan – rekan atau pembaca dalam mempelajari
program yang kami buat mengenai sistem informasi yang digunakan di SPBU.


     Tidak lupa kami ucapkan terimakasih kepada para dosen pembimbing yang telah membimbing
kami dalam penyelesaian Topik 4 ini. Dan juga rekan – rekan sekalian yang cukup membantu dalam
penyusunan laporan dan penyelesaian Topik 4 ini.


     Kami sadar sepenuhnya laporan dan produk (program) yang kami buat ini masih belum
sempurna maka dari itu saran dan kritik yang membangun kami harapkan.




                                                                                                 2
                             Daftar Isi


1. Pokok Bahasan………………………………………………………………………………...04
2. Aplikasi………………………………………………………………………………………….05
3. Perilaku dan Struktur Data………………………….…………………………………….......06
4. Spesifikasi Setiap Modul…………………………….………………………………………...08
5. Saran Pengembangan……….……………………………………………....………………..10




                                                                  3
1.     Pokok Bahasan


     Pada topik 4 ini, dimana kami ditugaskan dalam membuat program tentang Sistem Informasi
yang Digunakan Di SPBU. Disini kami diminta bisa memberikan solusi dengan membuat program yang
isinya mengenai cara kerja/sistem yang dijalankan SPBU dalam jual/beli produk BBM dengan tampilan
struk sebagai berikut :


               Nama Pegawai
               Jenis Produk yang Dibeli
               Jumlah Liter Produk yang Dibeli
               Jumlah Biaya yang Dikeluarkan
               Tanggal dan Waktu Pembelian


     Dalam topik ini dijelaskan dalam 1 stasiun bisa menjual satu atau lebih jenis produk BBM, dan
minimal terdapat 2 stasiun pada satu lokasi SPBU tersebut. Setiap konsumen dapat membeli produk
BBM dengan 2 cara, yakni berdasarkan liter dan berdasarkan biaya yang dikeluarkan, dan setiap
produk biasanya memiliki harga yang berbeda.


     Selanjutnya diminta untuk menampilkan dalam struk dan melakukan penyimpanan laporan
harian setiap transaksi yang telah dilakukan.




                                                                                                4
2.    Aplikasi


     Aplikasi yang digunakan dalam penyelesaian topik 4 ini adalah dengan bahasa pemograman
yang umum yaitu C++. Dan dalam penerapannya kami menggunakan beberapa metoda diantarannya
adalah procedure, fungsi, typedef struct dan file. Namun dalam pengcodingan kedalam bahasa kami
mengalami kesulitan sehingga waktu yang di butuhkan sangat banyak dan pengalaman kami dalam
programming masih jauh dari apa yang di harapkan.




                                                                                             5
3.     Perilaku dan Struktur Data


      Cara kerja dari program yang kami buat dengan menampilkan menu utama dimana tiap
pilihannya mempunyai hubungan dengan modul-modul yang kami buat. Menu ini di buat untuk user
dan pemilik SPBU.


      User hanya dapat memilih satu pilihan yaitu untuk membeli BBM saja, sedangkan sisanya di
khususkan kepada pemilik, dan SPBU. Setelah user memilih menu untuk membeli BBM user harus
memilih stasiun dimana kami juga menampilkan jenis produk yang ada di stasiun dan kita berasumsi
bahwa stasiun yang ada berjumlah 4, setelah user memilh stasiun dan produk yang diinginkan ada di
stasiun tersebut user kemudian memilih produk yang ada.


      Setelah memilih produk user memilih jenis transaksi yang diinginkan seperti memesan dengan
input harga dan memesan dengan input liter yang kita inginkan. Setelah memilih jenis transaksi yang
diinginkan program yang kita buat terdapat konversi yang berguna untuk mengkonversi dari jenis
transaksi yang dipilih oleh si user.


      Setelah melakukan konversi kami menampilkan struk sebagai bukti pembayaran. Kemudian
kami simpan kedalam file.


      Kemudian pilhan menu untuk pemilik dan petugas SPBU adalah melihat jumlah stok, melihat
laporan, dan simpan laporan




                                                                                                 6
4.      Spesifikasi Setiap Modul


      Modul yang ada di dalam program kami adalah


             1.          Procedure beli BBM
             2.          Procedure lihat stok
             3.          Procedure pilstasiun
             4.          Procedure pilProduk
             5.          Procedure bykPesan
             6.          Procedure valPesan
             7.          Procedure ltrKeRp
             8.          Procedure RpKeLtr
             9.          Procedure tanggal
             10.         Procedure jam
             11.         Procedure struk


     1. Procedure beli BBM


               Adalah sebuah modul atau prosedure yang ada di dalam tubuh program kami dimana
        modul ini bekerja untuk memproses pemesanan dari user dimana di dalam modul ini terdapat
        modul-modul lainnya


        Contoh program:
        void beliBBM()
        {
               dataSPBU SPBU;
               int noST,noProd;
               float bykRp,bykLtr,hrgPsn,ltrPsn;


               FILE *fileSPBU;
               if ((fileSPBU = fopen("fileSPBU.dat", "rb+"))== NULL)
               {
                         cout<<"file tidak ada";
               }
               else


                                                                                              7
          {
                   clrscr();
                   fread(&SPBU,sizeof(SPBU),1,fileSPBU);
                   cout << "Selamat datang di SPBU " << SPBU.lokasi << "\n\n";
                   pilStasiun(noST);
                   pilProduk(noST,noProd);
                   bykPesan(SPBU,hrgPsn,ltrPsn,noProd);
                   struk (noST,noProd,ltrPsn,hrgPsn,SPBU);
                   fwrite(&SPBU,sizeof(SPBU),1,fileSPBU);
                   fclose(fileSPBU);
          }
   }


2. Procedure lihat stok


          Adalah sebuah modul atau prosedure yang ada di dalam tubuh program dimana modul
   ini bekerja untuk memproses dalam melihat stok. Dimana modul stok ini digunakan untuk
   mengetahui banyak stok yang tersedia agar dapat digunakan dalam penjualan BBM.


   Contoh program :


   void lihatStok()
   {
          dataSPBU SPBU;
          int i;


          FILE *fileSPBU;
          if ((fileSPBU = fopen("fileSPBU.dat", "rb+"))== NULL)
          {
                   cout<<"file tidak ada";
          }
          else
          {
                   clrscr();
                   fread(&SPBU,sizeof(SPBU),1,fileSPBU);

                                                                                       8
                  cout << "data sisa Stok BBM : \n\n";
                  for(i=0;i<4;i++)
                  {
                         cout << SPBU.produk[i].jenis << " = ";
                         cout << SPBU.produk[i].stok << "\n";
                  }
          }
   }


3. Procedure pilstasiun


          Merupakan modul atau procedure dari tubuh program yang bekerja untuk memproses
   dalam pemilihan stasiun saat user telah menentukan produk yang diinginkan,yang setelah itu
   disesuaikan dengan letak stasiun mana yang menyesiakan produk yang diinginkan user
   sebelumnya.


   Contoh program :
   void pilStasiun(int &nmrST)
   {
          int pilihST;


          cout << "Pilihan Stasiun :\n";
          cout << "Stasiun 1 : Premium\n";
          cout << "Stasiun 2 : Premium,Pertamax,Solar\n";
          cout << "Stasiun 3 : Pertamax,Pertamax Plus\n";
          cout << "Stasiun 4 : Solar\n\n";


          cout << "stasiun yang dipilih (1/2/3/4) : ";
          cin >> pilihST;


          switch (pilihST)
          {
                  case 1 : nmrST = 1;
                                        break;
                  case 2 : nmrST = 2;

                                                                                           9
                                        break;
                  case 3 : nmrST = 3;
                                        break;
                  case 4 : nmrST = 4;
                                        break;
          }
   }


4. Procedure pilproduk


          Merupakan modul atau procedure yang bekerja untuk menampilkan produk yang
   disediakan dari stasiun yang telah diinginkan sebelumnya.


   Contoh program :
   void pilStasiun(int &nmrST)
   {
          int pilihST;


          cout << "Pilihan Stasiun :\n";
          cout << "Stasiun 1 : Premium\n";
          cout << "Stasiun 2 : Premium,Pertamax,Solar\n";
          cout << "Stasiun 3 : Pertamax,Pertamax Plus\n";
          cout << "Stasiun 4 : Solar\n\n";


          cout << "stasiun yang dipilih (1/2/3/4) : ";
          cin >> pilihST;


          switch (pilihST)
          {
                  case 1 : nmrST = 1;
                                        break;
                  case 2 : nmrST = 2;
                                        break;
                  case 3 : nmrST = 3;
                                        break;

                                                                                10
                 case 4 : nmrST = 4;
                                       break;
         }
  }


5. Procedure bykPesan


         Merupakan sebuah procedure atau modul yang bekerja untuk menentukan berapa
  banyak BBM yang dibeli oleh user yaitu ada yang dihitung dari banyaknya liter yang dipesan
  dan juga berapa banyaknya rupiah yang telah dipesan oleh user.


  Contoh program :
  void bykPesan(dataSPBU SPBU, float &hrgPsn, float &ltrPsn,int noProd)
  {
         int jenisTr;


         cout << "Jenis Transaksi :\n";
         cout << "1. Banyaknya BBM (liter)\n";
         cout << "2. Banyaknya BBM (Rupiah)\n\n";
         cout << "ketikkan nomor transaksi (1/2) : ";
         cin >> jenisTr;


         switch (jenisTr)
         {
                 case 1 : cout << "Berapa liter " << SPBU.produk[noProd].jenis;
                                       cout << " yang akan di beli : ";
                                       cin >> ltrPsn;
                                       valPesan(ltrPsn,SPBU.produk[noProd].stok);
                                       hrgPsn = ltrKeRp(ltrPsn,SPBU.produk[noProd].hrgPerLtr);
                                       break;
                 case 2 : cout << "Berapa rupiah " << SPBU.produk[noProd].jenis;
                                       cout << " yang akan di beli : ";
                                       cin >> hrgPsn;
                                       ltrPsn = rpKeLtr(hrgPsn,SPBU.produk[noProd].hrgPerLtr);
                                       valPesan(ltrPsn,SPBU.produk[noProd].stok);

                                                                                            11
                                          hrgPsn = ltrKeRp(ltrPsn,SPBU.produk[noProd].hrgPerLtr);
                                          break;
          }
          SPBU.produk[noProd].stok = SPBU.produk[noProd].stok - ltrPsn;
  }



6. Procedure valPesan


          Merupakan sebuah modul atau procedure yang bekerja untuk menentukan apakah
  stoknya muat atau tidak agar dapat digunakan dalam penjualan BBM ini.


  Contoh program :
  void valPesan(float &ltrPsn,float stok)
  {
          if(stok<ltrPsn)
          {
                  ltrPsn = stok;
          }
  }


7. Procedure LtrKeRp


          Merupakan modul atau procedure yang bekerja untuk mengkonversi dari pesanan user
  yang ditentukan sebelumnya yaitu dari liter ke rupiah.


  Contoh program :
  float ltrKeRp(float ltrPsn, float hrgPerLtr)
  {
          float hrgPsn;


          hrgPsn = ltrPsn * hrgPerLtr;


          return(hrgPsn);
  }


                                                                                               12
8. Procedure RpKeLtr


          Merupakan modul atau procedure yang bekerja untuk mengkonversi pesanan user
   yang telah ditentukan sebelumnya yaitu mengkonversi dari rupiah ke liter.


   Contoh program :
   float rpKeLtr(float hrgPsn, float hrgPerLtr)
   {
          float ltrPsn;


          ltrPsn = hrgPsn / hrgPerLtr;


          return(ltrPsn);
   }


9. Procedure tanggal


          Merupakan procedure atau modul yang bekerja untuk menentukan tanggal berapa
   transaksi tersebut terjadi.


   Contoh program :
   void tanggal()
   {
          struct date d;


          getdate(&d);
          tgl.tahun = d.da_year;
          tgl.hari = d.da_day;
          tgl.bulan = d.da_mon;
   }


10. Procedure jam


          Merupakan procedure atau modul yang bekerja untuk menentukan waktu transaksi
   tersebut terjadi.



                                                                                         13
   Contoh program :
   void jam ()
   {
          struct time t;


          gettime(&t);
          wkt.jam = t.ti_hour;
          wkt.mnt = t.ti_min;
          wkt.dtk = t.ti_sec;
   }



11. Procedure struk


          Merupakan modul atau procedure yang digunakan untuk menampilkan semua transaksi
   dan menyimpannya ke file.


   Contoh program :
   void struk(int noST,int noProd,float ltrPsn,float hrgPsn,dataSPBU SPBU)
   {
          strukPembelian struk;
          int i;


          tanggal();
          jam();


          clrscr();
          cout << "Tanggal         : ";
          cout << tgl.hari << "/" << tgl.bulan << "/" << tgl.tahun;
          cout << "\n";


          cout << "Jam            : ";
          cout << wkt.jam << ":" << wkt.mnt << ":" << wkt.dtk;
          cout << "\n\n\n";



                                                                                      14
cout << "Lokasi        : " << SPBU.lokasi << "\n";
cout << "Nomor stasiun : " << noST << "\n";
cout << "Produk         : " << SPBU.produk[noProd].jenis << "\n";
cout << "Harga         : " << hrgPsn << "\n";
cout << "Jumlah Liter : " << ltrPsn << "\n";
cout << "Nama Pegawai : " << SPBU.stasiun[noST-1].pegawai;
cout << "\n\n\n";
cout << "Terima Kasih";




FILE *fileStruk;
if ((fileStruk = fopen("fileStruk.dat", "rb+"))== NULL)
{
       if((fileStruk = fopen("fileStruk.dat", "wb+"))==NULL)
       {
               cout << "file tdk ada";
       }
       else
       {
               struk.tggl.hari = tgl.hari;
               struk.tggl.bulan = tgl.bulan;
               struk.tggl.tahun = tgl.tahun;
               struk.jam.jam = wkt.jam;
               struk.jam.mnt = wkt.mnt;
               struk.jam.dtk = wkt.dtk;
               strcpy(struk.lokasi,SPBU.lokasi);
               struk.nmrST = noST;
               strcpy(struk.jnsBBM,SPBU.produk[noProd].jenis);
               struk.jmlLtr = ltrPsn;
               struk.Hrga = hrgPsn;
               strcpy(struk.namaPegawai,SPBU.stasiun[noST-1].pegawai);
               fwrite(&struk,sizeof(struk),1,fileStruk);
       }
}

                                                                         15
    else
    {
           i=1;
           fread(&struk,sizeof(struk),1,fileStruk);
           /*while(!eof(struk))
           {
                    i=i+1;
                    fread(&struk,sizeof(struk),i,fileStruk);
           }   */


           struk.tggl.hari = tgl.hari;
           struk.tggl.bulan = tgl.bulan;
           struk.tggl.tahun = tgl.tahun;
           struk.jam.jam = wkt.jam;
           struk.jam.mnt = wkt.mnt;
           struk.jam.dtk = wkt.dtk;
           strcpy(struk.lokasi,SPBU.lokasi);
           struk.nmrST = noST;
           strcpy(struk.jnsBBM,SPBU.produk[noProd].jenis);
           struk.jmlLtr = ltrPsn;
           struk.Hrga = hrgPsn;
           strcpy(struk.namaPegawai,SPBU.stasiun[noST-1].pegawai);
           fwrite(&struk,sizeof(struk),SEEK_END,fileStruk);
    }
}




                                                                     16
6. Saran Pengembangan


     Sering terjadi error ketika melibatkan operasi file.
     Tampilannya kurang menarik sehingga kami akan berusaha untuk memperbaikinya.
     Bisa mengisi ulang stok pada saat jumlah stok tertentu.




                                                                                    17

				
DOCUMENT INFO
Tags:
Stats:
views:3614
posted:2/27/2011
language:Indonesian
pages:17