Writing 1

TUGAS 1

Gambar

TUGAS  2

Gambar

TUGAS 3

Gambar

Tugas 3 | Selecting Data

Sample Table: empinfo
first last id age city state
John Jones 99980 45 Payson Arizona
Mary Jones 99982 25 Payson Arizona
Eric Edwards 88232 32 San Diego California
Mary Ann Edwards 88233 32 Phoenix Arizona
Ginger Howell 98002 42 Cottonwood Arizona
Sebastian Smith 92001 23 Gila Bend Arizona
Gus Gray 22322 35 Bagdad Arizona
Mary Ann May 32326 52 Tucson Arizona
Erica Williams 32327 60 Show Low Arizona
Leroy Brown 32380 22 Pinetop Arizona
Elroy Cleaver 32382 22 Globe Arizona
SQL sintaks untuk menampilkan data sebagai berikut :
1. Tampilkan lastname dari semua orang yang ada di tabel di atas.
SELECT last FROM empinfo;
2. Tampilkan nama depan dan kota untuk orang yang berasal dari City Payson.
SELECT first, city FROM empinfo WHERE city=’Payson’;
3. Tampilkan semua data bagi orang yang berusia di bawah 40 tahun.
SELECT * FROM empinfo WHERE age<40;
4. Tampilkan data semua orang yang namanya di awali dengan “gu“.
SELECT * FROM empinfo WHERE first LIKE ‘gu%’;
5. Tampilkan data semua orang yang berasal dari State Arizona.
SELECT * FROM empinfo WHERE state=’Arizona’;

Tugas Minggu Ke 2 (SQL)

forminput.html
<html>
<head>
<title>Input data</title>
</head>
<body>
<h2>Input Data Karyawan</h2>
<form action=”inputdata.php” method=”post”>
Nama : <br>
<input type=”text” name=”nama”><p>
Tanggal Lahir :<br>
<input type=”text” name=”tgl”>Format yyyy-mm-dd<p>
Jenis Kelamin :<br>
<select name=”kelamin”>
<option>Laki-laki</option>
<option>Perempuan</option>
</select>
<p>
Alamat :<br>
<textarea cols=”30″ rows=”5″ name=”alamat”></textarea><p>
<input type=”submit”>
</form>
</body>
</html>
Kode di atas adalah kode HTML untuk membuat form inputan, yang nantinya akan kita masukkan ke database.
Pada tag  <form action=”inputdata.php” method=”post”>, action berarti kode PHP yang akan memproses inputan jika diklik tombol submit. Methode yang digunakan adalah POST. Secara umum ada 2 metode pengiriman data ke server, yaitu POST dan GET. Bedanya jika metode GET, parameter akan ditampilkan di URL.
Query INSERT
Query INSERT adalah perintah SQL untuk memasukkan data ke tabel di database MySQL
Sintaks SQL :
INSERT INTO nama_tabel [(col_name,…)] VALUES(nilai1, nilai2,…)
Contoh :
INSERT INTO datakaryawan VALUES(null,’Desrizal’,’1981-12-13′,’Laki-laki’,’Jl. raya No. 12, Pekanbaru’)
Kode di atas adalah SQL, cara menjalankannya melalui PHP adalah dengan menggunakan fungsi mysql_query(). Untuk lebih jelas kita lihat contoh di bawah :
inputdata.php
<?php
//lakukan koneksi ke MySQL
mysql_connect(“localhost”,”root”,””);
//Pilih database tempat tabel akan dibuat
mysql_select_db(“databaseku”);
//ambil data dari form method POST
$nama = htmlspecialchars($_POST[‘nama’]);
$tgl = htmlspecialchars($_POST[‘tgl’]);
$kelamin = htmlspecialchars($_POST[‘kelamin’]);
$alamat = htmlspecialchars($_POST[‘alamat’]);
$masuk = mysql_query(“INSERT INTO datakaryawan VALUES(null,
‘$nama’,’$tgl’,’$kelamin’,’$alamat’)”);
if($masuk){
echo “Data berhasil diinput”;
}else{
echo “Gagal”;
}
?>
Untuk mengambil data dari form HTML dengan metode POST adalah $_POST[‘namafield’]
Untuk mengambil data dari form HTML dengan metode GET adalah $_GET[‘namafield’]
htmlspecialchars() berguna untuk mengubah kode HTML < dan > menjadi &lt; dan &gt; gunanya untuk keamanan, jika ada user yang nakal mengetikkan kode HTML yang merusak penampilan web kita.
null artinya tidak ada nilai, karena pada saat kita buat create tabel datakaryawan, field karyawanid diset auto_incerement, artinya akan otomatis berisi nilai integer yang berurut
2. Cara Menampilkan Rows Tabel MySQL
Setelah kita belajar bagaimana menginput data dari form ke tabel di database mysql, sekarang kita belajar mengambil data dari tabel di MySQL. Langkah-langkahnya adalah sebagai berikut :
1.    Koneksi ke database MySQL, gunakan fungsi mysql_connect()
2.    Pilih database, gunakan fungsi mysql_select_db()
3.    Lakukan query SELECT, gunakan fungsi mysql_query()
Sintaks SQL :
SELECT nama_field FROM nama_tabel
Contoh :
SELECT nama, tgl_lahir FROM datakaryawan
Atau, jika ingin memilih seluruh field, gunakan tanda bintang (*)
SELECT * FROM datakaryawan
4.    Masukkan hasil query ke dalam array, gunakan fungsi mysql_fetch_array()
5.    Print data dari array, gunakan fungsi echo
Sekarang kita lihat contoh kodenya :
tampil.php
<?php
//lakukan koneksi ke MySQL
mysql_connect(“localhost”,”root”,””);
//Pilih database tempat tabel akan dibuat
mysql_select_db(“databaseku”);
//lakukan query select
$ambildata = mysql_query(“SELECT * FROM datakaryawan”);
while($data = mysql_fetch_array($ambildata)){
echo “<a href=detail.php?no=”.$data[‘karyawanid’].”>”.$data[‘nama’].”</a> | “;
echo “<a href=delete.php?no=”.$data[‘karyawanid’].”>delete</a><br>”;
}
?>
3. Cara Delete Rows Tabel MySQL
Untuk mendelete data yang ada di database adalah dengan cara melakukan query DELETE
Sintaks SQL:
DELETE FROM nama_tabel WHERE namafield=kondisi
Contoh :
DELETE FROM datakaryawan WHERE karyawanid=2
Pada contoh tampil di atas, jika anda jalankan akan ada link delete, yang kalau diklik akan mengarah file delete php, misal : delete.php?no=1
Sekarang mari kita buat kode PHPnya
delete.php
<?php
//lakukan koneksi ke MySQL
mysql_connect(“localhost”,”root”,””);
//Pilih database tempat tabel akan dibuat
mysql_select_db(“databaseku”);
//ambil nilai variabel no yang diambil dari URL
$nomor = $_GET[‘no’];
//lakukan query DELETE
$del = mysql_query(“DELETE FROM datakaryawan WHERE karyawanid=$nomor”);
if($del){
echo “Data berhasil di delete”;
}else{
echo “Gagal”;
}
?>
4. Cara Update Tabel MySQL
Untuk melakukan update database mysql kita harus melakukan query UPDATE
Sintaks SQL :
UPDATE nama_tabel SET nama_field=nilai, nama_field2=nilai2,…
WHERE nama_field=kondisi
Contoh :
UPDATE datakarayawan SET nama=’Desrizal’, alamat=’Tembagapura’
WHERE karyawanid=1
Oke mari sekarang kita buat program untuk update data karyawan. Pada contoh tampil.php, jika nama karyawan diklik akan menuju file detail.php
Buat form untuk Update, detail.php
<form action=”update.php” method=”post”>
<?php
//lakukan koneksi ke MySQL
mysql_connect(“localhost”,”root”,””);
//Pilih database tempat tabel akan dibuat
mysql_select_db(“databaseku”);
//ambil nilai variabel no yang diambil dari URL
$nomor = $_GET[‘no’];
//lakukan query SELECT
$data = mysql_query(“SELECT * FROM datakaryawan WHERE karyawanid=$nomor”);
while($d = mysql_fetch_array($data)){
echo “Karyawan id : “.$d[‘karyawanid’].”<p>”;
echo “<input type=\”hidden\” name=\”id\” value=\””.$d[‘karyawanid’].”\”>”;
echo “Nama :<br>”;
echo “<input type=\”text\” name=nama value=\””.$d[‘nama’].”\”><p>”;
echo “Jenis Kelamin :<br>”;
echo “<select name=kelamin>”;
if($d[‘kelamin’]==”Laki-laki”){
echo “<option selected>Laki-laki</option>
<option>Perempuan</option>\n”;
}else{
echo “<option>Laki-laki</option>
<option selected>Perempuan</option>\n”;
}
echo “</select><p>”;
echo “Alamat :<br>”;
echo “<textarea name=alamat>”.$d[‘alamat’].”</textarea><p>”;
}
?>
<input type=submit value=update>
</form>
Jika form pada kode diatas diklik, maka akan menjalankan file update.php
<?php
//lakukan koneksi ke MySQL
mysql_connect(“localhost”,”root”,””);
//Pilih database tempat tabel akan dibuat
mysql_select_db(“databaseku”);
//ambil nilai variabel no yang diambil dari form POST
$id = htmlspecialchars($_POST[‘id’]);
$nama = htmlspecialchars($_POST[‘nama’]);
$kelamin = htmlspecialchars($_POST[‘kelamin’]);
$alamat = htmlspecialchars($_POST[‘alamat’]);
//lakukan query update
$update = mysql_query(“UPDATE datakaryawan
SET nama=’$nama’,
kelamin=’$kelamin’,
alamat=’$kelamin’
WHERE karyawanid=$id”);

