bab ii tinjauan pustaka - Universitas Sumatera Utara

advertisement
BAB II
TINJAUAN PUSTAKA
2.1 Kriptografi
Kriptografi atau Cryptography berasal dari kata kryptos yang artinya tersembunyi dan
grafia yang artinya sesuatu yang tertulis (bahasa Yunani) sehingga kriptografi dapat
juga disebut sebagai sesuatu yang tertulis secara rahasia(tersembunyi).
Cryptography adalah ilmu yang mempelajari teknik-teknik matematika yang
berhubungan dengan aspek-aspek pada keamanan informasi misalnya kerahasiaan,
integritas data, otentikasi pengirim / penerima data, dan otentikasi data. Dengan
pengembangan bidang cryptography, pembagian antara apa yang termasuk
cryptography dan apa yang tidak telah menjadi kabur. Dewasa ini, cryptography dapat
dianggap sebagai perpaduan antara studi teknik dan aplikasi yang tergantung kepada
keberadaan masalah – masalah sulit.
Bagi kebanyakan orang, cryptography lebih diutamakan dalam menjaga
komunikasi agar tetap rahasia. Seperti yang telah diketahui dan disetujui bahwa
perlindungan (proteksi) terhadap komunikasi yang sensitif telah menjadi penekanan
kriptografi selama ini. Akan tetapi hal tersebut hanyalah sebagian dari penerapan
kriptografi dewasa ini.
2.2 Tujuan Kriptografi
Kriptografi merupakan suatu ilmu mengenai teknik matematis yang ditujukan pada
aspek pengamanan data yang meliputi tingkat kepercayaan terhadap data tersebut,
integritas data, dan otentifikasi terhadap keaslian data. Untuk mencapai ini, perlu
ditetapkan suatu tujuan sebagai titik tolak dalam pengembangan ilmu kriptografi itu
sendiri. Menurut Rhee, tujuan dari kriptografi dapat memenuhi satu atau lebih dari
hal-hal berikut ini:
1.
Melakukan proteksi terhadap sistem komputer yang khusus ditujukan untuk
pemrosesan dan penyimpanan data.
2. Melakukan pencegahan terhadap tindakan yang tidak mendapat otoritas untuk
mengambil ataupun menghapus suatu informasi dari pesan-pesan yang dikirim
melalui saluran terbuka.
Universitas Sumatera Utara
3. Melakukan pencegahan terhadap tindakan yang tidak mendapat otoritas untuk
memodifikasi data ataupun informasi pada saluran terbuka.
Sejalan dengan penjabaran dari Man Young Rhee, Menezes menjelaskan
tujuan dari kriptografi sebagai berikut:
a. Confidentiality.
Menjaga muatan informasi dari campur tangan pihak-pihak lain, selain yang memiliki
otoritas.
b. Data Integrity.
Meyakinkan tidak terjadinya pengubahan data oleh pihak yang tidak memiliki
otoritas. Untuk meyakinkan integritas dari suatu data, harus dapat dilakukan
pendeteksian apakah data tersebut telah mengalami manipulasi. Manipulasi data
meliputi penyisipan, penghapusan, dan pensubstitusian.
c. Authentication.
Fungsi untuk pemberian identifikasi. Fungsi ini diberikan baik kepada pengirim
maupun kepada penerima informasi itu sendiri. Kedua belah pihak yang ingin
melakukan komunikasi sebaiknya dapat saling melakukan identifikasi. Informasi yang
dikirimkan sebaiknya dapat dipastikan sumbernya, keasliannya, muatannya, waktu
pembuatannya, dan lain-lain.
d. Non-Repudiation.
Mencegah suatu pihak yang menyangkal telah melakukan pengiriman pesan ataupun
informasi.
2.3 Teknik Dalam Cryptography
Berdasarkan jumlah kunci yang digunakan, ada dua jenis sistem cryptography yaitu
sistem cryptography simetris dan sistem cryptography asimetris.
2.3.1. Sistem Cryptography Simetris
Enkripsi simetris sering juga disebut sebagai enkripsi konvensional atau enkripsi
kunci-tunggal (single key). Pada model enkripsi simetris ini digunakan algoritma yang
sama untuk proses enkripsi/dekripsi dengan memakai satu kunci yang sama.
Universitas Sumatera Utara
kunci
enkripsi
plaintext
dekripsi
ciphertext
plaintext
Gambar 2.1. Model Sederhana Sistem Cryptography Simetris
Keamanan dari enkripsi simetris bergantung pada beberapa faktor. Pertama,
algoritma enkripsi harus cukup kuat sehingga tidaklah praktis untuk mendekripsi suatu
pesan hanya dengan memiliki ciphertext saja.
2.3.2. Sistem Cryptography Asimetris
Sistem cryptography asimetris biasanya lebih dikenal dengan cryptography kuncipublik (public-key cryptography).ide cryptography asimetris ini pertama kali
dimunculkan oleh whitfield diffie dan martin hellman pada tahun 1976. Diffie dan
hellman mempostulatkan sistem ini tanpa menunjukkan algoritmanya.
kunci publik
kunci pribadi
penerima
plaintext
enkripsi
penerima
ciphertext
dekripsi
plaintext
Gambar 2.2. Model Sederhana Sistem Cryptography Asimetris.
2.4 Aritmatika Modulo
Aritmatika modulo merupakan sisa hasil pembagian 2 (dua) bilangan. Operator yang
digunakan dalam aritmatika modulo adalah mod. Misalkan a adalah bilangan bulat
dibagi dengan m adalah bilangan bulat > 0 , maka akan menghasilkan sisa bagi r
dengan q adalah hasil bagi. Sehingga dapat dinotasikan sebagai berikut :
a mod m = r sedemikian sehingga a = mq + r, dengan 0 ≤ r < m
Universitas Sumatera Utara
Contoh :
35 mod 8 = 3, dimana 35 = (4*8) + 3
2.5 Greatest Common Divisor (GCD)
Greatest common divisor (GCD) merupakan bilangan bulat terbesar yang merupakan
pembagi yang sama dari dua bilangan bulat. Misalkan a dan b adalah 2 (dua) bilangan
bulat yang tidak nol. Greatest common divisor (GCD) dari a dan b adalah bilangan
bulat terbesar c sedemikian sehingga c|a dan c|b. Greatest common divisor (GCD) dari
a dan b dapat dinotasikan dengan gcd(a,b).
Contoh :
GCD(60,45) adalah :
60 mod 45 = 15
30 mod 15 = 0
Karena telah menghasilkan sisa pembagian sama dengan 0, maka proses berakhir dan
didapatlah GCD(60,45) = 15.
2.6 Bilangan Prima
Bilangan prima adalah bilangan bulat positif a, dimana a ≥ 2 hanya dapat dibagi
dengan 1 dan bilangan itu sendiri. Seluruh bilangan prima adalah bilangan ganjil,
kecuali 2 yang merupakan bilangan genap. Contoh bilangan prima adalah 2, 3, 5, 7,
11, 13, 17, ….
Untuk menguji apakah n merupakan bilangan prima atau bukan, kita cukup
membagi n dengan sejumlah bilangan prima, dengan syarat bilangan prima ≤ √n. Jika
n habis dibagi dengan salah satu dari bilangan prima tersebut, maka n bukan bilangan
prima, tetapi jika n tidak habis dibagi oleh semua bilangan prima tersebut, maka n
adalah bilangan prima.
Terdapat metode lain yang dapat digunakan untuk menguji keprimaan suatu bilangan
bulat yaitu Rabin Miller, Pilih nilai p sebarang, lakukan perhitungan b dengan nilai b
adalah nilai jumlah perkalian 2 dibagi (p-1) kemudian hitung nilai m dengan rumus:
p = 1 + 2 b* m
1. pilih nilai random, a kurang dari p
2. set j = 0 set z = am mod p
Universitas Sumatera Utara
3. jika = - 1 atau jika z = p -1 maka p valid akan kemungkinan prima
4. jika j > 0 dan z = 1 maka p bukan prima
5. set j = j + 1, jika j < b dan z  p -1, set z = z2 mod p dan lakukan proses 4 jika
z = p-1, maka p valid kemungkinan prima
6. jika j=b dan z  p-1 maka p bukan prima
2.7 Relatif Prima
Dua bilangan bulat a dan b dikatakan relatif prima jika GCD(a,b) = 1. Bilanganbilangan a1, a2, …, an adalah relatif prima berpasangan (pairwise relatively prime)
jika GCD(ai, aj) = 1 untuk 1 ≤ i < j ≤ n.
Dengan demikian, sekumpulan bilangan bisa ditunjukkan apakah relatif prima
atau tidak dengan mengevaluasi GCD dari semua pasangan bilangan yang mungkin.
Jika GCD pasangan-pasangan tersebut semuanya bernilai 1, maka syarat pairwise
relatively prime dipenuhi. Sebaliknya, jika salah satu GCD dari pasangan bilangan
tersebut tidak sama dengan 1, maka kumpulan bilangan tersebut bukan pairwise
relatively prime. Dan 2 (dua) bilangan prima pasti adalah pairwise relatively prime.
Contoh :
GCD(27,15) adalah :
27 mod 15 = 12
15 mod 12 = 3
12 mod 3 = 0
Bilangan-bilangan 27 dan 15 adalah bukan pairwise relatively prime karena
GCD(27,15) = 3.
GCD(11,7) adalah :
11 mod 7 = 4
7 mod 4 = 3
4 mod 3 = 1
3 mod 1 = 0
Bilangan – bilangan prima 11 dan 7 adalah pairwise relatively prime karena
GCD(11,7) = 1.
Universitas Sumatera Utara
2.8 Algoritma Euclid
Algoritma ini digunakan untuk mencari nilai pembagi persekutuan terbesar dari 2
(dua) bilangan bulat. Algoritma ini didasarkan pada pernyataan berikut ini :
Dua bilangan bilangan bulat positif r0 dan r1 , dengan r0 ≥ r1, kemudian dihitung
menggunakan algoritma pembagian :
r0 = q1 * r1 + r2,
0 < r 2 < r1
r1 = q2 * r2 + r3,
0 < r 3 < r2
rn-2 = qn-1 * rn-1 + rn
0 < rn < rn-1
rn-1 = qn * rn
Universitas Sumatera Utara
Dari pernyataan tersebut, dapat diperoleh :
GCD(r0 , r1) = GCD(r1 , r2) = ……….. = GCD(rn-1,rn) = GCD(rn,0) = rn
(2.1)
Contoh :
GCD(40,24) adalah :
40 = 1*24 + (40-24)
40 = 1*24 + 16
24 = 1*16 + (24 – 16)
24 = 1*16 + 8
16 = 2*8
Jadi, GCD(40,24)=8.
2.9 Extended Euclidean
Algoritma Extended Euclidean ini merupakan perluasan dari algoritma Euclide yang
berfungsi untuk menentukan nilai x dan y sedemikian sehingga r0*x + r1*y =
GCD(r0,r1) dengan r0 , r1 merupakan bilangan bulat positif serta x dan y merupakan
bilangan bulat. Dua bilangan bulat r0 dan r1 yang merupakan pairwise relatively prime
dapat menemukan bilangan bulat x dan y sedemikian sehingga r0*x + r1*y = 1.
Dengan menggunakan algoritma Euclid dan rumus :
tj = tj-2 - qj–1 * tj-1 , j ≥ 2
(2.2)
dengan tj adalah suatu barisan bilangan t1 , t2 , t3 ,…, tn dan qj diperoleh dari
perhitungan GCD(r0 , r1 ) = 1 dengan r1-1 = tn. Sehingga diperoleh :
rn = tn*r1 atau 1 = tn*r1
(2.3)
Universitas Sumatera Utara
Contoh : 11x + 23y = 1
Hasil
Sisa
Bagi
Bagi
-
Subsitusi
Penggabungan
11
-
11 = 11*1 + 23*0
-
23
-
23 = 11*0 + 23*1
0
11
11=(11*1+23*0) – (11*0 + 23*1)*0
11 = 11*1 +23*0
2
1
1 = (11*0 + 23*1) – (11*1 + 23*0)*2 1 = 11*(-2) + 23*1
11
0
Karena sisa bagi mencapai 0, maka proses berakhir
Hasil akhir yang diperoleh adalah 1 = 11*(-2) + 23*1, sehingga didapat nilai x = -2
dan y = 1.
2.10 Algoritma Rabin Public Key
Algoritma Rabin Public Key pertama kali diperkenalkan pada tahun 1979 oleh
Michael O. Rabin. Algoritma Rabin Public Key adalah salah satu sistem kriptografi
asimetris yang menggunakan kunci publik dan kunci privat. Algoritma Rabin Public
Key merupakan varian algoritma Rivest Shamir Adleman (RSA). Fungsi dasar
algoritmanya mirip dengan fungsi dasar dari algoritma RSA. Hanya saja
komputasinya lebih sederhana dibandingkan algoritma RSA.
 Proses Pembangkitan Kunci
