Sabtu, 07 November 2009

URGENSI SISTEM KEAMANAN

Diposting oleh kamil |

Dalam dunia komunikasi data global yang selalu berubah, hubungan Internet yang murah, dan cepatnya perkembangan software, keamanan menjadi isu yang semakin penting. Keamanan saat ini menjadi suatu kebutuhan dasar karena komputasi global tidak aman. Sebagai contoh, dengan berpindahnya data anda dari titik A ke titik B di Internet, ia akan melalui beberapa titik lain selama perjalanan, membuka kesempatan bagi pihak lain untuk memotong data,merubah data bahakan merubah tujuan data . Beberapa fakta yang membuat sistem keamanan data menjadi penting adalah :

a. tidak ada sistem komputer yang dapat diamankan secara total, yang dapat dilakukan adalah membuat kesulitan bagi orang lain untuk mengganggu sistem komputer kita.

b. semakin aman sistem kita semakin intrusif keamanan yang diperlukan. Perlu ditentukan tindakan yang membuat sistem masih dapat digunakan dan aman untuk digunakan. Jika mempunyai site yang berukuran besar hingga menengah, diperlu menetapkan suatu Kebijakan Keamanan (Security Policy) yang berisikan tingkat keamanan yang dibutuhkan oleh site dan auditing apa yang digunakan untuk memeriksanya. Contoh kebijakan keamanan model ini dapat dilihat di http://ds.internic.net/rfc/rfc2196.txt.

c. setiap individu mempunyai privasi yang berbeda. Sebelum mengamankan suatu sistem, perlu ditentukan tingkat ancaman yang di hadapi, risiko apa yang perlu atau tidak perlu diambil, dan seberapa rentan sistem terhadap gangguan.

1. Hacker, Cracker Dan Motif
Cracker merupakan individu maupun kelompok orang yang memanfaatkan hasil penemuan penyusupan terhadap komputer lain untuk melakukan eksploitasi dan mengambil manfaat dari hasilnya. Seorang cracker dapat melakukan exploitasi di mana saja dan kapan saja, tanpa harus mempunyai pengetahuan khusus. Cracker jenis ini dikenal sebagai ``script kiddies''. Motivasi para cracker sangat beragam, diantaranya adalah untuk propaganda (deface web site / email), kriminal murni, penyerangan destruktif (akibat dendam atau ketidaksukaan terhadap suatu insitusi), dan lain-lain. Apapun motif dari cracker selalu ada pihak yang dirugikan akibat tindakannya.

Berbeda dengan Cracker, Hacker adalah entitas yang menemukan kelemahan (vunerability) sistem dalam konteks security incidents. Seorang hacker bisa menjadi seorang cracker, tetapi seorang cracker belum tentu menguasai kemampuan yang dipunyai seorang hacker.
Motivasi para hacker untuk menemukan vunerability adalah untuk membuktikan kemampuannya atau sebagai bagian dari kontrol sosial terhadap sistem.

Pada prakteknya suatu pembentukan sistem yang aman akan mencoba melindungi adanya beberapa kemungkinan serangan yang dapat dilakukan pihak lain terhadap kita antara lain :

• Intrusion. Pada penyerangan ini seorang penyerang akan dapat menggunakan sistem komputer yang kita miliki. Sebagian penyerang jenis ini menginginkan akses sebagaimana halnya pengguna yang memiliki hak untuk mengakses sistem.

• Denial of services. Penyerangan jenis ini mengakibatkan pengguna yang sah tak dapat mengakses sistem. Sebagai contoh adalah Distributed Denial of Services (DDOS) yang mengakibatkan beberapa situs Internet tak bisa diakses. Seringkali orang melupakan jenis serangan ini dan hanya berkonsentrasi pada intrusion saja.

• Joyrider. Pada serangan ini disebabkan oleh orang yang merasa iseng dan ingin memperoleh kesenangan dengan cara menyerang suatu sistem. Mereka masuk ke sistem karena beranggapan bahwa mungkin data yang di dalamnya menarik. Rata-rata mereka karena rasa ingin tahu, tapi ada juga yang menyebabkan kerusakan atau kehilangan data.

• Vandal. Jenis serangan ini bertujuan untuk merusak sistem. Seringkali ditujukan untuk site-site besar.

• Scorekeeper. jenis serangan in hanyalah bertujuan untuk mendapatkan reputasi dengan cara mengcrack sistem sebanyak mungkin. Sebagian besar dari mereka tertarik pada situs-situs tertentu saja. Sebagian dari mereka tak begitu peduli dengan data yang ada di dalamnya. Saat ini jenis ini lebih dikenal dengan istilah script kiddies

• Mata-mata. Jenis serangan ini bertujuan untuk memperoleh data atau informasi rahasia dari pihak kompetitor. Saat ini semakin banyak perusahaan yang memanfaatkan jasa ini.
Terdapat beberapa macam mata-mata, yaitu :

o The Curious (Si Ingin Tahu) - tipe penyusup ini pada dasarnya tertarik menemukan jenis sistem dan data yang anda miliki.

o The Malicious (Si Perusak) - tipe penyusup ini berusaha untuk merusak sistem, atau merubah web page anda, atau sebaliknya membuat waktu dan uang anda kembali pulih.

o The High-Profile Intruder (Si Profil Tinggi) - tipe penyusup ini berusaha menggunakan sistem untuk memperoleh popularitas dan ketenaran. Dia mungkin menggunakan sistem profil tinggi anda untuk mengiklankan kemampuannya.

o The Competition (Si Pesaing) - tipe penyusup ini tertarik pada data dalam sistem.


2. Jenis Serangan Sekuriti

Serangan pada suatu sistem jaringan komputer sendiri pada dasarnya memiliki 3 gelombang trend utama yaitu (Schneier, 2000)
Gelombang pertama adalah serangan fisik
Serangan ini ditujukan kepada fasilitas jaringan, perangkat elektronis dan komputer. Sebagai pertahanan terhadap serangan jenis ini biasanya digunakan sistem backup ataupun sistem komputer yang terdistribusi, sehingga mencegah kesalahan di satu titik mengakibatkan seluruh sistem menjadi tak bekerja. Cara pemecahan terhadap serangan ini telah diketahui dengan baik. Jaringan Internet sendiri didisain untuk mengatasi permasalahan seperti ini.

Gelombang pertama adalah serangan sintatik
Serangan ini ditujukan terhadap keringkihan (vulnerability ) pada perangkat lunak, celah yang ada pada algoritma kriptografi atau protokol. Serangan Denial of Services (DoS) juga tergolong pada serangan jenis ini. Serangan jenis inilah yang saat ini paling populer. Tetapi relatif cara penanganannya telah diketahui dan biasanya pihak administrator atau pengguna yang lalai menerapkannya.

Gelombang pertama adalah serangan semantik

Serangan jenis ini memanfaatkan arti dari isi pesan yang dikirim. Dengan kata lain adalah menyebarkan disinformasi melalui jaringan, atau menyebarkan informasi tertentu yang mengakibatkan timbulnya suatu kejadian. Pada dasarnya banyak pengguna cenderung percaya apa yang mereka baca. Seringkali keluguan mempercayai berita ini disalah-gunakan pihak tertentu untuk menyebarkan issue-issue yang menyesatkan.

3. Kriptografi

3.1 Pengertian Dasar

Suatu pesan yang tidak disandikan disebut sebagai plaintext ataupun dapat disebut juga sebagai cleartext. Proses yang dilakukan untuk mengubah plaintext ke dalam ciphertext disebut encryption atau encipherment. Sedangkan proses untuk mengubah ciphertext kembali ke plaintext disebut decryption atau decipherment.

Cryptography adalah suatu ilmu ataupun seni mengamankan pesan, dan dilakukan oleh cryptographer. Sedang, cryptanalysis adalah suatu ilmu dan seni membuka (breaking) ciphertext dan orang yang melakukannya disebut cryptanalyst.

Cryptographic system atau cryptosystem adalah suatu fasilitas untuk mengkonversikan plaintext ke ciphertext dan sebaliknya. Dalam sistem ini, seperangkat parameter yang menentukan transformasi pencipheran tertentu disebut suatu set kunci. Proses enkripsi dan dekripsi diatur oleh satu atau beberapa kunci kriptografi. Secara umum, kunci-kunci yang digunakan untuk proses pengenkripsian dan pendekripsian tidak perlu identik, tergantung pada sistem yang digunakan.

Secara umum operasi enkripsi dan dekripsi dapat diterangkan secara matematis sebagai berikut :

EK(M)=C (Proses Enkripsi)
DK(C)=M (Proses Dekripsi)
Pada saat proses enkripsi kita menyandikan pesan M dengan suatu kunci K lalu dihasilkan pesan C. Sedangkan pada proses dekripsi, pesan C tersebut diuraikan dengan menggunakan kunci K sehingga dihasilkan pesan M yang sama seperti pesan sebelumnya.
Keamanan suatu pesan tergantung pada kunci ataupun kunci-kunci yang digunakan, dan tidak tergantung pada algoritma yang digunakan. Sehingga algoritma-algoritma yang digunakan tersebut dapat dipublikasikan dan dianalisis, serta produk-produk yang menggunakan algoritma tersebut dapat diproduksi massal. Tidak menjadi masalah apabila seseorang mengetahui algoritma yang digunakan. Selama ia tidak mengetahui kunci yang dipakai, ia tetap tidak dapat membaca pesan.

