Category Archives: Sistem Informasi

Keamanan Komputer: Classical Encryption Techniques

Arsitektur Keamanan OSI

Arsitektur keamanan OSI mengacu kepada tiga hal, yaitu serangan (attacks), mekanisme (mechanisms) dan layanan (services)

Security attack : Setiap aksi yang terkait dengan keamanan informasi pada suatu organisasi

Security mechanism : Proses yang dirancang untuk mendeteksi, mencegah atau memperbaiki atas serangan keamanan (security attack)

Security service : Proses atau layanan komunikasi untuk meningkatkan keamanan dari proses pengolahan data dan transfer informasi pada suatu organisasi

Security Attack

Security attacks terbagi dua yaitu passive attacks dan active attacks

Passive Attacks
Passive attacks secara alami terkait serangan eavesdropping, monitoring atau transmissions. Tujuan dari serangan ini adalah untuk mendapatkan informasi yang sedang dikirimkan . Ada dua tipe passive attacks yaitu membongkar isi pesan dan analisis lalu lintas jaringan.

Active Attacks
-Active attacks terkait proses modifikasi dari data stream. Ada 4 ragam serangan active attacks yaitu masquerade, replay, modification of messages dan denial of service

Security Services

Security services telah didefinisikan oleh X.800 dan RFC 2828

Security Services (X.800):

Authentication – assurance that the communicating entity is the one claimed
Access Control – prevention of the unauthorized use of a resource
Data Confidentiality –protection of data from unauthorized disclosure
Data Integrity – assurance that data received is as sent by an authorized entity
Non-Repudiation – protection against denial by one of the parties in a communication

Security Mechanism

Security Mechanisms (X.800)

specific security mechanisms: encipherment, digital signatures, access controls, data integrity, authentication exchange, traffic padding, routing control, notarization
pervasive security mechanisms: trusted functionality, security labels, event detection, security audit trails, security recovery

Symetric Encryption

Sering dikenal dengan enkripsi konvensional atau single-key encryption. Adalah satu-satunya teknik enkripsi yang digunakan pada tahun 1970-an. Cara kerja symetric encryption yakni dengan mengubah plaintext ke chipertext ataupun sebaliknya (encryption and decryption) menggunakan kunci rahasia yang sama.

Dua kebutuhan yang diperlukan dalam symetric encryption yaitu :
1-  Algoritma enkripsi yang kuat
2-  Kunci rahasia (secret key) hanya boleh diketahui oleh pengirim dan penerima

-Secara matematis, rumusnya adalah sebagai berikut :

Y = EK(X)
X = DK(Y)

Classical Subtitution Ciphers
– Menggunakan teknik mengganti huruf plaintext dengan huruf lainnya atau nomor atau simbol
– Jika plaintext disajikan dalam pola bit maka teknik subsitusinya adalah dengan mengganti pola bit plaintext dengan pola bit chipertext

Caesar Cipher
Dikenal sebagai Algoritma enkripsi subsitusi pertama yang dibuat oleh Julius Caesar
Digunakan dalam strategi militer
Teknik sederhananya dengan mengganti huruf dengan huruf ketiga setelahnya
Contoh :

a -> D
b –> E

Vigenere Cipher
– Lebih efektif dibandingkan dengan caesar cipher
– Menggunakan key untuk mengenkripsi plaintext

– Cara kerja :
•Tuliskan plaintext
•Buatlah key sesuai dengan panjang plaintext
•Enkripsi menggunakan tabel vigenere

IPv4

IPv4 Packet Header

– Version (Ver) : Versi IP Address
– Header Length (IHL) : Ukuran dari packet header
– Packet Length : Ukuran packet secara keseluruhan
– Identification : Mengidentifikasi originalitas IP packet
– Header Checksum : Mengecek error pada packet header
– Options : Informasi tambahan (Opsional)

Format & Ukuran IPv4
IPv4 dituliskan dalam format angka desimal. Penulisannya disajikan dalam dotted decimal
IPv4 dapat direpresentasikan dalam format binary patterns, dimana panjang binary patterns adalah 32 bit dan terbagi atas 4 oket, 1 oktet = 8 bit atau 8 pasangan 1 atau 0

Contoh : 192.168.200.1
Binary patterns :
-192 = 11000000 (1st oktet)
-168 = 10101000 (2nd oktet)
-200 = 11001000 (3rd oktet)
-1 = 00000001 (4th oktet)

