Sampai pada bagian kedelapan (Tutorial MembuatProgram Biodata Karyawan Part 8) sebenarnya program biodata karyawan ini telah
selesai, dimana hingga bagian kedelapan tutorial ini kita telah dapat
menjalankan program biodata karyawan ini, mulai dari login, penginputan atau
pengeditan data user dan data karyawan, hingga pencetakan laporan tentang
daftar nama-nama karyawan yang telah diinput. Jika anda rasa menu Ganti
Password dan menu Tentang Program tidaklah penting untuk ada dalam program ini,
maka anda bisa langsung menghapus menu tersebut dan langsung melakukan Build
dan Deploy Workspace lalu mendistribusikan file-file yang dibutuhkan pada
komputer server/client. Untuk pembahasan mengenai cara Build dan Deploy
Workspace serta cara mendistribusikan file-file runtime akan kita bahas nanti.
Pada bagian kesembilan dari Tutorial Membuat
Program Biodata Karyawan ini, kita akan membuat window yang akan dapat
digunakan sebagai sarana oleh user yang sedang login atau membuka program ini untuk
mengganti password loginnya. Sebenarnya untuk pembuatan window ganti password
ini dapat dilakukan dengan setidaknya dua cara, yaitu dengan datawindow atau tanpa
datawindow dalam windownya.
Karena program yang kita buat menggunakan Powerbuilder,
maka untuk saat ini saya akan fokuskan pada cara pertama yaitu dengan
menggunakan datawindow, karena datawindow bisa dibilang merupakan fitur utama
dari Powerbuilder, oleh karena itu akan sangat “sia-sia” jika kita menggunakan
Powerbuilder tetapi datawindownya tidak atau kurang maksimal digunakan.
Untuk langkah-langkahnya adalah sebagai berikut:
Buka workspace biokaryawan pada Powerbuilder
Classic 12
Klik File->New lalu pilih tab Datawindow dan
pilih Freeform seperti gambar dibawah ini:
Klik OK
Pilih
SQL Select, seperti gambar ini:
Klik
Next
Pada
jendela Select Tables, pilih karyawan.tbl_user, seperti gambar dibawah ini:
Klik
Open
Pada
jendela Table Layout, pilih kolom user_id, user_name dan user_password, seperti
gambar ini:
Klik
menu Design lalu pilih Retrieval Arguments…
Pada
kotak Name, ketikkan: ra_uid, pada kotak Type pilih Number, seperti gambar ini:
Klik OK
Pilih
tab Where dibawah Table Layout, pada kotak Column pilih:
karyawan.tbl_user.user_id, pada kotak Operator pilih =, pada kotak Value
ketikkan :ra_uid, sehingga seperti ini:
Klik
menu Design lalu pilih Convert To Syntax, sehingga tampilan Table Layout akan
seperti ini:
Tambahkan
syntx sql berikut ini diantara karyawan.tbl_user.user_password dan FROM
karyawan.tbl_user:
karyawan.tbl_user.user_password
AS password_lama,
karyawan.tbl_user.user_password
AS password_baru,
karyawan.tbl_user.user_password
AS password_konfirm
Jangan lupa untuk menambahkan tanda koma (,)
diakhir syntax karyawan.tbl_user.user_password
Sehingga syntax sql akan seperti ini:
Tutup
jendela syntx sql ini, pilih Yes pada pesan konfirmasi perubahannya
Pilih
White pada Background Color, seperti gambar ini:
Klik
Next, maka akan tampil jendela berikut ini:
Klik Finish untuk membuat datawindownya
Hapus kolom user_id dan Text user_id_t
Atur properti Case menjadi Upper (1) untuk semua kolom (Buka tab Edit pada jendela
propertiesnya)
Berikan tanda pada properti Password pada kolom: user_password,
password_lama, password_baru dan password_konfirm (Pada tab Edit di jendela
propertiesnya)
Atur properti Protect pada kolom user_name dan user_password,
dengan memasukkan nilai 1 pada Expressionnya (pada tab General di jendela
propertiesnya)
Hilangkan tanda pada properti Visible dari kolom
user_password dan Text user_password_t
Atur layout dan backgroundnya, hingga jika
diretrieve akan seperti ini:
Atur
Tab Ordernya menjadi seperti ini:
Nama
Kolom
|
Tab
Order
|
user_name
|
0
|
password_lama
|
10
|
password_baru
|
20
|
password_konfirm
|
30
|
user_password
|
0
|
Klik Menu Rows lalu pilih Update Properties…
Pastikan Allow Updates sudah ditandai, dan table
to update sudah benar (karyawan.tbl_user)
Hilangkan pemilihan pada password_lama,
password_baru dan password_konfirm, pastikan pengaturannya seperti gambar
dibawah ini:
Jika sudah
sesuai dengan gambar diatas, klik OK
Simpan
datawindow ini dengan nama d_ganti_password
Buka
window w_password, lalu masukkan control-control berikut ini:
Control
|
Nama
Control
|
Keterangan
|
Datawindow
|
dw_password
|
DataObject
= d_ganti_password
|
Command
Button
|
cb_simpan
|
Text
= &Simpan
|
Command
Button
|
cb_batal
|
Text
= &Batal
|
Atur layoutnya hingga seperti ini:
Sampai disini kita telah selesai mendesain layout
dari w_password, langkah selanjutnya adalah penulisan script kodenya, silahkan
lakukan berikut ini:
Buka
event Open dari w_password, lalu masukkan script berikut ini (dibawah
This.Move(5,5)):
String
ls_password
// atur
objek transaksi ke SQLCA
dw_password.SetTransObject(SQLCA)
//
retrieve data berdasarkan user ID user yang sedang login
IF
dw_password.Retrieve(gl_user_id) > 0 THEN // data berhasil diretrieve
// atur ls_password menjadi null
SetNull(ls_password)
// atur nilai kolom
"dummy" menjadi null
dw_password.SetItem(dw_password.GetRow(),
"password_lama", ls_password)
dw_password.SetItem(dw_password.GetRow(),
"password_baru", ls_password)
dw_password.SetItem(dw_password.GetRow(),
"password_konfirm", ls_password)
// aktifkan dw_password
dw_password.SetFocus()
ELSE //
data tidak berhasil diretrieve karena terjadi kesalahan atau user id tidak
ditemukan
// tampilkan pesan error
MessageBox("Error",
"Data error, harap hubungi administrator.", StopSign!)
END IF
Buka
event Clicked dari cb_simpan, lalu masukkan script kode berikut ini:
String
ls_password, ls_passwordlama, ls_passwordbaru, ls_passwordkonfirm
String
ls_valid = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
Char
lc_karakter
Integer
li_loop, li_ok = 0
//
terima data yang dimasukkan oleh user
dw_password.AcceptText()
ls_password
= dw_password.GetItemString(dw_password.GetRow(), "user_password")
ls_passwordlama
= dw_password.GetItemString(dw_password.GetRow(), "password_lama")
ls_passwordbaru
= dw_password.GetItemString(dw_password.GetRow(), "password_baru")
ls_passwordkonfirm
= dw_password.GetItemString(dw_password.GetRow(), "password_konfirm")
// cek
null atau string kosong
IF
IsNull(ls_passwordlama) OR Trim(ls_passwordlama, True) = "" THEN
MessageBox("Warning",
"Masukkan password lama anda.", Exclamation!)
dw_password.SetColumn("password_lama")
dw_password.SetFocus()
Return
ELSEIF
IsNull(ls_passwordbaru) OR Trim(ls_passwordbaru, True) = "" THEN
MessageBox("Warning",
"Masukkan password baru anda.", Exclamation!)
dw_password.SetColumn("password_baru")
dw_password.SetFocus()
Return
ELSEIF
IsNull(ls_passwordkonfirm) OR Trim(ls_passwordkonfirm, True) = ""
THEN
MessageBox("Warning",
"Masukkan konfirmasi password baru anda.", Exclamation!)
dw_password.SetColumn("password_konfirm")
dw_password.SetFocus()
Return
END IF
// cek
kesesuaian password baru dan konfirmasinya
IF
ls_passwordbaru <> ls_passwordkonfirm THEN
MessageBox("Warning",
"Password baru anda tidak sama dengan konfirmasinya.", Exclamation!)
dw_password.SetColumn("password_baru")
dw_password.SetFocus()
Return
END IF
// cek
kesesuaian password lama
IF
ls_passwordlama <> ls_password THEN
MessageBox("Warning",
"Password lama anda salah.", Exclamation!)
dw_password.SetColumn("password_lama")
dw_password.SetFocus()
Return
END IF
// cek
panjang karakter pada password baru
IF
LenA(ls_passwordbaru) < 5 THEN
Messagebox("Warning",
"Password minimal 5 karakter.", Exclamation!)
dw_password.SetColumn("password_baru")
dw_password.SetFocus()
Return
END IF
// cek
karakter yang dimasukkan pada password baru
FOR
li_loop = 1 TO LenA(ls_passwordbaru)
lc_karakter =
Char(MidA(ls_passwordbaru, li_loop, 1))
IF PosA(ls_valid, lc_karakter) = 0
THEN
li_ok ++
MessageBox("Warning",
"Password hanya boleh diisi dengan karakter AlfaNumeric.",
Exclamation!)
dw_password.SetColumn("password_baru")
dw_password.SetFocus()
Exit
END IF
NEXT
IF
li_ok > 0 THEN Return
//
sepertinya semua syarat penggantian password sudah sesuai
// set
data password baru ke datawindow
dw_password.SetItem(dw_password.GetRow(),
"user_password", ls_passwordbaru)
dw_password.SetItem(dw_password.GetRow(),
"password_lama", ls_passwordbaru)
// update
databasenya
IF
dw_password.Update() = 1 THEN
Commit;
MessageBox("Sukses",
"Password anda berhasil diganti.", Information!)
ELSE
Rollback;
MessageBox("Gagal",
"Gagal mengubah password anda, coba lagi atau hubungi
administrator.", Exclamation!)
Return
END IF
// atur
ls_password menjadi null
SetNull(ls_password)
// atur
kembali kolom-kolom "dummy" menjadi null
dw_password.SetItem(dw_password.GetRow(),
"password_lama", ls_password)
dw_password.SetItem(dw_password.GetRow(),
"password_baru", ls_password)
dw_password.SetItem(dw_password.GetRow(),
"password_konfirm", ls_password)
dw_password.SetColumn("password_lama")
//
aktifkan dw_password
dw_password.SetFocus()
Buka
event Clicked dari cb_batal, lalu masukkan script kode berikut ini:
Close(Parent)
Simpan
perubahan pada w_password dan kita pun selesai membuat window penggantian
password
Coba
jalankan program dan coba untuk mengganti password untuk loginnya dengan mengakses
menu Pengaturan->Ganti Password.
Tes
apakah semua script kodenya sudah berjalan dengan benar atau tidak.
Untuk bagian kesembilan ini saya cukupkan dulu sampai disini, silahkan lanjutkan kebagian kesepuluh untuk membuat window tentang program dan membuat file exe dari program ini, silahkan klik Tutorial Membuat Program Biodata Karyawan Part 10.
Akhir kata, semoga sukses untuk semua yang sedang dan akan
anda lakukan.
Download tutorial ini dalam format pdf:
Tidak ada komentar:
Posting Komentar
Silahkan berikan komentar anda.