3.2 Cryptographic system (cryptosystem)

Suatu cryptosystem terdiri dari sebuah algoritma, seluruh kemungkinan plaintext, ciphertext dan kunci-kunci. Secara umum cryptosystem dapat digolongkan menjadi dua buah, yaitu :

1. Symmetric Cryptosystem
Dalam symmetric cryptosystem ini, kunci yang digunakan untuk proses enkripsi dan dekripsi pada prinsipnya identik, tetapi satu buah kunci dapat pula diturunkan dari kunci yang lainnya. Kunci-kunci ini harus dirahasiakan. Oleh karena itulah sistem ini sering disebut sebagai secret-key ciphersystem. Jumlah kunci yang dibutuhkan umumnya adalah :
nC2 =n.(n-1)
2
dengan n menyatakan banyaknya pengguna. Contoh dari sistem ini adalah Data Encryption Standard (DES), Blowfish, IDEA.

2. Assymmetric Cryptosystem
Dalam assymmetric cryptosystem ini digunakan dua buah kunci. Satu kunci yang disebut kunci publik (public key) dapat dipublikasikan, sedang kunci yang lain yang disebut kunci privat (private key) harus dirahasiakan. Proses menggunakan sistem ini dapat diterangkan secara sederhana sebagai berikut : bila A ingin mengirimkan pesan kepada B, A dapat menyandikan pesannya dengan menggunakan kunci publik B, dan bila B ingin membaca surat tersebut, ia perlu mendekripsikan surat itu dengan kunci privatnya. Dengan demikian kedua belah pihak dapat menjamin asal surat serta keaslian surat tersebut, karena adanya mekanisme ini. Contoh sistem ini antara lain RSA Scheme dan Merkle-Hellman Scheme.
Setiap cryptosytem yang baik harus memiliki karakteristik sebagai berikut :

• Keamanan sistem terletak pada kerahasiaan kunci dan bukan pada kerahasiaan algoritma yang digunakan.

• Cryptosystem yang baik memiliki ruang kunci (keyspace) yang besar.

• Cryptosystem yang baik akan menghasilkan ciphertext yang terlihat acak dalam seluruh tes statistik yang dilakukan terhadapnya.

• Cryptosystem yang baik mampu menahan seluruh serangan yang telah dikenal sebelumnya

3.3 Cryptographic Protokol

Suatu protokol adalah serangkaian langkah yang melibatkan dua pihak atau lebih dan dirancang untuk menyelesaikan suatu tugas. Dari definisi ini dapat diambil beberapa arti sebagai berikut :

• protokol memiliki urutan dari awal hingga akhir;
• setiap langkah harus dilaksanakan secara bergiliran;
• suatu langkah tidak dapat dikerjakan bila langkah sebelumnya belum selesai;
• diperlukan dua pihak atau lebih untuk melaksanakan protokol;
• protokol harus mencapai suatu hasil;
Selain itu, suatu protokol pun memiliki karakteristik yang lain, yaitu :
• setiap orang yang terlibat dalam protokol harus mengetahui terlebih dahulu mengenai protokol dan seluruh langkah yang akan dilaksanakan;
• setiap orang yang terlibat dalam protokol harus menyetujui untuk mengikutinya;
• protokol tidak boleh menimbulkan kerancuan;
• protokol harus lengkap;
Cryptographic protocol adalah suatu protokol yang menggunakan kriptografi. Protokol ini melibatkan sejumlah algoritma kriptografi. Penggunaan kriptografi dalam sebuah protokol terutama ditujukan untuk mencegah atau pun mendeteksi adanya eavesdropping dan cheating.
Fungsi Protokol
Komputer memerlukan suatu protokol formal agar dapat melakukan hal yang biasa dilakukan manusia tanpa berpikir. Protokol digunakan untuk mengabtraksikan proses penyelesaian suatu tugas dari mekanisme yang digunakan. Protokol komunikasi adalah sama meskipun diimplementasikan pada PC atau VAX.
3.4 Penyerangan Terhadap Protokol
Penyerangan cryptographic dapat ditujukan pada beberapa hal berikut :
• algoritma cryptographic yang digunakan dalam protokol;
• teknik cryptographic yang digunakan untuk mengimplementasikan algoritma dan protokol;
• protokol itu sendiri;
Seseorang dapat mencoba berbagai cara untuk menyerang suatu protokol. Mereka yang tidak terlibat dalam protokol dapat menyadap sebagian atau seluruh protokol. Tindakan ini disebut penyerangan pasif, karena si penyerang tidak mempengaruhi atau mengubah protokol, ia hanya mengamati protokol dan berusaha untuk memperoleh informasi.
Selain itu, seorang penyerang dapat berusaha untuk mengubah protokol demi keuntungannya sendiri. Ia dapat mengirimkan pesan dalam protokol, menghapus pesan, atau bahkan mengubah informasi yang ada di dalam suatu komputer. Tindakan-tindakan ini disebut sebagai penyerangan aktif, karena ia membutuhkan suatu campur tangan aktif.
Seorang penyerang tidaklah hanya berasal dari lingkungan luar protokol, namun ia mungkin juga berasal dari dalam protokol itu sendiri, ia dapat merupakan salah satu pihak yang terlibat dalam protokol. Tipe penyerang semacam ini disebut sebagai cheater. Passive cheater mengikuti protokol, tetapi berusaha memperoleh informasi lebih banyak daripada yang diperbolehkan protokol bagi dirinya. Active cheater mengubah protokol dalam usahanya untuk berbuat hal yang bersifat ilegal/curang.
Usaha untuk menjaga keamanan protokol akan semakin sulit apabila pihak-pihak yang terlibat umumnya merupakan active cheater, oleh karena itu suatu protokol yang baik harus mampu atau pun harus aman terhadap kemungkinan passive cheating.

berikut adalah pengulangan dengan mengunakan bahasa pemrograman c++ :

// program cetak symbol *
#include"iostream.h"
main()
{
int x,y,z; //variable dalam tipe integer
cout<<"masukan nilai= "; //meminta memasukan sebuah nilai cin>>x; //menyimpan nilai kedalam variabel x
for(y=1;y<=x;y++) // y++ menampilkan nilai kemudian ditambahkan { for(z=1;z<=y;z++) { cout<<"*"; // cetak * } cout<
}
return(0);
}




berikut adalah pengulangan dengan mengunakan bahasa pemrograman pascal :

program segitiga;
uses
crt;
var
a,b,c:integer;
begin
clrscr;
write('masukan nilai : ');readln(a);
for b:= 1 to a do
begin
for c:=1 to b do
begin
write('*');
end;
writeln;
end;
readln;
end.

15 Jenis Serangan Cracker

Diposting oleh kamil |

Tools maupun teknik yang digunakan cracker kebanyakan adalah variasi dari serangan yang mereka lakukan sebelumnya. Sebagai Administrator baik system maupun jaringan ataupun end user, Anda haruslah banyak belajar dari pengalaman penyerangan yang terjadi sebelumnya

1. IP Spoofing

IP Spoofing juga dikenal sebagai Source Address Spoofing, yaitu pemalsuan alamat IP attacker sehingga sasaran menganggap alamat IP attacker adalah alamat IP dari host di dalam network bukan dari luar network.
Misalkan attacker mempunyai IP address type A 66.25.xx.xx ketika attacker melakukan serangan jenis ini maka Network yang diserang akan menganggap IP attacker adalah bagian dari Networknya misal 192.xx.xx.xx yaitu IP type C. IP Spoofing terjadi ketika seorang attacker ‘mengakali’ packet routing untuk mengubah arah dari data atau transmisi ke tujuan yang berbeda. Packet untuk
routing biasanya di transmisikan secara transparan dan jelas sehingga membuat attacker dengan mudah untuk memodifikasi asal data ataupun tujuan dari data. Teknik ini bukan hanya dipakai oleh attacker tetapi juga dipakai oleh para security profesional untuk men tracing identitas dari para attacker.

Protokol yang menangani komunikasi antar komputer kebanyakan berhasil di spoof. ICMP (Internet Control Message Protocol) adalah salah satunya(vulnerable) karena protokol ini dilewati oleh informasi dan pesan-pesan kesalahan diantara dua node dalam network. Internet Group Message Protocol (IGMP) dapat dieksploitasi dengan menggunakan serangan tipe ini karena IGMP melaporkan kondisi kesalahan pada level user datagram, selain itu juga protokol ini mengandung Informasi routing dan Informasi Network.

Solusi untuk mencegah IP spoofing adalah dengan cara mengamankan packet-packet yang ditransmisikan dan memasang screening policies. Enkripsi Point-to-point juga dapat mencegah user yang tidakmempunyai hak untuk membaca data/packet.

Admininistrator dapat menggunakan signature untuk paket-paket yang berkomunikasi dalam networknya sehingga meyakinkan bahwa paket tersebut tidak diubah dalam perjalanan. Anti Spoofing rules(peraturan anti spoof) yang pada dasarnya memberitahukan server untuk menolak packet yang datangnya dari luar yang terlihat datangnya dari dalam, umumnya hal ini akan mematahkan
setiap serangan spoofing.

2. FTP Attack

