• Tidak ada hasil yang ditemukan

Perancangan Metode Reporting Client Server berbasis Python yang Berinteraksi dengan Microsoft Excel dan VBA di PT. Sumber Alfaria Trijaya Tbk.

N/A
N/A
Protected

Academic year: 2021

Membagikan "Perancangan Metode Reporting Client Server berbasis Python yang Berinteraksi dengan Microsoft Excel dan VBA di PT. Sumber Alfaria Trijaya Tbk."

Copied!
28
0
0

Teks penuh

(1)

Perancangan Metode Reporting Client – Server berbasis

Python yang Berinteraksi dengan Microsoft Excel dan VBA

di PT. Sumber Alfaria Trijaya Tbk.

Artikel Penelitian

Peneliti:

Timoti Hesel Marnadi (672015011) Magdalena A. Ineke Pakereng, M. Kom.

Program Studi Teknik Informatika

Fakultas Teknologi Informasi

Universitas Kristen Satya Wacana

Salatiga

Desember 2018

(2)

Perancangan Metode Reporting Client – Server berbasis

Python yang Berinteraksi dengan Microsoft Excel dan VBA

di PT. Sumber Alfaria Trijaya Tbk.

Artikel Penelitian

Diajukan kepada Fakultas Teknologi Informasi

untuk memperoleh Gelar Sarjana Komputer

Peneliti:

Timoti Hesel Marnadi (672015011) Magdalena A. Ineke Pakereng, M. Kom.

Program Studi Teknik Informatika

Fakultas Teknologi Informasi

Universitas Kristen Satya Wacana

(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)

1

Perancangan Metode Reporting Client – Server berbasis

Python yang Berinteraksi dengan Microsoft Excel dan VBA

di PT. Sumber Alfaria Trijaya Tbk.

Timoti Hesel Marnadi1, Magdalena A. Ineke Pakereng2

Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Jl. Diponegoro 52-60, Salatiga 50771, Indonesia E-mail: timoti.h.m@gmail.com1, ineke.pakereng@uksw.edu2

Abstract

Reporting system is needed for companies with a large number of transactions per day. The majority of companies still use Microsoft Excel to present their reports. Microsoft Excel is still a familiar application and is considered to have complete functions, including the existence of Visual Basic Application (VBA). The use of Visual Basic Application scripts available in Microsoft Excel to connect directly to the database is considered insecure, so at PT. Sumber Alfaria Trijaya, Tbk that should not be done. Meanwhile, web applications as reporting systems have limitations in accessing special functions in Microsoft Excel, such as macros. Often, programmers need a long time to write a single report script, even though almost all reports have the same structure and process. A new method for making reporting systems is needed to improve efficiency, security and to get full access to Microsoft Excel.

Keywords : Reporting System, Python Tkinter, Common Gateway Interface

Abstrak

Sistem reporting sangat dibutuhkan bagi perusahaan dengan jumlah transaksi yang besar per harinya. Mayoritas perusahaan masih menggunakan Microsoft Excel untuk menyajikan report mereka. Microsoft Excel masih menjadi aplikasi yang familiar dan dinilai memiliki fungsi yang lengkap, termasuk adanya VisualBasicApplication (VBA). Penggunaan script Visual Basic Application yang tersedia di Microsoft Excel untuk melakukan koneksi secara langsung ke database dinilai tidak aman, sehingga di PT. Sumber Alfaria Trijaya, Tbk dalam hal itu tidak boleh dilakukan. Sedangkan, aplikasi web sebagai sistem reporting memiliki keterbatasan dalam pengaksesan fungsi – fungsi khusus pada Microsoft Excel, seperti macro. Seringkali, programmer membutuhkan waktu yang lama untuk menulis script untuk suatu report, padahal, hampir semua report memiliki struktur dan proses yang sama. Suatu metode baru untuk membuat sistem reporting diperlukan untuk meningkatkan efisiensi, keamanan dan untuk mendapatkan akses penuh ke MicrosoftExcel.

Kata Kunci : Sistem Reporting, Python Tkinter, Common Gateway Interface

1 Mahasiswa Program Studi Teknik Informatika, Fakultas Teknologi Informasi, Universitas Kristen Satya Wacana Salatiga

(12)

2 1. Latar Belakang Masalah

