Membuat Aplikasi Database dengan Netbeans, Waaah ternyata gampang Banget (Update Source Code)

Alo semuanya, ada sedikit revisi untuk postingan sebelumnya, yup, beberapa perbaikan koding untuk demo login di postingan http://onta-programing.blogspot.com/2009/01/membuat-aplikasi-database-dengan_14.html

Ada perbaikan kode untuk tombol Login pada Form Utama, Tombol login pada Form Login, dan Tombol Batal.

Yup, revisi ini dimaksudkan untuk lebih efisien dalam penggunaan kode. Mudah-mudahan temen-temen lebih mudah mempelajarinya :).

Oya Source Codenya juga dah di update ini link terbaru Source Codenya. Sok atuh di download SourceCode nya di Sini.

Postingan sebelumnya udah di rubah jadi Yaaa dibaca lagi aja ya. Thanks semuanya. Kirim Komentarnya ya :). Good Luck

Baca Selengkapnya......

Reporting dengan NetBeans

OK sekarang mari kita coba membuat sebuah latihan tentang reporting menggunakan iReport dan NetBeans IDE dan peralatan-peralatan yang perlu dipersiapkan adalah sebagai berikut :
- NetBeans 5.5
- iReport 1.3.1
- MySQL Server (atau bisa juga database server yang lain)
- JDK 1.6