Tujuan menyerang FTP server ini rata-rata adalah untuk mendapatkan command shell ataupun untuk melakukan Denial Of Service.Serangan Denial Of Service akhirnya dapat menyebabkan seorang user atau attacker untuk mengambil resource didalam network tanpa adanya autorisasi, sedangkan command shell dapat membuat seorang attacker mendapatkan akses ke sistem server dan file-file data yang akhirnya seorang attacker bisa membuat anonymous root-acces yang mempunyai hak penuh terhadap system bahkan network yang diserang.

Tidak pernah atau jarang mengupdate versi server dan mempatchnya adalah kesalahan yang sering dilakukan oleh seorang admin dan inilah yang membuat server FTP menjadi rawan untuk dimasuki. Sebagai contoh adalah FTP server yang populer di keluarga UNIX yaitu WU-FTPD yang selalu di upgrade dua kali dalam sehari untuk memperbaiki kondisi yang mengizinkan terjadinya buffer overflow Mengexploitasi FTP juga berguna untuk mengetahui password yang terdapat dalam sistem.

3. Unix Finger Exploits

Pada masa awal internet, Unix OS finger utility digunakan secara efficient untuk mensharing informasi diantara pengguna. Karena permintaan informasi terhadap informasi finger ini tidak menyalahkan peraturan, kebanyakan system Administrator meninggalkan utility ini (finger) dengan keamanan yang sangat minim, bahkan tanpa kemanan sama sekali. Bagi seorang attacker utility ini sangat berharga untuk melakukan informasi tentang footprinting, termasuk nama login dan informasi contact.
Keterangan pribadi tentang user yang dimunculkan oleh finger daemon ini sudah cukup bagi seorang atacker untuk melakukan social engineering dengan menggunakan social skillnya untuk memanfaatkan user agar ‘memberitahu’ password dan kode akses terhadap system.

4. Flooding & Broadcasting

Seorang attacker bisa mengurangi kecepatan network dan host-host yang berada di dalamnya secara significant dengan cara terus melakukan request/permintaan terhadap suatu informasi dari sever yang bisa menangani serangan classic Denial Of Service(Dos), mengirim request ke satu port secara berlebihan dinamakan flooding, kadang hal ini juga disebut spraying. Ketika permintaan flood ini dikirim ke semua station yang berada dalam network serangan ini dinamakan broadcasting.
Tujuan dari kedua serangan ini adalah sama yaitu membuat network resource yang menyediakan informasi menjadi lemah dan akhirnya menyerah.

Ada Dua faktor yang mempengaruhi yaitu: ukuran dan/atau volume (size and/or
volume). Seorang attacker melempar file berkapasitas besar atau volume yang besar dari paket yang kecil kepada sebuah system. Dalam keadaan seperti itu network server akan menghadapi kemacetan: terlalu banyak informasi yang diminta dan tidak cukup power untuk mendorong data agar berjalan. Pada dasarnya paket yang besar membutuhkan kapasitas proses yang besar pula, tetapi secara tidak normal paket yang kecil dan sama dalam volume yang besar akan menghabiskan resource secara percuma, dan mengakibatkan kemacetan.

Serangan ini dapat diantisipasi dengan cara menolak broadcast yang diarahkan pada router. TCP-level Flooding (kebanyakan SYN ATTACK) telah digunakan pada bulan februari tahun 2000 untuk menyerang Yahoo!, eBay dll yang menggunakan serangan DDOS(Distributed Denial Of Service).
Network yang tidak menggunakan firewall untuk pengecekan paket-paket TCP biasanya bisa diserang dengan cara ini.
Beberapa fungsi penyaringan pada firewall (Firewall Filtering Function) biasanya akan mampu untuk menahan satu serangan flooding dari sebuah alamat IP, tetapi serangan yang dilakukan melalui DDOS akan sulit di cegah karena serangan ini seperti kita ketahui datangnya dari berbagai alamat IP secara berkala.
Sebenarnya salah satu cara untuk menghentikan serangan DDOS adalah dengan cara mengembalikan paket ke alamat asalnya atau juga dengan cara mematikan network(biasanya dilakukan oleh system yang sudah terkena serangan sangat parah).

5. Fragmented Packet Attacks

Data-data internet yang di transmisikan melalui TCP/IP bisa dibagi lagi ke dalam paket-paket yang hanya mengandung paket pertama yang isinya berupa informasi bagian utama( kepala) dari TCP. Beberapa firewall akan mengizinkan untuk memroses bagian dari paket-paket yang tidak mengandung informasi alamat asal pada paket pertamanya, hal ini akan mengakibatkan beberapa type system menjadi crash.

6. E-mail Exploits

Peng-exploitasian e-mail terjadi dalam lima bentuk yaitu:
Serangan mail flood (flood =air bah) terjadi ketika banyak sekali e-mail yang dikirimkan oleh attacker kepada sasaran yang mengakibatkan transfer agent kewalahan menanganinya, mengakibatkan komunikasi antar program lain menjadi tidak stabil dan dapat membuat system menjadi crash. serangan dilakukan dengan mengexploitasi fungsi auto-responder (auto-responder function) yang terdapat dalam kebanyakan aplikasi email, ketika seorang attacker menemukan auto-responder yang sedang aktif dalam dua system yang
berbeda, sang attacker bisa saja mengarahkan yang satu ke yang lainnya, karena kedua-duanya di set untuk merespond secara sacara otomatis untuk setiap pesan, maka kedua-duanya akan terus mengenarate lebih banyak e-mail secara loop(bolak-balik) dan akhirnya kedua-duanya akan kelelahan dan down.

Serangan memanipulasi perintah (command manipulation attack) dapat mengakibatkan sebuah system menjadi crash dengan cara menggulingkan mail transfer agent dengan sebuah buffer overflow yang diakibatkan oleh perintah (fungsi) yang cacat (contoh: EXPN atau VRFY). Perbedaan antara mail flood dan command manipulation: command manipulation meng-exploit kekuasaan milik sendmail yaitu memperbolehkan attacker untuk mengakses system tanpa informasi otorisasi(menjadi network admin tanpa diketahui) dan membuat modifikasi pada penjalanan program lainnya. Mengaktifkan command yang cacat seperti diatas juga dapat mengakibatkan seorang attacker mendapatlan akses untuk memodifikasi file, menulis ulang, dan tentunya saja membuat trojan horses pada mail server.

Penyerangan tingkat transport (transport level attack) dilakukan dengan cara mengexploit protokol perute-an/pemetaan e-mail diseluruh internet: Simple Mail Tranport Protocol (SMTP). Seorang attacker dapat mengakibatkan kondisi kesalahan sementara (temporary error) di target system dengan cara mengoverload lebih banyak data pada SMTP buffer sehingga SMTP buffer tidak bisa menanganinya, kejadian ini dapat mengakibatkan seorang attacker terlempar dari sendmail program dan masuk kedalam shell dengan kekuasaan adminitsrasi bahkan dapat mengambil alih root. Beberapa serangan exploitasi juga sering terjadi pada POP dan IMAP.
Serangan ini lebih digunakan untuk membuat gangguan daripada untuk menjebol suatu system.

Mail relaying, proses memalsukan asal/source email dengan cara meroutekannya ke arah mesin yang akan dibohongi, adalah type lain dari serangan transport-level. Teknik ini sangat berguna untuk membuat broadcasting spam secara anonymous. Berbagai macam isi(content) yang sering dikirim lewat e-mail Beberapa Virus dan Worms akan disertakan dalam e-mail sebagai file attachment yang sah, seperti variant Melissa yang nampak sebagai Ms Word Macro atau loveletter worm yang menginfeksi system dan mengemailkan dirinya sendiri ke users yang berada dalam address booknya outlook. Kebanyakan antivirus scanner akan menangkap attachment seperti ini, tetapi visrus dan worm baru serta variannya masih tetap berbahaya. Serangan yang terakhir yang dilakukan oleh seorang attacker selain serangan diatas adalah dengan cara melakukan social enginering, kadang sang attacker mengirim e-mail dengan source memakai alamat admin agar users mengirimkan passwordnya untuk mengupgrade system.

7. DNS and BIND Vulnerabilities

Berita baru-baru ini tentang kerawanan (vulnerabilities) tentang aplikasi Barkeley Internet Name Domain (BIND) dalam berbagai versi mengilustrasikan kerapuhan dari Domain Name System (DNS), yaitu krisis yang diarahkan pada operasi dasar dari Internet (basic internet operation).

Merupakan target yang paling favorite untuk diserang oleh komunitas cracker karena beberapa kerawanannya. Kerawanan terhadap buffer overflow yang terjadi pada bulan Januari lalu hanya beberapa bagian dari kerawanan untuk diexploitasi oleh para cracker agar mendapat akses terhadap system dan melakukan perintah dengan hak penuh (command execution priviledge).
Kerawanan pada BIND merupakan masalah yang sangat serius karena lebih dari 80 persen DNS yang berada di Jagat Internet dibangun menggunakan BIND. Tanpa adanya DNS dalam lingkungan Internet Modern, mungkin transmisi e-mail akan sulit, navigasi ke situs-situs web terasa rumit dan mungkin tidak
ada hal mudah lainnya yang menyangkut internet.