Microsoft Excel masih menjadi aplikasi spreadsheet standar yang digunakan di mayoritas perusahaan dan digunakan untuk berbagai macam keperluan, mulai dari analisa, reporting, modelling, dsb. Menurut survei yang dilakukan oleh bi-survey.com, didapati bahwa sekitar 26% karyawan di perusahaan masih menggunakan Microsoft Excel, sedangkan rata - rata pengguna aplikasi sejenis lainnya hanya 17%. Menurut sumber yang sama, sekitar 88% penggunaan Microsoft Excel adalah untuk membuat laporan standar atau laporan perusahaan.

Fleksibilitasnya dalam query, mempersiapkan dan memvisualisasikan data

menjadi alasan mengapa Microsoft Excel sering digunakan untuk membuat laporan perusahaan [1].

Microsoft Excel memiliki bahasa pemrograman Visual Basic Application (VBA) yang bisa diakses melalui tab Developer. Fungsi yang dihasilkan dari script VBA biasa disebut macro. VBA ini dapat menambahkan kemampuan Excel untuk melakukan otomatisasi di dalam Excel dan juga menambahkan fungsi-fungsi yang dapat didefinisikan oleh pengguna (user-defined functions/UDF) untuk digunakan di dalam worksheet. Sistem ini dibuat karena di divisi IT PT. Sumber Alfaria Trijaya, Tbk., koneksi ke database untuk menarik data menggunakan script VBA tidak dianjurkan karena masalah keamanan, karena script dan query dapat terlihat dari sisi client. Maka dari itu, perlu adanya aplikasi di sisi client sebagai penengah, berupa graphical user interface (GUI) yang bertugas mengirim dan menerima parameter query, serta berinteraksi dengan worksheet dan VBA di Microsoft Excel.

Bahasa pemrograman Python digunakan untuk membuat script GUI sesuai dengan tugas – tugas yang dibutuhkan. Hal ini didasari pada banyak dan tersedianya modul – modul yang mendukung tugas – tugas tersebut serta sintaks yang sederhana. Modul - modul seperti Tkinter dapat digunakan untuk membuat GUI dengan desain native desktop, xlsxwriter untuk berinteraksi dengan spreadsheet, win32com untuk berinteraksi dengan VBA di Excel, urllib untuk mengirim HTTP request ke server.

Selain itu, dalam sistem ini, dibutuhkan webservice pada sisi server yang bertugas melakukan cek id session, user login, menerjemahkan setiap request dari sisi client, menanggapi request, mengirimkan response, melakukan koneksi ke database dan fungsi – fungsi lainnya.

Sistem reporting ini bermanfaat bagi user dan developer dalam membuat dan menyajikan reporting perusahaan. Manfaat –manfaat yang akan didapatkan, antara lain: mempersingkat proses development pada menu report, menggantikan fungsi aplikasi web yang memiliki celah dimana url dan parameter dapat terlihat pada browser di sisi client serta bisa dilakukan inspect element pada webpage, merancang metode baru untuk memperbarui/versioning aplikasi dari sisi server

dengan hanya mengganti file DSL, dan merancang GUI yang memiliki hak akses

penuh ke aplikasi Microsoft Excel.

Sistem reporting ini dirancang khusus untuk memenuhi kebutuhan khusus untuk kepentingan internal di Head Office PT. Sumber Alfaria Trijaya, Tbk.

(13)

3

Permasalahan - permasalahan di atas menimbulkan kebutuhan akan suatu metode reporting client - server berbasis Python yang dapat berinteraksi dengan spreadsheet dan VBA di Microsoft Excel dengan tujuan menciptakan suatu framework untuk reporting internal perusahaan yang aman, fleksibel dan mudah diaplikasikan.

2. Tinjauan Pustaka

Sistem reporting dengan metode ini baru pertama kali dibuat dan belum pernah ada sistem yang dibuat dengan metode yang sama. Namun, beberapa penelitian ditinjau sebagai referensi untuk penelitian ini. Penelitian terdahulu dengan judul “Perancangan Aplikasi Pengolahan Report untuk Sales Marketing Berbasis Web dengan Penerapan Google Maps API (Studi Kasus: PT. Gunung Jati)”. Tujuan dari penelitian ini yaitu merancang sebuah aplikasi berbasis web untuk memproses data berupa informasi pekerja, barang-barang yang dijual, dan informasi distribusi sales pada cabang di PT. Gunung Jati dan memiliki output dalam bentuk file Microsoft Excel [2].