Setelah peralatan telah siap, mari kita buat latihannya dan langkah-langkahnya adalah sebagai berikut:

  1. Bikinlah sebuah New Project dan berilah nama ReportingInNetBeans.
  2. Pada project inspector, klik kanan root project kemudian pilih New > JFrame Form kemudian pada jendela New JFrame isikan Frame Report pada Class Name, dan pada kolom isian Package pilihlah reportinginnetbeans. Setelah itu tambahkanlah beberapa komponen pada JFrame tersebut sehingga tampilannya menjadi seperti gambar dibawah ini:
    jframe_report
    Click to large
  3. Setelah mengatur tampilan JFrame seperti pada gambar diatas, sekarang tekanlah tombol SHIFT+F11 agar NetBeans membuatkan sebuah direktori distribusi untuk kita yaitu direktori dist. Setelah itu, masuklah pada files inspector kemudian buatlah sebuah direktori yaitu direktori Report dibawah direktori dist yang berfungsi untuk menampung seluruh file template yang kita desain pada iReport dan tampilan dari langkah ke 3 ini terlihat seperti gambar dibawah ini:
    direktori_dist_report
    Click to large
  4. Setelah membuat sebuah direktori Report sekarang waktunya untuk mengkonfigurasi file build-impl.xml agar ketika kita melakukan proses Clean direktori Report ini tidak ikut terhapus. Sekarang bukalah file build-impl.xml yang terdapat pada direktori nbproject seperti gambar dibawah ini:
    build-impl-xml
    Click to large

    Setelah file build-impl.xml terbuka, sekarang carilah CLEANUP SECTION seperti dibawah ini:
    526
    527
    528
    529
    530
    531
    532
    533
    534
    535
    536
    537
    538
    539
    540
       
    name="deps-clean" depends="init" unless="no.deps"/>
    name="-do-clean" depends="init">
    dir="${build.dir}"/>
    dir="${dist.dir}"/>
    >
    name="-post-clean">


    >
    name="clean" depends="init,deps-clean,-do-clean,-post-clean" description="Clean build products."/>

    Setelah itu editlah baris 534 sehingga hasilnya menjadi seperti dibawah ini:

    526
    527
    528
    529
    530
    531
    532
    533
    534
    535
    536
    537
    538
    539
    540
    541
     
    name="deps-clean" depends="init" unless="no.deps"/>
    name="-do-clean" depends="init">
    dir="${build.dir}"/>
    file="${dist.jar}"/>
    dir="${dist.javadoc.dir}"/>
    >
    name="-post-clean">


    >
    name="clean" depends="init,deps-clean,-do-clean,-post-clean" description="Clean build products."/>

    Setelah melakukan proses pengeditan seperti diatas simpanlah file konfigurasinya dan tutuplah NetBeans-nya agar mengurangi resource CPU :D dan sekarang waktunya untuk membuat contoh report melalui iReport. :)

  5. Sebelum mulai menggunakan iReport, aturlah dahulu Data Source yang akan digunakan dengan cara pilih Data > Connections/Data Source dan aturlah koneksinya menjadi seperti gambar dibawah ini:
    SettingKoneksiIreport
    Click to large
  6. Setelah selesai mengkonfigurasi Data Source, sekarang buatlah report baru dengan cara menekan File > New Document. Setelah template report muncul, sekarang tentukanlah Report Query yang akan digunakan untuk report ini. Untuk menentukan Report Query yang akan digunakan tekanlah Data > Report Query dan masukkanlah statement SQL sehingga tampilannya menjadi seperti dibawah ini:
    Qry_iReport
    Click to large
  7. Setelah menentukan Report Query, sekarang design-lah report-nya hingga menjadi seperti gambar dibawah ini:
    report_template
    Click to large

    kemudian simpanlah dengan nama Mahasiswa_Report.jrxml pada direktori Report yang telah dibuat pada langkah ke 3 hingga struktur direktori project NetBeans kita menjadi seperti gambar dibawah ini:
    gambar_dir_prj_Nb
    Click to large

  8. Setelah melakukan proses penyimpanan, sekarang coba jalankan report-nya dengan menggunakan active connection dengan cara tekan menu Build > Execute (with active connection) dan jika tidak ada masalah maka report yang telah anda design akan tampak seperti gambar dibawah ini:
    Report_Jadi
    Click to large
  9. Report telah jadi, sekarang coba bukalah project ReportingInNetBeans kemudian pada tombol yang berfungsi untuk menampilkan reportnya berikanlah evet dengan cara klik kanan kemudian pilih Events > Action > actionPerformed kemudian pastekanlah kode dibawah ini:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // TODO add your handling code here:
    jButton1.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
    Connection con = null;
    try {
    String jdbcDriver = "com.mysql.jdbc.Driver";
    Class.forName(jdbcDriver);

    String url = "jdbc:mysql://localhost/latihanibatis";
    String user = "root";
    String pass = "rahasia";

    con = DriverManager.getConnection(url, user, pass);
    Statement stm = con.createStatement();

    try {
    Map prs = new HashMap();
    JasperReport JRpt = JasperCompileManager.compileReport("./dist/Report/Mahasiswa_Report.jrxml");
    JasperPrint JPrint = JasperFillManager.fillReport(JRpt, prs, con);
    JasperViewer.viewReport(JPrint, false);
    } catch (Exception rptexcpt) {
    System.out.println("Report Can't view because : " + rptexcpt);
    }
    } catch (Exception e) {
    System.out.println(e);
    }
    jButton1.setCursor(Cursor.getDefaultCursor());

    Setelah itu, coba tekanlah tombol F6 untuk menjalankan projectnya dan jika tidak ada masalah maka report yang telah anda design di iReport akan tampil jika tombol yang berfungsi menampilkan reportnya ditekan :)

  10. Report sudah jalan dengan sangat sempurna di NetBeans, sekarang bagaimana jika kita ingin mencoba aplikasi ini pada komputer lain yang hanya mempunyai JRE saja ? Untuk menjawab pertanyaan ini, sekarang tekanlah tombol SHIFT+F11 agar netbeans membuatkan file *.jar untuk aplikasi kita. Setelah proses CLEAN and BUILD selesai, sekarang cobalah kopikan direktori dist/ ke komputer yang lain dan coba jalankan. Berhubung saya dirumah tidak mempunyai 2 komputer, maka saya kopikan ke user yang lain dan hasilnya seperti berikut :
    Ini tampilan di user anton ( Anggap saja di PC Lain :D )
    Report_di_PC_LAIN
    Click to large

    Ini tampilan di user javamaniac ( Anggap saja di PC Lokal )
    RptDiPCLokal
    Click to large

Silahkan dicoba dikomputer lain kalau tidak percaya, reportnya pasti akan jalan dengan sempurna seperti pada waktu kita jalankan dari NetBeans IDE :)

Resource :
- Sample Project ReportingInNetBeans.zip
- Mahasiswa.sql

Baca Selengkapnya......

Kartu Master Card Gratis Dari Payoneer

This summary is not available. Please click here to view the post.

