PHP Class Pagination alias Pengaturan Data per Halaman

Screenshot sebagai berikut:

Berikut php class pagination, pada script disertakan juga keterangan komentar pada file script.

Demo lainnya: klik disini
Download file contoh script komplit nya:

  class.pagination.rar (2.5 KiB, 4,810 hits, Updated: 14 April 2011)

semoga bermanfaat… :mrgreen:

Tambahan:

untuk pagination Style, dapat Anda pilih disini: some-styles-for-your-pagination

Share

You may also like...

38 Responses

  1. rlyna says:

    bermanfaat kok bang :mrgreen:

    tp kalo aq bikin itu lepas dari db. jadi cuman perlu parameter total record sama current page aja, ntar tinggal build jadi navigation.

    ide itu hasil aq nyontek di code orang sih 😈

    tp yang ini pake class, lebih yahud 😳

    • Jawaad says:

      @rlyna, makasih komentarnya 😉
      owhh iya bisa juga ya diwaktu bulid nya gak perlu pake db ya…
      total record sama current page aja ya.. wah iya ya bener juga…

      ntar saya bikin class pagination yg versi tanpa berkutat langsung dgn db ya… jadi pengaturan db nya di waktu eksekusi di controller (istilah framework nya, halah..)

      eh eh, tapi ntar di controller mesti query2 dulu dong yah untuk mendapatkan jumlah totalnya, bukannya malah jadi tambah panjang code2 pengulangannya? kan kalau yg ini, tinggal setting nama tabel, where, limit, order aja.. atau gimana yg lebih efisien dan fleksibel? yah sementara saya pakai yg ini dulu aja…

  2. Andre says:

    mantap 🙂 😛

  3. ian says:

    ini script OK juga. tapi saya punya kendala nich wkt pakenya buat kasus saya.
    mau nanya nich, klo untuk WHERE nya supaya bisa dirubah-rubah gimana ya? soalnya page 1 nya data keluar tapi pas page 2 datanya blank, pas dilihat ternyata isi WHERE nya kosong, jadi gmn caranya?… saya ambil nilai untuk WHERE nya dari list/menu. thanks banget.

  4. joko says:

    mas, untuk nampilin misal: hal 1 dari 10 halaman gimana mas?
    trims

  5. Jawaad says:

    @ian
    di bagian ini bisa diubah WHERE nya terserah kita.
    bisa juga ambil dari variabel menu yg ian maksudkan.

    @joko
    bagian akhir dari fungsi bulid() diubah seperti ini:

    lalu dibagian yg ingin kita tampilkan seperti ini:

  6. joko says:

    jadi tinggal nambahin “lastpage” aja ya mas, gak ada bagian lain-lain yang dirubah kan

    trims

  7. Jawaad says:

    @joko
    iya mas joko, silahkan dicoba sesuai komentar saya yg di atas, yaitu nambahin hasil array nya (lastpage).
    semoga membantu dan terimakasih atas masukannya.

  8. Adi Suwarso says:

    implementasinya kalo ke MS SQL Server yang connect via ODBC gimana ya?

    sudah diotak-atik malah jadi bingung 🙂

    diantos waleranna,,, nuhun

  9. Adi Suwarso says:

    maaf ketinggalan,,, koneksi odbc saya seperti ini:

    mudah-mudahan ada yang bisa bantu, terutama mas Jawaad.
    terima kasih.

    • Jawaad says:

      @Adi Suwarso, untuk database MS SQL, silahkan dicoba seperti ini:
      dibaris yg

      menjadi:

      terus semua perintah mysql_query nya diubah menjadi odbc_exec.
      semoga bisa membantu..
      cmiiw

  10. joko says:

    mas saya sudah berhasil untuk pagingnya, tapi untuk seting adjacents gak berfungsi , malah kalo gak di kaish adjacent paging nya berhasil, salah saya di mana mas? trims

  11. joko says:

    Mas saya udah berhasil pake pagingnya, tapi untuk seting adjacent gak bisa, malah kalo gak dikaih seting adjacent paging bejalan dengan baik, salah saya dimana ya mas, trims

    • Jawaad says:

      @Joko, kenapa gak bisa? saya dan teman lain dah coba bisa.. kalau aneh, default yg di class nya diubah aja mas adjcent nya..
      dibagian ini:

      angka 3 nya diubah aja sesuai yg mas Joko inginkan.
      Adjacents ini keliatan jika halaman kita banyak.. misalnya yg ada di demo ini:
      http://www.nusansifor.com/demo/pagination/?test=pagination&page=1977
      di link tersebut adjacents nya 2, jadi jika di posisi halaman 1977, maka yg tampil di sebelah kanan dan kiri nya hanya 2 halaman sebelumnya dan 2 halaman setelahnya, yaitu halaman 1975, 1976 (kiri) dan 1978, 1979 (kanan).

  12. wie says:

    mas,,saya menginginkan file class nya terpisah..bagai mana ya..jadi class pagination ini berbeda file dengan penggunaanya…
    kan contoh yang ini di gabung..saya udah nyoba tapi gak berhasil..tolong ya mas..trims

  13. wie says:

    sudah bisa mas..tapi sekarang bingung,, kalo saya menggunakan searching,,paging itu ga berfungsi…jadi harus gimana ya??thanks…

    • Jawaad says:

      @wie, file php pagination class ini memang di-design supaya bisa jalan dengan file terpisah.. dan class memang biasanya jg seperti itu sifatnya, supaya tidak boros copy-paste script.

      Logika untuk searching, pada penggunaan setup, sesuaikan pada baris berikut:

      sesuaikan WHERE kondisi nya sesuai dengan search, dan alamat url web juga sesuaikan dengan variabel search nya… gunakan variabel dari $_GET, dan method searchnya gunakan GET jangan POST.
      contoh pencarian kata “test”:
      blabla.com/?search=test
      maka setupnya sbb:

      silahkan dicoba, semoga membantu.

  14. Thx bos, saya sudah coba, saya gabung dengan script dasar punya saya (maksudnya yang saya pelajari dari tutorial para master) dan berjalan dengan baik.

  15. Adi Suwarso says:

    Mas Jawaad, scriptnya jalan bagus dan cukup mudah dimengerti sehingga bisa disesuaikan dengan kebutuhan untuk tampilannya di web kita,
    hanya saya kesulitan untuk mengcustomize link2 halamannya, tidak seperti paginator.class yang pernah saya pakai (yang memang untuk pemula seperti saya sangat susah dimengerti).
    sebagai contoh :
    members.php?perintah=anggota&sorting=tanggal
    file members.php (induk) meng-include file anggota.php yang berfungsi menghubungi database dan memformat halaman serta memanggil JinPagination.class.php
    maka link2 halaman yang dihasilkan menjadi (contoh):
    members.php?page=8
    padahal kondisi link yang diinginkan:
    members.php?perintah=anggota&page=8&sorting=tanggal
    sehingga anggota.php bisa diinclude kembali oleh members.php dengan parameter setelahnya.
    mudah-mudahan kalimat saya tidak membingungkan 🙂 dan mudah-mudahan mas Jawaad bisa bantu implementasikan 😉
    hatur tengkyu… (maaf kepanjangan)

    • Jawaad says:

      @Mas Adi Suwarso,
      PHP class Pagination yg ini di set supaya bisa fleksibel, jadi tinggal atur set-up an kita saja mas.

      lihat bagian ini mas di contoh script:

      lalu sesuaikan dengan kebutuhan:
      misalkan kasus seperti mas, kita asumsikan begini:

      Btw, mas Suwarso kasusnya mirip dengan yg wie utarakan diatas. Yaitu setup bagian web_url_page dan WHERE.

      Terimakasih atas komentarnya :mrgreen:

  16. Adi Suwarso says:

    🙁 kehilangan data setelah memodifikasi script ini,,, pantang menyerah, baca ulang 🙂

    mas Jawaad, untuk kasus terakhir belum saya coba praktekan, tapi kepikiran sesuatu sehingga saya tambahkan beberapa baris pada script tersebut, mohon commentnya betul atau salah 😉
    eh hanya 2 barus ya 🙂

    ######original line
    // SETUP
    $tabel = $this->tabel;
    $where = $this->where;
    $limit = $this->limit;
    $order = $this->order;
    $page = $this->page;

    ######modified to
    // SETUP
    $tabel = $this->tabel;
    $where = $this->where;
    $selection = $this->selection; //opsi kalau tidak mau semua field di select
    $limit = $this->limit;
    $order = $this->order;
    $page = $this->page;

    ######original line
    // bikin object
    $hal = new JinPagination;
    // setup paginasi
    $hal->setOption(“tabel”, “barang”); // nama tabel database
    $hal->setOption(“selection”, “kodebrg, hargajual, hargajual1”); // field yang akan di select beri “*” kalau mau semua field di select
    $hal->setOption(“where”, “WHERE hargajual > 90000”); // where kondisi, kosongkan jika tidak memakai WHERE
    $hal->setOption(“limit”, “15”); // LIMIT tampilan per halaman
    $hal->setOption(“order”, “ORDER BY hargajual ASC”); // urutan, kosongkan jika tidak memakai urutan
    $hal->setOption(“page”, $_REQUEST[“page”]); // setup untuk ambil variable angka halaman (berguna jika menggunakan SEO url, ubah sesuai dgn kebutuhan)

    ######modified line
    // bikin object
    $hal = new JinPagination;
    // setup paginasi
    $hal->setOption(“tabel”, “barang”); // nama tabel database
    $hal->setOption(“selection”, “kodebrg, hargajual, hargajual1”); // field yang akan di select beri “*” kalau mau semua field di select
    $hal->setOption(“where”, “WHERE hargajual > 90000”); // where kondisi, kosongkan jika tidak memakai WHERE
    $hal->setOption(“limit”, “15”); // LIMIT tampilan per halaman
    $hal->setOption(“order”, “ORDER BY hargajual ASC”); // urutan, kosongkan jika tidak memakai urutan
    $hal->setOption(“page”, $_REQUEST[“page”]); // setup untuk ambil variable angka halaman (berguna jika menggunakan SEO url, ubah sesuai dgn kebutuhan)

    mudah-mudahan tidak salah dan tidak mengganggu 🙂

  17. Adi Suwarso says:

    wakkk, jelek amat tampilan comment saya,,, gimana caranya supaya pada comment baris-baris script code masuk kedalam kotak ‘source’ seperti mas seperti punyanya mas Jawaad ya?
    🙂

  18. Adi Suwarso says:

    yup,,, malah bingung 🙂

    ######original line
    $var_tambahan = ”;
    if(isset($_GET[‘perintah’])) {
    $var_tambahan .= “perintah=”.$_GET[‘perintah’].”&”;
    }
    if(isset($_GET[‘sorting’])) {
    $var_tambahan .= “sorting=”.$_GET[‘sorting’].”&”;
    }

    $hal->setOption(“web_url_page”, “?”.$var_tambahan.”page=”);

    ganti jadi:
    ######modified line
    $var_tambahan = ‘perintah=daftarharga&sorting=tanggal&’;
    $hal->setOption(“web_url_page”, “?”.$var_tambahan.”page=”); // setup alamat url (berguna jika menggunakan SEO url, ubah sesuai dgn kebutuhan)

    maaf, kelebihannya apa mas kalo saya pake baris-baris yang mas Jawaad kasih (belum terpikir), yang saya rubah malah terlalu simpel ya…

    ato ada kekurangan tambahan baris pada script class-nya? kayaknya pertanyaan yang gak nyambung ya 🙁

    sorry…

  19. Jawaad says:

    @Adi Suwarso, mas untuk komen code silahkan pakai


    Oya mas, itu bagian yg mas ubah:

    *) kok perintah nya selalu daftarharga dan sortingnya selalu tanggal? kalau tidak dinamis, mendingan langsung aja dibagian web_url_page. jadi begini:

  20. Adi Suwarso says:

    itu hanya contoh saja mas… 🙂

    pada implementasinya itu memang harus dinamis kok,,, masih pengembangan jadi masih bolak-balik di ‘daftarharga’ dan tanggal 😉

    nantinya pagination ini akan dijalankan sesuai perintah yang diberikan…

    terima kasih

  21. Bagaimana kalau search-nya menggunakan metode POST

    • Jawaad says:

      @Stiksa Eureka, kalau pakai method POST, class nya mesti diubah $web_url_page nya dengan menggunakan variable hidden post.
      Semoga membantu.

  22. sebenarnya masih bingung tapi biar saya coba cari dulu tutorial penggunaan variable hidden post.

    • Jawaad says:

      @Stiksa Eureka, oiya tinggal ubah saja bagian:
      Yang tadinya pakai $_GET.

      diubah menjadi pakai $_POST.

      semoga membantu.

  23. Nanya lagi, saya pake WP, bagaimana memanggil sticky post di wordpress (maaf kalo banyak nanya)

    Soalnya gini saya make wp, tapi untuk halaman index-nya saya mau kombinasi dengan script ini, maksudnya biar lebih bebas mengatur tampilan.

  24. pak,,, minta contoh tabelnya,, saya kesulitan memodifikasi dengan tabel daya terima kasih, mohon di kirim ke email saya putrablora@yahoo.co.id

    • Jawaad says:

      @Budi,
      Tabel pakai kode html sederhana saja kan?
      Kalau Anda sudah ada tabelnya tinggal copy paste aja.
      Ini contoh tabel:

  25. hafiz says:

    mas, emang aplikasi ini kita bisa menghasilkan uang ya mas…?

  26. Supriyadi says:

    Gan, link download class.pagination nya sudah gak aktif lagi ya….
    hiks..hiks hiks…
    jadi kagak bisa ikotan download nya

Leave a Reply to hafiz Cancel reply

Your email address will not be published. Required fields are marked *