Social Icons

google plustwitterfacebookinstagramlinkedinrss feedcontact me

Rabu, 24 September 2014

Membuat Program Biodata Karyawan Part 2

Untuk bagian ini, kita akan "menyempurnakan" window login yang telah kita buat pada bagian sebelumnya, jika anda baru mengikuti tutorial ini atau ingin melihat kembali bagian pertama tutorial ini, silahkan klik Tutorial Membuat Program Biodata Karyawan Part 1.
Namun sebelum "menyempurnakan" window login, yang harus kita lakukan adalah membuat databasenya terlebih dahulu. Seperti yang telah saya katakan sebelumnya, untuk tutorial ini database yang saya gunakan adalah PostgreSQL versi 9.3, jika anda menggunakan database yang lain, silahkan buat tabel baru dengan struktur berikut ini:

Nama Tabel: tbl_user
Kolom/Field yang harus dibuat:
user_id, Tipe Data: integer, Primary Key
user_name, Tipe Data: String/Text dengan maksimal panjang karakter: 20
user_password, Tipe Data: String/Text dengan maksimal panjang karakter: 20
user_full_name, Tipe Data: String/Text dengan maksimal panjang karakter: 50
user_level, Tipe Data: integer
user_status, Tipe Data: integer

Sedangkan jika anda menggunakan database yang sama dengan yang saya gunakan, silahkan ikuti langkah-langkah berikut ini:
Jalankan pgAdmin III, lalu klik dua kali pada nama servernya lalu masukkan passwordnya, biasanya kalau saat instal anda biarkan dengan nilai defaultnya, maka nama servernya adalah PostgreSQL 9.3 (localhost:5432)
1. Expand PostgreSQL 9.3 (localhost:5432) -> Databases -> postgres -> Schemas
2. Buat skema baru dengan nama karyawan dan owner postgres lalu klik OK
3. Expand skema karyawan, lalu buat tabel baru dengan cara klik kanan di skema karyawan lalu pilih New Object dan pilih New Table
4. Pada jendela pembuatan tabel masukkan nama tbl_user pada kotak Name, Owner: postgres
5. Pada tab Columns, buat kolom-kolom berikut ini:
  • user_id, Tipe Data: integer, pada tab Definition, beri tanda pada kotak Not NULL
  • user_name, Tipe Data: character varying, Length: 20
  • user_password, Tipe Data: character varying, Length: 20
  • user_full_name, Tipe Data: character varying, Length: 50
  • user_level, Tipe Data: integer
  • user_status, Tipe Data: integer
6. Pada tab Constraint, buat Primary Key, dengan cara klik Add, lalu masukkan namanya (bebas) disini saya beri nama tbl_user_pk
7. Pada tab Columns (jendela New Primary Key), pilih user_id dikotak pilihan Column lalu klik Add, setelah itu klik OK dan klik OK lagi untuk menyelesaikan pembuatan tabel user.

Ket:
Untuk kolom/field user_id jangan dibuat autonumber/counter (nanti anda akan tahu sebabnya).
Untuk maksimal panjang karakter bisa anda sesuaikan dengan kebutuhan anda.
Untuk kolom/field user_level, nantinya hanya akan bernilai 0 atau 1, dimana 0 berarti user tersebut berada pada level pengguna, sedangkan 1 berarti user tersebut berada pada level administrator.
Untuk kolom/field user_status juga sama, hanya akan bernilai 0 atau 1, dimana 0 berarti user tersebut statusnya sudah tidak aktif atau tidak berhak menjalankan program, sedangkan 1 berarti user tersebut statusnya aktif dan berhak menjalankan program.

Setelah membuat tabel diatas, masukkan data-data berikut ini:
user_id = 1
user_name = ADMIN
user_password = 123456
user_full_name = ADMINISTRATOR
user_level = 1
user_status = 1

Sampai disini kita telah selesai membuat database dan tabel user untuk keperluan login pada program.
Sekarang buka PowerBuilder 12 Classic dan buka workspace yang telah kita buat sebelumnya yang bernama biokaryawan (atau dengan nama workspace milik anda). Sebelumnya pastikan dahulu anda telah membuat koneksi databasenya pada ODBC, jika anda belum membuatnya silahkan lihat disini terlebih dahulu: Persiapan Tutorial.