Baca Selengkapnya......

Dollar Gratis - Survey Pertama Dapat 6 Dollar di AwSurveys

Info menarik lagi neh buat kalian, setelah browsing kesana-kemari akhirnya aku temuin deh situs ini. Tugas kita hanya survey website yang disediakan. Ada beberapa link yang disediakan pihak AwSurvey di menu Home. Saat saya mencoba pertama kali, setiap link ada dua situs yang harus disurvey. Aku coba aja masukin kata-kata dari hasil copy-paste situs laen, dan akhirnya dollar pertama kali masuk sebesar 6 Dollar pada survey yang pertama kali. Lakukan pada link-link yang lainnya maka 27 Dollar akan anda dapatkan untuk kali pertama. Lanjutkan hal yang sama setiap harinya. Pembayaran dollar via AlertPay, Paypal, atau USPS. Transfer ke Paypal atau yang lainnya dapat dilakukan dengan klik Reedem Money, dan minimal harus 75 Dollar.
Segera Sign-Up dan dapatkan dollarnya dengan klik banner di bawah ini.



Baca Selengkapnya......

MySQL dan NetBeans

hmmmm, akhirnya saya buat juga nich tutorial MySQL dan NetBeans bagian 2.

sory bagi yang dah lama nunggu, maklum baru selesai UAS. jd sekarang lagi liburan panjang nich…

pada tutorial ini saya akan menjelaskan tentang mysql dalam netbeans, bukan mysql dan java

maksunya?

maksud saya, sekarang kita akan belajar tentang mysql namun dengan menggunakan Netbeans. ok, kalo bingun mending langsung aja masuk ke tutorial.

seperti biasa, proses managemen database mencakup proses administrator seperti pembuatan database, pembuatan table, dan pembuatan user. dan juga proses peremajaan database. seperti proses INSERT, UPDATE, DELETE dan tak lupa juga proses menampilkan database yaitu SELECT

kita tidak akan belajar serius tentang proses adminidtrator disini. namun kita akan memfokuskan di proses peremajaan database.



MEMBUAT DATABASE

untuk membuat database dalam NetBeans, masuklah ke MySQL comand promp lalu ketikkan

CREATE DATABASE NAMA_DATABASE;

maka otomatis akan terbuat sebuah database, contoh kita buat database dengan nama database “NETBEANS” :

image

kalo proses pembuatan berhasil, maka akan ada tulisan QUERY OK. sekarang kita mulai masuk ke NetBeans

MEMBUAT KONEKSI

untuk membuat koneksi dalam Netbeans, pertama kita masuk dulu ke tab service :

image

setelah itu klik nanan pada Database, lalu pilih New Connection :

image

setelah itu masukkan akan keluar dialog seperti dibawah ini :

image

inilah nama host dengan lokasi server database MySQL, dan no portnya, juga nama databasenya yang tadi kita buat yaitu “NETBEANS”. setelah itu isi username dan password yang kita gunakan untuk mengakses database, lalu klik remember password agar kita tak perlu lagi konfirmasi ketika akan menggunakan koneksi seprti dibawah ini :

image

setelah itu klok ok :

image

klik Ok lagi.

image

setelah proses pembuatan koneksi berhasil, kita bisa melihat akan ada subtree baru yang terbuat dari hasil koneksi tadi. sekarang kita akan membuat table dan juga melakukan proses peremajaan.

sebelumnya klik kanan pada hasil subtree yang tadi kita buat lalu pilih Execute Comand :

image

maka akan terdapat editor baru untuk kita gunakan sebagai proses eksekusi kode SQL :

image

MEMBUAT TABEL

untuk membuat table dalam MySQL, gunakan kode seperti dibawah ini :

CREATE TABLE NAMA_TABLE(
NAMA_KOLOM TIPE_DATA KETERANGAN,
NAMA_KOLOM TIPE_DATA KETERANGAN
);

misal kita akan membuat sebuah table MAHASISWA dengan kolom NIM, NAMA, TANGGAL_LAHIR :

image

setelah itu klik tombol seperti pada gambar dibawah ini untuk mengeksekusi skrip diatas :

image

setelah itu, maka sekarang telah terbentuk sebuah table dalam database NETBEANS yang bernama MAHASISWA, anda bisa melimelihatnya pada subtree koneksi yang tadi dibuat :

