BAB IV IMPLEMENTASI
B. Implementasi Proses
9. Proses simpan data
Merupakan proses untuk menyimpan data. User yang berhak
melakukan simpan data adalah admin dan user yang diberi otoritas untuk
menyimpan data. Pada proses simpan data ini menggunakan contoh pada
form guru.
On Error GoTo pesan
If txtnip.Text = Empty Or txtNama_guru.Text = Empty Then
MsgBox "NIP, Nama Guru Tidak Boleh Kosong...!!!", vbOKOnly, "Informasi"
Penggalan program di atas berarti apabila NIP dan nama guru
kosong maka akan muncul pesan "NIP, Nama Guru Tidak Boleh
Kosong...!!!"
If txtnip.Text <> "" Then If aksi = "tambah" Then Call konek
Set rs = conn.Execute("select * from guru where NIP='" & txtnip.Text & "'")
If rs.EOF Then
Adodc1.Recordset.Update Adodc1.Refresh
Call Controlls Call Form_Load
MsgBox "Data Sudah Tersimpan", vbOKOnly, "Informasi"
keadaan (False) Else
MsgBox "NIP Sudah ada.. ganti NIP Lain", vbOKOnly, "Informasi"
End If
Penggalan perintah di atas berarti melakukan tambah data dan
menyimpan data, apabila data tersimpan muncul pesan : "Data Sudah
Tersimpan". Apabila NIP yang diisikan sudah ada dalam data maka
muncul pesan : "NIP Sudah ada.. ganti NIP Lain".
aksi = "edit" Then Adodc1.Recordset.Update Adodc1.Refresh
Call Controlls Call Form_Load
MsgBox "Data Sudah Tersimpan", vbOKOnly, "Informasi"
keadaan (False) pesan:
MsgBox "NIP Sudah Ada...", vbOKOnly, "Informasi"
Penggalan perintah di atas berarti melakukan edit data dan
menyimpan data, apabila data tersimpan muncul pesan : "Data Sudah
muncul pesan : "NIP Sudah ada...".
10.Proses guru mengampu mata pelajaran
Merupakan proses dimana guru mengampu mata pelajaran
berdasarkan tahun ajaran dan semester.
a) Proses buka
Proses ini digunakan untuk membuka data guru beserta mata
pelajaran yang diampunya.
Adodc2.ConnectionString = strconnect
Adodc2.RecordSource = "SELECT mengampu.id_mengampu, mengampu.thn_ajaran, mengampu.Semester, mengampu.kode_mp, mp.Namamp, mengampu.NIP, guru.Nama_guru" _
& " FROM (mengampu LEFT JOIN guru ON mengampu.NIP = guru.NIP) INNER JOIN mp ON mengampu.kode_mp = mp.Kode_mp" _
& " WHERE (((mengampu.thn_ajaran)='" & cbthn_ajaran.Text & "') AND ((mengampu.Semester)='" & cbsemester.Text & "'))"
Penggalan perintah di atas digunakan untuk mencari
id_mengampu, thn_ajaran, semester, kode_mp, nama_mp, NIP,
nama_guru yang ada dalam sistem.
b) Proses persiapkan mata pelajaran
Proses ini digunakan untuk mempersiapkan mata pelajaran yang
ditawarkan.
ans = MsgBox("Data lama akan tertimpa... Yakin Akan mempersiapkan data? ...???", vbYesNo + vbQuestion, "Confirm Deletion")
Pesan diatas adalah pesan yang akan muncul setelah tekan button
persiapkan mata pelajaran. Apabila memilih no, selanjutnya menjalankan
program di bawah ini :
If ans = vbNo Then Exit Sub Call konek
conn.Execute ("DELETE FROM mengampu where thn_ajaran='" & cbthn_ajaran.Text & "' and semester= '" & cbsemester.Text & "'")
Perintah di atas digunakan untuk membatalkan penimpaan data.
Apabila memilih Yes, maka akan muncul :
Call konek
conn.Execute ("insert into mengampu (thn_ajaran,semester,kode_mp,nip) select '" & cbthn_ajaran.Text & "', '" & cbsemester.Text & "', kode_mp,nip from mp where semester ='" & cbsemester.Text & "' ")
MsgBox "Persiapkan Data Sudah sukses...!!!", vbOKOnly, "Informasi"
Perintah di atas digunakan untuk menambah data yang akan
ditimpakan ke data lama. Apabila sukses akan muncul perintah :
"Persiapkan Data Sudah sukses...!!!"
11.Proses siswa mengambil mata pelajaran
Merupakan proses dimana siswa mengambil mata pelajaran
berdasarkan tahun ajaran, kelas dan semester.
a) Proses buka
Proses yang digunakan untuk membuka mata pelajaran beserta
guru yang mengampunya.
strsql = "SELECT mengampu.thn_ajaran, mengampu.kode_mp, mp.Namamp, mengampu.nip, guru.Nama_guru, mp.kelas, mp.semester " _
& " FROM (mengampu INNER JOIN guru ON mengampu.NIP = guru.NIP) INNER JOIN mp ON mengampu.kode_mp = mp.Kode_mp where mengampu.thn_ajaran='" & cbthn_ajaran.Text & "' and mp.kelas='" & cbkelas.Text & "' and mp.semester='" & cbsemester.Text & "' "
Adodc1.RecordSource = strsql Adodc1.Refresh
End Sub
Perintah di atas digunakan untuk menampilkan thn_ajaran,
kode_mp, namamp, nip,nama_guru, kelas, semester dari form guru,
mengampu, mp dan kelas.
strsql = "SELECT kelas.kelas, kelas.id_kelas, siswa.NIS, siswa.nama_lengkap" _
& " FROM kelas INNER JOIN siswa ON kelas.id_kelas = siswa.id_kelas" _
& " WHERE (((kelas.kelas)='" & cbkelas.Text & "')) "
Adodc2.RecordSource = strsql Adodc2.Refresh
End Sub
Perintah di atas digunakan untuk menampilkan kelas, id_kelas,
NIS, nama_lengkap dari form kelas dan siswa.
b) Proses detail siswa
strsql = "SELECT siswa.NIS, siswa.nama_lengkap, mengambil.nilai_tertulis, mengambil.nilai_pengamatan, mengambil.nilai_tugas, mengambil.nilai_ulangan, mengambil.nilai " _
& "FROM mengambil INNER JOIN siswa ON mengambil.nis = siswa.NIS where mengambil.thn_ajaran='" & cbthn_ajaran.Text & "' and mengambil.semester='" & cbsemester.Text & "' and mengambil.kode_mp='" & Adodc1.Recordset("kode_mp") & "' and mengambil.nip='" & Adodc1.Recordset("nip") & "' "
Penggalan perintah di atas berarti menampilkan nis, nama
lengkap, nilai_tertulis, nilai_pengamatan, nilai_tugas, nilai_ulangan,
c) Proses persiapkan siswa
Proses yang digunakan untuk mempersiapkan data siswa yang
akan mengambil mata pelajaran yang akan diambil.
jmp = Adodc1.Recordset.RecordCount jsiswa = Adodc2.Recordset.RecordCount Adodc1.Recordset.MoveFirst For i = 1 To jmp xkode_mp = Adodc1.Recordset("kode_mp") xnip = Adodc1.Recordset("nip") xthn_ajaran = Adodc1.Recordset("thn_ajaran") Adodc2.Recordset.MoveFirst If jsiswa > 0 Then For j = 1 To jsiswa Call konek xnis = Adodc2.Recordset("nis")
strsql = "select * from mengambil where thn_ajaran='" & cbthn_ajaran.Text & "' and semester='" & cbsemester.Text & "' and kode_mp='" & xkode_mp & "' and nip='" & xnip & "' and nis='" & xnis & "'"
Program di atas berarti memanggil semua field dari form
mengambil dimana thn_ajaran = cbthn_ajaran, semester = cbsemester,
kode_mp = xkode_mp, nip = x nip dan nis = xnis
Set rs = conn.Execute(strsql) If rs.EOF Then
strsql = "insert into mengambil (thn_ajaran,semester, kode_mp, nip, nis) values ('"
& cbthn_ajaran.Text & "', '" & cbsemester.Text & "','" & xkode_mp & "', '" & xnip & "','" & xnis & "')"
Program di atas berarti memasukkan data dari tabel mengambil
(thn_ajaran,semester, kode_mp, nip, nis)
conn.Execute (strsql) End If Adodc2.Recordset.MoveNext Next j Adodc1.Recordset.MoveNext End If Next i
Apabila proses telah selesai, maka akan muncul:
MsgBox "Proses Selesai...." Adodc1.Recordset.MoveFirst End Sub
12.Proses pemasukan nilai
a) Proses daftar siswa
Call mpsiswa
Public Sub mpsiswa() On Error GoTo pesan Call konek
strsql = "SELECT siswa.NIS, siswa.nama_lengkap, mengambil.nilai_tertulis,
mengambil.nilai_pengamatan, mengambil.nilai_tugas, mengambil.nilai_ulangan,
mengambil.nilai,mengambil.id_ambil " _
& "FROM mengambil INNER JOIN siswa ON mengambil.nis = siswa.NIS where mengambil.thn_ajaran='" & cbthn_ajaran.Text & "' and mengambil.semester='" & cbsemester.Text & "' and mengambil.kode_mp='" & Adodc1.Recordset("kode_mp") & "' and mengambil.nip='" & Adodc1.Recordset("nip") & "' " Adodc3.RecordSource = strsql
Adodc3.Refresh
Penggalan program di atas adalah perintah yang digunakan untuk
menampilkan nis, nama_lengkap, nilai_tertulis, nilai_pengamatan,
nilai_tugas, nilai_ulangan, nilai, id_ambil dari form mengambil dan
siswa dan menampilkan data siswa berdasarkan mata pelajaran yang
telah dipilih.
b) Proses entry nilai
txtid_ambil.Text = Adodc3.Recordset("id_ambil") txtnis.Text = Adodc3.Recordset("nis")
txtnama.Text = Adodc3.Recordset("nama_lengkap") Adodc2.RecordSource = "select * from nilai where id_ambil=" & txtid_ambil.Text & ""
Adodc2.Refresh
Proses di atas digunakan untuk memasukkan nilai pada data siswa
yang telah dipilih.
13.Proses penilaian
a) Proses buka
Proses ini dilakukan untuk membuka nama mata pelajaran, nama
siswa beserta nilai yang telah siswa peroleh. Penggalan programnya adalah
Call mpsiswa
Public Sub mpsiswa() On Error GoTo pesan Call konek
strsql = "SELECT mengambil.id_ambil, mp.namamp, mengambil.nis, siswa.nama_lengkap, siswa.id_kelas,kelas.kelas,
mengambil.nilai_tertulis,
mengambil.nilai_pengamatan, mengambil.nilai_tugas, mengambil.nilai_ulangan, mengambil.nilai" _
& " FROM kelas INNER JOIN ((mengambil INNER JOIN mp ON mengambil.kode_mp = mp.Kode_mp) INNER JOIN siswa ON mengambil.nis = siswa.NIS) ON kelas.id_kelas = siswa.id_kelas" _
& " WHERE mengambil.thn_ajaran='" & cbthn_ajaran.Text & "' and mengambil.semester='" & cbsemester.Text & "' and kelas.id_kelas='" & cbkelas.Text & "'" Adodc1.RecordSource = strsql Adodc1.Refresh Exit Sub pesan: Exit Sub
End Sub
b) Proses penghitungan nilai
Proses ini dilakukan untuk melakukan penghitungan nilai sesuai
dengan rumus. Penggalan programnya adalah :
jmp = Adodc1.Recordset.RecordCount jkode = Adodc2.Recordset.RecordCount Adodc1.Recordset.MoveFirst For i = 1 To jmp xid_ambil = Adodc1.Recordset("id_ambil") Adodc2.Recordset.MoveFirst For j = 1 To jkode Call konek xkd_nilai = Adodc2.Recordset("kd_nilai")
strsql = "select avg(nilai) as nilai from nilai where id_ambil=" & xid_ambil & " and kd_nilai='" & xkd_nilai & "'"
Set rs = conn.Execute(strsql) If IsNull(rs("nilai")) Then nilai = 0 Else nilai = rs("nilai") End If If xkd_nilai = "NT" Then
strsql = "update mengambil set nilai_tertulis=" & nilai & " where id_ambil=" & xid_ambil & ""
conn.Execute (strsql) ElseIf xkd_nilai = "NP" Then
strsql = "update mengambil set nilai_pengamatan=" & nilai & " where id_ambil=" & xid_ambil & ""
conn.Execute (strsql) ElseIf xkd_nilai = "NTG" Then
strsql = "update mengambil set nilai_tugas=" & nilai & " where id_ambil=" & xid_ambil & ""
conn.Execute (strsql) ElseIf xkd_nilai = "NUL" Then
strsql = "update mengambil set nilai_ulangan=" & nilai & " where id_ambil=" & xid_ambil & "" conn.Execute (strsql) End If Adodc2.Recordset.MoveNext Next j Adodc1.Recordset.MoveNext Next i
MsgBox "Proses posting Selesai....lanjut proses hitung"
Adodc1.Recordset.MoveFirst
jmp = Adodc1.Recordset.RecordCount For i = 1 To jmp
nt = Adodc1.Recordset("nilai_tertulis") np = Adodc1.Recordset("nilai_pengamatan") nul = Adodc1.Recordset("nilai_ulangan") ntug = Adodc1.Recordset("nilai_tugas")
nakhir = (((nt + np) / 2) + ntug + (2 * nul)) / 4
' Print xid_ambil, nakhir
strsql = "update mengambil set nilai=" & nakhir & " where id_ambil=" & xid_ambil & ""
conn.Execute (strsql)
Adodc1.Recordset.MoveNext Next i
Apabila proses selesai, maka akan muncul :
MsgBox "Proses hitung Selesai...."