



Soal ini juga pernah gw terbitin di http://osn08kom.blogspot.com
Tau gak IP address?? Kalau bahasa umumnya, IP address itu seperti alamat rumah kita didunia maya. Dengan IP address kita bisa dikenal di internet saat browsing, chatting, dll. Tapi tau gak kalau sebenarnya kita bisa menentukan lokasi komputer cuma dari alamat IP nya? Bagi yang tau tentang IP, pasti tau dong kalau kita bisa mengecek asal IP address dengan mengunjungi situs tertentu atau dengan aplikasi bantuan. Kita fokus tentang situsnya.
Situs yang bisa menginformasikan asal IP address ada banyak (googling aja sendiri!) tapi metodenya sama: mencocokan suatu IP address dengan database. Nah, disini masalah databasenya: IP address terbagi kedalam 4 sub-block. Kalau tiap sub-block harus dicocokan, bisa repot.
Karena itu database ini memakai cara yang lain, yaitu dengan menghitung IP number dari IP address tersebut baru dicocokan dengan database. Contoh: IP address 202.186.13.4 mempunyai IP number 3401190660. Sebuah negara memiliki range IP number yang berbeda dengan range IP number negara lain. Dengan IP number tadi, diketahui bahwa IP tersebut berasal dari MALAYSIA.
Cara menghitung IP address menjadi IP number begini: anggap keempat blok IP address sebagai w.x.y.z, maka rumusnya
IP Number = 16777216 X w + 65536 X x + 256 X y + z
sehingga perhitungan untuk contoh yang tadi:
IP Number = 16777216 X 202 + 65536 X 186 + 256 X 13 + 4
= 3388997632 + 12189696 + 3328 + 4
= 3401190660
Kemudian databasenya memiliki format seperti ini:
IP Number Kode Negara Nama Negara
3401023488..3401056255 TH THAILAND
3401056256..3401400319 MY MALAYSIA
3401408512..3401416703 HK HONG KONG
3401416704..3401420799 KR KOREA
3401441280..3401449471 PH PHILIPPINES
3401441280..3401515263 MY MALAYSIA
Bisa dilihat di database diatas kalau MALAYSIA punya 2 range IP number. Tapi karena sama-sama Malaysia, 2 itu dianggap sama. Bisa dilihat juga kalau database sudah mengurutkan alamat IP dari kecil ke besar.
FORMAT MASUKAN
Diawali dengan sebuah bilangan T dan diikuti dengan T baris database berisi M..N(range IP number),Kode Negara, dan Nama Negara. Sebuah negara bisa memiliki 2 range IP number atau bisa lebih. Lalu sebuah bilangan O (1 <= O <= 100) dan dikuti O buah IP address dengan format w.x.y.z. FORMAT KELUARAN
O buah Kode Negara dan Nama Negara asal IP address. Antara Kode & Nama Negara dipisahkan sebuah spasi.
CONTOH MASUKAN
6
3401023488..3401056255 TH THAILAND
3401056256..3401400319 MY MALAYSIA
3401408512..3401416703 HK HONG KONG
3401416704..3401420799 KR KOREA
3401441280..3401449471 PH PHILIPPINES
3401441280..3401515263 MY MALAYSIA
5
202.186.13.4
202.183.170.13
202.186.13.10
202.189.107.17
202.189.224.10
CONTOH KELUARAN
MY MALAYSIA
TH THAILAND
MY MALAYSIA
KR KOREA
PH PHILIPPINES
Ehem,ehem. Sori lagi deh, soalnya cuma bikin satu test case. Tapi yang penting kan udah paham caranya. Kalau belum puas dengan soalnya, nih gw tambahin sedikit.
Kalau misalnya kita dikasih suatu IP number, bagaimana caranya untuk mengembalikan ke IP address? Cari sendiri caranya dan dibawah ini test case nya (yang ini bisa bikin banyak).
FORMAT MASUKAN
x baris IP number dengan jumlah yang tidak ditentukan.
FORMAT KELUARAN
x baris IP address.
CONTOH MASUKAN
3401190660
3401034253
3401190666
3401411345
3401441290
3041441290
3092458469
3546273834
3928475645
2839415365
3940284945
4728394087
2849573823
3948203887
3423432434
2123232498
2342354623
CONTOH KELUARAN
202.186.13.4
202.183.170.13
202.186.13.10
202.189.107.17
202.189.224.10
181.72.182.10
184.83.43.229
211.95.216.42
234.39.199.253
169.62.10.69
234.219.250.17
25.213.145.103
169.217.11.191
235.84.207.111
204.13.110.242
126.141.244.242
139.157.126.191
Cukup deh. Kalau ada yang perlu ditanyakan, jangan malu untuk ngomong di milis (siapa yang malu?). Sekian, banyak maaf kalau ada salah-salah kata. Happy Programming!