Representasi bit
Setiap bit pada tiap oktet dapat dikonversikan dalam format desimal. Konversi tersebut mengacu pada “The Power of 2”, karena bit hanya terdiri dari 2 (dua) angka yaitu 1 atau 0. The power of 2 artinya 2 pangkat x, dimana x adalah representasi setiap bit dengan X dimulai dari 0 hingga 7 (8 bit).

Latihan Konversi
Konversi angka desimal 201 ke binary patterns :

128+64+8+1 = 201


Konversi angka desimal 77 ke binary patterns :

64+8+4+1 = 77

Porsi Network, Broadcast, Host
Network Address adalah alamat yang menunjuk ke network (jalan utama). Broadcast Address adalah alamat spesial pada satu network yang bertujuan untuk berkomunikasi dengan semua host pada satu network, dan host Address adalah alamat yang ditujukan untuk host yang terhubung pada satu network.

Network, 1st, Last, Broadcast Address

 

Private Address
Private address biasanya digunakan untuk host yang tidak membutuhkan akses untuk di routing ke internet. Private address juga tidak akan dikenal di internet karena sifatnya yang tertutup untuk publik.

Menurut RFC 1918, Private address adalah :
-10.0.0.0 sampai dengan 10.255.255.255 (/8)
-172.16.0.0 sampai dengan 172.31.255.255 (/12)
-192.168.0.0 sampai dengan 192.168.255.255 (/16)

CIDR
CIDR merupakan singkatan dari Classless Inter Domain Routing. Metode yang digunakan oleh CIDR kebanyakan Internet Service Provider (ISP) untuk alokasi IP Address, dimana notasinya adalah dimulai dengan slash (/) diikuti dengan jumlah bit yang hidup dengan maksimal bit yang hidup yaitu 32 (4 Oktet x 8 bit),  namun hanya sampai 30 bit yang hidup untuk bisa menampung host minimal 2.

OSI 7 Layer TCP/IP

Encoding & Decoding

Didalam metode komunikasi terdapat 3 (tiga elemen) penting yaitu :
o Pengirim (Message Source/Sender)
o Penerima (Destination / Receiver)
o Jalur (Channel/pathway)

Pada saat penyampaian pesan (messages) dari pengirim ke penerima, terjadi proses encode dan decode

Segmentation & Multiplexing
Pesan yang dikirimkan dari pengirim ke penerima biasanya tidak hanya teks, melainkan juga suara dan video. Jalur yang ada memungkinkan pesan tersampaikan dengan baik menggunakan teknik segmentation & multiplexing. Segmentation berarti memecah pesan dari pesan yang kompleks/besar menjadi pesan yang lebih sederhana sedangkan multiplexing yaitu memungkinkan satu jalur dilalui oleh pesan-pesan secara bergantian.

Labeling
Pada proses segmentasi, pesan mengalami proses Pemberian label (labeling).

zcx

Protocol
Protocol merupakan aturan untuk mengatur komunikasi antar perangkat.

Protocol harus menyediakan beberapa hal sebagai berikut :
1) Format struktur pesan
2) Proses dimana perangkat jaringan berbagi informasi jalur yang akan dilalui ke jaringan lain
3) Bagaimana dan kapan pesan sistem dan error dilewatkan antar perangkat sistem
4) Setup dan terminasi sesi transfer data

Standarisasi
Protocol merupakan salah satu bentuk standar dalam jaringan komputer. Standar tidak harus menggambarkan bagaimana perangkat bekerja secara spesifik untuk berkomunikasi dengan perangkat lain tetapi merupakan panduan umum bagaimana perangkat tersebut dapat berkomunikasi dengan perangkat lain.

Model Referensi
Ada dua standar dalam jaringan komputer yang lebih umum dikenal dengan protocols model dan reference models:

1) OSI Model
Model referensi Open System Internetwork (OSI ) didesain oleh International Organization of Standardization (ISO). OSI Model terdiri dari 7 (tujuh) lapisan. OSI Model menyediakan daftar layanan dan fungsi yang dapat terjadi disetiap lapisan.

Berikut 7 Lapisan model OSI :

7. Application  (layanan jaringan untuk proses aplikasi seperti e-mail, file transfer, telnet,http, ping)

6. Presentation (Mengurus format data dan struktur data)

5. Session (Membangun, mengelola dan menghapus sesi antar aplikasi)

4. Transport (Menyediakan data transport yang memadai, deteksi kesalahan (fault detection) dan recovery)

3. Network (Menyediakan konektifitas dan pemilihan jalur antara dua buah end systems serta routing)