Pada algoritma Rabin Public Key, proses pembangkitan kuncinya dilakukan sebagai
berikut :
1. Pilih 2 (dua) buah bilangan prima besar sembarang yang saling berbeda (p dan
q), dimana p ≡ q ≡ 3 (mod 4). Atau dengan kata lain jika p dan q di modulo 4
akan menghasilkan 3.
2. Hitung nilai n yang merupakan kunci publik dengan rumus sebagai berikut:
n = p * q dengan p dan q adalah kunci privat.
Untuk mengenkripsi pesan hanya dibutuhkan kunci publik n, sedangkan untuk
dekripsi, dibutuhkan bilangan p dan q sebagai kunci privat.
 Proses Enkripsi
Universitas Sumatera Utara
Proses enkripsi pada algoritma Rabin Public Key menggunakan kunci publik n. Pada
proses dekripsi menggunakan Algoritma Rabin Public Key akan menghasilkan 4
(empat) buah kemungkinan plaintext. Oleh karena itu, diperlukan modifikasi dalam
proses enkripsi dan dekripsi untuk menentukan plaintext yang sebenarnya. Berikut
langkah–langkah proses enkripsi pesan rahasia menggunakan algoritma Rabin Public
Key yang telah dimodifikasi adalah :
1. Ubah nilai plaintext m menjadi nilai biner, kemudian tambahkan dengan nilai
biner m itu sendiri (redundant information) atau dengan kata lain plainteks
digandakan.
2. Ubah hasil penggandaan nilai biner plaintext menjadi nilai desimalnya.
3. Hitung nilai k yang merupakan kongruen nilai desimal dari hasil penggandaan
plaintext m terhadap kunci publik n dengan menggunakan rumus :
Hitung nilai ciphertext c dengan menggunakan rumus :
c = m 2 mod n
dengan c adalah ciphertext, n adalah kunci publik, dan m adalah nilai desimal dari
hasil penggandaan nilai biner plaintext.
 Metode dekripsi