Cracker akan mencoba untuk menyerang system melalui DNS dengan cara buffer overflow karena adanya kelemahan dalam pengkodean/pemrograman BIND yang mengizinkan seorang attacker untuk memanfaatkan code-code yang dapat dieksekusi untuk masuk kedalam system.
Beberapa system operasi telah menyediakan patch untuk stack agar tidak dapat dieksekusi, sebagaimana juga yang dilakukan compiler (menyediakan patch) yang melindungi stack dari overflow.
Telah jelas bahwa mengupdate system secara berkala dan menggunakan patch adalah salah satu yang harus dilakukan untuk membangun security yang efektif,

8. Password Attacks

Password merupakan sesuatu yang umum jika kita bicara tentang kemanan. Kadang seorang user tidak perduli dengan nomor pin yang mereka miliki, seperti bertransaksi online di warnet, bahkan bertransaksi.
Password adalah salah satu prosedur kemanan yang sangat sulit untuk diserang. Melatih karyawan/user agar tetap waspada Kebnayakan seranagan yang dilakukan terhadap password adalah menebak (guessing), brute force, cracking dan sniffing. Penebakan(guessing) password bisa dilakukan dengan cara memasukan password satu persatu secara manual ataupun dengan bantuin script yang telah diprogram. Kebanyakan user menggunakan hal-hal yang umum untuk password mereka diantaranya tanggal lahir, dan biasanya user tidak menghawatirkan tentang aturan yang berlaku pada perusahaan untuk menggunakan kombinasi alphanumeric dan minimal 7 karakter. Jika saja user memakai tanggal lahirnya sebagai password maka hal penyerangan akan sangat
mudah dilakukan, karena cracker tidak membutuhkan waktu yang lama hanya untuk menjebol 6 digit angka tanggal lahir.

Brute-force merupakan serangan yang menggunakan logika yang sama dengan password guessing tetapi serangan brute-force lebih cepat dan lebih powerfull. Dalam tipe serangan ini seorang attacker menggunakan script (biasanya program cracking gratis) yang akan mencoba password-password umum(biasanya terdapat dalam dictionary).
Tujuan dari serangan jenis ini adalah untuk mempercepat penemuan password sebelum network admin menyadari adanya serangan. Walaupun serangan Brute-force lebih efisien daripada password guessing, kedua teknik tersebut pada dasarnya sama. Attacker umumnya lebih sulit untuk berhasil dengan kedua metoda tersebut. Lebih jauh lagi, kedua teknik tersebut sangat mudah di lawan dengan memanfaatkan features blacklisting, yang akan mengunci sebuah account user jika seseorang(attacker) berkali-kali memasukkan password secara tidak tepat. Contohnya, default blacklist dalam system unix adalah tiga kali (kesempatan memasukkan password).

dictionary attack (mencocokan kata-kata yang berada dalam kamus dengan kata-kata yang dienkripsi dalam file password). Cara yang terbaik untuk menghindari serangan jenis ini adalah dengan memonitor kewenangan akses pada file.

Dengan cara mengintip lalulintas pada port telnet(23) ataupun HTTPD (80), seorang attacker dapat mendapatkan password yang digunakan untuk internet dan koneksi secara remote melalui proses yang dinamakan password snifing.
HTTPD(biasanya ada tanda gembok terkunci dibawah browser, yang menandakan transaksi aman) atau juga menggunakan SSH (Secure SHell) untuk koneksi ke mesin lain secara remote.





9.Proxy Server Attacks

Jika firewal yang berada dalam trusted network tidak dikonfigurasikan secara optimal, khususnya untuk memblok akses dari luar, apalagi jika autentikasi dan enkripsi tidak digunakan, seorang attacker bisa menyerang proxy server dan mendapatkan akses yang sama dengan anggota trusted network lainnya. Router yang tidak dikonfigurasikan secara optimal juga akan berfungsi sebagai proxy server dan akan mengakibatkan kerawanan yang sama dengan proxy server.



10. Remote Command Processing Attacks


Attacker akan menyerang server yang merupakan anggota dari trusted system. Sama seperti kerawanan pada proxy server, ketika akses diterima, seorang attacker akan mempunyai kemampuan mengeksekusi perintah dan mengkases data yang tersedia bagi user lainnya.

11. Remote File System Attack

Protocol-protokol untuk tranportasi data –tulang punggung dari internet— adalah tingkat TCP (TCPLevel) yang mempunyai kemampuan dengan mekanisme untuk baca/tulis (read/write) Antara network dan host. Attacker bisa dengan mudah mendapatkan jejak informasi dari mekanisme ini untuk mendapatkan akses ke direktori file.
Tergantung pada OS (operating system) yang digunakan, attacker bisa meng extrack informasi tentang network, sharing privileges, nama dan lokasi dari user dan groups, dan spesifikasi dari aplikasi atau banner (nama dan versi software). System yang dikonfigurasi atau diamankan secara minimal akan dengan mudah membeberkan informasi ini bahkan melalui firewall sekalipun.
Pada system UNIX, informasi ini dibawa oleh NFS (Network File System) di port 2049. system Windows menyediakan data ini pada SMB (server messaging block) dan Netbios pada port 135 - 139(NT) dan port 445 pada win2k.
Network administrator bisa meminimalisasi resiko dengan memberikan sedikit peraturan. Network dengan system windows, harusnya memblok akses ke port 139 dan 445 dari luar network, jika dimungkinkan. Dalam system unix port 2049
seharusnya di blok, sharing file dibatasi dan permintaan file melalui showmount(perintah dalam unix) seharusnya di catat dalam log.

12. Selective Program Insertions

Selective Program Insertions adalah serangan yang dilakukan ketika attacker menaruh program-program penghancur, seperti virus, worm dan trojan (mungkin istilah ini sudah anda kenal dengan baik ☺) pada system sasaran. Program-program penghancur ini sering juga disebut malware. Program-program ini mempunyai kemampuan untuk merusak system, pemusnahan file, pencurian password sampai dengan membuka backdoor.
Biasanya antivirus yang dijual dipasaran akan dapat mendeteksi dan membersihkan program-program seperti ini, tetapi jika ada virus baru (anggap saja variant melissa) virus scanner belum tentu dapat menghadapi script-script baru. Beberapa network administrator melakukan pertahan terhadap malware dengan teknologi alternatif seperti behaviour blockers, yang memberhentikan kode-kode yang dicurigai berdasarkan contoh kelakuan malware, bukan berdasarkan signature. Beberapa aplikasi lainnya akan mengkarantina virus dan code-code yang dicurigai didalam daerah yang dilindungi, biasanya disebut
sandboxes.


13. Port Scanning

Melalui port scanning seorang attacker bisa melihat fungsi dan cara bertahan sebuah system dari berbagai macam port. Seorang atacker bisa mendapatkan akses kedalam sistem melalui port yang tidak dilindungi. Sebaia contoh, scaning bisa digunakan untuk menentukan dimana default SNMP string di buka untuk
publik, yang artinya informasi bisa di extract untuk digunakan dalam remote command attack.

14.TCP/IP Sequence Stealing, Passive Port Listening and Packet
Interception

TCP/IP Sequence Stealing, Passive Port Listening dan Packet Interception berjalan untuk mengumpulkan informasi yang sensitif untuk mengkases network. Tidak seperti serangan aktif maupun brute-force, serangan yang menggunakan metoda ini mempunyai lebih banyak kualitas stealth-like. TCP/IP Sequence Stealing adalah pemetaan dari urutan nomor-nomor (angka), yang bisa membuat packet milik attacker terlihat legal. Ketika suatu system meminta sesi terhadap mesin lain, kedua system tersebut saling bertukar nomor-nomor sinkronisasi TCP. Jika tidak dilakukan secara acak, Attacker bisa mengenali
algoritma yang digunakan untuk meng –generate nomor-nomor ini. Urutan nomor yang telah dicuri bisa digunakan attacker untuk menyamar menjadi salah satu dari system tadi, dan akhirnya memperbolehkannya untuk melewati firewall. Hal ini sebenarnya efektif jika digunakan bersama IP Spoofing.
Melalui passive port listening, seorang attacker dapat memonitor dan mencatat (log) semua pesan dan file yang dikirim ke semua port yang dapat diakses pada target system untuk menemukan titik kerawanan.
Packet Interception adalah bagian (tepatnya pelapis) dari active listener program yang berada pada port di system sasaran yang berfungsi untuk menerima ataupun mengembalikan semua tipe pesan (data) spesifik yang dikirim. Pesan tersebut bisa dikembalikan ke unauthorized system, dibaca dan akhir nya
dikembalikan lagi baik tanpa perubahan atau juga dengan perubahan kepada attacker, atau bahkan tidak dikembalikan.
Dalam beberapa versi atau juga menurut konfigurasi dari user SSHD(secured shell daemon), otentikasi bisa dilakukan dengan cara menggunakan public key (milik mesin tentunya). Jika seorang attacker mempelajari public key yang digunakan, ia bisa menciptakan atau memasukan paket-paket palsu. System
sasaran akan menganggap pengirim paket palsu tersebut mempunyai hak akses.

15. HTTPD Attacks

Kerawanan yang terdapat dalam HTTPD ataupun webserver ada lima macam:

