LAMPIRAN A FOTO ALAT · 2018. 3. 20. · 43 Cara Membuat bot 1. Cari dan add akun Telegram dengan...

15
40 LAMPIRAN A FOTO ALAT Gambar 1. Foto Alat

Transcript of LAMPIRAN A FOTO ALAT · 2018. 3. 20. · 43 Cara Membuat bot 1. Cari dan add akun Telegram dengan...

  • 40

    LAMPIRAN A

    FOTO ALAT

    Gambar 1. Foto Alat

  • 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