image

jika tidak keluar, coba klik kanan lalu klik Refresh.

MEMASUKKAN DATA

sekarang kita akan melakukan proses pemasukkan data pada table yang tadi kita buat. untuk memassukkan data gunakan :

INSERT INTO NAMA_TABLE
VALUES (
‘NILAI KOLOM 1′,
‘NILAI KOLOM 2′
);

misal kita akan memasukkan data pada tabel MAHASISWA yang tadi kita buat :

image

setelah itu klik tombol eksekusi, maka tabel MAHASISWA sekarang akan terdapat sebuah record (baris) yang bernilai seperti yang tadi kita masukkan.

MENAMPILKAN DATA

pada step sebelumnya kita telah memasukkan data, namun kita belum tahu apakah data yang tadi kita masukkan berhasil atau tidak, makanya kita perlu menampilkan seluruh data dalam tabel MAHASISWA tadi. untuk menampilkan tabel gunakan :

SELECT NAMA_KOLOM, NAMA_KOLOM
FROM NAMA_TABLE;

atau, jika kita akan menampilkan seluruh kolom gunakan :

SELECT *
FROM NAMA_TABLE;

misal kita akan menampilkan seluruh data dalam tabel MAHASISWA :

image

setelah dieksekusi, maka akan muncul tabel seperti dibawah ini :

image

sekarang bisa kita liat bahwa proses INSERT tadi telah berhasil.

MENGUBAH DATA

selain proses INSERT, kita juga sering melalukan proses perubahan data atau lebih dikenal dengan proses UPDATE. dan untuk melakukan proses UPDATE gunakan :

UPDATE NAMA_TABLE
SET NAMA_KOLOM = ‘NILAI BARU’
WHERE
KONDISI;

misal kita akan mengubah nama untuk mahasiswa dengan nim 10106031 menjadi Nesia Oktiana :

image

sekarang data dalam table akan berubah seperti dibawah ini :

image

MENGHAPUS DATA

selain proses INSERT, UPDATE, kita juga pasti akan melakukan proses penghapusan data yang telah tidak digunakan atau dikenal dengan nama proses DELETE. dan untuk melakukan proses tersebut kita gunakan :

DELETE FROM NAMA_TABLE
WHERE
KONDISI;

atau jika kita akan akan menghapus seluruh data dalam table :

DELETE FROM NAMA_TABLE;

misal kita akan menghapus data pada tabel MAHASISWA dengan nim 10106031 :

image

sekarang kita tidak akan melihat data mahasiswa dengan nim 10106031 karena telah dihapus dari tabel :

image

akhirnya selesai juga tutorial bagian 2. nanti kita lanjutkan tutorial tentang JDBC dengan MySQL + NetBeans, tunggu aja ok!!!

see you at next tutorial…


Baca Selengkapnya......

Yuwie = Friendster yg menghasilkan Uang

(1)
BERKENALAN DENGAN YUWIE

Yuwie adalah sebuah situs “Social Networking” seperti Friendster, Facebook, My Space, dll, dan merupakan situs “Social Networking” yang pertama kali membayar kepada membernya. Yuwie akan terus berkembang di Indonesia karena saat ini maniak-maniak Yuwie di Indonesia udah banyak banget terutama kalangan "aBeGe" dan tak akan pernah mati karena sistemnya yang menyenangkan untuk dikerjakan dan benar-benar membayar membernya. Buruan daftar disini (no-scam).




(2)
PERBEDAAN YUWIE DENGAN SITUS “SOCIAL NETWORKING” LAIN

Perbedaannya terletak pada hasil yang kita dapatkan bila kita menggunakan situs “Social Networking” tersebut. Di yuwie, selain kita mendapatkan banyak teman kita juga akan dibayar dalam bentuk dollar (US$) oleh Yuwie. Yuwie sudah banyak digunakan di Indonesia, jadi jangan khawatir kita gak akan dapat temen di sini. Pertemanan lebih kental karena sebenernya Yuwie mirip dengan MLM (Multi Level Marketing), kita tidak perlu membayar untuk bergabung dan dikemas dalam wadah yang menyenangkan yaitu dalam sebuah situs pertemanan.