Penelitian lain yang berkaitan yaitu “Program Aplikasi Perhitungan Premi Asuransi Jiwa dengan Macro dan Excel Visual Basic for Application (VBA)”. Tujuan dari penelitian ini yaitu membuat program yang digunakan sebagai alat bantu perhitungan premi asuransi jiwa, dengan syarat hasil perhitungan program aplikasi dibandingkan dengan perhitungan manual tidak lebih dari Rp 1 [3].

Penelitian terdahulu yang dikaji yaitu penelitian yang berjudul “Perancangan Aplikasi Pengolahan Data Report Penjualan”. Tujuan penelitian ini yaitu melakukan studi untuk menganalisa sistem informasi akuntansi di Agen Toko Wulan Jaya untuk meningkatkan mutu dan kualitas sistem [4].

Sistem yang dibangun pada penelitian yang dilakukan sebelumnya memiliki output berupa aplikasi berbasis web yang menggunakan bahasa pemrograman PHP dengan interaksi ke Microsoft Excel. Sistem ini hanya sebatas menulis data ke spreadsheet dan tidak memanfaatkan macro. Tujuan pembuatan aplikasi pada penelitian diatas adalah untuk satu toko, sedangkan pada penelitian ini keseluruhan sistem (client dan server) yang dibuat untuk tujuan multi-reporting, banyak report bisa dipilih dari satu user interface. Sistem yang dibuat pada penelitian kali ini berupa desktop application agar mudah berinteraksi dengan Microsoft Excel. Namun, dengan dikembangkannya configuration file nantinya user dapat membuat form di device lainnya seperti android atau web dengan hanya menulis pada satu format file. Tampilan user interface bisa disesuaikan seperti keinginan pengguna dengan lebih mudah. Pada penelitian lainnya yang dikaji, ditemukan aplikasi yang bergantung pada Microsoft Excel dan macro, tanpa memanfaatkan client GUI atau webservice di server.

Python adalah bahasa pemrograman yang berfokus pada tingkat keterbacaan

kode. Python diklaim sebagai bahasa yang menggabungkan kapabilitas,

kemampuan, dengan sintaksis kode yang sangat jelas, dan dilengkapi dengan fungsionalitas pustaka standar yang besar serta komprehensif. Python juga didukung oleh komunitas yang besar [6].

(14)

4

Common Gateway Interface atau disingkat CGI adalah suatu standar untuk berinteraksi antar halaman web. CGI mirip sebuah program komputer yang menjadi perantara antara standar HTML yang menghubungkan tampilan web dengan program lain, contohnya basis data (database). Hasil yang diperoleh dari proses pencarian dikirimkan kembali ke halaman web untuk ditampilkan dalam format HTML [7].

Redis adalah basis data NoSQL yang bersifat open source, disimpan di in-memory dan disk, dan dapat digunakan sebagai database, session database, serta cache. Redis mendukung struktur data seperti string, sets, hash, lists dan sorted sets [8].

3. Metode Perancangan

Penelitian ini dilakukan melalui lima tahapan penelitian yang dapat dilihat pada Gambar 1.

Gambar 1 Metode Penelitian

Berdasarkan Gambar 1. dapat dijelaskan bahwa proses tiap tahapan penelitian yang dilakukan adalah sebagai berikut :

1. Studi Pustaka

Tahap pertama. Studi pustaka. Pada tahap ini, peneliti melakukan studi pustaka mengenai reporting dengan memanfaatkan Microsoft

Excel, eksplorasi Visual Basic Application, eksplorasi bahasa

pemrograman Python beserta modul-modulnya, mempelajari bagaimana

HTTP request dan HTTP GET bekerja, mempelajari webservice,

(15)

5

diperoleh dari buku – buku, jurnal – jurnal pada penelitian terdahulu, dan website mengenai python programming, server-side programming dan Microsoft Excel. Peneliti juga melakukan analisis terhadap environment yang dibutuhkan dalam sistem. Output yang dihasilkan pada tahap ini adalah informasi dan ilmu yang dibutuhkan dalam perancangan sistem yang akan dibuat.

2. Perencanaan dan Perancangan Sistem

