BAB 3
PELAKSANAAN KERJA MAGANG
3.1 Kedudukan dan Koordinasi
PT. Techno Executor Jaya (PT. TEJ) memiliki Divisi Pengembangan Produk Software yang dipimpin oleh Bpk. Ir. Slamet Abdul Rosid selaku Manajer Produk sekaligus Senior Programmer, sedangkan tanggung jawab pembimbing lapangan sekaligus penanggung jawab kegiatan magang di PT. TEJ diberikan kepada Bpk. Heru Setiawan selaku Direktur Operasional. Proyek pengembangan dan rancang bangun aplikasi ini diawasi langsung oleh Bpk. Deden Rahmawan selaku perwakilan pengawas dari PT. Telekomunikasi Indonesia, Tbk. Dalam pelaksanaan magang ini, Penulis ditugaskan bersama-sama dalam satu tim dengan Rizky Bramantyo, mahasiswa Universitas Multimedia Nusantara (UMN).
Koordinasi terkait pelaksanaan kerja proyek SMART-110 dilakukan bersama Bpk.
Slamet, sedangkan koordinasi terkait pelaksanaan operasional harian dilakukan bersama Bpk. Heru. Koordinasi dilakukan melalui aplikasi WhatsApp dan ZOOM.
Gambar 3.1 Alur Koordinasi Kerja Magang
3.2 Tugas dan Uraian Kerja Magang
Praktek kerja magang ini terbagi atas tugas kerja individual dan tugas kerja tim. Tugas individual adalah tugas yang dikerjakan secara mandiri, sedangkan tugas tim dikerjakan secara bersama dengan Rizky Bramantyo.
3.2.1 Tugas yang Dilakukan A. Tugas Individual
Tugas individual mencakup pembuatan chatbot Telegram, pembuatan beberapa fungsi web dalam bahasa pemrograman PHP, penyempurnaan sistem basis data dengan menggunakan HeidiSQL untuk keperluan chatbot Telegram, dan pembuatan desain infografis untuk keperluan proyek SMART-110.
B. Tugas Kelompok
Tugas kelompok mencakup pengembangan tampilan dashboard untuk administrator, pembuatan beberapa function tambahan, analisis kebutuhan pengguna dan perancangan, serta perancangan sistem basis data untuk keperluan dashboard.
Di beberapa kesempatan sela-sela pekerjaan magang, kedua anggota tim kerja magang dikerahkan untuk memantau proyek lain perusahaan. Sebagai contoh, anggota tim dikirim ke Komplek Satuan Latihan Korps Brigade Mobil (Satlat Korps
Tabel 3.1 Tabel Rincian Kegiatan Mingguan Kerja Magang
Minggu Rincian Kegiatan
1 (29 Maret-2 April 2021)
Pengarahan dan perencanaan proyek yang akan dilaksanakan, yaitu proyek SMART-110.
Masa orientasi magang di PT. TEJ:
Pengenalan server fisik, pengenalan sistem basis data yang dipakai, pengenalan aplikasi AnyDesk dan HeidiSQL, pengenalan latar belakang proyek sistem diseminasi informasi sebelum kerja magang.
2 (5-9 April 2021)
Perancangan sistem basis data untuk chatbot Telegram dan untuk fitur dashboard.
Pengenalan API DB110 yang diberikan Mabes Polri yang terdapat pada fungsi jobAPI.php.
3 (12-16 April 2021)
Melakukan perincian fitur dan kebutuhan sistem SMART-110.
Merancang sistem SMART-110 sesuai dengan kebutuhan pengguna (user requirement).
Mempelajari teknik pembuatan chatbot untuk Telegram dari berbagai literatur dan media pembelajaran.
4 (19-23 April 2021)
Mempelajari source code PHP dari proyek PT. TEJ sebelumnya (template PHP sudah disediakan oleh PT. TEJ, tinggal merubah beberapa fungsi pada source code).
Mempelajari API CC110, dengan nama file jobAPI.php.
Pembuatan logo untuk SMART-110.
5 (26-30 April 2021)
Membuat bot injection
(telegramwebhook) sebagai antarmuka pengguna sederhana untuk chatbot Telegram.
Membuat fungsi job_telegram.php dan job.php.
Tabel 3.1 Tabel Rincian Kegiatan Mingguan Kerja Magang (lanjutan)
Minggu Rincian Kegiatan
6 (3-7 Mei 2021)
Menyempurnakan fungsi dashboard index.php, loginact.php, home.php, logout.php.
Membuat fungsi dashboard laporan_list.php.
Percobaan mengirimkan pesan dari chatbot Telegram ke sistem SMART- 110.
7 (10-14 Mei 2021)
Menyempurnakan fungsi dashboard inbox.php dan outbox.php.
Percobaan mengirimkan pesan dari chatbot Telegram ke sistem SMART- 110.
8 (17-21 Mei 2021)
Menyempurnakan fungsi dashboard users.php, users_add.php,
user_groups.php, change_pass.php.
Uji coba dashboard sistem SMART- 110 sebelum ditambahkan fungsi-fungsi berkaitan dengan Telegram.
9 (24-28 Mei 2021)
Uji coba dashboard sistem SMART- 110 setelah ditambahkan fungsi-fungsi berkaitan dengan Telegram.
Uji coba chatbot Telegram mulai dari pendaftaran hingga penggunaan sistem.
10 (31 Mei-4 Juni 2021)
Pembuatan infografis Panduan Pengguna (User Manual) untuk pengguna aplikasi.
Mendokumentasi pekerjaan magang melalui penulisan laporan magang.
Kunjungan kerja ke Satlat Korps Brimob Cikeas, Jawa Barat.
3.2.2 Uraian Kerja Magang
A. Perangkat yang Digunakan
1) Sistem Operasi Microsoft Windows 10 Home, dengan versi 10.0.18363.
2) Visual Studio Code untuk membangun PHP,HeidiSQL untuk membangun database.
3) Sublime Text dan Notepad sebagai editor tambahan.
4) Microsoft Office 2016, mencakup Microsoft Word 2016, Microsoft Excel 2016, dan Microsoft PowerPoint 2016.
Sedangkan perangkat keras yang digunakan adalah sebagai berikut.
1) Laptop Lenovo Legion Y545, dengan prosesor Intel® Core™ i7-9750H, instalasi RAM 16GB, dan GPU NVIDIA GeForce GTX 1660 Ti.
2) Gawai iPhone 8 Plus, dengan chipset Apple A11 Bionic, instalasi RAM 3 GB, memori internal 256 GB.
3) Gawai Xiaomi POCO X3 Pro, dengan chipset Qualcomm Snapdragon 860 Octa-core, instalasi RAM 6 GB, memori internal 256 GB.
4) Server fisik milik PT. Techno Executor Jaya.
B. Kebutuhan Pengguna (User Requirements)
1) SMART-110 diharapkan memiliki chatbot Telegram yang berfungsi untuk melakukan diseminasi informasi dengan cara penyiaran massal (broadcasting). SMART-110 juga diharapkan dapat menerima pesan dari user dalam bentuk teks, foto, video ataupun dokumen.
2) Pesan broadcast dari chatbot harus disesuaikan menurut template yang diberikan pada Gambar 3.1.
Gambar 3.2 Template Pesan Div TIK Mabes Polri
3) SMART-110 diharapkan memiliki website khusus yang dapat diakses oleh administrator. Di dalam website harus tercantum informasi detail terkait laporan pengaduan dan pesan yang masuk dari user Telegram, seperti:
Jumlah total laporan pengaduan, nomor, jenis kategori, tabel keterangan laporan pengaduan, nama dan daftar Polda dan Polres yang menerima
C. Perancangan Diagram Use Case
Diagram use case digunakan untuk memetakan interaksi dan relasi pengguna dengan sistem SMART-110. Diagram use case SMART-110 adalah sebagai berikut.
Gambar 3.3 Use Case Diagram SMART-110
D. Perancangan Flowchart
Perancangan Flowchart dilakukan untuk menganalisa kebutuhan pengguna. Dalam proyek ini, perancangan flowchart dibagi menjadi beberapa bagian sebagai berikut.
1) Flowchart Chatbot
Flowchart chatbot adalah flowchart yang dirancang untuk mendapatkan alur logika untuk chatbot, mulai dari chatbot diaktifkan hingga selesai digunakan.
Gambar 3.4 Flowchart Chatbot Telegram
Gambar 3.5 Flowchart Chatbot Menu CARISATKER
Gambar 3.6 Flowchart Chatbot Menu DAFTAR
Gambar 3.7 Flowchart Menu CEKSTATUS
2) Flowchart Administrator
Flowchart administrator dirancang untuk mengetahui alur pemakaian sistem SMART-110 untuk administrator. Flowchart dirancang berdasarkan user requirements yang diberikan.
a) Fitur Login
Gambar 3.8 Flowchart Fitur Login b) Fitur Home, Laporan, Pesan Masuk dan Pesan Keluar
c) Fitur User Aplikasi
Gambar 3.10 Flowchart Fitur User Aplikasi d) Fitur Tambah User
Gambar 3.11 Flowchart Fitur Tambah User
E. Perancangan Sistem Basis Data
Pada proyek kerja magang ini, seluruh data laporan pengaduan masyarakat diambil dari sistem basis data milik Mabes Polri. Penarikan data laporan ini dilakukan dengan menggunakan API CC110. Setelah ditarik dari API, data kemudian dimasukkan ke dalam database milik PT. TEJ.
Database PT. TEJ hanya digunakan untuk menyimpan data-data untuk diteruskan ke fungsi PHP. Query untuk pengambilan data dari database ditaruh di setiap fungsi PHP. Adapun tabel database milik PT. TEJ adalah sebagai berikut.
1) Tabel counter_grabdata, berfungsi untuk menyimpan data jumlah laporan yang masuk setiap harinya. Jumlah laporan yang masuk pada hari tersebut ditambahkan dengan jumlah yang masuk pada hari kemarin, kemudian ditotalkan dan dibuatkan iterasi per hari.
Tabel 3.2 Data Tabel counter_grabdata
Tipe Data Variabel Keterangan Size
INT id_counter Primary key dari tabel
counter_grabdata. 11
INT total_data Total data yang ditarik dari
API CC110. 255
INT last_iterasi Menentukan iterasi terakhir
dari jumlah penarikan data. 255 DATETIME tanggal Tanggal penarikan data. DATE
2) Tabel data_telegram, berfungsi untuk menyimpan detail user yang melakukan pendaftaran melalui aplikasi Telegram.
Tabel 3.3 Data Tabel data_telegram
Tipe Data Variabel Keterangan Size
INT usertelid
Primary key dari tabel data_telegram, sebagai penomoran.
11 VARCHAR username Menampung ID pengguna
Telegram. 100
VARCHAR nama
Gabungan dari firstname dan lastname dari pengguna Telegram.
100
VARCHAR chat_id
Menampung ID ruang chat antara chatbot dengan pengguna Telegram.
150
VARCHAR no_hp
Menampung nomor telepon yang dimasukkan pengguna saat registrasi chatbot.
11
VARCHAR satwil
Menampung satuan wilayah yang dimasukkan pengguna saat registrasi chatbot.
50 INT status Status keaktifan pengguna
layanan. 11
DATETIME insert_date Tanggal saat pengguna
melakukan registrasi. DATE
3) Tabel inbox_telegram, berfungsi untuk menyimpan pesan yang dikirimkan user ke chatbot Telegram.
Tabel 3.4 Data Tabel inbox_telegram
Tipe Data Variabel Keterangan Size
INT usertelid Primary key dari tabel inbox_
telegram, sebagai penomoran. 11 VARCHAR chat_id
Menampung ID ruang chat antara chatbot dengan pengguna Telegram.
50
VARCHAR no_hp
Tipe konten yang dikirim oleh user ke chatbot, dapat berupa teks, foto, video, ataupun dokumen.
50
Tabel 3.4 Data Tabel inbox_telegram (lanjutan)
Tipe Data Variabel Keterangan Size
VARCHAR satwil
Alamat penyimpanan di server untuk setiap konten yang dikirim oleh user.
TEXT INT status Isi pesan yang dikirim oleh
user. 11
DATETIME insert_date Tanggal pesan yang dikirim
oleh user. DATE
4) Tabel outbox_telegram, berfungsi untuk menyimpan pesan yang dikirimkan chatbot ke user Telegram.
Tabel 3.5 Data Tabel outbox_telegram
Tipe Data Variabel Keterangan Size
INT id
Primary key dari tabel outbox_telegram sebagai penomoran.
10
VARCHAR chat_id
Menampung ID ruang chat antara chatbot dengan pengguna Telegram.
40
ENUM content_type
Tipe konten yang dikirim oleh user ke chatbot, dapat berupa teks, foto, video, ataupun dokumen.
‘SMS’
‘Text’
‘Image’
‘Video’
‘Contact’
‘Doc’
TEXT content_location
Alamat penyimpanan di server untuk setiap konten yang dikirim oleh user.
50 Tanggal ketika laporan
5) Tabel pengaduan, berisi data seluruh laporan pengaduan yang diambil dari API CC110.
Tabel 3.6 Data Tabel pengaduan
Tipe Data Variabel Keterangan Size
INT id_aduan
Primary key dari tabel pengaduan, sebagai penomoran.
11 VARCHAR no_pengaduan Nomor laporan pengaduan
dari API CC110. 255
VARCHAR id_telp Nomor telepon pelapor. 255
VARCHAR pelapor Nama pelapor. 255
VARCHAR kategori Jenis kategori laporan
pengaduan. 255
VARCHAR sub_kategori Jenis sub-kategori laporan
pengaduan. 255
VARCHAR detail Jenis detail kategori laporan
pengaduan. 255
VARCHAR polda Tujuan diseminasi informasi
satuan wilayah Polda terkait. 255 VARCHAR polres Tujuan diseminasi informasi
satuan wilayah Polres terkait. 255
VARCHAR status
Menunjukkan status laporan pengaduan sudah atau belum ditangani.
255 DATETIME tgl_laporan Tanggal pembuatan laporan
pengaduan. DATE
VARCHAR remark
Isi laporan pengaduan yang ditulis oleh operator Call Center 110.
4000 VARCHAR pembuat_laporan Nama operator Call Center
110 yang bertugas. 255
VARCHAR tgl_tindak_lanjut
Tanggal diseminasi informasi berhasil dilaksanakan dan laporan pengaduan ditindaklanjuti.
255
VARCHAR tgl_selesai Tanggal laporan pengaduan
dinyatakan selesai ditangani. 255 VARCHAR created_date
Tanggal data laporan pengaduan masuk ke server CC110.
255
6) Tabel laporan, berisi data laporan pengaduan yang siap dikirimkan oleh chatbot. Data dari tabel laporan diambil dari tabel pengaduan, dimana data pada tabel ini telah mengalami penyaringan, sehingga tidak ada pesan dengan kategori prank.
Tabel 3.7 Data Tabel laporan
Tipe Data Variabel Keterangan Size
INT lap_id Primary key dari tabel laporan,
digunakan sebagai penomoran. 11 VARCHAR lapno Nomor laporan pengaduan dari
API CC110. 50
VARCHAR nama_pic Nama pelapor. 200
VARCHAR pic_hp Nomor telepon pelapor. 100
VARCHAR koordinat_
lokasi
Koordinat lokasi pelapor, sejauh ini masih dalam tahap pengembangan, namun menjadi salah satu user requirement tambahan.
100
VARCHAR kategori Jenis kategori laporan
pengaduan. 100
VARCHAR sub_kategori Jenis sub-kategori laporan
pengaduan. 100
VARCHAR detail_kategori Jenis detail kategori laporan
pengaduan. 100
VARCHAR polda Tujuan diseminasi informasi
satuan wilayah Polda terkait. 200 VARCHAR polres Tujuan diseminasi informasi
satuan wilayah Polres terkait. 200 VARCHAR isi_laporan
Isi laporan pengaduan yang ditulis oleh operator Call Center 110.
4000 Menunjukkan status laporan
7) Tabel satwil, berisi data penentu satuan wilayah laporan pengaduan. Data pada tabel satwil meliputi Mabes Polri, Polda dan Polres. Data Mabes Polri dan Polda ditunjuk sebagai parents, sedangkan data Polres ditunjuk sebagai child dari Polda. Seluruh isi tabel satwil terlampir pada Daftar Lampiran Nomor 1.
8) Tabel master_kategori, berisi data penentu kategori laporan pengaduan.
Data pada tabel master_kategori meliputi Kategori, Sub-Kategori, dan Detail Kategori. Pada tabel ini, data Kategori ditunjuk sebagai parent (Level 0), kemudian data Sub-Kategori menjadi child dari Kategori (Level 1), dan Detail Kategori menjadi child dari Sub-Kategori (Level 2). Seluruh isi tabel master_kategori terlampir pada Daftar Lampiran Nomor 2.
9) Tabel master_user, berfungsi untuk menyimpan data pengguna sistem dashboard.
Tabel 3.8 Data tabel master_user
Tipe Data Variabel Keterangan Size
INT id_user Primary key dari tabel
master_user. 11
VARCHAR username Nama pengguna untuk login ke
sistem dashboard. 100
VARCHAR nama_lengkap Nama lengkap pengguna
sebagai identitas pengguna. 150 VARCHAR password Kata sandi pengguna. 100
INT kategori_user
Jenis kategori
pengelompokkan user, tipe data integer. Setiap angka merepresentasikan kategori yang terintegrasi dengan tabel master_grup.
11
VARCHAR no_hp Nomor telepon pengguna. 50
INT status Variabel penentu apakah
pengguna aktif atau tidak. 11
10) Tabel master_grup, berfungsi untuk menentukan tingkatan pengguna sistem dashboard.
Tabel 3.9 Data tabel master_grup
Tipe Data Variabel Keterangan Size
INT 11 groupid
Primary key dari tabel master_grup.
VARCHAR 150 name
Jenis kategori pengelompokkan
user.
F. Pembuatan Bot Telegram
Diperlukan chatbot sebagai antarmuka pengguna (user interface) untuk melengkapi pengembangan infrastruktur back-end. Adapun langkah- langkah pembuatan chatbot Telegram yang dipelajari adalah sebagai berikut (Tommy, 2020).
1) Membuat akun Telegram untuk membuat bot. Akun Telegram yang digunakan dalam pembuatan bot adalah akun SMART-110. Akun Telegram SMART-110 dibuat dengan menggunakan gawai yang telah disediakan oleh PT. TEJ. Akun Telegram SMART-110 diregistrasi dengan menggunakan nomor telepon yang telah diberikan oleh Mabes Polri.
2) Setelah akun SMART-110 terbentuk, cari akun BotFather pada kolom pencarian. Akun BotFather yang asli ditandai dengan tanda centang
Gambar 3.12 Tampilan Akun BotFather pada Aplikasi Telegram 3) Setelah tombol START ditekan, BotFather akan menampilkan beberapa
command yang tersedia untuk dijalankan. Untuk membuat bot baru, ketik command “/newbot”.
Gambar 3.13 Tampilan Command pada Aplikasi Telegram
4) Setelah command “/newbot” dijalankan, ikuti instruksi selanjutnya untuk memberi nama bot dan memberi username untuk bot. Jika username tidak tersedia karena sudah digunakan oleh pihak lain, ganti username dengan kata yang unik. Setelah pemberian nama dan username selesai, maka bot sudah terbentuk.
Gambar 3.14 Tampilan Setelah Command “/newbot” Dijalankan 5) Setelah bot terbentuk, Telegram akan memberikan tautan untuk mengakses
bot yang telah dibentuk serta token untuk mengakses API Telegram. Token ini nantinya akan digunakan untuk membuat bot injection yang berisi logika dengan menggunakan bahasa pemrograman PHP.
Gambar 3.15 Tampilan Token yang Diberikan Telegram
6) Logika untuk bot yang ditulis dalam bahasa pemrograman PHP disimpan di server fisik PT. TEJ, kemudian proses webhook dilakukan oleh Bpk. Slamet selaku kepala proyek. Logika bot berisi antarmuka pengguna berupa empat fitur menu utama, yaitu fitur DAFTAR, fitur CARISATKER, fitur CEKSTATUS, fitur HELP, dan fitur mengirim pesan. Entitas pengguna pada kerja magang ini adalah petugas Polisi di lapangan yang menerima diseminasi informasi. Sekilas potongan kode dari logika yang ditulis dapat dilihat pada Gambar 3.16.
Gambar 3.16 Potongan Kode dari Logika Bot
G. Implementasi
1) Tampilan halaman Login
Gambar 3.17 Tampilan Halaman Login
2) Tampilan halaman Home
Gambar 3.18 Tampilan Halaman Home
3) Tampilan halaman Laporan
Gambar 3.19 Tampilan Halaman Laporan 4) Tampilan halaman Pesan Masuk
5) Tampilan halaman Pesan Keluar
Gambar 3.21 Tampilan Halaman Pesan Keluar 6) Tampilan halaman User Aplikasi
Gambar 3.22 Tampilan Halaman User Aplikasi
7) Tampilan halaman Tambah User
Gambar 3.23 Tampilan Halaman Tambah User
Berikut ini adalah hasil implementasi chatbot Telegram yang ditunjukkan melalui sistem operasi Android.
1) Pesan Selamat Datang ketika chatbot diaktifkan.
Gambar 3.24 Tampilan Pesan Instruksi pada Chatbot
2) Fitur CARISATKER untuk mencari satuan kerja.
3) Fitur DAFTAR untuk mendaftarkan diri sebagai penerima.
Gambar 3.26 Fitur DAFTAR pada Chatbot
4) Fitur HELP pada chatbot Telegram untuk menerima bantuan.
5) Fitur CEKSTATUS pada chatbot Telegram, untuk memeriksa satuan wilayah yang didaftarkan oleh user.
Gambar 3.28 Fitur CEKSTATUS pada Chatbot
3.2.3 Kendala yang Ditemukan Saat Kerja Magang
Terdapat beberapa kendala yang dihadapi saat kerja magang berlangsung.
1) Melanjutkan proyek yang sudah ada, sehingga terdapat kesulitan dalam memahami alur logika dan variabelnya. Alur logika dan variabel pada proyek sebelumnya harus dimengerti agar proses pengembangan dan penyempurnaan lebih baik.
2) Kerja magang dilakukan ketika pandemi COVID-19 berlangsung, sehingga terdapat tantangan dan kendala dalam membangun koordinasi antar tim dan koordinasi dengan pembimbing lapangan.
3) Sulit membuat chatbot Telegram, terlebih ketika menambahkan fitur-fitur chatbot dengan PHP dikarenakan baru pertama kali mencoba.
3.2.4 Solusi Atas Kendala yang Ditemukan
Ditemukan solusi untuk beberapa kendala yang dihadapi saat kerja magang berlangsung.
1) Meminta bantuan Senior Programmer untuk menjelaskan alur logika dan variabel pada proyek sebelumnya, ketika menambahkan beberapa alur logika dan variabel baru juga mendapatkan bimbingan.
2) Menggunakan aplikasi ZOOM dan TeamViewer untuk meningkatkan koordinasi antar tim.