Untuk yang pertama, mungkin ada baiknya gs mengupload soal pemograman, berhubung gw bisanya di bidang ini.
Soal ini pernah gw posting ke http://osn08kom.blogspot.com
Ada yang tau kriptografi? Bagi yang belum tau, Kriptografi adalah suatu cara untuk menyandikan pesan yang bersifat rahasia.
Suatu pesan asli (plain text) menggunakan suatu cara disandikan (encrypt) menjadi pesan yang sulit dibaca (chiper text).
chiper text hanya bisa dibaca setelah dikembalikan ke bentuk plain text (decrypt).
Ada banyak teknik kriptografi yang dipakai, seperti ROT13, RC40, dll. Sekedar informasi, RC40 sering dipakai sebuah program
untuk mengenkripsi file-file di komputer. Sekarang, kita belum akan membahas RC40 (yang cukup sulit), tapi tentang teknik
kriptografi lain yang mirip dengan itu.
Logika enkripsi ini (Gw lupa nama tekniknya) menggunakan kata kunci dan sebuah tabel seperti berikut:
dan kemudian sebuah kata kunci.
Setiap huruf dari plain text di enkripsi sesuai tabel berdasarkan katakunci. Misalkan huruf pertama plain text adalah ‘C’,
dan huruf pertama sandi adalah ‘S’. Berdasarkan tabel didapat bahwa huruf C jika disandikan dengan S menjadi huruf ‘U’.
Misal diberikan sebuah plain text dan sandi:
text : agung
sandi: keren
bila disandikan
a[k]=K
g[e]=K
u[r]=L
n[e]=R
g[n]=T
menjadi KKLRT.
Bagaimana kalau jumlah huruf sandi lebih sedikit? begini…
text : agung
sandi: cool
a[c]=c
g[o]=U
u[o]=I
n[l]=Y
huruf berikutnya kembali lagi ke huruf sandi pertama
g[c]=I
menjadi CUIYI
Untuk yang lebih dari 2 kata begini caranya:
teks :agung utama
sandi:ganteng
a[g]=G
g[a]=A
u[n]=A
n[t]=G
g[e]=K
Kata berikutnya kembali lagi dari huruf sandi pertama
u[g]=H
t[a]=T
a[n]=N
m[t]=F
a[e]=E
jadi GAAGK HTNFE (spasi tidak dienkripsi).
PERHATIAN!!! Kata sandi selalu satu kata dan tidak selalu berupa kata yang memiliki arti.
Semua udah ngerti???? Bagus kalau tidak (loh?).
Jadi, untuk tugas pertama dan kedua, coba buat program yang bisa (1) mengenkripsi dan (2) mendeskripsi dengan kriptografi
ini.
Format Input:
Dalam satu baris, tulis sebuah plain dan sandinya (untuk enkripsi) dan sebuah chiper dengan sandinya (untuk deskripsi). Input
lebih dari satu baris.
Format Output:
Tulis hasilnya dalam satu baris untuk setiap pasang.
Contoh Input Enkripsi:
agung keren
agung cool
agung utama ganteng
Contoh Output Enkripsi:
KKLRT
CUIYI
GAAGK HTNFE
Contoh input Deskripsi:
KKLRT keren
CUIYI cool
GAAGK HTNFE ganteng
Contoh Output Deskripsi:
agung
agung
agung utama
PERHATIAN LAGI!!! Plain texr dan sandi ditulis dalam huruf kecil dan chiper ditulis huruf besar.
Ini cuma tantangan kecil, pasti banyak yg bisa. Tapi, harap tunggu hingga gw selesaikan soal ketiga yang lebih rumit dari
ini.
Jangan lupa, posting pembahasan anda kesini.
Pertanyaan, kritik, saran, kue, minuman, kirim ke grup google.
Semoga berhasil dan tunggu soal berikutnya!!!!


More Options ...
Ruangan
Tag Cloud
RSS Blog
RSS Komentar

Void « Default
Life
Earth
Wind
Water
Fire
Light 