Tahap kedua. Perencanaan dan perancangan kebutuhan sistem. Peneliti melakukan perencanaan dan spesifikasi sistem yang akan dibuat dengan diagram - diagram UML ( Unified Modeling Language ). Peneliti juga akan merancang user interface sistem. Output yang dihasilkan pada tahapan ini adalah hasil perencanaan dalam bentuk Use Case Diagram, Activity Diagram, dan Class Diagram.

3. Implementasi dan Pengujian Sistem

Tahap ketiga. Implementasi hasil perencanaan dan perancangan serta pengujian sistem yang dibuat. Pada tahap ini, peneliti mengimplementasikan hasil perancangan dan perencanaan serta ilmu yang dimiliki menjadi sebuah sistem yang baik. Setelah itu, peneliti melakukan pengujian sistem yang telah dibuat dengan memperhatikan kepada perbaikan pada bug, error, keamanan dan perbaikan user interface. Output yang dihasilkan pada tahapan ini yaitu sistem reporting client - server berbasis Python yang berinteraksi dengan spreadsheet dan macro di Microsoft Excel.

4. Penarikan Kesimpulan dan Penyusunan Laporan

Tahap keempat. Penarikan kesimpulan dari penelitian dan menyusun laporan hasil penelitian. Peneliti menarik kesimpulan dari hasil penelitian yang telah dilakukan dan mendokumentasikannya dalam bentuk laporan hasil penelitian.

(16)

6

Gambar 2 Use Case Diagram Peranan User dalam Sistem

Diagram UML yang akan dibahas pada penelitian ini adalah Use Case Diagram, Activity Diagram, dan Class Diagram. Seperti yang dilihat pada Gambar 2, sistem reporting ini melibatkan dua aktor, yaitu user/pengguna pada sisi client dan admin/developer pada sisi server. User/pengguna dapat melihat list menu, memilih menu dari list, menginputkan detail menu, mengekspor data report ke Microsoft Excel dan mengakses macro. Pada sisi server, ada admin/developer yang membuatkan format file berekstensi .cfg untuk tiap tampilan menu. File .cfg ini akan dikonversi secara otomatis menjadi script Python oleh satu program yang dikaitkan ke webservice.

(17)

7

(18)

8

Perancangan Activity Diagram menunjukkan alur dari suatu aktivitas. Activity diagram pada Gambar 3 menunjukan aktivitas yang terjadi dalam proses

penarikan/ekspor data. User/pengguna melakukan login untuk mengecek

kecocokan data NIK dan PIN, serta untuk mendapatkan session id yang diciptakan oleh webservice dan disimpan di redis in–memory database. Setelah itu, user dapat melihat list menu, dan memilih satu dari beberapa menu report yang tersedia. Selanjutnya, user dapat melakukan input data yang dicari dan mengekspornya ke Microsoft Excel. Setiap aksi yang dilakukan pada GUI akan melibatkan session id, apabila user idle terlalu lama maka session id akan timeout dan user akan dikembalikan kembali ke login.

Gambar 4 Class Diagram Sistem Reporting

Class Diagram menunjukkan kelas kelas dalam suatu sistem, atribut masing – masing kelas, fungsi masing – masing kelas dan relasinya satu sama lain. Class Diagram pada Gambar 4 menunjukkan kelas kelas yang terdapat pada sistem reporting ini. Terdapat dua kelas utama yaitu client dan webservice pada server yang berkomunikasi lewat ip address dan port yang menjadi satu dalam url. Setiap client memiliki satu akun untuk login dan diwajibkan untuk melakukan login sebelum masuk ke menu utama. Setiap client dapat melakukan lebih dari 1 kali request list menu, layout menu, dan report data. Lalu untuk mengatur request yang masuk ada webservice pada sisi server. Webservice ini dapat memberi respons dari setiap request yang masuk, mengatur session id, dan mengkonversi file cfg menjadi script Python.

(19)

9 4. Hasil dan Pembahasan

Sistem ini melibatkan 3 komponen :

1. Client Side

Berupa GUI yang dirancang menggunakan Python Tkinter, berfungsi: • Menyiapkan tampilan agar user dapat melakukan fungsi login • Memilih menu report

• Menyediakan frame untuk setiap report menu

• Menentukan parameter dari report (contoh: tanggal, periode) • Mengirim parameter HTTP GET

• Menulis script VBA di module Excel dan data di worksheet Excel dan fungsi lain yang berhubungan dengan interaksi user.

2. Server Side

a. Webservice CGI yang bertugas :

