Merekam dan Mengulangi Kerja Tetikus dan Keyboard dengan ATBSWP

Salah satu tugas tenaga tata usaha (TU) atau operator madrasah (OPM) adalah memasukkan data kesiswaan ke beberapa aplikasi seperti EMIS dan SIMPATIKA. Proses setor data kadang dapat dilakukan secara massal dengan cara mengunggah file. Akan tidak jarang OPM harus memasukkan beberapa data rinci ke dalam beberapa kolom yang disediakan aplikasi. Tidak jarang OPM harus salin-tempel (copy-paste) nama, tempat lahir, tanggal lahir, nama bapak, pekerjaan bapak, nama ibu, pekerjaan ibu, nama wali, pekerjaan wali, pendidikan ibu, pendidikan bapak, pendidikan wali, penghasilan wali, NISN, NIK, Nomor Induk, dan lain sebagainya. Tugas semacam ini tentu butuh ketelatenan dan kesabaran.

Beberapa hari yang lalu, kami melihat OPM MTs NU ITB, pak Huluk memanfaatkan aplikasi ‘robot’ untuk memperingan tugas salin-tempel data. Saya tidak begitu ingat nama aplikasinya. Cara kerja aplikasi ‘robot’ tersebut adalah sebagai mouse and keyboard recorder. Jadi, aplikasi ‘robot’ tersebut merekam kerja tetikus dan keyboard dan dapat mengulangnya berkali-kali.

Karena penasaran, saya pun googling aplikasi serupa. Salah satu hasilnya adalah Atbswp. Keterangan tentang Atbswp dapat kita baca di https://github.com/RMPR/atbswp. Aplikasi ini dapat digunakan untuk meng-otomatisasi pekerjaan yang membosankan seperti salin-tempel-klik-enter secara berulang-ulang.

Aplikasi ini dapat dipasang di berbagai sistem operasi, termasuk Ubuntu dan Windows. Pada sistem operasi Ubuntu, saya mengunduh dan memasang Atbswp dengan mengikuti pentunjuk di Github ;

sudo apt install git python3-dev python3-tk python3-setuptools python3-wheel python3-pip python3-wxgtk4.0
git clone https://github.com/RMPR/atbswp.git && cd atbswp
python3 -m pip install pyautogui pynput --user
python3 atbswp/atbswp.py

Saya sudah mencobanya untuk salin-tempel tautan buku-buku digital ke Moodle dan salin-tempel-simpan data daftar kehadiran siswa menjadi berkas/file csv sejumlah hari untuk diunggah di attendace Moodle. Sebagai pemakai pemula, saya perlu beberapa kali mencoba-coba sehingga dapat menggunakannya. Alhamdulillah seratusan tautan buku sudah tertata di mtsitb.moodlecloud.com.