(3)
MENGAPA YUWIE MEMBAYAR KITA?

Alasannya sangat logis, Yuwie membayar kita sebagai ungkapan rasa terimakasih karena kita telah menggunakan situs ini. Penghasilan Yuwie dari iklan (diperoleh dari pihak-pihak yang mengiklankan produknya di situs Yuwie) sebagian dibagikan kepada para membernya. Inilah yang menjadi perbedaan antara Yuwie dengan yang lain. Situs “Social Networking” lainnya, pendapatan dari iklan di situsnya sepenuhnya milik mereka, kita tidak mendapatkan apa-apa sedangkan kita sebenarnya telah menyumbang banyak “income” kepada mereka.


(4)
BAGAIMANA YUWIE MEMBAYAR KITA?

Yuwie membayar kita dari besarnya “page view/impression” yang kita kumpulkan tiap bulannya selama kita beraktivitas di Yuwie. “Page view” yang kita peroleh berasal dari “page view” yang kita hasilkan sendiri (PV/Personal View) dan berasal dari “page view” Referral kita. Jadi, di Yuwie kita akan dibayar per bulan berdasarkan “page view” yang kita peroleh.


(5)
ISTILAH-ISTILAH DALAM YUWIE

CONTROL PANEL: Semua aktivitas kita dalam Yuwie direkam dalam halaman “Control Panel” untuk menentukan berapa besarnya “earning” (pendapatan kita), mengedit account, melihat daftar teman-teman kita, melihat berapa banyak “referral” kita, membuat blog, mengupload foto kita, mengirim/membalas messege, menambah/membuat group,dll. Control Panel, misalnya dalam Friendster merupakan halaman Home profil Friendster kita.


PAGE VIEW/IMPRESSION: hasil dari segala bentuk aktivitas kita di Yuwie, seperti: mengedit account, melihat daftar teman-teman kita, melihat berapa banyak “referral” kita, membuat blog, mengupload foto kita, mengirim/membalas messege, menambah/membuat group, mengirim testimony, membuka-buka profile temen kita, membaca blog mereka, meng-add temen, kasih tanggapan blog temen kita, dll. Pokoknya semua aktivitas ber-Yuwie kita deh, semuanya..!! Perolehan "view/impression" adalah total dari PV (Personal View/View Pribadi) dan view yang kita peroleh dari referral kita.


REFERRAL: Orang yang Join Yuwie melalui “Referral Link” kita, lebih jelasnya orang yang join Yuwie atas ajakan kita. Segala bentuk aktivitas referral kita yang tentunya akan menghasilkan “page view”, maka “page view” yang mereka hasilkan juga akan menjadi milik kita. Referral kita dalam Yuwie mencapai hingga 10 LEVEL, yaitu:
Level 1: Orang-orang yang bergabung atas ajakan kita sendiri.
Level 2: Orang-orang yang bergabung atas ajakan temen-temen kita yang berada pada Level 1.
Level 3: Orang-orang yang bergabung atas ajakan temen-temen kita yang berada pada Level 2.
Level 4: Orang-orang yang bergabung atas ajakan temen-temen kita yang berada pada Level 3.
…, dst. Sampai Level 10.


EARNING: Besarnya pendapatan kita di Yuwie dalam bentuk US Dollar. Penghasilan kita bila sudah mencapai $5 akan di transfer (Payout) ke "bank virtual" di internet yaitu “Paypal”. Jika belum memiliki rekening paypal daftar aja dulu gratis di http://www.paypal.com. Klik “Sign-Up” (Di bawah Login), trus pilih “Personal”, klik Get Started. Ikuti langkah-langkah selanjutnya. Jangan lupa setelah selesai mendaftar, verifikasikan email kita. Masuk pada inbox email, lalu buka email dari paypal, klik link yang disediakan untuk verifikasi. Nah untuk Login ke paypal menggunakan alamat email kita dan password Paypal kita.
Udah jadi kan?? Langkah selanjutnya masukkan alamat email (account) Paypal kita di Yuwie, agar penghasilan kita dapat ditransfer. Masuk ke Control Panel, trus Edit Profil. Di samping Foto ada tulisan: "These names are only used for your profile. To edit your payment information click here." Nah klik aja.
Payment Service: Pilih Paypal.
Service Email: masukkan email Paypal kita.
Minimum Payment: $5.