2. Data Link (Menyediakan transfer data yang memadai atau terjamin kualitasnya)

1. Physical (Terkait hal-hal mekanikal, eletrikal dan binary transmissions)

2) TCP/IP
TCP/IP lebih dikenal sebagai model layered protocol yang dibuat pada awal tahun 1970. TCP/IP merupakan open standard dan juga merupakan penyederhanaan dari OSI Model.

TCP/IP Model:

1. Application

2. Transport

3. Internet

4. Network Access

Protocol Data Unit (PDU)
PDU adalah dimana data mengalir pada setiap lapisan TCP/IP melalui media jaringan. Setiap protocol akan menambahkan informasi ketika data sampai pada suatu lapisan. Format data tersebut seringkali disebut dengan Protocol Data Unit (PDU).

zzzz

C++ Tutorial : LOOP

LOOP

Misal akan dibuat suatu tampilan “Hello” sebanyak 20 kali. Tampilan ini dapat dibuat dengan menggunakan fungsi printf() sebanyak 20 kali. Hal ini bukan hal yang efisien untuk melakukan proses yang berulang-ulang. Proses perulangan akan lebih praktis jika dilakukan dengan statemen perulangan. Statemen perulangan yang dapat digunakan adalah for, while dan do-while. Dengan menggunakan statemen ini proses yang berulang cukup dituliskan sekali saja.

1. Statemen For

Statemen for mempunyai bentuk umum yaitu :

For(Awal;Akhir;Peningkatan) Statemen;

Awal adalah suatu ungkapan yang memberikan nilai awal suatu variabel.

Akhir adalah suatu ungkapan yang menunjukkan suatu kondisi yang harus dipenuhi supaya perulangan masih dapat terus dilakukan.

Peningkatan adalah suatu ungkapan yang merubah nilai-nilai variabel pengontrol perulangan setiap saat perulangan dilakukan.

Contoh 1 :

# include <stdio.h>
main()
{
Int X;
For(X=1;X<=5;X++) printf(“Hello, Selamat Membaca \n”);
}

Bentuk Perulangan For Positif

Perulangan positif merupakan perulangan yang peningkatannya positif untuk variabel pengontrol perulangannya (misalnya X++).

Contoh 2 :

Perulangan positif dengan peningkatan nilai sebesar 1 setiap saat perulangan dilakukan untuk variabel pengontrol perulangannya, yaitu I.

# include <stdio.h>
main()
{
Int I;
For(I=-2;I<=3;I++) printf(“%d \n”,I);
}

Bentuk Perulangan For Negatif

Perulangan negatif merupakan perulangan dengan penurunan nilai (dari nilai besar ke nilai kecil) untuk variabel pengontrol perulangannya.

Contoh 3 :

# include <stdio.h>
main()
{
Int I; 
For(I=5;I>1;I--) printf(“%d \n”,I);
}

Bentuk Perulangan For dengan Blok Statemen

Perulangan dengan blok statemen memungkinkan sejumlah statemen di dalam blok diproses berulang-ulang.

Contoh 4 :

# include <stdio.h>
main()
{
Int I,N; 
Float X,Rata, Total=0; 
/* Memasukkan jumlah Data */
printf(“Banyaknya Data ? “);scanf(“%d”,&N);
printf(“\n”);
/* Memasukkan masing-masing data dari i=1 ke i=N */
for(I=1;I<=N;I++) {
printf(“Data ke %3d ?”,I);scanf(“%f”, &X);
Total=Total + X;
}
Rata = Total/N;
/* Menampilkan Hasil */
printf(“\n”);
printf(“Banyaknya Data : %-3d \n”, N);
printf(“Total Nilai Data : %-10.2f \n”, Total);
printf(“Rata-rata Nilai Data : %-10.2f \n”, Rata);
}

Bentuk Perulangan For Bersarang

Suatu perulangan for dapat berada di dalam ruang lingkup perulangan for yang lainnya, bentuk ini disebut dengan perulangan for bersarang (nested for). Setiap perulangan ini menggunakan variabel pengontrol perulangan yang berbeda satu dengan lainnya.

Contoh 5 :

# include <stdio.h>
main()
{
Int I, J; 
For(I=1; I<=3; I++) {
For(J=1; J<=4; J++) 
printf(“ (I=%d, Y=%1d)”, I, J);
printf(“\n”);
} 
}

2. Statemen While

Bentuk umum dari statemen while adalah sebagai berikut :

While(kondisi) statemen;

