Implementasi Algoritma Elgamal Untuk Keamanan Sms Pada Android
Daftar Pustaka
Kurniawan, Y. 2004. Kriptografi Keamanan Internet dan Jaringan Komunikasi.
Bandung: Informatika.
Mollin, R. A. 2007. An Introduction to Cryptography. Edisi ke-2. Florida: Chapman &
Hall/CRC.
Ariyus, D. 2008. Pengantar Ilmu Kriptografi. Yogyakarta: ANDI.
Kromodimoeljo, S. 2010. Teori dan Aplikasi Kriptografi. Indonesia: SPK IT
Consulting.
Sadikin, R. 2012. Kriptografi untuk Keamanan Jaringan dan Implementasinya dalam
Bahasa Java. Yogyakarta: ANDI.
Haq, H. A. 2013. Kombinasi Algoritma RSA dan ElGamal dalam Implementasi
Algoritma Kriptografi. Skripsi. Universitas Sumatera Utara.
Harahap,
A.
A.
2014.Implementasi
Sistem
Keamanan
Data
MenggunakanSteganografi Teknik Pemetaan Titik HitamDengan Pencarian
SekuensialDan Rabin Cryptosystem. Skripsi. Universitas Sumatera Utara.
Nasution, L. A. 2014. Implementasi Kombinasi Kriptografi Algoritma ElGamal
dengan Steganografi Least Significant Bit (LSB) berdasarkan Penyisipan
Menggunakan Fungsi Linear. Skripsi. Universitas Sumatera Utara.
Nasution, R. N. 2014. Implementasi Algoritma Hill Cipher Dan Rsa Pada Enkripsi
Hybrid Pesan Sms Di Android. Skripsi. Universitas Sumatera Utara.
Nazaruddin, S. H. 2014. Pemrograman Aplikasi Mobile Smartphone dan Tablet PC
Berbasis Android.Bandung: INFORMATIKA.
Wijayanti, R. Y. 2013. Analisis Dan Perbandingan Penggunaan Metode Pembangkitan
Bilangan Prima Fermat Dan Lucas-Lehmer Dalam Kriptografi Elgamal. Skripsi.
Universitas
Sumatera
Utara.
BAB 3
ANALISIS DAN PERANCANGAN SISTEM
3.1.Analisis Sistem
Analisis dan rancangan merupakan tahapan pengembangan sebuah sistem. Tahapan
ini akan saling berhubungan dan membentuk suatu siklus. Analisis sistem terdiri dari
tahapan-tahapan berbeda yang mendekripsikan pengembangan sistem. Dalam tugas
akhir ini, ada dua fase analisis yaitu: analisis masalah, dan analisis kebutuhan.
3.1.1. Analisis Masalah
Terdapat beberapa masalah dalam berkomunikasi, seperti ancaman keamanan dalam
bertukaran informasi rahasia sehingga memungkinkan informasi yang disampaikan
disalahgunakan. Maka untuk menggurangi ancaman ini dapat dilakukan pengkodean
terhadap informasi yang berupa pesan dengan menggunakan metode kriptografi
ElGamal. Masalah pada penelitian ini secara umum ditunjukkan menggunakan
diagram Ishikawa pada Gambar 3.1.
User
Methods
ElGamal
Sulit menjaga
kerahasiaan pesan SMS
Bahasa pemrograman Java
Menu pembangkit kunci, kirim kunci,
pesan masuk, petunjuk, keluar
Textbox sebagai penerima input
Texview sebagai penerima output
Button sebagai penerima input
Methods / Tools
Materials
Gambar 3.1 Diagram Ishikawa
Aplikasi
Penyandian Pesan
SMS
17
3.1.2. Analisis Kebutuhan
Analisis kebutuhan terbagi dua bagian, yaitu kebutuhan fungsional dan kebutuhan
nonfungsional. Kebutuhan fungsional mendeskripsikan aktivitas yang disediakan
suatu sistem. Sedangkan kebutuhan nonfungsional mendeskripsikan fitur, karakteristik
dan batasan lainnya.
3.1.2.1.Kebutuhan Fungsional
Kebutuhan fungsional mencangkup karakteristik berikut :
1. Sistem harus mampu melakukan pengiriman SMS melalu platform Android.
2. Sistem harus mampu melakukan membangkitkan kunci dengan algoritma
ElGamal.
3. Sistem harus mampu melakukan enkripsi pesan dengan algoritma ElGamal
terhadap string pesan yang akan dikirimkan sehingga menghasilkan ciphertext.
4. Sistem harus mampu melakukan dekripsi pesan terhadap ciphertext dengan
algoritma ElGamal sehingga menjadi string yang sama sebelum dikodekan.
3.1.2.2.Kebutuhan NonFungsional
Kebutuhan nonfungsional mencakup karakteristik berikut:
1. Performa
Perangkat lunak yang dibangun dapat menunjukkan hasil dari fungsi kriptografi.
2. Efisiensi
Perangkat lunak yang dibangun harus sesederhana mungkin dan mudah digunakan
oleh pengguna(user) dan responsif.
3. Ekonomi
Perangkat lunak yang dibangun harus dapat bekerja dengan baik tanpa harus
mengelurkan biaya tambahan dalam penggunaan perangkat keras maupun
perankat lunak.
4. Dokumentasi
18
Perangkat lunak yang dibangun harus dapat menyimpan data hasil enkripsi dan
dekripsi pesan.
5. Manajemen kualitas
Perangkat lunak yang dibangun harus memiliki kualitas yang baik yaitu proses
pembangkitan kunci yang cepat dan proses enkripsi dan dekripsi yang akurat.
6. Kontrol
Perangkat lunak yang dibangun akan menampilkan pesan eror untuk setiap input
yang tidak sesuai.
3.2. Pemodelan Aplikasi
Pemodelan aplikasi bertujuan untuk memberikan gambaran terhadap semua kondisi
dan bagian-bagian yang berperan dalam sistem yang dirancang. Pada tugas akhir ini
pemodelan aplikasi dilakukan dengan membuat use-case diagram dan data flow
diagram.
3.2.1. Use-Case Diagram
Use-case diagram digunakan untuk mempermudah proses analisa komponenkomponen yang berperan dalam sistem yang dirancang. Use-case diagram sistem
pada aplikasi yang dirancang dapat dilihat pada gambar 3.2.
19
Membangkitkan
Kunci Publik
Menerima
SMS
≪ uses ≫
Input Kunci
Privat
Recipient
≪ uses ≫
Dekripsi
Pesan Pesan
Input SMS
≪ uses ≫
Enkripsi
Pesan
≪ uses ≫
Input Kunci
Publik
Sender
Gambar 3.2 Use Case Diagram Pada Sistem
3.2.2. Activity Diagram
Activity diagram adalah diagram aktivitas yang menjelaskan proses kerja dalam
sebuah sistem yang sedang berjalan. Dalam diagram aktivitas ini dijelaskan proses
kerja dari sistem pembangkitan kunci, enkripsi dan dekripsi yang dilakukan oleh
pengguna.
20
3.2.2.1. Activity Diagram Proses Pembangkitan Kunci
Pengguna
Pembangkitan
kunci
Sistem
Mencari bilangan prima
dan mengujinya dengan
Fermat’s Litte Theorem
Menentukan x dan g
Menampilkan nilai
kunci publik dan
kunci rahasia
Gambar 3.3ActivityDiagram Proses Pembangkitan Kunci
Berdasarkan Gambar 3.3 untuk melakukan proses pembangkit kunci, hal pertama
yang dilakukan adalah menekan tombol pembangkit kunci, kemudian sistem akan
mengacak bilangan prima dan menguji bilangan prima tersebut dengan Fermat’s Little
Theorem. Selanjutny sistem akan mencari nilai x, g,dan y.
21
3.2.2.2.Activity Diagram Proses Enkripsi Pesan
Pengirim
Input Pesan (String)
Sistem
Mengubah pesan string
menjadi integer
berdasarkan table ASCII
Input Kunci Publik
Proses Enkripsi Pesan
Mengirim Cipherteks
Menampilkan
cipherteks
Gambar 3.4ActivityDiagram Proses Enkripsi Pesan
Berdasarkan Gambar3.4 untuk melakukan proses enkripsi pesan, hal pertama yang
dilakukan adalah menginput pesan SMS, kemudian sistem akan mengubah pesan
kedalam integer berdasarkan table ASCII. Setelah itu masukkan kunci publik yang
akan digunakan untuk melakukan enkripsi. Sistem akan memproses plainteks yang
telah diinput menjadi cipherteks yang siap untuk dikirim kepada penerima.
22
3.2.2.3.Activity Diagram Proses Dekripsi Pesan
Penerima
Sistem
Menerima Cipherteks
Input Kunci Rahasia
Dekripsi pesan dengan
Algoritma ElGamal
Menghitung z=ap-1-xmod p
m=b.z mod p
Mengubah mnkarakter ke
dalam palinteks
Menampilkan nilai
kunci publik dan
kunci rahasia
Gambar 3.5ActivityDiagram Proses Dekripsi Pesan
Berdasarkan Gambar 3.5 untuk melakukan proses dekripsi terhadap cipherteks yang
diterima userharus memasukkan kunci rahasia. Setelah itu sistem akan melakukan
proses dekripsi terhadap cipherteks tersebut, sehingga akan menghasilkan plainteks
yang akan langsung ditampilkan oleh sistem. Maka penerima akan mengerti isi pesan
yang diterima dari pengirim.
23
3.3. Perancangan Sistem
3.3.1. Pembuatan Algoritma Program
Pembuatan algoritma program adalah proses penerjemahan langkah-langkah algoritma
ElGamal ke dalam sebuah bahasa pemrograman. Tahap-tahap yang dilalui dalam
proses pembuatan algoritma program yaitu:
1. Pembuatan alur sistemsecara umum
2. Pembuatan alur sistem proses pembangkitan kunci, proses enkripsi, dan dekripsi
dengan menggunakan algoritma ElGamal ke dalam bahasa pemrograman Java.
3.3.2. Alur Proses Sistem Secara Umum
Alur proses sistem secara umum dibagi menjadi tiga yaitu proses pembangkitan kunci
yang akan menghasilkan kunci publik dan kunci rahasia, proses enkripsi yang akan
menghasilkan cipherteks, dan proses dekripsi yang akan mengembalikan cipherteks
menjadi plainteks. Proses secara keseluruhan dapat dilihat pada flowchart gambaran
umum sistem pada gambar 3.6.
24
Mulai
Tidak
Menu
Ya
Tidak
Pembangkit
kunci
Buat
SMS
Ya
Bangkitkan
kunci
Tidak
Kotak
Masuk
Ya
Tidak
Ya
Input Nomor Tujuan
Input Kunci Publik
Penerima
Informasi
Tidak
Ya
Pilih SMS
Tidak
Input SMS
Dekripsi
Pesan
Menampilkan
Halaman
Informasi
Ya
Enkripsi SMS
Masukkan
Kunci Rahasia
Kunci Publik
Kunci Rahasia
Cipherteks
Dekripsi SMS
KirimSMS
Plainteks
Stop
Gambar 3.6Flowchart Gambaran Umum Sistem
3.3.3. Alur Proses Pembangkitan Kunci
Pada agoritma ElGamal proses pembangkitan kunci dapat dijelaskan sebagai berikut :
4. Pilih sembarang bilangan prima p acak yang besar. Misal p = 421
5. Uji keprimaan dengan Fermat’s Little Theorema.
Bila p = 421
Maka 1 ≤a< 421, didapat a = {1, …, 420}
a
p-1
mod p
25
421-1
20
4-1
300
420
mod 421 = 20
420
mod 421 = 30
421-1
400
mod 421 = 1
mod 421 = 1
420
mod 421 = 400 mod 421 = 1
6. Pilih dua buah bilangan acakg dan x, dengan syarat g 1) disebut bilangan prima jika pembaginya hanya 1 dan p.
Sebagai contoh bilangan 23 adalah bilangan prima karena ia hanya habis dibagi 1 dan
23. Karena bilangan prima harus lebih besar dari satu, maka barisan bilangan prima
dimulai dari 2, yaitu 2, 3, 5 , 7, 11, 13, .... Seluruh bilangan prima adalah bilangan
ganjil, kecuali dua yang merupakan bilangan genap.
10
2.1.7. Aritmatika Modulo
Aritmatika modulo merupakan sisa hasil pembagian dua bilangan. Operator yang
digunakan dalam aritmatika modulo adalah mod. Misalkan, jika bilangan integer a
dibagi dengan bilangan integer yang lebih besar dari nol(b> 0), maka akan
menghasilkan sisa bagi r (remainder) dengan hasil bagi s (quotient). Sehingga dapat
dinotasikan sebagai berikut (Harahap, A. A. 2014).
a mod b = r sedemikian sehingga a = bs + r, dengan 0 ≤ b
Kurniawan, Y. 2004. Kriptografi Keamanan Internet dan Jaringan Komunikasi.
Bandung: Informatika.
Mollin, R. A. 2007. An Introduction to Cryptography. Edisi ke-2. Florida: Chapman &
Hall/CRC.
Ariyus, D. 2008. Pengantar Ilmu Kriptografi. Yogyakarta: ANDI.
Kromodimoeljo, S. 2010. Teori dan Aplikasi Kriptografi. Indonesia: SPK IT
Consulting.
Sadikin, R. 2012. Kriptografi untuk Keamanan Jaringan dan Implementasinya dalam
Bahasa Java. Yogyakarta: ANDI.
Haq, H. A. 2013. Kombinasi Algoritma RSA dan ElGamal dalam Implementasi
Algoritma Kriptografi. Skripsi. Universitas Sumatera Utara.
Harahap,
A.
A.
2014.Implementasi
Sistem
Keamanan
Data
MenggunakanSteganografi Teknik Pemetaan Titik HitamDengan Pencarian
SekuensialDan Rabin Cryptosystem. Skripsi. Universitas Sumatera Utara.
Nasution, L. A. 2014. Implementasi Kombinasi Kriptografi Algoritma ElGamal
dengan Steganografi Least Significant Bit (LSB) berdasarkan Penyisipan
Menggunakan Fungsi Linear. Skripsi. Universitas Sumatera Utara.
Nasution, R. N. 2014. Implementasi Algoritma Hill Cipher Dan Rsa Pada Enkripsi
Hybrid Pesan Sms Di Android. Skripsi. Universitas Sumatera Utara.
Nazaruddin, S. H. 2014. Pemrograman Aplikasi Mobile Smartphone dan Tablet PC
Berbasis Android.Bandung: INFORMATIKA.
Wijayanti, R. Y. 2013. Analisis Dan Perbandingan Penggunaan Metode Pembangkitan
Bilangan Prima Fermat Dan Lucas-Lehmer Dalam Kriptografi Elgamal. Skripsi.
Universitas
Sumatera
Utara.
BAB 3
ANALISIS DAN PERANCANGAN SISTEM
3.1.Analisis Sistem
Analisis dan rancangan merupakan tahapan pengembangan sebuah sistem. Tahapan
ini akan saling berhubungan dan membentuk suatu siklus. Analisis sistem terdiri dari
tahapan-tahapan berbeda yang mendekripsikan pengembangan sistem. Dalam tugas
akhir ini, ada dua fase analisis yaitu: analisis masalah, dan analisis kebutuhan.
3.1.1. Analisis Masalah
Terdapat beberapa masalah dalam berkomunikasi, seperti ancaman keamanan dalam
bertukaran informasi rahasia sehingga memungkinkan informasi yang disampaikan
disalahgunakan. Maka untuk menggurangi ancaman ini dapat dilakukan pengkodean
terhadap informasi yang berupa pesan dengan menggunakan metode kriptografi
ElGamal. Masalah pada penelitian ini secara umum ditunjukkan menggunakan
diagram Ishikawa pada Gambar 3.1.
User
Methods
ElGamal
Sulit menjaga
kerahasiaan pesan SMS
Bahasa pemrograman Java
Menu pembangkit kunci, kirim kunci,
pesan masuk, petunjuk, keluar
Textbox sebagai penerima input
Texview sebagai penerima output
Button sebagai penerima input
Methods / Tools
Materials
Gambar 3.1 Diagram Ishikawa
Aplikasi
Penyandian Pesan
SMS
17
3.1.2. Analisis Kebutuhan
Analisis kebutuhan terbagi dua bagian, yaitu kebutuhan fungsional dan kebutuhan
nonfungsional. Kebutuhan fungsional mendeskripsikan aktivitas yang disediakan
suatu sistem. Sedangkan kebutuhan nonfungsional mendeskripsikan fitur, karakteristik
dan batasan lainnya.
3.1.2.1.Kebutuhan Fungsional
Kebutuhan fungsional mencangkup karakteristik berikut :
1. Sistem harus mampu melakukan pengiriman SMS melalu platform Android.
2. Sistem harus mampu melakukan membangkitkan kunci dengan algoritma
ElGamal.
3. Sistem harus mampu melakukan enkripsi pesan dengan algoritma ElGamal
terhadap string pesan yang akan dikirimkan sehingga menghasilkan ciphertext.
4. Sistem harus mampu melakukan dekripsi pesan terhadap ciphertext dengan
algoritma ElGamal sehingga menjadi string yang sama sebelum dikodekan.
3.1.2.2.Kebutuhan NonFungsional
Kebutuhan nonfungsional mencakup karakteristik berikut:
1. Performa
Perangkat lunak yang dibangun dapat menunjukkan hasil dari fungsi kriptografi.
2. Efisiensi
Perangkat lunak yang dibangun harus sesederhana mungkin dan mudah digunakan
oleh pengguna(user) dan responsif.
3. Ekonomi
Perangkat lunak yang dibangun harus dapat bekerja dengan baik tanpa harus
mengelurkan biaya tambahan dalam penggunaan perangkat keras maupun
perankat lunak.
4. Dokumentasi
18
Perangkat lunak yang dibangun harus dapat menyimpan data hasil enkripsi dan
dekripsi pesan.
5. Manajemen kualitas
Perangkat lunak yang dibangun harus memiliki kualitas yang baik yaitu proses
pembangkitan kunci yang cepat dan proses enkripsi dan dekripsi yang akurat.
6. Kontrol
Perangkat lunak yang dibangun akan menampilkan pesan eror untuk setiap input
yang tidak sesuai.
3.2. Pemodelan Aplikasi
Pemodelan aplikasi bertujuan untuk memberikan gambaran terhadap semua kondisi
dan bagian-bagian yang berperan dalam sistem yang dirancang. Pada tugas akhir ini
pemodelan aplikasi dilakukan dengan membuat use-case diagram dan data flow
diagram.
3.2.1. Use-Case Diagram
Use-case diagram digunakan untuk mempermudah proses analisa komponenkomponen yang berperan dalam sistem yang dirancang. Use-case diagram sistem
pada aplikasi yang dirancang dapat dilihat pada gambar 3.2.
19
Membangkitkan
Kunci Publik
Menerima
SMS
≪ uses ≫
Input Kunci
Privat
Recipient
≪ uses ≫
Dekripsi
Pesan Pesan
Input SMS
≪ uses ≫
Enkripsi
Pesan
≪ uses ≫
Input Kunci
Publik
Sender
Gambar 3.2 Use Case Diagram Pada Sistem
3.2.2. Activity Diagram
Activity diagram adalah diagram aktivitas yang menjelaskan proses kerja dalam
sebuah sistem yang sedang berjalan. Dalam diagram aktivitas ini dijelaskan proses
kerja dari sistem pembangkitan kunci, enkripsi dan dekripsi yang dilakukan oleh
pengguna.
20
3.2.2.1. Activity Diagram Proses Pembangkitan Kunci
Pengguna
Pembangkitan
kunci
Sistem
Mencari bilangan prima
dan mengujinya dengan
Fermat’s Litte Theorem
Menentukan x dan g
Menampilkan nilai
kunci publik dan
kunci rahasia
Gambar 3.3ActivityDiagram Proses Pembangkitan Kunci
Berdasarkan Gambar 3.3 untuk melakukan proses pembangkit kunci, hal pertama
yang dilakukan adalah menekan tombol pembangkit kunci, kemudian sistem akan
mengacak bilangan prima dan menguji bilangan prima tersebut dengan Fermat’s Little
Theorem. Selanjutny sistem akan mencari nilai x, g,dan y.
21
3.2.2.2.Activity Diagram Proses Enkripsi Pesan
Pengirim
Input Pesan (String)
Sistem
Mengubah pesan string
menjadi integer
berdasarkan table ASCII
Input Kunci Publik
Proses Enkripsi Pesan
Mengirim Cipherteks
Menampilkan
cipherteks
Gambar 3.4ActivityDiagram Proses Enkripsi Pesan
Berdasarkan Gambar3.4 untuk melakukan proses enkripsi pesan, hal pertama yang
dilakukan adalah menginput pesan SMS, kemudian sistem akan mengubah pesan
kedalam integer berdasarkan table ASCII. Setelah itu masukkan kunci publik yang
akan digunakan untuk melakukan enkripsi. Sistem akan memproses plainteks yang
telah diinput menjadi cipherteks yang siap untuk dikirim kepada penerima.
22
3.2.2.3.Activity Diagram Proses Dekripsi Pesan
Penerima
Sistem
Menerima Cipherteks
Input Kunci Rahasia
Dekripsi pesan dengan
Algoritma ElGamal
Menghitung z=ap-1-xmod p
m=b.z mod p
Mengubah mnkarakter ke
dalam palinteks
Menampilkan nilai
kunci publik dan
kunci rahasia
Gambar 3.5ActivityDiagram Proses Dekripsi Pesan
Berdasarkan Gambar 3.5 untuk melakukan proses dekripsi terhadap cipherteks yang
diterima userharus memasukkan kunci rahasia. Setelah itu sistem akan melakukan
proses dekripsi terhadap cipherteks tersebut, sehingga akan menghasilkan plainteks
yang akan langsung ditampilkan oleh sistem. Maka penerima akan mengerti isi pesan
yang diterima dari pengirim.
23
3.3. Perancangan Sistem
3.3.1. Pembuatan Algoritma Program
Pembuatan algoritma program adalah proses penerjemahan langkah-langkah algoritma
ElGamal ke dalam sebuah bahasa pemrograman. Tahap-tahap yang dilalui dalam
proses pembuatan algoritma program yaitu:
1. Pembuatan alur sistemsecara umum
2. Pembuatan alur sistem proses pembangkitan kunci, proses enkripsi, dan dekripsi
dengan menggunakan algoritma ElGamal ke dalam bahasa pemrograman Java.
3.3.2. Alur Proses Sistem Secara Umum
Alur proses sistem secara umum dibagi menjadi tiga yaitu proses pembangkitan kunci
yang akan menghasilkan kunci publik dan kunci rahasia, proses enkripsi yang akan
menghasilkan cipherteks, dan proses dekripsi yang akan mengembalikan cipherteks
menjadi plainteks. Proses secara keseluruhan dapat dilihat pada flowchart gambaran
umum sistem pada gambar 3.6.
24
Mulai
Tidak
Menu
Ya
Tidak
Pembangkit
kunci
Buat
SMS
Ya
Bangkitkan
kunci
Tidak
Kotak
Masuk
Ya
Tidak
Ya
Input Nomor Tujuan
Input Kunci Publik
Penerima
Informasi
Tidak
Ya
Pilih SMS
Tidak
Input SMS
Dekripsi
Pesan
Menampilkan
Halaman
Informasi
Ya
Enkripsi SMS
Masukkan
Kunci Rahasia
Kunci Publik
Kunci Rahasia
Cipherteks
Dekripsi SMS
KirimSMS
Plainteks
Stop
Gambar 3.6Flowchart Gambaran Umum Sistem
3.3.3. Alur Proses Pembangkitan Kunci
Pada agoritma ElGamal proses pembangkitan kunci dapat dijelaskan sebagai berikut :
4. Pilih sembarang bilangan prima p acak yang besar. Misal p = 421
5. Uji keprimaan dengan Fermat’s Little Theorema.
Bila p = 421
Maka 1 ≤a< 421, didapat a = {1, …, 420}
a
p-1
mod p
25
421-1
20
4-1
300
420
mod 421 = 20
420
mod 421 = 30
421-1
400
mod 421 = 1
mod 421 = 1
420
mod 421 = 400 mod 421 = 1
6. Pilih dua buah bilangan acakg dan x, dengan syarat g 1) disebut bilangan prima jika pembaginya hanya 1 dan p.
Sebagai contoh bilangan 23 adalah bilangan prima karena ia hanya habis dibagi 1 dan
23. Karena bilangan prima harus lebih besar dari satu, maka barisan bilangan prima
dimulai dari 2, yaitu 2, 3, 5 , 7, 11, 13, .... Seluruh bilangan prima adalah bilangan
ganjil, kecuali dua yang merupakan bilangan genap.
10
2.1.7. Aritmatika Modulo
Aritmatika modulo merupakan sisa hasil pembagian dua bilangan. Operator yang
digunakan dalam aritmatika modulo adalah mod. Misalkan, jika bilangan integer a
dibagi dengan bilangan integer yang lebih besar dari nol(b> 0), maka akan
menghasilkan sisa bagi r (remainder) dengan hasil bagi s (quotient). Sehingga dapat
dinotasikan sebagai berikut (Harahap, A. A. 2014).
a mod b = r sedemikian sehingga a = bs + r, dengan 0 ≤ b