(6)
SIMULASI PEROLEHAN VIEW (IMPRESSION) DAN BESARNYA DOLLAR YANG KITA PEROLEH


Perolehan "view/impression" di atas adalah total dari PV (Personal View/View Pribadi) dan view yang kita peroleh dari referral kita.
Gambar di atas merupakan simulasi dari besarnya earning kita dalam dolar tiap bulan, jika masing-masing pribadi dalam referral kita cukup mempunyai 3 orang referral saja dan menghasilkan PV (Personal View) minimal 1.000pv, serta kondisi RSR Yuwie pada saat $0,45. Penghasilan di Yuwie juga sangat dipengaruhi oleh RSR, info mengenai RSR klik disini.


(7)
TUGAS SETELAH BERGABUNG DI YUWIE

Tugas kita setelah bergabung di Yuwie:
*Seperti di situs “Social Networking” lainnya, cari teman sebanyak-banyaknya, percantik tampilan profil Yuwie kita agar profile kita sering di kunjungi temen-temen Yuwie lainnya. Jangan lupa upload foto kesayangan kita karena setiap profil kita dikunjungi temen-temen Yuwie lainnya, maka kita juga akan mendapatkan “page view.” Sering-sering cari ilmu di blog temen-temen yang lain.
*Sering-sering “add friend” dan jangan pernah menolak “friend request”. Tambah temen tambah rezeki kan:-)
*Perbanyak referral kita, karena semakin banyak referral maka semakin banyak “page view” yang kita peroleh. Jadilah KOMANDAN pada referral dibawah kita, tularkan ilmu kita, semangat kita, dan semua hal yang kita punya pada referral kita karena kesuksesan mereka juga merupakan kesuksesan kita.
*Dan yang paling penting (PALING MENDASAR), tugas kita adalah menghasilkan Personal View (PV) minimal 1.000pv per bulan untuk mengejar perolehan dollar seperti pada poin (6).


(8)
TIPS DAN TRIK MEMPERBANYAK DAN
OPTIMASI REFERRAL

Untuk mengoptimasi referral kita agar mereka aktif ber-Yuwie sehingga mengghasilkan banyak "page view" bagi dirinya sendiri dan tentu saja berpengaruh bagi kita, posisikan diri kita menjadi UPLINE seperti halnya kita mengikuti sebuah MLM (Multi Level Marketing). Tugas seorang "upline" adalah memberi semangat, motivasi, menjadi guru yang baik bagi referral kita, dan yang paling penting adalah sebagai panutan/contoh referral-referral kita di Yuwie. Kita harus selangkah lebih depan dari pada mereka.
Dibawah ini kumpulan blog yang saya rangkum berdasarkan eksperimen saya dan hasil jalan-jalan saya pada blog temen-temen Yuwie yang khusus membahas tips dan trik mencari referral:
Tips 1
Tips 2
Tips 3
Tips 4
Tips 5


(9)
TIPS DAN TRIK MEMPERBANYAK PV
(PERSONAL VIEW)

Untuk mencapai 1.000pv setiap bulannya merupakan hal yang sangat mudah di Yuwie. Kuncinya cuma satu, kita harus menjadi Member aktif di Yuwie.
Aktif.. Aktif.. dan Aktif.
Bahkan dengan sedikit trik, 10.000pv perbulan sangat mudah kita capai. Trik yang sering digunakan oleh teman-teman di Yuwie adalah menggunakan metode linky. Lebih jauh tentang linky silahkan Anda pelajari di sini.


(10)
TULARKAN ILMU INI KEPADA REFERRAL KITA DENGAN CARA COPY-PASTE CODE DI BAWAH INI KE DALAM SHOUTBOX KITA MASING-MASING!!

Manfaat apa yang kita peroleh jika kita melakukan copy-paste code di bawah ini ke dalam shoutbox profil Yuwie kita? Kita tidak perlu melakukan penjelasan berulang-ulang pada referral kita terutama yang baru saja gabung dengan Yuwie (newbie) yang pada dasarnya masih awam soal Yuwie. Mereka cukup membaca pada profil kita dan dapat langsung mengerti cara kerja Yuwie.