Proses enkripsi pada algoritma Rabin Public Key menggunakan kunci privat p dan q.
Berikut langkah–langkah proses dekripsi dengan menggunakan algoritma Rabin
Public Key yang telah dimodifikasi:
1. Tentukan nilai Yp dan Yq yang merupakan pembagi GCD (Greatest Common
Divisor) dari p dan q dengan menggunakan Algoritma Extended Euclidean. Karena
GCD bilangan prima adalah 1, maka dapat ditulis sebagai berikut :
Yp*p + Yq * q = 1
2. Hitunglah nilai akar kuadrat dari ciphertext terhadap p dan q dengan rumus:
Universitas Sumatera Utara
dengan mp adalah akar kuadrat dari ciphertext terhadap p dan mq adalah akar kuadrat
dari ciphertext terhadap q.
3. Hitung nilai r, s, t dan u dengan menggunakan Chinese Remainder Theorem,
dengan persamaan berikut :
r = (Yp*p* mq + Yq * q* mp ) mod n
s = (Yp*p* mq - Yq * q* mp ) mod n
t = ( -Yp*p* mq + Yq * q* mp ) mod n
u = ( -Yp*p* mq - Yq * q* mp ) mod n
4. Tambahkan r,s,t,u dengan kongruen nilai desimal hasil penggandaan plainteks k
yang dikalikan dengan kunci publik n.
R = (k*n)+r
S = (k*n)+s
T = (k*n)+t
U = (k*n)+u
5. Ubahlah nilai desimal R,S,T,U ke dalam bentuk biner. Kemudian nilai biner R,S,T,U
dibagi menjadi 2 (dua) bagian. Bandingkan kedua bagian tersebut. Jika kedua
bagian tersebut menghasilkan bentuk biner yang sama, maka didapatlah hasil
dekripsi ciphertext c dengan mengubah bentuk biner salah satu bagian yang telah
dibagi menjadi 2(dua) bagian yang sama.
2.11 Rivest Shamir Adleman ( RSA )
Dari sekian banyak algoritma kriptografi kunci-publik yang pernah dibuat, algoritma
yang paling popular adalah algoritma RSA. Keamanan algoritma RSA terletak pada
sulitnya memfaktorkan bilangan yang besar menjadi factor-faktor prima. Pemfaktoran
Universitas Sumatera Utara
dilakukan untuk memperoleh kunci privat. Selama pemfaktoran bilangan besar
menjadi factor-faktor prima belum ditemukan algoritma yang mangkus, maka selama
itu pula keamanan algoritma RSA tetap terjamin.
Algoritma RSA memiliki besaran-besaran sebagai berikut :
1. p dan q bilangan prima
(rahasia)
2. n = p x q
(tidak rahasia)
3. (n) = (p-1)(q-1)
(rahasia)
4. e ( kunci enkripsi )
(tidak rahasia)
5. d ( kunci dekripsi )
( rahasia )
6. m ( plainteks )
( rahasia )
7. c (cpherteks)
( tidak rahasia )
RSA adalah suatu blok sandi rahasia tempat teks asli dan teks rahasia
merupakan bilangan bulat antara 0 dan n-1 untuk beberapa n. Enkripsi dan dekripsi
berasal dari beberapa bentuk berikut ini, untuk beberapa blok teks asli M dan blok
teks rahasia C.
C = M‘ mod n
M = Cd mod n = (Me)d mod n = Med od n
Blok pengirim meupun penerima harus mengetahui nilai n dan e, dan hanya
penerima saja yang mengetahui nilai d. ini merupakan algoritma enkripsi kunci umum
dengan kunci umum sebesar KU = {e,n} dan kunci khusus sebesar KR = {d,n}. Agar
algoritma ini bisa memenyhi syarat sebagai enkripsi kunci umum yang baik, maka
harus memenuhi ketentuan-ketentuan seperti berikut :
1. kemungkinan menemukan nilai e,d,n sedemikian rupa sehingga Med = M mod
n untuk semua M < n
2. relative mudah menghitung Me dan Cd untuk semua nilai M < n
3. tidak mudah menghitung menentukan d, yang diberi e dan n.
dua ketentuan pertama bisa terpenuhi dengan mudah. Sedangkan ketentuan ketiga
baru bisa terpenuhi untuk nilai e dan n yang besar.
 Pembangkitan Kunci