• Mengidentifikasi request yang dikirim dari sisi client • Memberikan session id setiap login

• Menghapus session ketika logout dan timeout • Mengecek session id

• Mengirimkan query yang diminta ke database • Konversi configuration file menjadi script Python

• Membaca dan mengirimkan skrip yang sudah dikonversi • Mengatur permintaan client dengan memberikan response yang diminta

b. File - file cfg script menu report ( script yang akan dieksekusi di GUI client )

c. File - file cfg script macro ( script yang akan di tulis ke module VBA)

d. File - file cfg konfigurasi setiap parameter action.

e. Redis sebagai session database.

3. Database Oracle

a. Tabel Login (Username dan Password) b. Data Report (Data yang akan ditulis di Excel)

GUI di sisi client ini mirip seperti “browser” untuk setiap menu report. Pada browser, url dan parameter yang dikirim dapat terlihat, sedangkan pada GUI ini, url dan parameter yang dikirim ke server tidak terlihat. GUI ini juga memiliki hak akses secara penuh ke Microsoft Excel, sedangkan pada web hal itu tidak diperbolehkan. Session management pada web adalah otomatis, GUI ini dapat melakukan hal yang hampir serupa dengan adanya Redis di webserver. Berikut adalah GUI yang akan dikembangkan untuk Client Side:

(20)

10

1. Frame Login

Berikut adalah tampilan frame login beserta error handlingnya. Apabila tombol “Login” diklik, maka url beserta parameternya akan dikirimkan ke webservice, lalu webservice mengecek apakah username dan password sesuai

dengan data di database. Webservice akan memberikan respons berupa

keterangan True / False dan id session.

Gambar 5 Frame/Page Login beserta Error Handling-nya

2. Frame Menu Report

Setelah login berhasil, user akan dibawa pada frame ini. Pada subframe Menu List ditampilkan seluruh menu report berdasarkan nama/kode menu. Ada fungsi search yang digunakan untuk memfilter menu report di Listbox. Selain itu ada fungsi untuk menu help, refresh list menu, logout, dan preview.

(21)

11

Menu di bawah logo Alfamart adalah tampilan menu frame yang di exec/ di embed ke dalam GUI, file konfigurasinya berada di sisi server, kemudian ada modul yang menerjemahkan file tersebut menjadi script python. Apabila pilihan list menu di sebelah kiri di click, maka webservice akan mengirimkan script tampilan menu sesuai parameter yang dikirim client, berikut adalah contoh menu reportnya:

Gambar 7 Tampilan ketika Menu di Klik

Setelah menemukan report yang diinginkan, user bisa menentukan

direktori penyimpanan file Excel atau akan secara default akan diatur dengan menekan tombol Save as.

(22)

12

Apabila session sudah berakhir atau id session tidak sesuai ketika parameter session di check di webservice, maka webservice akan menghapus data

session user dari database session dan memberikan respons agar GUI

mengeluarkan warning dan mengembalikan user ke menu Login.

Gambar 9Dialog yang Keluar ketika Sesi Habis

Apabila tombol Get Data diklik, maka url beserta parameternya akan dikirimkan ke webservice. Webservice akan melakukan pengecekan session dan

melakukan akses ke database untuk mengambil data yang diminta, dan

menyiapkan script VBA macro untuk ditulis ke module Microsoft Excel. Kemudian webservice akan merespons semua itu kembali ke client. User bisa langsung membuka Microsoft Excel yang diunduh atau melihatnya nanti.

(23)

13

Apabila tombol “Yes” di-click atau file Microsoft Excel yang sudah diunduh dibuka, maka bisa dilihat hasil data dan macro sudah ada dalam sheet.

Gambar 11 File Excel dan ActiveX Button ketikaDibuka

Apabila tombol “Chart” pada sheet di-click, script module VBA pada Microsoft Excel akan dijalankan. Hasilnya adalah seperti berikut:

(24)

14

Apabila icon “Logout” di-click, GUI akan mengeluarkan konfirmasi

sebelum logout, apabila “Yes” di-click, GUI mengirimkan parameter ke

webservice untuk menghapus data session di session database.

Gambar 13Dialog yang Muncul ketika User Logout/Keluar Aplikasi

