Kriptografi merupakan ilmu sekaligus seni untuk
menjaga keamanan pesan (message) dengan cara menyandikannya ke dalam bentuk
yang tidak dapat dimengerti lagi maknanya. Kata cryptography berasal dari kata
Yunani yaitu “kryptos” yang artinya tersembunyi dan “graphein” yang artinya
menulis.
Tujuan Kriptografi:
1. kerahasiaan (confidentiality), yaitu menjaga supaya
pesan tidak dapat dibaca oleh pihak-pihak yang tidak berhak.
2. integritas data (data integrity), yaitu memberikan
jaminan bahwa untuk tiap bagian pesan tidak akan mengalami perubahan dari saat
data 10 dibuat/dikirim oleh pengirim sampai dengan saat data tersebut dibuka
oleh penerima data.
3. otentikasi (authentication), yaitu berhubungan dengan
identifikasi, baik mengidentifikasi kebenaran pihak-pihak yang berkomunikasi
maupun mengidentifikasi kebenaran sumber pesan
4. nirpenyangkalan (non repudiation), yaitu memberikan
cara untuk membuktikan bahwa suatu dokumen datang dari seseorang tertentu
sehingga apabila ada seseorang yang mencoba mengakui memiliki dokumen tersebut,
dapat dibuktikan kebenarannya dari pengakuan orang tersebut.
Pada prinsipnya, Kriptografi memiliki 4 komponen utama
yaitu:
1.
Plaintext, yaitu
pesan yang dapat dibaca
2.
Ciphertext, yaitu
pesan acak yang tidka dapat dibaca
3.
Key, yaitu kunci
untuk melakukan teknik kriptografi
4.
Algorithm, yaitu
metode untuk melakukan enkrispi dan dekripsi
2
proses dasar pada Kriptografi yaitu:
1.
Enkripsi (Encryption)
2.
Dekripsi (Decryption)
dengan key yang digunakan
sama untuk kedua proses diatas. Penggunakan key yang sama untuk kedua proses
enkripsi dan dekripsi ini disebut juga dengan Secret Key, Shared
Key atau Symetric Key Cryptosystems.
1.
Enkripsi
Enkripsi
(Encryption) adalah sebuah proses menjadikan pesan yang dapat dibaca
(plaintext) menjadi pesan acak yang tidak dapat dibaca (ciphertext). Berikut
adalah contoh enkripsi yang digunakan oleh Julius Caesar, yaitu dengan
mengganti masing-masing huruf dengan 3 huruf selanjutnya (disebut juga
Additive/Substitution Cipher):
Plaintext
|
Ciphertext
|
Rumah
|
xasgn
|
Motor
|
suzux
|
Kompor
|
qusvux
|
dst…
|
2.
Dekripsi
Dekripsi
merupakan proses kebalikan dari enkripsi dimana proses ini akan mengubah
ciphertext menjadi plaintext dengan menggunakan algortima ‘pembalik’ dan key
yang sama. Contoh:
Ciphertext
|
Plaintext
|
||
Xasgn
|
Rumah
|
||
Suzux
|
Motor
|
||
Qusvux
|
Kompor
|
||
dst…
|
|||
ISTILAH-ISTILAH KRIPTOGRAFI
•Encoding: Transformasi dari
plainteksmenjadi kode
•Decoding: Transformasi kebalikan
dari kode menjadi plainteks.
•Buku Kode (codebook) : Dokumen
yang digunakan untuk mengimplementasikan suatukode
•Buku kode terdiri dari tabel
lookup(lookuptabel) untuk encodingdan decoding
•Chipertidak sama dengan kode
(code)
•Kode mempunyai sejarah tersendiri
didalamkrptografi
•Codebreaker:
Orang yang memecahkan kode (untuk menemukan plainteks)
Kriptografi adalah ilmu sekaligus
seni untuk menjaga keamanan pesan
v Praktisi (pengguna
kriptografi) disebut kriptografer (cryptographer).
v Algoritma kriptografi
adalah:
◦aturan / metode untuk
enkripsi dan dekripsi
◦fungsi
matematika yang digunakan untuk enkripsi dan dekripsi.
v Kunci adalah parameter
yang digunakan untuk transformasi enkripsi dan dekripsi.
v Sistem kriptografi
(atau
cryptosystem) adalah algoritma kriptografi, plainteks, cipherteks,
dankunci.
v Penyadap adalah orang yang
mencoba menangkap pesan selama ditransmisikan. Nama lain: enemy, adversary,
intruder, interceptor, bad guy
v Kriptanalisis (cryptanalysis)
adalah ilmu dan seni untuk memecahkan cipherteks menjadi plainteks tanpa mengetahui
kunci yang diberikan. Pelakunya disebut kriptanalis.
v Kriptologi(cryptology)
adalahstudimengenaikriptografidankriptanalisis.
Kriptografer dan Kriptanalis
Persamaan
|
Perbedaan
|
Keduanya
sama-sama menerjemahkan cipherteksmenjadi plainteks
|
Kriptografer
bekerja atas legitimasi pengirim atau penerima pesan.
|
Jenis
Kriptografi Berdasarkan Kunci
Algoritma kriptografi dapat
diklasifikasikan menjadi dua jenis berdasarkan kuncinya, yaitu algoritma
simetris dan algoritma asimetris
a. Algoritma
Simetris
b. Algoritma
Asimetris
Algoritma ini
disebut asimetris karena kunci yang digunakan untuk enkripsi berbeda dengan
kunci yang digunakan untuk dekripsi. Kunci yang digunakan untuk enkripsi adalah
kunci publik atau public key sehingga algoritma ini juga disebut dengan
algoritma kunci publik. Sedangkan kunci untuk dekripsi menggunakan kunci
rahasia atau private key
Berdasarkan
besar data yang diolah:
•
Algoritma block cipher : Informasi / data yang hendak dikirim dalam bentuk blok
–blok besar (misal 64 - bit) dimana blok –blok ini dioperasikan dengan fungsi
enkripsi yang sama dan akan menghasilkan informasi rahasia dalam blok –blok yang
berukuran sama juga. Contoh : RC4, Seal, A5, Oryx.
• Algoritma stream cipher : Informasi
/ data yang hendak dikirim dioperasikan dalam bentuk blok – blok yang lebih kecil
(byteatau bit), biasanya satu karakter per –satuan waktu proses, menggunakan
tranformasi enkripsi yang berubah setiap waktu. Contohnya : Blowfish, DES, Gost,
Idea, RC5, Safer, Square, Twofish, RC6, Loki97.
Jenis-jenis
CipherSubstitusi
1. Cipher Abjad - Tunggal (Monoalphabetic Cipher)
2. Cipher Substitusi Homofonik (Homophonic
substitution cipher)
3. Cipherabjad – majemuk (Polyalpabetic substitution
cipher)
4. Cipher
Substitusi Poligram (Polygram
substitution cipher)
CAESAR
CIPHER 1
Plain text: MAHASISWA BARU
Nomor: 12 0 7 0 18 8 18 22 0 1 0 17 20
Transformasi(n=3): 3+Pt
15 3 10 3 21 11 21 25 3 4 3 20 23
Chipertext: PDKDVLVZD EDUX
CAESAR
CIPHER 2
•Tiap huruf alfabet digeser 3 huruf
kekanan
•Contoh:
Cipherteks : NHDPDQDQ VLVWHP
NRPSXWHU
CAESAR
CIPHER 3
•Dalam praktek, cipherteks dikelompokkan
kedalam kelompok n - huruf, misalnya kelompok 4 - huruf:
NHDP DQDQ
VLVW HPNR PSXW
HU
•Atau membuang semua spasi:
NHDPDQDQVLVWHPNRPSXWHU
•Tujuannya agar kriptanalisis menjadi
lebih sulit
Misalkan A = 0, B =
1, …, Z = 25,
maka secara matematis caesar cipher dirumuskan sebagai berikut:
maka secara matematis caesar cipher dirumuskan sebagai berikut:
Enkripsi: ci = E(pi)
= (pi + 3) mod 26
Dekripsi: pi = D(ci)
= (ci – 3) mod 26
• Jika pergeseran huruf sejauh k,
maka:
Enkripsi: ci = E(pi)
= (pi + k) mod 26
Dekripsi: pi = D(ci)
= (ci – k) mod 26
k = kunci rahasia
• Untuk 256 karakter ASCII, maka:
Enkripsi: ci = E(pi)
= (pi + k) mod 256
Dekripsi: pi = D(ci)
= (ci – k) mod 256
k = kunci rahasia
Kelemahan:
Caesar cipher mudah dipecahkan
dengan exhaustive key search karena jumlah kuncinya sangat sedikit
(hanya ada 26 kunci). 42
CARA
KERJA PEMECAHAN KUNCI CAESAR CIPHER
DENGAN
EXHAUSTIVE KEY SEARCH
Cipherteks
: FLQWD
Dengan kriptanalisis menggunakan exhaustive attack, maka pengkriptanalisisan dari kata FLQWD dapat dilihat pada tabel di bawah. Jika diketahui bahasa yang digunakan adalah Bahasa Indonesia, maka kata yang memiliki makna adalah kata dengan kunci k = 23, yaitu � CINTA �.
ALFABETIK MAJEMUK
• Vigenere Polyalphabetic Cipher
• Rumus umum : Ci = F (n, d, Pi)
Ci = cipher text, n = key (number
of letter sifted), d = number of repeating letters representing the key, Pi = Plaintext
• Contoh : d = 3, k = bad (1 0 3)
Plain text: ATTACK AT DAWN
Nomor : 0 19 19 0 2 10 0 19 3 0 22
13
Transformasi (3, BAD):
1 0 3 1 0 3 1 0 3 1 0 3 (key)
0 19 19 0 2 10 0 19 3 0 22 13
(Plaintxt)
____________________________ +
1 19 22 1 2 13 1 19 6 1 22 16
Chipertext: BTWBCNBTGBWQ
Vigènere Cipher
Termasuk ke dalam cipher abjad
- majemuk (polyalpabetic substitution cipher ).
v
Dipublikasikan
oleh diplomat (sekaligus seorang kriptologis) Perancis, Blaise de Vigènere pada
abad 16 (tahun 1586).
v
Tetapi
sebenarnya Giovan Batista Belaso telah menggambarkannya pertama kali pada tahun
1553 seperti ditulis di dalam bukunya La Cifra del Sig. Giovan Batista
Belaso
v
Algoritma
tersebut baru dikenal luas 200 tahun kemudian yang oleh penemunya cipher tersebut
kemudian dinamakan Vigènere Cipher
Polyalphabetic Cipher
• Vigenere CiPHER
Plainteks : T E K N I K
D I G I T A L
Keyword : R O S I D A
R O S I D A R
Ciphertext : KSBVLK UWYQWAB
A
B C D E F G H I J K L M N O P Q R S T U V W X Y Z
R R S T U
V W X Y Z A B C D E F G H I J K L M N O P Q
O O P Q R S
T U V W X Y Z A B C D E F G H I J K L M
N
S S T U V W X Y Z A B C D E F G H I J
K L M N O P Q R
I I J K L M N O P Q R S T U V
W X Y Z A B C D E F G H
D D E F G H I J K L M N O P Q R S T U V W
X Y Z A B C
A A
B C D E F G H I J K L M N O P Q R S T U
V W X Y Z
• Beuford Cipher
Plainteks : T E K N I K D I G I T A L
Keyword : R O S I D A R O S I D A R
Ciphertext : YKIVVQ OGMAKAG
Ciphertext : YKIVVQ OGMAKAG
A
B C D E F G H I J K L M N O P Q R S T U V W X Y Z
R R Q P O
N M L K J I H G F E D C B A Z Y X
W V U T S
O O N
M L K J I H G F E D C
B A Z Y X W V U T S R Q P
S S R Q P O N M L K J I H G F E D C
B A Z Y X W
V U T
I I H
G F E D C B A Z Y X W V U T S R Q P O N M
L K J
D D C
B A ZY X WVU
T S
R Q P O N M L K J I H G F E
A A Z Y X WVU T S R Q
P O N M L K J I HG F E D C B
Polyalphabetic
Cipher
•
Varian Beuford Cipher
Plainteks : T E K N I K D I G I T A L
Keyword : R O S I D A R O S I D A R
Ciphertext : XJHUTP NFLZJZF
A
B C D E F G H I J K L M N O P Q R S T U V W X Y Z
R Q P O N M L K J I H G
F
E D C B A
Z Y X W V U T S R
O N
M L K J I H G F E D C
B A Z Y X W V U T S R Q P O
S R
Q P O N M L
K J I
H G F E D C
B A Z Y X W
V U T S
I H
G F E D C B A Z Y X W V U T S R Q P O N M
L K J I
D C
B A ZY X WVU T S R Q P
O N M L K J I H
G F E D
A Z Y X WVU T S R Q P O N M L K J I HG F E D C B A
Auto-Key
Vigènere cipher
•
Jika panjang kunci lebih kecil dari panjang plainteks, maka kunci disambung
dengan plainteks tersebut.
• Misalnya,
Pesan : SEKOLAH TINGGI TEKNIK
Kunci : PLN
maka kunci tersebut disambung
dengan plainteks semula sehingga panjang kunci menjadi sama dengan panjang
plainteks:
•
Plainteks : SEKOLAH TINGGI TEKNIK
• Kunci :
PLNSEKO LAHTIN GGITEK
Running-Key
Vigènerecipher
Kunci adalah string yang sangat panjang
yang diambil dari teks bermakna (misalnya naskah proklamasi, naskah Pembukaan UUD
1945, terjemahanaya tadi dalam kitab suci, dan lain -lain).
•Misalnya,
Pesan: NEGARA PENGHASIL MINYAK
Kunci: KEMANUSIAN YANG ADIL DAN
BERADAB
•Selanjutnya enkripsi dan dekripsi dilakukan
seperti biasa.
SUBSTITUSI HOMOFONIK POLIGRAM
Mengganti setiap gabungan unit plain text dengan gabungan
huruf ciphertext
Jenis:
•Diagram:
gabungan dua unit
•Trigram:
gabungan tiga unit Dst
•Contoh:
AS----RT
Teknik
Dasar Kriptografi Terbagi 5 Jenis, yaitu :
1. Substitusi
2. Blocking
3. Permutasi
4. Ekspansi
5. Pemampatan
1. SUBSTITUSI
Dalam kriptografi, sandi substitusi adalah jenis metode enkripsi dimana setiap satuan pada teks terang digantikan oleh teks tersandi dengan sistem yang teratur. Metode penyandian substitusi telah dipakai dari zaman dulu (kriptografi klasik) hingga kini (kriptografi modern),
Langkah pertama adalah membuat suatu tabel substitusi. Tabel substitusi dapat dibuat sesuka hati, dengan catatan bahwa penerima pesan memiliki tabel yang sama untuk keperluan decrypt. Bila tabel substitusi dibuat secara acak, akan semakin sulit pemecahanciphertext oleh orang yang tidak berhak.
Metode ini dilakukan dengan mengganti setiap huruf dari teks asli dengan huruf lain sebagai huruf sandi yang telah didefinisikan sebelumnya oleh algoritma kunci.
Contoh:
Metode Penyandian Substitusi Sederhana
1. Substitusi
2. Blocking
3. Permutasi
4. Ekspansi
5. Pemampatan
1. SUBSTITUSI
Dalam kriptografi, sandi substitusi adalah jenis metode enkripsi dimana setiap satuan pada teks terang digantikan oleh teks tersandi dengan sistem yang teratur. Metode penyandian substitusi telah dipakai dari zaman dulu (kriptografi klasik) hingga kini (kriptografi modern),
Langkah pertama adalah membuat suatu tabel substitusi. Tabel substitusi dapat dibuat sesuka hati, dengan catatan bahwa penerima pesan memiliki tabel yang sama untuk keperluan decrypt. Bila tabel substitusi dibuat secara acak, akan semakin sulit pemecahanciphertext oleh orang yang tidak berhak.
Metode ini dilakukan dengan mengganti setiap huruf dari teks asli dengan huruf lain sebagai huruf sandi yang telah didefinisikan sebelumnya oleh algoritma kunci.
Contoh:
Metode Penyandian Substitusi Sederhana
2. BLOCKING
Sistem enkripsi ini terkadang membagi plaintext menjadi beberapa blok yang terdiri dari beberapa karakter, kemudian di enkripsikan secara independen.
Caranya :
Plaintext dituliskan secara vertikal ke bawah berurutan pada lajur, dan dilanjutkan pada kolom berikutnya sampai seluruhnya tertulis. Ciphertext-nya adalah hasil pembacaan plaintext secara horizontal berurutan sesuai dengan blok-nya.
Contoh :
Salah satu teknik enkripsi yang terpenting adalah permutasi atau sering juga disebut transposisi. Teknik ini memindahkan atau merotasikan karakter dengan aturan tertentu. Prinsipnya adalah berlawanan dengan teknik substitusi. Dalam teknik substitusi, karakter berada pada posisi yang tetap tapi identitasnya yang diacak. Pada teknik permutasi, identitas karakternya tetap, namun posisinya yang diacak.
Caranya
Sebelum dilakukan permutasi, umumnya plaintext terlebih dahulu dibagi menjadi blok-blok dengan panjang yang sama.
Plaintext akan dibagi menjadi blok-blok yang terdiri dari 6 karakter, dengan aturan permutasi, sebagai berikut :
Suatu metode sederhana untuk mengacak pesan adalah dengan memelarkan pesan itu dengan aturan tertentu. Salah satu contoh penggunaan teknik ini adalah dengan meletakkan huruf konsonan atau bilangan ganjil yang menjadi awal dari suatu kata di akhir kata itu dan menambahkan akhiran “an”. Jika suatu kata dimulai dengan huruf vokal atau bilangan genap, ditambahkan akhiran “i”.
Contoh :
5. PEMAMPATAN
Mengurangi panjang pesan atau jumlah bloknya dengan cara lain untuk menyembunyikan isi pesan.
Contoh sederhana ini menggunakan cara menghilangkan setiap karakter ke-tiga secara berurutan. Karakter-karakter yang dihilangkan disatukan kembali dan disusulkan sebagai “lampiran” dari pesan utama, dengan diawali oleh suatu karakter khusus, dalam contoh ini menggunakan ” * “.
Contoh :
Cipher Transposisi
• Cipher transposisi atau juga sering disebut cipher permutasi menyembunyikan / merahasiakan pesan dengan cara mengatur kembali urutan pesan tanpa mengubah huruf-huruf yang ada pada plaintext.
• Ciphereteks diperoleh dengan mengubah posisi huruf di dalam plaintekls.
• Algoritma ini melakukan transpose terhadap rangkaian huruf di dalam plainteks.
• Nama lain untuk metode ini adalah permutasi, karena transpose setiap karakter di dalam teks sama dengan mempermutasikan karakter-karakter tersebut.
Contoh Enkripsi:
plaintext : SAATNYA BERTINDAK,
ditulis dalam Lima baris :
S A A T
N
Y A B
E
R T I
N
D A K
ciphertext (dibaca vertikal) : SNENAYRDAATATBIK
Contoh
Deskripsi:
Bagi
panjang cipherteks dengan kunci. (16 / 4 = 4)
S
N E N
A
Y R D
A
A T A
T
B I
K
ciphertext
(dibaca vertikal) : SAATNYA BERTINDAK
Super-enkripsi
•
Menggabungkan cipher substitusi dengan cipher transposisi.
• Contoh. Plainteks HELLO WORLD
• dienkripsi dengan caesar cipher menjadi KHOOR ZRUOG
kemudian hasil enkripsi ini dienkripsi lagi dengan cipher transposisi (k = 4):
– KHOO
– RZRU
– OGZZ
Cipherteks akhir adalah: KROHZGORZOUZ
• Contoh. Plainteks HELLO WORLD
• dienkripsi dengan caesar cipher menjadi KHOOR ZRUOG
kemudian hasil enkripsi ini dienkripsi lagi dengan cipher transposisi (k = 4):
– KHOO
– RZRU
– OGZZ
Cipherteks akhir adalah: KROHZGORZOUZ
One Time Pad
One Time Pad adalah salah satu contoh metode
kriptografi dengan algoritma jenis simetri. Ditemukan pada tahun 1917 oleh
Major Yoseph Mouborgne dan Gilbert Vernam pada perang dunia ke dua. Metode ini
telah diklaim sebagai satu-satunya algoritma kriptografi sempurna yang tidak
dapat dipecahkan. Suatu algoritma dikatakan aman, apabila tidak ada cara untuk
menemukan plaintext-nya Sampai saat ini, hanya algoritma One Time Pad (OTP) yang dinyatakan tidak dapat
dipecahkan meskipun diberikan sumber daya yang tidak terbatas. Algoritma One
Time Pad adalah salah satu jenis algorima simetri (konvensional).
Jumlah kunci sama panjangnya dengan jumlah plaintext. Jika anda ingin agar ciphertext sulit untuk di pecahkan maka pemakaian kunci seharusnya :
* Jangan
gunakan kunci yang berulang
* Pilihkan kunci yang random
* Pilihkan kunci yang random
Rumus
melakukan One Time Pad ini yaitu :
Enkripsi :
E(x) = (P(x) + K(x) ) Mod 26
Dekripsi :
D(x) = (C(x) – K(x) ) Mod 26
CARA I
Pemakaian
One Time Pad digunakan pada sederetan abjad A..Z dengan memberikan nilai urutan abjad yaitu A=0, B=1, C=2, D=3, E=4…..sampai Z.
Contoh
Enkripsi Pesan :
Pesan : ZENSHIFU
Kunci : OTIMEPAD
maka perhatikan langkahnya seperti di bawah ini :
Kunci : OTIMEPAD
maka perhatikan langkahnya seperti di bawah ini :
Plaintext
25(Z) 4(E) 13(N) 18(S) 7(H) 8(I) 5(F) 20(U)
Kunci 14(O) 19(T) 8(I) 12(M) 4(E) 15(P) 0(A) 3(D)
——————————————– +
Hasil mod 26 13 23 21 4 11 23 5 23
Chipertext N X V E L X F X
Jadi Chipertext yang di hasilkan yaitu : NXVELXFX
Kunci 14(O) 19(T) 8(I) 12(M) 4(E) 15(P) 0(A) 3(D)
——————————————– +
Hasil mod 26 13 23 21 4 11 23 5 23
Chipertext N X V E L X F X
Jadi Chipertext yang di hasilkan yaitu : NXVELXFX
Dekripsi
pesan, perhatikan langkah di bawah ini
Chipertext
13(N) 23(X) 21(V) 4(E) 11(L) 23(X) 5(F) 23(X)
Kunci 14(O) 19(T) 8(I) 12(M) 4(E) 15(P) 0(A) 3(D)
———————————————— –
Hasil mod 26 25 4 13 18 7 8 5 20
Plaintext Z E N S H I F U
Jadi Plaintext yaitu : ZENSHIFU
Kunci 14(O) 19(T) 8(I) 12(M) 4(E) 15(P) 0(A) 3(D)
———————————————— –
Hasil mod 26 25 4 13 18 7 8 5 20
Plaintext Z E N S H I F U
Jadi Plaintext yaitu : ZENSHIFU
•Vernam Cipher:
Setiap key
diberikan pada setiap huruf plaintext, key hanya dipakai satu kali dalam satu
plaintext saja dan tidak pernah digunakan kembali.
Plaintext:
HOWAREYOU
Key:
XRAQZTBCN
7 14 22 0
17 4 24 14 20 (Plaintxt)
23 17 0 16
25 19 1 2 13 (Key)
______________________________+
30 31 22
16 42 23 25 16 33
4 5 22 16
16 23 25 16 7
Ciphertext: EFWQQXZQH
|
|
MODERN
KRIPTOGRAPHY
•Stream
cipher:
•RC4
•A5 (gsm)
•Block
cipher:
•DES
•Doube
DES, Tripple DES
•RC5
•AES
(Advanced Encryption Standard)
DES-DATA
ENCRYPTION STANDARD
•Menggunakan
64-bit block size dan 56-bit key dan 16-round cryptosystem
•Terminologi:
•Block
cipher. Membagi plaintext kedalam kelompok sejumlah karakter/bit, pada
masing-masing blok diterapkan algoritma enkripsi (key) yang sama
•Clustering.
Mengenkripsi plaintext dengan algoritma sama, tetapi berbeda key
•Triple DES:
mengenkripsiDES 3 kali dengankey yang berbeda-beda
•Jenis:
•2
kunci-DES-EDE2 : mengenkripdengank1, mendekripdengank2
dandienkripkembalidengank1
•2
kunci-DES-EEE2: mengenkriptigakali dengan2 kunci
•3
kunci–DES-EEE3: mengenkriptigakali dengan3 kunci
AES-ADVANCED
ENCRIPTION STANDARD
•1997 by
NIST
•Kandidat:
•Rijndael
•Twofish
•IDEA
•RC5
Ada codingan nya ga ka ?
BalasHapuspenjelasan yg lengkap.
BalasHapusbaguss
mantap bgt jelas, makasih mba
BalasHapusKomentar ini telah dihapus oleh pengarang.
BalasHapus