HTTPD Buffer Overflow bisa terjadi karena attacker menambahkan errors pada port yang digunakan untuk web traffic dengan cara memasukan banyak carackter dan string untuk menemukan tempat overflow yang sesuai.
Beberapa feature dari HTTPD bisa digunakan untuk meciptakan HTTPD byapass, memberi akses ke server menggunakan fungsi logging. Dengan cara ini, sebuah halaman web bisa diakses dan diganti tanpa dicatat oleh web server. Cara ini sering digunakan oleh para cracker, hacktivis dan cyber vandals untuk
mendeface website. Sedangkan kerawanan pada script-script web bisa terjadi pada semua bahasa pemrograman web dan semua ekstensi aplikasi. Termasuk VB, Visual C++, ASP, TCL, Perl, PHP, XML, CGI dan Coldfusion.
Pada dasarnya, attacker akan mengexploitasi kelemahan dari sebuah aplikasi, seperti CGI script yang tidak memeriksa input atau kerawanan pada IIS RDS pada showcode.asp yang mengizinkan menjalankan perintah secara remote (remote command priviledges).
Melalui cross scripting dan cross-site scripting seorang attacker bisa mengexploitasi pertukaran cookies antara browser dan webserver. Fasilitas ini dapat mengaktifkan script untuk merubah tampilan web dll.
Script ini bisa menjalankan malware, membaca infomasi penting dan meng expose data sensitive seperti nomor credit card dan password.

Serangan dengancara terus mengulang permintaan terhadap port 80 httpd yang melalui batas TTL (time tolive).

Beberapa user ataupun manager mungkin benci mendengar serangan-serangan tersebut. Tapi pada kenyataanya memang tidak ada yang benar-benar fix untuk mengamankan network ataupun website. Tetapi sekali lagi peralatan paling canggih di dunia tidak akan menolong suatu organisasi sampai organisasi tersebut mempunyai proses untuk mengupgrade system, memakai patch, mengecek security pada system sendiri dan metode lain.
Jalan terbaik untuk melindungi website maupun network dari serangan adalah mendekatkan keamanan sebagaimana tantangan yang sedang terjadi terhadap keamanan itu sendiri, terus berusaha, selalu ingat basicnya dan jangan lupa untuk berdoa... :)

Minggu, 01 November 2009

KAMUS DATA (DATA DICTIONARY)

Diposting oleh kamil |

Kamus data adalah suatu daftar data elemen yang terorganisir dengan definisi yang tetap dan sesuai dengan sistem, sehingga user dan analis sistem mempunyai pengertian yang sama tentang input, output dan komponen data store.
Pembentukan kamus data didasarkan pada alur data yang terdapat pada DFD
Alur data pada DFD bersifat global (hanya menunjukkan nama alur datanya tanpa menunjukkan struktur dari alur data). Untuk menunjukkan struktur dari alur data secara rinci maka dibentuklah kamus data.

Form Kamus Data


Data Flow Dictionary Entry Data Store Dictionary Entry

Data Structure Dictionary Entry

Data Element Dictionary Entry


Data Flow Dictionary Entry (DFDE)
Menerangkan setiap data flow pada DFD dan hanya berisi summary data (data ringkasan) serta menerangkan alur yang mengidentifikasikan dari mana alur itu berasal dan kemana alur itu menuju.

DATA FLOW DICTIONARY ENTRY
Use : To describe each data flow in a data flow diagram
DATA FLOW NAME : Sales Orders
DESCRIPTION : -
FROM : 1. Open Mail
TO : 2. Enter Sales Order Data
DATA STRUCTURES : Sales Order Record
COMMENTS : -


Keterangan :
Data flow name : nama yang digunakan pada DFD.
Description : Menjelaskan secara singkat aturan flow didalam sistem.
From : Menunjukkan asal dari data flow (dapat berupa proses, data store dan terminator).
To : Menunjukkan tujuan dari data (dapat berupa proses, data store dan terminator).
Comments : Memberikan keterngan - keterangan yang penting saja.



Data Store Dictionary Entry
Menerangkan setiap data store yang unik pada DFD . Jika data store yang sama muncul lebih dari sekali, maka bentuk tunggal yang digunakan.

DATA STORE DICTIONARY ENTRY
Use : describe each unik data store in a data flow diagram
DATA STORE NAME : Sales Order Form File
DESCRIPTION : -
DATA STRUCTURES : Sales order record
VOLUME : Approximately 140 per day
ACTIVITY : -
ACCES : Order departement personel
COMMENTS : -

Keterangan :
Data store name : Nama data store yang digunakan pada DFD.
Description : Menjelaskan secara singkat jenis data yang terkandung dalam data store.
Data Structures : Data Struktur yang ada pada data store.
Volume : Menunjukkan ukuran dari data store.
Activity : Menunjukkan informasi yang berhubungan dengan record yang aktif di dalam file.
Access : Batasan-batasan pada data.
Comments : Memberikan keterngan - keterangan yang penting saja.

Data Structure Dictionary Entry
Data Structure Dictionary Entry dilengkapi dengan setiap struktur yang ada pada data store dan data flow.
Tujuan : Untuk menghubungkan summary description dari Data Flow dan Data Store Dictionary Entryke deskripsi detail dari Data Element Dictionary Entry.

DATA STRUCTURE DICTIONARY ENTRY
Use : To describe each unique data structure that exist in
(1) data flows and (2) data stores
STRUCTURE NAME : Sales Order record
DESCRIPTION : -
DATA ELEMENTS : CUSTOMER.NUMBER
CUSTOMER.ORDER.NUMBER
SALESPERSON.NUMBER
CUSTOMER.ORDER.DATE
*ITEM.NUMBER
*ITEM.DESCRIPTION
*ITEM.QUANTITY
*ITEM.UNIT.PRICE
*ITEM.EXTENDED.PRICE
COMMENTS : Elements marked with asterisks occur
for each item record.



Keterangan :
Structure name : nama yang sama dengan form data store dan data
flow.
Description : Menjelaskan bagaimana struktur digunakan.
Data Elements : Daftar elemen data yang terkandung dalam struktur.
Comments : Memberikan keterngan - keterangan yang penting saja.


Data Element Dictionary Entry
Data Structure Dictionary Entry menyediakan dasar untuk skema database.
Tujuan : Untuk menstandarkan deskripsi dari suatu elemen sehingga elemen itu direferensikan dengan cara yang sama setiap kali digunakan.

DATA ELEMENT DICTIONARY ENTRY
Use : To describe each unique data element contained in
Data structure
DATA ELEMENT NAME : SALESPERSON.NUMBER
DESCRIPTION : The number that identifies the
salesperson
TYPE : Numeric
LENGTH : 4
NO. DECIMAL POS : -
ALIASES : Salesman Number, Sales Rep
Number
RANGE OF VALUES : 0001-9999
TYPICAL VALUES :
SPECIFIC VALUES :
OTHER EDITING DETAILS :


Keterangan :
Data Element name : nama elemen data.
Description : Menjelaskan elemen data.
Type : tipe data (Alphabet, numeric, alphanumeric).
Length : ukuran elemen data
No. Dec. Pos : dapat diisi jika tipenya numeric
Aliases : Nama lain
Range of Values : informasi yang digunakan oleh programmer untuk
mendeteksi kesalahan data. Demikian juga dengan field Typical Values dan Specific Values diisi bila diperlukan.
Others editing details : Keterangantambahan yang dianggap penting.
Misal : Employee Age dapat digantikan dengan Date of Birth.







Pendefinisian Data Elemen Dalam Kamus Data

Kamus data mendifinisikan data elemen dengan cara :
- Menguraikan arti dari alur data dan data store dalam DFD
- Menguraikan komposisi paket data pada alur data ke dalam alur yang lebih kecil. Contoh : Alamat langganan yang terdiri dari nama jalan, kota dan kode pos.
- Menguraikan komposisi paket data dalam data store.
- Menspesifikasikan nilai dan unit informasi dalam alur data dan data store.
- Menguraikan hubungan yang terinci antara data store dalam suatu ERD.

NOTASI KAMUS DATA

NOTASI ARTI
= Terdiri dari, terbentuk dari, sama dengan
+ Dan
( ) Optional
{ } Iterasi / pengulangan misal : 1 { …. } 10
[ ] Pilih satu dari beberapa alternatif (pilihan)
Misal : [ A | B | C | D ]
* * Komentar
@ Identifier suatu data store
| Pemisah dalam bentuk [ ]
Alias Nama lain untuk suatu data

Contoh :
NOTASI "="
Nama=Nama_Depan + Nama_belakang

NOTASI "( )"
Nama_Langganan = (title) + Nama_Depan + (Nama_Tengah) +
Nama_Belakang
Customer_Address = (Shiping_Address) + (Billing_Address)

NOTASI "{ }"
Order=Customer_Name + Shipping_Address + 1 { item} 10

NOTASI "[ ]"
Jenis_Kelamin = [Pria | Wanita]

NOTASI " * *"
Penjualan = *Jumlah penjualan setiap tahun*
Pajak_rate = *Pajak yang berlaku ditentukan oleh pemerintah *

NOTASI "Alias"
Client Alias Customer
Contoh Kasus :


ORDER SLIP

Nomor :
Nama Pelanggan :
Alamat : TOP
Tanggal Order : HEADER
Untuk dikirimkan pada Tgl :
Alamat Pengiriman :

N Nama Nomor Jumlah Harga Jumlah
Barang Barang Barang Satuan




Total

Discount =
FOOTER Pajak =
Total Akhir =

Jakarta, …….

Kamus Data dari SLIP ORDER :

