41
LAMPIRAN B
PANDUAN PELENGKAP
Cara instal Telegram
1. Download telegram terbaru dari playstore atau sumber terpercaya lainya.
2. Instal telegram
Gambar 2. Tombol instal Telegram pada Google Playstore
3. Tap Start Messaging lalu masukan No HP dan tunggu sms dari telegram
Gambar 3. Form Nomer HP
42
4. Masukan Kode veritifikas yang didapat.
Gambar 4. Form Kode Veritifikasi
5. Lalu masukan nama anda dan tekan/tap centang. selesai
Gambar 5. Form Nama Telegram
43
Cara Membuat bot
1. Cari dan add akun Telegram dengan nama @BotFather/
2. Ketik Perintah /newbot. Masukan nama bot yang di inginkan dan username bot.
3. Setelah itu, akan di dapat token (contoh mirip seperti ini : 123456:ABC-
DEF1234ghIkl-zyx57W2v1u123ew11). Token tidak boleh disebar agar bot tidak
di ambil alih.
Gambar 6. Membuat bot dengan Bot Father
4. Sesudah itu kita bisa tambahkan bot yang dibuat kedalam daftar teman dan tekan
/start.
Cara mendapatkan chat_id telegram
1. Search dan chat bot (contoh search @testskripsibot).
2. Lalu buka https://api.telegram.org/botTOKEN/getupdates pada browser (ganti token
dengan bot token yg di dapat setelah membuat bot).
3. Maka akan keluar seperti Screen Capture di bawah.
44
Gambar 7. Balasan JSON dari getupdates
4. Catat dan simpan idnya.
Cara mendapatkan chat_id telegram alternatif (menggunakan bot lain yg tersedia)
1. Cari @get_id_bot atau @my_id_bot.
2. Klik hasil pencarian lalu klik start.
3. Maka akan langsung didapat id anda.
Gambar 8. Get Id Telegram
4. Jangan lupa search dan start chat pada bot server pengirim notif absensi untuk
mendapatkan pesan notif jika ada absensi masuk.
45
LAMPIRAN C
PROGRAM CODE
#Program Sistem Absensi Sidik jari dengan online mesasge gateway
# Form1.vb
Imports System.Data.SqlClient
Imports System.Threading.Tasks
Public Class PresensiFP
Public axCZKEM1 As New zkemkeeper.CZKEM
Public axCZKEM2 As New zkemkeeper.CZKEM
Private bIsConnected = False
Private bIsConnected2 = False
Private iMachineNumber As Integer
Private Sub AxCZKEM1_OnFinger()
lbRTShow.Items.Add("RTEvent OnFinger Has been Triggered")
End Sub
Private Sub AxCZKEM2_OnFinger()
lbRTShow.Items.Add("RTEvent OnFinger Has been Triggered")
End Sub
Private Sub AxCZKEM1_OnVerify(ByVal iUserID As Integer)
lbRTShow.Items.Add("RTEvent OnVerify Has been Triggered,Verifying...")
If iUserID <> -1 Then
'lbRTShow.Items.Add("Verified OK,the UserID is " & iUserID.ToString())
lbRTShow.Items.Add("Verified OK,the UserID is ")
Else
lbRTShow.Items.Add("Verified Failed... ")
End If
End Sub
Private Sub AxCZKEM2_OnVerify(ByVal iUserID As Integer)
lbRTShow.Items.Add("RTEvent OnVerify Has been Triggered,Verifying...")
If iUserID <> -1 Then
'lbRTShow.Items.Add("Verified OK,the UserID is " & iUserID.ToString())
lbRTShow.Items.Add("Verified OK,the UserID is ")
Else
lbRTShow.Items.Add("Verified Failed... ")
End If
End Sub
46
Private Sub AxCZKEM1_OnAttTransactionEx(ByVal sEnrollNumber As String, ByVal
iIsInValid As Integer, ByVal iAttState As Integer, ByVal iVerifyMethod As Integer, _
ByVal iYear As Integer, ByVal iMonth As Integer, ByVal iDay As
Integer, ByVal iHour As Integer, ByVal iMinute As Integer, ByVal iSecond As Integer,
ByVal iWorkCode As Integer)
lbRTShow.Items.Add("RTEvent OnAttTrasactionEx Has been Triggered,Verified OK")
lbRTShow.Items.Add("...UserID:" & sEnrollNumber)
'lbRTShow.Items.Add("...isInvalid:" & iIsInValid.ToString())
'lbRTShow.Items.Add("...attState:" & iAttState.ToString())
'lbRTShow.Items.Add("...VerifyMethod:" & iVerifyMethod.ToString())
'lbRTShow.Items.Add("...Workcode:" & iWorkCode.ToString()) 'the difference
between the event OnAttTransaction and OnAttTransactionEx
'lbRTShow.Items.Add("...Time:" & iYear.ToString() & "-" & iMonth.ToString() & "-"
& iDay.ToString() & " " & iHour.ToString() & ":" & iMinute.ToString() & ":" &
iSecond.ToString())
Dim token As String = "379830121:AAFIYSe12o8_obkkhZfT9mCF68AWYVmN-ZA"
writedb(sEnrollNumber, iYear, iMonth, iDay, iHour, iMinute, iSecond, iAttState)
Dim id As String = getidtelegram(sEnrollNumber)
kirim(id, token, iYear, iMonth, iDay, iHour, iMinute, iSecond, iAttState,
sEnrollNumber)
Tampildata2()
End Sub
Private Sub AxCZKEM2_OnAttTransactionEx(ByVal sEnrollNumber As String, ByVal
iIsInValid As Integer, ByVal iAttState As Integer, ByVal iVerifyMethod As Integer, _
ByVal iYear As Integer, ByVal iMonth As Integer, ByVal iDay As
Integer, ByVal iHour As Integer, ByVal iMinute As Integer, ByVal iSecond As Integer,
ByVal iWorkCode As Integer)
lbRTShow.Items.Add("RTEvent OnAttTrasactionEx Has been Triggered,Verified OK")
lbRTShow.Items.Add("...UserID:" & sEnrollNumber)
'lbRTShow.Items.Add("...isInvalid:" & iIsInValid.ToString())
'lbRTShow.Items.Add("...attState:" & iAttState.ToString())
'lbRTShow.Items.Add("...VerifyMethod:" & iVerifyMethod.ToString())
'lbRTShow.Items.Add("...Workcode:" & iWorkCode.ToString()) 'the difference
between the event OnAttTransaction and OnAttTransactionEx
'lbRTShow.Items.Add("...Time:" & iYear.ToString() & "-" & iMonth.ToString() & "-"
& iDay.ToString() & " " & iHour.ToString() & ":" & iMinute.ToString() & ":" &
iSecond.ToString())
'Dim idchat As String = ""
'Query3 = "select Person.[ID Telegram] from Person where [ID Person]='" &
sEnrollNumber & "'"
''Cmd.CommandText = Query3
'DA3 = New SqlDataAdapter(Query, conn)
'idchat = DA3
'TextBox5.Text = idchat
47
Dim token As String = "379830121:AAFIYSe12o8_obkkhZfT9mCF68AWYVmN-ZA"
writedb(sEnrollNumber, iYear, iMonth, iDay, iHour, iMinute, iSecond, iAttState)
Dim id As String = getidtelegram(sEnrollNumber)
kirim(id, token, iYear, iMonth, iDay, iHour, iMinute, iSecond, iAttState,
sEnrollNumber)
Tampildata2()
End Sub
Function getidtelegram(ByVal sEnrollNumber As String) As String
Query3 = "select Person.[ID Telegram] from Person where [ID Person]='" &
sEnrollNumber & "'"
Dim id As String = ""
Dim cmd As New SqlCommand(Query3, conn)
id = cmd.ExecuteScalar
Return id
End Function
Sub writedb(ByVal sEnrollNumber As String, ByVal iYear As Integer, ByVal iMonth As
Integer,
ByVal iDay As Integer, ByVal iHour As Integer, ByVal iMinute As Integer,
ByVal iSecond As Integer, ByVal iAttState As Integer)
Dim Tanggal As String = iDay.ToString() & "-" + iMonth.ToString() & "-" +
iYear.ToString() & " , " + iHour.ToString() & ":" + iMinute.ToString() & ":" +
iSecond.ToString()
Dim Status As String = ""
If iAttState = 0 Then
Status = " Masuk"
Else
Status = " Keluar"
End If
Cmd = New SqlCommand
Cmd.Connection = conn
Query = "insert into Presensi ([ID Person],[Tanggal dan Waktu],[Status Presensi])
values ('" & sEnrollNumber & "','" & Tanggal & "','" & Status & "')"
Cmd.CommandText = Query
Cmd.ExecuteNonQuery()
End Sub
Private Sub kirim(ByVal id As String, ByVal token As String,
ByVal iYear As Integer, ByVal iMonth As Integer,
ByVal iDay As Integer, ByVal iHour As Integer,
ByVal iMinute As Integer, ByVal iSecond As Integer,
48
ByVal iAttState As Integer, ByVal sEnrollNumber As String)
Dim Tanggal As String = iDay.ToString() & "-" + iMonth.ToString() & "-" +
iYear.ToString() & " , " + iHour.ToString() & ":" + iMinute.ToString() & ":" +
iSecond.ToString()
Dim Status As String = ""
If iAttState = 0 Then
Status = " Masuk"
Else
Status = " Keluar"
End If
Dim uri As String = "https://api.telegram.org/bot"
Dim pesan As String = token & "/sendmessage?chat_id=" & id & "&text=Pemberitahuan
Bahwa " & sEnrollNumber & " , " & Tanggal & " -- Telah Melakukan Presensi " & Status
uri = uri + pesan
kirimTelegram(uri)
End Sub
Private Sub kirimTelegram(ByVal uri As String)
'===========================================================
'KIRIM MESSAGE KE TELEGRAM
'
Try
Dim fr As System.Net.HttpWebRequest
Dim targetURI As New Uri(uri)
fr = DirectCast(Net.HttpWebRequest.Create(targetURI),
System.Net.HttpWebRequest)
If (fr.GetResponse().ContentLength > 0) Then
Dim str As New
System.IO.StreamReader(fr.GetResponse().GetResponseStream())
str.Close()
End If
Catch ex As System.Net.WebException
'Error in accessing the resource, handle it
End Try
End Sub
Private Sub PresensiFP_Load(sender As System.Object, e As System.EventArgs) Handles
MyBase.Load
koneksi()
49
Tampildata()
Tampildata2()
End Sub
Sub Tampildata()
DS = New DataSet
Query = "Select * from Person"
DA = New SqlDataAdapter(Query, conn)
DA.Fill(DS)
DataGridView1.DataSource = DS.Tables(0)
End Sub
Sub Tampildata2()
DS2 = New DataSet
Query2 = "Select Person.[ID Person], Person.Nama, Presensi.[Tanggal dan Waktu],
Presensi.[Status Presensi] from Person inner join Presensi on Person.[ID
Person]=Presensi.[ID Person]"
DA2 = New SqlDataAdapter(Query2, conn)
DA2.Fill(DS2)
DataGridView2.DataSource = DS2.Tables(0)
End Sub
Private Sub Add_Click(sender As System.Object, e As System.EventArgs) Handles
Add.Click
Cmd = New SqlCommand
Cmd.Connection = conn
Query = "insert into Person ([ID Person],Nama,Alamat,[ID Telegram]) values ('" &
ID_PersonTextBox.Text & "','" & NamaTextBox.Text & "','" & AlamatTextBox.Text & "','" &
ID_TelegramTextBox.Text & "')"
Cmd.CommandText = Query
Cmd.ExecuteNonQuery()
Tampildata()
ID_PersonTextBox.Text = ""
NamaTextBox.Text = ""
AlamatTextBox.Text = ""
ID_TelegramTextBox.Text = ""
MsgBox("Berhasil Disimpan")
End Sub
50
Private Sub Update_Click(sender As System.Object, e As System.EventArgs) Handles
Update.Click
Cmd = New SqlCommand
Cmd.Connection = conn
Query = "update Person set Nama='" & NamaTextBox.Text & "',Alamat='" &
AlamatTextBox.Text & "',[ID Telegram]='" & ID_TelegramTextBox.Text & "' where [ID
Person]='" & ID_PersonTextBox.Text & "'"
Cmd.CommandText = Query
Cmd.ExecuteNonQuery()
Tampildata()
ID_PersonTextBox.Text = ""
NamaTextBox.Text = ""
AlamatTextBox.Text = ""
ID_TelegramTextBox.Text = ""
MsgBox("Berhasil Diupdate")
End Sub
Private Sub DataGridView1_CellClick(ByVal sender As Object, ByVal e As
System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick
Dim i As Integer
i = DataGridView1.CurrentRow.Index
ID_PersonTextBox.Text = DataGridView1.Item(0, i).Value
NamaTextBox.Text = DataGridView1.Item(1, i).Value
AlamatTextBox.Text = DataGridView1.Item(2, i).Value
ID_TelegramTextBox.Text = DataGridView1.Item(3, i).Value
End Sub
Private Sub Delete_Click(sender As System.Object, e As System.EventArgs) Handles
Delete.Click
If MsgBox("Yakin Hapus", vbInformation + vbYesNo) = vbYes Then
Cmd = New SqlCommand
Cmd.Connection = conn
Query = "delete from Person where [ID Person]='" & ID_PersonTextBox.Text &
"'"
Cmd.CommandText = Query
Cmd.ExecuteNonQuery()
Tampildata()
ID_PersonTextBox.Text = ""
NamaTextBox.Text = ""
AlamatTextBox.Text = ""
ID_TelegramTextBox.Text = ""
MsgBox("Berhasil Hapus")
End If
51
End Sub
Private Sub btnConnect2_Click(sender As System.Object, e As System.EventArgs) Handles
btnConnect2.Click
If TextBox3.Text.Trim() = "" Or TextBox4.Text.Trim() = "" Then
MsgBox("IP and Port cannot be null", MsgBoxStyle.Exclamation, "Error")
Return
End If
Dim idwErrorCode As Integer
Cursor = Cursors.WaitCursor
If btnConnect2.Text = "Disconnect" Then
axCZKEM1.Disconnect()
RemoveHandler axCZKEM2.OnFinger, AddressOf AxCZKEM2_OnFinger
RemoveHandler axCZKEM2.OnVerify, AddressOf AxCZKEM2_OnVerify
RemoveHandler axCZKEM2.OnAttTransactionEx, AddressOf
AxCZKEM2_OnAttTransactionEx
bIsConnected2 = False
btnConnect2.Text = "Connect"
lblState2.Text = "Current State FP2 : Disconnected"
Cursor = Cursors.Default
Return
End If
bIsConnected2 = axCZKEM2.Connect_Net(TextBox3.Text.Trim(),
Convert.ToInt32(TextBox4.Text.Trim()))
If bIsConnected2 = True Then
btnConnect2.Text = "Disconnect"
btnConnect2.Refresh()
lblState2.Text = "Current State FP2 : Connected"
iMachineNumber = 2 '
If axCZKEM2.RegEvent(iMachineNumber, 65535) = True Then
AddHandler axCZKEM2.OnFinger, AddressOf AxCZKEM2_OnFinger
AddHandler axCZKEM2.OnVerify, AddressOf AxCZKEM2_OnVerify
AddHandler axCZKEM2.OnAttTransactionEx, AddressOf
AxCZKEM2_OnAttTransactionEx
End If
Else
axCZKEM2.GetLastError(idwErrorCode)
MsgBox("Unable to connect the device,ErrorCode=" & idwErrorCode,
MsgBoxStyle.Exclamation, "Error")
End If
52
Cursor = Cursors.Default
End Sub
Private Sub btnConnect1_Click(sender As System.Object, e As System.EventArgs) Handles
btnConnect1.Click
If txtIP.Text.Trim() = "" Or txtPort.Text.Trim() = "" Then
MsgBox("IP and Port cannot be null", MsgBoxStyle.Exclamation, "Error")
Return
End If
Dim idwErrorCode As Integer
Cursor = Cursors.WaitCursor
If btnConnect1.Text = "Disconnect" Then
axCZKEM1.Disconnect()
RemoveHandler axCZKEM1.OnFinger, AddressOf AxCZKEM1_OnFinger
RemoveHandler axCZKEM1.OnVerify, AddressOf AxCZKEM1_OnVerify
RemoveHandler axCZKEM1.OnAttTransactionEx, AddressOf
AxCZKEM1_OnAttTransactionEx
bIsConnected = False
btnConnect1.Text = "Connect"
lblState.Text = "Current State FP1 : Disconnected"
Cursor = Cursors.Default
Return
End If
bIsConnected = axCZKEM1.Connect_Net(txtIP.Text.Trim(),
Convert.ToInt32(txtPort.Text.Trim()))
If bIsConnected = True Then
btnConnect1.Text = "Disconnect"
btnConnect1.Refresh()
lblState.Text = "Current State FP1 : Connected"
iMachineNumber = 1 '
If axCZKEM1.RegEvent(iMachineNumber, 65535) = True Then
AddHandler axCZKEM1.OnFinger, AddressOf AxCZKEM1_OnFinger
AddHandler axCZKEM1.OnVerify, AddressOf AxCZKEM1_OnVerify
AddHandler axCZKEM1.OnAttTransactionEx, AddressOf
AxCZKEM1_OnAttTransactionEx
End If
Else
axCZKEM1.GetLastError(idwErrorCode)
MsgBox("Unable to connect the device,ErrorCode=" & idwErrorCode,
MsgBoxStyle.Exclamation, "Error")
53
End If
Cursor = Cursors.Default
End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles
Button1.Click
If TextBox1.Text.Trim() = "" Or TextBox2.Text.Trim() = "" Then
MsgBox("ID tidak boleh kosong", MsgBoxStyle.Exclamation, "Error")
Return
End If
For i As Integer = TextBox1.Text() To TextBox2.Text()
broadcast(i)
System.Threading.Thread.Sleep(200)
Next
End Sub
Sub broadcast(ByVal i As Integer)
Dim id As String = getidtelegram(i)
Dim uri As String =
"https://api.telegram.org/bot379830121:AAFIYSe12o8_obkkhZfT9mCF68AWYVmN-
ZA/sendmessage?chat_id=" & id
Dim pesan As String = "&text=" & TextBox5.Text()
uri = uri + pesan
kirimTelegram(uri)
End Sub
End Class
54
#Module1.vb
Imports System.Data.SqlClient
Module Module1
Public idchat As String
Public Query3 As String
Public DA3 As SqlDataAdapter
Public DS3 As DataSet
Public conn As SqlConnection
Public Query As String
Public DA As SqlDataAdapter
Public DS As DataSet
Public Query2 As String
Public DA2 As SqlDataAdapter
Public DS2 As DataSet
Public Cmd As SqlCommand
Sub koneksi()
conn = New SqlConnection
conn.ConnectionString = "Data
Source=.\SQLEXPRESS;AttachDbFilename=D:\Skripsi\Presensi
2\Presensi\DatabasePresensi.mdf;Integrated Security=True;User Instance=True"
'conn.Open()
Try
If conn.State = ConnectionState.Closed Then
conn.Open()
MsgBox("Koneksi berhasil")
End If
Catch ex As Exception
MsgBox("Koneksi Gagal " & Err.Description)
End Try
End Sub
End Module
Top Related