• Tidak ada hasil yang ditemukan

IMPLEMENTASI METODE LOAD BALANCER DAN FAILOVER UNTUK API SMS GATEWAY PADA PT. KB FINANSIA MULTI FINANCE SKRIPSI

N/A
N/A
Protected

Academic year: 2022

Membagikan "IMPLEMENTASI METODE LOAD BALANCER DAN FAILOVER UNTUK API SMS GATEWAY PADA PT. KB FINANSIA MULTI FINANCE SKRIPSI"

Copied!
75
0
0

Teks penuh

(1)

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

(2)

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.

(3)

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

(4)

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

(5)

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 : ... ...

(6)

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]

(7)

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

(8)

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

(9)

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).

(10)

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).

(11)

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

(12)

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

(13)

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.

(14)

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

(15)

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.

(16)

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

(17)

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

(18)

xviii

DAFTAR LAMPIRAN

Lampiran A - 1 ... 56

Lampiran B - 1 ... 57

Lampiran B - 2 ... 57

Lampiran B - 3 ... 57

(19)

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).

(20)

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.

(21)

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.

(22)

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

(23)

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.

(24)

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).

(25)

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

(26)

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

(27)

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

(28)

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

(29)

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

(30)

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

(31)

dilakukannya Switch (Penggantian) Provider secara otomatis, maupun secara manual.

(32)

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.

(33)

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

(34)

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.

(35)

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

(36)

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.

(37)

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

(38)

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.

(39)

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.

(40)

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 -

(41)

4.1.3. Activity Diagram 1. Login

Gambar IV. 2 Activity Diagram Login

(42)

2. Mengelola Data Aplikasi

Gambar IV. 3

Activity Diagram Mengelola Data Aplikasi

(43)

3. Pengaturan API

Gambar IV. 4

Activity Diagram Pengaturan API

(44)

4. Cetak Laporan Pengiriman SMS

Gambar IV. 5

Activity Diagram Cetak Laporan Pengiriman SMS

(45)

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

(46)

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

(47)

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

(48)

2. Sequence Diagram

Gambar IV. 9 Sequence Diagram Login

(49)

Gambar IV. 10

Sequence Diagram Data Aplikasi

(50)

Gambar IV. 11

Sequence Diagram Pengaturan API

Gambar IV. 12

Sequence Diagram Cetak Laporan

(51)

3. Component Diagram

Gambar IV. 13

Component Diagram Dashboard SMS Gateway 4. Deployment Diagram

Gambar IV. 14 Deployment Diagram API

(52)

Gambar IV. 15

Deployment Diagram Dashboard 4.2.3. Antarmuka Pengguna

Gambar IV. 16 Halaman Masuk

(53)

Gambar IV. 17 Tampilan Halaman Utama

Gambar IV. 18 Halaman Data Aplikasi

(54)

Gambar IV. 19 Form Data Aplikasi

Gambar IV. 20

Tampilan Halaman Pengaturan API

Gambar IV. 21 Tampilan Halaman Laporan

(55)

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;

(56)

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'){

(57)

$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;

} }

(58)

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);

(59)

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) {

(60)

$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');

(61)

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

(62)

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

(63)

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

(64)

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

(65)

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

Gambar

Gambar III.1   Struktur Organisasi
Gambar III. 2
Gambar IV. 1  Use Case Diagram  Berikut deskripsi use case diagram Admin yaitu :
Tabel IV. 2
+7

Referensi

Dokumen terkait

Naskah yang diterima sesuai batas waktu yang telah ditentukan akan diseleksi dan ditetapkan 15 essay dengan nilai akumulasi tertinggi dari juri untuk dipresentasikan pada saat

Hasil dari penelitian kepadatan di Desa Bogoarum Kecamatan Plaosan Kabupaten Magetan yang didapatkan presentase 87% mempunyai kepadatan hunian rumah tinggal kurang

Strategi pembelian material impor yang dapat dilakukan untuk menghindari terjadinya perubahan nilai tukar mata uang asing terhadap rupiah adalah dengan selalu

2) Pada tataran akomodasi mahasiswa meyakini nilai-nilai yang terkandung dalam pernikahan dan berkeluarga sebagai upaya untuk menciptakan masyarakat yang bermartabat.

Sistem pemeliharaan yang dilaksanakan peternak tidak terlepas dari bagaimana kondisi perbedaan karakteristik sosial ekonomi peternak, kondisi itu meliputi umur peternak,

Dan bila dibandingkan dengan Perlakuan 3(P3) nampak sangat jauh selisish skor kerusakannya, hal ini karena filtrat tauge kacang hijau yang semakin optimal dalam dosis yang

Olahraga bagi lansia bila dilakukan dengan terprogram akan mempunyai beberapa manfaat, diantaranya adalah untuk mempertahankan kesehatan, meningkatkan kekuatan

Penulis panjr1tkan puji dan syukur kehadirat Allah SWT atas karunia dan rahmat yang telah dilimpahkan-Nya, sehingga penulis dapat menyelesaikan tesis yang berjudul