Kode Program 1 Mengirim ParameterData ke Webservice pada GUI

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 def sendparam(self): self.xl.Visible = False self.sheet_name = self.Entry_sheet.get() start = dt.now() if self.file_path=="": self.file_path=os.getcwd()+"/%s.xlsx"%self.currentmenu last_index = self.file_path.split('/') self.file_name = last_index[-1] if self.sheet_name=="": self.sheet_name="Data" parameters= ast.literal_eval(self.execstring[1]) newparam = {'sessionid':SESSION_ID}

for key,value in parameters.iteritems(): if key not in ['table','column','action']: exec('%s=%s'%("newvalue",value)) newparam.update({key:newvalue}) else: newparam.update({key:value}) menu_params=urllib.urlencode(newparam) req = urllib2.Request(url%menu_params) print_request(url%menu_params) response = urllib2.urlopen(req,cafile=certifi.where()) the_page = response.read() if the_page=="relog": self.session_timed_out() result = ast.literal_eval(the_page) self.workbook = xlsxwriter.Workbook(self.file_path) self.worksheet = self.workbook.add_worksheet(self.sheet_name) data=[result[1][0]]

for index_row, data_row, in enumerate(result[1][1]): datarow = list(data_row)

data.append(datarow)

for index_row, data_row, in enumerate(data): for index_col, data_col in enumerate(data_row): self.worksheet.write(index_row, index_col, data_col) self.workbook.close()

end = dt.now()

(25)

15 42 43 44 45 46 47 48 49

if tkMessageBox.askyesno("Import Successful", "Retrieving data from server takes "+str(end-start)+" s. \n\nDo you want to open the Excel now?"):

self.generate_macro(self.currentmenu) else:

tkMessageBox.showinfo("File Info", "Your Excel named %s is in %s"%(self.file_name,self.file_path))

}

Kode program di atas adalah fungsi pada aplikasi sisi client untuk melakukan pengambilan data dan macro dari server. Request yang dikirim dari client GUI memiliki parameter berupa session id, kode report, dan parameter yang diperlukan. Kode pada baris 21 sampai 25 berfungsi melakukan request dan menampilkan hasil request url HTTPS. Data dan script macro kemudian ditambahkan ke Microsoft Excel file.

Kode Program 2 Contoh file Konfigurasi 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 reportparam = "" Header = ""

text = TES06-Data Sales Datepicker = "" name = Date labeltext = DATE width = 70 height = 5 position = 1 Button = "" name = GetData text = Download command = sendparam position = 2 width = 45 height = 5 commands = "" sendparam = "" action = select table = DEV_SCRIPT_TAB column = * dates = Datepicker>>Date

Kode di atas merupakan contoh bahasa konfigurasi yang dibuat untuk mengerjakan suatu pekerjaan yang spesifik. Bahasa seperti ini biasa juga disebut DSL (Domain Specific Language). Pada kasus sistem reporting ini, bahasa konfigurasi dibuat agar developer tidak perlu menulis script panjang untuk membuat suatu report. Widget, konfigurasi database, query, dan parameter dibuat dalam satu struktur sederhana seperti kode diatas. Indentasi digunakan sebagai pemisah antar perintah. Satu program telah dibuat untuk mengkonversi bahasa konfigurasi ini menjadi script Python. File ini kemudian akan dibaca oleh webservice sebagai script Python dan dikirimkan ke sisi client.

(26)

16

Kode Program 3 Konversi file konfigurasi menjadi Dictionary

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 for c in data : j+=1 a=self.conf_file_extract_line(c) if a[0] == 1 : if listKey.count(str(a[0]))==0 : listKey.append(a[1]) k+=1 elif a[0] == 2 : keyB = a[1] # dictData1[keyB] = [] elif a[0] == 3 : keyC = a[1]

if '[' in a[2] and ']' in a[2] : textA = str(a[2]) import ast dictData2[keyC] = ast.literal_eval(textA) else: dictData2[keyC] = str(a[2]) else : stringGet = dictData2.get(keyC,"") if stringGet != "" : stringGet += str(a[3]) dictData2[keyC] = stringGet try : nextData = self.conf_file_extract_line(data[j]) except : nextData = (100,"","")

if nextData[0] == 2 and dictData2 != {} : dictData1[keyB] = dictData2.copy() dictData2 = {}

listData.append(dictData1) dictData1 = {}