ORDER = TOP HEADER + ISI + FOOTER *Slip order valid*
TOP HEADER = NOMOR + NAMA_LANGGANAN + ALAMAT +
TGL_ORDER + UNTUK_DIKIRIM_PADA_TGL +
ALAMAT_PENGIRIMAN
NOMOR=*nomor order terdiri dari 8 digit*
NAMA_LANGGANAN=(Title) + Nama_Depan + Nama_Belakang

ISI = 1 {NO + NAMA_BARANG + NOMOR_BARANG +
JUMLAH_BARANG + HARGA_SATUAN + JUMLAH } 10
NO = *nomor unit dari barang yang diorder*
*maksimum 10 macam setiap order formulir*
NOMOR_BARANG=*10 digit*
HARGA_SATUAN=*dalam rupiah*

FOOTER = TOTAL + DISCOUNT + PAJAK + TOTAL_AKHIR
TOTAL = *Total dari jumlah yang diorder*
DISCOUNT=*Jumlah potongan untuk pembelian > 3 macam*
PAJAK=*Jumlah pajak penjualan yang dibayar oleh langganan*
*Total dikali prosentase pajak penjualan*
TOTAL_AKHIR=*Jumlah yang harus dibayar langganan*
*Total ditambah pajak dikurang discount*

Data Store Dictionary Entry anggap sebagai File Database
Data Structure Dictionary Entry anggap sebagai Record
Data Element Dictonary Entry anggap sebagai Field

DIAGRAM E-R

Diposting oleh kamil |

Model data Entity-Relationship(E-R) dibangun berdasarkan persepsi dari dunia nyata yang mengandung himpunan dari objek-objek yang disebut entity dan hubungan antara objek-objek tersebut. Setiap objek bersifat unik. Hal ini tampak dari atribut-atribut yang dimilikinya.
Contoh : rekening mempunyai atribut Nomor dan Jumlah.
Contoh untuk relasi : Hubungan antara beberapa entitas seperti PELREK merupakan relasi yang menghubungkan pelanggan dengan setiap rekening yang dimilikinya.

contoh diagram E-R

- Persegi panjang mewakili himpunan entitas.
- Ellips mewakili atribut.
- Jajaran genjang mewakili relasi antar entitas.
- Garis penghubung antara entitas dengan relasi, maupun antara relasi dengan himpunan atributnya.


ENTITY dan ENTITY SET

Entity adalah objek yang eksis dan dapat dibedakan dari objek lainnya. Entity dapat konkrit (nyata) misalnya : manusia, buku atau dapat juga berbentuk abstrak misalnya : liburan, konsep, dsb.
Entity set adalah set dari entity-entity dengan tipe yang sama. Entity dapat saling lepas (disjoint).
Entity dapat digambarkan dengan himpunan dan atribut. Untuk beberapa atribut, ada himpunan dari nilai-nilai yang diinginkan yang disebut domain dari atribut tersebut.
Contoh : domain dari atribut Nomor adalah himpunan semua bilangan integer positif.
Model data merupakan kumpulan konsep-konsep yang berguna untuk menggambarkan data, hubungan data, semantik data dan data constraint.
Database mempunyai informasi yang berubah setiap saat dengan meng-insert atau men-delete informasi ke dalam database. Kumpulan dari informasi yang disimpan dalam database dalam suatu saat tertentu disebut Instant database. Hasil design dari database disebut skema database.


RELATIONSHIP dan RELATIONSHIP SET

Relationship adalah asosiasi di antara beberapa entity. Relationship set adalah himpunan dari relasi-relasi dengan tipe yang sama.
Secara formal, relationship set adalah relasi matematika dengan n * 2 entity set. Jika E1, E2, . . . , En adalah entity set, maka relationship set R adalah subset dari { e1, e2, . . . , en / e1 * E1, e2 * E2, . . . , en * En } dimana (e1, e2, . . . , en) adalah relationship.


PEMETAAN CONSTRAINT

Entity-Relationship (E-R) dari sebuah skema enterprise mendefinisikan batasan-batasan (constraint) tertentu sehingga isi dari database dapat sesuai. Salah satu batasan yang penting adalah pemetaan kardinalitas yang menggambarkan jumlah entitas dimana entitas yang lain dapat diasosiasikan melalui sebuah relasi.

Pemetaan kardinal mencakup salah satu dari :
* One-To-One.
Sebuah entity A diasosiasikan pada sebuah entity B, dan sebuah entity B diasosiasikan dengan paling banyak sebuah entity A.

* One-To-Many
Sebuah entity A diasosiasikan dengan sejumlah entity B, tetapi entity B dapat diasosiasikan paling banyak satu entity A.

* Many-To-One.
Suatu entity A dapat diasosiasikan dengan paling banyak sebuah entity B, tetapi entity B dapat diasosiasikan dengan sejumlah entity di A.

* Many-To-Many.
Suatu entity A dapat diasosiasikan dengan sejumlah entity B dan entity B dapat diasosiasikan dengan sejumlah entity di A.

PENYAJIAN ENTITY SET KUAT ( STRONG ENTITY SET )

Misal E adalah sebuah entity set kuat dengan atribut-atribut a1, a2, . . . , an. Kita sajikan entity ini dengan sebuah tabel yang disebut E dengan n kolom berbeda dimana masing-masing kolom berhubungan dengan sebuah dari atribut E. Setiap baris dalam tabel ini berhubungan dengan sebuah entity dari entity set E. Untuk menggambarkan ini, anggap entity set Account dari diagram E-R di bawah ini :

Gambar 1

Entity set ini mempunyai dua atribut : Account-Number dan Balance. Kita sajikan entity set ini dengan sebuah tabel yang disebut Account, dengan dua kolom seperti digambarkan di bawah ini :

Account-Number Balance
259 1000
630 2000
401 1500
700 1500
199 500
467 900
115 1200
183 1300
118 2000
225 2500
210 2200

Tabel Account

Baris ( 259,1000 ) dalam tabel Account berarti bahwa Account-Number 259 mempunyai balance sebesar $1000. Kita dapat menambahkan sebuah entity baru ke dalam database dengan menyisipkan sebuah baris ke dalam tabel. Kita dapat juga men-delete atau me-modifikasi baris.
Relationship set bukan biner dapat ditentukan dengan mudah dalam diagram E-R, seperti pada diagram berikut :

Gambar 2

Diagram E-R di atas berisi tiga entity set yaitu entity set Customer, entity set Account dan entity set Branch dihubungkan melalui relationship set CAB. Diagram ini menjelaskan bahwa customer mungkin memiliki beberapa Account pada masing-masing lokasi dalam cabang bank tertentu dan Account tersebut mungkin dimiliki oleh beberapa customer yang berbeda.

MEREDUKSI DIAGRAM E-R KE DALAM TABEL

Database yang disesuaikan ke diagram E-R dapat digambarkan dengan kumpulan tabel-tabel. Untuk setiap entity set dan untuk setiap relationship set dalam database, terdapat sebuah tabel yang unik yang diberi nama sesuai dengan entity set atau relationship set. Masing-masing tabel memiliki sejumlah kolom yang juga mempunyai nama yang unik.

PENYAJIAN ENTITY SET LEMAH ( WEAK ENTITY SET )

Misal A adalah sebuah weak entity set dengan atribut-atribut a1, a2, . . ., ar. Misal B adalah merupakan strong entity set dimana A bergantung. Misal primary key dari B berisi atribut-atribut b1, b2, . . . , bs. Kita sajikan entity set A dengan sebuah tabel yang disebut A dengan sebuah kolom untuk setiap atribut dari set.

{ a1, a2, . . . , ar } * { b1, b2, . . ., bs}

Untuk menggambarkan ini, perhatikan entity set Transaction dari diagram E-R pada gambar 1. Entity set ini mempunyai 3 atribut yakni Transaction-Number, Date dan Amount. Primary key dati entity set Account, dimana transaction bergantung adalah Account-Number. Sehingga transaction disajikan dengan sebuah tabel dengan kolom dengan Account-Number, Transaction-Number, Date dan Amount seperti tampak di bawah ini :
Account-Number Transaction-Number Date Amount
259 5 11 May 1985 +50
630 11 17 May 1985 +70
401 22 23 May 1985 -300
700 69 28 May 1985 -500
199 103 3 June 1985 +900
259 6 7 June 1985 -44
115 53 7 June 1985 +120
199 104 13 June 1985 -200
259 7 17 June 1985 -79

Tabel Transaction

//program nilai mata kuliah
#include"iostream.h"
#include"conio.h"
main()
{
int NAKHIR; //variabel muntuk menyimpan nilai akhir
int NABSEN; //variabel muntuk menyimpan nilai absen
int NTUGAS; //variabel muntuk menyimpan nilai tugas
int NUTS; //variabel muntuk menyimpan nilai uts
int NUAS; //variabel muntuk menyimpan nilai uas
char NINDEKS; //variabel muntuk menyimpan nilai indeks
clrscr();
cout<<"masukan nilai absen: "; //meminta masukan nilai absen
cin>>NABSEN; //menyimpan nilai ke dalam variabel
cout<<"masukan nilai tugas: "; //meminta masukan nilai tugas
cin>>NTUGAS; //menyimpan nilai ke dalam variabel
cout<<"masukan nilai uts: "; //meminta masukan nilai uts
cin>>NUTS; //menyimpan nilai ke dalam variabel
cout<<"masukan nilai uas: "; //meminta masuakn nilai uas
cin>>NUAS;

NABSEN= 10*NABSEN/100; //nilai absen 10%
NTUGAS= 20*NTUGAS/100; //nilai tugas 20%
NUTS= 20*NUTS/100; //nilai uts 20%
NUAS= 50*NUAS/100; //nilai uas 50%



// menghitung nilai akhir(nilai absen+nilai tugas+nilai uts+nilai uas)
NAKHIR= NABSEN+NTUGAS+NUTS+NUAS;
if (NAKHIR >80) NINDEKS ='A';
else if (NAKHIR >60) NINDEKS ='B';
else if (NAKHIR >40) NINDEKS ='C';
else if (NAKHIR >20) NINDEKS ='D';
else NINDEKS ='E';
cout<<"nilai akhir= "<cout<<"nilai indeks= "<return(0);
}