Statemen dapat berupa statemen kosong, statemen tunggal atau blok statemen yang akan diproses berulang-ulang. Proses perulangan akan dilakukan jika kondisi yang diseleksi bernilai benar dan perulangan akan dihentikan jika kondisinya sudah bernilai salah.

Bentuk While Tunggal

Merupakan perulangan yang sangat sederhana.

Contoh 6 :

# include <stdio.h>
main()
{
Int X; 
X=3;
while(X<5) printf(“%d”, X++);
}

Bentuk While Blok Statemen

Perulangan yang terdiri dari banyak statemen, diapit dengan kurung kurawal ({}).

Contoh 7 :

# include <stdio.h>
Main()
{
Int Liter;
printf(“ Harga BBM \n“);
printf(“ Liter Minyak Tanah Premium Solar\n”);
printf(“--------------------------------------------------------------------------\n”);
Liter=1;
while(Liter<=10) {
printf(“% 03d % 12.2f %12.2f %12.2f \n”, Liter, Liter*3000, Liter*4500, Liter*3500);
X+=1; 
}
printf(“--------------------------------------------------------------------------\n”);
}

Bentuk While Bersarang

 

Contoh 8 :

# include <stdio.h>
# include <math.h>
Main()
{
Int X, I;
printf(“ X 1/X X^2 X^3\n“);
printf(“ -----------------------------------------------\n”);
X=1;
while(X<=10) {
printf(“%3d %8.5f ”, X, 1.0/X);
I=2;
while(I<=3) {
printf(“ %8.0f”, pow(X,I));
I++;
} 
printf(“\n”);
X++;
}
}

3. Statemen do – While

Bentuk umum dari perulangan ini adalah sebagai berikut :

do statemen while(kondisi);

Statemen ini dapat berupa statemen kosong, tunggal atau blok statemen dan bersarang.

Perulangan ini hampir sama dengan perulangan while dimana perulangan akan terus dilakukan jika kondisinya bernilai benar dan akan dihentikan jika kondisinya bernilai salah. Perbedaan utama antara perulangan while dengan do-while adalah letak dari kondisi yang akan diseleksinya. Untuk statemen while, kondisi yang diseleksi terletak diawal lingkup perulangannya, sedangkan do-while, kondisi yang diseleksi terletak diakhir lingkup perulangannya. Ini berarti bahwa paling sedikit sebuah perulangan akan dilakukan oleh statemen do-while, karena untuk masuk pertama kali ke lingkup perulangan ini tidak diseleksi terlebih dahulu.

Contoh 9 :

# include <stdio.h>
main()
{
Int X; 
X=3;
Do {
printf(“%d”, X);
X++;
}
while(X<5);
}

Contoh 10 :

# include <stdio.h>
# include <math.h>
Main()
{
Int X, I;
printf(“ X 1/X X^2 X^3\n“);
printf(“ -----------------------------------------------\n”);
X=1;
do {
printf(“%3d %8.5f ”, X, 1.0/X);
I=2;
do {
printf(“ %8.0f”, pow(X,I));
I++;
} while(I<=3);
printf(“\n”);
X++;
} while(X<=10);
}

Latihan

Buatlah program untuk memasukkan nilai-nilai ujian mahasiswa secara berulang, kemudian hitung total nilai dan rata-ratanya. Proses pemasukkan nilai dilakukan sebanyak jumlah dari mahasiswanya.

C++ Tutorial : INPUT dan OUTPUT

INPUT dan OUTPUT

1. Perintah Input

Fungsi-fungsi pustaka yang digunakan untuk memasukkan data melalui alat input keyboard, prototypenya ada di file judul stdio.h dan conio.h. Fungsi pustaka yang menggunakan file judul stdio.h adalah gets() dan scanf(). Sedangkan fungsi-fungsi pustaka yang menggunakan file judul conio.h adalah getche(), getchar() dan getch().

Memasukkan Data Tidak Terformat

Fungsi-fungsi yang digunakan untuk memasukkan data tidak terformat adalah fungsi-fungsi getche(), getchar(), getch() dan gets(). Fungsi-fungsi ini digunakan untuk memasukkan nilai sebuah karakter atau nilai string.

Contoh 1 : memasukkan nilai karakter

# include <stdio.h>
# include <conio.h>
main()
{
Char c;
Printf(“Masukkan Nilai Sebuah Karakter ? “);c=getche();
printf(“\nNilai yang dimasukkan adalah : %c \n”,c);
}

Contoh 2 : memasukkan nilai karakter