Baca Selengkapnya......

Script pengatur waktu Session, Logout Otomatis

Banyak hal terjadi jika seseorang telah berhasil login sebagai user, dan tentunya login ini ada ketika user akan memanfaatkan layanan dari suatu website, bukan karena sebab yang lain, seperti tingkat sekuritas yang buruk. Selalu ada masa idle. Idle di sini bermakna user tidak melakukan apa-apa sama sekali di website tersebut, tidak berpindah halaman, tidak memasukkan input pada form manapun, dan tidak ada hal apapun yang menyebabkan sebuah halaman website terrefresh, dengan kata lain user tidak melakukan apa pun pada website yang sedang dia kunjungi. Sungguh user yang aneh. :D~~. Tapi hal seperti ini dapat terjadi jika user sedang asik mengunjungi website yang lain, dan lupa akan website yang dia kunjungi sebelumnya. Tentunya keadaan user pada website yang dikunjungi sebelumnya dianggap sebagai condition yang idle oleh website tersebut. Tidak ada hal apapun yang terjadi di website sebelumnya. Atau kondisi lain, dimana seorang user yang telah 10 menit meninggalkan pc-nya dalam keadaan lupa melogout accountnya. Sungguh terlalu. Di sinilah fungsi pengatur waktu session benar-benar dibutuhkan.

Ada dua cara untuk mengatur waktu session, yang pertama adalah merubah konfigurasi session timeout pada php.ini, cara yang terakhir yaitu dengan memanfaatkan fungsi time() dan variable session yang telah teregistrasi, dengan kata lain cara yang terakhir ini adalah merancang barisan code yang dapat mengatur waktu session. Penulis tidak akan menjelaskan cara yang pertama. Tapi yang akan penulis jelaskan adalah cara yang kedua. Penulis akan mengambil sebuah contoh kasus, ini untuk memudahkan penjelasan secara logika, dan penjelasan alur dari cara kerja script yang akan dibuat.
Kasusnya seperti ini, “Ketika user telah berhasil login, akan ada sebuah session yang digunakan sebagai patokan untuk membandingkan berapa lama user telah berada pada halaman website tersebut. Apabila waktu time() yang berjalan lebih besar dari nilai session dari variable yang dijadikan sebagai patokan nanti maka user tersebut akan secara otomatis terlogout”.

Secara struktur, algoritmanya akan seperti ini :

  1. Sediakan sebuah variable x, berisi waktu sekarang ditambah 30 detik.
  2. Jadikan variable x tersebut sebagai session, yang akan membypass valuenya pada setiap halaman, dengan kata lain, isi variable x tersebut dapat ditampilkan di halaman mana pun.
  3. Bandingkan waktu sekarang dengan nilai dari variable x tersebut.
  4. Jika waktu sekarang lebih kecil dari nilai variable x tersebut, maka si user masih dalam keadaan login.
  5. Jika waktu sekarang lebih besar dari nilai variable x tersebut, maka keadaan si user adalah logout.
  6. Jika user melakukan refresh halaman, berpindah halaman, mengisi form, sebelum masa sessionnya habis maka waktu login di tambah 10 menit berikutnya.

Ya, untuk algoritma di atas penulis bagi menjadi 2 function, yakni function login_validate() dan login_check(). Langsung saja persiapkan script yang dibutuhkan :

File index.php :


require_once "functions.php";
if (( $_POST['username'] == 'admin' ) && ( $_POST['password'] == 'admin'))
{
$_SESSION['user'] = $_POST['username'];
login_validate();
header("location: admin.php");
}

else if ( empty($_POST['username']) && empty($_POST['password']) )
{
header("location: login.php");
}

?>

Selanjutnya file intinya yaitu,
functions.php :


session_start();

function login_validate() {
$timeout = 30;
$_SESSION["expires_by"] = time() + $timeout;
}

function login_check() {
$exp_time = $_SESSION["expires_by"];
if (time() < $exp_time) {
login_validate();
return true;
} else {
unset($_SESSION["expires_by"]);
return false;
}
}
?>

Kemudian admin.php, barisan code dalam admin.php ini penulis ibaratkan seperti kondisi dari admin yang telah berhasil login. Jika lebih dari 30 detik maka user secara otomatis akan di logout. Nilai 30 detik ini diambil dari variable $timeout yang ada di functions.php.