selamat mencoba.......

CONTOH PROGRAM KONVERSI SUHU ( C++ )

Diposting oleh kamil |

// program konversi suhu
#include"iostream.h"
#include"conio.h"
main()
{
float C; //variabel untuk menyimpan suhu dalam celcius
float R; //variabel untuk menyimpan suhu dalam reamur
float F; //variabel untuk menyimpan suhu dalam farenheit
float K; //variabel untuk menyimpan suhu dalam kelvin

clrscr(); //membersihkan layar monitor dari teks yang ada sebelumnya
cout<<"masukkan suhu dalam celcius: "; //meminta masukan nilai suhu dalam celcius
cin>>C ; //menyimpan nilai yang dimasukan ke dalam variabel

R= 4*C/5; //reamur=4/5 dikali suhu dalam celcius
F= (5/9*C)+32; //farenheit=5/9 dikali suhu dalam celcius dan ditambahkan 32
K= C+ 273; //kelvin=suhu dalam celcius ditambahkan 273

cout<<"suhu dalam celcius= "< cout<<"suhu dalam reamur = "< cout<<"suhu dalam farenheit = "< cout<<"suhu dalam kelvin = "<return(0);
}

Berikut adalah contoh sederhana program dengan perulangan bersarang mengunakan bahasa c++

dengan outputnya adalah :
*
* *
***
****
***
**
*

// program segitiga symbol*
#include"iostream.h"
main()
{
int p,u,j,i; // variable dengan tipe integer
cout<<"masukan nilai a= "; // meminta memasukan sebuah nilai a
cin>>p; // menyimpan nilai kedalam variabel p
cout<<"masukan nilai b= "; // meminta masukan sebuah nilai b
cin>>u; // menyimpan nilai kedalam variabel u
for(j=1;j<=p;j++) // (j++) menampilkan nilai kemudian baru ditambahkan
{
for(i=1;i<=j;i++)
{
cout<<"*";
}
cout<}
for(j=u;j>=1;j--) // ( j- - ) menampilkan nilai kemudian baru dikurangkan
{
for(i=j;i>=1;i--)
{
cout<<"*"; // cetak *
}
cout<}
return(0);
}

Selamat mencoba……

Berikut adalah contoh sederhana program dengan perulangan bersarang mengunakan bahasa c++.

dengan outputnya adalah :
*
* *
***
****

// program cetak symbol *
#include"iostream.h"
main()
{
int x,y,z; //variable dalam tipe integer
cout<<"masukan nilai= "; //meminta memasukan sebuah nilai
cin>>x; //menyimpan nilai kedalam variabel x
for(y=1;y<=x;y++) // y++ menampilkan nilai kemudian ditambahkan
{
for(z=1;z<=y;z++)
{
cout<<"*"; // cetak *
}
cout< }
return(0);
}

selamat mencoba.....

PENGENALAN BAHASA PEMROGRAMAN C/C++

Diposting oleh kamil |

STRUKTUR PROGRAM BAHASA C / C++

#include


deklarasi variabel global;
main()
{
deklarasi variabel lokal;
statement – statement;
}
fungsi()
{
deklarasi variabel lokal;
statement – statement;
}


FUNGSI OUTPUT

 Fungsi yang menggunakan file judul stdio.h :
 putchar() : menampilkan karakter tidak terformat.
 puts() : menampilkan string tidak terformat.
 printf() : menampilkan hasil berdasarkan kode format.
 fprintf() : menampilkan hasil di printer.
 Fungsi yang menggunakan file judul iostream.h :
 cout() : mencetak hasil.
 Fungsi yang menggunakan file judul conio.h :
 clrscr() : membersihkan layar.
 gotoxy() : meletakkan kursor di posisi layar tertentu


FUNGSI INPUT

 Fungsi yang menggunakan file judul stdio.h :
 gets() : memasukkan nilai string.
 scanf() : input menggunakan kode format.
 Fungsi yang menggunakan file judul iostream.h :
 cin() : memasukkan nilai / input.
 Fungsi yang menggunakan file judul conio.h :
 getch() : input 1 karakter tanpa Enter dan tidak ditampilkan.
 getchar() : input 1 karakter diakhiri dengan Enter.
 getche() : input 1 karakter tanpa Enter tapi ditampilkan.


KODE FORMAT ( hanya digunakan dalam bahasa C )

 %c : menampilkan sebuah karakter.
 %s : menampilkan nilai string.
 %d : menampilkan nilai desimal integer.
 %f : menampilkan nilai pecahan.
 %o : menampilkan nilai oktal integer.
 %x : menampilkan nilai heksadesimal integer.

Kemunculan Bahasa Pemerograman Pascal boleh dikatakan terlambat dalam sejarah perkembangan bahasa pemrograman . Karena bahasa pemrograman Pascal dapat belajar dari pendahulunya seperti Fortran, Cobol, dan PL/1 yang muncul sekitar awal tahun 1960an. Bahasa Pemrograman Pascal merupakan bahasa pemrograman tingkat tinggi yang dirancang oleh Profesor Niklaus Wirth dari Technical University of Zurich, Switzerland. Yang dinamai pascal sebagai penghargaan terhadap Blaise Pascal. Seorang ahli matematik dan filosofer yang terkenal pada abad 17 dari perancis.
Prof Niklaus Wirth memperkenalkan Kompiler bahasa Pascal yang pertama untuk Komputer CDC 600 (Control Data Corporation) yang dipublikasikan pada tahu 1971 dengan tujuan membantu mengajar program Komputer secara sistematis khususnya untuk memperkenalkan program terstruktur .

Dalam waktu singkat bahasa Pascal telah menjadi popular dikalangan Universitas dan kemudian diajarkan dibeberapa perguruan tinggi . Beberapa profesional Komputer juga mulai beralih pada bahasa pascal . Pada kenyataanya bahasa Pascal merupakan bahasa yang paling cepat popular dibandingkan dengan bahasa-bahasa Komputer tingkat tinggi lainnya .

Standar Pascal adalah bahasa yang didefinisikan oleh K.Jensen dan Niklaus Wirth. Penerapan nyata dari standar pascal banyak yang berbeda dengan seperti apa yang telah didefinisikan oleh K.Jensen dan Niklaus Wirth. Standar pascal dieropa didefinisikan oleh ISO ( International Standards Organization ) dan di Amerika oleh kerjasama antara ANSI (Amerika National Standar Institute) dengan IEEE ( Institute of Electrical and Electronic Engineer ).

Bebera versi dari Pascal yang telah beredar dipasaran diantaranya UCSD Pascal ( University of California at San Diego Pascal ), MS-Pascal ( Microsoft Pascal ), Apple Pascal, Turbo Pascal dan lain sebagainya. Sampai saat ini untuk komputer-komputer mikro dan personal, Turbo Pascal merupakan versi bahasa Pascal yang paling populer dan paling banyak digunakan. Kompiler Turbo Pascal banyak digemari karena bersifat interaktif seperti interpreter. Selain itu Turbo
Pascal mengikuti definisi standar Pascal seperti yang didefinisikan oleh K.Jensen dan Niklaus Wirth di Pascal User Manual dan Report. Turbo Pascal adalah copyright dari Borland Inc.

1 Sejarah perkembangan Turbo Pascal

Turbo Pascal adalah sebuah sistem perkembangan perangkat lunak yang terdiri atas kompiler dan lingkungan perkembangan terintegerasi IDE ( Develovement Environment ) atas bahasa pemrograman Pascal untuk sistem operasi CP/M, CP/M-86 dan MS-DOS, yang dikembangakan oleh Borland pada masa kepemimpinan Philippe Khan. Nama Borland Pascal umumnya digunakan untuk paket perangkat lunak tingkat lanjut dengan kepustakaan yang lebih banyak dan pusaka kode sumber standar. Sementara versi yang lebih murah dan paling luas digunakan dengan nama Turbo Pascal. Nama Borlan Pascal juga digunakan sebagai dialek spesifik pascal buatan Borland.
Borland telah mengembangkan tiga buah versi lama dari turbo pascal secara gratis disebabakan karena sejarah yang panjang khusus untuk versi 1.0, 3.02 dan 5.5 yang berjalan pada sistemm operasi MS-DOS.

Turbo Pascal pada awalnya adalah kompiler Blue label Pascal yang dibuat untuk sistem operasi komputer mikro berbasis kaset, NAsSys, milik Nascom tahun 1981 oleh anders Hejlsberg. Kompiler tersebut ditulis ulang untuk CP/M dan dinamai Compas Pascal, dan kemudian dinamai Turbo Pascal untuk system operasi MS-Dos dan CP/M. Versi Turbo Pascal untuk Komputer Apple Macintosh sebenarnya telah dikembangkan pada tahun 1986, namun pemgembangannya dihentikan sekitar tahun 1992. Versi-versi lain pernah tersedia pula untuk mesin-mesin CP/M seperti DEC Rainbow dalam beberapa pengembangannya.