elif nextData[0] == 1 and a[0] == 3 : dictData1[keyB] = dictData2.copy() dictData2 = {} listData.append(dictData1) dictData1 = {} elif j == len(data) : dictData1[keyB] = dictData2.copy() dictData2 = {} listData.append(dictData1) dictData1 = {}

if nextData[0] == 1 and listData != [] : dictData[listKey[k-1]] = listData listData = [] elif j == len(data) : dictData[listKey[k-1]] = listData listData = [] return dictData

Kode di atas merupakan fungsi untuk mengubah configuration file menjadi bentuk dictionary untuk kemudian diubah kembali menjadi script Python. Pengujian sistem dilakukan pada sistem reporting client – server ini dengan User Acceptance Test. UAT adalah pengujian yang bertujuan untuk membuktikan bahwa sistem yang dibangun sesuai dengan kebutuhan pengguna dan dapat

menyelesaikan permasalahan pengguna. User Acceptance Test pada sistem

reporting client – server dilakukan terhadap staff department IT di PT. Sumber Alfaria Trijaya, Tbk. Hasil dari pengujian User Acceptance Test terdapat pada Tabel 1.

(27)

17

Tabel 1User Acceptance Test Metode Reporting

No Pertanyaan Jawaban Jumlah

Ax5 Ax4 Ax3 Ax2 Ax1

1

Apakah Metode Reporting sudah menyelesaikan permasalahan update script otomatis?

4 1 0 0 0 24

2

Apakah Metode Reporting sudah menyelesaikan permasalahan interaksi langsung antara aplikasi dan Microsoft Excel?

4 1 0 0 0 24

3

Apakah Metode Reporting sudah aman dalam hal pengiriman data dan script?

3 2 0 0 0 23

4

Apakah developer terbantu dengan adanya

configuration file?

4 1 0 0 0 24

5

Apakah Metode Reporting dibutuhkan oleh

perusahaan saat ini?

5 0 0 0 0 25

6

Apakah metode ini akan diimplementasikan ke untuk sistem di perusahaan kedepannya?

5 0 0 0 0 25

Berdasarkan Tabel 1, nilai rata-rata pada jawaban pertama adalah 4,8 maka persentasenya adalah 96%, metode reporting ini dapat menyelesaikan kebutuhan perusahaan dimana dibutuhkan tampilan GUI desktop pada sisi client yang dinamis tanpa perlu melakukan update aplikasi. Nilai rata-rata pada jawaban kedua adalah 4,8 maka persentasenya adalah 96%, metode reporting ini dapat

menyajikan data report di Microsoft Excel dengan baik, sampai dapat

menambahkan macro. Nilai rata-rata pada jawaban ketiga adalah 4,6 maka persentasenya adalah 92%, user meyakini bahwa script dan data yang dikirim dalam sistem sudah aman karena sudah menggunakan protokol HTTPS. Nilai rata-rata pada jawaban keempat adalah 4,8 maka persentasenya adalah 96%, dalam membuat menu report, developer merasa terbantu karena tidak perlu menulis script panjang untuk setiap menu report. Nilai rata-rata pada jawaban kelima adalah 5 maka persentasenya adalah 100%, user menganggap metode ini berguna bagi toko yang membutuhkan aplikasi desktop dinamis dengan sistem yang aman. Nilai rata-rata pada jawaban keenam adalah 5 maka persentasenya adalah 100%, user menganggap metode ini sangat membantu dan bisa diterapkan ke sistem di perusahaan nantinya.

(28)

18 5. Simpulan

Sistem reporting ini dibuat dengan menggunakan framework Python Tkinter sebagai Graphical User Interface (GUI) di sisi client dan Common Gateway Interface (CGI) untuk membuat webservice di sisi server. Bahasa konfigurasi pada sistem ini merupakan bahasa yang dikembangkan khusus untuk

merancang menu report. Sistem ini mampu membuat report dalam format

Microsoft Excel dengan fungsi macro (eksekusi dari script VBA) yang dikirim dari sisi server. Dengan adanya metode ini, diharapkan dapat mengatasi permasalahan dalam pengaksesan fitur macro pada report di Microsoft Excel, mencegah pengaksesan database langsung dari VBA, dan mempersingkat pembuatan menu report. Sistem ini tidak memerlukan update aplikasi di sisi client untuk tiap penambahan report. Sehingga proses pendistribusian menjadi lebih sederhana. Script dan data yang dikirim dari server ke client sudah aman karena menggunakan protocol HTTPS (secure HTTP).