File Admin.php :


require_once "functions.php";

if (ISSET($_SESSION['user']))
{
if (!login_check()) {
header("Location: logout.php");
exit(0);
}
else {
echo "Jika tidak ada kegiatan sama sekali, anda akan logout secara otomatis ... ";
}
}

else
{
echo "Anda tidak berhak untuk ngapa-ngapain ... !! :D";
}

?>

Selanjutnya halaman login usernya, login.php :








username
password






Terlihat jelas pada baris ke 4 di atas, halaman login page memiliki action, menuju index.php, yang kemudian menghasilkan 2 variable POST, yaitu $_POST[‘username’], dan $_POST[‘password’]. Kedua variable inilah yang kemudian dicek pada halaman index.php.

Dan yang terakhir adalah logout.php :


require_once "functions.php";

unset($_SESSION['user']);
session_destroy();
header("location: login.php");

?>


Cara kerja source code di atas cukup sederhana, lihat barisan code index.php,

......
if (( $_POST['username'] == 'admin' ) && ( $_POST['password'] == 'admin'))
{
$_SESSION['user'] = $_POST['username'];
login_validate();
header("location: admin.php");
}

else if ( empty($_POST['username']) && empty($_POST['password']) )
{
header("location: login.php");
}
....

Penjelasannya adalah sebagai berikut, Jika user memasukkan username dan password yang cocok ( dalam kasus ini username dan passwordnya adalah admin ) maka user akan diberikan sebuah variable session, yakni $_SESSION['user'], dan akan ditambahkan sebuah variable baru yang nantinya variable ini berfungsi sebagai timer, yakni

$timeout = 30;

Variable tersebut berada dalam fungsi login_validate() pada script functions.php. Sedangkan masih dalam fungsi login_validate, lompat ke barisan code dibawahnya yaitu :

$_SESSION["expires_by"] = time() + $timeout;

Disinilah letak timer yang sebenarnya, kehebatan dari session adalah dapat melakukan passing value walaupun halamannya berbeda. Jelasnya $_SESSION["expires_by"] mengambil nilainya dari waktu ketika user pertama kali login yaitu time() di tambah dengan 30 detik kedepannya, yakni isi dari variable $timeout.

Nah, dari situ, lihat ke bagian fungsi yang ada di bawahnya, pada functions.php :

...
function login_check() {
$exp_time = $_SESSION["expires_by"];
if (time() < $exp_time) {
login_validate();
return true;
} else {
unset($_SESSION["expires_by"]);
return false;
}
}
....

Ya, lihat baris :
$exp_time = $_SESSION["expires_by"];

Varibale $exp_time itu memiliki nilai dari $_SESSION["expires_by"],
Untuk kejelesannya penulis berikan contoh seperti ini, jika user login pada waktu jam 5, maka $_SESSION["expires_by"] berisi jam ke 5, menit ke 0, dan detik ke 30. Dan secara alami pun diketahui bahwa yang namanya waktu pasti akan terus bertambah tentunya. Tapi karena berada dalam fungsi, variable $_SESSION["expires_by"] ini tidak akan bertambah, walaupun time() terus berlanjutnya.

Lompat ke baris selanjutnya :
if (time() < $exp_time) {
login_validate();
return true;

Dalam baris tersebut sederhananya adalah, jika waktu yang sekarang berjalan lebih kecil nilainya dari nilai yang ada pada $_SESSION["expires_by"], maka tambahkan 30 detik lagi, dan jika waktu pada time() sama dengan nilai $_SESSION["expires_by"] maka user akan otomatis logout

Selanjutnya ...
...
else {
unset($_SESSION["expires_by"]);
return false;
}
...

Jika waktu yang sekarang berjalan itu lebih besar dari nilai yang ada pada $_SESSION["expires_by"], maka lakukan logout.

Script tersebut dapat di download di sini
http://networkandgame.890m.com/ilmuwebsite/article/session-time-by-alk.zip
Cukup jelas ya. Jika ada yang di tanyakan, silahkan layangkan pertanyaan ke email penulis.

Baca Selengkapnya......
Template by : Global Info Media