Private Sub btnok_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnok.Click
If username.Text = “siska” And password.Text = “m00074” Then
menuutama.Show()
Me.Hide()
Else
MsgBox(“Data Username/Password Salah?”)
username.Text = “”
password.Text = “”
End If
End Sub
End Class
Public Class gajipegawai
Private Sub gajipegawai_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
jabatan.Items.Add(“Mandor”)
jabatan.Items.Add(“Kepala Bagian”)
jabatan.Items.Add(“Staff”)
status.Items.Add(“Tidak Nikah”)
status.Items.Add(“Menikah”)
Dim jmlh As Byte
For jmlh = 1 To 30
jlh_anak.Items.Add(jmlh)
Next
Dim lama As Byte
For lama = 1 To 30
lama_lembur.Items.Add(lama)
Next
bersih()
RancangTabel()
nama.Focus()
End Sub
Sub RancangTabel()
With LV
.Columns.Add(“Nama”, 70, HorizontalAlignment.Center)
.Columns.Add(“Jabatan”, 120, HorizontalAlignment.Left)
.Columns.Add(“Gaji Pokok”, 100, HorizontalAlignment.Left)
.Columns.Add(“Status”, 100, HorizontalAlignment.Left)
.Columns.Add(“Tunj Istri”, 120, HorizontalAlignment.Left)
.Columns.Add(“Jmlah Anak”, 90, HorizontalAlignment.Center)
.Columns.Add(“Tunj Anak”, 90, HorizontalAlignment.Center)
.Columns.Add(“Pajak”, 120, HorizontalAlignment.Left)
.Columns.Add(“Lama Lembur”, 120, HorizontalAlignment.Left)
.Columns.Add(“Upah Lembur”, 120, HorizontalAlignment.Left)
.Columns.Add(“Gaji”, 120, HorizontalAlignment.Left)
.GridLines = True
.FullRowSelect = True
.View = View.Details
End With
End Sub
Sub MasukTabel()
Dim ist As New ListViewItem
With ist
.Text = nama.Text
.SubItems.Add(jabatan.Text)
.SubItems.Add(gaji.Text)
.SubItems.Add(status.Text)
.SubItems.Add(tjg_i.Text)
.SubItems.Add(jlh_anak.Text)
.SubItems.Add(tjg_a.Text)
.SubItems.Add(pajak.Text)
.SubItems.Add(lama_lembur.Text)
.SubItems.Add(lembur.Text)
.SubItems.Add(totgaji.Text)
LV.Items.Add(ist)
End With
End Sub
Sub bersih()
nama.Text = “”
jabatan.Text = “”
gaji.Text = “”
tjg_a.Text = “”
tjg_i.Text = “”
jlh_anak.Text = “”
lembur.Text = “”
lama_lembur.Text = “”
totgaji.Text = “”
pajak.Text = “”
status.Text = “”
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnsimpan.Click
MasukTabel()
bersih()
End Sub
Private Sub jabatan_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles jabatan.SelectedIndexChanged
If jabatan.Text = “Mandor” Then
gaji.Text = 1750000
ElseIf jabatan.Text = “Kepala Bagian” Then
gaji.Text = 2500000
ElseIf jabatan.Text = “Staff” Then
gaji.Text = 1250000
Else
gaji.Text = 0
End If
pajak.Text = 0.015 * gaji.Text
End Sub
Private Sub lama_lembur_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lama_lembur.SelectedIndexChanged
If jabatan.Text = “Mandor” Then
lembur.Text = lama_lembur.Text * 7500
ElseIf jabatan.Text = “Kepala Bagian” Then
lembur.Text = lama_lembur.Text * 10000
ElseIf jabatan.Text = “Staff” Then
lembur.Text = lama_lembur.Text * 5000
Else
lembur.Text = 0
End If
End Sub
Private Sub status_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles status.SelectedIndexChanged
If status.Text = “Menikah” Then
tjg_i.Text = 0.09 * gaji.Text
If jlh_anak.Text = “1″ Then
tjg_a.Text = 0.03 * gaji.Text
ElseIf jlh_anak.Text >= “2″ Then
tjg_a.Text = 0.07 * gaji.Text
End If
Else
tjg_i.Text = “0″
tjg_a.Text = “0″
End If
End Sub
Private Sub jlh_anak_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles jlh_anak.SelectedIndexChanged
If status.Text = “Menikah” Then
tjg_i.Text = 0.09 * gaji.Text
If jlh_anak.Text = “1″ Then
tjg_a.Text = 0.03 * gaji.Text
ElseIf jlh_anak.Text >= “2″ Then
tjg_a.Text = 0.07 * gaji.Text
End If
Else
tjg_i.Text = “0″
tjg_a.Text = “0″
End If
End Sub
Private Sub btnhapus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnhapus.Click
nama.Text = “”
jabatan.Text = “”
gaji.Text = “”
tjg_a.Text = “”
tjg_i.Text = “”
jlh_anak.Text = “”
lembur.Text = “”
lama_lembur.Text = “”
totgaji.Text = “”
pajak.Text = “”
status.Text = “”
End Sub
Private Sub btnbersih_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnbersih.Click
lv.Items.Remove(lv.SelectedItems(0))
End Sub
Private Sub lembur_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lembur.TextChanged
totgaji.Text = Val(gaji.Text) + Val(tjg_i.Text) + Val(tjg_a.Text) + Val(lembur.Text) – Val(pajak.Text)
End Sub
Private Sub btnkeluar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnkeluar.Click
End
End Sub
End Class
ini pak link saya
Hidup Dalam Pencarian
Minggu, 29 Januari 2012
kuis online hari senin
Private Sub btnok_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnok.Click
If username.Text = “siska” And password.Text = “m00074” Then
menuutama.Show()
Me.Hide()
Else
MsgBox(“Data Username/Password Salah?”)
username.Text = “”
password.Text = “”
End If
End Sub
End Class
Public Class gajipegawai
Private Sub gajipegawai_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
jabatan.Items.Add(“Mandor”)
jabatan.Items.Add(“Kepala Bagian”)
jabatan.Items.Add(“Staff”)
status.Items.Add(“Tidak Nikah”)
status.Items.Add(“Menikah”)
Dim jmlh As Byte
For jmlh = 1 To 30
jlh_anak.Items.Add(jmlh)
Next
Dim lama As Byte
For lama = 1 To 30
lama_lembur.Items.Add(lama)
Next
bersih()
RancangTabel()
nama.Focus()
End Sub
Sub RancangTabel()
With LV
.Columns.Add(“Nama”, 70, HorizontalAlignment.Center)
.Columns.Add(“Jabatan”, 120, HorizontalAlignment.Left)
.Columns.Add(“Gaji Pokok”, 100, HorizontalAlignment.Left)
.Columns.Add(“Status”, 100, HorizontalAlignment.Left)
.Columns.Add(“Tunj Istri”, 120, HorizontalAlignment.Left)
.Columns.Add(“Jmlah Anak”, 90, HorizontalAlignment.Center)
.Columns.Add(“Tunj Anak”, 90, HorizontalAlignment.Center)
.Columns.Add(“Pajak”, 120, HorizontalAlignment.Left)
.Columns.Add(“Lama Lembur”, 120, HorizontalAlignment.Left)
.Columns.Add(“Upah Lembur”, 120, HorizontalAlignment.Left)
.Columns.Add(“Gaji”, 120, HorizontalAlignment.Left)
.GridLines = True
.FullRowSelect = True
.View = View.Details
End With
End Sub
Sub MasukTabel()
Dim ist As New ListViewItem
With ist
.Text = nama.Text
.SubItems.Add(jabatan.Text)
.SubItems.Add(gaji.Text)
.SubItems.Add(status.Text)
.SubItems.Add(tjg_i.Text)
.SubItems.Add(jlh_anak.Text)
.SubItems.Add(tjg_a.Text)
.SubItems.Add(pajak.Text)
.SubItems.Add(lama_lembur.Text)
.SubItems.Add(lembur.Text)
.SubItems.Add(totgaji.Text)
LV.Items.Add(ist)
End With
End Sub
Sub bersih()
nama.Text = “”
jabatan.Text = “”
gaji.Text = “”
tjg_a.Text = “”
tjg_i.Text = “”
jlh_anak.Text = “”
lembur.Text = “”
lama_lembur.Text = “”
totgaji.Text = “”
pajak.Text = “”
status.Text = “”
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnsimpan.Click
MasukTabel()
bersih()
End Sub
Private Sub jabatan_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles jabatan.SelectedIndexChanged
If jabatan.Text = “Mandor” Then
gaji.Text = 1750000
ElseIf jabatan.Text = “Kepala Bagian” Then
gaji.Text = 2500000
ElseIf jabatan.Text = “Staff” Then
gaji.Text = 1250000
Else
gaji.Text = 0
End If
pajak.Text = 0.015 * gaji.Text
End Sub
Private Sub lama_lembur_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lama_lembur.SelectedIndexChanged
If jabatan.Text = “Mandor” Then
lembur.Text = lama_lembur.Text * 7500
ElseIf jabatan.Text = “Kepala Bagian” Then
lembur.Text = lama_lembur.Text * 10000
ElseIf jabatan.Text = “Staff” Then
lembur.Text = lama_lembur.Text * 5000
Else
lembur.Text = 0
End If
End Sub
Private Sub status_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles status.SelectedIndexChanged
If status.Text = “Menikah” Then
tjg_i.Text = 0.09 * gaji.Text
If jlh_anak.Text = “1″ Then
tjg_a.Text = 0.03 * gaji.Text
ElseIf jlh_anak.Text >= “2″ Then
tjg_a.Text = 0.07 * gaji.Text
End If
Else
tjg_i.Text = “0″
tjg_a.Text = “0″
End If
End Sub
Private Sub jlh_anak_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles jlh_anak.SelectedIndexChanged
If status.Text = “Menikah” Then
tjg_i.Text = 0.09 * gaji.Text
If jlh_anak.Text = “1″ Then
tjg_a.Text = 0.03 * gaji.Text
ElseIf jlh_anak.Text >= “2″ Then
tjg_a.Text = 0.07 * gaji.Text
End If
Else
tjg_i.Text = “0″
tjg_a.Text = “0″
End If
End Sub
Private Sub btnhapus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnhapus.Click
nama.Text = “”
jabatan.Text = “”
gaji.Text = “”
tjg_a.Text = “”
tjg_i.Text = “”
jlh_anak.Text = “”
lembur.Text = “”
lama_lembur.Text = “”
totgaji.Text = “”
pajak.Text = “”
status.Text = “”
End Sub
Private Sub btnbersih_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnbersih.Click
lv.Items.Remove(lv.SelectedItems(0))
End Sub
Private Sub lembur_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lembur.TextChanged
totgaji.Text = Val(gaji.Text) + Val(tjg_i.Text) + Val(tjg_a.Text) + Val(lembur.Text) – Val(pajak.Text)
End Sub
Private Sub btnkeluar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnkeluar.Click
End
End Sub
End Class
If username.Text = “siska” And password.Text = “m00074” Then
menuutama.Show()
Me.Hide()
Else
MsgBox(“Data Username/Password Salah?”)
username.Text = “”
password.Text = “”
End If
End Sub
End Class
Public Class gajipegawai
Private Sub gajipegawai_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
jabatan.Items.Add(“Mandor”)
jabatan.Items.Add(“Kepala Bagian”)
jabatan.Items.Add(“Staff”)
status.Items.Add(“Tidak Nikah”)
status.Items.Add(“Menikah”)
Dim jmlh As Byte
For jmlh = 1 To 30
jlh_anak.Items.Add(jmlh)
Next
Dim lama As Byte
For lama = 1 To 30
lama_lembur.Items.Add(lama)
Next
bersih()
RancangTabel()
nama.Focus()
End Sub
Sub RancangTabel()
With LV
.Columns.Add(“Nama”, 70, HorizontalAlignment.Center)
.Columns.Add(“Jabatan”, 120, HorizontalAlignment.Left)
.Columns.Add(“Gaji Pokok”, 100, HorizontalAlignment.Left)
.Columns.Add(“Status”, 100, HorizontalAlignment.Left)
.Columns.Add(“Tunj Istri”, 120, HorizontalAlignment.Left)
.Columns.Add(“Jmlah Anak”, 90, HorizontalAlignment.Center)
.Columns.Add(“Tunj Anak”, 90, HorizontalAlignment.Center)
.Columns.Add(“Pajak”, 120, HorizontalAlignment.Left)
.Columns.Add(“Lama Lembur”, 120, HorizontalAlignment.Left)
.Columns.Add(“Upah Lembur”, 120, HorizontalAlignment.Left)
.Columns.Add(“Gaji”, 120, HorizontalAlignment.Left)
.GridLines = True
.FullRowSelect = True
.View = View.Details
End With
End Sub
Sub MasukTabel()
Dim ist As New ListViewItem
With ist
.Text = nama.Text
.SubItems.Add(jabatan.Text)
.SubItems.Add(gaji.Text)
.SubItems.Add(status.Text)
.SubItems.Add(tjg_i.Text)
.SubItems.Add(jlh_anak.Text)
.SubItems.Add(tjg_a.Text)
.SubItems.Add(pajak.Text)
.SubItems.Add(lama_lembur.Text)
.SubItems.Add(lembur.Text)
.SubItems.Add(totgaji.Text)
LV.Items.Add(ist)
End With
End Sub
Sub bersih()
nama.Text = “”
jabatan.Text = “”
gaji.Text = “”
tjg_a.Text = “”
tjg_i.Text = “”
jlh_anak.Text = “”
lembur.Text = “”
lama_lembur.Text = “”
totgaji.Text = “”
pajak.Text = “”
status.Text = “”
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnsimpan.Click
MasukTabel()
bersih()
End Sub
Private Sub jabatan_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles jabatan.SelectedIndexChanged
If jabatan.Text = “Mandor” Then
gaji.Text = 1750000
ElseIf jabatan.Text = “Kepala Bagian” Then
gaji.Text = 2500000
ElseIf jabatan.Text = “Staff” Then
gaji.Text = 1250000
Else
gaji.Text = 0
End If
pajak.Text = 0.015 * gaji.Text
End Sub
Private Sub lama_lembur_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lama_lembur.SelectedIndexChanged
If jabatan.Text = “Mandor” Then
lembur.Text = lama_lembur.Text * 7500
ElseIf jabatan.Text = “Kepala Bagian” Then
lembur.Text = lama_lembur.Text * 10000
ElseIf jabatan.Text = “Staff” Then
lembur.Text = lama_lembur.Text * 5000
Else
lembur.Text = 0
End If
End Sub
Private Sub status_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles status.SelectedIndexChanged
If status.Text = “Menikah” Then
tjg_i.Text = 0.09 * gaji.Text
If jlh_anak.Text = “1″ Then
tjg_a.Text = 0.03 * gaji.Text
ElseIf jlh_anak.Text >= “2″ Then
tjg_a.Text = 0.07 * gaji.Text
End If
Else
tjg_i.Text = “0″
tjg_a.Text = “0″
End If
End Sub
Private Sub jlh_anak_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles jlh_anak.SelectedIndexChanged
If status.Text = “Menikah” Then
tjg_i.Text = 0.09 * gaji.Text
If jlh_anak.Text = “1″ Then
tjg_a.Text = 0.03 * gaji.Text
ElseIf jlh_anak.Text >= “2″ Then
tjg_a.Text = 0.07 * gaji.Text
End If
Else
tjg_i.Text = “0″
tjg_a.Text = “0″
End If
End Sub
Private Sub btnhapus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnhapus.Click
nama.Text = “”
jabatan.Text = “”
gaji.Text = “”
tjg_a.Text = “”
tjg_i.Text = “”
jlh_anak.Text = “”
lembur.Text = “”
lama_lembur.Text = “”
totgaji.Text = “”
pajak.Text = “”
status.Text = “”
End Sub
Private Sub btnbersih_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnbersih.Click
lv.Items.Remove(lv.SelectedItems(0))
End Sub
Private Sub lembur_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lembur.TextChanged
totgaji.Text = Val(gaji.Text) + Val(tjg_i.Text) + Val(tjg_a.Text) + Val(lembur.Text) – Val(pajak.Text)
End Sub
Private Sub btnkeluar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnkeluar.Click
End
End Sub
End Class
Selasa, 06 Desember 2011
RUMUS-RUMUS FORMULA DALAM MICROSOFT EXCEL
Jenis Data
1. Data numeric : data yang dapat dihitung
2. Data text : data yang tidak dapat dihitung, gunakan tanda petik tunggal (‘)
Format Tampilan Data
1. Sorot/Blok sel yang akan di format
2. Klik menu Format dan klik cells (Ctrl +1), bisa juga menggunakan mouse
3. Klik salah satu : Number, Aligment, Font, Border, Pattern, dan Protection
Number :
Digunakan untuk memformat nilai numerik, yang terdiri atas beberapa angka yang mewakili angka, nilai satuan mata uang, tanggal, waktu, persentase dan sebagainya.
Alegment :
Digunakan untuk mengatur suatu sel atau range dengan posisi rata kiri, rata kanan, dan rata tengah. Juga mengatur derajat kemiringan data.
Font :
Untuk memilih jenis, ukuran,tampilan warna, dan efek khusus huruf.
Border :
Untuk membuat bingkai atau menambah garis pembatas pada suatu sel atau range.
Patterns :
Untuk memberi warna dan corak latar belakang sel atau range.
Mengubah Nama Sheet
1. Klik sheet yang akan diubah namanya, klik menu Format pilih sheet
2. Klik Rename, klik nama baru, enter
Menambah Sheet Baru
1. Klik kanan (mouse) pada sheet
2. Klik Insert, pilih Workshet, Klik OK
3. Untuk memindahkan sheet, klik (tahan) tarik sheet ptempat yang diinginkan
Membuat Grafik
1. Blok data yang akan dibuat menjadi grafik
2. Klik insert,Klik chart
3. Pilih type chart yang diinginkan, lalu next
4. Pilih datanya yang dibaca Rows atau Colums pada series in untuk menentukan pembacaan data kolom atau baris, lalu klik next
5. Lalu pilih Title untuk buat judul grafik,
a. Axes : sumbu X dan Y
b. Gridlines : untuk garis-garis didalam grafik
c. Legend : untuk keterangan nama grafik
d. Data labes : untuk menampilkan nilai pada gambar grafik
e. Data table : menampilkan data grafik
6. Bila telah benar klik Next
7. Tentukan letak grafik As new sheet (lembar kerja baru) atau As object in (lembar kerja yang aktif), setelah selesai klik Finish.
Membuat Catatan & Menggunakan Filter
a. Letakkan kusor pada sel yang diinginkan Klik kanan pada mouse Insert Comment
b. Letakkan kusor pada sel yang akan dikoreksi, pada menu Data klik Filter, klik AutoFilter = Untuk memparmudah koreksi
Ekspresi Atau Pernyataan Logika
= < > <= >= <> | Sama dengan Lebih kecil Lebih besar Lebih kecil Sama dengan Lebih besar Sama dengan Tidak sama dengan | A1=B1 A1<B1 A1>B1 A1<=B1 A1>=B1 A1<>B1 | |
+ - * / % ^ & : atau ; , (dan) “ (maka) | Penjumlahan Pengurangan Perkalian Pembagian Persen Pangkat Dan Sebagai batas range Penggabung renge Pernyataan | 1+2 2-1 2*2 2/2 20% 2^2 “Na” & “ma” A1: E9 Sum(A1:A7,C1:C7 | (3) (1) (4) (1) (0,2) (4) (Nama) |
Menggunakan Fungsi Matematika Dan Statistika
Sum Max Min Average Sumif Counta Countif | Penjumlahan Nilai tertinggi Nilai terendah Rata-rata Penjumlahan yang memiliki kreteria tertentu Menghitung sel yang terisi data Menghitung sel yang terisi data dengan kreteria tertentu |
Operator Logika
AND (dan) OR (atau) | =And(B5>1000,C5>15%) =Or(B5>1000,C5>15%) |
Fungsi Logika If
IF (Jika) | =IF(B6="M","Menikah",IF(B6="B","Belum")) |
Fungsi If Dengan Dua Ekspresi
If(Or( IF(AND( | =IF(OR(E6="PIMPINAN",E6="MANAGER"),7%*F6,0) =IF(AND(E6="STAFF",D6="nikah"),5%*F6,0) |
Fungsi Teks/Strings
Left (kiri) Right (Kanan) Mid (tengah) | =Left(B2,2) =Right(B2,2) =Mid(B2,2) |
Fungsi Vlookup & Hlookup
Vlookup Hlookup F4 | Untuk data ke atas Untuk data mendatar Untuk mengunci data |
Cara mudah mencetak kode barcode
Sesuai judulnya jadi kita akan mencetak kode barcode, jadi bukan membuat kode barcode karena coding untuk membuat kode barcode lumayan menyita waktu dan tenaga (asalkan buatnya dari nol bukan copas source code )
Beberapa waktu yang lalu saya sudah membahas bagaimana membuat form input hari libur yang diambil dari salah satu fitur Smart Library School, kali ini saya membahas fitur lainnya yaitu pencetakan kode barcode yang tentunya dengan cara yang instan
Ada 2 mode pencetakan yang akan saya share disini :
1. Cetak barcode tunggal, sesuai namanya kita akan mencetak 1 kode barcode dengan posisi yang bisa kita atur sendiri.
2. Cetak barcode kelompok, mencetak beberapa kode barcode sekaligus
Proses pembuatan barcodenya sendiri tidak perlu koding khusus, yang diperlukan hanya kode untuk mencetaknya itulah mudahnya klo menggunakan komponen pihak ke tiga he he he .
Oke langsung saja kita akan buat rancangan tampilannya seperti berikut :
Adapun kode pencetakannya adalah sebagai berikut :
dan terakhir kode untuk mencetak barcode kelompok :
Selamat MENCOBA
Beberapa waktu yang lalu saya sudah membahas bagaimana membuat form input hari libur yang diambil dari salah satu fitur Smart Library School, kali ini saya membahas fitur lainnya yaitu pencetakan kode barcode yang tentunya dengan cara yang instan
Ada 2 mode pencetakan yang akan saya share disini :
1. Cetak barcode tunggal, sesuai namanya kita akan mencetak 1 kode barcode dengan posisi yang bisa kita atur sendiri.
2. Cetak barcode kelompok, mencetak beberapa kode barcode sekaligus
Proses pembuatan barcodenya sendiri tidak perlu koding khusus, yang diperlukan hanya kode untuk mencetaknya itulah mudahnya klo menggunakan komponen pihak ke tiga he he he .
Ingat komponen ini adalah shareware, segala resiko (kemudahan dalam mencetak kode barcode) ditanggung sendiri , saya disini hanya share dan tidak terikat kerja sama dengan pihak ketiga tersebut.
Oke langsung saja kita akan buat rancangan tampilannya seperti berikut :
Adapun kode pencetakannya adalah sebagai berikut :
01 | Private Sub cmdCetak_Click() |
02 | Dim batasKiri As Single |
03 | Dim batasAtas As Single |
04 |
05 | Dim posisi As Integer |
06 |
07 | If MsgBox( "Apakah proses pencetakan kode barcode ingin dilanjutkan ?" , vbExclamation + vbYesNo, "Konfirmasi" ) = vbYes Then |
08 | Screen.MousePointer = vbHourglass |
09 | DoEvents |
10 |
11 | Printer.PSet ( 0 , 0 ), vbWhite |
12 | Printer.ScaleMode = vbPixels |
13 |
14 | batasKiri = 0 |
15 | batasAtas = 2.5 |
16 | posisi = 0 |
17 |
18 | Do While posisi < 30 |
19 | If Check 1 (posisi).Value = Checked Then |
20 | If posisi >= 0 And posisi <= 5 Then |
21 | batasKiri = 0 |
22 |
23 | ElseIf posisi >= 6 And posisi <= 11 Then |
24 | batasKiri = 4 |
25 |
26 | ElseIf posisi >= 12 And posisi <= 17 Then |
27 | batasKiri = 8 |
28 |
29 | ElseIf posisi >= 18 And posisi <= 23 Then |
30 | batasKiri = 12 |
31 |
32 | Else |
33 | batasKiri = 16 |
34 | End If |
35 |
36 | Select Case posisi |
37 | Case 0 , 6 , 12 , 18 , 24 |
38 | batasAtas = 0.5 |
39 | Case 1 , 7 , 13 , 19 , 25 |
40 | batasAtas = 3.2 |
41 | Case 2 , 8 , 14 , 20 , 26 |
42 | batasAtas = 5.8 |
43 | Case 3 , 9 , 15 , 21 , 27 |
44 | batasAtas = 8.4 |
45 | Case 4 , 10 , 16 , 22 , 28 |
46 | batasAtas = 11.2 |
47 | Case 5 , 11 , 17 , 23 , 29 |
48 | batasAtas = 13.9 |
49 | End Select |
50 |
51 | TBarCode 51 .Text = txtKodeBarcode.Text |
52 | TBarCode 51 .BackStyle = BKS_Transparent |
53 | TBarCode 51 .BCDraw Printer.hDC, Printer.ScaleX(batasKiri, vbCentimeters), Printer.ScaleY(batasAtas, vbCentimeters), Printer.ScaleX( 3 , vbCentimeters), Printer.ScaleY( 1.5 , vbCentimeters) |
54 | End If |
55 | posisi = posisi + 1 |
56 | Loop |
57 | Printer.EndDoc |
58 |
59 | Screen.MousePointer = vbDefault |
60 | End If |
61 | End Sub |
dan terakhir kode untuk mencetak barcode kelompok :
01 | Private Sub cmdCetak_Click() |
02 | Dim x As Long |
03 | Dim y As Long |
04 | Dim Index As Integer |
05 |
06 | Dim sgLeft 1 As Single |
07 | Dim sgleft 2 As Single |
08 | Dim sgTop As Single |
09 |
10 | Dim fExit As Boolean |
11 |
12 | If MsgBox( "Apakah proses pencetakan kode barcode ingin dilanjutkan ?" , vbExclamation + vbYesNo, "Konfirmasi" ) = vbYes Then |
13 | Screen.MousePointer = vbHourglass |
14 | DoEvents |
15 |
16 | Printer.PSet ( 0 , 0 ), vbWhite |
17 | Printer.ScaleMode = vbPixels |
18 | sgTop = Printer.ScaleY( 2.5 , vbCentimeters) |
19 | sgLeft 1 = Printer.ScaleX( 1 , vbCentimeters) |
20 |
21 | While fExit = False |
22 | x = 1 |
23 | While fExit = False And x <= 3 |
24 | y = 1 |
25 | While fExit = False And y <= 4 |
26 | ' top margin |
27 | If y > 1 Then |
28 | sgTop = sgTop + Printer.ScaleY( 3.5 , vbCentimeters) |
29 | Else |
30 | sgTop = Printer.ScaleY( 2.5 , vbCentimeters) |
31 | End If |
32 |
33 | ' left margin |
34 | If x = 1 Then |
35 | sgleft 2 = Printer.ScaleX( 1 , vbCentimeters) |
36 | ElseIf x = 2 Then |
37 | sgleft 2 = sgLeft 1 + Printer.ScaleX( 6.79 , vbCentimeters) |
38 | Else |
39 | sgleft 2 = sgLeft 1 + Printer.ScaleX( 6.64 , vbCentimeters) |
40 | End If |
41 |
42 | If Not ((Index + 1 ) > lstDaftarBarcode.ListCount) Then |
43 | TBarCode 51 .Text = lstDaftarBarcode.List(Index) |
44 | TBarCode 51 .BackStyle = BKS_Transparent |
45 | TBarCode 51 .BCDraw Printer.hDC, sgleft 2 , sgTop, Printer.ScaleX( 4.4 , vbCentimeters), Printer.ScaleY( 1 , vbCentimeters) |
46 | End If |
47 |
48 | If (Index + 1 ) > lstDaftarBarcode.ListCount Then |
49 | fExit = True |
50 | Else |
51 | Index = Index + 1 |
52 | End If |
53 |
54 | y = y + 1 |
55 | Wend |
56 |
57 | sgLeft 1 = sgleft 2 |
58 | x = x + 1 |
59 | Wend |
60 |
61 | If Not fExit Then |
62 | Printer.NewPage |
63 | sgTop = Printer.ScaleY( 2 , vbCentimeters) |
64 | sgLeft 1 = Printer.ScaleX( 1.5 , vbCentimeters) |
65 | End If |
66 |
67 | Wend |
68 |
69 | Printer.EndDoc |
70 | Screen.MousePointer = vbDefault |
71 | End If |
72 | End Sub |
Membuat sms gateway itu gampang, jangan dipersulit !!!
Walaupun sudah banyak blog yang membahas tentang masalah ini, tapi kayaxnya tema “sms gateway” masih hangat dan saru eh… seru untuk dibahas , dan tentunya dengan adanya artikel ini saya berharap lebih banyak lagi yang tersesat ke blog ini .
Oke jadi kasusnya apa nih, kita ambil aja sample sederhana yaitu “pembuatan sms gateway untuk request nilai siswa” dan untuk menyederhanakan pembahasan keywordnya kita batasi saja yaitu request nilai tugas dan ulangan.
Apa yang harus di persiapkan, pertama kita rancang dulu databasenya dan berhubung artikel saya yang membahas tentang database SQLite masih hangat jadi untuk databasenya kita menggunakan SQLite saja.
SQLite adalah database standalone yang kecil, mungil dan gratis. Bagaimana cara membuat database di SQLite sudah saya bahas disini kemudian bagaimana mengaksesnya dari aplikasi juga sudah saya bahasa disini.
Berikut adalah rancangan sederhana database sms yang akan kita buat :
Ada banyak cara untuk membaca sms masuk dan membalasanya, salah satunya adalah menggunakan perintah AT COMMAND dan Microsoft sendiri sudah menyediakan komponen yang bisa mengeksekusi perintah-perintah tersebut.
Tentunya cara ini (menggunakan AT COMMAND) bukan cara yang favorit dikalangan programmer instan seperti Anda dan Saya , jadi diartikel ini saya menggunakan komponen pihak ketiga.
Berikut adalah cuplikan source code untuk membaca dan mengirim sms menggunakan komponen ActiveXpert SMS
1. Membaca SMS Masuk
2. Mengirim sms
Jadi cukup dengan bermodalkan 2 cuplikan kode diatas kita akan menyelesaikan aplikasi yg dibahas pada artikel kali ini.
Adapun untuk keyword yang akan digunakan sebagai berikut :
1. Request nilai tugas
keyword : tgs#nis
contoh :
tgs#9941224165
balasan :
Nilai tugas (NAMA SISWA) : BI=95, IPA=75, IPS=80, MTK=85
2. Request nilai ulangan harian
keyword : uh#nis
contoh :
uh#9941224165
balasan :
Nilai ulangan (NAMA SISWA) : BI=95, IPA=75, IPS=80, MTK=85
Berikut penjelasan ringkas beberapa cuplikan source code yang digunakan dalam pembuatan aplikasi sms gateway ini.
Sesuai namanya fungsi connectToDevice digunakan untuk mengecek status modem sms yang terpasang, salah satu caranya adalah dengan mengirimkan AT COMMAND “AT+CGM”, AT COMMAND ini berfungsi untuk mendapatkan informasi manufaktur.
Sebagai contoh jika modem sms yg digunakan adalah hp siemens maka nilai yg dihasilkan dari perintah ini adalah “SIEMENS” dan tentunya hp yg bersangkutan juga harus mendukung AT COMMAND.
Prosedur readSMS digunakan untuk membaca sms masuk dan menyimpannya ke tabel sms_in, berhubung komponen ActiveXpert SMS tidak mempunyai event yg menandai adanya sms masuk maka sebagai gantinya kita menggunakan timer untuk memanggil prosedur readSMS.
Salah satu properties penting yang dimiliki oleh ActiveXpert SMS adalah DeleteAfterReceive, jika nilainya diset true maka sms yg masuk akan otomatis dihapus dan tentunya setelah smsnya dibaca.
Prosedur cekSMSIn dibutuhkan oleh prosedur readSMS, jadi dengan adanya prosedur cekSMSIn ini program akan mengetahui kapan waktu yg tepat untuk memanggil prosedur sendSMS.
Prosedur sendSMS akan mengolah sms masuk yg belum di proses (ditandai dengan status = 0), mengupdate statusnya menjadi 1 jika berhasil mengirimkan sms, kemudian menyimpannya ke tabel sms_out sebagai histori pengiriman sms.
Sesuai namanya fungsi ini berguna untuk mengganti prefix nomor hp 0 menjadi +62 (kode indonesia).
Terakhir fungsi untuk memproses keyword sms yang masuk dan sekaligus sebagai balasan untuk sms keluar.
Oke jadi kasusnya apa nih, kita ambil aja sample sederhana yaitu “pembuatan sms gateway untuk request nilai siswa” dan untuk menyederhanakan pembahasan keywordnya kita batasi saja yaitu request nilai tugas dan ulangan.
Apa yang harus di persiapkan, pertama kita rancang dulu databasenya dan berhubung artikel saya yang membahas tentang database SQLite masih hangat jadi untuk databasenya kita menggunakan SQLite saja.
SQLite adalah database standalone yang kecil, mungil dan gratis. Bagaimana cara membuat database di SQLite sudah saya bahas disini kemudian bagaimana mengaksesnya dari aplikasi juga sudah saya bahasa disini.
Berikut adalah rancangan sederhana database sms yang akan kita buat :
Ada banyak cara untuk membaca sms masuk dan membalasanya, salah satunya adalah menggunakan perintah AT COMMAND dan Microsoft sendiri sudah menyediakan komponen yang bisa mengeksekusi perintah-perintah tersebut.
Tentunya cara ini (menggunakan AT COMMAND) bukan cara yang favorit dikalangan programmer instan seperti Anda dan Saya , jadi diartikel ini saya menggunakan komponen pihak ketiga.
Ingat komponen ini adalah shareware, segala resiko (kemudahan dalam membuat aplikasi sms gateway) ditanggung sendiri , saya disini hanya share dan tidak terikat kerja sama dengan pihak ketiga tersebut.Halah pernyataan ngawur
Berikut adalah cuplikan source code untuk membaca dan mengirim sms menggunakan komponen ActiveXpert SMS
1. Membaca SMS Masuk
01 | Private Sub cmdBacaSMS_Click() |
02 | Dim objGsmIn As ASmsCtrl.GsmIn |
03 |
04 | Set objGsmIn = New ASmsCtrl.GsmIn |
05 | With objGsmIn |
06 | .Activate "XXX-XXXX-XXXX-XXXXX" 'diisi serial number yg Anda dapatkan secara ilegal |
07 | .Device = "COM1" 'disesuaikan dengan port COM yang digunakan |
08 | .DeviceSpeed = 19200 'default = 0 |
09 |
10 | .Storage = 2 '0=sim 1=device 2=any |
11 | .DeleteAfterReceive = True |
12 | .Receive |
13 |
14 | If .LastError = 0 Or .LastError = 23140 Then ' Success |
15 | .GetFirstMessage |
16 |
17 | While .LastError = 0 |
18 | Debug.Print "Pengirim : " & .MessageSender |
19 | Debug.Print "Isi SMS : " & .MessageData |
20 |
21 | 'TODO : INSERT KE TABEL SMS_IN |
22 |
23 | .GetNextMessage |
24 | Wend |
25 | End If |
26 | End With |
27 | Set objGsmIn = Nothing |
28 | End Sub |
01 | Private Sub cmdKirimSMS_Click() |
02 | Dim objGsmOut As ASmsCtrl.GsmOut |
03 | Dim objConstants As ASmsCtrl.Constants |
04 |
05 | Set objGsmOut = New ASmsCtrl.GsmOut |
06 | Set objConstants = New ASmsCtrl.Constants |
07 |
08 | With objGsmOut |
09 | .Activate "XXX-XXXX-XXXX-XXXXX" 'diisi serial number yg Anda dapatkan secara ilegal |
10 | .Device = "COM1" 'disesuaikan dengan port COM yang digunakan |
11 | .DeviceSpeed = 19200 'default = 0 |
12 | .RequestStatusReport = False |
13 |
14 | .MessageType = objConstants.asMESSAGETYPE_TEXT 'mengirim pesan maksimal 160 karakter |
15 | '.MessageType = objConstants.asMESSAGETYPE_TEXT_MULTIPART 'jika lebih dari 160 karakter gunakan opsi ini |
16 |
17 | .MessageRecipient = "nomor tujuan" 'biasanya menggunakan prefix +62 |
18 | .MessageData = "isi pesan" |
19 | .Send 'kirim |
20 | End With |
21 |
22 | Set objConstants = Nothing |
23 | Set objGsmOut = Nothing |
24 | End Sub |
Adapun untuk keyword yang akan digunakan sebagai berikut :
1. Request nilai tugas
keyword : tgs#nis
contoh :
tgs#9941224165
balasan :
Nilai tugas (NAMA SISWA) : BI=95, IPA=75, IPS=80, MTK=85
2. Request nilai ulangan harian
keyword : uh#nis
contoh :
uh#9941224165
balasan :
Nilai ulangan (NAMA SISWA) : BI=95, IPA=75, IPS=80, MTK=85
Berikut penjelasan ringkas beberapa cuplikan source code yang digunakan dalam pembuatan aplikasi sms gateway ini.
01 | Private Function connectToDevice( ByVal device As String ) As Boolean |
02 | Dim objGsm As ASmsCtrl.GsmOut |
03 | Dim manufaktur As String |
04 |
05 | On Error GoTo errHandle |
06 |
07 | Set objGsm = New ASmsCtrl.GsmOut |
08 | With objGsm |
09 | .Activate SERIAL_NUMBER |
10 | .device = device |
11 |
12 | manufaktur = .SendCommand( "AT+CGMI" , 500) 'menampilkan informasi manufactur |
13 | manufaktur = Replace$(manufaktur, vbCrLf, "" ) |
14 | manufaktur = Replace$(manufaktur, "OK" , "" ) |
15 | manufaktur = Replace$(manufaktur, "ERROR" , "" ) |
16 | manufaktur = Replace$(manufaktur, "AT+CGMI" , "" ) |
17 | End With |
18 | Set objGsm = Nothing |
19 |
20 | If Len(manufaktur) > 0 Then |
21 | txtModem.Text = manufaktur |
22 | connectToDevice = True |
23 | End If |
24 |
25 | Exit Function |
26 | errHandle: |
27 | connectToDevice = False |
28 | End Function |
Sebagai contoh jika modem sms yg digunakan adalah hp siemens maka nilai yg dihasilkan dari perintah ini adalah “SIEMENS” dan tentunya hp yg bersangkutan juga harus mendukung AT COMMAND.
01 | Private Sub readSMS() |
02 | Dim objGsmIn As ASmsCtrl.GsmIn |
03 | Dim objConstants As ASmsCtrl.Constants |
04 | Dim cmd As cCommand |
05 |
06 | Dim keyword As String |
07 | Dim phoneNumber As String |
08 | Dim i As Integer |
09 |
10 | On Error GoTo errHandle |
11 |
12 | Screen.MousePointer = vbHourglass |
13 | cmdStop.Enabled = False |
14 | tmrReceiveSms.Enabled = False |
15 |
16 | DoEvents |
17 |
18 | Set objGsmIn = New ASmsCtrl.GsmIn |
19 | Set objConstants = New ASmsCtrl.Constants |
20 |
21 | With objGsmIn |
22 | .Activate SERIAL_NUMBER |
23 | .device = cmbPORT.Text |
24 | .DeviceSpeed = 0 |
25 |
26 | .Storage = cmbStorage.ItemData(cmbStorage.ListIndex) |
27 | .DeleteAfterReceive = True 'hapus sms jika sudah dibaca |
28 | .Receive |
29 |
30 | If .LastError = 0 Or .LastError = 23140 Then 'baca sms sukses |
31 | .GetFirstMessage |
32 |
33 | strSql = "INSERT INTO sms_in (phone_number, sms_keyword, date_in, time_in) VALUES (?, ?, ?, ?)" |
34 | Set cmd = conn.CreateCommand(strSql) |
35 | conn.BeginTrans |
36 |
37 | i = 1 |
38 | While .LastError = 0 |
39 | phoneNumber = rep0to62(.MessageSender) |
40 | keyword = .MessageData |
41 |
42 | cmd.SetText 1, phoneNumber |
43 | cmd.SetText 2, keyword |
44 | cmd.SetDate 3, Format(Now, "yyyy/MM/dd" ) |
45 | cmd.SetTime 4, Format(Now, "hh:mm:ss" ) |
46 |
47 | cmd.Execute |
48 |
49 | If i Mod 10 = 0 Then |
50 | conn.CommitTrans |
51 | DoEvents |
52 |
53 | conn.BeginTrans |
54 | End If |
55 |
56 | i = i + 1 |
57 |
58 | .GetNextMessage |
59 | Wend |
60 |
61 | conn.CommitTrans |
62 | Set cmd = Nothing |
63 |
64 | End If |
65 | End With |
66 | Set objGsmIn = Nothing |
67 |
68 | If cekSMSIn Then |
69 | Call sendSMS |
70 | Else |
71 | Call Wait(5000) |
72 | End If |
73 |
74 | cmdStop.Enabled = True |
75 | Screen.MousePointer = vbDefault |
76 |
77 | tmrReceiveSms.Enabled = True |
78 |
79 | Exit Sub |
80 | errHandle: |
81 | tmrReceiveSms.Enabled = True |
82 | End Sub |
Salah satu properties penting yang dimiliki oleh ActiveXpert SMS adalah DeleteAfterReceive, jika nilainya diset true maka sms yg masuk akan otomatis dihapus dan tentunya setelah smsnya dibaca.
1 | Private Function cekSMSIn() As Boolean |
2 | Dim ret As Integer |
3 |
4 | strSql = "SELECT COUNT(*) FROM sms_in WHERE status = 0" 'jika status = 0 berarti sms masuk belum di proses |
5 | ret = CInt (dbGetValue(strSql, 0)) |
6 | If ret > 0 Then 'ada sms yg belum diproses |
7 | cekSMSIn = True |
8 | End If |
9 | End Function |
01 | Private Sub sendSMS() |
02 | Dim rsSend As cRecordset |
03 | Dim cmd As cCommand |
04 |
05 | Dim objGsmOut As ASmsCtrl.GsmOut |
06 | Dim objConstants As ASmsCtrl.Constants |
07 |
08 | Dim phoneNumber As String |
09 | Dim keyword As String |
10 | Dim smsBalasan As String |
11 |
12 | On Error GoTo errHandle |
13 |
14 | 'cek sms yang belum di proses, ditandai dg status = 0 |
15 | strSql = "SELECT id, phone_number, sms_keyword " & _ |
16 | "FROM sms_in " & _ |
17 | "WHERE status = 0 " & _ |
18 | "ORDER BY id" |
19 | Set rsSend = conn.OpenRecordset(strSql) |
20 | If Not rsSend.EOF Then |
21 | Set objGsmOut = New ASmsCtrl.GsmOut |
22 | Set objConstants = New ASmsCtrl.Constants |
23 |
24 | objGsmOut.Activate SERIAL_NUMBER |
25 | objGsmOut.device = cmbPORT.Text |
26 | objGsmOut.DeviceSpeed = 0 |
27 | objGsmOut.RequestStatusReport = False |
28 | objGsmOut.MessageType = objConstants.asMESSAGETYPE_TEXT_MULTIPART |
29 |
30 | Do While Not rsSend.EOF |
31 | 'ganti prefix nomor hp 0 -> +62 |
32 | phoneNumber = rep0to62( "" & rsSend( "phone_number" ).Value) |
33 | keyword = rsSend( "sms_keyword" ).Value |
34 |
35 | smsBalasan = getBalasanSms(keyword, phoneNumber) |
36 |
37 | objGsmOut.MessageRecipient = phoneNumber |
38 | objGsmOut.MessageData = smsBalasan |
39 | objGsmOut.Send |
40 |
41 | If objGsmOut.LastError = 0 Or objGsmOut.LastError = 23140 Then 'sms sukses dikirim |
42 | 'update status sms -> 1 |
43 | strSql = "UPDATE sms_in SET status = ?, no_ref = ? " & _ |
44 | "WHERE id = ?" |
45 | Set cmd = conn.CreateCommand(strSql) |
46 | With cmd |
47 | .SetInt32 1, 1 |
48 | .SetInt32 2, objGsmOut.MessageReference |
49 | .SetInt32 3, rsSend( "id" ).Value |
50 |
51 | .Execute |
52 | End With |
53 | Set cmd = Nothing |
54 |
55 | 'insert ke tabel sms_out, untuk histori sms keluar |
56 | strSql = "INSERT INTO sms_out (phone_number, replay_msg, date_out, time_out) VALUES (?, ?, ?, ?)" |
57 | Set cmd = conn.CreateCommand(strSql) |
58 | With cmd |
59 | .SetText 1, phoneNumber |
60 | .SetText 2, smsBalasan |
61 | .SetDate 3, Format(Now, "yyyy/MM/dd" ) |
62 | .SetTime 4, Format(Now, "hh:mm:ss" ) |
63 |
64 | .Execute |
65 | End With |
66 | Set cmd = Nothing |
67 |
68 | Else 'sms gagal dikirim |
69 | 'update status sms -> 1 |
70 |
71 | 'ini masih bisa dikembangkan lagi dengan menambah kolom max_jumlah_kirim di tabel sms_in |
72 | 'jadi bisa diberi aturan sms yg gagal dikirim > 3x baru status smsnya diupdate menjadi 1 |
73 | strSql = "UPDATE sms_in SET status = ?, no_ref = ? " & _ |
74 | "WHERE id = ?" |
75 | Set cmd = conn.CreateCommand(strSql) |
76 | With cmd |
77 | .SetInt32 1, 1 |
78 | .SetInt32 2, objGsmOut.MessageReference |
79 | .SetInt32 3, rsSend( "id" ).Value |
80 |
81 | .Execute |
82 | End With |
83 | Set cmd = Nothing |
84 | End If |
85 |
86 | Call Wait(5000) |
87 |
88 | rsSend.MoveNext |
89 | Loop |
90 | Set objConstants = Nothing |
91 | Set objGsmOut = Nothing |
92 | End If |
93 |
94 | Exit Sub |
95 | errHandle: |
96 | Resume Next |
97 | End Sub |
1 | Public Function rep0to62( ByVal phoneNumber As String ) As String |
2 | 'fungsi untuk mengganti prefix 0 -> +62 |
3 |
4 | rep0to62 = phoneNumber |
5 | If Left(phoneNumber, 1) = "0" Then rep0to62 = "+62" & Right(phoneNumber, Len(phoneNumber) - 1) |
6 | End Function |
Terakhir fungsi untuk memproses keyword sms yang masuk dan sekaligus sebagai balasan untuk sms keluar.
001 | Public Function getBalasanSms( ByVal keywordSms As String , ByVal phoneNumber As String ) As String |
002 | Dim rs As cRecordset |
003 | Dim param1 As String |
004 | Dim arrKeyword() As String |
005 |
006 | Dim prefix As String |
007 | Dim nilai As String |
008 | Dim nama As String |
009 |
010 | Dim tha As String |
011 | Dim semester As String |
012 |
013 | If Len(keywordSms) > 0 Then |
014 | If InStr(1, keywordSms, "#" ) > 0 Then 'karakter # -> separator keyword |
015 | arrKeyword = Split(keywordSms, "#" ) |
016 | If Not (Len(arrKeyword(0)) > 0) Then |
017 | getBalasanSms = "Keyword sms salah" |
018 | Exit Function |
019 |
020 | Else |
021 | 'do nothing |
022 | End If |
023 |
024 | Else |
025 | ReDim arrKeyword(0) |
026 | arrKeyword(0) = keywordSms |
027 | End If |
028 |
029 | Else |
030 | getBalasanSms = "Keyword sms salah" |
031 | Exit Function |
032 | End If |
033 |
034 | prefix = arrKeyword(0) |
035 | prefix = UCase$(prefix) |
036 |
037 | If UBound(arrKeyword) > 0 Then param1 = arrKeyword(1) 'untuk contoh disini param1 bernilai nomor induk siswa |
038 |
039 | 'untuk pengembangan lebih lanjut tahun ajaran dan semester dibuat settingan tersendiri |
040 | tha = "2009/2010" |
041 | semester = 2 |
042 |
043 | Select Case prefix |
044 | Case "TGS" |
045 | 'validasi nis siswa |
046 | If Not isValidNIS(param1) Then getBalasanSms = Replace(NIS_SALAH, "<nis>" , param1): Exit Function |
047 |
048 | 'validasi no hp siswa |
049 | 'nama sekolah sebaiknya disimpan didalam variabel |
050 | If Not isValidHPSiswa(param1, phoneNumber) Then |
051 | getBalasanSms = Replace(HP_UNREG, "<nama_sekolah>" , "SMA Negeri Yogyakarta" ) |
052 | getBalasanSms = Replace(getBalasanSms, "<no_hp>" , phoneNumber): Exit Function |
053 | End If |
054 |
055 | strSql = "SELECT UPPER(nama) FROM siswa WHERE nis = '" & param1 & "'" |
056 | nama = CStr (dbGetValue(strSql, "" )) |
057 |
058 | 'mulai proses pencarian nilai |
059 | strSql = "SELECT matapelajaran_kode, nilai " & _ |
060 | "FROM nilai_tugas " & _ |
061 | "WHERE siswa_nis = '" & param1 & "' AND tahun_ajaran = '" & tha & "' AND semester = " & semester & " " & _ |
062 | "ORDER BY matapelajaran_kode" |
063 | Set rs = conn.OpenRecordset(strSql) |
064 | If Not rs.EOF Then |
065 | Do While Not rs.EOF |
066 | nilai = nilai & rs( "matapelajaran_kode" ).Value & "=" & rs( "nilai" ).Value & ", " |
067 | rs.MoveNext |
068 | Loop |
069 | End If |
070 |
071 | If Len(nilai) > 0 Then |
072 | nilai = Left(nilai, Len(nilai) - 2) |
073 | getBalasanSms = "Nilai tugas (" & nama & ") : " & nilai |
074 |
075 | Else |
076 | getBalasanSms = "Nilai tugas (" & nama & ") sedang dalam proses pendataan" |
077 | End If |
078 |
079 | Case "UH" |
080 | 'validasi nis siswa |
081 | If Not isValidNIS(param1) Then getBalasanSms = Replace(NIS_SALAH, "<nis>" , param1): Exit Function |
082 |
083 | 'validasi no hp siswa |
084 | 'nama sekolah sebaiknya disimpan didalam variabel |
085 | If Not isValidHPSiswa(param1, phoneNumber) Then |
086 | getBalasanSms = Replace(HP_UNREG, "<nama_sekolah>" , "SMA Negeri Yogyakarta" ) |
087 | getBalasanSms = Replace(getBalasanSms, "<no_hp>" , phoneNumber): Exit Function |
088 | End If |
089 |
090 | strSql = "SELECT UPPER(nama) FROM siswa WHERE nis = '" & param1 & "'" |
091 | nama = CStr (dbGetValue(strSql, "" )) |
092 |
093 | 'mulai proses pencarian nilai |
094 | strSql = "SELECT matapelajaran_kode, nilai " & _ |
095 | "FROM nilai_ulangan " & _ |
096 | "WHERE siswa_nis = '" & param1 & "' AND tahun_ajaran = '" & tha & "' AND semester = " & semester & " " & _ |
097 | "ORDER BY matapelajaran_kode" |
098 | Set rs = conn.OpenRecordset(strSql) |
099 | If Not rs.EOF Then |
100 | Do While Not rs.EOF |
101 | nilai = nilai & rs( "matapelajaran_kode" ).Value & "=" & rs( "nilai" ).Value & ", " |
102 | rs.MoveNext |
103 | Loop |
104 | End If |
105 |
106 | If Len(nilai) > 0 Then |
107 | nilai = Left(nilai, Len(nilai) - 2) |
108 | getBalasanSms = "Nilai ulangan (" & nama & ") : " & nilai |
109 |
110 | Else |
111 | getBalasanSms = "Nilai ulangan (" & nama & ") sedang dalam proses pendataan" |
112 | End If |
113 |
114 | Case Else |
115 | getBalasanSms = "Keyword sms salah" |
116 | End Select |
117 | End Function |
Langganan:
Postingan (Atom)