if($update){
echo “Data berhasil diupdate”;
}else{
echo “gagal”;
}
?>
mysql_num_rows
Fungsi : Menghitung jumlah baris dari query yang dihasilkan
Sintaks :
mysql_num_rows ( resource $result )
Parameter :
$result, hasil dari query yang sudah dijalankan.
Contoh :
<?php
//lakukan koneksi ke MySQL
mysql_connect(“localhost”,”root”,””);
//Pilih database tempat tabel akan dibuat
mysql_select_db(“databaseku”);
$query = mysql_query(“SELECT * FROM datakaryawan WHERE kelamin=’Perempuan'”);
$jumlah = mysql_num_rows($query);
echo “Jumlah karyawan Perempuan adalah : $jumlah orang”;
?>
6. Contoh Buku Tamu
Sekarang mari kita lihat contoh lainnya, yaitu buku tamu.
Struktur tabel bukutamu di MySQL
CREATE TABLE `bukutamu` (
`nomor` int(10) NOT NULL auto_increment,
`nama` varchar(50) NOT NULL,
`email` varchar(50) NOT NULL,
`waktu` varchar(30) NOT NULL,
`komentar` text NOT NULL,
PRIMARY KEY  (`nomor`)
)
bukutamu.php
<html>
<head><title>Buku Tamu</title></head>
<body>
<font face=arial size=2>
<h2>Buku Tamu</h2>
<form action=”isibukutamu.php” method=”post”>
Nama:<br>
<input type=”text” name=”nama”><p>
Email:<br>
<input type=”text” name=”email”><p>
Komentar:<br>
<textarea name=”komentar” cols=40 rows=10></textarea>
<p><input type=”submit” value=”Kirim”>
</form>
<hr>
<!—kode PHP untuk menampilkan bukutamu——->
<?php
//lakukan koneksi ke MySQL
mysql_connect(“localhost”,”root”,””);
//Pilih database tempat tabel akan dibuat
mysql_select_db(“databaseku”);
$data = mysql_query(“SELECT * FROM bukutamu ORDER BY nomor DESC”);
$w = 1;
while($d=mysql_fetch_array($data)){
//buat warna selang-seling
if($w == 1){
$warna = “#ffffff”;
$w = 0;
}else{
$warna = “#efefef”;
$w = 1;
}
echo “<div style=\”background-color:$warna;padding:5\”>”;
echo “Nama : “.$d[‘nama’].”<br>”;
echo “Email : “.$d[’email’].”<br>”;
echo “<font size=1>Waktu : “.$d[‘waktu’].”</font><br>”;
echo “<b>Komentar :</b><br>”.$d[‘komentar’];
echo “</div><p>\n”;
}
?>
</font>
</body>
</html>
isibukutamu.php
<?php
//lakukan koneksi ke MySQL
mysql_connect(“localhost”,”root”,””);
//Pilih database tempat tabel akan dibuat
mysql_select_db(“databaseku”);
$nama = htmlspecialchars($_POST[‘nama’]);
$email = htmlspecialchars($_POST[’email’]);
$komentar = htmlspecialchars($_POST[‘komentar’]);
$waktu = date(“H:i d M Y”);
//jika user tekan enter atau barisbaru, kasih tag <br>
$komentar = nl2br($komentar);
$isi = mysql_query(“INSERT INTO bukutamu VALUES(null,’$nama’,’$email’,’$waktu’,’$komentar’)”);
if($isi){
header(“location:bukutamu.php”);
}else{
echo “Gagal”;
}
?>

Tugas Minggu Pertama

Pengertian SQL
SQL diucapkan dengan (“es-que-el”) singkatan dari structured query language, yang digunakan untuk berkomunikasi dengan database. Menurut ANSI atau American National Standards Institute, atau Institut Standar Nasional Amerika SQL adalah bahasa standar yang digunakan untuk sistem manajemen database relasional, statement SQL biasanya digunakan untuk meng update data dari database, atau mengambil data dari database, beberapa sistem manajemen database relasional yg menggunakan SQL adalah : oracle,sybase, ms. SQL server, access, ingres dsb. Meski sebagian besar sistem menajemen database besar menggunakan SQL, mereka memiliki ektensi tambahan yg digunakan pada sistem mereka sendiri, namun syntak standar SQL seperti “pilih”, “memasukan”, “perbarui”, “hapus”, “buat”, dan pindahkan dapat di gunakan untuk melakukan hampir semua hal yg perlu dilakukan dengan basis data . tutorial / petunjuk ini akan memberikan kamu petunjuk mengenai dasar-dasar dari masing – masing perintah serta memungkinkan kamu untuk menggunakan / menempatkan didalam praktek menggunakan bahasa SQL.

Totorial Aplikasi Penggajian Visual Basic 6.0

INSTALASI SOFTWARE

1. Klik Setup untuk menginstal aplikasi VB 6.0

setup

2.Setelah run program munculah tampilan seperti ini .kalau mau baca readme-nya,kalau tidak silakan Next

1

3.Setelah Next ada Licence Agreement. Centang dulu I Accept Licence Agreement lalu Next

2

4. Masukan CD-key nya ke dalam ID Number seperti gambar dibawah dan isi 2 kolom  dibawahnya bebas, lalu Next lagi

3

5. Setelah di klik next akan tampil tampilan seperti gambar seperti ini. Pilih Install Visual Basic 6.0 .

4

6. Akan tampil gambar seperti ini. Next lagi

5

7. Selanjutnya akan muncul gambar dibawah ini. Pilih Continue

6

8. Pilih OK

7

10. Setelah itu akan tampil Gambar 16 dan Pastikan Folder sudah benar lalu Pilih yang Typical ya

8

11. setelah itu akan muncul kotak dialog seperti dibawah ini lalu pilih Yes

9

12. Dan sekarang VB 6 akan melakukan instalasi untuk menyelesaikan semua komponen.

10

13. Setelah instalasi selesai semua VB 6 akan meminta untuk Restart Windows. Pilih Restart Windows. Dan ingat Sebelum Restart Pastikan Dokument atau aplikasi semuanya di tutup agar aman.

11

 

Database

1. Buka Microsoft Ofice Access. Pilih Blank Database lalu  Buatlah nama database yg anda inginkan

nama db

2. Buatlah Field Tabel Jabatan Seperti dibawah ini dan beri nama = Jabatan

jabatan

3. Buatlah Field Tabel Detail Penggajian dengan format seperti dibawah ini dan beri nama Tabelnya = Detail_Penggajian

detail

4. Buatlah Tabel Pengguna dengan format seperti dibawah ini dan beri nama =  Pengguna

pengguna

6. Buatlah Tabel Pegawai dengan format seperti dibawah ini dan beri nama = Pegawai

pegawai

 

Project Penggajian

1. Buka aplikasi Microsoft Visul Basic 6.0 yang tadi telah di instal

2. Pilih VB Enterprise Edition Controls Lalu Next

baru

lalu akn muncul Form kosong seperti dibawah ini

form kosong

3. Ubah nama form pada properties (sebelah kanan) di kolom (name)

buatnama

4. Buat form tersebut dengan tampilan seperti ini (gambar bebas)

spalsh

lalu masukkan coding untuk form ini (ikuti lingkaran) klik 2 kali icon Code lalu ketik coding seperti disamping

spalsh code

5. Buat form baru untuk form jabatan dengan cara seperti gambar di bawah ini (Project > add form > open)

form baru

Setelah muncul form kosong seperti form sebelumnya, atur sedemikian rupa sehingga menjadi seperti dibawah ini

(Nama Form diubah menjadi frmJabatan)

form jabatan

keterangan komponen :

Biru = Command Button(sebagai tombol navigasi aplikasi), untuk merubah nama dapat dijumpai di Properties kolom Caption dan untuk variabelnya diberi nama cmdTambah (misal) pada kolom (name)

Merah = MsFlexiGrid (sebagai tabel yang akan menampilkan data), variabelnya diberi nama Grid Jabatan

Putih = TextBox (sebagai tempat input data) pada properties kolom text dikosongkan dan pada variabelnya diganti dengan txtJabatan (misal)

Kuning = Label (sebagai pemberi keterangan atau penanda) untuk merubah namanya ada di kolom Caption

Setelah selesai dengan desain maka masukkan Coding seperti dibawah ini
Option Explicit
Dim GridObjIndex As Byte
Dim KodeJabatan As String

Private Sub Form_Load()
    Move (Screen.Width – Width) / 2, _
    (Screen.Height – Height) / 3

    Call BukaDatabase
    Call TampilGridData
    Call FormMati
    
    TbHapus.Enabled = False
    TbSimpan.Enabled = False
    TbUbah.Enabled = False
End Sub

Sub FormKosong()
    txtKode.Text = “”
    txtNama.Text = “”
End Sub

Sub FormHidup()
    txtKode.Enabled = True
    txtNama.Enabled = True
End Sub

Sub FormMati()
    txtKode.Enabled = False
    txtNama.Enabled = False
End Sub

Sub FormNormal()
    FormKosong
    FormMati

    TbTambah.Enabled = True
    TbHapus.Enabled = False
    TbSimpan.Enabled = False
    TbUbah.Enabled = False
    TbKeluar.Caption = “&Keluar”
End Sub

Sub BuatKodeJabatan()
    Rs_Jabatan.Requery
    Set Rs_Jabatan = New ADODB.Recordset
    Set Rs_Jabatan = New ADODB.Recordset
    Rs_Jabatan.Open “SELECT * FROM Jabatan”, _
        KoneksiDB, adOpenDynamic, _
        adLockBatchOptimistic

    If Rs_Jabatan.BOF Then
       KodeJabatan = “J0001”
       Exit Sub
    Else
     Rs_Jabatan.MoveLast
     KodeJabatan = Rs_Jabatan!Kode_Jabatan
     KodeJabatan = Right(KodeJabatan, 4)
     KodeJabatan = Val(KodeJabatan) + 1
     
     If Len(KodeJabatan) > 4 Then
        MsgBox “Kode jabatan baru melewati batas”, _
        vbCritical, “Error”
        Exit Sub
     End If
    End If
    KodeJabatan = “J” & Format(KodeJabatan, “0000”)
End Sub

Sub AktifGridJabatan()
    With GridJabatan
        .RowHeightMin = 300
        .Col = 0
        .Row = 0
        .Text = “NO”
        .CellFontBold = True
        .ColWidth(0) = 400
        .AllowUserResizing = flexResizeColumns
        .CellAlignment = flexAlignCenterCenter
        
        .RowHeightMin = 300
        .Col = 1
        .Row = 0
        .Text = “KODE”
        .CellFontBold = True
        .ColWidth(1) = 800
        .AllowUserResizing = flexResizeColumns
        .CellAlignment = flexAlignCenterCenter
        
        .Col = 2
        .Row = 0
        .Text = “NAMA JABATAN”
        .CellFontBold = True
        .ColWidth(2) = 6000
        .AllowUserResizing = flexResizeColumns
        .CellAlignment = flexAlignCenterCenter
    End With
End Sub

Sub TampilGridData()
    Dim Baris As Integer
    GridJabatan.Clear
    AktifGridJabatan
    
    GridJabatan.Rows = 2
    Baris = 0
    
    Call BukaDatabase
    If Rs_Jabatan.BOF Then
        MsgBox “Tabel Jabatan masih kosong!”, _
        vbOKOnly + vbInformation, “Perhatian”
        Exit Sub
    Else
        With Rs_Jabatan
        .MoveFirst
        Do While Not .EOF
            On Error Resume Next
            Baris = Baris + 1
            GridJabatan.Rows = Baris + 1
            GridJabatan.TextMatrix(Baris, 0) = Baris
            GridJabatan.TextMatrix(Baris, 1) = !Kode_Jabatan
            GridJabatan.TextMatrix(Baris, 2) = !Nama_Jabatan
        .MoveNext
        Loop
        End With
    End If
End Sub

Private Sub GridJabatan_DblClick()
    TbHapus.Enabled = True
    TbSimpan.Enabled = False
    TbUbah.Enabled = True
    TbKeluar.Caption = “&Batal”
    TbTambah.Enabled = False
    
    Call FormHidup
    txtNama.SetFocus
    
    GridObjIndex = GridJabatan.Row
    
    Set Rs_Jabatan = New ADODB.Recordset
    Rs_Jabatan.Open ” SELECT * FROM Jabatan ” _
    & ” WHERE Kode_Jabatan='” _
    & GridJabatan.TextMatrix(GridObjIndex, 1) & “‘ ” _
    , KoneksiDB, adOpenDynamic, adLockBatchOptimistic
       
       If Rs_Jabatan.BOF Then
            MsgBox “Tabel Jabatan masih kosong!”, _
            vbOKOnly + vbInformation, “Perhatian”
            Exit Sub
            Call FormNormal
       Else
            Rs_Jabatan.MoveFirst
            Do While Not Rs_Jabatan.EOF
                On Error Resume Next
                txtKode.Text = Rs_Jabatan!Kode_Jabatan
                txtNama.Text = Rs_Jabatan!Nama_Jabatan
            Rs_Jabatan.MoveNext
            Loop
        End If
End Sub

‘# TOMBOL TAMBAH DIKLIK
Private Sub TbTambah_Click()
    Call FormHidup
    
    Call BuatKodeJabatan
    txtKode.Text = KodeJabatan
    
    TbSimpan.Enabled = True
    TbTambah.Enabled = False
    TbUbah.Enabled = False
    TbHapus.Enabled = False
    TbKeluar.Caption = “&Batal”
    txtNama.SetFocus
    
    Call TampilGridData
End Sub

Private Sub TbSimpan_Click()
    Dim Rs_Jabatan As New ADODB.Recordset
    Set Rs_Jabatan = KoneksiDB.Execute(“SELECT * ” _
    & ” FROM Jabatan ” _
    & ” WHERE Nama_Jabatan='” & txtNama.Text & “‘ “)

    If txtNama.Text = “” Then
        MsgBox “Nama Jabatan tidak boleh kosong!”, _
        vbInformation + vbOKOnly, “Perhatian”
        txtNama.SetFocus
    ElseIf Not Rs_Jabatan.BOF Then
        MsgBox “Maaf, Nama Jabatan” _
            & ” ” & UCase(txtNama.Text) _
            & ” Sudah Tersedia!!”, _
            vbInformation + vbOKOnly, “Information”
        txtNama.Text = “”
        txtNama.SetFocus
        Exit Sub
    Else
        SqlInsert = “INSERT INTO Jabatan ” _
            & ” (Kode_Jabatan,Nama_Jabatan) ” _
            & ” VALUES(‘” & txtKode.Text & “‘,'” _
            & txtNama.Text & “‘)”
                    
        KoneksiDB.Execute SqlInsert, , adCmdText
        Rs_Jabatan.Requery
        Call FormNormal
        Call Form_Load
        
        MsgBox “Data telah tersimpan dalam database !”, _
             vbOKOnly + vbInformation, “Konfirmasi”
    End If
End Sub

‘# TOMBOL UBAH DIKLIK
Private Sub TbUbah_Click()
    If txtNama.Text = “” Then
            MsgBox “Nama Jabatan tidak boleh kosong!”, _
            vbInformation + vbOKOnly, “Perhatian”
            txtNama.SetFocus
    Else
        SqlUpdate = “UPDATE Jabatan” _
            & ” SET Nama_Jabatan='” & txtNama.Text & “‘ ” _
            & ” WHERE Kode_Jabatan='” & txtKode.Text & “‘”
                    
        KoneksiDB.Execute SqlUpdate, , adCmdText
        Rs_Jabatan.Requery
        Call FormNormal
        
        MsgBox “Data telah ter_update dalam database !”, _
        vbOKOnly + vbInformation, “Konfirmasi”
        
        Call Form_Load
    End If
End Sub

‘# TOMBOL HAPUS DIKLIK
Private Sub TbHapus_Click()
    Konfirmasi = MsgBox(“Anda yakin akan ” _
    & ” menghapus pesan ini?”, _
    vbYesNo + vbQuestion, “Konfirmasi”)
    If Konfirmasi = vbYes Then
        SqlDelete = “DELETE FROM Jabatan WHERE ” _
        & ” Kode_Jabatan='” & txtKode.Text & “‘”
        
        KoneksiDB.Execute SqlDelete, , adCmdText
        Rs_Jabatan.Requery
        Call FormNormal
        Call Form_Load
    Else
        Call FormNormal
    End If
End Sub

‘# TOMBOL KELUAR DIKLIK
Private Sub TbKeluar_Click()
    If TbKeluar.Caption = “&Keluar” Then
        Unload Me
    Else
        Call FormNormal
    End If
End Sub

Private Sub txtNama_KeyPress(KeyAscii As Integer)
    KeyAscii = Asc(UCase((Chr(KeyAscii))))
    If KeyAscii = vbKeyReturn Then
        TbSimpan.SetFocus
        KeyAscii = 0
    End If
End Sub

6. Buat Form baru lagi untuk form login (frmLogin)

login

untuk komponen text box password pada properties Password Char karakternya diubah menjadi * (boleh bebas)

Source Code Login

Option Explicit
Dim MaxLogin As Integer

Private Sub Form_Load()
    Move (Screen.Width – Width) / 2, _
        (Screen.Height – Height) / 3
    
    Call BukaDatabase
    
    cmbStatus.AddItem (“ADMIN”)
    cmbStatus.AddItem (“BENDAHARA”)
End Sub

Private Sub TbLogin_Click()
    If txtUser.Text = “” Then
        MsgBox “KOTAK PENGGUNA MASIH KOSONG !”, _
        vbCritical + vbOKOnly, “Error”
        txtUser.SetFocus
    ElseIf txtPwd.Text = “” Then
        MsgBox “PASSWORD MASIH KOSONG !”, _
        vbCritical + vbOKOnly, “Error”
        txtPwd.SetFocus
    Else
        SQL = “”
        SQL = “SELECT * FROM Pengguna ” _
            & “WHERE UserID='” & txtUser.Text & “‘ ” _
            & ” AND PassID='” & txtPwd.Text & “‘” _
            & ” AND Status='” & cmbStatus.Text & “‘”
        Set Rs_Pengguna = KoneksiDB.Execute(SQL)
        
        If Not Rs_Pengguna.BOF Then
            If Rs_Pengguna!Status = “ADMIN” Then
                Unload Me
                FrmUtama.Enabled = True
                FrmUtama.Show
                FrmUtama.mnuLaporan.Enabled = True
                FrmUtama.mnuPegawai.Enabled = True
                FrmUtama.mnuJabatan.Enabled = True
                FrmUtama.mnuPengguna.Enabled = True
                FrmUtama.mnuTransaksi.Enabled = True
                FrmUtama.mnuUbahGaji.Enabled = True
                FrmUtama.mnuTransGaji.Enabled = True
                FrmUtama.mnuLapJual.Enabled = True
                FrmUtama.Toolbar1.Enabled = True
            Else
                Unload Me
                FrmUtama.Enabled = True
                FrmUtama.Show
                FrmUtama.mnuLaporan.Enabled = True
                FrmUtama.mnuLapBarang.Enabled = True
                FrmUtama.mnuLapJenis.Enabled = True
                FrmUtama.mnuTransGaji.Enabled = True
                FrmUtama.mnuUbahGaji.Enabled = False
                FrmUtama.mnuLapJual.Enabled = False
                FrmUtama.mnuPegawai.Enabled = False
                FrmUtama.mnuJabatan.Enabled = False
                FrmUtama.mnuPengguna.Enabled = False
                FrmUtama.mnuTransaksi.Enabled = True
                FrmUtama.Toolbar1.Enabled = False
            End If
             
            PenggunaID = Rs_Pengguna!UserId
            PenggunaNm = Rs_Pengguna!Nama
            
            With FrmUtama
            .StatusBar1.Panels(1).Text = Rs_Pengguna!Nama
            .StatusBar1.Panels(2).Text = “[” _
                & Rs_Pengguna!Status & “]”
            .mnuLogin.Enabled = True
            .mnuLogin.Caption = “Logout”
            End With
            
            Unload Me
        Else
            ‘ Periksa, login hanya 3 kali
            ‘ 3x gagal pesan error ditampilkan
            If MaxLogin < 3 Then
                MsgBox “PASSWORD MASIH SALAH, SILAHKAN ULANGI LAGI!”, _
                    vbCritical + vbOKOnly, “Error”
                txtPwd.Text = “”
                txtPwd.SetFocus
                MaxLogin = MaxLogin + 1
            Else
                MsgBox “ANDA BUKAN PENGGUNA. ANDA TIDAK BERHAK!”, _
                    vbCritical + vbOKOnly, “Error”
                End
            End If
        End If
    End If
End Sub

Private Sub TbTutup_Click()
    Unload Me
End Sub

7. Buat Form untuk Form Pegawai (frmPegawai)

form pegawai

Untuk komponen dan pengaturan desain masih sama

Source Code Form Pegawai
Option Explicit
Dim GridObjIndex As Byte
Dim Kd_Jenis As String
Dim KodePegawai As String
Dim KeteranganPegawai As String

Private Sub Form_Load()
    Move (Screen.Width – Width) / 2, _
        (Screen.Height – Height) / 3

    Call BukaDatabase
    Call TampilGridData
    Call FormMati
    
    TbHapus.Enabled = False
    TbSimpan.Enabled = False
    TbUbah.Enabled = False
    
    Call CmbJenis_Click
    Call cmbJenis_DropDown
End Sub

Sub FormKosong()
    txtKode.Text = “”
    cmbJenis.ListIndex = -1
    txtNama.Text = “”
    txtTunjangan.Text = “0”
    txtGaji.Text = “0”
    txtKeterangan.Text = “”
End Sub

Sub FormHidup()
    txtKode.Enabled = True
    cmbJenis.Enabled = True
    txtNama.Enabled = True
    txtTunjangan.Enabled = True
    txtGaji.Enabled = True
    txtKeterangan.Enabled = True
End Sub

Sub FormMati()
    txtKode.Enabled = False
    cmbJenis.Enabled = False
    txtNama.Enabled = False
    txtTunjangan.Enabled = False
    txtGaji.Enabled = False
    txtKeterangan.Enabled = False
End Sub

Sub FormNormal()
    Call FormKosong
    Call FormMati
    txtTunjangan.Locked = False
    
    TbTambah.Enabled = True
    TbHapus.Enabled = False
    TbSimpan.Enabled = False
    TbUbah.Enabled = False
    TbKeluar.Caption = “&Keluar”
End Sub

Private Sub CmbJenis_Click()
    Kd_Jenis = “”
    Set Rs_Jabatan = KoneksiDB.Execute(“SELECT * FROM ” _
        & ” Jabatan WHERE ” _
        & ” Nama_Jabatan='” & cmbJenis.Text & “‘”)
    With Rs_Jabatan
        If .EOF And .BOF Then
            Exit Sub
        Else
           Kd_Jenis = Rs_Jabatan!Kode_Jabatan
           txtNama.SetFocus
        End If
    End With
End Sub

Private Sub cmbJenis_DropDown()
    cmbJenis.Clear
    Set Rs_Jabatan = KoneksiDB.Execute(“SELECT * FROM ” _
        & ” Jabatan ORDER BY Nama_Jabatan”)
    If Not Rs_Jabatan.BOF Then
      While Not Rs_Jabatan.EOF
       cmbJenis.AddItem Rs_Jabatan!Nama_Jabatan
       Rs_Jabatan.MoveNext
      Wend
    End If
End Sub

Sub BuatKodePegawai()
    Rs_Pegawai.Requery
    Set Rs_Pegawai = New ADODB.Recordset
    Rs_Pegawai.Open “SELECT Pegawai.*, ” _
        & ” Jabatan.Nama_Jabatan ” _
        & ” FROM Pegawai, Jabatan WHERE ” _
        & ” Jabatan.Kode_Jabatan=Pegawai.Kode_Jabatan ” _
        & ” ORDER BY NIP ASC “, _
        KoneksiDB, adOpenDynamic, adLockBatchOptimistic

    If Rs_Pegawai.BOF Then
       KodePegawai = “P0001”
       Exit Sub
    Else
     Rs_Pegawai.MoveLast
     KodePegawai = Rs_Pegawai!NIP
     KodePegawai = Right(KodePegawai, 4)
     KodePegawai = Val(KodePegawai) + 1
     
     If Len(KodePegawai) > 4 Then
        MsgBox “NIP baru melewati batas”, _
        vbCritical, “Error”
        Exit Sub
     End If
    End If
    KodePegawai = “P” & Format(KodePegawai, “0000”)
End Sub

Sub AktifGridPegawai()
    With GridPegawai
        .RowHeightMin = 300
        .Col = 0
        .Row = 0
        .Text = “NO”
        .CellFontBold = True
        .ColWidth(0) = 400
        .AllowUserResizing = flexResizeColumns
        .CellAlignment = flexAlignCenterCenter
        
        .RowHeightMin = 300
        .Col = 1
        .Row = 0
        .Text = “NIP”
        .CellFontBold = True
        .ColWidth(1) = 750
        .AllowUserResizing = flexResizeColumns
        .CellAlignment = flexAlignCenterCenter
        
        .Col = 2
        .Row = 0
        .Text = “JABATAN”
        .CellFontBold = True
        .ColWidth(2) = 1900
        .AllowUserResizing = flexResizeColumns
        .CellAlignment = flexAlignCenterCenter
        
        .Col = 3
        .Row = 0
        .Text = “NAMA PEGAWAI”
        .CellFontBold = True
        .ColWidth(3) = 3300
        .AllowUserResizing = flexResizeColumns
        .CellAlignment = flexAlignCenterCenter
        
        .Col = 4
        .Row = 0
        .Text = “TUNJANGAN [Rp.]”
        .CellFontBold = True
        .ColWidth(4) = 1600
        .AllowUserResizing = flexResizeColumns
        .CellAlignment = flexAlignCenterCenter
        
        .Col = 5
        .Row = 0
        .Text = “GAJI POKOK [Rp.]”
        .CellFontBold = True
        .ColWidth(5) = 1600
        .AllowUserResizing = flexResizeColumns
        .CellAlignment = flexAlignCenterCenter
        
        .Col = 6
        .Row = 0
        .Text = “KETERANGAN”
        .CellFontBold = True
        .ColWidth(6) = 3000
        .AllowUserResizing = flexResizeColumns
        .CellAlignment = flexAlignCenterCenter
        
    End With
End Sub

Sub TampilGridData()
    Dim Baris As Integer
    GridPegawai.Clear
    Call AktifGridPegawai
    
    GridPegawai.Rows = 2
    Baris = 0
    
    Call BukaDatabase
    
    If Rs_Pegawai.BOF Then
        MsgBox “Tabel Pegawai masih kosong!”, _
        vbOKOnly + vbInformation, “Perhatian”
        Exit Sub
    Else
        With Rs_Pegawai
        .MoveFirst
        Do While Not .EOF
            On Error Resume Next
            Baris = Baris + 1
            GridPegawai.Rows = Baris + 1
            GridPegawai.TextMatrix(Baris, 0) = Baris
            GridPegawai.TextMatrix(Baris, 1) = !NIP
            GridPegawai.TextMatrix(Baris, 2) = !Nama_Jabatan
            GridPegawai.TextMatrix(Baris, 3) = !Nm_Pegawai
            GridPegawai.TextMatrix(Baris, 4) = !Tunjangan
            GridPegawai.TextMatrix(Baris, 5) = !Gaji_Pokok
            GridPegawai.TextMatrix(Baris, 6) = !Keterangan
        .MoveNext
        Loop
        End With
    End If
End Sub

Private Sub GridPegawai_DblClick()
    TbHapus.Enabled = True
    TbSimpan.Enabled = False
    TbUbah.Enabled = True
    TbKeluar.Caption = “&Batal”
    TbTambah.Enabled = False
    txtGaji.Locked = True
    
    Call FormHidup
    cmbJenis.SetFocus
    
    GridObjIndex = GridPegawai.Row
    
    Set Rs_Pegawai = New ADODB.Recordset
    Rs_Pegawai.Open “SELECT Pegawai.*, ” _
        & ” Jabatan.Nama_Jabatan ” _
        & ” FROM Pegawai, Jabatan WHERE ” _
        & ” Jabatan.Kode_Jabatan=Pegawai.Kode_Jabatan ” _
        & ” AND NIP='” _
        & GridPegawai.TextMatrix(GridObjIndex, 1) _
        & “‘ ORDER BY NIP ASC “, _
        KoneksiDB, adOpenDynamic, adLockBatchOptimistic
        
       If Rs_Pegawai.BOF Then
            MsgBox “Tabel Pegawai masih kosong!”, _
            vbOKOnly + vbInformation, “Perhatian”
            Exit Sub
            Call FormNormal
       Else
            Rs_Pegawai.MoveFirst
            Do While Not Rs_Pegawai.EOF
                On Error Resume Next
                txtKode.Text = Rs_Pegawai!NIP
                cmbJenis.Text = Rs_Pegawai!Nama_Jabatan
                txtNama.Text = Rs_Pegawai!Nm_Pegawai
                txtTunjangan.Text = Rs_Pegawai!Tunjangan
                txtGaji.Text = Rs_Pegawai!Gaji_Pokok
                txtKeterangan.Text = Rs_Pegawai!Keterangan
            Rs_Pegawai.MoveNext
            Loop
        End If
End Sub

Private Sub TbTambah_Click()
    Call FormHidup
    Call BuatKodePegawai
    txtKode.Text = KodePegawai
    
    TbSimpan.Enabled = True
    TbTambah.Enabled = False
    TbUbah.Enabled = False
    TbHapus.Enabled = False
    TbKeluar.Caption = “&Batal”
    cmbJenis.SetFocus
    
    Call TampilGridData
End Sub

Private Sub TbSimpan_Click()
    If cmbJenis.ListIndex = -1 Then
        MsgBox “Jenis Jabatan tidak boleh kosong!”, _
            vbInformation + vbOKOnly, “Perhatian”
            cmbJenis.SetFocus
    ElseIf txtNama.Text = “” Then
        MsgBox “Nama Pegawai tidak boleh kosong!”, _
            vbInformation + vbOKOnly, “Perhatian”
            txtNama.SetFocus
    ElseIf txtTunjangan.Text = “” Or txtTunjangan.Text = “0” Then
        MsgBox “Tunjangan tidak boleh kosong!”, _
            vbInformation + vbOKOnly, “Perhatian”
            txtTunjangan.SetFocus
    ElseIf txtGaji.Text = “” Then
        MsgBox “Gaji Pegawai tidak boleh kosong!”, _
            vbInformation + vbOKOnly, “Perhatian”
            txtGaji.SetFocus
    Else
        If txtKeterangan = “” Then
            KeteranganPegawai = “Tidak ada keterangan”
        Else
            KeteranganPegawai = txtKeterangan.Text
        End If
    
        SqlInsert = “INSERT INTO Pegawai ” _
            & ” (NIP,Kode_Jabatan, Nm_Pegawai, ” _
            & ” Tunjangan,Gaji_Pokok, Keterangan)” _
            & ” VALUES(‘” & txtKode.Text & “‘,'” _
            & Kd_Jenis & “‘,'” & txtNama.Text & “‘,'” _
            & txtTunjangan.Text & “‘,'” & txtGaji.Text & “‘,'” _
            & KeteranganPegawai & “‘)”
                
        KoneksiDB.Execute SqlInsert, , adCmdText
        Rs_Pegawai.Requery
        Call FormNormal
        Call Form_Load
        
        MsgBox “Data telah tersimpan dalam database !”, _
            vbOKOnly + vbInformation, “Konfirmasi”
    End If
End Sub

Private Sub TbUbah_Click()
    If cmbJenis.ListIndex = -1 Then
        MsgBox “Jabatan tidak boleh kosong!”, _
            vbInformation + vbOKOnly, “Perhatian”
            cmbJenis.SetFocus
    ElseIf txtNama.Text = “” Then
        MsgBox “Nama Pegawai tidak boleh kosong!”, _
            vbInformation + vbOKOnly, “Perhatian”
            txtNama.SetFocus
    ElseIf txtTunjangan.Text = “” Or txtTunjangan.Text = “0” Then
        MsgBox “Tunjangan tidak boleh kosong!”, _
            vbInformation + vbOKOnly, “Perhatian”
            txtTunjangan.SetFocus
    ElseIf txtGaji.Text = “” Then
        MsgBox “Gaji tidak boleh kosong!”, _
            vbInformation + vbOKOnly, “Perhatian”
            txtGaji.SetFocus
    Else
        If txtKeterangan = “” Then
            KeteranganPegawai = “Tidak ada keterangan”
        Else
            KeteranganPegawai = txtKeterangan.Text
        End If
        
        SqlUpdate = “UPDATE Pegawai” _
            & ” SET Kode_Jabatan='” & Kd_Jenis & ” ‘, ” _
            & ” Nm_Pegawai='” & txtNama.Text & “‘, ” _
            & ” Tunjangan='” & txtTunjangan.Text & “‘, ” _
            & ” Gaji_Pokok='” & txtGaji.Text & “‘, ” _
            & ” Keterangan='” & KeteranganPegawai & “‘ ” _
            & ” WHERE NIP='” & txtKode.Text & “‘”
                    
        KoneksiDB.Execute SqlUpdate, , adCmdText
        Rs_Pegawai.Requery
        Call FormNormal
        
        MsgBox “Data telah terbaharui dalam database !”, _
        vbOKOnly + vbInformation, “Konfirmasi”
        
        Call Form_Load
    End If
End Sub

Private Sub TbHapus_Click()
    Konfirmasi = MsgBox(“Anda yakin akan ” _
    & ” menghapus pesan ini?”, _
    vbYesNo + vbQuestion, “Konfirmasi”)
    If Konfirmasi = vbYes Then
        SqlDelete = “DELETE FROM Pegawai WHERE  ” _
            & ” NIP='” & txtKode.Text & “‘”
        
        KoneksiDB.Execute SqlDelete, , adCmdText
        Rs_Pegawai.Requery
        Call FormNormal
        Call Form_Load
    Else
        Call FormNormal
    End If
End Sub

Private Sub TbKeluar_Click()
    If TbKeluar.Caption = “&Keluar” Then
        Unload Me
    Else
        FormNormal
    End If
End Sub

Private Sub txtTunjangan_KeyPress(KeyAscii As Integer)
    If KeyAscii = vbKeyReturn Then
        txtGaji.SetFocus
    ElseIf Not (KeyAscii >= Asc(“0”) _
    And KeyAscii <= Asc(“9”) _
    Or KeyAscii = vbKeyBack) Then
        Beep
        KeyAscii = 0
    End If
End Sub

Private Sub txtKeterangan_KeyPress(KeyAscii As Integer)
    If KeyAscii = vbKeyReturn Then
        TbSimpan.SetFocus
        KeyAscii = 0
    End If
End Sub

Private Sub txtNama_KeyPress(KeyAscii As Integer)
    If KeyAscii = vbKeyReturn Then
        txtTunjangan.SetFocus
        KeyAscii = 0
    End If
End Sub

Private Sub txtGaji_KeyPress(KeyAscii As Integer)
    If KeyAscii = vbKeyReturn Then
        txtKeterangan.SetFocus
    ElseIf Not (KeyAscii >= Asc(“0”) _
    And KeyAscii <= Asc(“9”) _
    Or KeyAscii = vbKeyBack) Then
        Beep
        KeyAscii = 0
    End If
End Sub

8. Buat Form untuk Form Pengguna

form pengguna

Kuning = Combo box (pilihan)

SourceCode
Option Explicit
Dim GridBaris As Byte
Dim TmpPassword As String
Dim NewPassword As String
Dim Tanya As String

Private Sub Form_Load()
    Move (Screen.Width – Width) / 2, _
        (Screen.Height – Height) / 3
   
    Call BukaDatabase
    Call TampilGridData
    
    cmbStatus.Clear
    
    cmbStatus.AddItem (“ADMIN”)
    cmbStatus.AddItem (“BENDAHARA”)
    
    TbUbah.Enabled = False
    TbSimpan.Enabled = False
    TbHapus.Enabled = False
    
    Call FormMati
End Sub

Sub FormKosong()
    txtUserId.Text = “”
    txtPassword.Text = “”
    txtNama.Text = “”
    cmbStatus.ListIndex = -1
End Sub

Sub FormHidup()
    txtUserId.Enabled = True
    txtPassword.Enabled = True
    txtNama.Enabled = True
    cmbStatus.Enabled = True
    
    txtUserId.BackColor = &HFFFFFF
    txtPassword.BackColor = &HFFFFFF
    txtNama.BackColor = &HFFFFFF
    cmbStatus.BackColor = &HFFFFFF
End Sub

Sub FormMati()
    txtUserId.Enabled = False
    txtPassword.Enabled = False
    txtNama.Enabled = False
    cmbStatus.Enabled = False
    
    txtUserId.BackColor = &HC0FFFF
    txtPassword.BackColor = &HC0FFFF
    txtNama.BackColor = &HC0FFFF
    cmbStatus.BackColor = &HC0FFFF
End Sub

Sub FormNormal()
    Call FormKosong
    Call FormMati
 
    TbBaru.Enabled = True
    TbUbah.Enabled = False
    TbHapus.Enabled = False
    TbSimpan.Enabled = False
    TbKeluar.Caption = “&Keluar”
End Sub

Sub AktifGridPengguna()
    With GridPengguna
        
        .RowHeightMin = 300
        .Col = 0
        .Row = 0
        .Text = “USER ID”
        .CellFontBold = True
        .ColWidth(0) = 1300
        .AllowUserResizing = flexResizeColumns
        .CellAlignment = flexAlignCenterCenter
        
        .Col = 1
        .Row = 0
        .Text = “PASSWORD”
        .CellFontBold = True
        .ColWidth(1) = 1300
        .AllowUserResizing = flexResizeColumns
        .CellAlignment = flexAlignCenterCenter
        
        .Col = 2
        .Row = 0
        .Text = “NAMA PEMILIK”
        .CellFontBold = True
        .ColWidth(2) = 3700
        .AllowUserResizing = flexResizeColumns
        .CellAlignment = flexAlignCenterCenter
        
        .Col = 3
        .Row = 0
        .Text = “STATUS”
        .CellFontBold = True
        .ColWidth(3) = 1300
        .AllowUserResizing = flexResizeColumns
        .CellAlignment = flexAlignCenterCenter
    End With
End Sub

Sub TampilGridData()
    Dim Baris As Integer
    GridPengguna.Clear
    Call AktifGridPengguna
    
    GridPengguna.Rows = 2
    Baris = 0
    
    Set Rs_Pengguna = New ADODB.Recordset
    Rs_Pengguna.Open “SELECT * FROM Pengguna”, _
        KoneksiDB, adOpenDynamic, adLockOptimistic

    If Rs_Pengguna.BOF Then
        MsgBox “DATA Pengguna MASIH KOSONG!”, _
        vbOKOnly + vbInformation, “Perhatian”
        Exit Sub
    Else
        With Rs_Pengguna
        .MoveFirst
        Do While Not .EOF
            On Error Resume Next
            Baris = Baris + 1
            GridPengguna.Rows = Baris + 1
            GridPengguna.TextMatrix(Baris, 0) = !UserId
            GridPengguna.TextMatrix(Baris, 1) = “xxxxxxx”
            GridPengguna.TextMatrix(Baris, 2) = !Nama
            GridPengguna.TextMatrix(Baris, 3) = !Status
        .MoveNext
        Loop
        End With
    End If
End Sub

Private Sub GridPengguna_DblClick()
    TbHapus.Enabled = True
    TbSimpan.Enabled = False
    TbUbah.Enabled = True
    TbKeluar.Caption = “&Normal”
    TbBaru.Enabled = False
    txtUserId.Locked = True
    
    Call FormHidup
    txtPassword.SetFocus
    
    GridBaris = GridPengguna.Row
    
    Set Rs_Pengguna = New ADODB.Recordset
    Rs_Pengguna.Open “SELECT * FROM Pengguna ” _
        & ” WHERE UserId='” _
        & GridPengguna.TextMatrix(GridBaris, 0) & “‘”, _
        KoneksiDB, adOpenDynamic, adLockBatchOptimistic
    
    If Rs_Pengguna.BOF Then
        MsgBox “TABEL MASIH KOSONG”, _
        vbOKOnly + vbInformation, “Perhatian”
        Exit Sub
        Call FormNormal
    Else
        Rs_Pengguna.MoveFirst
        Do While Not Rs_Pengguna.EOF
            On Error Resume Next
            txtUserId.Text = Rs_Pengguna!UserId
            txtNama.Text = Rs_Pengguna!Nama
            cmbStatus.Text = Rs_Pengguna!Status
            
            TmpPassword = Rs_Pengguna!PassId
        Rs_Pengguna.MoveNext
        Loop
    End If
End Sub

Private Sub TbBaru_Click()
    Call FormHidup
    Call TampilGridData
    
    TbSimpan.Enabled = True
    TbBaru.Enabled = False
    TbHapus.Enabled = False
    TbKeluar.Caption = “&Normal”
    
    txtUserId.Locked = False
    txtUserId.SetFocus
End Sub

Private Sub TbSimpan_Click()
    Set Rs_Pengguna = New ADODB.Recordset
    Rs_Pengguna.Open “SELECT * FROM Pengguna WHERE ” _
        & ” UserId='” & Trim(txtUserId.Text) & “‘”, _
    KoneksiDB, adOpenDynamic, adLockBatchOptimistic

    If Len(txtUserId.Text) <= 4 Then
        MsgBox “USER ID MINIMAL 4 DIGIT”, _
            vbOKOnly + vbCritical, “Error”
        txtUserId.SetFocus
    ElseIf txtNama.Text = “” Then
        MsgBox “NAMA BELUM DIISI”, _
            vbOKOnly + vbCritical, “Error”
        txtNama.SetFocus
    ElseIf Not Rs_Pengguna.BOF Then
        MsgBox “Maaf, UserId” _
            & ” ” & UCase(txtUserId.Text) _
            & ” sudah tersedia!!”, _
            vbInformation + vbOKOnly, “Information”
        txtUserId.Text = “”
        txtUserId.SetFocus
        Exit Sub
    Else
        SqlInsert = “INSERT INTO Pengguna ” _
            & ” (UserId,PassId,Nama,Status) ” _
            & ” VALUES(‘” & Trim(txtUserId.Text) & “‘,'” _
            & Trim(txtPassword.Text) & “‘,'” _
            & Trim(txtNama.Text) & “‘,'” _
            & Trim(cmbStatus.Text) & “‘)”
                
        KoneksiDB.Execute SqlInsert, , adCmdText
        Rs_Pengguna.Requery
        
        Call FormNormal
        Call Form_Load
            MsgBox “DATA PENGGUNA BARU TELAH TERSIMPAN”, _
                vbOKOnly + vbInformation, “Sukses”
    End If
End Sub

Private Sub TbUbah_Click()
    Set Rs_Pengguna = New ADODB.Recordset
    Rs_Pengguna.Open “SELECT * FROM Pengguna WHERE ” _
        & ” UserId='” & Trim(txtUserId.Text) & “‘”, _
    KoneksiDB, adOpenDynamic, adLockBatchOptimistic
    
    If txtNama.Text = “” Then
        MsgBox “NAMA TIDAK BOLEH KOSONG”, _
            vbOKOnly + vbCritical, “Error”
        txtNama.SetFocus
    Else
        If Trim(txtPassword.Text) = “” Then
            NewPassword = TmpPassword
        Else
            NewPassword = txtPassword.Text
        End If
        
        Tanya = MsgBox(“UBAH DATA PENGGUNA DARI : ” _
            & vbCrLf & “” & “NAMA LAMA : ” _
            & Rs_Pengguna.Fields!Nama + vbCrLf & “” _
            & “NAMA BARU : ” & txtNama.Text + vbCrLf & “”, _
            vbYesNo + vbQuestion, “Perhatian !”)

        If Tanya = vbYes Then
            SqlUpdate = “UPDATE Pengguna” _
                & ” SET PassId='” & NewPassword & ” ‘, ” _
                & ” Nama='” & Trim(txtNama.Text) & “‘, ” _
                & ” Status='” & Trim(cmbStatus.Text) & “‘ ” _
                & ” WHERE UserId='” & Trim(txtUserId.Text) & “‘”
                        
            KoneksiDB.Execute SqlUpdate, , adCmdText
        End If
        
        Rs_Pegawai.Requery
        Call FormNormal
        Call Form_Load
    End If

End Sub

Private Sub TbHapus_Click()
    Tanya = MsgBox(“YAKIN HAPUS DATA INI ?” _
            & vbCrLf & “” & “USER ID : ” _
            & txtUserId + vbCrLf & “” _
            & “NAMA : ” & txtNama.Text + vbCrLf & “”, _
         vbYesNo + vbQuestion, “Perhatian !”)
    If Tanya = vbYes Then
        SQL = “DELETE FROM Pengguna WHERE ” _
            & ” UserId='” & txtUserId.Text & “‘”
        KoneksiDB.Execute SQL, , adCmdText
        
        Rs_Pengguna.Requery
        Call FormNormal
        Call FormMati
        Call TampilGridData
    Else
        Call FormNormal
    End If
End Sub

Private Sub TbKeluar_Click()
    If TbKeluar.Caption = “&Keluar” Then
        Unload Me
    Else
        Call FormNormal
    End If
End Sub

Private Sub txtUserId_KeyPress(KeyAscii As Integer)
    If KeyAscii = vbKeyReturn Then
        txtPassword.SetFocus
        KeyAscii = 0
    End If
End Sub

Private Sub txtPassword_KeyPress(KeyAscii As Integer)
    If KeyAscii = vbKeyReturn Then
        txtNama.SetFocus
        KeyAscii = 0
    End If
End Sub

Private Sub txtNama_KeyPress(KeyAscii As Integer)
    KeyAscii = Asc(UCase((Chr(KeyAscii))))
    If KeyAscii = vbKeyReturn Then
        cmbStatus.SetFocus
        KeyAscii = 0
    End If
End Sub

9. Buat Form untuk Form Utama (frmUtama)

menu utama

Ikuti jalur warna

Orange = Image List(memasukkan gambar pada tool bar)

Biru = Menu Editor (tampilan menu dsn sub menu)

Kuning = Toolbar (Temapt untukmenaruh imagae dari image list)

SourceCode

Option Explicit
Private Sub Form_Unload(Cancel As Integer)
    If MsgBox(“YAKIN AKAN MENUTUP APLIKASI INI..?”, _
         vbQuestion, “Konfirmasi”) = vbNo Then
        Cancel = 1
    Else
        End
    End If
End Sub

Private Sub mnuLapJenis_Click()
    With rptJenis
    .Sections(“Section4”).Controls(“Label5”).Caption = _
        Format(Date, “dd MMMM yyyy”)
    .Show 1
    End With
End Sub

Private Sub mnuJualTgl_Click()
    frmLapJualTgl.Show 1
End Sub

Private Sub mnuLPengguna_Click()
    With rptPengguna
    .Sections(“Section4”).Controls(“Label8”).Caption = _
        Format(Date, “dd MMMM yyyy”)
    .Show 1
    End With
End Sub

Private Sub mnuPengguna_Click()
    frmPengguna.Show 1
End Sub

Private Sub mnuJabatan_Click()
    frmJabatan.Show 1, FrmUtama
End Sub

Private Sub mnuKeluar_Click()
    End
End Sub

Private Sub mnuLapJual_Click()
    With rptLapPenggajian
    .Sections(“Section4”).Controls(“Label5”).Caption = _
        Format(Date, “dd MMMM yyyy”)
    .Show 1
    End With
End Sub

Private Sub mnuLapBarang_Click()
    With rptPegawai
    .Sections(“Section4”).Controls(“Label5”).Caption = _
        Format(Date, “dd MMMM yyyy”)
    .Show 1
    End With
End Sub

Private Sub mnuLogin_Click()
    If FrmUtama.mnuLogin.Caption = “Login” Then
        frmLogin.Show 1
    Else
        mnuLaporan.Enabled = False
        mnuPegawai.Enabled = False
        mnuJabatan.Enabled = False
        mnuUbahGaji.Enabled = False
        mnuPengguna.Enabled = False
        mnuTransaksi.Enabled = False
        Toolbar1.Enabled = False

        Me.mnuLogin.Caption = “Login”
    End If
End Sub

Private Sub mnuPegawai_Click()
    frmPegawai.Show 1, FrmUtama
End Sub

Private Sub mnuBarangJenis_Click()
    frmLapBarangJenis.Show 1
End Sub

Private Sub mnuUbahGaji_Click()
    frmUbahGaji.Show 1
End Sub

Private Sub mnuTransGaji_Click()
    frmGaji.Show 1, FrmUtama
End Sub

Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
    On Error Resume Next
    Select Case Button.Index
        Case 1:
            frmJabatan.Show 1
        Case 2:
            frmPegawai.Show 1
        Case 4:
            frmGaji.Show 1
        Case 6:
            frmLogin.Show 1
    End Select
End Sub

10. Buat Form untuk Form Ubah Gaji (frmUbahGaji)

ubah gaji

Text pada properties digantimenjadi nol

SourceCode
Private Sub Form_Load()
    Move (Screen.Width – Width) / 2, _
        (Screen.Height – Height) / 3

    Call BukaDatabase
    Call FormMati

    Label7.Visible = False
    txtGajiLama.Visible = False
    
    TbCari.Enabled = False
    TbSimpan.Enabled = False
End Sub

Sub FormKosong()
    txtKode.Text = “”
    txtJenis.Text = “”
    txtNama.Text = “”
    txtTunjangan.Text = “0”
    txtGaji.Text = “0”
    txtGajiLama.Text = “”
    txtKeterangan.Text = “”
End Sub

Sub FormHidup()
    txtKode.Enabled = True
    txtJenis.Enabled = True
    txtNama.Enabled = True
    txtTunjangan.Enabled = True
    txtGaji.Enabled = True
    txtKeterangan.Enabled = True
End Sub

Sub FormMati()
    txtKode.Enabled = False
    txtJenis.Enabled = False
    txtNama.Enabled = False
    txtTunjangan.Enabled = False
    txtGaji.Enabled = False
    txtKeterangan.Enabled = False
End Sub

Sub FormNormal()
    Call FormKosong
    Call FormMati
    txtGaji.Locked = False
    Label7.Visible = False
    txtGajiLama.Visible = False

    TbCari.Enabled = False
    TbTambah.Enabled = True
    TbSimpan.Enabled = False
    TbKeluar.Caption = “&Keluar”
End Sub

Private Sub TbCari_Click()
    FrmUtama.Enabled = False
    frmUbahGaji.Enabled = False
    frmCariPegawai.Show 1
End Sub

Private Sub TbKeluar_Click()
    If TbKeluar.Caption = “&Keluar” Then
        FrmUtama.Enabled = True
        Unload Me
    Else
        FormNormal
    End If
End Sub

Private Sub TbSimpan_Click()
    If txtGaji.Text = “” Or txtGaji.Text = “0” Then
        MsgBox “Gaji tidak boleh kosong!”, _
            vbInformation + vbOKOnly, “Perhatian”
            txtGaji.SetFocus
    Else
    
        SqlUpdate = “”
        SqlUpdate = “UPDATE Pegawai” _
            & ” SET Gaji_Pokok='” & txtGaji.Text & “‘ ” _
            & ” WHERE NIP='” & txtKode.Text & “‘”
                    
        KoneksiDB.Execute SqlUpdate, , adCmdText
        Rs_Pegawai.Requery
        Call FormNormal
        
        MsgBox “Data telah terbaharui dalam database !”, _
        vbOKOnly + vbInformation, “Konfirmasi”
        
        Call Form_Load
    End If
End Sub

Private Sub TbTambah_Click()
    Call FormHidup
    TbCari.Enabled = True
    TbSimpan.Enabled = True
    TbTambah.Enabled = False
    TbKeluar.Caption = “&Batal”
    txtKode.SetFocus
End Sub

Private Sub txtKode_KeyPress(KeyAscii As Integer)
    If KeyAscii = vbKeyReturn Then
        If Len(txtKode.Text) < 5 Then
            MsgBox “NOMOR INDUK PEGAWAI HARUS 5 DIGIT”, _
            vbCritical, “Error”
            Exit Sub
        End If
        KeyAscii = 0
        Label7.Visible = True
        txtGajiLama.Visible = True

        Set Rs_Pegawai = New ADODB.Recordset
        Rs_Pegawai.Open “SELECT Pegawai.*, ” _
            & ” Jabatan.Nama_Jabatan ” _
            & ” FROM Pegawai, Jabatan WHERE ” _
            & ” Jabatan.Kode_Jabatan=Pegawai.Kode_Jabatan ” _
            & ” AND Pegawai.NIP='” _
            & txtKode.Text & “‘ “, _
            KoneksiDB, adOpenDynamic, adLockBatchOptimistic
        If Rs_Pegawai.BOF Then
            MsgBox “NIP TIDAK DIKENALI ..”, _
            vbInformation, “Info”
        Else
            With Rs_Pegawai
            txtJenis.Text = !Nama_Jabatan
            txtNama.Text = !Nm_Pegawai
            txtTunjangan.Text = !Tunjangan
            txtGajiLama.Text = !Gaji_Pokok
            txtKeterangan = !Keterangan
            txtGaji.SetFocus
            End With
        End If
    End If
End Sub

Private Sub txtGaji_KeyPress(KeyAscii As Integer)
    If KeyAscii = vbKeyReturn Then
        TbSimpan.SetFocus
    ElseIf Not (KeyAscii >= Asc(“0”) _
    And KeyAscii <= Asc(“9”) _
    Or KeyAscii = vbKeyBack) Then
        Beep
        KeyAscii = 0
    End If
End Sub

11. Buat Form Untuk Form Penggajian(frmGaji)

form gaji

SourceCode

Option Explicit
Dim Baris As Integer
Dim i As Integer
Dim Tanya As String
Dim NoNota As String

Private Sub Form_Load()
    Move (Screen.Width – Width) / 2, _
        (Screen.Height – Height) / 3
    
    Call BukaDatabase
    Call FormMati
    
    TbSimpan.Enabled = False
    TbCari.Enabled = False
    TbMasuk.Enabled = False
End Sub

Sub FormKosong()
    txtNoNota.Text = “”
    txtTgl.Text = “__/__/____”
    txtKode.Text = “”
    txtNama.Text = “”
    txtGaji.Text = “”
    txtTunjangan.Text = “”
    txtKas.Text = “”
    txtTotal.Text = “0”
    txtTotalHarga = “0”
    txtKembali.Text = “0”
    txtCash.Text = “0”
    
    Baris = 1
    GridPenggajian.Clear
    GridPenggajian.Rows = 2
    Call AktifGridGaji
End Sub

Sub FormTransKosong()
    txtTotalHarga.Text = “0”
    txtCash.Text = “”
    txtKembali.Text = “0”
End Sub

Sub FormMati()
    txtNoNota.Enabled = False
    txtTgl.Enabled = False
    txtKode.Enabled = False
    txtNama.Enabled = False
    txtGaji.Enabled = False
    txtTunjangan.Enabled = False
    txtKas.Enabled = False
    txtTotal.Enabled = False
     txtTotalHarga.Enabled = False
    txtCash.Enabled = False
    txtKembali.Enabled = False
End Sub

Sub FormHidup()
    txtNoNota.Enabled = True
    txtTgl.Enabled = True
    txtKode.Enabled = True
    txtNama.Enabled = True
    txtGaji.Enabled = True
    txtTunjangan.Enabled = True
    txtKas.Enabled = True
    txtTotal.Enabled = True
    txtTotalHarga.Enabled = True
    txtCash.Enabled = True
    txtKembali.Enabled = True

End Sub

Sub FormNormal()
    FormMati
    FormKosong
    
    TbKeluar.Caption = “&Keluar”
    TbSimpan.Enabled = False
    TbBaru.Enabled = True
    TbCari.Enabled = False
    TbMasuk.Enabled = False
End Sub

Sub BuatNotaJual()
    Rs_Penggajian.Requery
    Set Rs_Penggajian = New ADODB.Recordset
    Rs_Penggajian.Open ” SELECT * FROM ” _
        & ” Penggajian ORDER BY No_Nota “, _
        KoneksiDB, adOpenDynamic, _
        adLockBatchOptimistic

    If Rs_Penggajian.BOF Then
       NoNota = “GJ-00001”
       Exit Sub
    Else
     Rs_Penggajian.MoveLast
     NoNota = Rs_Penggajian!No_Nota
     NoNota = Right(NoNota, 5)
     NoNota = Val(NoNota) + 1
     
     If Len(NoNota) > 5 Then
        MsgBox “Nomor nota baru melewati batas”, _
            vbCritical, “Error”
        Exit Sub
     End If
    End If
    NoNota = “GJ-” & Format(NoNota, “00000”)
End Sub

Sub AktifGridGaji()
    With GridPenggajian
        .Col = 0
        .Row = 0
        .Text = “KODE”
        .CellFontBold = True
        .ColWidth(0) = 1300
        .AllowUserResizing = flexResizeColumns
        .CellAlignment = flexAlignCenterCenter
        
        .Col = 1
        .Row = 0
        .Text = “NAMA PEGAWAI”
        .CellFontBold = True
        .ColWidth(1) = 4200
        .AllowUserResizing = flexResizeColumns
        .CellAlignment = flexAlignCenterCenter
    
        .Col = 2
        .Row = 0
        .Text = “GAJI (Rp)”
        .CellFontBold = True
        .ColWidth(2) = 1800
        .AllowUserResizing = flexResizeColumns
        .CellAlignment = flexAlignCenterCenter
        
        .Col = 3
        .Row = 0
        .Text = “KAS”
        .CellFontBold = True
        .ColWidth(3) = 1300
        .AllowUserResizing = flexResizeColumns
        .CellAlignment = flexAlignCenterCenter
        
        .Col = 4
        .Row = 0
        .Text = “SUBTOTAL (Rp)”
        .CellFontBold = True
        .ColWidth(4) = 1800
        .AllowUserResizing = flexResizeColumns
        .CellAlignment = flexAlignCenterCenter
    End With
End Sub

Private Sub TbBaru_Click()
    txtTgl.Text = Format(Date, “dd/MM/yyyy”)
    Call FormHidup
    Call AktifGridGaji
    
    Call BuatNotaJual
    txtNoNota.Text = NoNota
    
    TbBaru.Enabled = False
    TbCari.Enabled = True
    TbKeluar.Caption = “&Batal”
    TbSimpan.Enabled = True
    TbMasuk.Enabled = True
    
    Baris = 1
End Sub

Private Sub TbCari_Click()
    FrmUtama.Enabled = False
    frmGaji.Enabled = False
    frmCariGaji.Show 1
End Sub

Private Sub TbMasuk_Click()
    If txtKode.Text = “” Then
        MsgBox “Barang masih kosong! “, _
        vbOKOnly + vbCritical, “Konfirmasi”
        TbCari.SetFocus
    ElseIf Val(txtKas.Text) > _
        Val(txtGaji.Text) Then
        MsgBox “Maaf..! Gaji tidak memadai .”, _
        vbOKOnly + vbCritical, “Konfirmasi”
        txtKas.Text = “0”
        txtKas.SetFocus
    ElseIf txtKas.Text = “” _
        Or txtKas.Text = “” Then
        MsgBox “Kas masih kosong! “, _
        vbOKOnly + vbCritical, “Konfirmasi”
        txtKas.SetFocus
    ElseIf GridPenggajian.Rows = 1 Then
        MsgBox “Belum ada Pegawai yang anda Input!”, _
        vbOKOnly + vbCritical, “Konfirmasi”
        TbCari.SetFocus
    ElseIf txtGaji.Text = “1” Then
        MsgBox “Gaji minimum!”, _
        vbOKOnly + vbCritical, “Konfirmasi”
        Call BersihPegawai
    ElseIf Val(txtGaji.Text) = _
        Val(txtKas.Text) Then
        MsgBox “Kas tidak boleh melebihi Gaji!”, _
        vbOKOnly + vbCritical, “Konfirmasi”
        txtKas.Text = Val(txtKas.Text) – 1
        TbMasuk.SetFocus
    Else
        With GridPenggajian
            .Rows = Baris + 1
            .TextMatrix(Baris, 0) = txtKode.Text
            .TextMatrix(Baris, 1) = txtNama.Text
            .TextMatrix(Baris, 2) = txtGaji.Text
            .TextMatrix(Baris, 3) = txtKas.Text
            .TextMatrix(Baris, 4) = txtTotal.Text
        End With
        
        txtTotalHarga.Text = _
            Val(txtTotalHarga.Text) + Val(txtTotal.Text)
        
        Baris = Baris + 1
        Call BersihPegawai
    End If
End Sub

Private Sub TbSimpan_Click()
    Dim i As Integer

    If txtNoNota.Text = “” Then
        MsgBox “Nomor transaksi masih kosong !”, _
        vbOKOnly + vbCritical, “Konfirmasi”
        txtNoNota.SetFocus
    ElseIf Baris = 1 Then
        MsgBox “Belum ada pegawai yang anda Input!”, _
        vbOKOnly + vbCritical, “Konfirmasi”
        TbCari.SetFocus
    ElseIf txtCash.Text = “” Then
        MsgBox “Belum melakukan pembayaran ! “, _
        vbOKOnly + vbCritical, “Konfirmasi”
        txtCash.SetFocus
    ElseIf Val(txtCash.Text) < _
        Val(txtTotalHarga.Text) Then
        MsgBox “Pembayaran masih kurang”, _
        vbOKOnly + vbCritical, “Konfirmasi”
        txtCash.SetFocus
    Else
        SqlInsert = “”
        SqlInsert = “INSERT INTO Penggajian” _
            & “(No_Nota,Tgl_Nota,Total,UserId)” _
            & “VALUES (‘” & txtNoNota.Text & “‘,'” _
            & Format(Date, “yyyy-MM-dd”) & “‘,'” _
            & txtTotalHarga.Text & ” ‘,'” _
            & PenggunaID & “‘)”
        KoneksiDB.Execute SqlInsert, , adCmdText
        Rs_Penggajian.Requery
            
        For i = 1 To Baris – 1
            SqlInsert = “”
            SqlInsert = “INSERT INTO Detail_Penggajian” _
                & “(No_Nota,NIP,Tunjangan_Krj, ” _
                & ” Kas,SubTotal)” _
                & ” VALUES (‘” & txtNoNota.Text & “‘,'” _
                & GridPenggajian.TextMatrix(i, 0) & “‘,'” _
                & GridPenggajian.TextMatrix(i, 2) & “‘,'” _
                & GridPenggajian.TextMatrix(i, 3) & “‘,'” _
                & GridPenggajian.TextMatrix(i, 4) & “‘)”
            KoneksiDB.Execute SqlInsert, , adCmdText
                
            SqlUpdate = “”
            SqlUpdate = “UPDATE Pegawai SET ” _
                & ” Gaji_Pokok=Gaji_Pokok – ” _
                & Val(GridPenggajian.TextMatrix(i, 3)) & “” _
                & ” WHERE NIP='” _
                & GridPenggajian.TextMatrix(i, 0) & “‘”
            KoneksiDB.Execute SqlUpdate, , adCmdText
        Next i
        MsgBox “Data telah tersimpan dalam database !”, _
        vbOKOnly + vbInformation, “Konfirmasi”
             
        On Error Resume Next
        With frmCetakGaji
            .NoNota = txtNoNota.Text
            .TotHarga = txtTotalHarga.Text
            .UangBayar = txtCash.Text
            .UangKembali = txtKembali.Text
            .Show 1
        End With

        Call FormNormal
        Call FormTransKosong
    End If
End Sub

Private Sub TbKeluar_Click()
    If TbKeluar.Caption = “&Keluar” Then
        Tanya = MsgBox(“ANDA YAKIN AKAN ” _
            & ” MENGAKHIRI APLIKASI INI..?”, _
            vbQuestion + vbYesNo, “Exit”)
        If Tanya = vbYes Then
            FrmUtama.Enabled = True
            Unload Me
        Else
            Exit Sub
        End If
    Else
        Call FormNormal
    End If
End Sub

Sub BersihPegawai()
    txtKode.Text = “”
    txtNama.Text = “”
    txtTunjangan.Text = “0”
    txtGaji.Text = “0”
    txtKas.Text = “”
    txtTotal.Text = “0”
End Sub
Private Sub txtKas_Change()
    On Error Resume Next
    If txtKas.Text = “” Or txtTunjangan.Text = “” Or txtGaji.Text = “” Then
        txtTotal.Text = “”
        Exit Sub
    Else
        txtTotal.Text = (txtTunjangan.Text + (txtGaji.Text – txtKas.Text))
    End If
End Sub
Private Sub txtCash_Change()
    On Error Resume Next

    If txtCash.Text = “” Or txtTotalHarga.Text = “” Then
        txtKembali.Text = “0”
        Exit Sub
    Else
        txtKembali.Text = _
           Val(txtCash.Text) + Val(txtTotalHarga.Text)
    End If
End Sub

Private Sub txtCash_KeyPress(KeyAscii As Integer)
    If KeyAscii = vbKeyReturn Then
        TbMasuk.SetFocus
    ElseIf Not (KeyAscii >= Asc(“0”) _
    And KeyAscii <= Asc(“9”) _
    Or KeyAscii = vbKeyBack) Then
        Beep
        KeyAscii = 0
    End If
End Sub

Private Sub txtJumlah_KeyPress(KeyAscii As Integer)
    If KeyAscii = vbKeyReturn Then
        TbMasuk.SetFocus
    ElseIf Not (KeyAscii >= Asc(“0”) _
    And KeyAscii <= Asc(“9”) _
    Or KeyAscii = vbKeyBack) Then
        Beep
        KeyAscii = 0
    End If
End Sub

Private Sub txtKode_KeyPress(KeyAscii As Integer)
   If KeyAscii = vbKeyReturn Then
        If Len(txtKode.Text) < 5 Then
            MsgBox “NIP HARUS 5 DIGIT”, _
            vbCritical, “Error”
            Exit Sub
        End If
        KeyAscii = 0

    Set Rs_GajiPokok = New ADODB.Recordset
    Rs_GajiPokok.Open “SELECT Pegawai.*, ” _
        & ” Jabatan.Nama_Jabatan ” _
        & ” FROM Pegawai, Jabatan WHERE ” _
        & ” Jabatan.Kode_Jabatan=Pegawai.Kode_Jabatan ” _
        & ” AND Pegawai.Gaji_Pokok <> 0 ” _
        & ” AND Pegawai.NIP='” & txtKode.Text & “‘ “, _
        KoneksiDB, adOpenDynamic, _
        adLockBatchOptimistic

        If Rs_GajiPokok.BOF Then
            MsgBox “NIP TIDAK DIKENALI ..”, _
            vbInformation, “Info”
        Else
            With Rs_GajiPokok
            txtGaji.Text = !Gaji_Pokok
            txtNama.Text = !Nm_Pegawai
            
            End With
        End If
    End If
End Sub

12. Buat Form untuk formCari Gaji (frmCari Gaji)

cari gaji

SourceCode

Option Explicit

Private Sub Form_Load()
    Move (Screen.Width – Width) / 2, _
    (Screen.Height – Height) / 2

    Call BukaDatabase
    Call TampilGridData
End Sub

Sub AktifGridBarang()
    With GridBarang
        .RowHeightMin = 300
        .Col = 0
        .Row = 0
        .Text = “NO”
        .CellFontBold = True
        .ColWidth(0) = 400
        .AllowUserResizing = flexResizeColumns
        .CellAlignment = flexAlignCenterCenter
        
        .RowHeightMin = 300
        .Col = 1
        .Row = 0
        .Text = “KODE”
        .CellFontBold = True
        .ColWidth(1) = 750
        .AllowUserResizing = flexResizeColumns
        .CellAlignment = flexAlignCenterCenter
        
        .Col = 2
        .Row = 0
        .Text = “JENIS”
        .CellFontBold = True
        .ColWidth(2) = 1900
        .AllowUserResizing = flexResizeColumns
        .CellAlignment = flexAlignCenterCenter
        
        .Col = 3
        .Row = 0
        .Text = “NAMA PEGAWAI”
        .CellFontBold = True
        .ColWidth(3) = 3300
        .AllowUserResizing = flexResizeColumns
        .CellAlignment = flexAlignCenterCenter
        
        .Col = 4
        .Row = 0
        .Text = “TUNJANGAN [Rp.]”
        .CellFontBold = True
        .ColWidth(4) = 1600
        .AllowUserResizing = flexResizeColumns
        .CellAlignment = flexAlignCenterCenter
        
        .Col = 5
        .Row = 0
        .Text = “GAJI POKOK [Rp.]”
        .CellFontBold = True
        .ColWidth(5) = 1600
        .AllowUserResizing = flexResizeColumns
        .CellAlignment = flexAlignCenterCenter
        
    End With
End Sub

Sub TampilGridData()
    Dim Baris As Integer

    GridBarang.Clear
    Call AktifGridBarang
    
        
    GridBarang.Rows = 2
    Baris = 0
    
    If Rs_GajiPokok.BOF Then
        MsgBox “Tabel Pegawai masih kosong!”, _
        vbInformation + vbOKOnly, “Informasi”
        Exit Sub
    Else
        With Rs_GajiPokok
        .MoveFirst
        Do While Not .EOF
            Baris = Baris + 1
            GridBarang.Rows = Baris + 1
            GridBarang.TextMatrix(Baris, 0) = Baris
            GridBarang.TextMatrix(Baris, 1) = !NIP
            GridBarang.TextMatrix(Baris, 2) = !Nama_Jabatan
            GridBarang.TextMatrix(Baris, 3) = !Nm_Pegawai
            GridBarang.TextMatrix(Baris, 4) = !Tunjangan
            GridBarang.TextMatrix(Baris, 5) = !Gaji_Pokok
        .MoveNext
        Loop
        End With
    End If

End Sub

Private Sub GridBarang_DblClick()
    Dim barisGrid As String
    barisGrid = GridBarang.Row

    Set Rs_GajiPokok = New ADODB.Recordset
    Rs_GajiPokok.Open “SELECT Pegawai.*, ” _
        & ” Jabatan.Nama_Jabatan ” _
        & ” FROM Pegawai, Jabatan WHERE ” _
        & ” Jabatan.Kode_Jabatan=Pegawai.Kode_Jabatan ” _
        & ” AND Pegawai.NIP='” _
        & GridBarang.TextMatrix(barisGrid, 1) & “‘”, _
        KoneksiDB, adOpenDynamic, adLockOptimistic

    If GridBarang.Rows <> 1 Then
       With frmGaji
          .txtKode.Text = _
             UCase(GridBarang.TextMatrix(barisGrid, 1))
          .txtNama.Text = _
             UCase(GridBarang.TextMatrix(barisGrid, 3))
          .txtGaji.Text = _
             GridBarang.TextMatrix(barisGrid, 5)
          
       End With
    Else
        Exit Sub
    End If
    
    FrmUtama.Enabled = False
    frmGaji.Enabled = True
    Unload Me
End Sub

Private Sub TbNormal_Click()
    Call Form_Load
    txtCari.Text = “”
    txtCari.SetFocus
End Sub

Private Sub TbTutup_Click()
    FrmUtama.Enabled = False
    frmGaji.Enabled = True
    Unload Me
End Sub

Private Sub txtCari_Change()
    If Option2.Value = True Then
        
        Set Rs_GajiPokok = New ADODB.Recordset
        Rs_GajiPokok.Open “SELECT Pegawai.*, ” _
        & ” Jabatan.Nama_Jabatan ” _
        & ” FROM Pegawai, Jabatan WHERE ” _
        & ” Jabatan.Kode_Jabatan=Pegawai.Kode_Jabatan ” _
        & ” AND Pegawai.Nm_Pegawai LIKE ‘%” _
        & txtCari.Text & “%’ ORDER BY NIP”, _
        KoneksiDB, adOpenDynamic, adLockBatchOptimistic
        
        If Rs_GajiPokok.BOF Then
            MsgBox “Tidak menemukan nama Pegawai! ” _
            & ” – ” & txtCari.Text & ” – dalam tabel”, _
            vbInformation, “Informasi”
            
            txtCari.Text = “”
            txtCari.SetFocus
        Else
          Call TampilGridData
        End If

    ElseIf Option1.Value = True Then
        
        Set Rs_GajiPokok = New ADODB.Recordset
        Rs_GajiPokok.Open “SELECT Pegawai.*, ” _
        & ” Jabatan.Nama_Jabatan ” _
        & ” FROM Pegawai, Jabatan WHERE ” _
        & ” Jabatan.Kode_Jabatan=Pegawai.Kode_Jabatan ” _
        & ” AND Pegawai.NIP LIKE ‘%” _
        & txtCari.Text & “%’ ORDER BY NIP”, _
        KoneksiDB, adOpenDynamic, adLockBatchOptimistic
        
        If Rs_GajiPokok.BOF Then
            MsgBox “Tidak menemukan NIP! ” _
            & ” – ” & txtCari.Text & ” – dalam tabel”, _
            vbInformation, “Informasi”
            
            txtCari.Text = “”
            txtCari.SetFocus
        Else
            Call TampilGridData
        End If
    End If
End Sub

13. Buat form untuk form cari Pegawai (frmCariPegawai)

cari pegawai

Orange = Option Button (pilihan), untuk merubah nama ada di kolom Caption

SourceCode
Private Sub Form_Load()
    Move (Screen.Width – Width) / 2, _
    (Screen.Height – Height) / 4

    Call BukaDatabase
    Call TampilGridData
End Sub

Sub AktifGridPegawai()
    With GridPegawai
        .RowHeightMin = 300
        .Col = 0
        .Row = 0
        .Text = “NO”
        .CellFontBold = True
        .ColWidth(0) = 400
        .AllowUserResizing = flexResizeColumns
        .CellAlignment = flexAlignCenterCenter
        
        .RowHeightMin = 300
        .Col = 1
        .Row = 0
        .Text = “KODE”
        .CellFontBold = True
        .ColWidth(1) = 750
        .AllowUserResizing = flexResizeColumns
        .CellAlignment = flexAlignCenterCenter
        
        .Col = 2
        .Row = 0
        .Text = “JABATAN”
        .CellFontBold = True
        .ColWidth(2) = 1900
        .AllowUserResizing = flexResizeColumns
        .CellAlignment = flexAlignCenterCenter
        
        .Col = 3
        .Row = 0
        .Text = “NAMA PEGAWAI”
        .CellFontBold = True
        .ColWidth(3) = 3300
        .AllowUserResizing = flexResizeColumns
        .CellAlignment = flexAlignCenterCenter
        
        .Col = 4
        .Row = 0
        .Text = “TUNJANGAN [Rp.]”
        .CellFontBold = True
        .ColWidth(4) = 1600
        .AllowUserResizing = flexResizeColumns
        .CellAlignment = flexAlignCenterCenter
        
        .Col = 5
        .Row = 0
        .Text = “GAJI”
        .CellFontBold = True
        .ColWidth(5) = 1600
        .AllowUserResizing = flexResizeColumns
        .CellAlignment = flexAlignCenterCenter
        
        .Col = 6
        .Row = 0
        .Text = “KETERANGAN”
        .CellFontBold = True
        .ColWidth(6) = 3000
        .AllowUserResizing = flexResizeColumns
        .CellAlignment = flexAlignCenterCenter
        
    End With
End Sub

Sub TampilGridData()
    Dim Baris As Integer

    GridPegawai.Clear
    Call AktifGridPegawai
    
        
    GridPegawai.Rows = 2
    Baris = 0
    
    If Rs_Pegawai.BOF Then
        MsgBox “Tabel Pegawai masih kosong!”, _
        vbInformation + vbOKOnly, “Informasi”
        Exit Sub
    Else
        With Rs_Pegawai
        .MoveFirst
        Do While Not .EOF
            Baris = Baris + 1
            GridPegawai.Rows = Baris + 1
            GridPegawai.TextMatrix(Baris, 0) = Baris
            GridPegawai.TextMatrix(Baris, 1) = !NIP
            GridPegawai.TextMatrix(Baris, 2) = !Nama_Jabatan
            GridPegawai.TextMatrix(Baris, 3) = !Nm_Pegawai
            GridPegawai.TextMatrix(Baris, 4) = !Tunjangan
            GridPegawai.TextMatrix(Baris, 5) = !Gaji_Pokok
            GridPegawai.TextMatrix(Baris, 6) = UCase(!Keterangan)
        .MoveNext
        Loop
        End With
    End If
End Sub

Private Sub GridPegawai_DblClick()
    Dim barisGrid As String
    barisGrid = GridPegawai.Row
    
    frmUbahGaji.Label7.Visible = True
    frmUbahGaji.txtGajiLama.Visible = True

    If GridPegawai.Rows <> 1 Then
       With frmUbahGaji
          .txtKode.Text = _
            UCase(GridPegawai.TextMatrix(barisGrid, 1))
          .txtJenis.Text = _
            UCase(GridPegawai.TextMatrix(barisGrid, 2))
          .txtNama.Text = _
            UCase(GridPegawai.TextMatrix(barisGrid, 3))
          .txtTunjangan.Text = _
            UCase(GridPegawai.TextMatrix(barisGrid, 4))
          .txtGajiLama.Text = _
            UCase(GridPegawai.TextMatrix(barisGrid, 5))
          .txtKeterangan.Text = _
            UCase(GridPegawai.TextMatrix(barisGrid, 6))
      End With
    Else
        Exit Sub
    End If
    
    FrmUtama.Enabled = False
    frmUbahGaji.Enabled = True
    Unload Me
End Sub

Private Sub TbNormal_Click()
    Call Form_Load
    txtCari.Text = “”
    txtCari.SetFocus
End Sub

Private Sub TbTutup_Click()
    FrmUtama.Enabled = False
    frmUbahGaji.Enabled = True
    Unload Me
End Sub

Private Sub txtCari_Change()
    If Option2.Value = True Then
        Set Rs_Pegawai = New ADODB.Recordset
        Rs_Pegawai.Open “SELECT Pegawai.*, ” _
        & ” Jabatan.Nama_Jabatan ” _
        & ” FROM Pegawai, Jabatan WHERE ” _
        & ” Jabatan.Kode_Jabatan=Pegawai.Kode_Jabatan ” _
        & ” AND Pegawai.Nm_Pegawai LIKE ‘%” _
        & txtCari.Text & “%’ ” _
        & ” ORDER BY NIP”, _
        KoneksiDB, adOpenDynamic, adLockBatchOptimistic
        
        If Rs_Pegawai.BOF Then
            MsgBox “Tidak menemukan nama Pegawai! ” _
            & ” – ” & txtCari.Text & ” – dalam tabel”, _
            vbInformation, “Informasi”
            
            txtCari.Text = “”
            txtCari.SetFocus
        Else
          Call TampilGridData
        End If

    ElseIf Option1.Value = True Then
        Set Rs_Pegawai = New ADODB.Recordset
        Rs_Pegawai.Open “SELECT Pegawai.*, ” _
        & ” Jabatan.Nama_Jabatan ” _
        & ” FROM Pegawai, Jabatan WHERE ” _
        & ” Jabatan.Kode_Jabatan=Pegawai.Kode_Jabatan ” _
        & ” AND Pegawai.NIP LIKE ‘%” _
        & txtCari.Text & “%’ ” _
        & ” ORDER BY NIP “, _
        KoneksiDB, adOpenDynamic, adLockBatchOptimistic
        
        If Rs_Pegawai.BOF Then
            MsgBox “Tidak menemukan NIP! ” _
            & ” – ” & txtCari.Text & ” – dalam tabel”, _
            vbInformation, “Informasi”
            
            txtCari.Text = “”
            txtCari.SetFocus
        Else
            Call TampilGridData
        End If
    End If
End Sub

14. Buat Form untuk form cetak gaji (frmCetakGaji)

cetak laporan

Biru = Rich TextBox = media cetak variabelnya (rtfLap)

Orange = Common Dialog (untuk navigasi aplikasi) variabelnya (DialogSimpan)

SourceCode

Option Explicit

Public NoNota As String

Public TotGaji As String

Public Lain (+) As String

Public Total As String

 

Dim rsCetak As ADODB.Recordset

Dim P As Printer

Dim HariIni As String

Dim arrHari(1 To 7) As String

 

Private Sub Form_Load()

 

    Move (Screen.Width – Width) / 2, _

    (Screen.Height – Height) / 3

 

    rtfLap.Locked = True

   

    arrHari(1) = “Minggu”

    arrHari(2) = “Senin”

    arrHari(3) = “Selasa”

    arrHari(4) = “Rabu”

    arrHari(5) = “Kamis”

    arrHari(6) = “Jumat”

    arrHari(7) = “Sabtu”

   

    HariIni = arrHari(Abs(Weekday(Date)))

   

    Dim i, j, JlhBsu, Baris, idx, panjang, _

        pNama As Integer

    Dim hal As String

    Dim TglKini As String

    Dim Masukan As String

    Dim Kriteria As String

    Dim fileName As String

    TglKini = Format(Date, “dd/MM/yyyy”)

  

    SQL = “”

    SQL = ” SELECT Penggajian.Tgl_Nota, ” _

        & ” Detail_Penggajian.NIP, ” _

        & ” Pegawai.Nm_Pegawai, Detail_Penggajian.Tunjangan,” _

        & ” Detail_Penggajian.Kas, ” _

        & ” Detail_Penggajian.Subtotal FROM (Penggajian  ” _

        & ” INNER JOIN Detail_Penggajian ON ” _

        & ” Penggajian.No_Nota = Detail_Penggajian.No_Nota) ” _

        & ” INNER JOIN Pegawai ON ” _

        & ” Detail_Penggajian.NIP = Pegawai.NIP” _

        & ” WHERE Penggajian.No_Nota='” & NoNota & “‘”

  

    Set rsCetak = New ADODB.Recordset

    rsCetak.Open SQL, KoneksiDB

   

     ReDim tabCetak(1)

     j = 0: JlhBsu = 0: rtfLap.Text = “”

     fileName = “Temp.txt”

    

     Open fileName For Output As #1

       rtfLap.Text = ”     CPDP Wil. DEPOK I    ” & vbCrLf & _

       ” ” & vbCrLf & _

       ” Dinas Pendapatan Daerah        ” & vbCrLf & _

       ” Jl.Merdeka Raya No.2 Sukmajaya Depok      ” & Kriteria & vbCrLf & _

       ” Ph.[021]7787528       ” & Kriteria & vbCrLf & _

       ” ” & HariIni & “, ” & TglKini & “” & vbCrLf & _

       ”                                           No Transaksi: ” & NoNota & vbCrLf & _

       ” ============================================================================” & vbCrLf & _

       ” No.  Kode    Nama                         Jumlah     Harga        Total  ” & vbCrLf & _

       ” —————————————————————————-“

       Print #1, rtfLap.Text

     Close #1

     Open fileName For Input As #1

       rtfLap.Text = Input(LOF(1), 1)

     Close #1

     i = 0: idx = 1: Baris = 0

     Do While Not rsCetak.EOF

        tabCetak(i).NIP = rsCetak.Fields(“NIP”)

        tabCetak(i).NamaPegawai = rsCetak.Fields(“Nm_Pegawai”)

        tabCetak(i).Jumlah = rsCetak.Fields(“Kas”)

        tabCetak(i).HargaSatuan = rsCetak.Fields(“Tunjangan”)

        tabCetak(i).Total = tabCetak(i).Jumlah * _

                            tabCetak(i).Tunjangan

       

        Open fileName For Output As #1

          rtfLap.SelStart = Len(rtfLap.Text)

          rtfLap.Text = rtfLap.Text & ” ” & RKanan((j + 1), “#”) & “.  ” & _

                 RKiri(tabCetak(i).NIP, “###########”) & ”  ” & _

                 RKiri(tabCetak(i).NamaPegawai, “#######################”) & ”   ” & _

                 RKanan(tabCetak(i).Jumlah, “###”) & ”  ” & _

                 RKanan(tabCetak(i).Tunjangan, “#,###,###”) & ”  ” & _

                 RKanan(tabCetak(i).Total, “#,###,###”) & “” & vbCrLf

                 Print #1, rtfLap.Text

        Close #1

        If rsCetak.EOF = True Then

           Exit Do

        End If

        j = j + 1

        Baris = Baris + 1

        JlhBsu = JlhBsu + tabCetak(i).Total

        rsCetak.MoveNext

     Loop

    

     Open fileName For Output As #1

       rtfLap.Text = rtfLap.Text & _

       ” ——————————————————————-” & vbCrLf & _

       ” Total Jenis Barang = ” & RKanan(j, “###”) & “;      Total Besar Uang = ” & _

       RKanan(JlhBsu, “###,###,###,###”) & “” & vbCrLf & _

       ” ===================================================================” & vbCrLf & _

       ”                                                Total   : ” & RKanan(TotGaji, “#,###,###,###”) & “” & vbCrLf & _

       ”                                                Bayar   : ” & RKanan(Lain (+), “#,###,###,###”) & “” & vbCrLf & _

       ”                                                Kembali : ” & RKanan(Total, “#,###,###,###”) & “” & vbCrLf & _

       ” ===================================================================” & vbCrLf & _

       ”                        ** TERIMA KASIH **                          “

       Print #1, rtfLap.Text

     Close #1

     Set rsCetak = Nothing

     rtfLap.Visible = True

     Show 1

     Exit Sub

End Sub

 

Private Sub TbCetak_Click()

    Dim Tanya As Integer

    On Error GoTo PrintError

      If IsPrinterInstalled = False Then

         MsgBox “Belum ada printer terinstall di” & Chr(13) & _

                “komputer Anda. Silahkan install” & Chr(13) & _

                “printer terlebih dulu!”, vbCritical, _

                “Printer Belum Diinstall”

         Exit Sub

      Else

      End If

      If rtfLap.Text = “” Then

         MsgBox “Belum ada data yang akan dicetak!” & Chr(13) & _

            “Pilih kategori laporan yang akan Anda” & Chr(13) & _

            “cetak, lalu klik menu Cetak.”, vbCritical, _

            “Data Tidak Ada”

         Exit Sub

      End If

      Printer.FontName = “Courier New”

      Printer.FontSize = “9”

      Printer.Print rtfLap.Text

      Printer.EndDoc

      If MsgBox(“Hasil cetakan sudah benar?” _

        , vbQuestion + vbYesNo, “Cetak”) = vbYes Then

      End If

      Exit Sub

     

PrintError:

    MsgBox “Kesalahan nomor: ” & Err.Number _

        & “. Keterangan: ” _

        & Err.Description & “” & Chr(13) & _

        “” & Chr(13) & _

        “Kemungkinan printer belum diaktifkan” & Chr(13) & _

        “atau kertas habis/belum dipasang!” & Chr(13) & _

        “Nyalakan printer atau pasang kertas,” & Chr(13) & _

        “lalu klik menu Cetak kembali!”, _

        vbCritical, “Printer Error”

    Exit Sub

End Sub

 

Private Sub TbKeluar_Click()

  Unload Me

End Sub

 

Private Sub TbSimpan_Click()

    On Error GoTo Batal

       With DialogSimpan

         .DialogTitle = “Simpan sebagai file…”

         .Filter = “*.txt|*.txt”

         .ShowSave

         Open .fileName For Output As #1

            Print #1, rtfLap.Text

         Close #1

       End With:   Exit Sub

Batal:

       Exit Sub

End Sub

15. Module Cetak (mdlCetak) < Variabel

SourceCode

Public Type arrCetak
   NIP As String
   NamaPegawai As String
   TanggalTerima As Date
   Jumlah As Long
   Tunjangan As Long
   Total As Long
End Type

Public tabCetak() As arrCetak

‘# Tulisan rata kiri
Function RKiri(NData, CFormat) As String
  If NData > 0 Then ‘Jika NData bilangan positif
    RKiri = Format(NData, CFormat)
    ‘RKiri = RKiri + Space(Len(CFormat) – Len(RKiri))
  Else ‘Jika NData merupakan string kosong
    RKiri = Format(NData, CFormat)
    RKiri = “” + Space(Len(CFormat) – 1)
  End If
End Function

‘# Tulisan rata kanan
Function RKanan(NData, CFormat) As String
  If NData > 0 Then ‘Jika NData bilangan positif
    RKanan = Format(NData, CFormat)
    RKanan = RKanan + Space(Len(CFormat) – Len(RKanan))
  Else ‘Jika NData merupakan bilangan nol
    RKanan = Format(NData, CFormat)
    RKanan = Space(Len(CFormat) – 1) + “0”
  End If
End Function

Public Function IsPrinterInstalled() As Boolean
On Error Resume Next
Dim strDummy As String
  strDummy = Printer.DeviceName
  If Err.Number Then
     IsPrinterInstalled = False
  Else
     IsPrinterInstalled = True
  End If
End Function

16. Module Utama (mdlUtama)

Sebagai penyambung ke database

SourceCode

Option Explicit
Public KoneksiDB As New ADODB.Connection
Public Rs_Jabatan As ADODB.Recordset
Public Rs_Pegawai As ADODB.Recordset
Public Rs_GajiPokok As ADODB.Recordset
Public Rs_Pengguna As ADODB.Recordset
Public Rs_Penggajian As ADODB.Recordset
Public Rs_CetakPenggajian As ADODB.Recordset
Public Rs_PreviewPengggajian As ADODB.Recordset
Public Rs As ADODB.Recordset

Public StrAkses As String
Public SqlInsert As String
Public SqlDelete As String
Public SqlUpdate As String
Public PenggunaID, PenggunaNm As String
Public SQL As String
Public Konfirmasi As String
Public Status As String

Public Sub BukaDatabase()
    
    StrAkses = “Provider=Microsoft.Jet.OLEDB.4.0;Persist ” _
          & “Security Info=False;Data Source=” _
          & App.Path + “\DbGaji.mdb”
    
    On Error Resume Next
    
    If KoneksiDB.State = adStateOpen Then
        KoneksiDB.Close
        Set KoneksiDB = New ADODB.Connection
        KoneksiDB.Open StrAkses
    Else
        KoneksiDB.Open StrAkses
    End If
    
    Set Rs_Jabatan = New ADODB.Recordset
    Rs_Jabatan.Open “SELECT * FROM Jabatan”, _
        KoneksiDB, adOpenDynamic, _
        adLockBatchOptimistic
    
    Set Rs_Pegawai = New ADODB.Recordset
    Rs_Pegawai.Open “SELECT Pegawai.*, ” _
        & ” Jabatan.Nama_Jabatan ” _
        & ” FROM Pegawai, Jabatan WHERE ” _
        & ” Jabatan.Kode_Jabatan=Pegawai.Kode_Jabatan ” _
        & ” ORDER BY NIP”, _
        KoneksiDB, adOpenDynamic, _
        adLockBatchOptimistic
        
    Set Rs_GajiPokok = New ADODB.Recordset
    Rs_GajiPokok.Open “SELECT Pegawai.*, ” _
        & ” Jabatan.Nama_Jabatan ” _
        & ” FROM Pegawai, Jabatan WHERE ” _
        & ” Jabatan.Kode_Jabatan=Pegawai.Kode_Jabatan ” _
        & ” AND Pegawai.Gaji_Pokok <> 0 ” _
        & ” ORDER BY NIP”, _
        KoneksiDB, adOpenDynamic, _
        adLockBatchOptimistic
        
    Set Rs_Pengguna = New ADODB.Recordset
    Rs_Pengguna.Open “SELECT * FROM Pengguna”, _
        KoneksiDB, adOpenDynamic, _
        adLockBatchOptimistic
        
    Set Rs_Penggajian = New ADODB.Recordset
    Rs_Penggajian.Open “SELECT * FROM Penggajian”, _
        KoneksiDB, adOpenDynamic, _
        adLockBatchOptimistic
End Sub

Public Function TglSkrg(tgl As Date) As String
    TglSkrg = Format(Day(tgl), “00”) & “/” _
            & Format(Month(tgl), “00”) & “/” _
            & Format(Year(tgl))
End Function

17. DesignerLaporan (DELaporan)

capture-20121206-201333

Pilih Project > More ActiveX Designer > Data Environment atau Project >addData Environtment

Hubungkan Data Encirontment dengan  databese caranya klik kanan menu Connection > Properties atauklik icon properties

properties

lalu isikan kolom sesuai denga nam database yang telah dibuat lau klik test connection hingga munculkotak dialog laluoke

test

18. Membuat Command

klik kanan connUtama lalu properies

properties

lsikan data dari database sesuai dengan laporan yang akan dibuat

cmdpengguna

biru = nama command

ornge = jenis sumber data dari database

Kuning = nama tabel databse yang akan diambil datanya

Lalu oke

19. Membuat tampilan laporan

Project > add  Data Report

456465418641654564

Buka DELapoaran, lakukan drag commnd ke dalam data report

Klik CmdJabata(misal) tahan > tarik dan letakkan di kolom Detail Section 1

edit laporan

atur tampilan hinggan menjadi sepertiini

laporan jabatan

SourceCode

Private Sub DataReport_Terminate()
    rptJenis.Refresh
    DELaporan.rscmdJabatan.Close
End Sub

Buat Laporan sesuai keinginan anda..

Selamat Mencoba😀

Java Converter Suhu

1. Buka aplikasi Netbeans dari perangkat komputer anda

 

 

2. Pilih File>New Project

 

Jangan Ngaco

3. Pilih kategori Java dengan project Java Application lalu Next

Jangan Ngaco

 

4. Isi kolom nama project (jng memakai spasi) cont “Setyawan_Converter_Suhu” lalu>Hilangkan tanda craete main class dan set as main project >Finish

 

Jangan Ngaco

 

5. Buat Form untuk tampilan aplikasi. Klik kanan Project anda pada kiri layar>New>JFrameForm

 

Jangan Ngaco

 

6.Muncul seperti ini. Beri nama Form anda(jng memakai spasi) cont “Converter_Suhu” lalu>Finish

 

Jangan Ngaco

 

setelah itu muncul form seperti ini

 

Jangan Ngaco

 

7. Buat tampilan Form dengan Pallete di kanan layar anda hingga menjadi tampilan seperti ini.

 

Jangan Ngaco

 

Catatan

  1. Untuk mengganti nama pada label anda dapat mengganti text pada properties

  2. Untuk Text Field nama text di properties dikosongkan, dan variable name di code diisi dengan format txt”nama variabel” contoh (txtc_27).  Setiap variable name tidak boleh sama satu dengan yang lain

  3. Untuk mengubah background pada form dapat diubah di properties lalu klik background

  4. Untuk mengubah jenis dan besar kecil huruf dapat di ubah di properties lalu klik Font

     

8.  Untuk memesukkan Coding klik dua kali pada button Convert, lalu masukkan coding dibawah ini

 

Convert Celcius

 

Jangan Ngaco

 

Convert Fahrenheit

 

Jangan Ngaco

 

Convert Reamur

 

Jangan Ngaco

 

Convert Kelvin

 

Jangan Ngaco

 

Reset

 

Jangan Ngaco

 

9. Setelah seemua selesai lalu Run Program anda dengan menekan tombol Shift+F6

Flowchart

Permainan Bola Kecil

Partai

Lapangan bulu tangkis

Ada lima partai yang biasa dimainkan dalam bulu tangkis, yaitu:

  1. Tunggal putra
  2. Tunggal putri
  3. Ganda putra
  4. Ganda putri
  5. Ganda campuran

Lapangan dan jaring

Lapangan bulu tangkis berbentuk persegi panjang dan mempunyai ukuran seperti terlihat pada gambar. Garis-garis yang ada mempunyai ketebalan 40 mm dan harus berwarna kontras terhadap warna lapangan. Warna yang disarankan untuk garis adalah putih atau kuning. Permukaan lapangan disarankan terbuat dari kayu atau bahan sintetis yg lunak. Permukaan lapangan yang terbuat dari beton atau bahan sintetik yang keras sangat tidak dianjurkan karena dapat mengakibatkan cedera pada pemain. Jaring setinggi 1,55 m berada tepat di tengah lapangan. Jaring harus berwarna gelap kecuali bibir jaring yang mempunyai ketebalan 75 mm harus berwarna putih.

Perlengkapan

  • Raket

Secara tradisional raket dibuat dari kayu. Kemudian aluminium atau logam ringan lainnya menjadi bahan yang dipilih. Kini, hampir semua raket bulu tangkis profesional berkomposisikan komposit serat karbon (plastik bertulang grafit). Serat karbon memiliki kekuatan hebat terhadap perbandingan berat, kaku, dan memberi perpindahan energi kinetik yang hebat. Namun, sejumlah model rendahan masih menggunakan baja atau aluminium untuk sebagian atau keseluruhan raket.

  • Senar

Mungkin salah satu dari bagian yang paling diperhatikan dalam bulu tangkis adalah senar nya. Jenis senar berbeda memiliki ciri-ciri tanggap berlainan. Keawetan secara umum bervariasi dengan kinerja. Kebanyakan senar berketebalan 21 ukuran dan diuntai dengan ketegangan 18 sampai 30+ lb. Kesukaan pribadi sang pemain memainkan peran yang kuat dalam seleksi senar.

  • Kok

Kok adalah bola yang digunakan dalam olahraga bulu tangkis, terbuat dari rangkaian bulu angsa yang disusun membentuk kerucut terbuka, dengan pangkal berbentuk setengah bola yang terbuat dari gabus. Dalam latihan atau pertandingan tidak resmi digunakan juga kok dari plastik.

  • Sepatu

Karena percepatan sepanjang lapangan sangatlah penting, para pemain membutuhkan pegangan dengan lantai yang maksimal pada setiap saat. Sepatu bulu tangkis membutuhkan sol karet untuk cengkraman yang baik, dinding sisi yang bertulang agar tahan lama selama tarik-menarik, dan teknologi penyebaran goncangan untuk melompat; bulu tangkis mengakibatkan agak banyak stres (ketegangan) pada lutut dan pergelangan kaki.

[sunting] Memainkan bulu tangkis

Area permainan

Tiap pemain atau pasangan mengambil posisi berseberangan pada kedua sisi jaring di lapangan bulu tangkis.
Permainan dimulai dengan salah satu pemain melakukan servis.
Tujuan permainan adalah untuk memukul sebuah kok menggunakan raket, melewati jaring ke wilayah lawan, sampai lawan tidak dapat mengembalikannya kembali. Area permainan berbeda untuk partai tunggal dan ganda, seperti yang diperlihatkan pada gambar. Bila kok jatuh di luar area tersebut maka kok dikatakan “keluar”. Setiap kali pemain/pasangan tidak dapat mengembalikan kok (karena menyangkut di jaring atau keluar lapangan) maka lawannya akan memperoleh poin.
Permainan berakhir bila salah satu pemain/pasangan telah meraih sejumlah poin tertentu.
Teknik Dasar Permainan Bulu Tangkis
a. Cara Memegang Raket Pegangan raket ada tiga macam, yaitu: 1. Pegangan forehand (pegangan dasar) Pegangan ini dapat di peroleh dengan cara mendirkan raket yang sisinya tegak dengan lantai Pegangan ini hampir sama dengan posisi tangan sedang bersalaman.
2. Pegangan backhand Pegangan ini dapat di peroleh dengan jalan memutar seperempat ke kanan dari pegangan forehead.
3. Pegangan pukul kasur/Amerika Cara pegangan ini adalah mula-mula raket diletakkan secara mendatar di atas lantai. Kemudian ambil dan peganglah raket pada pegangannya, sehingga bagian tangan antar ibu jari dan jaritelunjuk menempel pada bagian permukaan yang lebar.
4. Pegangan campuran
b. Teknik Pukulan Teknik pukulan adalah cara-cara melakukan pukulan pada permainan bulitangkis dengan tujuan menerbangkan shuttlecock ke lapanagn lawan. Terdapat macam-macam teknik dasar pukulan dalam permainan bulutangkis, yaitu: 1. Pukulan Servis Pukulan servis merupakan pukulan degan raket untuk menerbangkan shuttlecock ke bidang lapangan lawan secara diagonal dan bertujuan sebagai permulaan permainan. Macam-macam pukulan servis, yaitu: a. Pukulan servis pendek b. Pukulan servis panjang c. Pukulan servis mendatar d. Pukulan servis cambuk
2. Pukulan Lob Pukulan lob adalah pukulan dalam permainan bulutangkis yang bertujuan untuk menerbangkan shuttlecock setinggi mungkin mengarah jauh ke belakang garis lapangan lawan. Pukulan lob dapat dilakukan dengan dua cara, yaitu: a. Overhead lob, yaiutu pukulan lob yang dilakukan dari atas kepala dengan cara menerbangkan shuttlecock melambung ke arah belakang. b. Underhand lob, yaitu pukulan lob yang dilakukan dari bawah dengan cara memukul shuttlecock yang berada di bawah badan dan di lambungkan tinggi ke belakang.

Servis

Area servis

Servis dilakukan dari satu sisi lapangan (kiri atau kanan) menyilang menyeberangi jaring ke area lawan. Partai tunggal dan ganda memiliki area servis yang berbeda seperti yang diilustrasikan pada gambar. Bila kok jatuh di luar area tersebut maka kok dinyatakan “keluar” dan poin untuk penerima servis.
Posisi kiri atau kanan tempat servis dilakukan ditentukan dari jumlah poin yang telah dikumpulkan oleh pemain yang akan melakukan servis. Posisi kanan untuk jumlah poin genap dan posisi kiri untuk jumlah poin ganjil. Servis dari posisi kanan juga dilakukan saat jumlah poin masih nol.
Pada set pertama pemain/pasangan yang melakukan servis untuk pertama kali ditentukan dengan undian, sedangkan untuk set berikutnya dilakukan oleh pemenang dari set sebelumnya.
Untuk partai ganda, beberapa peraturan berbeda diterapkan untuk perhitungan poin menggunakan sistem pindah bola dan sistem reli poin:

Sistem pindah bola

  • Sebelum pertandingan dimulai, harus ditentukan salah seorang pemain dari tiap-tiap pasangan sebagai “orang pertama”. Pilihan ini berlaku untuk setiap set yang dimainkan.
  • Jumlah poin genap atau ganjil menentukan posisi “orang pertama” saat melakukan servis.
  • Setiap pasangan mempunyai dua kali kesempatan servis (masing-masing untuk tiap pemain) sebelum pindah bola, kecuali servis pertama pada tiap-tiap awal set tidak mendapat kesempatan kedua.
  • Saat pindah bola, servis pertama selalu dilakukan oleh pemain yang berada di sebelah kanan, bukan oleh “orang pertama”.

 Sistem reli poin

  • Setiap pasangan hanya mendapat satu kali kesempatan servis, tidak ada servis kedua.
  • Servis dilakukan oleh pemain yang posisinya sesuai dengan poin yang telah diraih oleh pasangan tersebut.
  • Pemain yang sama akan terus melakukan servis sampai poin berikutnya diraih oleh lawan.

 Sistem perhitungan poin

Sejak Mei 2006, pada kejuaraan resmi seluruh partai menggunakan sistem perhitungan 3×21 reli poin. Pemenang adalah pemain/pasangan yang telah memenangkan dua set.

GOLF
 
Golf adalah permainan luar ruang yang dimainkan secara perorangan atau tim yang berlomba memasukkan bola ke dalam lubang-lubang yang ada di lapangan dengan jumlah pukulan tersedikit mungkin. Bola golf dipukul dengan menggunakan satu set tongkat pemukul yang disebut klab (stik golf). Golf adalah salah satu dari permainan yang tidak memiliki lapangan permainan yang standar, melainkan dimainkan di padang golf yang masing-masing memiliki desain unik, dan biasanya terdiri dari 9 atau 18 hole (lubang). Aturan utama dalam golf adalah “memainkan sebuah bola dengan stik golf dari daerah tee (teeing ground) ke dalam lubang dengan satu pukulan atau beberapa pukulan berikutnya sesuai dengan Aturan”.

Anatomi padang golf

Bunker di Filton Golf Club, Bristol, Inggris

Padang golf Damai Indah, Pantai Indah Kapuk, Jakarta Utara

Olahraga golf dimainkan di suatu lahan yang dirancang secara khusus. Lahan ini biasa disebut lapangan golf atau padang golf (golf course). Suatu padang golf memiliki sejumlah lubang (hole) yang umumnya terdiri dari 9 lubang atau 18 lubang.
Pukulan pertama dimulai dari teeing ground. Pukulan pertama ini dinamakan teeing shot. Rumput di teeing ground dirawat dengan baik. Setelah pukulan pertama, pemain memukul bola lagi dari posisi bola terakhir setelah pukulan pertama. Bola itu bisa mendarat di fairway ataupun di rough. Rumput di fairway dipotong pendek sehingga bola mudah untuk dipukul. Sedangkan di rough, rumputnya lebih panjang daripada di fairway sehingga bola sulit untuk dipukul. Pemain terus memukul hingga bola masuk ke lubang (hole atau cup). Setiap hole hanya memiliki satu lubang.
Setiap hole biasanya memiliki rintangan atau hazards. Rintangan terdiri atas dua macam yaitu; rintangan air seperti sungai atau danau, dan bungker (bunker) berupa cekungan berisi pasir.
Green mengacu pada area putting. Di green, pemain hanya diperbolehkan memakai stik golf yang disebut putter. Rumput di green dipotong sangat pendek sehingga bola bisa bergulir dengan mudah. Lubang harus berdiameter 108 mm (4.25 inci), selalu berada di rumput dan memiliki kedalaman sedikitnya 100 mm (3.94 inci). Cup biasanya selalu ditandai dengan sebuah bendera sehingga pemain bisa melihatnya dari kejauhan.
Suatu course memiliki batas yang ditandai dengan pasak-pasak. Di luar tanda itu, dinamakan zona out of bounds atau singkatnya OB. Bila bola pemain mendarat di zona OB maka pemain akan menerima penalti 1 pukulan dan mengulang pukulan dari tempat sebelumnya.
Pada kebanyakan lapangan golf, ada beberapa fasilitas tambahan yang bukan merupakan bagian course itu sendiri. Seperti practice range yang disertai practice green, bunker, dan driving area tempat melatih pukulan jarak jauh. Selain itu disediakan pula arena berlatih (practice course) yang biasanya lebih mudah dan lebih pendek daripada lapangan golf biasa.

Par

Hole diklasifikasikan berdasarkan par. Par adalah jumlah pukulan yang diharapkan dapat dipenuhi pegolf yang bermain ‘aman’, di setiap hole.
Sebagai contoh, pada hole par 4, seorang pemain golf yang memiliki kemampuan diharapkan untuk mencapai green dalam dua pukulan (satu kali teeing shot, atau pukulan pertama, dan satu pukulan mendekati hole ‘approaching shot’), dan melakukan dua kali putting untuk memasukkan bola ke lubang.
Dalam golf suatu hole bisa digolongkan ke dalam par 3, par 4, atau par 5.
Par suatu hole biasanya ditentukan berdasarkan jarak dari teeing ground ke green. Jarak teeing ground ke green pada suatu hole ber-par 3 adalah antara 100 sampai 250 yard (91-244 meter). Hole ber-par 4 adalah 251-475 yard (225-434 meter), sementara hole ber-par 5 lebih dari 476 yard (435 meter) walaupun ada juga hole par 5 yang sejauh 600 yard (548 meter).
Pada sebagian besar padang golf 18 lubang, total pukulan adalah 72 kali yang terdiri dari 4 lubang ber-par 3, 10 lubang ber-par 4, dan 4 lubang ber-par 5.
Par sebuah hole dapat dinaikkan dan bisa pula diturunkan. Bila sebuah lapangan golf digunakan untuk turnamen tingkat internasional, hole par 5 yang dinilai terlalu pendek untuk ukuran rata-rata kemampuan pegolf kaliber internasional, maka kebanyakan hole par 5 yang pendek akan diturunkan par-nya menjadi hole par 4. Dalam kondisi seperti ini, adalah lumrah untuk kemudian bila kita menemukan lapangan golf yang 70 par atau 71 par saja (bukannya 72 par lagi).

Bermain golf

Satu ronde biasanya terdiri atas 18 lubang. Dalam golf ada dua jenis permainan: stroke play dan match play. Pukulan pertama dipukul dari teeing ground kecuali pada permainan yang disebut foursomes (dua tim yang terdiri dari dua orang berkompetisi). Anggota dari setiap tim memukul bergantian dengan menggunakan satu bola.
Pukulan-pukulan selanjutnya dipukul dari posisi bola terakhir mendarat. Pukulan pertama dari teeing ground disebut tee shot. Pukulan untuk mencapai green disebut approach. Selanjutnya pukulan di green untuk menggulirkan bola ke lubang disebut putting. Bila pemain berhasil memasukkan bola ke lubang tidak dari green, maka pukulan itu disebut chip-in.
Dalam golf yang diincar adalah jumlah pukulan sesedikit mungkin. Pemain harus memasukkan bola ke lubang dengan jumlah pukulan yang sedikit. Makin sedikit makin baik.
Pemain biasanya berjalan di lapangan untuk memukul bola selanjutnya, sendirian ataupun dalam suatu grup yang terdiri dari dua, tiga, atau empat orang. Pemain juga biasanya didampingi seorang caddy (caddie). Caddy bertugas membawa peralatan pemain dan membantu pemain menyelesaikan suatu hole dengan memberi saran.

Skor

Skor dalam golf berbeda dengan skor dalam permainan lain. Pemain menang bila mendapat skor yang sedikit (bahkan hingga minus). Berbeda dalam sepak bola atau bola basket yang menentukan grup dengan skor terbanyak sebagai pemenang. Tabel skor golf:

Istilah papan skor Spesifikasi istilah Definisi
-3 double-eagle (albatross) tiga pukulan di bawah par
-2 eagle dua pukulan di bawah par
-1 birdie satu pukulan di bawah par
0 par jumlah pukulan sama dengan par
+1 bogey satu pukulan di atas par
+2 double bogey dua pukulan di atas par
+3 triple bogey tiga pukulan di atas par

Selain istilah-istilah di atas, ada juga yang dinamakan hole in one yaitu memasukkan bola dari teeing ground ke lubang dalam satu kali pukulan. Biasanya hole in one hanya terjadi pada hole ber-par 3.

Tipe pukulan dalam golf

  • Tee shot
adalah pukulan pertama dari teeing ground. Tee shot biasanya dilakukan dengan menggunakan driver (misalnya 1-wood) untuk hole yang panjang atau iron pada hole yang lebih pendek.
  • Fairway shot
Stik golf jenis iron atau wedge biasa digunakan untuk melakukan pukulan ini.
  • Bunker shot
Pukulan ini dilakukan jika bola mendarat di atas bunker. Pukulan ini biasanya menggunakan sand wedge.
  • Punch atau knockdown
adalah pukulan rendah yang dilakukan untuk menghindari cabang pohon atau angin yang kuat di atas.
  • Putting
adalah pukulan yang dilakukan di atas green dan menggunakan putter dan bagi sebagian besar pegolf merupakan pukulan tersulit.
  • Approach shot
adalah pukulan yang dilakukan untuk mendekatkan bola ke green. Pukulan ini biasanya dilakukan pada jarak yang sedang atau dekat. Tipe approach shot terdiri dari 3 jenis:
  • Pitch
adalah approach shot yang menerbangkan bola ke atas green atau dekat green. Pitch shot biasa dilakukan dengan menggunakan iron 6 hingga lob wedge.
  • Flop
adalah approach shot yang lebih tinggi lagi dan langsung berhenti sesaat setelah menghantam tanah. Pukulan ini dilakukan ketika pemain harus menghadapi rintangan untuk mencapai green. Flop biasa dilakukan dengan menggunakan stik golf sand wedge atau lob wedge.
  • Chip
adalah approach shot yang rendah ketika bola terbang rendah dan kemudian bergulir mengarah ke green.

Peralatan

Bola golf

Stik golf

Ada tiga tipe stik golf (club) yaitu: wood, iron, dan putter. Wedge adalah iron yang digunakan untuk memukul pada jarak yang pendek. Wood digunakan untuk memukul jarak yang sangat jauh. Sedangkan iron pada jarak menengah. Putter hampir selalu digunakan untuk melakukan pukulan di atas green.

Bola golf

Tee digunakan untuk melakukan tee shot di atas teeing ground.

Diameter bola golf minimum adalah 42,67 mm dan harus bermassa lebih dari 45,93 gram. Ada 3 jenis bola golf.

 Shaft

Shaft (tangkai) digunakan di antara grip dan kepala club.

 Peralatan lain

Pegolf memakai sepatu khusus untuk golf dan mengenakan sarung tangan pada tangan sebelah kiri. Ada pula tee (pasak) yang digunakan untuk melakukan tee shot di atas teeing ground.

Amatir dan Profesional

Ada dua jenis pemain dalam olahraga golf, yaitu “Amatir” (AM) dan Profesional (PRO).

Pegolf Amatir

Pegolf amatir adalah pegolf yang bermain golf untuk kesenangan pribadi, dan berdasarkan kecintaan terhadap olahraga golf. Pegolf amatir tidak menerima/tidak diperbolehkan menerima hadiah uang dalam bermain golf. Bila terjadi pelanggaran, maka ‘status amatir’ pegolf ini akan hilang, dan tidak bisa disebut pegolf amatir lagi. Status amatir adalah syarat untuk bermain dalam turnamen amatir. Kehilangan status amatir akan mengakibatkan seorang pegolf tidak bisa bermain dalam turnamen amatir.

Pegolf Profesional

Pegolf profesional adalah pegolf yang menjadikan bermain golf sebagai pekerjaan. Pegolf profesional diperbolehkan menerima hadiah uang dalam sebuah turnamen profesional. Untuk menjadi pegolf profesional, seorang pegolf perlu mengikuti semacam kualifikasi. Setelah lulus kualifikasi inilah seorang pegolf dapat menyandang predikat pegolf profesional dan berhak memegang kartu tanda pegolf profesional.

TENIS MEJA

Tenis meja, atau ping pong (sebuah merek dagang), adalah suatu olahraga raket yang dimainkan oleh dua orang (untuk tunggal) atau dua pasangan (untuk ganda) yang berlawanan. Di Republik Rakyat Cina, nama resmi olahraga ini ialah “bola ping pong” (Tionghoa : 乒乓球; Pinyin : pīngpāng qiú). Permainan ini menggunakan raket yang terbuat dari papan kayu yang dilapisi karet yang biasa disebut bat, sebuah bola pingpong dan lapangan permainan yang berbentuk meja. Induk Olahraga tenis meja di Indonesia adalah PTMSI (Persatuan Tenis Meja Seluruh Indonesia)[1] dan di dunia adalah ITTF (International Table Tennis Federation) yang anggotanya mencapai 215 negara dan PTMSI tercatat sebagai Anggota ITTF sejak tahun 1961

Peralatan Permainan

Raket

Raket terbuat dari lapisan kayu tipis yang pada permukaannya dilapisi karet khusus. Ukuran panjangnya adalah 6.5 inchi (16.5 cm) dan lebar 6 inchi (15 cm). Lapisan tipis ini bisa di tambahkan lapisan fiber glas, karbon atau bahan lain sehingga bat menjadi ringan dan tahan getar.

Bola

Bola tenis meja berdiameter 40 mm berat 2,7 gram.[3] Biasanya berwarana putih atau orange dan terbuat dari bahan selluloid yang ringan. Pantulan bola yang baik apabila djatuhkan dari ketinggian 30,5 cm akan menghasilkan ketinggian pantulan pertama antara 24-26 cm. Pada bola pingpong biasanaya ada tanda bintang dari bintang 1 hingga bintang 3, dan tanda bintang 3 inilah yang menunjukan kualitas tertinggi dari bola tersebut yang biasanya digunakan dalam turnamen-turnamen resmi.

Meja lapangan

Ukuran<br />
lapangan tenis meja

Pegangan forehand

Pegangan backhand

\Cara bermain

Permainan tunggal

  • Setiap bola mati menghasilkan nilai satu.
  • Servis berganti pemain setiap mencapai poin kelipatan 2.
  • Pemegang servis bebas menempatkan bola dari segala penjuru lapangan.
  • Permainan satu set berakhir apabila pemain mencapai nilai 11, dan kemenangan diraih apabila mencapai 3 atau 4 kali kemenangan set.
  • Apabila terjadi deuce, permainan berakhir jika selisih nilai adalah 2. misal: 15-13, 18-16
Permainan<br />
Tenis Meja ganda

Permainan ganda

  • Setiap bola mati menghasilkan nilai satu.
  • Servis bergantian setiap poin kelipatan 5.
  • Pemain bergantian menerima bola dari lawan
  • Pemegang servis hanya bisa menempatkan bola ke ruang kamar sebelah kanan lawan.
  • Permainan satu set berakhir apabila pemain mencapai nilai 11, dan kemenangan diraih apabila mencapai 3 atau 4 kali kemenangan set.
  • Apabila terjadi deuce, permainan berakhir jika selisih nilai adalah 2. misal: 15-13, 18-16

Pemain tenis meja terkenal Internasional

  • Jan Ove Waldner (P)
  • Liu Guoliang (P)
  • Wang Liqin (P)
  • Deng Yaping(W)
  • Wang Nan(W)
  • Zhang Yining(W)

Pemain tenis meja terkenal dari Indonesia

  • Anton Suseno (P)
  • Yon Mardiyono (P)
  • Ismu Harinto (P)
  • Rossi Pratiwi(W)
  • Ling-ling Agustin(W)

Pencegahan dan Penanggulangan Pencemaran Lingkungan

A.    Pencemaran Lingkungan

Polusi atau pencemaran lingkungan adalah masuknya atau dimasukkannya makhluk hidup, zat, energy, atau komponen lain kedalam lingkungan. Zat atau bahan yang dapat mengakibatkan pencemaran adalah polutan. Contohnya, karbon dioksida dengan kadar 0,0033% di udara berfaedah bagi tumbuhan. Akan tetapi jika lebih tinggi dari 0,0033% dapat memberi efek merusak. Suatu zat dapat disebut polutan apabila :

  1. Jumlahnya melebihi jumlah normal
  2. Berada pada waktu yang tidak tepat
  3. Berada pada tempat yang tidak tepat

B.     Macam-macam Pencemaran
1.      Menurut tempat terjadinya
a.      Pencemaran udara

Sumber pencemaran udara.

Pencemaran uadara  dibedakan menjadi : pencemaran sekunder yaitu pencemaran yang ditimbulkan langsung dari sumber pencemaran udara, contohnya karbon monoksida. Dan pencemaran primer yaitu pencemaran yang terbentuk dari pencemar-perncemar primer di atmosfer, contonya pembentukan ozon dalam smog fotokimia.

Kegiatan manusia yang menimbulkan pencemaran udara, antara lain : transportasi, industry, pembangkit listrik, pembakaran, gas buang pabrik (CFC). Sumber alami penyebab pencemaran udara adalah : gunung berapi, rawa-rawa, kebakaran hutan, nitrifikasi dan denifitrikasi biologi

Sumber-sumber lainnya : transportasi amonia, kebocoran tangki klor, timbul gas metana dari lahan uruk/ tempat pembuangan sampah akhir, uap pelarut organic

Jenis-jenis pencemar antara lain : karbon monoksida, oksida nitrogen, oksida sulfur, CFC, hidrokarbon, ozon, volatile organic compounds, dan partikulat

Dampak pencemaran udara

  1. Dampak kesehatan
  2. Dampak terhadap tanaman
  3. Hujan asam
  4. Kerusakan lapisan ozon
  5. Penanggulangan pencemaran udara
  6. Pencemaran air

b.      Pencemaran Air

Polusi air dapat disebabkan oleh beberapa jenis pencemar sebagai berikut :

  1. Pembuangan limbah industry, sisa insektisida, dan pembuangan sampah domestic, misalnya sisa pembuangan detergen mencemari air
  2. Sampah organic yang dibusukan oleh bakteri menyebabkan O2 di air berkurang sehingga mengganggu aktivitas kehidupan organism air
  3. Fosfat hasil pembusukan bersama HO3 dan pupuk pertaniaan terakumulasi sehingga menyebabkan eutrofikasi, yaitu penimbunan mineral yang menyebabakan pertumbuhan cepat pada alga (blooming alga).

Upaya menanggulangi pencemaran air :

  1. Meningkatkan usaha reboisasi dan penghijauan
  2. Mencegah perambatab hutan dengan pengawasan dan penerapan sanksi hukum yang tegas
  3. Menerapkan system pertanian konservasi
  4. Menggunakan pupuk dan pestisida seperlunya
  5. Menerapkan kaidah-kaidah konversasi tanah dan air pada setiap pemanfaatan lahan
  6. Mengumpulkan limbah domestic sehingga tidak masuk kedalam perairan umum
  7. Memanfaatkan limbah domestic untuk keperluan lain
  8. Memproses limbah padat domestic dengan system landfill sanitary (system penimbunan berlapis)
  9. Memisahkan limbah padat dari limbah cair
  10. Mengumpulkan B3 kemudian diolah secara khusus
  11. Mengurangi atau mengganti bahan kimia dalam proses produksi sehingga tidak berbahaya bagi lingkungan
  12. Mengolah limbah cair industry sehinggga kualitas limbah cair yang dibuang ke peraiaran umum tidak melampaui baku mutu yang berlaku.

c.       Pencemaran tanah
1.      Dampak pencemaran tanah

  1. Pada kesehatan
  2. Pada ekosistem
  3. Pada kegiatan pertanian

2.      Penanggulangan pencemaran tanah

  1. Remediasi : kegiatan untuk membersihkan permukaan tanah yang tercemar
  2. Bioremediasi : proses pembersihan pencemaran tanah dengan menggunakan mikroorganisme (jamur dan bakteri)

d.      Pencemaran Suara

Pencemaran suara bersifat terus-menerus dengan tingkat kebisinga di atas 80 dB dapat mengankibatkan efek atau dampak yang merugikan kesehatan manusia. Berikut ini adalah beberapa efek samping negative dari pencemaran suara :

a.      stess
b.      gila
c.       perubahan denyut nadi
d.      tekanan darah berubah
e.       gangguan fungsi jantung
f.       kontraksi perut

Berikut ini adalah contoh kebisingan yang menimbulkan pencemaran suara :

  1. orang ngobrol biasa : 40dB
  2. orang ribut/silat lidah : 80 dB
  3. mesin motor 5 pk : 104 dB
  4. suara petir : 120 dB
  5. pesawat jet lepas landas : 150 dB

cara untuk menaggulangi pencemaran suara antara lain :

  1. investor mesin pabrik hendaknya memilih mesin yang dapat mengurangi kebisingan
  2. produsen kendaraan bermotor mengeluarkan standar kebisingan
  3. memperluas Ruang Terbuka Hijau (RTH)
  4. Masyarakat dapat melakukan kegiatan refreshing untuk mengurangi dampak polusi suara dengan pergi ke gunung, pantai, atau perdesaan, serta daerah-daerah yang jauh dari kebisingan .

 

2.   Menurut macam-macam bahan pencemar

Macam-macam bahan pencemar adlah sebagai berikutt :

  1. Kimiawi : zat radioaktif, logam (Hg, Pb, As, Cd, Cr, dan Hi), pupuk anorganic pestisida, detergen, dan minyak
  2. Biologi :mikroorganisme, misalnya Escherichia coli, Entamoeba coli, dan salmonella thyposa.
  3. Fisik : kaleng-kaleng, botol, plastic, dan karet .

 

3.      Menurut Tingkat Pencemaran

Menurut WHO, tingkat pencemaran didasarkan pada kadar zat pencemar dan waktu (lamanya) kontak. Tingkat pencemaran dibedakan menjadi tiga, yaitu sebagai berikut :

  1. Pencemaran yang melalui mengakibatkan  iritasi (gangguan) ringan pada panca indra dan tubuh, serta telah menumbulkan kerusakan pada ekositem lain
  2. Pencemaran yang sudah mengakibatkan reaksi pada faal tubuh dan menyebabkan sakit yang kronis
  3. Pencemaran yang kadar zat-zat pencemaranya demikian besar, sehingga menimbulkan gangguan dan sakit atau kematian dalam lingkungan

Dampak Kerusakan Lingkungan

A.    Gejala-gejala kerusakan lingkungan

Kerusakan lingkungan baik dalam skala global maupun local termasuk dinegara kita hingga aat ini sudah semakin parah . Indikator kerusakan lingkungan terutama yang diakibatkan oleh degridasi lahan cukup nyata didepan mata dan sudah sangat sering kita alami, seperti :

  1. Banjir tahunan
  2. Erosi dan pendangkalan sungai atau danau
  3. Kelangkaan air
  4. Polusi air dan udara
  5. Pemanasan global
  6. Kerusakan keragaman hayati
  7. Ledakan hama dan penyakit

B.     Dampak kerusakan lingkungan
1.      Dampak kerusakan lingkungan terhadap pemanasan global

Konsentrasi gas-gas tertentu yang dikenal sebagaia gas rumah kaca, terus bertambah diudara akibatnya tindakan manusia melalui kegiatan industry, khususnya karbon dioksida (CO2), dan CFC. Akan tetapi yang terutama adalah karbon dioksida, yang umumnya dihasilkan dari penggunaan batu bara, minyak bumi, gas, pengundulan hutan, serta pembakaran hutan .

2.      Dampak pemanasan global terhadap perubahan iklim

Dalam panel antar pemertintahan mengenai perubahan iklim yang diselenggarakan pada bulan Desember 1977 dan Desember 2000, badan terdiri atas 2.000 ilmuan tersebut menyebutkan sejumlah realitas yang terjadi pada saat ini, diantaranya :

  1. Mencairnya es kutub utara dan selatan
  2. Curah hujan rata-rata 2-3%
  3. Suhu rata-rata udara naik 0,3°C pertahun
  4. Terumbu karang menjadi rusak
  5. Kerusakan tanah pertanian merosot hingga2-8%
  6. Permukaan tanah turun 0,8 cm per tahun
  7. Bencana-bencana alam sering terjadi
  8. Suhu global meningkat sekitar 5°C
  9. Pemukaan es dikutub uatara makin tipis
  10. Penggundulan hutan
  11. 20% emisi karbon
  12. Semenjak perang dunia II jumlah kendaraan bertambah
  13. Negara-negara miskin dilanda kekeringan
  14. Selama 50 tahun ini kita telah menggunakan sekurang-kurangnya setengah dari sumber energy
  15. Biaya tahunan untuk menangkal pemanasan global
  16. Panen makanan merosot
  17. Para petani beralih tempat olahan ke pegunungan
  18. Pengungsi akibat lingkungan hidup sudah berjumnlah 25 juta diseluruh dunia

C.    Upaya penyelamatan dan pemulihan

Upaya-upaya yang dapat dilakukan antara lain :

  1. Membuat sebanyak mungkin sumur resapan air
  2. Menyelamatkan hutan mangrove di pantai-pantai Indonesia
  3. Membenahi kebijakan pengolahan hutan yang berpihak kepada rakyat dengan melibatkan masyarakat untuk menjaga hutan daerah masing-masing
  4. Merancang cara-cara melindungi sumber-sumber alam
  5. Mengurangi penggunaan air, pembakaran barang-barang yang tidak dapat didaur ulang, emisi CFC dan pengganti emisi CFC denagn tidak mengguanakan enregi efisien, dan juga mengurangi penggunaan listrik dengnan mengguanakan lampu hemat energi.

Secara pribadi maupun dengan komunitas, kita dapat mempraktikan tiga hal berikut, yaitu :

  1. Mendaur ulang atau menggunakan kembali barang-barang yang dapat dipakai
  2. Memulai dengan membuat kompos
  3. Mendorong industry kerajinan untuk menjalankan tanggung jawab bagi daur ulang bahan-bahan sisa dan alat-alat elektro seperti televisi dan komputer.

D.    Manusia dalam hubungannya dengan alam

Hubungan antara manusia dengan alam lingkungan hidupnya adalah :

  1. Hubungan keimanan dan peribadatan
  2. Hubungan pemanfaatan yang berkelanjutan
  3. Hubunga pemeliharaan