Aplikasi Atbwsp terdiri dari 7 tombol perintah;

  1. Tombol paling kiri (ikon kertas dengan tanda panah) berfungsi untuk memilih file/berkas .py yang akan dijalankan / load a cupture file.
  2. Ikon disket berfungsi untuk menyimpan hasil rekaman / save capture.
  3. ikon kamera berfungsi untuk merekam kerja tetikus dan papan tik / record capture.
  4. Ikon play berfungsi untuk menjalankan hasil rekaman / play capture
  5. Ikon tanda panah ke bawah dengan tulisan exe berfungsi untuk membuat berkas .exe dari hasil rekaman.
  6. Ikon roda bergerigi berfungsi untuk membuka menu pengaturan; infinite playback (mengulang terus-menerus), set repeat count (mengatur jumlah pengulangan), recording hotkey (mengatur tombol keyboard untuk merekam), playback hotkey (mengatur tombol keyboard untuk memutar rekaman), Always on top (mengatur tampilan aplikasi atbwsp agar selalu di atas (tidak tertutup jendela aplikasi yang lain), language (mengatur bahasa yang digunakan). Adapun menu about akan menampilkan keterangan singkat, kredit dan lisensi aplikasi.
  7. Ikon tanda tanya berfungsi untuk menonton video demo (help).

Untuk hasil yang lebih bagus, kita dapat mengubah file/berkas .py yang merupakan hasil rekaman atbsw dengan pengolah kata seperti Gedit. Kita dapat menambahkan atau mengurangi sleep time (waktu jeda antara perintah), menghilangkan bagian-bagian yang tidak perlu misalnya proses pergerakan kursor tetikus. Berikut contoh berkas .py hasil rekaman atbsw yang saya gunakan untuk salin-tempel-simpan data kehadiran peserta didik.

#!/bin/env python3
#Created by atbswp v0.3.1 (https://git.sr.ht/~rmpr/atbswp)
#on 31 Aug 2021

import pyautogui
import time
pyautogui.FAILSAFE = False

time.sleep(3)
pyautogui.moveTo(638, 39)
pyautogui.mouseDown(633, 34, ‘left’)
pyautogui.mouseUp(633, 34, ‘left’)
pyautogui.moveTo(702, 75)
pyautogui.mouseDown(703, 76, ‘left’)
pyautogui.mouseUp(703, 76, ‘left’)
pyautogui.moveTo(737, 149)
pyautogui.mouseDown(739, 152, ‘left’)
pyautogui.mouseUp(739, 152, ‘left’)
pyautogui.moveTo(586, 277)
pyautogui.mouseDown(585, 258, ‘left’)
pyautogui.moveTo(567, 620)
pyautogui.mouseUp(568, 630, ‘left’)
pyautogui.moveTo(590, 631)
pyautogui.mouseDown(594, 628, ‘right’)
pyautogui.mouseUp(593, 628, ‘right’)
pyautogui.moveTo(679, 322)
pyautogui.mouseDown(679, 312, ‘left’)
pyautogui.mouseUp(679, 312, ‘left’)
pyautogui.moveTo(712, 79)
pyautogui.mouseDown(714, 76, ‘left’)
pyautogui.mouseUp(714, 76, ‘left’)
pyautogui.moveTo(725, 170)
pyautogui.mouseDown(725, 176, ‘left’)
pyautogui.mouseUp(725, 176, ‘left’)
pyautogui.moveTo(487, 273)
pyautogui.mouseDown(480, 275, ‘left’)
pyautogui.mouseUp(480, 275, ‘left’)
pyautogui.mouseDown(480, 275, ‘right’)
pyautogui.mouseUp(480, 275, ‘right’)
time.sleep(1)
pyautogui.moveTo(501, 297)
pyautogui.moveTo(522, 313)
pyautogui.moveTo(533, 334)
pyautogui.mouseDown(534, 336, ‘left’)
pyautogui.mouseUp(534, 336, ‘left’)
time.sleep(1)
pyautogui.moveTo(680, 74)
pyautogui.mouseDown(680, 74, ‘left’)
pyautogui.mouseUp(680, 74, ‘left’)
pyautogui.moveTo(736, 153)
pyautogui.mouseDown(737, 150, ‘left’)
pyautogui.mouseUp(737, 150, ‘left’)
pyautogui.moveTo(595, 231)
pyautogui.mouseDown(594, 231, ‘left’)
pyautogui.mouseUp(594, 231, ‘left’)
pyautogui.mouseDown(594, 231, ‘right’)
pyautogui.mouseUp(594, 231, ‘right’)
time.sleep(1)
pyautogui.moveTo(615, 253)
pyautogui.moveTo(633, 274)
pyautogui.mouseDown(635, 276, ‘left’)
pyautogui.mouseUp(635, 276, ‘left’)
time.sleep(1)
pyautogui.moveTo(621, 250)
pyautogui.moveTo(591, 211)
pyautogui.mouseDown(591, 216, ‘left’)
pyautogui.mouseUp(591, 216, ‘left’)
pyautogui.mouseDown(591, 216, ‘right’)
pyautogui.mouseUp(591, 216, ‘right’)

pyautogui.moveTo(650, 472)
pyautogui.mouseDown(654, 482, ‘left’)
pyautogui.mouseUp(654, 482, ‘left’)
time.sleep(1)
pyautogui.moveTo(670, 77)
pyautogui.mouseDown(690, 71, ‘left’)
pyautogui.mouseUp(690, 71, ‘left’)
pyautogui.moveTo(708, 161)
pyautogui.mouseDown(708, 174, ‘left’)
pyautogui.mouseUp(708, 174, ‘left’)
time.sleep(1)
pyautogui.moveTo(98, 75)
pyautogui.mouseDown(106, 75, ‘left’)
pyautogui.mouseUp(106, 75, ‘left’)
time.sleep(1)
pyautogui.moveTo(162, 389)
pyautogui.moveTo(163, 410)
pyautogui.mouseDown(164, 415, ‘left’)
pyautogui.mouseUp(164, 415, ‘left’)
time.sleep(1)
pyautogui.moveTo(656, 60)
pyautogui.mouseDown(656, 60, ‘left’)
pyautogui.mouseUp(656, 60, ‘left’)
pyautogui.mouseDown(656, 60, ‘right’)
pyautogui.mouseUp(656, 60, ‘right’)
time.sleep(1)
pyautogui.moveTo(697, 129)
pyautogui.mouseDown(716, 127, ‘left’)
pyautogui.mouseUp(716, 127, ‘left’)
time.sleep(1)
pyautogui.keyDown(‘enter’)
pyautogui.keyUp(‘enter’)
time.sleep(1)
pyautogui.keyDown(‘enter’)
pyautogui.keyUp(‘enter’)
time.sleep(1)

Keterangan:

time.sleep(3) berarti waktu jeda 3 detik.
pyautogui.moveTo(638, 39) berarti tetikus bergerak ke koordinat 638, 39
pyautogui.mouseDown(633, 34, ‘left’) berarti klik kiri tetikus pada koordinat 633, 34
pyautogui.mouseUp(633, 34, ‘left’) berarti melepas klik kiri tetikus pada koordinat 633, 34

pyautogui.keyDown(‘enter’) berarti menekan tombol Enter pada papan tik
pyautogui.keyUp(‘enter’) berarti selesai dari menekan tombol Enter pada papan tik

Selamat mencoba. Semoga bermanfaat.

The following two tabs change content below.
Pelayan pelajar di MTs Irsyaduth Thullab. Masih belajar menulis, salah satunya di kebonkata.blogspot.com

Faiq Aminuddin

Pelayan pelajar di MTs Irsyaduth Thullab. Masih belajar menulis, salah satunya di kebonkata.blogspot.com

Leave a Reply

Your email address will not be published. Required fields are marked *