IMPLEMENTASI METODE LOAD BALANCER DAN FAILOVER UNTUK API SMS GATEWAY PADA
PT. KB FINANSIA MULTI FINANCE
SKRIPSI
Diajukan untuk memenuhi salah satu syarat kelulusan Program Sarjana
RISMAWAN JUNANDIA NIM : 15160165
Program Studi Ilmu Komputer Kampus Kota Sukabumi Fakultas Teknik dan Informatika
Universitas Bina Sarana Informatika 2020
ii
LEMBAR PERSEMBAHAN
Alhamdulillah puji syukur saya panjatkan kehadirat Allah SWT yang selalu memberikan Kesehatan dan kemudahan kepada saya dalam penulisan skripsi ini.
Skripsi saya persembahkan untuk :
1. Ayah (Nandang, S.Pd (ALM)) dan Mamah (Julaeha (ALM)) saya tercinta di surga, terimakasih sudah melahirkan dan membesarkan saya hingga menjadi seperti sekarang ini.
2. Kakak (Reni Munggarani, Resti Isnaeni, Rival Trivaldi) yang selalu memberikan semangat dan dukungan.
3. Calon Istri saya (Nenden Widiyawati) dan Keluarga yang selalu memberikan dukungan dan mengajarkan penulis merapihkan laporan skripsi ini.
4. Bapak Denny Pribadi, M.Kom. dan Bapak Saeful Bahri, M.Kom. Selaku dosen pembimbing terima kasih atas bimbingan dan ilmunya selama ini sehingga saya bisa menyelesaikan skripsi ini.
5. Sahabat-sahabat di komunitas ABS (Ayam Bakar Squad) yang sudah menghibur dikala saya merasa jenuh dalam menulis laporan skripsi.
6. Teman-teman di tim IT PT.KB FINANSIA MULTI FINANCE yang selama ini selalu saya repotkan untuk bertanya dan diajarkan mengenai metode Load Balancer.
iii
SURAT PERNYATAAN KEASLIAN SKRIPSI
Yang bertanda tangan di bawah ini:
Nama : Rismawan Junandia NIM : 15160165
Jenjang : Sarjana (S1)
Program Studi : Ilmu Komputer Kampus Kota Sukabumi Fakultas : Teknik dan Informatika
Perguruan Tinggi : Universitas Bina Sarana Informatika
Dengan ini menyatakan bahwa Skripsi yang telah saya buat dengan judul:
“Implementasi Metode Load Balancer dan Failover untuk API SMS Gateway pada PT.KB FINANSIA MULTI FINANCE”, adalah asli (orsinil) atau tidak plagiat (menjiplak) dan belum pernah diterbitkan/dipublikasikan dimanapun dan dalam bentuk apapun.
Demikianlah surat pernyataan ini saya buat dengan sebenar-benarnya tanpa ada paksaan dari pihak manapun juga. Apabila di kemudian hari ternyata saya memberikan keterangan palsu dan atau ada pihak lain yang mengklaim bahwa Skripsi yang telah saya buat adalah hasil karya milik seseorang atau badan tertentu, saya bersedia diproses baik secara pidana maupun perdata dan kelulusan saya dari Universitas Bina Sarana Informatika dicabut/dibatalkan.
Dibuat di : Sukabumi Pada tanggal : 07 Januari 2021 Yang menyatakan,
RISMAWAN JUNANDIA
iv
SURAT PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS
Yang bertanda tangan di bawah ini, saya:
Nama : Rismawan Junandia NIM : 15160165
Jenjang : Sarjana (S1)
Program Studi : Ilmu Komputer Kampus Kota Sukabumi Fakultas : Teknik dan Informatika
Perguruan Tinggi : Universitas Bina Sarana Informatika
Dengan ini menyetujui untuk memberikan ijin kepada pihak Universitas Bina Sarana Informatika, Hak Bebas Royalti Non- Eksklusif (Non-exclusive Royalti- Free Right) atas karya ilmiah kami yang berjudul: “Implementasi metode Load Balancer dan Failover untuk API SMS Gateway pada PT.KB FINANSIA MULTI FINANCE”, beserta perangkat yang diperlukan (apabila ada).
Dengan Hak Bebas Royalti Non-Eksklusif ini pihak Universitas Bina Sarana Informatika berhak menyimpan, mengalih-media atau mem-format-kan, mengelolanya dalam pangkalan data (database), mendistribusikannya dan menampilkan atau mempublikasikannya di internet atau media lain untuk kepentingan akademis tanpa perlu meminta ijin dari kami selama tetap mencantumkan nama kami sebagai penulis/pencipta karya ilmiah tersebut.
Saya bersedia untuk menanggung secara pribadi, tanpa melibatkan pihak Universitas Bina Sarana Informatika, segala bentuk tuntutan hukum yang timbul atas pelanggaran Hak Cipta dalam karya ilmiah saya ini.
Demikian pernyataan ini saya buat dengan sebenarnya.
Dibuat di : Sukabumi Pada tanggal : 07 Januari 2021 Yang menyatakan,
RISMAWAN JUNANDIA
v
PERSETUJUAN DAN PENGESAHAN SKRIPSI
Skripsi ini diajukan oleh :
Nama : Rismawan Junandia
NIM : 15160165
Jenjang : Sarjana (S1)
Program Studi : Ilmu Komputer Kampus Kota Sukabumi Fakultas : Teknik dan Informatika
Perguruan Tinggi : Universitas Bina Sarana Informatika
Judul Tugas Akhir : Implementasi metode Load Balancer dan Failover Untuk API SMS Gateway pada PT.KB FINANSIA MULTI FINANCE
Telah dipertahankan pada periode II-2020 dihadapan Penguji dan diterima sebagai bagian persyaratan yang diperlukan untuk memperoleh Sarjana Komputer (S.Kom) pada Program Sarjana Program Studi Ilmu Komputer Kampus Kota Sukabumi di Universitas Bina Sarana Informatika.
Sukabumi, 21 Januari 2021 PEMBIMBING TUGAS AKHIR
Dosen Pembimbing : Denny Pribadi, M.Kom
Asisten Pembimbing : Saeful Bahri, M.Kom
D E W A N P E N G U J I
Penguji I : ... ...
Penguji II : ... ...
vi
PANDUAN PENGGUNAAN HAK CIPTA
Skripsi sarjana yang berjudul “Implementasi Metode Load Balancer dan Failover untuk API SMS Gateway pada PT.KB FINANSIA MULTI FINANCE”
adalah hasil karya tulis asli RISMAWAN JUNANDIA dan bukan hasil terbitan sehingga peredaran karya tulis hanya berlaku dilingkungan akademik saja, serta memiliki hak cipta. Oleh karena itu, dilarang keras untuk menggandakan baik sebagian maupun seluruhnya karya tulis ini, tanpa seizin penulis.
Referensi kepustakaan diperkenankan untuk dicatat tetapi pengutipan atau peringkasan isi tulisan hanya dapat dilakukan dengan seizin penulis dan disertai ketentuan pengutipan secara ilmiah dengan menyebutkan sumbernya.
Untuk keperluan perizinan pada pemilik dapat menghubungi informasi yang tertera di bawah ini:
Nama : Rismawan Junandia
Alamat : Jl.Karamat RT2/RW3 No.2, Kelurahan Karamat, Kecamatan Gunung Puyuh, Kota Sukabumi, 43122
No. Telp / Hp : 08817243541
E-mail : [email protected]
vii
KATA PENGANTAR
Alhamdulillah, Dengan mengucapkan puji syukur kehadirat Allah SWT, yang telah melimpahkan rahmat dan karunia-Nya, sehingga pada akhirnya penulis dapat menyelesaikan tugas ini dengan baik. Skripsi pada Program Sarjana (S1) ini penulis sajikan dalam bentuk buku yang sederhana. Adapun judul Skripsi, yang penulis ambil sebagai berikut, “Implementasi Metode Load Balancer dan Failover untuk API SMS Gateway pada PT.KB FINANSIA MULTI FINANCE”.
Tujuan penulisan Skripsi pada Program Sarjana (S1) ini dibuat sebagai salah satu syarat kelulusan Sarjana Universitas Bina Sarana Informatika. Sebagai bahan penulisan diambil berdasarkan hasil penelitian (eksperimen), observasi dan beberapa sumber literatur yang mendukung penulisan ini. Penulis menyadari bahwa tanpa bimbingan dan dorongan dari semua pihak, maka penulisan Skripsi ini tidak akan berjalan lancar. Oleh karena itu pada kesempatan ini, ijinkanlah penulis menyampaikan ucapan terima kasih kepada:
1. Rektor Universitas Bina Sarana Informatika.
2. Dekan Fakultas Teknologi dan Informasi.
3. Ketua Program Studi Ilmu Komputer Kampus Kota Sukabumi Universitas Bina Sarana Informatika.
4. Bapak Denny Pribadi, M.Kom selaku Dosen Pembimbing I Skripsi.
5. Bapak Saeful Bahri, M.Kom selaku Dosen Pembimbing II Skripsi.
6. Staff / karyawan / dosen di lingkungan Kampus Kota Sukabumi Universitas Bina Sarana Informatika.
7. Bapak Chandra Setyawan selaku Product Owner E-Form PT.KB FINANSIA
MULTI FINANCE (Kreditplus
viii
8. Staff / karyawan di lingkungan Head Office PT.KB FINANSIA MULTI FINANCE (KreditPlus).
9. Orang tua tercinta yang telah memberikan dukungan moral maupun spiritual.
10. Rekan-rekan mahasiswa kelas 15.8A.28.
Serta semua pihak yang terlalu banyak untuk disebut satu persatu sehingga terwujudnya penulisan ini. Penulis menyadari bahwa penulisan Skripsi ini masih jauh sekali dari sempurna, untuk itu penulis mohon kritik dan saran yang bersifat membangun demi kesempurnaan penulisan di masa yang akan datang.
Akhir kata semoga Skripsi ini dapat berguna bagi penulis khususnya dan bagi para pembaca yang berminat pada umumnya.
Sukabumi, 07 Januari 2021 Penulis
Rismawan Junandia
ix
ABSTRAK
Rismawan Junandia (15160165), Implementasi metode Load Balancer dan Failover untuk API SMS Gateway pada PT.KB FINANSIA MULTI FINANCE.
Application Programming Interface (Antarmuka Pemrograman Aplikasi) adalah sekumpulan protokol, fungsi, dan perintah yang dapat digunakan oleh programmer saat membangun perangkat lunak. API dikembangkan untuk menyediakan layanan yang efisien, meningkatkan keandalan, ketersediaan, dan kelebihan untuk integrasi sistem. SMS Gateway merupakan jembatan bagi penyebaran informasi dengan menggunakan SMS, Sehingga kita bisa menyebarkan pesan kebanyak nomor secara otomatis dan cepat tanpa harus mengetik ratusan nomor dan pesan dari ponsel karena sumua nomor akan diambil secara otomatis dari basis data. Load balancing digunakan untuk mengurangi beban pada traffic line dan memastikan bahwa semua sumber daya yang ada dalam sistem dimanfaatkan secara optimal untuk memaksimalkan hasil. Sedangkan Failover dalam istilah computer networking adalah kemapuan sebuah sistem untuk dapat berpindah secara manual maupun otomatis jika salah satu sistem mengalami kegagalan sehingga menjadi cadangan untuk sistem yang mengalami kegagalan. Pengiriman pesan baik itu pengingat cicilan ataupun OTP (One Time Password) di PT.KB FINANSIA MULTI FINANCE masih belum tersentralisasi, dan masih ada beberapa aplikasi yang hanya menggunakan satu provider untuk pengiriman SMS nya. Sehingga pada saat tertentu, ataupun saat sedang ada program promosi, terjadi lonjakan aplikasi dan menyebabkan down nya server. Terkadang provider mengalami masalah dengan salah satu jaringan telekomunikasi, sehingga ,dibutuhkannya provider cadangan lain untuk pengiriman SMS.
Kata Kunci: Application Programming Interface (API), SMS Gateway, Load Balancer, Failover, OTP (One Time Password).
x
ABSTRACT
Rismawan Junandia (15160165), Implementation of Load Balancer and Failover methods for API SMS Gateway at PT.KB FINANSIA MULTI FINANCE.
Application Programming Interface is a set of protocols, functions, and commands that can be used by programmers when building software. API was developed to provide efficient service, increase reliability, availability and advantages for sistem integration. SMS Gateway is a bridge for the dissemination of information using SMS, so that we can spread messages to many numbers automatically and quickly without having to type hundreds of numbers and messages from cell phones because all numbers will be taken automatically from the database. Load balancing is used to reduce the load on the traffic line and ensure that all resources in the sistem are optimally utilized to maximize yield. Meanwhile, failover in terms of computer networking is the ability of a sistem to be able to move manually or automatically if one of the sistems fails so that it becomes a backup for the sistem that has failed.
Sending messages, either installment reminders or OTP (One Time Password) at PT.KB FINANSIA MULTI FINANCE is still not centralized, and there are still several applications that only use one provider for sending SMS. So that at certain times, or when there is a promotional program, applications spike and cause server downtime. Sometimes providers have problems with one of the telecommunication networks, so, they need another backup provider for sending SMS.
Key Words: Application Programming Interface (API), SMS Gateway, Load Balancer, Failover, OTP (One Time Password).
xi
DAFTAR ISI
Lembar Judul ... i
Lembar Persembahan ... ii
Lembar Pernyataan Keaslian Skripsi ... iii
Lemmbar Persetujuan Publikasi Karya Ilmiah ... iv
Lembar Persetujuan dan Pengesahan Skripsi ... v
Lembar Panduan Penggunaan Hak Cipta ... vi
Kata Pengantar ... vii
Abstrak ... ix
Daftar Isi... xi
Daftar Simbol ... xiii
Daftar Gambar ... xvi
Daftar Tabel ... xvii
Daftar Lampiran ... xviii
BAB I PENDAHULUAN ... 1
1.1. Latar Belakang ... 1
1.2. Identifikasi Masalah ... 2
1.3. Perumusan Masalah ... 3
1.4. Tujuan dan Manfaat ... 3
1.4.1. Tujuan Penulisan Skripsi ... 3
1.4.2. Manfaat Penulisan Skripsi ... 3
1.5. Metode Penelitian ... 4
1.5.1. Teknik Pengumpulan Data ... 4
1.5.2. Model Pengembangan Sistem ... 4
1.6. Ruang Lingkup ... 5
BAB II LANDSAN TEORI ... 6
2.1. Tinjauan Pustaka... 6
2.2. Penelitian Terkait ... 11
BAB III ANALISIS SISTEM BERJALAN ... 14
3.1. Tinjauan Institusi / Perusahaan ... 14
3.1.1. Sejaran Institusi / Perusahaan ... 14
3.1.2. Visi dan Misi Institusi / Perusahaan ... 15
3.1.3. Struktur Organisasi Institusi / Perusahaan ... 15
3.2. Proses Bisnis Sistem ... 18
3.3. Spesifikasi Dokumen Sistem Berjalan ... 19
BAB IV RANCANGAN SISTEM DAN PROGRAM USULAN ... 20
4.1. Analisis Kebutuhan Software ... 20
4.1.1. Tahapan Analisa ... 20
4.1.2. Use Case Diagram ... 21
4.1.3. Activity Diagram ... 23
xii
4.2. Desain ... 27
4.2.1. Basis Data ... 27
4.2.2. Arsitektur Perangkat Lunak ... 29
4.2.3. Antarmuka Pengguna ... 34
4.3. Code Generation... 37
4.4. Pengujian Sistem ... 43
4.4.1. Pengujian Black Box ... 43
4.5. Pendukung ... 45
4.5.1. Publikasi WEB ... 45
4.5.2. Spesifikasi Hardware dan Software ... 45
4.6. Spesifikasi Dokumen Sistem Usulan ... 46
4.6.1. Dokumen Masukan ... 47
4.6.2. Dokumen Keluaran ... 47
BAB V PENUTUP ... 48
5.1. Kesimpulan ... 48
5.2. Saran ... 48
DAFTAR PUSTAKA ... 50
DAFTAR RIWAYAT HIDUP ... 52
LEMBAR KONSULTASI BIMBINGAN ... 53
SURAT KETERANGAN RISET ... 55
LAMPIRAN – LAMPIRAN ... 56
xiii
DAFTAR SIMBOL
A. Simbol UML (Unifield Modeling Language) 1. Simbol Use Case Diagram
No. Simbol Nama Keterangan
1. Aktor
Menspesifikasikan himpunan peran yang pengguna mainkan ketika berintaksi dengan use case.
2. Include Menspesifikasikan bahwa use case sumber
secara sksplisit.
3. Association Suatu yang menghubungkan antara objek
satu dengan objek lainnya.
4. System
Menspesifikasikan paket yang menampilkan sistem secara terbatas.
5. Use Case
Deskripsi dari urutan aksi-aksi yang ditampilkan sistem yang menghasilkan suatu hasil yang terukur bagi suatu actor
2. Simbol Activity Diagram
No. Simbol Nama Keterangan
1. Activity
Memperlihatkan bagian masing-masing kelas antarmuka saling berintraksi.
2. Decision
Digunakan untu menggambarkan suatu keputusan atau -tindakan yang harus diambil
pada kondisi tertentu.
3. Initial Node Bagian objek dibentuk untk diawali.
4. Final Node Bagian objek dibentuk dan diakhiri.
5. Swimlane
Digunakan untuk memisahkan organisasi bisnis yang bertanggung jawab terhadap
aktivitas yang terjadi.
xiv 3. Simbol Component Diagram
NO. Simbol Nama Keterangan
1. Component Komponen sistem
2. Dependency
Ketergantungan antar komponen, arah panah mengarah pada komponen yang dipakai.
3. Package Sebuah simbol yang dipakai untuk
tempat komponen
4. Simbol Deployment Diagram
NO. Simbol Nama Keterangan
1. Node
Menggambarkan bagian-bagian hardware dalam sebuah sistem. Notasi untuk node digambarkan sebagai sebuah kubus 3 dimensi
2. Component Komponen sistem
3. Association Apa yang mengubunngkan antara objek
satu dengan objek lainnya.
5. Simbol Sequence Diagram
NO. Simbol Nama Keterangan
1. Aktor
Mempresentasikan entitas yang berbeda diluar sistem dan berinteraksi fengan sistem
2. Lifeline Menghubungkan objek selama
sequence
3. Activation
Suatu titik dimana sebuah objek dimulai berpartisipasi di dalam sebuah sequence yang menunjukkan kapan sebuah objek mengirim atau menerima objek
4. Message Entry
Berfungsi untuk menggambarkan pesan/hubungan antar objek yang menunjukkan urutan kejadian yang terjadi
5 Object
Object merupakan instance dari sebuah class dan dituliskan tersusun secara horizontal.
Digambarkan sebagai sebuah class (kotak) dengan nama obyekdidalamnya yang diawali dengan sebuah titik koma
xv B. Simbol ERD (Entity Relationship Diagram)
No. Simbol Nama Keterangan
1.
Entitas
Kumpulan dari objek yang dapat diidentifikasikan secara unik.
2.
Relasi
Hubungan yang terjadi antara salah satu atau lebih entitas. Jenis hubungan atara lain : one to one, one to many, dan many to many.
3. Atribut
Karatristik dari entitas atau relasi yang merupakan penjelasan detail tentang entitas.
4.
Garis Relasi
Hubungan antar entitas dengan atributnya dan himpunan entitas dengan himpunan relasinya.
xvi
DAFTAR GAMBAR
Gambar III. 1 Struktur Organisasi ... 15
Gambar III. 2 Activity Diagram Proses Bisnis Sistem ... 19
Gambar IV. 1 Use Case Diagram ... 21
Gambar IV. 2 Activity Diagram Login ... 23
Gambar IV. 3 Activity Diagram Mengelola Data Aplikasi ... 24
Gambar IV. 4 Activity Diagram Pengaturan API... 25
Gambar IV. 5 Activity Diagram Cetak Laporan Pengiriman SMS ... 26
Gambar IV. 6 Entity Relationship Diagram (ERD) ... 27
Gambar IV. 7 Logical Record Structure ... 27
Gambar IV. 8 Class Diagram ... 29
Gambar IV. 9 Sequence Diagram Login ... 30
Gambar IV. 10 Sequence Diagram Data Aplikasi ... 31
Gambar IV. 11 Sequence Diagram Pengaturan API ... 32
Gambar IV. 12 Sequence Diagram Cetak Laporan ... 32
Gambar IV. 13 Component Diagram Dashboard SMS Gateway ... 33
Gambar IV. 14 Deployment Diagram API ... 33
Gambar IV. 15 Deployment Diagram Dashboard ... 34
Gambar IV. 16 Halaman Masuk ... 34
Gambar IV. 17 Tampilan Halaman Utama ... 35
Gambar IV. 18 Halaman Data Aplikasi ... 35
Gambar IV. 19 Form Data Aplikasi ... 36
Gambar IV. 20 Tampilan Halaman Pengaturan API ... 36
Gambar IV. 21 Tampilan Halaman Laporan... 36
Gambar IV. 22 Halaman Cetak Laporan... 37
Gambar IV. 23 Tampilan Input dan Response dari API ... 37
xvii
DAFTAR TABEL
Tabel IV. 1 Deskripsi Use Case Diagram Mengelola Data Aplikasi ... 21
Tabel IV. 2 Deskripsi Use Case Diagram Mengelola Pengaturan API ... 22
Tabel IV. 3 Deskripsi Use Case Diagram Mencetak Laporan Pengiriman SMS ... 22
Tabel IV. 4 Spesifikasi File Tabel Data Aplikasi ... 28
Tabel IV. 5 Spesifikasi File Tabel Log SMS ... 28
Tabel IV. 6 Pengujian Black Box ... 43
Tabel IV. 7 Tabel Alamat Situs Simulasi... 45
Tabel IV. 8 Spesifikasi Hardware ... 46
Tabel IV. 9 Spesifikasi Software ... 46
xviii
DAFTAR LAMPIRAN
Lampiran A - 1 ... 56
Lampiran B - 1 ... 57
Lampiran B - 2 ... 57
Lampiran B - 3 ... 57
1
BAB I
PENDAHULUAN
1.1. Latar Belakang
Application Programming Interface (Antarmuka Pemrograman Aplikasi) adalah sekumpulan protokol, fungsi, dan perintah yang dapat digunakan oleh programmer saat membangun perangkat lunak. API dikembangkan untuk menyediakan layanan yang efisien, meningkatkan keandalan, ketersediaan, dan kelebihan untuk integrasi sistem. SMS Gateway merupakan jembatan bagi penyebaran informasi dengan menggunakan SMS, Sehingga kita bisa menyebarkan pesan kebanyak nomor secara otomatis dan cepat tanpa harus mengetik ratusan nomor dan pesan dari ponsel karena sumua nomor akan diambil secara otomatis dari basis data. (Alvin et al., 2019).
Load balancing digunakan untuk mengurangi beban pada traffic line dan memastikan bahwa semua sumber daya yang ada dalam sistem dimanfaatkan secara optimal untuk memaksimalkan hasil. Sedangkan Failover dalam istilah computer networking adalah kemapuan sebuah sistem untuk dapat berpindah secara manual maupun otomatis jika salah satu sistem mengalami kegagalan sehingga menjadi cadangan untuk sistem yang mengalami kegagalan. (Mustofa & Ramayanti, 2020).
Disaster Recovery Center (DRC) dapat dikatakan replika dari data center karena DRC langsung terhubung dengan data center. Dan bila terjadi suatu bencana yang mengenai data primer maka DRC langsung mengambil alih fungsi menjadi primary site. Infrastruktur dari DRC mencakup data center, Wide Area Network (WAN), Local Area Network (LAN), hardware, dan aplikasi. (Eliza Adira Handrini et al., 2018).
2
Dari beberapa metode tersebut, dalam penelitian ini memilih untuk menggunakan Load Balancer untuk membagi beban pada traffic line pada server API SMS Gateway dan memastikan bahwa semua sumber daya yang ada dalam sistem dimanfaatkan secara optimal, memaksimalkan hasil. Dan untuk terhubung ke provider SMS Gateway dalam penelitian ini menggunakan teknik Failover agar bisa berpindah secara manual maupun otomatis jika salah satu sistem mengalami kegagalan. (Achmmad Mustofa et al., 2020). Dalam penelitian ini menggunakan metode tersebut karena kemudahaan dalam membuat konfigurasinya serta lebih cocok untuk server dengan spesifikasi rendah karena beban traffic dibagi ke beberapa server.
Implementasi Load Balance dan Failover pada API SMS Gateway ini bertujuan untuk menciptakan sistem pengiriman pesan yang terpusat, dan sebagai solusi agar ketika traffic meningkat ketika adanya program promosi, server tidak mudah down, baik itu koneksi aplikasi dengan API SMS Gateway maupun koneksi dengan provider kita bisa menggunakan provider cadangan.
1.2. Identifikasi Masalah
Pengiriman pesan baik itu pengingat cicilan ataupun OTP (One Time Password) di PT.KB FINANSIA MULTI FINANCE masih belum tersentralisasi, dan masih ada beberapa aplikasi yang hanya menggunakan satu provider untuk pengiriman SMS nya. Sehingga pada saat tertentu, ataupun saat sedang ada program promosi, terjadi lonjakan aplikasi yang memerlukan lebih dari 10000 kali pengiriman pesan dan menyebabkan down nya server. Terkadang provider mengalami masalah dengan salah satu jaringan telekomunikasi, sehingga dibutuhkannya provider cadangan lain untuk pengiriman SMS.
3
1.3. Perumusan Masalah
1. Bangaimana membuat SMS Gateway yang tersentralisasi di satu tempat untuk pengaturan dan laporan penggunaannya?
2. Bagaimana penerapan metode load balancing dan failover pada server API SMS Gateway?
3. Bagaimana pembuatan Application Programming Interface pada aplikasi SMS Gateway?
1.4. Tujuan dan Manfaat 1.4.1. Tujuan Penulisan Skripsi
1. Agar dapat menghasilkan Sistem pengiriman SMS yang terpusat yang bisa di monitoring penggunaannya oleh tim terkait.
2. Mengatasi masalah yang terjadi selama ini ketika traffic melonjak saat adanya program promo dari tim Marketing HO.
1.4.2. Manfaat Penulisan Skripsi 1. Manfaat untuk penulis
Sebagai salah satu syarat yang telah ditentukan untuk mencapai kelulusan Program Sarjana (S1) pada Program Studi Ilmu Komputer Universitas Bina Sarana Informatika.
2. Manfaat untuk objek penelitian
Sebagai salah satu solusi yang bisa digunakan oleh PT.KB FINANSIA MULTI FINANCE, untuk mengatasi terjadinya server down akibat traffic tinggi pada saat program promo dan bermasalahnya provider SMS Gateway yang menyebabkan gagal terkirimnya pesan.
4
3. Manfaat untuk pembaca
Memberikan wawasan dan pemahaman mengenai metode load balancing dan failover pada sistem atau aplikasi berbasis website.
1.5. Metode Penelitian
1.5.1. Teknik Pengumpulan Data 1. Observasi
Observasi dilakukan pengamatan pada setiap case yang dikirimkan oleh BRO (Branch Relation Officer) pada grup koordinasi antara kantor pusat dengan kantor cabang PT.KB FINANSIA MULTI FINANCE.
2. Wawancara
Penulis melakukan tanya jawab dengan BRO (Branch Relation Officer) yang mewakili Marketing di lapangan untuk mengetahui kendala-kendala yang dihadapi, termasuk mengenai SMS OTP yang sering tidak masuk ke handphone pelanggan.
3. Studi Pustaka
Dalam penelitian ini, dilakukan juga pencarian informasi yang relevan dengan metode dan teknologi yang penulis gunakan dalam pengerjaan skripsi ini, Untuk informasi kami dapatkan diantaranya dari jurnal, e-jurnal, artikel ilmiah, dan sumber-sumber lain.
1.5.2. Model Pengembangan Sistem
Model pengembangan sistem yang digunakan adalah model dengan paradigma prototype, yaitu teknik analisis dan perancangan yang mengikut sertakan user dalam menentukan kebutuhan dan pembentukan sistem yang akan dikerjakan. Metode pengembangan sistem dengan menggunakan model paradigma prototype ini
5
memudahkan komunikasi antara pengembang dan user, membuat user mendapat gambaran awal, serta membantu mendapatkan kebutuhan detail yang lebih baik (Masse et al., 2018).
1.6. Ruang Lingkup
Dalam pembuatan skripsi ini penulis membatasi permasalahan seperti :
1. Sistem yang dirancang berupa Application Programming Interface berbasis website.
2. Menggunakan metode Load Balancer untuk membagi beban traffic server.
3. Output sistem ini merupakan SMS ke nomor handphone tujuan dan laporan pengiriman pada dashboard.
6
BAB II Landasan Teori
2.1. Tinjauan Pustaka
Dalam penelitian ini, tinjauan pustaka menguraikan teori-teori di antaranya sebagai berikut:
A. SMS
Menurut Janner Simarmata dalam Nurlela (2013:21) menegaskan “SMS merupakan aplikasi untuk transmisi teks kecil melalui standar GSM (Global Sistem for Mobile Communication)”.
SMS atau Short Messages Services ini merupakan teknologi yang menyediakan layanan pengiriman dan penerimaan per pesanan antar ponsel. SMS dikenalkan pertama kali sekitar tahun 1992 di Eropa. Data yang mampu ditampung juga terbatas pada SMS. Satu SMS hanya dapat menampung maksimal 140 bytes data, jadi satu SMS dapat menampung 160 karakter latin dan 70 karakter non latin, Dukungan sebagian besar bahasa di semua negara, termasuk juga Cina, Korea, Arab, dan Jepang (Murti & Listiyono, 2009).
B. SMS Gateway
Menurut Ben Forta dalam Nurlela (2013:22) menegaskan bahwa “SMS Gateway adalah suatu platform yang menyediakan mekanisme untuk menghantar dan menerima pesan dari peralatan Mobile (HP, ponsel, dan lain-lain)”.
“SMS Gateway yaitu suatu sistem yang menjembatani (gateway) antara ponsel dengan sistem yang menjadi server dengan SMS sebagai informasinya” (Murti &
Listiyono, 2009). “SMS Gateway bisa disebut pintu gerbang bagi penyebaran informasi menggunakan SMS. Penyebaran pesan dapat dilakukan ke banyak nomor secara otomatis dan cepat yang terhubung dengan database nomor ponsel tanpa harus mengetik banyak nomor dan pesan dari ponsel karena semua nomor akan diambil secara otomatis dari database.” (Alvin & Gusrianty, 2019).
C. API
Menurut M. Ichwan dan Fifin Hakiky dalam (Alvin & Gusrianty, 2019) menerangkan
Application Programming Interface (API) atau Antarmuka Pemrograman Aplikasi adalah sekumpulan perintah, fungsi, dan protokol yang dapat digunakan oleh programmer saat membangun perangkat lunak untuk sistem operasi tertentu. API dikembangkan karena adanya tren industri yang baru, yaitu distributed Sistem, untuk menyediakan layanan yang efisien, meningkatkan reliability dan availability, dan kelebihan lain untuk integrasis sistem.
D. PHP
Menurut MADCOMS PHP atau Hypertext Preprocessor merupakan “script language (bahasa skrip) yang dapat disisipkan ke dalam HTML. PHP sering kali digunakan untuk membuat situs webite yang dinamis.” (Ayu & Permatasari, 2018)
“Untuk membuat website yang dinamis diperlukanlah PHP. Karena PHP merupakan server-side scripting, maka sintaks PHP akan dieksekusi di server lalu hasilnya diteruskan ke browser dalam format HTML. Dan juga PHP merupakan bahasa komersial ataupun gratis (free) dan bersifat opensource” (Ayu & Permatasari, 2018; Lavarino, 2016).
Berikut merupakan kelebihan PHP menurut (Lavarino, 2016):
a. PHP merupakan Bahasa pemograman script tanpa kompilasi.
b. Tingkat akses lebih cepat.
c. Lifecycle yang tinggi sehingga mengikuti perkembangan zaman.
d. Memiliki support akses ke beberapa database yang bersifat komersial.
E. UML
Windu dan Grace menyatakan “UML merupakan bahasa standar yang diperuntukkan untuk menspesifikasi, mendokumentasi, dan membangun sebuah perangkat lunak. Mengembangkan sistem berorientasi objek dan alat untuk
pendukung pengembangan sistem merupakan metodologi UML” (Suendri, 2018).
Menurut D. B. Naga Muruga (2019:3) menjelaskan tentang pengertian UML (Unified Modeling Language) merupakan “Standard language untuk menentukan, memvisualisasikan, membangun artefak perangkat lunak”.
UML adalah alat dalam perancangan sistem yang berorientasi kepada objek.
Filosofi dari kemunculan UML ini terinspirasi oleh konsep dari permodelan Object Oriented (OO), karena pada konsep ini seperti kehidupan yang nyata didominasi oleh objek dan dinotasikan atau digambarkan dalam simbol-simbol yang spesifik maka dari itu Object Oriented (OO) mempunyai proses yang standar dan juga independen.
Tujuan utama diagram UML ialah untuk membantu tim pengembangan proyek dalam berkomunikasi, juga mengeksplorasi potensi design, dan memvalidasi software architecture design atau pembuat program (Haviluddin 2011).
Berikut konsep-konsep dasar UML:
“UML mendefinisikan bermacam-macam diagram seperti Use Case Diagram, Class Diagram, Statechart Diagram, Activity Diagram, Sequence Diagram, Collaboration Diagram, Component Diagram, dan Deployment Diagram”
(Dharwiyanti and Wahono 2003).
Pada penelitian ini, hanya digunakan beberapa diagram di antaranya:
a. Use Case Diagram
Menggambarkan berbagai macam fungsi yang merupakan gambaran ekspektasi dari sebuah sistem. Pada use case ditekankan “apa” yang dilakukan atau diperbuat sistem bukan “bagaimana”. Use case merepresentasikan interaction antara Actor dengan Sistem. Use case juga merupakan sebuah pekerjaan, contohnya kasus login ke dalam sistem, diperlukan untuk membuat sebuah daftar belanja, dan lainnya.
b. Class Diagram
Sebuah spesifikasi yang menghasilkan sebuah objek juga merupakan bagian inti dari pengembangan sistem dan desain yang berorientasi objek. Class menggambarkan keadaan seperti properti/atribut dari suatu sistem, juga menawarkan
service untuk memanipulasikan keadaan tersebut (metode/fungsi). Penggambaran class diagram meliputi structure juga deskripsi dari class, package dan object beserta relasi satu dengan yang lain seperti containment, inheritance, association, dan lain- lain.
Terdapat 3 area utama, yaitu Name (dan stereotip), Attribute, Method. Attribute, Method memiliki sifat sebagai berikut:
1) Private, luar class tidak dapat memanggil hanya class yang bersangkutan.
2) Protected, hanya bisa dipanggil oleh class yang bersangkutan saja dan child yang mewarisinya .
3) Public, siapa saja dapat memanggil class tersebut.
c. Activity Diagram
Menggambarkan flow (alur) aktivitas dalam sistem yang dirancang, bagaimana masing-masing flow berawal, decision atau keputusan yang mungkin akan terjadi, dan bagaimana flow berakhir.
Menggambarkan activity diagram menggunakan standar UML yaitu segi empat dengan sudut yang membulat. Penggunaan decision untuk menggambarkan behaviour dalam kondisi tertentu. Untuk mengilustrasikan beberapa proses paralel (fork & join) menggukan titik sinkronisasi yang dapat berupa titik, garis yang horizontal dapat juga vertikal. Activity diagram bisa dibagi menjadi beberapa objek swimlane dalam menggambarkan objek yang bertanggung jawab untuk aktivitas tertentu.
d. Sequence Diagram
Penggambaran interaksi antar beberapa objek di dalam juga di sekeliling sistem (termasuk display, pengguna, dan sebagainya) berbentuk message yang dijelaskan terhadap waktu. Sequence diagram terdiri dari dimensi horizontal (objek terkait) dan
dimensi vertikal (waktu). Sequence diagram biasanya digunakan untuk memvisualkan rangkaian atau skenario tahapan yang dilakukan sebagai response atau tanggapan dari event yang menghasilkan keluaran tertentu. Diawali dari pemicu aktivitas tersebut, lalu proses, perubahan yang terjadi secara internal dan keluaran yang dihasilkan.
Setiap objek, termasuk juga aktor, memiliki lifeline yang vertikal. Message atau pesan digambarkan sebagai garis panah dari dan ke satu objek lainnya. Fase berikutnya, message dipetakan menjadi operasi/metode dari class. Activation bar melihatkan lamanya implementasi sebuah proses, umumnya diawali dengan sebuah message yang diterima.
Standar UML memiliki icon khusus untuk objek yang memiliki sifat khusus seperti controller, boundary dan persistent entity.
e. Deployment Diagram
Memvisualisasikan detail komponen yang di-deploy pada infrastruktur sistem, yang mana komponen terletak (pada server, mesin atau hardware apa), bagaimana network capabilities pada lokasi tersebut, spesifikasi server, dan lainnya yang memiliki sifat fisik.
Sebuah node merupakan server, perangkat workstation, atau hardware lain yang digunakan untuk penyebaran komponen pada lingkungan sebenarnya. Hubungan antar sebuah node dan persyaratan atau requirement bisa didefinisikan pada diagram ini.
F. HaProxy
“HaProxy adalah perangkat lunak opensource untuk menunjang load balancer dan proxy untuk TCP dan HTTP. Satu server yang terinstal HAProxy sebagai
gateway load balancing bertugas membagi beban request dari user kepada beberapa server utama.” (Rahmatulloh & MSN, 2017).
2.2. Penelitian Terkait
Dalam penyusunan skripsi ini, penulis mendapatkan beberapa inspirasi dan mereferensikan dari beberapa penelitian yang telah dilakukan yang memiliki keterkaitan latar belakang masalah pada skripsi ini. Berikut ini penelitian terdahulu yang berhubungan dengan skripsi ini, diantaranya:
Penelitian yang dilakukan oleh Efrizal Zaida (2014) tentang “Penentuan Strategi High Availability Dalam Menjamin Ketersediaan Aplikasi Dan Data”, pada penelitian ini bertujuan untuk menentukan strategi dalam penerapan High Availability yang paling tepat menggunakan pendekatan Analytical Hierarchy Process (AHP). Failover, load balancing, mirror dan virtualisasi merupakan alternatif penentuan strategi High Availability.
Penelitian yang dilakukan oleh Sampurna Dadi Riskiono dan Donaya Pasha (2017) tentang “Analisis Metode Load Balancing Dalam Meningkatkan Kinerja Website E-Learning”, pada penelitian tersebut menggunakan model penjadwalan bertipe round robin. load balancer yang mendistribusikan permintaan layanannya sama rata ke seluruh server nyata tanpa memedulikan kapasitas dari server atau pun beban permintaan layanan. Dari pengujian yang telah dilakukan, menunjukkan penerapan load balancing dalam meningkatkan kinerja berhasil diimplementasikan dengan melihat nilai waktu respons yang lebih kecil dibanding dengan penggunaan server tunggal.
Penelitian yang dilakukan oleh Sampurna Dadi Riskiono, Selo Sulistyo , dan Teguh Bharata Adji (2017) tentang “Kinerja Metode Load Balancing Dan Fault Tolerance Pada Server Aplikasi Chat”, penerapan metode load balancing dapat
memperkecil nilai dari waktu respons serta dapat juga meningkatkan nilai throughput ketika permintaan di atas 3000 koneksi sistem masih dapat melayani permintaan dari pengguna dibandingkan tanpa load balancing di mana server hanya mampu melayani permintaan sampai dengan 3000 koneksi. Artinya sistem dapat terhindar dari kelebihan beban yang datang dari pengguna.
Penelitian yang dilakukan oleh Andi Rosano, Nur Ali Farabi, dan Aliffah Kusumaningrum (2018) tentang “Perancangan Sistem Internet Banking (I-Bank) Menggunakan One-Time-Password (OTP) Untuk Pengamanan Transaksi (Studi Kasus Bank Mega, Tbk)”, pada penelitian ini mengimplementasikan konsep pengamanan financial transactions dengan sandi sekali pakai atau One-Time- Password (OTP). Kode OTP nantinya akan dikirimkan menggunakan SMS (short message format) yang terhubung ke SMS Gateway server.
Dari penelitian-penelitian tersebut, akan dibuatkan sebuah aplikasi berbasis web tentang SMS Gateway untuk One-Time-Password (OTP) seperti penelitian yang dilakukan oleh Andi Rosano, Nur Ali Farabi, dan Aliffah Kusumaningrum (2018), maupun untuk pengiriman pesan lainnya, dalam penelitian ini juga kami menggunakan metode load balancing dengan tipe round robin untuk membagi beban traffic pada server secara berimbang, serta metode failover untuk proses pengiriman ke provider SMS Gateway seperti yang dilakukan oleh Efrizal Zaida (2014), Sampurna Dadi Riskiono, Selo Sulistyo , dan Teguh Bharata Adji (2017), dan Sampurna Dadi Riskiono dan Donaya Pasha (2017). Dengan harapan penelitian ini dapat digunakan oleh perusahaan sebagai solusi untuk mencegah terjadinya server down akibat traffic tinggi pada saat program promo dan bermasalahnya salah satu provider SMS Gateway yang menyebabkan gagal terkirimnya pesan dengan
dilakukannya Switch (Penggantian) Provider secara otomatis, maupun secara manual.
14
BAB III
ANALISIS SISTEM BERJALAN
3.1. Tinjauan Institusi / Perusahaan
PT.KB FINANSIA MULTI FINANCE adalah perusahaan yang bergerak di dalam bidang pembiayaan sejak tahun 1994 dan memperoleh ijin usaha dari Menteri Keuangan (sekarang Otoritas Jasa Keuangan) berdasarkan surat No.460/KMK.017/1994 tanggal 14 September 1994.
3.1.1. Sejaran Institusi / Perusahaan
Sejak 1994 PT.KB FINANSIA MULTI FINANCE mendirikan brand Kreditplus dengan fokus pelayanan pembiayaan motor, mobil, dan peralatan berat. Dalam waktu 24 tahun ini, perhatian utama Kreditplus adalah memenuhi kebutuhan dan kenyamanan nasabah dalam menggunakan layanan kami. Untuk memenuhi kedua hal tersebut, mulai dari 2014 Kreditplus telah mulai proses digitalisasi dengan tujuan menjadi penyedia layanan digital finance terbaik di Indonesia.
Kreditplus memulai proses digitalisasi dengan membangun kerjasama dengan website e-commerce sebagai payment gateway. Kemudian Kreditplus membuat sistem pengajuan kredit secara digital dengan inovasi E-Form. Saat ini Kreditplus sedang membangun ekosistem terintegrasi agar dapat menyediakan layanan bagi nasabah yang dapat digunakan secara Mudah, Cepat dan Aman. Dalam ekosistem terintegrasi tersebut nasabah dapat melakukan pengajuan kredit hingga pembayaran angsuran terakhir dari mana saja, kapan saja.
Produk dan layanan lain yang saat ini disediakan oleh Kreditplus termasuk pembiayaan multi guna untuk berbagai macam produk elektronik dan furniture, dan pinjaman dana dengan agunan kendaraan untuk berbagai macam kebutuhan Anda.
3.1.2. Visi dan Misi Institusi / Perusahaan 1. Visi Perusahaan
Menjadi Perusahaan Pembiayaan Penyedia Solusi dan Layanan Pembiayaan Berbasis Teknologi Terbaik di Indonesia
2. Misi Perusahaan
a. Menyediakan Solusi dan Layanan Pembiayaan kepada Masyarakat Menggunakan Teknologi untuk Meningkatkan Kualitas Hidup Masyarakat b. Membangun Kerangka Kerja untuk Setiap Orang Belajar, Berkembang dan
Bekerja, Menciptakan Nilai dan Potensi Pertumbuhan 3.1.3. Struktur Organisasi Institusi / Perusahaan
Gambar III.1 Struktur Organisasi
1. President Director
a. Memimpin perusahaan dengan menerbitkan kebijakan-kebijakan perusahaan atau institusi.
b. Memilih, menetapkan, dan mengawasi tugas dari karyawan dan kepala bagian atau wakil direktur.
c. Menyampaikan laporan kepada pemegang saham atas kinerja perusahaan.
2. Director Of Business Support
a. Memimpin dan bertanggung jawab pada program bisnis perusahaan.
b. Mendukung karyawan dengan menilai kapasitas dan kinerja perusahaan.
c. Mengevaluasi pengembangan rencana bisnis strategis.
3. Director Of Marketing
a. Mengarahkan karyawan untuk meningkatkan seluruh sumber daya yang ada secara optimal.
b. Melakukan pengawasan dan pengendalian atas seluruh kinerja manajemen pemasaran, penjualan, dan promosi bagi kepentingan perusahaan.
c. Membuat laporan kegiatan kepada presiden direktur sebagai pertanggungjawaban seluruh aktivitas manajemen pemasaran, penjualan, dan promosi.
4. Head of Technology
a. Bertanggung jawab dalam keseluruhan proses yang berkaitan dengan departemen IT.
b. Memastikan semua sistem IT berjalan lancar dan memutuskan solusi jika terjadi permasalahan.
c. Bertanggung jawab melakukan pengembangan dan peningkatan sistem informasi dan teknologi.
5. Head Of Business Development
a. Meriset pasar, mencari peluang pelanggan baru, dan menjaga hubungan dengan pelanggan.
b. Bekerja sama dengan divisi lain seperti divisi teknis untuk memenuhi kebutuhan pelanggan/pasar.
c. Menyusun dan mempresentasikan rencana pengembangan bisnis.
6. Head Of Business Operation
a. Bertanggung jawab agar operasional cabang berjalan dengan baik.
b. Monitoring KPI (Key Performance Indicator).
c. Mengukur efisiensi sistem dan prosedur.
7. Head Of Marketing and Product Development
a. Mempersiapkan seluruh data yang dibutuhkan untuk dasar analisa bagi divisi product development
b. Membuat report secara berkala mengenai kinerja cabang dan program marketing secara harian, mingguan dan bulanan
c. Melakukan pengajuan kebutuhan cabang (SMS Blast, Material Promosi, dll.) 8. Developer
a. Memodifikasi software yang ada untuk memperbaiki kerusakan dan untuk mengembangkan kinerjanya.
b. Mengembangkan dan mengarahkan pengujian sistem software dan prosedur validasi, pemrograman, dan dokumentasi
c. Berkolaborasi dengan analis sistem (system analyst), programmer, dan pekerja lainnya untuk mendesain sistem & aplikasi, dan untuk memperoleh informasi mengenai limitasi dan kapabilitas proyek, serta persyaratan dari projek tersebut
9. IT Infrastructure
a. Bertanggung jawab dalam menyiapkan, memelihara, memperbaiki server yang dimiliki perusahaan.
b. Bertanggung jawab memelihara jaringan.
10. IT Helpdesk & Support
a. Memastikan kalau aplikasi-aplikasi yang dipakai oeh si user berfungsi seperti yang seharusnya.
b. Mengecek dan memperbaiki bila sewaktu-waktu ada masalah pada jaringan komputer user
c. Mengecek dan update setiap pembaharuan sistem operasi maupun aplikasi yang dijalankan oleh user
11. Product Owner
a. Bertanggung jawab dengan produk atau aplikasi yang dipegang nya.
b. Berkoordinasi dengan divisi lain dalam kelancaran produk nya.
c. Memastikan product nya bias diterima dengan baik oleh user.
3.2. Proses Bisnis Sistem
Pengiriman SMS OTP (One Time Password) dilakukan oleh marketing dilapangan sebelum Konsumen tanda tangan persetujuan aplikasi pengajuan. Apabila konsumen tidak menerima sms dalam waktu satu menit, maka marketing dilapangan bisa mengirim kembali SMS OTP (One Time Password) dengan batas tiga kali permintaan.
Gambar III. 2
Activity Diagram Proses Bisnis Sistem 3.3. Spesifikasi Dokumen Sistem Berjalan
1. Nama Dokumen : Form Pengajuan Software Aktivasi API SMS Fungsi : Request Akses API
Sumber : Product Owner Tujuan : Departemen IT
Periode : Tidak Tentu, tergantung kebutuhan PO Media : E-Mail
Bentuk : Lampiran A-1
20
BAB IV
RANCANGAN SISTEM DAN PROGRAM USULAN
4.1. Analisis Kebutuhan Software
Analisa kebutuhan Software yang akan dikembangkan dalam penelitian ini yaitu untuk mengetahui cara kerja API SMS Gateway dengan menerapkan metode Load Balancer dan Failover yang akan digunakan di PT.KB FINANSIA MULTI FINANCE.
4.1.1. Tahapan Analisa
Dalam penelitian ini supaya sesuai dengan keinginan pengguna dan bisa berjalan dengan baik maka diperlukan analisa terhadap sistem. Dengan tujuan untuk memperjelas konsep dari perancangan dengan unsur-unsur yang terlibat, berikut adalah spesifikasi kebutuhan (sistem requirement) dari API SMS Gateway dengan metode load balancing dan failover yaitu :
A1. Admin dapat mengelola data aplikasi yang memiliki izin untuk akses API A2. Admin dapat mengelola pengaturan provider SMS Gateway utama.
A3. Admin dapat mencetak hasil laporan pengiriman SMS.
4.1.2. Use Case Diagram 1. Use Case Diagram
Gambar IV. 1 Use Case Diagram Berikut deskripsi use case diagram Admin yaitu :
Tabel IV. 1
Deskripsi Use Case Diagram Mengelola Data Aplikasi
Use Case Name Mengelola Data Aplikasi
Requirements Admin Login Aplikasi
Goal
Admin dapat mengelola Data Aplikasi yang mempunyai izin untuk mengakses API
Pre-Conditions Admin melakukan login dengan role
Admin Post-Conditions
Data yang telah ditambahkan akan tersimpan serta dapat dirubah dan dihapus
Primary Actors Admin
Main Flow/Basic Path
1. Sistem menampilkan halaman login 2. Admin memilih menu Data Aplikasi 3. Admin dapat menambah, merubah,
dan menghapus Data Aplikasi
4. Sistem menyimpan semua perubahan data
Alternatif Flow/Invarian 1 Jika data tidak valid sistem akan menampilkan pesan kesalahan.
Tabel IV. 2
Deskripsi Use Case Diagram Mengelola Pengaturan API
Use Case Name Mengelola Pengaturan API
Requirements Admin Login Aplikasi
Goal
Admin dapat mengelola Pengaturan API, untuk mengatur Provider utama yang akan digunakan untuk mengirim SMS.
Pre-Conditions Admin melakukan login dengan role
Admin
Post-Conditions Data yang ada hanya dapat dirubah
Primary Actors Admin
Main Flow/Basic Path
1.Sistem menampilkan halaman login 2.Admin memilih menu Pengaturan API 3.Admin dapat merubah Pengaturan
API
4.Sistem menyimpan semua perubahan data
Alternatif Flow/Invarian 1 Jika data tidak valid sistem akan menampilkan pesan kesalahan.
Tabel IV. 3
Deskripsi Use Case Diagram Mencetak Laporan Pengiriman SMS
Use Case Name Mencetak laporan pengiriman SMS
Requirements Admin Login Aplikasi
Goal Admin dapat mencetak laporan hasil
pengiriman SMS
Pre-Conditions Memasukan tanggal periode laporan pada form periode
Post-Conditions Data yang ditampilkan dapat dicetak
Primary Actors Admin
Main Flow/Basic Path
1. Sistem menampilkan halaman login 2. Admin memilih menu Laporan 3. Admin dapat mencetak laporan
pengiriman SMS.
Alternatif Flow/Invarian 1 -
4.1.3. Activity Diagram 1. Login
Gambar IV. 2 Activity Diagram Login
2. Mengelola Data Aplikasi
Gambar IV. 3
Activity Diagram Mengelola Data Aplikasi
3. Pengaturan API
Gambar IV. 4
Activity Diagram Pengaturan API
4. Cetak Laporan Pengiriman SMS
Gambar IV. 5
Activity Diagram Cetak Laporan Pengiriman SMS
4.2. Desain 4.2.1. Basis Data
1. Entity Relationship Diagram (ERD)
Gambar IV. 6
Entity Relationship Diagram (ERD) 2. Logical Record Structure (LRS)
Gambar IV. 7 Logical Record Structure
3. Spesifikasi File
a. Spesifikasi Tabel Data Aplikasi Nama Database : sms_gateway Nama File : data_aplikasi Tipe File : file master Kunci Field : id_aplikasi
Tabel IV. 4
Spesifikasi File Tabel Data Aplikasi
No Elemen Data Nama Field Type Size Keterangan 1 Id Aplikasi id_aplikasi Varchar 20 Primary Key 2 Client key client_key Varchar 50
3 Nama aplikasi nama_aplikasi Varchar 75
b. Spesifikasi Tabel Log SMS
Nama Database : sms_gateway Nama File : log_sms Tipe File : file master Kunci Field : id_logsms
Tabel IV. 5
Spesifikasi File Tabel Log SMS
No Elemen Data Nama Field Type Size Keterangan
1 ID Log id_log Int 25 Primary Key
2 ID Aplikasi id_aplikasi Int 25 Foreign Key
3 Nomor Hp no_hp Varchar 15
4 Isi Pesan Text Varchar 255
5 Nama Server Server Varchar 75 6 Nama Provider Provider Varchar 75 7 Response Provider Response Json
4.2.2. Arsitektur Perangkat Lunak 1. Class Diagram
Gambar IV. 8 Class Diagram
2. Sequence Diagram
Gambar IV. 9 Sequence Diagram Login
Gambar IV. 10
Sequence Diagram Data Aplikasi
Gambar IV. 11
Sequence Diagram Pengaturan API
Gambar IV. 12
Sequence Diagram Cetak Laporan
3. Component Diagram
Gambar IV. 13
Component Diagram Dashboard SMS Gateway 4. Deployment Diagram
Gambar IV. 14 Deployment Diagram API
Gambar IV. 15
Deployment Diagram Dashboard 4.2.3. Antarmuka Pengguna
Gambar IV. 16 Halaman Masuk
Gambar IV. 17 Tampilan Halaman Utama
Gambar IV. 18 Halaman Data Aplikasi
Gambar IV. 19 Form Data Aplikasi
Gambar IV. 20
Tampilan Halaman Pengaturan API
Gambar IV. 21 Tampilan Halaman Laporan
Gambar IV. 22 Halaman Cetak Laporan
Gambar IV. 23
Tampilan Input dan Response dari API 4.3. Code Generation
<?php
namespace App\Classes;
use Config;
use GuzzleHttp\Client;
use GuzzleHttp\Exception\RequestException;
use Log;
use App\Models\PengaturanApi as Setting;
class SmsManager {
/**
* Send SMS for user * @param $message * @param $handpone */
public function sendSMS($message, $handphone) {
$status = (new Setting)->select('config_priority')->where('id_pengaturan',1)-
>first();
$providers = ($status->config_priority == 'medansms' ? ['medansms','websms'] : ['websms','medansms']);
$status_send = false;
$status = true;
$response_message= "Success send SMS";
foreach ($providers as $key => $provider) {
$status_provider = ($provider == 'medansms' ? 'medansms' : 'websms');
if($status_provider == true){
if($provider == 'medansms'){
$res = $this->sendMedanSMS($message, $handphone);
if($res['status'] == 200){
$status_send = true;
$provider = "medansms";
}
if($status_send === false){
$res = $this->sendWebSMS($message, $handphone);
$status_send = ($res['status'] == 200 ? true : false);
$provider = "websms";
} } else {
$res = $this->sendWebSMS($message, $handphone);
if($res['status'] == 200){
$status_send = true;
$provider = "websms";
}
if($status_send === false){
$res = $this->sendMedanSMS($message, $handphone);
$provider = "medansms";
$status_send = ($res['status'] == 200 ? true : false);
} } break;
} }
if($status_send === false){
$message = "Failed to send SMS";
$status = false;
//Log::info('Failed to send SMS');
}
$return = ['status' =>$status ,'message' => $res, 'provider' => $provider];
return $return;
}
public function sendMedanSMS($message, $handphone) {
$setting = (new Setting)->select('config_priority','balasan')-
>where('id_pengaturan',1)->first();
$username = urlencode(env(„MEDAN_SMS‟));
$password = urlencode(env(„MEDAN_PASSWORD‟));
$text = urlencode($message);
$to = urlencode($handphone);
//$url = Config::get('sms.url-
sms')."?email={$username}&password={$password}&senderid={$sender_id}&mes sage={$text}&msisdn={$to}";
$url = Config::get('sms.url-
sms')."?action=kirim_sms&email={$username}&passkey={$password}&no_tujuan
={$to}&pesan={$text}&json=1";
try {
$client = new Client();
$response = $client->request('GET', $url);
Log::info("[Send Message] ".$response->getStatusCode()." ".$response-
>getBody());
//$status=$response->getStatusCode();
if ($setting->config_priority == "medansms" && $setting->balasan == 1) { $status = 500;
}else{
$status = $response->getStatusCode();
}
$data = "[Send Message] ".$response->getStatusCode()." ".$response-
>getBody();
} catch (RequestException $e) { Log::error('Failed to send SMS');
Log::error($e);
// Log::info($e);
// Log::info($e->getResponse()->getStatusCode()." ".$e->getResponse()-
>getBody());
$status = 500;
$data = "Failed to send SMS";
}
$return = ['status' =>$status ,'message' => $data];
return $return;
}
public function sendWebSMS($message, $handphone) {
$setting = (new Setting)->select('config_priority','balasan')-
>where('id_pengaturan',1)->first();
$text = urlencode($message);
$to = $handphone;
//$url = Config::get('sms.url-
sms')."?email={$username}&password={$password}&senderid={$sender_id}&mes sage={$text}&msisdn={$to}";
$url = Config::get('sms.url-
websms')."?token=0d9f5338d0428233404bbd17c0e5145f&to={$to}&msg={$text}";
try {
$client = new Client();
//$client->header('Accept: application/json');
$response = $client->request('GET', $url);
Log::info("[Send Message] ".$response->getStatusCode()." ".$response-
>getBody());
//$status=$response->getStatusCode();
if ($setting->config_priority == "websms" && $setting->balasan == 1) { $status = 500;
}else{
$status = $response->getStatusCode();
}
$data = "[Send Message] ".$response->getStatusCode()." ".$response-
>getBody();
} catch (RequestException $e) { Log::error('Failed to send SMS');
Log::error($e);
// Log::info($e);
// Log::info($e->getResponse()->getStatusCode()." ".$e->getResponse()-
>getBody());
$status = 500;
$data = "Failed to send SMS";
}
$return = ['status' =>$status ,'message' => $data];
return $return;
} }
4.4. Pengujian Sistem 4.4.1. Pengujian Black Box
Pada penelitian ini pengujian sistem menggunakan metode black box testing.
Pengujian ini memiliki tujuan untuk melihat apakah keluaran yang dihasilkan sudah sesuai dengan yang diharapkan oleh pengguna atau tidak. Hasil pengujiannya dapat dilihat pada table dibawah ini :
Tabel IV. 6 Pengujian Black Box
NO Skenario Pengujian
Test Case Hasil yang diharapkan
Hasil pengujian
1
Masuk
menggunakan akun yang terdaftar di
Surel :
[email protected] Kata Sandi :
123456789
Sistem menerima akses login kemudian masuk halaman utama
Valid/Sesua i Harapan
database
2
Masuk tidak menggunakan akun yang terdaftar di database
Surel / Kata Sandi salah atau kosong
Sistem akan menolak
kemudian kembali ke halaman
masuk
Valid/Sesua i Harapan
3
Memasukan data pada form data aplikasi
Form diisi semua Sistem akan menyimpan data ke database
Valid / Sesuai Harapan
4
Memasukan data tidak sesuai form
Form diisi kosong Sistem akan memunculkan pesan kesalahan
Valid/Sesua i Harapan
5
Cetak laporan Klik tombol cetak Sistem akan menampilkan data yang akan dicetak
Valid/Sesua i Harapan
6
Kirim data ke API
Memasukan data client key, no hp, dan isi pesan
Sistem load balancer akan memilih server dan metode failover akan jalan ketika response dari provider 500.
Valid/Sesua i Harapan
7 Kirim data ke Mengosongkan Sistem akan Valid/Sesua
4.5. Pendukung
Pada tahap pendukung akan menjelaskan mengenai publikasi web dan spesifikasi Hardware dan Software yang digunakan dalam penelitian ini.
4.5.1. Publikasi WEB
Untuk publikasi web Implementasi Metode Load Balancer dan Failover API SMS Gateway ini sebenarnya untuk digunakan oleh perusahaan secara internal dan merupakan rahasia perusahaan, namun kami menyewa server untuk keperluan simulasi dan pembelajaran kedepannya. Berikut adalah alamat situs simulasinya :
Tabel IV. 7
Tabel Alamat Situs Simulasi
Alamat Situs Keterangan
Skripsi.junandia.id Digunakan sebagai Dashboard dan server Basis Data
Api.junandia.id:98 Digunakan sebagai proxy server load balancer.
S1.junandia.id:18 Digunakan sebagai Server 1
S2.junandia.id:10 Digunakan sebagai Server 2
4.5.2. Spesifikasi Hardware dan Software API atau mengisi client
key secara asal
menolak dan memunculkan pesan kesalahan
i Harapan
1. Spesifikasi Hardware
Spesifikasi hardware yang diperlukan untuk menjalankan aplikasi API Sms Gateway dengan metode Load Balancer dan Failover adalah sebagai berikut :
Tabel IV. 8 Spesifikasi Hardware
Processor Intel Core Processor (Skylake, IBRS)
RAM 1024 MB
Penyimpanan 32 GB NVMe
Sistem Operasi Ubuntu 18.04 x64
2. Spesifikasi Sofware
Spesifikasi Software yang diperlukan untuk menjalankan aplikasi API Sms Gateway dengan metode Load Balancer dan Failover adalah sebagai berikut :
Tabel IV. 9 Spesifikasi Software
Bahasa Pemrograman PHP v 7.3.x, Javascript
Basis Data MySQL
Software pendukung HaProxy, LoadImpact (K6)
4.6. Spesifikasi Dokumen Sistem Usulan
4.6.1. Dokumen Masukan
1. Dokumen Masukan Non Fisik
Nama Dokumen : API Pengiriman SMS
Fungsi : Proses load balancer dan failover
Sumber : Pengguna API
Tujuan : Mengirim SMS ke Nomor Tujuan Media : Tampilan (Display)
Bentuk : Lampiran B-1
2. Dokumen Masukan Fisik
Nama Dokumen : Data Aplikasi Fungsi : Input data aplikasi Sumber : Formulir Data Aplikasi Tujuan : Data Aplikasi
Media : Tampilan (Display)
Bentuk : Lampiran B-2
4.6.2. Dokumen Keluaran
Nama Dokumen : Laporan SMS Keluar
Fungsi : Laporan untuk melihat sms keluar
Sumber : Admin
Tujuan : Laporan sms keluar
Media : Tampilan (Display) / Kertas
Bentuk : Lampiran B-3