1) Memilih dua bilangan prima p, q . bilangan ini harus cukup besar (minimal
100 digit)
2) Menghitung n = p . q. Bilangan n disebut parameter security
Universitas Sumatera Utara
(sebaiknya p ≠ q, sebab jika p = q maka n = p2 sehingga p dapat diperoleh
dengan menarik akar pangkat dua dari n)
3) Menghitung φ(n) = (p-1)(q-1).
4) Memilih bilangan bulat e dengan algoritma Euclid yaitu gcd(φ(n),e)=1; dimana
1< e < φ(n).
5) Menghitung d dengan rumus d = e-1 mod φ(n)
Atau e . d  1 (mod φ(n)).
Perhatikan bahwa e . d  1 (mod φ(n)) ekivalen dengan e . d = 1 + k φ(n),
sehingga secara sederhana d dapat dihitung dengan :
d = ( 1 + k . φ(n)) / e
6) Kunci umum (kunci public) adalah KU = {e,n}
7) Kunci pribadi (kunci privat adalah KR = {d,n}
Catatan : n tidak bersifat rahasia, sebab ia diperlukan pada perhitungan
enkripsi/dekripsi
 Enkripsi
B mengenkripsi message M untuk A, yang harus dilakukan B :
1) Teks asli dengan syarat M < n
2) Ambil kunci public A yang otentik (n,e)
3) Representasikan message sebagai integer M dalam interval [0,n-1]
4) Teks Rahasia didapat dari C = Me (mod n)
5) Kirim C ke A
 Dekripsi