Kembali lagi ke PowerBuilder 12 Classic, klik menu Tools->Database Painter untuk membuka jendela database dan membuat profile databasenya.
Expand dan klik kanan pada bagian ODBC lalu pilih New Profile, atur konfigurasinya seperti berikut ini:
  • Profile Name: Data Karyawan
  • Data Source: PostgreSQL 93
  • User ID: postgres
  • Password: sample
  • Hilangkan tanda pada kotak Commit on Disconnect
Pada tab Preview klik Copy, dan klik Test Connection, hasilnya harus Connection Succesfull.
Klik Apply lalu klik OK untuk menyimpan profile tersebut.
Klik kanan pada profile Data Karyawan lalu pilih Connect

Sampai disini kita telah selesai membuat koneksi databasenya dalam PowerBuilder, langkah diatas diperlukan agar kita bisa mempreview data yang ada dalam database, jadi bukan untuk koneksi program yang kita buat ke databasenya, karena untuk hal tersebut ada langkah lain (itulah mengapa saya suruh anda untuk klik Copy pada tab preview diatas.

Membuat Custom Class
Custom Class yang akan kita buat adalah untuk keperluan koneksi dan membuka program, sebenarnya langkah ini bersifat opsional, karena kita juga bisa membuatnya langsung di Object Applicationnya, namun kalau menurut saya pribadi, dengan membuat Custom Class ini, akan sedikit menaikan level Programming kita hehehehe.
Lanjut lagi ke tutorialnya, tutup Database Painter, lalu klik File->New->Pilih tab PB Object, lalu pilih Custom Class dan klik OK
Pada tab Function List, klik kanan di area kosong lalu pilih Add, atur seperti dibawah ini:
  • Access: Public
  • Return Type: boolean
  • Function Name: of_logon
Function ini tidak membutuhkan Parameter, jadi hapus parameter default yang otomatis ada, dengan cara klik kanan dikotak Argument Name dan pilih Delete Parameter
Klik kanan pada area script lalu pilih Paste untuk mempaste syntax yang telah kita Copy sebelumnya, sehingga diarea script akan menjadi seperti ini:

// Profile Data Karyawan
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='DSN=PostgreSQL 93;UID=postgres;PWD=<******>',CommitOnDisconnect='No'"

Ganti karakter <******> dengan password untuk konek ke databasenya, dalam hal ini saya ganti dengan "sample" (tanpa tanda kutip), sehingga menjadi seperti ini:
// Profile Data Karyawan
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='DSN=PostgreSQL 93;UID=postgres;PWD=sample',CommitOnDisconnect='No'"

Tambahkan script berikut ini dibawahnya:
Connect;
IF SQLCA.SQLCode <> 0 THEN
MessageBox("Error", SQLCA.SQLErrText, StopSign!)
Return False
END IF
Return True

Sehingga scriptnya akan menjadi seperti ini:
// Profile Data Karyawan
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='DSN=PostgreSQL 93;UID=postgres;PWD=sample',CommitOnDisconnect='No'"
Connect;
IF SQLCA.SQLCode <> 0 THEN
MessageBox("Error", SQLCA.SQLErrText, StopSign!)
Return False
END IF
Return True

Buka lagi tab Function List dan tambahkan Function baru dengan parameter berikut ini:
  • Access: Public
  • Return Type: boolean
  • Function Name: of_open
Function ini juga tidak membutuhkan parameter, jadi hapus kembali parameter yang otomatis ada.
Masukkan script berikut ini pada area scriptnya:
Integer li_ret

IF Not This.of_logon() THEN Return False

Open(w_login)
li_ret = Message.DoubleParm
IF li_ret <> 1 THEN Return False
Return True

Simpan dengan nama: nvo_apps
Sampai disini kita telah selesai membuat Custom Class untuk keperluan koneksi database dan membuka programnya.

Tutup jendela Custom Class nvo_apps, lalu buka Object Application, dengan cara klik dua kali pada Object biokaryawan.
Pada Event Open, hapus script yang telah kita buat sebelumnya lalu masukkan script berikut ini:
nvo_apps lnvo_apps

lnvo_apps = Create Using "nvo_apps"

IF Not lnvo_apps.of_open() THEN
Halt
ELSE
Open(w_utama)
END IF

Klik toolbar Save untuk menyimpan perubahannya, lalu tutup jendela Object Application.

Langkah selanjutnya adalah mengganti semua script pada window w_login, untuk itu buka window w_login.
lalu buka tab Declare Instance Variables, masukkan deklarasi variabel berikut ini:
integer ii_ret

Ganti Instance Variables menjadi Global Variables (dibagian atas area script), lalu deklarasikan variabel-variabel berikut ini:
String gs_nama_user, gs_nama_lengkap
Integer gi_level
Long gl_user_id

Buka Event Open w_login, dan masukkan script ini:
ii_ret = 0

Buka Event Close w_login, dan masukkan script ini:
IF ii_ret = 1 THEN Return
ii_ret = 0
CloseWithReturn(This, ii_ret)

Buka Event Clicked cb_batal, hapus script yang telah ada dan masukkan script ini:
ii_ret = 0
CloseWithReturn(Parent, ii_ret)

Buka Event Clicked cb_ok, hapus script yang telah ada sebelumnya dan masukkan script berikut ini:
String ls_password
Integer li_status

// check null atau string kosong pada sle_nama dan sle_password
IF IsNull(sle_nama.Text) OR Trim(sle_nama.Text, True) = "" THEN
MessageBox("Login", "Masukkan Nama User anda.", Exclamation!)
sle_nama.SetFocus()
Return
ELSEIF IsNull(sle_password.Text) OR Trim(sle_password.Text, True) = "" THEN
MessageBox("Login", "Masukkan password anda.", Exclamation!)
sle_password.SetFocus()
Return
END IF
// set variabel gs_nama_user berdasarkan teks dalam sle_nama
gs_nama_user = sle_nama.Text
// cek data dalam database berdasarkan nama user yang dimasukkan di sle_nama
SELECT user_id, user_password, user_full_name, user_level, user_status
INTO :gl_user_id, :ls_password, :gs_nama_lengkap, :gi_level, :li_status
FROM karyawan.tbl_user
WHERE user_name = :gs_nama_user
USING SQLCA;
// nama user yang dimasukkan tidak ada dalam database
IF SQLCA.SQLCode = 100 THEN
MessageBox("Login", "Nama User tidak ada dalam database.", Exclamation!)
sle_nama.SetFocus()
Return
END IF
// Database error
IF SQLCA.SQLCode <> 0 THEN
MessageBox("Error", "Database error, coba lagi atau hubungi administrator.", StopSign!)
Return
END IF
// data ada dan database tidak error
// cek password yang dimasukkan dalam sle_password
// password tidak sama dengan database
IF UPPER(ls_password) <> sle_password.Text THEN
MessageBox("Login", "Password yang anda masukkan salah.", Exclamation!)
sle_password.SetFocus()
Return
END IF
// password sesuai dengan database, sekarang cek status user, 1 = Aktif, selain 1 maka dianggap tidak aktif
// status user bukan 1 atau tidak aktif
IF li_status <> 1 THEN
MessageBox("Login", "Status user sudah tidak aktif, hubungi administrator.", Exclamation!)
sle_nama.SetFocus()
Return
END IF
// semua data ok
ii_ret = 1
CloseWithReturn(Parent, ii_ret)

Atur TextCase untuk sle_nama dan sle_password menjadi upper!
Tandai kotak Password untuk sle_password
Atur cb_ok menjadi Default, dengan menandai kotak Default di Propertiesnya, setelah itu simpan perubahannya.

Sekarang coba jalankan dengan mengklik toolbar Run, dan coba login dengan benar ataupun dicoba dengan yang salah, misalnya nama usernya diganti atau salah memasukkan passwordnya. Jika memungkinkan coba juga diubah didatabasenya: statusnya diganti dengan 0, lalu coba login dengan user yang statusnya diganti menjadi 0.

Selesailah tutorial membuat program biodata karyawan part 2 ini, nanti akan kita lanjutkan di bagian ketiga, silahkan klik Membuat Program Biodata Karyawan Part 3.

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.

 

Term Of Service

Untuk mengetahui tentang penggunaan blog ini, silahkan buka halaman Term Of Service atau klik TOS untuk langsung membuka halaman Term Of Service

Privacy Policy

Untuk mengetahui kebijakan privacy dalam blog ini, silahkan buka halaman Privacy Policy atau klik Disini untuk langsung membuka halaman Privacy Policy