Saran yang diberikan untuk penyempurnaan: dapat diimplementasikan pada framework GUI Python lainnya untuk mendapatkan tampilan yang lebih menarik, dan menyempurnakan struktur file konfigurasi agar bisa menangani query yang kompleks.

6. Daftar Pustaka

[1] Bi-survey. 2018. “Microsoft Excel.” [Online]. Available:

https://bisurvey.com/product/microsoft-excel. [Accessed: 19-Jul-2018]. [2] T. Adhi Wardhana, A. Iriani, and Hendry, “Perancangan Aplikasi

Pengolahan Report untuk Sales Marketing Berbasis Web dengan Penerapan Google Maps API (Studi Kasus: PT. Gunung Jati),” J. Teknol. Informasi-Aiti, vol. 9, no. 1, pp. 1–100, 2012.

[3] N. Khamdan, Z. Solichin, and W. Yucianan, “Program Aplikasi

Perhitungan Premi Asuransi Jiwa dengan Macro dan Excel Visual Basic for Application (VBA),” J. Mat., vol. 1, no. 1, pp. 108–117, 2012.

[4] A. Wahana and A. R. Riswaya, “Perancangan Aplikasi Pengolahan Data Report Penjualan,” J. Comput. Bisnis, vol. 8, no. 1, p. 25, 2014.

[5] Wikipedia, “Python (bahasa pemrograman).” [Online]. Available:

https://id.wikipedia.org/wiki/Python_(bahasa_pemrograman). [Accessed: 19-Jul-2018].

[6] Wikipedia, “Common Gateway Interface.” [Online]. Available:

https://id.wikipedia.org/wiki/Common_Gateway_Interface. [Accessed: 19-Jul-2018].

[7] Redis, “Introduction to Redis” [Online]. Available:

https://redis.io/topics/introduction [Accessed: 1-Aug-2018].

[8] https://id.wikipedia.org/wiki/Microsoft_Excel. [Accessed: 19-Jul-2018]. [9] M. Dewi, “Model Pemilihan Server Side Scripting untuk Sistem Informasi

Sekolah: Studi Komparasi ASP, JSP, PHP, Python, dan Ruby,” J. Univ. Indraprasta PGRI, vol. 1, no. 58, pp. 13–20, 2000.

Gambar

Gambar 1 Metode Penelitian
Gambar 2 Use Case Diagram Peranan User dalam Sistem
Gambar 3 Activity Diagram Ekspor Data Report dan Macro ke MS.Excel.
Gambar 4 Class Diagram Sistem Reporting
+7

Referensi

Dokumen terkait

Produksi ikan terbesar berdasarkan pengamatan di lokasi penelitian yaitu jenis ikan Teri dengan jumlah rata- rata hasil tangkapan dalam satu kali hauling pada alat tangkap purse seine

Desmond Tutu näkee kaikki ihmiset Jumalan kuvina (imago Dei), eikä halua tehdä länsimaiselle fundamentaaliteologialle ominaisempaa rajanvetoa antroposentrisen ja teosentrisen

Data historis diambil 6 tahun ke belakang tiap lokasi yang ada di kabupaten Jember dengan 6 variabel masukan yaitu Populasi Penduduk, Jumlah Rumah Tangga, Pelanggan

(3) Konseling pra tindakan sebagaimana dimaksud pada ayat (2) dilakukan dengan tujuan: [a] menjajaki kebutuhan dari perempuan yang ingin melakukan aborsi; [b] menyampaikan dan

guru sekaligus demonstrasi kinerja sistem pengapian elektronik CDI-AC pada trainer. Peserta didik mengidentifikasi gangguan pada sistem pengapian yang dibuat oleh

Beban silo yang bekerja relatif dekat dengan tepi lereng telah menyebabkan arah pergerakan tanah pada Gambar 4, bergerak dari dasar pondasi langsung menuju ke lereng bagian

Faktor utama yang menentukan kinerja suatu perusahaan adalah kualitas barang dan jasa dan untuk menjaga kualitas produk dan jasa yang dihasilkan dan sesuai dengan tuntutan

Pelaksanaan Bauran Promosi di PT.Anugrah Parahyangan Plaza adalah Iklan di radio,pemasangan Billboard di tempat-tempat yang strategis, Brosur-brosur yang disebarkan