Untuk mendekripsi, A melakukan
1) Gunakan kunci pribadi d untuk menghasilkan M
2) Teks rahasia adalah C
3) Teks asli didapat dari M = Cd (mod n)
Universitas Sumatera Utara
2.12
Riset Terkait
Dalam melakukan penelitian, penulis menggunakan beberapa riset terkait yang
dijadikan acuan yang membuat penelitian berjalan lancar. Adapun riset – riset terkait
tersebut adalah :
Tabel 2.1 Riset Terkait
Nama peneliti
dan tahun
Aji supriyanto,
2009
Algoritma/metode
yang digunakan
Algoritma
kunci
asimetris
(kunci
public) dan hash
sha1
Implementasi
algoritma
kunci
public
pada
algoritma rsa
Hersatoto
listiyono, 2009
Algoritma rsa
3
Aplikasi kriptografi untuk
pengamanan
E-dokumen
dengan
metode hybrid :
Biometrik tandatangan dan
dsa (digital
Signature algorithm)
Ana wahyuni,
2011
Metode hybrid :
biometrik
tandatangan dan dsa
(digital
Signature
algorithm)
4
Analisis
kriptografi
menggunakan algoritma
Vigenere cipher dengan
mode operasi
Cipher block chaining
(cbc)
Modul
pembelajaran
enkripsi
dengan
menggunakan
algoritma
DES
(Data
Enkripsi
Standart)
melalu
visualisasi
Erna
kumalasari
nurnawati,
2008
Algoritma vigenere
chiper dan mode
operasi cbc
Diyah Krisna
Yuliana, 2009
algoritma
kriptografi
double des
triple des
No.
Judul riset
1
Pemakaian
kriptografi
kunci publik untuk proses
enkripsi dan tandatangan
digital pada dokumen email
2
5
des,
dan
Hasil penelitian
Sistem
keamanan
ini
dapat
memberikan Keamanan otentikasi
dokumen e-mail,Untuk menghindari
jebolnya atau Tembusnya keamanan
yang diterapkan email Standar seperti
pgp.
Dengan
algoritma
rsa
proses
Dekripsinya sangat sulit, walaupun
Menggunakan supercomputer dan
ribuan
Tahun,
tidak
dapat
mendekripsi pesan tanpa Mempunyai
kunci private.
Pada
implementasi
tandatangan
digital dengan metode hybrid :
Biometrik tandatangan dan dsa
terpenuhi
kebutuhan
keamanan
edokumen.Dalam hal kerahasiaan
(confidentiality) Dan keutuhan atau
keotentikan (integrity) e-dokumen
yang Ditransmisi, dijamin dengan
hash sha-1 dari e-dokumen
Tersebut.
Penggabungan algoritma vigenere
chiper dan mode operasi cbc ini akan
menghasilkan
Suatu metode baru yang peneliti
sebut vigenere chiper +
Dapat
memberikan
penjelasan
mengenai bagaimana jalannya suatu
proses
dengan
menggunakan
algoritma DES sehingga dapat lebih
mudah memahami.
2.13 Persamaan Dengan Riset Yang Lain
Adapun persamaan penelitian ini dengan penelitian sebelumnya adalah sama – sama
menggunakan algoritma kunci public salah satunya algoritma kriptografi Rivest
Shamir Adleman ( RSA ) untuk proses pengamanan data.
2.14 Perbedaan Dengan Riset Yang Lain
Dalam Penelitian ini, dilakukan perbandingan kinerja antara algoritma Rabin dan
RSA, dengan menganalisis tingkat keamanan dan tingkat kecepatan dalam
Universitas Sumatera Utara
memprosesan data.Sehingga dari aplikasi ini diketahui kelebihan dan kekurangan dari
masing – masing algoritma .
2.15 Kontribusi Riset
Penelitian ini memberikan pemahaman tentang pentingnya aspek keamanan suatu
pesan teks, apalagi pesan yang ingin disampaikan bersifat rahasia. Dengan
mengimplementasikan algoritma kriptografi dan Rivest Shamir Adleman ( RSA ) pada
pesan teks, maka kita dapat mengetahui algoritma mana yang cocok dan yang sangat
baik dalam melakukan pengiriman dan pengamanan pesan, sehingga pesan yang akan
dikirimkan prosesnya cepat dan terjaga kerahasiannya dari pihak – pihak yang tidak
berkepentingan, untuk proses pembangkitan bilangan prima dalam algoritma Rabin
dan Rivest Shamir Adleman ( RSA ), penulis menggunakan algorima Rabin
Miller.Dalam penelitian ini, diharapkan akan didapatkan metode yang lebih baik lagi
dalam keamanan data maupun kecepatan memprosesan data.
Universitas Sumatera Utara
Download