Borland membeli lisensi atas kompiler polypascal yang ditulis oleh Anders Hejlsberg (poly data adalah perusahaan yang didirikan di Denmark) dan menambahkan antara muka penggunaan serta editor . Anders Hejlsberg kemudian bergabung sebagai karyawan dan menjadi semua arsitek atas semua versi kompiler Turbo Pascal dan tiga versi pertamanya.


1.1 Turbo Pascal versi I

Versi pertama dari Turbo Pascal memiliki unjuk kerja yang sangat cepat dibandingkan dengan kompiler Pascal untuk komputer mikro lainnya . kompiler tersebut tersedia untuk system operasi CP/M CP/M-86, dan MS-Dos dan penggunaannya sangat luas pada masa itu .versi turbo pascal CP/M saat itu biasa digunakan pada komputer apple II yang sangat popular jika digunakn dengan sebuah Z-80 SoftCArd produk perangkat keras pertama yang dikembangakan Microsoft di tahun 1980.

Pada saat itu CP/M menggunakan format berkas executable yang sederhana dengan mengunakan ektensi .COM , system operasi MS-DOS bisa menggunakannya baik .COM ( tidak compatible dengan format yang terdapat pada CP/M) maupun format .EXE . Turbo Pascal pada saat itu hanya mendukung kode biner berformat.COM, pada masa itu hal tersebut tidak menjadi suatu bentuk keterbatasan . perangkat lunak Turbo Pascal itu sendiri merupakan berkas berektensi .COM dan berukuran sekitar 28 kilobita termasuk editor, compiler, dan linker dan rutin-rutin pusaka . Efisiensii proses edit/ kompilasi/ jalankan lebih cepat dibandingkan dengan implementasi Pascal pada kompiler lainnya disebabkan semua elemen yang terkait dalam pengembangan program diletakan pada memori komputer (RAM) dan karena kompilernya sendiri merupakan kompiler berjenis single-pass kompiler yang ditulis dengan bahasa assembler, dan untuk proses kerja kompilasi sangat cepat dibandingkan dengan produk lain ( bahkan dibandingkan dengan compiler C milik Borland sendiri ).

Ketika pertama kali versi Turbo Pascal muncul pada tanggal 20 november 1983 jenis IDE yang digunakan masih terbilang baru. Pada debutnya terhadap pasar perangkat lunak di Amerika perangkat lunak tersebut dibandrol dengan harga sekitar $ 49.99 kualitas kompiler Pascal terintegrasi terhadap dalam Turbo Pascal sangat baik dibandingkan competitor lain dan atas fitur-fitur tersebut ditawarkan dengan harga yang terjangkau.

1.2 Turbo Pascal versi II dan III

Merupakan pengembangan lebih lanjut dari versi sebelumnya mampu bekerja dalam memori dan menghasilkan berkas biner berektensi .COM/.CMD. dukungna atas sistem operasi CP/M dan CP/M-86 dihentikan setelah versi III

1.3 Turbo Pascal versi IV

Dikembangkan pada tahun1987 merupakan perangkat lunak yang ditulis yang untuk keseluruhan system kompiler menghasilkan berkas biner berektensi .EXE pada MS-DOS dan tidak lagi .COM. Sistem operasi CP/M dan CP/M-86 tidak lagi didukung pada versi kompiler ini versi ini pula memperkenalkan sebuah tatap muka berlayar penuh yang dilengkapi dengan menu menarik, versi –versi awal memiliki layar menu berbasis teks, dan editor berlayar penuh. Microsoft Windows belum ada pada saat versi ini dikembangkan.

1.4 Turbo Pascal versi V

Diperkenalkan dengan layar biru yang menjadi ciri khas yang sangat familiar dan kemudian menjadi merk dagang perusahaan perangkat kompiler MS-DOS sampai era DOS berakhir di petengahan tahun 1990-an.

1.5 Turbo Pascal versi VII

Versi terakhir yang pernah dikembangkan adalah versi 7 Borland Pascal 7 terdiri atas sebuat IDE dan kompiler untuk MS-DOS ,DOS terektensi , dan program Windows. Turbo Pascal 7 disisi lain hanya bisa membuat program MS-DOS standar. Perangkat lunak tersebut dilengkapi pula dengan pusaka grafis yang mengabstraksi pemrograman dalam menggunakan beberapa driver grafis eksternal, namun untuk kerja pusakan ini tidak memuaskan.

Meski semua versi Turbo Pascal mendukung inline machine code. Kode mesin yang disertakan dengan berbasi kode sumber bahasa pascal, versi-versi berikut mendukung integrasi bahasa perakit (assembler) dengan pascal secara mudah . Hal ini memungkinkan pemrogram untuk meningkatkan kerja eksekusi program lebih lanjut selain itu mememungkinkan pemrogram untuk mengakses perangkat keras secara langsung .
Dukungan atas model memori atas prosesor 8086 tersedia melalui inline assembly, opsi kompiler, dan eksensi bahasa seperti 30menggunakan kunci “absolute”.

2 Sejarah Perkembangan Delphi

Pada tahun 1995 borland menghetikan pengembangan Turbo Pascal dan menggantinya dengan Delphi berbasis objek Pascal (bahasa pascal yang telah dilengkapi dengan fitur pemrograman berorientasi objek ) perangkat lunak tersebut membawa banyak konsep baru kepada pengguna Turbo Pascal seperti konsep pemrograman berbasis RAD ( Rapid Application Develovement ) meski demikian versi 32 bit Delphi masih mendukung cukup banyak aspek-aspek yang ada pada turbo pascal. Beberapa produk lain yang compatible dengan Turbo Pascal juga bermunculan seperti Free Pascal dan Virtual Pascal.

Delphi adalah sebuah bahasa pemrograman dan lingkungan pengembangan perangkat lunak . Produk ini dikembangkan oleh Borland (sebelumnya dikenal sebagai inpires). Bahasa Delphi yang sebelumnya dikenal sebagai objek Pascal ( Pascal dengan ektensi pemerograman berorientasi objek (PBO/OOP) pada mulanya ditunjukan hanya untuk Microsoft Windows, namun saat ini telah mampu digunakan untuk mengembangkan aplikasi untuk linuk dan Microsoft .NET framework . Dengan mengunakan Free Pascal yang merupakan proyek opensource, bahasa ini dapat pula digunakan untuk membuat program yang berjalan disistem operasi MacOs X dan Windows CE.

Pada tahun 2001 sebuah versi linuk dikenal sebagai Kylik tersedia . dengan satu rilis baru setiap tahunnya,pada tahun 2002 dukungan untuk linux ( melalui Kylix dan CLX Component Library ) ditambahkan dan tahun 2003 .Net mulai didukung dengan munculnya Delphi .NET ( Delphi 8 ) yang kini sudah keluar, juga versi.Net terbaru yaitu RAD Studio 2007 dan Turbo Delphi .NET dengan versi desktopnya yaitu Delphi 2007 for win 32 dan Turbo Delphi.

Chief Architect yang melahirkan Delphi , dan pendahulunya turbo pascal adalah Anders Hejlsberg sampai kemudian ia pindah ke Microsoft tahun 1996 dimana ia sebagai chief designer C# dan termasuk orang kunci dalam perancangan Microsoft .NET framework didukungan penuh untuk .NET ditambahkan pada Delphi 8 ( yang dirilis pada bulan desember 2003 ) dengan penampilan user interface ( look and fell ) mirip dengan Microsoft Visual Studio .NET.

Delphi 2005 (Delphi 9) mendukung code generation baik untuk win 32 maupun .NET dan seperti yang telah dikenal fitur-fitur manipulasi data secara langsung dari database secara design-time . Ia juga membawa banyak pembaharuan pada IDE secara signifikan.

Sabtu, 31 Oktober 2009

PENGERTIAN ALGORITMA

Diposting oleh kamil |

ALGORITMA adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis. Pertama kali dikemukakan oleh penulis buku arab abu jafar muhammad ibnu musa Al-khuwarizmi. Algoritma merupakan jantung dari informatika/ilmu komputer di mana harus dinyatakan dalam bentuk yang dimegerti oleh pemeroses agar dapat dilaksanakan oleh komputer. Algoritma harus itulis dalam notasi bahasa pemerograman.

Pemerograman adalah implementasi teknis algoritma yang itulis dalam bahasa pemrograman tertentu.

Belajar memprogram ≠ belajar bahasa pemrograman.

Belajar memprogram

- Belajar tentang metodelogi pemecahan masalah

- Menuangkan dalam suatu notasi tertentu yang mudah dibaca dan dipahami

Belajar bahasa pemrograman

- Belajar memakai suatu bahasa aturan-aturan tata bahasanya dan instruksi-instruksinya, tata cara pengoperasian compilernya, dan memanfaatkan instruksi-instruksi tersebut untuk membuat program

Produk yang dihasilkan pemrograman

- Program dengan rancangan yang baik

- Berfungsi dengan benar

- Sanggup melayani segala kemungkinan masukan

- Disertai dokumentasi