# include <stdio.h>
# include <conio.h>
main()
{
Char c;
Printf(“Masukkan Nilai Sebuah Karakter ? “);c=getchar();
printf(“\nNilai yang dimasukkan adalah : %c \n”,c);
}

Contoh 3 : memasukkan nilai karakter

# include <stdio.h>
# include <conio.h>
main()
{
Char c;
Printf(“Masukkan Nilai Sebuah Karakter ? “);c=getch();
printf(“\nNilai yang dimasukkan adalah : %c \n”,c);
}

Contoh 4 : memasukkan nilai string

# include <stdio.h>
main()
{
Char s[50];
Printf(“Masukkan Nilai String ? “);gets(s);
printf(“\nNilai string yang dimasukkan adalah : %s \n”,s);
}

Memasukkan Data Terformat

Memasukkan data terformat berarti data yang diterima akan diatur bentuk dan lebarnya dengan kode format. Fungsi yang digunakan untuk memasukkan data terformat adalah fungsi scanf().

Contoh 5 : memasukkan nilai karakter

# include <stdio.h>
main()
{
Char c;
Printf(“Masukkan Nilai Sebuah Karakter ? “);Scanf(“%c”,&c);
printf(“\nNilai yang dimasukkan adalah : %c \n”,c);
}

Contoh 6 : memasukkan nilai string

# include <stdio.h>
main()
{
Char s[80];
Printf(“Masukkan Nilai String ? “);Scanf(“%s”,s);
printf(“\nNilai String yang dimasukkan adalah : %s \n”,s);
}

Dalam pemasukkan nilai string dengan fungsi scanf(), terkadang ditemui masalah yaitu nilai stringnya mengandung blank. Fungsi ini menganggap blank atau spasi sebagai pemisah atau akhir dari suatu nilai data. Untuk mengatasi masalah ini, maka kode format “%s” dapat diganti dengan bentuk “%[^\n]”. Bentuk ini mengakibatkan karakter nilai string akan dibaca terus sampai ditemui penekanan tombol enter.

Contoh 7 : memasukkan nilai string

# include <stdio.h>
main()
{
Char s[80];
Printf(“Masukkan Nilai String ? “);Scanf(“%[^\n]”,s);
printf(“\nNilai string yang dimasukkan adalah : %s \n”,s);
}

Contoh 8 : memasukkan nilai numerik

# include <stdio.h>
main()
{
Int i; float j;
Printf(“Masukkan Nilai Bulat ? “);Scanf(“%i”,&i);
Printf(“Masukkan Nilai Pecahan ? “);Scanf(“%f”,&j);
printf(“\nNilai Bulat adalah : %i \n”,i);
printf(“\nNilai Pecahan adalah : %6.2f \n”,j);
}

2. Perintah Output

Fungsi-fungsi pustaka yang umum digunakan untuk menampilkan hasil yang prototypenya berada di file judul stdio.h adalah putchar(), puts() dan printf().

Menampilkan Hasil Tidak Terformat

Dua fungsi pustaka dapat digunakan untuk menampilkan hasil tidak terformat, yaitu putchar() dan puts(). Fungsi putchar() digunakan untuk menampilkan nilai karakter tidak terformat dan fungsi puts() digunakan untuk menampilkan nilai string tidak terformat. Tidak terformat artinya adalah lebar dan bentuk dari tampilannya tidak dapat diatur.

Contoh 1 :

# include <stdio.h>
main()
{
char c; s[11]=”Ini String”;
c=’A’
putchar(c);
puts(s);
}

Menampilkan Hasil Terformat

Fungsi printf() dapat digunakan untuk memformat bentuk dari tampilan. Fungsi ini dapat mengatur formatnya karena dapat menggunakan kode-kode karakter, string dan numerik.

Contoh 2 :

# include <stdio.h>
main()
{
char c=’B’; char k[9]=”Bahasa C”; int i=1234;
printf(“%c \n”,c);
printf(“%3c \n”,c);
printf(“%s \n”,k);
printf(“%15s \n”,k);
printf(“%i \n”,i);
printf(“%7d \n”,i);
}

Latihan

Buatkan program dengan menginputkan biodata anda dan menampilkannya di layar monitor sebagai berikut :

Input Data :

NIM : 531410001

Nama : Anita Budiman

Hobi : Makan

No.Telp : 081210001000

Biodata Mahasiswa

——————————–

NIM : 531410001

Nama : Anita Budiman

Hobi : Makan

No.Telp : 081210001000

——————————–