Pagination Sederhana Dengan C++

2 Comments

backshare

BackShare - Pagination adalah sebuah teknik menampilkan data, dimana banyaknya data yang ada akan di tampilkan dengan membaginya secara merata jadi beberapa bagian / halaman.
Pagination sendiri sering sekali dingunakan dalam PHP. Tetapi di dalam c++ jarang sekali yang menshare teknik ini. Dengan demikian saya akan membagikan Source Code dari teknik tersebut.

Source Code "pagination.cpp"
#include <iostream>
#include <iomanip>
#include <conio.h>
#include <stdlib.h>
using namespace std;

/* fungsi garis */
int garis() {
 int garis;
 for(garis=0;garis<=63;garis++) {
  cout<<"-";
 }
 cout<<endl;

}

/* fungsi header tabel */
void header() {
 garis();
 cout<<" NO   NIM        ALGO        MPP        PTI        RATA - RATA"<<endl;
 garis();
}

/* fungsi utama */
int main() {
 //variabel nomor urut
 int no[100];
 //variabel ID
 int nim[100];
 //variabel nilai matakuliah
 int algo[100],mpp[100],pti[100];
 //variabel looping 
 int save,print;
 //variabel banyak data
 int data_count;
 //variabel sum nilai matkul
 float sum_algo=0,sum_mpp=0,sum_pti=0;
 //varianel average per matakuliah
 float avg_algo,avg_mpp,avg_pti;
 //variabel average & sum per data
 float avg_perdata[100],sum_perdata[100];
 //variabel navigasi
 int jumlah_halaman,akhir,nav,mulai,sisa,page=1;
 //navigasi pindah halaman
 char move; 

 //memasukan nilai data_count sebagai banyaknnya data
 cout<<"MASUKAN BANYAKNYA DATA : ";
 cin>>data_count;
 garis();

 //looping untuk menyimpan data
 for(save=0;save<data_count;save++) {
  cout<<"MASUKAN NIM : ";
  cin>>nim[save];
  cout<<"NILAI ALGO : ";
  cin>>algo[save];
  cout<<"NILAI MPP : ";
  cin>>mpp[save];
  cout<<"NILAI PTI : ";
  cin>>pti[save];
  cout<<endl;
  sum_perdata[save]=algo[save]+pti[save]+mpp[save];
  avg_perdata[save]=sum_perdata[save]/3;
  no[save]=save+1;
 }

 //perhitungan navigasi
 mulai=1;
 akhir=3;
 jumlah_halaman = data_count/akhir;
 sisa = data_count%akhir;
 if(sisa>0) {
  jumlah_halaman++;
 }

 //looping do while untuk navigasi
 do{
       system("cls");
  //selection navigasi
   if(move=='N' || move=='n'){ //jika N maka akan lanjut
    if(akhir < data_count){
     page+=1;
     mulai+=3;
     akhir+=3;
    }
   } 
   else if(move=='P' || move=='p') { //jika P maka akan kembali
    if(mulai >= 3) {
     page-=1;
     mulai-=3;
     akhir-=3;
    }
    
   }

   //memanggil fungsi garis
   garis();
   //menampilkan halaman ke berapa dari berapa halaman
   cout<<"\t\t    "<<"Halaman Ke "<<page<<" Dari "<<jumlah_halaman<<" Halaman";
    cout<<endl;
   //memanggil fungsi header
   header();
   //looping unutk menampilkan data
   for(print=mulai-1;print<akhir;print++) {
    //menyembunyikan file sampah
    if(no[print]!=0 && nim[print]!=0 && algo[print]!=0 && pti[print]!=0 && mpp[print]!=0){
    cout<<" "<<left<<setw(5)<<no[print]<<setw(11)<<nim[print]<<setw(13)<<algo[print]<<setw(11)<<mpp[print]<<setw(11)<<pti[print]<<setw(10)<<avg_perdata[print]<<endl;
    //memanggil fungsi garis
    garis();
    
    }
  }
  cout<<"\t\t      ";
     //navigasi nomor di bawah tabel 
     for(nav=1;nav<=jumlah_halaman;nav++){
      if(nav==page){
       cout<<"["<<nav<<"]";
      } else {
       cout<<" "<<nav<<" ";
      }
     }
  cout<<endl<<endl;
  cout<<"NEXT[N] / PREV[P] / EXIT [PRESS ANY KEY..] : ";
  cin>>move;
 } while(move=='N' || move=='n' || move=='p' || move=='P');
 return(EXIT_SUCCESS);
getch();
}




Berikut ini adalah hasil dari Source Code diatas.
backsahre

backshare

backshare
Untuk Source Code dan Program.exe bisa anda download dengan mengklik link dibawah.
source code *.cpp | download
program *.exe | download

Semoga artikel Pagination Sederhana Dengan C++ ini bermanfaat.
Terima Kasih.

Some say he’s half man half fish, others say he’s more of a seventy/thirty split. Either way he’s a fishy bastard.

2 komentar:

  1. mas, pagination untuk data yang bertipe string bisa memakai ini apa tidak?

    BalasHapus
    Balasan
    1. bisa mas, tinggal ubah saja type data yang saat ini integer menjadi string.
      untuk fungsi pagination biarkna tetap int, karena untuk memanggil index array.

      Hapus

Silahkan tinggalkan komentar dengan bahasa yang sopan.