Socket Programming

Penggunaan socket programming memungkinkan adanya komunikasi antara client dan server.Salah satu contoh sederhana penggunaan socket programming adalah pembuatan program untuk chatting.Program tersebut sebenarnya merupakan bentuk aplikasi berupa komunikasi antara client dan server.Ketika seorang user(client) melakukan koneksi ke chat server,program akan membuka koneksi ke port yang diberikan, sehingga server perlu membuka socket pada port tersebut dan “mendengarkan” koneksi yang datang.Socket sendiri merupakan gabungan antara host-adress dan port adress.Dalam hal ini socket digunakan untuk komunikasi antara client dan server.Penggambaran cara bagaimana client dan server berkomunikasi akan saya berikan melalui contoh script yang sangat sederhana berikut:


Script program untuk client:


#!/usr/bin/perl
# Program Client menggunakan perl
use IO::Socket;

my $socket = IO::Socket::INET->new(Proto => 'tcp',
PeerAddr => '127.0.0.1',
PeerPort => 1234) or die $!;


print "Jika ingin berhenti ketikkan: keluar\n ";
print "------------------------------------\n";
while (1){
print "Masukan pesan: ";
$pesan = <>;
$socket->send($pesan);
$socket->recv($recvpesan,80);
print "Terima dari server: $recvpesan\n";
exit if $recvpesan eq "keluar";
}

Script program untuk server:
#!/usr/bin/perl
# Program Server menggunakan perl
use IO::Socket;

$listen = IO::Socket::INET->new(Proto => 'tcp',
LocalPort => 1234,
Listen => 1) or die $!;

print ("Server sedang berjalan...\n");
$socket = $listen->accept;

while ($pesan ne "keluar"){
$socket->recv($pesan,80);
chop $pesan;
$socket->send("isi pesan >> $pesan");
}


Kedua program tersebut menggunakan IO::Socket untuk pembentukan socket yang akan digunakan berkomunikasi.

Proto digunakan untuk memilih protokol jaringan yang digunakan.Protokol yang sering digunakan dalam internet adalah TCP dan UDP.Dalam hal ini saya memilih menggunakan TCP (Transmission Control Protocol).Bisa juga digunakan protokol UDP (User Datagram Prototocol).TCP bersifat connection oriented dan relieable, sedangkan UDP bersifat connectionless.TCP mempunyai kemampuan untuk melakukan verifikasi dan mengirimkan ulang data yang hilang.

PeerAddr => '127.0.0.1' .PeerAddr yang digunakan kali ini adalah peeraddr local (localhost).Jika program ini dijalankan di internet, PeerAddr ini bisa juga diisi dengan nama domain ataupun alamat IPnya.Dalam lingkup lokal komputer kita, selain menggunakan IP tersebut(127.0.0.1), bisa juga diisi dengan ‘localhost’.

PeerPort = 1234.Sebenarnya alamat peerport ini bisa berupa nomor, misalnya 2323,7551,7552,dsb atau bisa juga berupa symbolic service name.

Pada program server, cara untuk membentuk socket meliputi protokol,peer port dsb dilakukan dengan cara dan alamat yang sama.Listen digunakan untuk “mendengarkan” koneksi yang datang ke port tersebut.

Logika pemrogramannya sangat sederhana untuk dipahami sehingga sebenarnya tidak perlu saya tuliskan, namun secara garis besarnya akan saya paparkan sbb:

Client akan melakukan looping terus menerus selama server masih aktif mendengarkan koneksi dan akan berhenti ketika menerima output balik dari server berupa kata “keluar” .Ketika user mengetikkan input string, maka akan dibaca sebagai $pesan dan kemudian dikirimkan ke server.Kemudian server yang menerima masukan itu mengirimkannya kembali ke client, demikian seterusnya hingga data yang dikirimkan client berupa kata “keluar”, maka looping di server untuk mengirimkan data ke client juga akan berhenti.


Read More......

Protokol Internet

Protokol Internet (Inggris Internet Protocol disingkat IP) adalah protokol lapisan jaringan (network layer dalam OSI Reference Model) atau protokol lapisan internetwork (internetwork layer dalam DARPA Reference Model) yang digunakan oleh protokol TCP/IP untuk melakukan pengalamatan dan routing paket data antar host-host di jaringan komputer berbasis TCP/IP. Versi IP yang banyak digunakan adalah IP versi 4 (IPv4) yang didefinisikan pada RFC 791 dan dipublikasikan pada tahun 1981, tetapi akan digantikan oleh IP versi 6 pada beberapa waktu yang akan datang.

Protokol IP merupakan salah satu protokol kunci di dalam kumpulan protokol TCP/IP. Sebuah paket IP akan membawa data aktual yang dikirimkan melalui jaringan dari satu titik ke titik lainnya. Metode yang digunakannya adalah connectionless yang berarti ia tidak perlu membuat dan memelihara sebuah sesi koneksi. Selain itu, protokol ini juga tidak menjamin penyampaian data, tapi hal ini diserahkan kepada protokol pada lapisan yang lebih tinggi (lapisan transport dalam OSI Reference Model atau lapisan antar host dalam DARPA Reference Model), yakni protokol Transmission Control Protocol (TCP).


Layanan yang ditawarkan oleh Protokol IP
* IP menawarkan layanan sebagai protokol antar jaringan (inter-network), karena itulah IP juga sering disebut sebagai protokol yang bersifat routable. Header IP mengandung informasi yang dibutuhkan untuk menentukan rute paket, yang mencakup alamat IP sumber (source IP address) dan alamat IP tujuan (destination IP address). Anatomi alamat IP terbagi menjadi dua bagian, yakni alamat jaringan (network address) dan alamat node (node address/host address). Penyampaian paket antar jaringan (umumnya disebut sebagai proses routing), dimungkinkan karena adanya alamat jaringan tujuan dalam alamat IP. Selain itu, IP juga mengizinkan pembuatan sebuah jaringan yang cukup besar, yang disebut sebagai IP internetwork, yang terdiri atas dua atau lebih jaringan yang dihubungkan dengan menggunakan router berbasis IP.

* IP mendukung banyak protokol klien, karena memang IP merupakan "kurir" pembawa data yang dikirimkan oleh protokol-protokol lapisan yang lebih tinggi dibandingkan dengannya. Protokol IP dapat membawa beberapa protokol lapisan tinggi yang berbeda-beda, tapi setiap paket IP hanya dapat mengandung data dari satu buah protokol dari banyak protokol tersebut dalam satu waktu. Karena setiap paket dapat membawa satu buah paket dari beberapa paket data, maka harus ada cara yang digunakan untuk mengidikasikan protokol lapisan tinggi dari paket data yang dikirimkan sehingga dapat diteruskan kepada protokol lapisan tinggi yang sesuai pada sisi penerima. Mengingat klien dan server selalu menggunakan protokol yang sama untuk sebuah data yang saling dipertukarkan, maka setiap paket tidak harus mengindikasikan sumber dan tujuan yang terpisah. Contoh dari protokol-protokol lapisan yang lebih tinggi dibandingkan IP adalah Internet Control Management Protocol (ICMP), Internet Group Management Protocol (IGMP), User Datagram Protocol (UDP), dan Transmission
Control Protocol (TCP).

* IP mengirimkan data dalam bentuk datagram, karena memang IP hanya menyediakan layanan pengiriman data secara connectionless serta tidak andal (unreliable) kepada protokol-protokol yang berada lebih tinggi dibandingkan dengan protokol IP. Pengirimkan connectionless, berarti tidak perlu ada negosiasi koneksi (handshaking) sebelum mengirimkan data dan tidak ada koneksi yang harus dibuat atau dipelihara dalam lapisan ini. Unreliable, berarti IP akan mengirimkan paket tanpa proses pengurutan dan tanpa acknowledgment ketika pihak yang dituju telah dapat diraih. IP hanya akan melakukan pengiriman sekali kirim saja untuk menyampaikan paket-paket kepada hop selanjutnya atau tujuan akhir (teknik seperti ini disebut sebagai "best effort delivery"). Keandalan data bukan merupakan tugas dari protokol IP, tapi merupakan protokol yang berada pada lapisan yang lebih tinggi, seperti halnya protokol TCP.

* Bersifat independen dari lapisan antarmuka jaringan (lapisan pertama dalam DARPA Reference Model), karena memang IP didesain agar mendukung banyak komputer dan antarmuka jaringan. IP bersifat independen terhadap atribut lapisan fisik, seperti halnya pengabelan, pensinyalan, dan bit rate. Selain itu, IP juga bersifat independen terhadap atribut lapisan data link seperti halnya mekanisme Media access control (MAC), pengalamatan MAC, serta ukuran frame terbesar. IP menggunakan skema pengalamatannya sendiri, yang disebut sebagai "IP address", yang merupakan bilangan 32-bit dan independen terhadap skema pengalamatan yang digunakan dalam lapisan antarmuka jaringan.

* Untuk mendukung ukuran frame terbesar yang dimiliki oleh teknologi lapisan antarmuka jaringan yang berbeda-beda, IP dapat melakukan pemecahan terhadap paket data ke dalam beberapa fragmen sebelum diletakkan di atas sebuah saluran jaringan. Paket data tersebut akan dipecah ke dalam fragmen-fragmen yang memiliki ukuran maximum transmission unit (MTU) yang lebih rendah dibandingkan dengan ukuran datagram IP. Proses ini dinamakan dengan fragmentasi ([[Fragmentasi paket jaringan|fragmentation). Router atau host yang mengirimkan data akan memecah data yang hendak ditransmisikan, dan proses fragmentasi dapat berlangsung beberapa kali. Selanjutnya host yang dituju akan menyatukan kembali fragmen-fragmen tersebut
menjadi paket data utuh, seperti halnya sebelum dipecah.

* Dapat diperluas dengan menggunakan fitur IP Options dalam header IP. Fitur yang dapat ditambahkan contohnya adalah kemampuan untuk menentukan jalur yang harus diikuti oleh datagram IP melalui sebuah internetwork IP.

Datagram IP
Format datagram Protokol IP

Paket-paket data dalam protokol IP dikirimkan dalam bentuk datagram. Sebuah datagram IP terdiri atas header IP dan muatan IP (payload), sebagai berikut:

* Header IP: Ukuran header IP bervariasi, yakni berukuran 20 hingga 60 byte, dalam penambahan 4-byte. Header IP menyediakan dukungan untuk memetakan jaringan (routing), identifikasi muatan IP, ukuran header IP dan datagram IP, dukungan fragmentasi, dan juga IP Options.
* Muatan IP: Ukuran muatan IP juga bervariasi, yang berkisar dari 8 byte hingga 65515 byte.

Sebelum dikirimkan di dalam saluran jaringan, datagram IP akan "dibungkus" dengan header protokol lapisan antarmuka jaringan dan trailer-nya, untuk membuat sebuah
frame jaringan.


Header IP
Header IP terdiri atas beberapa field sebagai berikut:

Version panjang 4 bit:
Digunakan untuk mengindikasikan versi dari header IP yang digunakan. Karena memiliki panjang 4 bit, maka terdapat 24=16 buah jenis nilai yang berbeda-beda, yang berkisar antara 0 hingga 15. Meskipun begitu hanya ada dua nilai yang bisa digunakan, yakni 4 dan 6, mengingat versi IP standar yang digunakan saat ini dalam jaringan dan Internet adalah versi 4 dan 6 merupakan singkatan dari versi selanjutnya (IPv6). Lihat situs web IANA untuk informasi mengenai field ini lebih lanjut.

Header length panjang 4 bit:
Digunakan untuk mengindikasikan ukuran header IP. Karena memiliki panjang 4 bit, maka terdapat 24=16 buah jenis nilai yang berbeda-beda. Field header length ini mengindikasikan bilangan double-word 32-bit (blok 4-byte) di dalam header IP. Ukuran terkecilnya adalah 5 (0x05), yang menunjukkan ukuran terkecil dari header IP yakni 20 byte. Dengan jumlah maksimum dari IP Options, ukuran header IP maksimum adalah 60 byte, yang diindikasikan dengan nilai 15 (0x0F).

Type of Service (TOS)panjang 8 bit:
Field ini digunakan untuk menentukan kualitas transmisi dari sebuah datagram IP. Ada dua jenis TOS yang didefinisikan, yakni pada RFC 791 dan RFC 2474. Hal ini akan dibahas pada seksi berikutnya.

Total Length panjang 16 bit:
Merupakan panjang total dari datagram IP, yang mencakup header IP dan muatannya. Dengan menggunakan angka 16 bit, nilai maksimum yang dapat ditampung adalah 65535 byte. Untuk datagram IP yang memiliki ukuran maksimum, field ini memiliki nilai yang sama dengan nilai maximum transmission unit yang dimiliki oleh teknologi protokol lapisan antarmuka jaringan.

Identifier panjang 16 bit :
Digunakan untuk mengidentifikasikan sebuah paket IP tertentu yang dikirimkan antara node sumber dan node tujuan. Host pengirim akan mengeset nilai dari field ini, dan field ini akan bertambah nilainya untuk datagram IP selanjutnya. Field ini digunakan untuk mengenali fragmen-fragmen sebuah datagram IP.

Flag panjang 3 bit :
Berisi dua buah flag yang berisi apakah sebuah datagram IP mengalami fragmentasi atau tidak. Meski berisi tiga bit, ada dua jenis nilai yang mungkin, yakni apakah hendak memecah datagram IP ke dalam beberapa fragmen atau tidak.

Fragment Offset panjang 13 bit:
Digunakan untuk mengidentifikasikan ofset di mana fragmen yang bersangkutan dimulai, dihitung dari permulaan muatan IP yang belum dipecah.

Time-to-Live (TTL) panjang 8 bit:
Digunakan untuk mengidentifikasikan berapa banyak saluran jaringan di mana sebuah datagram IP dapat berjalan-jalan sebelum sebuah router mengabaikan datagram tersebut. Field ini pada awalnya ditujukan sebagai penghitung waktu, untuk mengidentifikasikan berapa lama (dalam detik) sebuah datagram IP boleh terdapat di dalam jaringan. Adalah router IP yang memantau nilai ini, yang akan berkurang setiap kali hinggap dalam router.

Protocol panjang 8 bit:
Digunakan untuk mengidentifikasikan jenis protokol lapisan yang lebih tinggi yang dikandung oleh muatan IP. Field ini merupakan tanda eksplisit untuk protokol klien. Terdapat beberapa nilai dari field ini, seperti halnya nilai 1 (0x01) untuk ICMP, 6 (0x06) untuk TCP, dan 17 (0x11) untuk UDP (selengkapnya lihat di bawah). Field ini bertindak sebagai penanda multipleks (multiplex identifier), sehingga muatan IP pun dapat diteruskan ke protokol lapisan yang lebih tinggi saat diterima oleh node yang dituju.

Header Checksum panjang 16 bit:
Field ini berguna hanya untuk melakukan pengecekan integritas terhadap header IP, sementara muatan IP sendiri tidak dimasukkan ke dalamnya, sehingga muatan IP harus memiliki checksum mereka sendiri untuk melakukan pengecekan integritas terhadap muatan IP. Host pengirim akan melakukan pengecekan checksum terhadap datagram IP yang dikirimkan. Setiap router yang berada di dalam jalur transmisi antara sumber dan tujuan akan melakukan verifikasi terhadap field ini sebelum memproses paket. Jika verifikasi dianggap gagal, router pun akan mengabaikan datagram IP tersebut.
Karena setiap router yang berada di dalam jalur transmisi antara sumber dan tujuan akan mengurangi nilai TTL, maka header checksum pun akan berubah setiap kali datagram tersebut hinggap di setiap router yang dilewati.
Pada saat menghitung checksum terhadap semua field di dalam header IP, nilai header checksum akan diset ke nilai 0.

Source IP Address panjang 32 bit:
Mengandung alamat IP dari sumber host yang mengirimkan datagram IP tersebut, atau alamat IP dari Network Address Translator (NAT).

Destination IP Address panjang 32 bit;
Mengandung alamat IP tujuan ke mana datagram IP tersebut akan disampaikan, atau yang dapat berupa alamat dari host atau NAT.

IP Options and Padding panjang 32 bit :
[place holder]

Type of Service (ToS)

Field Type of Service (ToS) adalah sebuah field dalam header IPv4 yang memiliki panjang 8 bit dan digunakan untuk menandakan jenis Quality of Service (QoS) yang digunakan oleh datagram yang bersangkutan untuk disampaikan ke router-router internetwork. ToS didefinisikan di dalam dua buah standar, yakni RFC 791 dan RFC 2474.

Fragmentasi Paket IP

Ketika sebuah host sumber atau router harus mentransmisikan sebuah datagram IP dalam sebuah saluran jaringan di mana nilai Maximum transmission unit (MTU) yang dimilikinya lebih kecil dibandingkan ukuran datagram IP, datagram IP yang akan ditransmisikan tersebut harus dipecah ke dalam beberapa fragmen. Proses ini disebut sebagai Fragmentation (fragmentasi). Ketika fragmentasi terjadi, muatan IP akan dibelah menjadi beberapa segmen, dan setiap segmen akan dikirimkan dengan header IP-nya masing-masing.

Header IP mengandung informasi yang dibutuhkan untuk menyatukan kembali muatan IP yang telah dipecah tersebut menjadi muatan IP yang utuh pada saat datagram IP tersebut telah sampai pada host tujuan. Karena IP merupakan teknologi datagram packet-switching dan juga fragmen dapat sampai ke tujuan dalam kondisi tidak terurut, fragmen-fragmen tersebut harus dikelompokkan (dengan menggunakan field Identification dalam header IP), diurutkan (dengan menggunakan field Fragment Offset dalam header IP), dan diperjelas pembatasannya (dengan menggunakan flag More Fragment dalam header IP).

Teknologi virtual circuit packet-switching seperti halnya X.25 dan Asynchronous Transfer Mode (ATM) hanya membutuhkan pembatasan fragmen/segmen. Sebagai contoh, dengan ATM Adaptation Layer 5, sebuah datagram IP akan dibelah menjadi beberapa segmen berukuran 48 byte yang menjadi muatan setiap sel ATM. ATM selanjutnya mengirimkan sel-sel ATM tersebut yang mengandung datagram IP dan menggunakan bit ketiga dari field Payload Type di dalam header ATM untuk mengindikasikan akhir aliran sel ATM untuk sebuah datagram IP.

Field-field dalam header IP yang berguna untuk fragmentasi

Ada tiga buah field yang berguna untuk menunjukkan apakah sebuah datagram IP harus difragmentasi atau tidak, yakni sebagai berikut:

* Field identification:
Digunakan untuk mengelompokkan semua fragmen dari sebuah datagram IP dalam sebuah kelompok. Host pengirim akan mengeset nilai field ini, dan nilai ini tidak akan beruba selama proses fragmentasi berlangsung. Field ini selalu diset (memiliki nilai) meskipun datagram IP tidak boleh diset dengan menggunakan bit flag Dont Fragment (DF).
* Field Flag, yang memiliki dua buah nilai:
o Don't fragment (DF):
Flag ini akan diset ke nilai "0" untuk mengizinkan fragmentasi dilakukan, atau nilai "1" untuk mencegah fragmentasi dilakukan terhadap datagram IP. Dengan kata lain, fragmentasi akan terjadi jika flag DF ini bernilai "0". Jika fragmentasi dibutuhkan untuk meneruskan datagram IP (akibat ukuran datagram IP yang lebih besar dibandingkan dengan ukuran maximum transmission unit (MTU)) dan flag DF ini diset ke nilai "1", maka router akan mengirimkan pesan "ICMP Destination Unreachable-Fragmentation Needed And DF Set" kepada host pengirim, sebelum router tersebut akan mengabaikan datagram IP tersebut.
o More Fragments (MF):
Flag ini akan diset ke nilai "0" jika tidak ada fragmen lainnya yang mengikuti fragmen yang bersangkutan (berarti tanda bahwa fragmen tersebut merupakan fragmen terakhir), atau diset ke nilai "1" jika ada tambahan fragmen yang mengikuti fragmen tersebut (berarti tanda bahwa fragmen tersebut bukanlah fragmen terakhir).
* Field' Fragment Offset:
Field ini akan diset untuk mengindikasikan posisi fragmen yang bersangkutan terhadap muatan IP yang belum difragmentasikan. Field ini akan digunakan untuk mengurutkan kembali semua fragmen pada saat proses penyatuan kembali menjadi sebuah datagram IP yang utuh di pihak penerima. Ukurannya adalah 13 bit, sehingga mendukung nilai hingga 8191 saja.
Mengingat ukuran muatan IP terbesar adalah 65515 byte (216-20), sedangkan ukuran field ini adalah 13 bit, maka field ini tidak dapat digunakan untuk mengindikasikan byte offset. Karenanya setiap nilai field fragment offset harus merepresentasikan nilai 3 bit. Dengan demikian, field Fragment Offset pun dapat didefinisikan dalam blok-blok berukuran 8 byte yang disebut sebagai Fragment block.
Selama fragmentasi dilakukan, muatan IP akan dipecah ke dalam fragmen-fragmen dengan menggunakan batasan 8 byte dan nilai maksimum fragment block (8 byte) diletakkan pada setiap fragmen. Field Fragment Offset pun diset untuk mengindikasikan permulaan fragment block untuk fragmen tersebut dibandingkan dengan muatan IP yang belum difragmentasi.

Setiap fragmen yang difragmentasi oleh router, header IP akan disalin dan beberapa field ini akan diubah selama fragmentasi oleh router:

* Header length: Bisa berubah atau tidak bergantung pada keberadaan IP Options, dan juga apakah IP Options tersebut disalin ke semua fragmen atau hanya fragmen pertama saja.
* Time-to-Live (TTL): selalu dikurangi 1.
* Total Length: Diubah untuk merefleksikan perubahan pada header IP yang baru dan tentunya muatan IP yang baru.
* Flag More Fragment akan diset ke angka 1 untuk fragmen pertama atau fragmen pertengahan, atau nilai 0 untuk fragmen terakhir.
* Fragment Offset: Diset untuk mengindikasikan posisi fragmen di dalam fragment block relatif terhadap muatan IP yang belum difragmentasi.
* Header Checksum: dihitung ulang berdasarkan field yang berubah di dalam header IP.
* Field "identification": tidak berubah untuk setiap fragmen.
Sebagai sebuah contoh bagaimana proses fragmentasi berlangsung, perhatikan skenairo berikut:
Sebuah node yang berada di dalam jaringan Token Ring mengirimkan sebuah datagram IP yang dapat difragmentasikan dengan nilai field Identification (dalam header IP) diset ke nilai 9999 ke sebuah node dalam jaringan Ethernet, seperti terlukis dalam gambar. Anggaplah jaringan Token Ring tersebut memiliki pengaturan sebagai berikut: kepemilikan token selama 9 milidetik, kecepatan 4 megabit per detik, dan tidak ada header routing Token Ring, serta MTU 4482 byte. Sementara itu, jaringan Ethernet memiliki MTU 1500 byte, yang menggunakan skema enkapsulasi frame Ethernet II.

Router yang menghubungkan dua jenis jaringan tersebut akan menerima datagram IP dari komputer pengirim dalam jaringan Token Ring. Router pun mengecek tabel routing yang ada di dalam dirinya dan menentukan antarmuka mana yang hendak digunakan untuk meneruskan pesan tersebut dan kemudian router mengetahui bahwa datagram IP yang dikirimkan lebih besar daripada nilai MTU, mengingat jaringan yang dituju merupakan jaringan Ethernet. Selanjutnya, router melihat flag DF dalam header IP: jika diset ke angka 1, router akan mengabaikan datagram yang bersangkutan dan mengirimkan pesan balasan "ICMP Destination Unreachable-Fragmentation Needed And DF Set" kepada pengirim datagram IP; dan karena memiliki nilai "0", router pun melakukan fragmentasi terhadap muatan datagram IP tersebut, yakni sebesar 4462 byte (dengan anggapan bahwa datagram tersebut tidak memiliki IP Options) ke dalam empat buah fragmen, yang setiap fragmennya memiliki ukuran 1500 byte (yang merupakan nilai MTU dari jaringan Ethernet).
Proses fragmentasi paket IP

Muatan IP maksimum yang dapat ditampung dalam MTU 1500 byte milik Ethernet adalah 1480 byte (20 byte digunakan sebagai header IP, dan dengan anggapan bahwa datagram tersebut tidak memiliki IP Options). Setiap muatan yang berukuran 1480 byte tesebut dipecah ke dalam 185 fragment block (185x8=1480). Karenanya router akan mengirimkan empat fragmen dengan ukuran muatan 1480 byte dan fragmen terakhir berukuran 22 byte (4462=1480+1480+1480+22)

Contoh datagram IP
Berikut ini adalah contoh dari datagram IP (packet capture dari Microsoft Network Monitor, dipantau dengan perintah "Ping 192.168.1.2"):
+ Frame: Base frame properties
+ ETHERNET: ETYPE = 0x0800 : Protocol = IP: DOD Internet Protocol
IP: ID = 0x34CD; Proto = ICMP; Len: 60
IP: Version = 4 (0x4)
IP: Header Length = 20 (0x14)
IP: Precedence = Routine
IP: Type of Service = Normal Service
IP: Total Length = 60 (0x3C)
IP: Identification = 13517 (0x34cd)
IP: Flags Summary = 0 (0x0)
IP: .......0 = Last fragment in datagram
IP: ......0. = May fragment datagram if necessary
IP: Fragment Offset = 0 (0x0) bytes
IP: Time to Live = 128 (0x80)
IP: Protocol = ICMP - Internet Control Message
IP: Checksum = 0xB869
IP: Source Address = 192.168.1.1
IP: Destination Address = 192.168.1.2
IP: Data: Number of data bytes remaining = 40 (0x0028)
+ ICMP: Echo: From 192.168.1.1 To 192.168.1.2

Read More......

Model OSI

Model referensi jaringan terbuka OSI atau OSI Reference Model for open networking adalah sebuah model arsitektural jaringan yang dikembangkan oleh badan International Organization for Standardization (ISO) di Eropa pada tahun 1977. OSI sendiri merupakan singkatan dari Open System Interconnection. Model ini disebut juga dengan model "Model tujuh lapis OSI" (OSI seven layer model).

Sebelum munculnya model referensi OSI, sistem jaringan komputer sangat tergantung kepada pemasok (vendor). OSI berupaya membentuk standar umum jaringan komputer untuk menunjang interoperatibilitas antar pemasok yang berbeda. Dalam suatu jaringan yang besar biasanya terdapat banyak protokol jaringan yang berbeda. Tidak adanya suatu protokol yang sama, membuat banyak perangkat tidak bisa saling berkomunikasi.

Model referensi ini pada awalnya ditujukan sebagai basis untuk mengembangkan protokol-protokol jaringan, meski pada kenyataannya inisatif ini mengalami kegagalan. Kegagalan itu disebabkan oleh beberapa faktor berikut:

* Standar model referensi ini, jika dibandingkan dengan model referensi DARPA (Model Internet) yang dikembangkan oleh Internet Engineering T
ask Force (IETF), sangat berdekatan. Model DARPA adalah model basis protokol TCP/IP yang populer digunakan.
* Model referensi ini dianggap sangat kompleks. Beberapa fungsi (seperti halnya metode komunikasi connectionless) dianggap kurang bagus, sementara fungsi lainnya (seperti flow control dan koreksi kesalahan) diulang-ulang pada beberapa lapisan.
* Pertumbuhan Internet dan protokol TCP/IP (sebuah protokol jaringan dunia nyata) membuat OSI Reference Model menjadi kurang diminati.

Pemerintah Amerika Serikat mencoba untuk mendukung protokol OSI Reference Model dalam solusi jaringan pemerintah pada tahun 1980-an, dengan me
ngimplementasikan beberapa standar yang disebut dengan Government Open Systems Interconnection Profile (GOSIP). Meski demikian. usaha ini akhirnya ditinggalkan pada tahun 1995, dan implementasi jaringan yang menggunakan OSI Reference model jarang dijumpai di luar Eropa.

OSI Reference Model pun akhirnya dilihat sebagai seb
uah model ideal dari koneksi logis yang harus terjadi agar komunikasi data dalam jaringan dapat berlangsung. Beberapa protokol yang digunakan dalam dunia nyata, semacam TCP/IP, DECnet dan IBM Systems Network Architecture (SNA) memetakan tumpukan protokol (protocol stack) mereka ke OSI Reference Model. OSI Reference Model pun digunakan sebagai titik awal untuk mempelajari bagaimana beberapa protokol jaringan di dalam sebuah kumpulan protokol dapat berfungsi dan berinteraksi.



Struktur tujuh lapis model OSI, bersamaan dengan protocol data unit pada setiap lapisan

OSI Reference Model memiliki tujuh lapis, yakni sebagai berikut

Lapisan 7 (Application layer)
Berfungsi sebagai antarmuka dengan aplikasi dengan fungsionalitas jaringan, mengatur bagaimana aplikasi dapat mengakses jaringan, dan kemudian membuat pesan-pesan kesalahan. Protokol yang berada dalam lapisan ini adalah HTTP, FTP, SMTP, dan NFS.

Lapisan 6 (Presentation layer)
Berfungsi untuk mentranslasikan data yang hendak ditransmisikan oleh aplikasi ke dalam format yang dapat ditransmisikan melalui jaringan. Protokol yang berada dalam level ini adalah perangkat lunak redirektor (redirector software), seperti layanan Workstation (dalam Windows NT) dan juga Network shell (semacam Virtual Network Computing (VNC) atau Remote Desktop Protocol (RDP)).

Lapisan 5 (Session layer)
Berfungsi untuk mendefinisikan bagaimana koneksi dapat dibuat, dipelihara, atau dihancurkan. Selain itu, di level ini juga dilakukan resolusi nama.

Lapisan 4 (Transport layer)
Berfungsi untuk memecah data ke dalam paket-paket data serta memberikan nomor urut ke paket-paket tersebut sehingga dapat disusun kembali pada sisi tujuan setelah diterima. Selain itu, pada level ini juga membuat sebuah tanda bahwa paket diterima dengan sukses (acknowledgement), dan mentransmisikan ulang terhadp paket-paket yang hilang di tengah jalan.

Lapisan 3 (Network layer)
Berfungsi untuk mendefinisikan alamat-alamat IP, membuat header untuk paket-paket, dan kemudian melakukan routing melalui internetworking dengan menggunakan router dan switch layer-3.

Lapisan 2 (Data-link layer)
Befungsi untuk menentukan bagaimana bit-bit data dikelompokkan menjadi format yang disebut sebagai frame. Selain itu, pada level ini terjadi koreksi kesalahan, flow control, pengalamatan perangkat keras (seperti halnya Media Access Control Address (MAC Address)), dan menetukan bagaimana perangkat-perangkat jaringan seperti hub, bridge, repeater, dan switch layer 2 beroperasi. Spesifikasi IEEE 802, membagi level ini menjadi dua level anak, yaitu lapisan Logical Link Control (LLC) dan lapisan Media Access Control (MAC).

Lapis 1 (Physical layer)
Berfungsi untuk mendefinisikan media transmisi jaringan, metode pensinyalan, sinkronisasi bit, arsitektur jaringan (seperti halnya Ethernet atau Token Ring), topologi jaringan dan pengabelan. Selain itu, level ini juga mendefinisikan bagaimana Network Interface Card (NIC) dapat berinteraksi dengan media kabel atau radio.

Read More......

CATATAN BASIS DATA TERDISTRIBUSI

1. Untuk membicarakan basis data terdistribusi, kita perlu memehami kata kunci yang lebih umum untuk table dan query, atau untuk segala relasi antar table yang mungkin.
Yaitu dari kata RELASI sendiri, relasi mewakili kata table dan query dan segala operasi2 aljabar relasi bagi table dalam basis data.

2. Apakah sebenarnya sebuah relasi?
Pada dasarnya table=relasi
Atau sebagai berikut relasi = set tupel-n
Tetapi tabel = set tupel n (dimana record = field-n = sebuah tupel-n)
Operasi2 aljabar pada basis data berarti operasi2 aljabar pada tabel
Berarti operasi2 aljabar pada relasi.
Tinggal bagaimana mendefiniskan operasi2 aljabar untuk union dan irisan (disjoin) dsb.
Sebuah query pada dasarnya adalah hasil operasi aljabar dari sejumlah relasi, dalam kata lain adalah hasil operasi2 aljabar sejumlah tabel
Query = R1xR2xR3x...xRn dengan Ri = tabel ke-i

Secara aljabar fragment2 dapat digambarkan sebagai berikut
Misal relasi R difragment dalam R1, R2. R3
R=R1UR2UR3 fragmentasi horisontal
R=Ra iris Rb iris Rc fragmentasi vertikal

Dalam replikasi
Misal fragment R1 tidak direplikasi
Tapi R2 direplikasi di 2 tempat
R3 direplikasi di semua site/tempat
Berdasar frekuensi akses terhadap data2nya

Agar biaya akses remote dapat ditekan.


3. Basis data terdistribusi = sekumpulan basis data yang tersebar dalam jaringan komputer dan saling berhubungan secara logic.
Yang dimaksud saling berhubungan secara logic, yaitu hubungan garis penyimpanan bersama dengan hubungan relasional secara basis data seumpama hubungan relasional dalam sebuah basis data tunggal antar tabel.
Hubungan relalsional antar tabel dalam sebuah basis data tunggal digeneralisir
Menjadi hubungan antar fragmen data dalam basis data terdistribusi.

4. Hubungan logic dibuat untuk menggambarkan bahwa basis data terdistribusi seakan2 hanya sebuah basis data tunggal, jadi hubungan logic memperlihatkan sebuah babsis data tunggal virtual, hubungan logik ini bersifat independen terhadap hubungan fisik, dimana sebenarnya secara fisik, basis data tersebut terpecah2 dalam alokasi yang berbeda.

5. Jadi dipandang dari sudut konsep relasional, maka konsep basis data terdistribusi bertumpu kepada konsep fragmentasi data. Karena konsep relasionalnya sekarang jatuh kepada antar fragment.

6. Didalam jaringan distribusi basis data, fragment2 lah yang menjadi bahan transfer sana-sini, atau menjadi material utama hubungan antar basis data. Selain kode-kode kontrol tentunya.

7. Mekanisme utama perancangan basis data terdistribusi
a. pertama basis data dirancang secara tunggal, sebagaimana layaknya perancangan basis data tunggal.
b. Kemudian basis data tunggal tersebut difragmentasi dalam fragment2 yang berkaitan secara logic sebagai unit2 yang berkaitan secara logic dan tersebar dalam site2 yang berbeda.
c. Dirancang sebuah DDBMS (Distributed-DMS) yang menjadi alat untuk memanajemen basis data terdistribusi tersebut.

8. Mekanisme fragmentasi adalah sebagai berikut:
data difragmentasi secara horisontal
atau difragmentasi secara vertikal
atau difragmentasi berdasarkan definisi2 relasi yang dikehendaki.

9. ADO, JDBC, ODBC, semuanya adalah konektor yang menghubungkan antara DBMS dan aplikasi server atau standalone.

10. Asal mula runutan bahasa query
SQL adalah sebuah bahasa query standar, tetapi terdapat bahasa query lain yang dipakai dalam pertukaran data di internet, yaitu XML-QL, sebenarnya tak peduli dengan format bahasa query yang dipakai, tetapi semuanya harus taat pada format operasi2 aljabar relasional dari basis data, artinya bahasa sintaks yang berupa SQL atau XML-QL dapat dikembalikan dalam ekspresi aljabar relasional. Maka dia dianggap valid.

11. Sebuah objek data, struktur datanya dapat dimodelkan atau direpresentasikan dalam model E-R (entity relation) atau dalam model pohon graf semantik atau OEM, setiap objek data perlu diketahui skema model datanya agar jika dilakukan integrasi struktur data, dapat dengan mudah dilakukan.

Tetapi sebenarnya begini:
Unstructured data = raw text, image dsb
Semistructured data = oem, pohon semantic
Structured data = E-R model (record). Atau Object encapsulation.

12. Perancangan bahasa query untuk basis data terdistribusi haruslah serupa dengan basis data tunggal, artinya tidak memperhatikan kenyataan bahwa basis data terdistribusi tersebar dalam site2 yang berbeda, artinya bahasa query tersebut tidak perlu menyebutkan lokasi data dalam querynya, ini karena secara logic, yang ada hanyalah sebuah basis data tunggal virtual.

13. Dibutuhkan standarisasi hubungan antar basis data yang bekerja dalam lingkungan basis data heterogen, standarisasi hubungan ini berupa standarisasi protocol gateway berupa API yang berbentuk CGI, JDBC, atau ODBC. Sebagai konektor.

14. Sebenarnya yang dimaksud dengan basis data terdistribusi bukanlah bahwa dalam beberapa site yang tersebar, masing-masing dibuat database yang saling terkoneksi. Tetapi basis data terdistribusi adalah sebuah basis data (bukan berarti harus n basis data) yang relasi-relasinya (tabel2 dan query2nya) difragmentasi tersebar di beberapa site tersebut. Sehingga secara virtual hanya ada satu sistem basis data.

15. contoh sebuah DBMS :

16. contoh melakukan koneksi dengan database dikomputer lain dengan DBMS yang berbeda. Bagaimana melakukan dengan baris2 command pada batch atau delphi program?

17. Cara menggunakan SQLpro :




Read More......

SQL

SQL (baca SEQUEL) pertama kali didefinisikan oleh Chamberlin (IBM Research Laboratory, San Jose, California).
Karena kemudahanya untuk mengakses data, maka SQL cepat menjadi populer, sehingga banyak DBMS yang memilik i fasilitas SQL untuk mengakses data.
Terdapat berbagai dialek SQL yang berbeda satu dengan yang lain.
Pada kuliah ini akan dibicarakan dialek SQL yang standard.

Perintah-perintah dalam SQL dapat dikelompokkan menjadi 2 kelompok:
1 .DDL (Data Definition Language) dan
2. DML (Data Manipulation Language)

DDL (Data Definition Language)
membuat table
merubah table
membuat index
menghapus tabel dan index

DML (Data Manipulation Language)
tambah data
update data
hapus data
query data


MEMBUAT TABEL

CREATE TABLE Nama_tabel
([NamaKolom Typedata {NOT NULL}]....)
Contoh:
Create Table Transkrip
(NO_MHS INTEGER NOT NULL,
NO_MK CHAR(6) NOT NULL,
NILAI SMALLINT);
MERUBAH TABEL
ALTER TABLE Nama_tabel
ADD NamaKolom Typedata

Contoh:
ALTER TABLE MAHASISWA
ADD Alamat char(25);
MEMBUAT INDEX
CREATE {UNIQUE} INDEX NamaIndex
ON Nama Tabel
UNIQUE Jika nilai pada kolom yang diindex terdapat beberapa nilai yang ditampilkan hanyalah satu nilai saja
ASC Urutan dari Kecil-Besar (Naik)
DESC Urutan dari Besar-Kecil (Turun)
Default ASC

Contoh:
CREATE INDEX IDXMHS
ON Mahasiswa (NO_MHS)
MENGHAPUS TABEL & INDEX
DROP TABLE Nama_tabel;
DROP INDEX Nama_Index;
MENAMBAH DATA KE TABEL
INSERT INTO Nama_tabel {([Namakolom]...)}
VALUES ([konstan]...)
INSERT INTO Nama_tabel {([Namakolom]...)}
SELECT ... FROM....

Contoh:
Insert Into Transkrip
(NOMHS, KDMK, NILAI) VALUES (2930,’MSM160’,80)
Insert Into Transkrip
VALUES (2930,’MSM160’, 80)

Insert Into NewTranskrip
Select * From Transkrip
Where KDMK <> ‘MSM 100’

Jumlah kolom dalam insert into = Jumlah kolom dalam SELECT
Type data kolom-kolom dalam Insert Into = tipe data kolom-kolom dalam SELECT

MENGHAPUS DATA
DELETE FROM NamaTabel
{WHERE Kondisi}
Contoh:
Delete
From transkrip;

Delete
From transkrip
Where NoMhs = 3001;

MENGUPDATE DATA
UPDATE NamaTabel
SET [Namakolom =[ Ekspresi]]...
{WHERE Kondisi}


Contoh:
UPDATE MataKuliah
Set NamaMK = ‘Program Terstruktur’
Where KdMk = ‘MSM 200’;

UPDATE Transkrip
Set Nilai = Nilai + 10;
Where KDMK = ‘MSM 260’

QUERY DATA
SELECT {DISTINCT| ALL} [*| [Ekspresikolom]...]
FROM [Nama Tabel]....
{WHERE Kondisi}
{GROUP By [Nama Kolom]...
{HAVING Kondisi}}
{ORDER By [URUTAN]....}

Keterangan:
Setiap perintah SELECT minimal harus ada SELECT dan FROM.
WHERE, GROUP BY, HAVING, ORDER BY bersifat optional (boleh ada, boleh tidak)
GROUP By harus sesudah WHERE atau FROM, dan ORDER By harus selalu terakhir.
HAVING hanya dapat digunakan jika ada GROUP By.


Betul/Salah perintah Select berikut ini:
Select ..........
Where ...........
Order by .............

Select....
From..
Having...
Group By....

Select .....
Order by.......
From..
Group by........

URUTAN PEMROSESAN PERINTAH SELECT
FROM Dari tabel mana data berasal
WHERE Pilih record yang memenuhi kondisi
GROUP BY Kelompokkan berdasarakan nilai yang sama dari kolom
HAVING Pilih kelompok yang memenuhi kondisi
SELECT Pilih Kolom
ORDER BY urutkan baris berdasarkn kolom

QUERY SEDERHANA
Select *
From mahasiswa;

Select Distinct KdMk
From Transkrip;

PENGGUNAAN WHERE
Diikuti oleh:
Perbandingan sederhana
Kondisi (syarat) yang terhubungkan dengan AND, OR, dan NOT
Operator BETWEEN
Operator IN
Operator LIKE
Operator IN dengan sub-query
Operator perbandingan dengan sub-query
Operator ANY dan ALL
Operator EXIST

PERBANDINGAN SEDERHANA: menggunakan operator perbandingan
=; < ; >; <=; >=; <> (!=)


Contoh:

Select NOMHS
From Mahasiswa
Where Kota = ‘Jakarta’

Select NOMHS, NamaMhs
From Mahasiswa
Where Year(TglLahir) = 1970

Where 1998 - year(TglLahir) = 25

Kondisi dengan AND, OR, dan NOT

Contoh:

Select NOMHS
From mahasiswa
Where Kota = ‘Jakarta’
AND JnKel = ‘L’

catatan : operator = pada contoh di atas dapat diganti dengan operator yang lain.

Operator BETWEEN
- Mengecek apakah nilai dari kolom dalam suatu range
- Format: {NOT} BETWEEN AND
Contoh:
Select NOMHS, NAMAMHS
From Mahasiswa
Where Year(TglLahir) Between 1970 AND 1975

Note:
between A AND B  ( >= A) AND ( <= B) NOT Between A AND B  NOT( Between A AND B)  ( <> > B)

Operator IN

Select NoMhs, NamaMhs, Kota From Mahasiswa
Where Kota = “Bandung”
OR Kota = “Jakarta”
OR Kota = “Medan”
OR Kota = “Surabaya”

Dapat diganti dengan menggunakan operator IN, sebagai berikut:
Select NoMhs, NamaMhs, Kota
From Mahasiswa
Where Kota IN (“Bandung”,”Jakarta”,”Medan”,”Surabaya”)
Operator LIKE
% : Pengganti 0, 1, atau lebih karakter
_ : underscore pengganti satu karakter
Contoh:
Select NoMhs
From Mahasiswa
Where NamaMhs LIKE ‘%n’
Contoh Lain:
Nama mata kuliah memuat string ‘ta’
Nama mahasiswa panjangnya 10 huruf
Nama mahasiswa minimal panjangnya 10
Operator IN dengan sub-query
Contoh:
Select NoMhs, NamaMhs
From Mahasiswa
Where Kota IN
(Select Kota
From Mahasiswa
Where NoMhs IN (2946, 5280)

Select NoMhs, NamaMhs
From Mahasiswa
Where NoMhs IN
(Select NoMhs
From Transkrip
Where NoMk = ‘MSM100’)


Operator TETHA dengan sub-query
- Operator tetha dapat digunakan jika sub-query menghasilkan tepat satu nilai
Contoh:
Select NoMhs, NamaMhs
From Mahasiswa
Where Kota =
(Select Kota From Mahasiswa
Where NoMhs = 5830)

Select NoMhs, NamaMhs
From Mahasiswa
Where Year(TglLahir) < (Select Year(TglLahir) From Mahasiswa Where NoMhs = 5830 Soal: Tampilkan Nomor dan nama mahasiswa yang tahun lahirnya sama dengan tahun lahirnya ‘Budi’, tetapi Budi tidak muncul dalam hasil. Operator ANY dan ALL Jika Y1,Y2,Y3,...., dan Yn nilai-nilai yang dihasilkan sub-query S, maka: NamaKolom < nomhs =" Mahasiswa.NoMhs" nomk =" ‘MSM160’)">= 80

Select NoMhs, AVG(Nilai)
From(transkrip)
Group by NoMhs
Having AVG(Nilai) > 80



Read More......

BASIS DATA TERDISTRIBUSI

DATABASE TERDISTRIBUSI : Database yang disimpan pada beberapa komputer didistribusi dalam sebuah sistem terdistribusi melalui media komunikasi seperti high speed buses atau telepone line.

SISTEM DATABASE TERDISTRIBUSI : berisi kumpulan site  eksekusi transaksi lokal (mengakses data pada satu site) & transaksi global (mengakses data pada site berbeda )

Contoh :
Transaksi lokal : transaksi menambahkan dana pada nomor rekening 1112234 yang berada di cabang margonda. Transaksi ditentukan pada cabang margonda.

Transaksi global : transaksi transfer dari rekening 1112234 ke rekening 2223410 yang berada di kramat jati (rekening didua site berbeda telah diakses sebagai hasil dari eksekusinya)


Site-site dalam database terdistribusi dihubungkan secara fisik dengan berbagai cara. Beberapa topologi digambarkan sebagai sebuah graph. Beberapa bentuk :

1. Fully connected network
Kalau salah satu node rusak, yang lainnya masih dapat berjalan (biaya mahal),
kontrol manajemen tidak terjamin.

2. Partially connected network
Reliability rendah, biaya dapat ditekan
Kontrol manajemen tidak terjamin.

3. Tree structured network
Bersifat sentral, control manajemen lebih terjamin
Kalau node pusat rusak, semua akan rusak. (setiap proses dimulai dari bawah).

4. Ring network (LAN)
Rusak satu, yang lain masih berjalan
Kontrol manajemen kurang terjamin karena bersifat dsesentralisasi.

5. Star network (LAN)
Kontrol manajemen lebih terjamin, karena bersifat sentral
Kalau pusat rusak yang lain rusak.


KEUNTUNGAN DATA BASE TERDISTRIBUSI

1. Pengawasan distribusi dan pengambilan data
Jika beberpa site yang berbeda dihubungkan, seorang pemakai yang berada pada satu site dapat mengakses data pada site lain.
Contoh : sistem distribusi pada sebuah bank memungkinkan seorang pemakai pada salah satu cabang dapat mengakses data cabang lain.

2. Reliability dan availability
Sistem distribusi dapat terus menerus berfungsi dalam menghadapi kegagalan dari site sendiri atau mata rantai komunikasi antar site.

3. Kecepatan pemrosesan query
Contoh : jika site-site gagal dalam sebuah sistem terdistribusi, site lainnya dapat melanjutkan operasi jika data telah direplikasi pada beberapa site.

4. Otonomi lokal
Pendistribusian sistem mengijinkan sekelompok individu dalam sebuah perusahaan untuk melatih pengawasan lokal melalui data mereka sendiri. Dengan kemampuan ini dapat mengurangi ketergantungan pada pusat pemrosesan.

5. Efisiensi dan fleksibel
Data dalam sistem distribusi dapat disimpan dekat dengan titik diman data tersebut dipergunakan. Data dapat secara dinamik bergerak atau disain, atau salinannya dapat dihapus.


KERUGIAN DATABASE TERDISTRIBUSI

1. Harga software mahal
Hal ini disebabkan sangat sulit untuk membuat sistem database distribusi.

2. Kemungkinan kesalahan lebih besar
Site-site beroperasi secara paralel sehingga lebih sulit untuk menjamin kebenaran dan algoritma. Adanya kesalahan mungkin tak dapat diketahui.

3. Biaya pemrosesan tinggi
Perubahan pesan dan penambahan perhitungan dibutuhkan untuk mencapai koordinasi antar site.


RANCANGAN DATABASE TERDISTRIBUSI

A. FRAGMENTASI DATA
Fragmentasi : relasi dibagi ke dalam beberapa bagian, setiap bagian disimpan pada lokasi yang berbeda.

Tiga jenis fragmentasi :

1. Fragmentasi Horizontal.
Berisi tuple-tuple yang dipartisi dari sebuah relasi global ke dalam sejumlah
subset.

Deposit 1 =  branch-name = “Hillside” (Deposit)
Deposit 1 =  branch-name = “Valleyview” (Deposit)

Branch-name Account-number Customer-name Balance
Hillside 305 Lowman 500
Hillside 226 Camp 336
Hillside 115 Khan 62
Deposit 1


Branch-name Account-number Customer-name Balance
Valleyview 177 Camp 205
Valleyview 402 Khan 10000
Valleyview 408 Khan 1123
Valleyview 639 Green 750
Deposit 2


2. Fragmentasi Vertikal.

Branch-name Account-number Customer-name Balance Tuple-id
Hillside 305 Lowman 500 1
Hillside 226 Camp 336 2
Valleyview 117 Camp 205 3
Valleyview 402 Khan 10000 4
Hillside 115 Khan 62 5
Valleyview 408 Khan 1123 6
Valleyview 639 Green 750 7

Deposit 3 =  branch-name, customer-name,tuple-id (deposit)
Deposit 4 =  account-number,balance,tuple-id (deposit)

Branch-name Customer-name Tuple-id
Hillside Lowman 1
Hillside Camp 2
Valleyview Camp 3
Valleyview Khan 4
Hillside Khan 5
Valleyview Khan 6
Valleyview Green 7

Account-number Balance Tuple-id
305 500 1
226 336 2
117 205 3
402 10000 4
115 62 5
408 1123 6
639 750 7

3. Fragmentasi campuran.


B. REPLIKASI
Sistem memelihara beberapa salinan (copy) dari relasi. Setiap salinan disimpan pada beberapa lokasi yang berbeda.

C. ALOKASI DATA


Read More......

HTML

PENGENALAN HTML

 Apa itu dokumen HTML
 Penamaan dokumen (“.htm” atau “.html”)
 Definisi elemen
 Merupakan komponen dasar pembentuk dok.HTML
 Definisi tag (menandai elemen HTML)
……
 Elemen HTML yang dibutuhkan




…..informasi tentang dokumen HTML



… informasi yang akan ditampilkan di dalam browser HTML





Program Pertama



ini homepage pertamaku...
ini juga kata pertamaku



 PETUNJUK PENGGUNAAN TAG
 Tag HTML diapit 2 karakter kurung bersudut (angle brancet) “<” dan “>”
 Tag HTML normal selalu berpasangan.
 Tag pertama dalam suatu pasangan adalah tag awal dan tag yang kedua merupakan akhir
 Tag HTML tidak case sensitive
 Penulisan tag harus berurut.
 Attribut TAG
 Mengubah nilai default dari TAG




TAG-TAG DASAR HTML
Tag dasar HTML berarti elemen dasar. Secara mendasar akan terdiri atas teks informasi.

 HTML
Merupakan tag dasar yang mendefinisikan bahwa dokumen ini adalah dokumen HTML.
di awal dokumen di akhir dokumen
 Head
Merupakan tag berikutnya setelah untuk menuliskan keterangan tentang dokumen web yang akan ditampilkan.
di awal seteleh , dan di akhir section head
 Title
Merupakan tag di dalam yang dituliskan untuk member judul /informasi pada caption browser web tentang topic atau judul dari dokumen web yang ditampilkan browser.
judul /informasi dokumen
 Body
Merupakan section utama dalam dokumen web. Pada section ini semua dokumen yang akan ditampilkan di dalam browser harus dituliskan.
di awal setelah tag
di akhir sebelum tag

 Paragraph
Informasi yang disajikan dalam dokumen harus mengikuti kaidah-kaidah dalam penulisan. Misalkan satu pikiran utama disimpan dalam satu paragraph.

kalimat yang dijadikan paragraph



CONTOH PARAGRAPH


coba


ini adalah paragraf 1


ini adalah paragraf 2


ini adalah paragraf 3


elemen ini akan diisi oleh banyak kalimat untuk mengetahui apakah dapat pindah secara otomatis





CONTAH TAG TANPA PARAGRAPH


coba


ini adalah paragraf 1
ini adalah paragraf 2
ini adalah paragraf 3
elemen ini akan diisi oleh banyak kalimat untuk mengetahui apakah dapat pindah secara otomatis



LINE BREAK
 Kita dapat memaksakan ganti baris pada dokumen web. Ganti baris di maksudkan hanya menyajikan informasi pada baris sendiri tidak berganti paragraph. Untuk menampilkan suatu teks ditampilkan pada baris yang baru dalam satu paragraph maka digunakan tag
sebelum teks yang dimaksudkan.


teks yang akan diganti bariskan

CONTOH DALAM PROGRAM:


coba


elemen ini akan diisi
oleh banyak kalimat untuk mengetahui
apakah dapat pindah secara otomatis



HEADING:
 Teks dalam dokumen umumnya mempunyai judul topic, pada dokumen HTML judul ini disebut heading. Heading tulisan akan ditampilkan dengan huruf yang lebih besar dan ditebalkan. Heading juga dimanfaatkan untuk tingkat keberartian dari teks yang akan dituliskan. Ada 6 tingkat heading dalam HTML, dinomori dari 1 sampai 6. No 1 merupakan heading terbesar, untuk penulisannya dalam tag menggunakan symbol


teks yang akan dibuat heading



CONTOH DALAM PROGRAM:


coba


ini contoh heading h1


ini contoh heading h2


ini contoh heading h3


ini contoh heading h4


ini contoh heading h5

ini contoh heading h6




MENGATUR LETAK HEADING:
 Tag heading mempunyai atribut yang digunakan untuk mengatur letak heading dalam baris – align. Alignment heading :

 Kiri = left
 Tengah = center
 Kanan = right
 Kanan kiri = justify

CONTOH:


coba



ini contoh left


ini contoh center


ini contoh right


ini contoh justify






PENGGARIS DATAR:
 Sebuah garis dapat disisipkan dalam dokumen web, umumnya digunakan sebagai pemisah antar bagian atau paragraph menggunakan Tag


CONTOH:


coba


ini adalah paragraf 1




ini adalah paragraf 2




ini adalah paragraf 3




elemen ini akan diisi oleh banyak kalimat untuk mengetahui apakah dapat pindah secara otomatis







KOMENTAR:
 Dalam suatu dokumen informasi ada sebagian teks dalam dokumen yang berfungsi sebagai catatan atau komentar terhadap dokumen itu sendiri. Catatan atau komentar dalam dokumen ini tidak ditampilkan dalam browser. Komentar disisipkan pada section , diletakkan pada bagian –bagian teks yang memang perlu dikomentari.

CONTOH:


coba



yang ini baru muncul tulisannya





Read More......

WORLD WIDE WEB

Pendahuluan

 World Wide Web (WWW), lebih dikenal dengan Web, merupakan salah satu layanan yang dapat dipakai computer yang terhubung ke internet.
 Web pada awalnya adalah ruang informasi dalam internet, dengan menggunakan teknologi Hyperteks pemakai dituntun untuk menemukan informasi dengan mengikuti link yang disediakan dalam dokumen web yang ditampilkan dalam browser web.
 Kini internet identik dengan web karena kepopulerannya web sebagai standar interface pada layanan-layanan yang ada di internet, dari awalnya sebagai penyedia informasi, kini bisa digunakan untuk komunikasi dari email sampai chatting, sampai dengan melakukan transaksi bisnis(commerce).



 Web juga telah diadobsi oleh perusahaan sebagai strategi teknologi informasinya, karena beberapa alasan :
 Akses informasinya mudah
 Setup server lebih mudah
 Informasi mudah didistribusikan
 Bebas platform; informasi dapat disajikan oleh browser web pada system operasi mana saja.

Sekilas lahirnya web

 Pada th 1993, Tim Burners-Lee dan peneliti lain di European particle phtsics lab (CERN) di genewa swiss, mengembangkan satu cara untuk men-share data antar koleganya menggunakan sesuatu yang disebut hypertext. Pemakai di CERN dapat menampilkan dokumen pada layar computer dengan menggunakan software browser baru.
 Kode-kode khusus disisipkan ke dalam dokumen elektronik ini, yang memungkinkan pemakai untuk meloncat dari 1 dokumen ke dokumen yang lain. Hanya dengan memilih sebuah hypelink.
 Kemampuan internet dimasukkan kedalam browser ini sehingga loncat dari satu dokumen ke dokumen yang lain, tidak lagi dari satu komputer saja
 Atau kunjungi W3 websitenya di : http://www.W3.org/
 Kemampuan internet dimasukkan kedalam browser ini sehingga loncat dari satu dokumen ke dokumen yang lain dalam satu komputer saja tapi meloncat ke dokumen lain dan komputer yang lain juga.

World Wide Web Consortium W3C
 W3C mengembangkan teknologi yang dapat dioperasikan pada platform manapun, membawa web mencapai potensi yang utuh sebagai suatu forum informasi, commerce, komunikasi, dan lain-lain
 W3C dibentuk pada oktober 1994, dengan jumlah anggota lebih dari 400 organisasi anggota dari seluruh dunia, dan telah menghasilkan pengakuan internasional untuk kontribusinya pada perkembangan web.
 Atau kunjungi W3 websitenya di : http://www.W3.org/

Bagaimana WWW bekerja?
 Informasi web disimpan dalam dokumen yang disebut dengan halaman web (web Pages).
 Web pages adalah file-file yang disimpan dalam computer yang disebut dengan server-server web (web server)
 Komputer-komputer membaca web page disebut sebagai web client
 Web client menampilkan page dengan menggunakan program yang disebut dengan browser web(web browser)
 Broser web yang popular adalah IE, Neccape Navigator, Mozilla yang baru ada google crome

BROWSER WEB
 Browser web adalah software yang digunakan untuk menampilkan informasi dari server web.
 Software ini telah dikembangkan dengan menggunakan user interface grafis, sehingga pemakai dapat dengan mudah untuk pindah antar dokumen.
 Lynx adalah browser web yang masih menggunakan mode teks, yang akibatnya adalah tidak ada gambar yang dapat ditampilkan. Lynx ini ada pada lingkungan DOS dan *nik ( keluarga SO Unix )

Bagaimana browser mengambil page
 Suatu browser mengambil sebuah web page dari server dengan sebuah request. Sebuah request adalah sebuah request HTTP standar yang berisi sebuah page addres. Contoh page addres : http:/www.kitapunya.web.id/page.htm

Bagaimana browser menampilkan page
 Seluruh web page berisi instruksi-instruksi bagaimana untuk ditampilkan. Browser menampilkan page dengan membaca instruksi-instruksi ini. Instruksi yang paling umum dan paling mendasar untuk menampilkan adalah menggunakan sintak HTML. Tag HTML contohnya:

ini adalah paragraph



Server web
 Server web adalah computer yang digunakan untuk menyimpan dokumen-dokumen web, computer ini akan melayani permintaan dokumen web dari kliennya.
 Browser seperti IE berkomunikasi melalui jaringan dengan server web menggunakan HTTP. Browser akan mengirimkan request kepada server untuk meminta dokumen tertentu atau layanan lain yang disediakan oleh server. Server akan memberikan layanan jika tersedia juga dengan menggunakan protocol HTTP

Read More......

TEKNIK SIMULASI

DEFINISI – DEFINISI :
• SISTEM
Sekumpulan obyek yang tergabung dalam suatu interaksi dan inter-dependensi yang teratur. Sistem dibedakan menjadi dua tipe yaitu sistem diskrit dan sistem kontinu.

• MODEL
Penyederhanaan dari sistem yang akan dipelajari.

• SIMULASI
Suatu prosedur kuantitatif, yang menggambarkan sebuah sistem, dengan mengembangkan sebuah model dari sistem tersebut dan melakukan sederetan uji coba untuk memperkirakan perilaku sistem pada kurun waktu tertentu.
Klasifikasi simulasi dalam tiga dimensi:
• Model Simulasi Statik vs. Dinamik
Model statik: representasi sistem pada waktu tertentu. Waktu tidak berperan di sini.
Contoh: model Monte Carlo.
Model dinamik: merepresentasikan sistem dalam perubahannya terhadap waktu.
Contoh: sistem conveyor di pabrik.
• Model Simulasi Deterministik vs. Stokastik
Model deterministik: tidak memiliki komponen probabilistik (random).
Model stokastik: memiliki komponen input random, dan menghasilkan output yang random pula.
• Model Simulasi Kontinu vs. Diskrit
Model kontinu: status berubah secara kontinu terhadap waktu, mis. gerakan pesawat terbang.
Model diskrit: status berubah secara instan pada titik-titik waktu yang terpisah, mis. jumlah customer di bank.


Klasifikasi simulasi dalam tiga dimensi:
Model yang akan dipelajari selanjutnya adalah diskrit, dinamik, dan stokastik, dan disebut model simulasi discrete-event.
• Simulasi discrete-event:
pemodelan sistem dalam perubahannya terhadap waktu di mana variabel-variabel status berubah secara instan pada titik-titik waktu yang terpisah.
Penggunaan Simulasi :
• Alternatif terakhir, bila cara lain tak dapat digunakan.

• Pada kenyataannya, berdasarkan hasil riset di US tahun 1971, dari 1000 perusahaan :

– 20 % (paling banyak) menggunakan teknik Simulasi,
– 21% menggunakan Linier Programming,
– 2% menggunakan Inventori dan sisanya menggunakan berbagai teknik-teknik lain.

Mengapa Perlu Simulasi ?
1. Simulasi adalah satu-satunya cara yang dapat
digunakan untuk mengatasi masalah, jika
sistem nyata sulit diamati secara langsung
Contoh : Jalur penerbangan pesawat ruang angkasa atau satelit.
2. Solusi Analitik tidak bisa dikembangkan, karena
sistem sangat kompleks.
3. Pengamatan sistem secara langsung tidak
dimungkinkan, karena :
- sangat mahal
- memakan waktu yang terlalu lama
- akan merusak sistem yang sedang berjalan.

Kekurangan Simulasi :
1.Simulasi tidak akurat.
Teknik ini bukan proses optimisasi dan tidak menghasilkan sebuah jawaban tetapi hanya menghasilkan sekumpulan output dari sistem pada berbagai kondisi yang berbeda. Dalam banyak kasus, ketelitiannya sulit diukur.

2.Model simulasi yang baik bisa jadi sangat mahal, bahkan sering dibutuhkan waktu bertahun-tahun untuk mengembangkan model yang sesuai.

3.Tidak semua situasi dapat dievaluasi dengan simulasi
Hanya situasi yang mengandung ketidak-pastian yang dapat dievaluasi dengan simulasi. Karena tanpa komponen acak semua eksperimen simulasi akan menghasilkan jawaban yang sama.

4.Simulasi menghasilkan cara untuk mengevaluasi solusi, bukan menghasilkan cara untuk memecahkan masalah.
Jadi sebelumnya perlu diketahui dulu solusi atau pendekatan solusi yang akan diuji.

Aplikasi Studi Simulasi
• Design dan analisa sistem manufaktur
• Mengetahui kebutuhan sofware dan hardware untuk sebuah sistem komputer.
• Mengevaluasi sistem persenjataan baru, dalam bidaang militer
• Menentukan pengaturan dalam sistem inventory/persediaan.
• Mendesign sistem transportasi
• Mendesign sistem komunikasi
• Mengevaluasi sistem pelayanan dalam bidang perbankan.
• Mengevaluasi sistem ekonomi dan finansial.

Pendekatan Tiga Langkah untuk membangun Model Simulasi yang valid dan dapat dipercaya
• Langkah 1.
Membangun sebuah model dengan usaha melibatkan informasi semaksimal mungkin.

• Berdiskusi dengan para ‘pakar’ sistem
• Melakukan observasi terhadap sistem
• Memanfaatkan Teori yang ada
• Memanfaatkan hasil dari Model simulasi yang sama dan relevan
• Menggunakan pengalaman atau intuisi
• Memanfaatkan Teori yang ada
• Memanfaatkan hasil dari Model simulasi yang sama dan relevan
• Menggunakan pengalaman atau intuisi
• Langkah 2.
Menguji asumsi-asumsi model secara empiris
Jika distribusi probabilitas secara teoritis cocok dengan observasi dan digunakan sebagai input untuk model simulasi, dapat diuji dengan pembuatan grafik dan uji goodness-of-fit
Jika beberapa himpunan data diobservasi untuk fenomena random yang sama, maka perbaikan dari penggabungan data tersebut dapat ditentukan dengan uji Kruskal-Wallis
Salah satu utiliti yang sangat berguna adalah analisis sensitivitas

• Langkah 3.
Menentukan seberapa representatif data output Simulasi

VALIDASI, VERIFIKASI, DAN DISAIN SIMULASI
• Verifikasi:
Menentukan program komputer simulasi bekerja sebagaimana mestinya, yaitu sama dengan men-debug program komputer.
Verifikasi memeriksa penerjemahan model simulasi konseptual (mis., flowchart dan asumsi-asumsi) menjadi program yang berjalan dengan benar.

• Validasi:
Berkenaan dengan menentukan apakah model konseptual simulasi (bukan program komputer) merupakan representasi yang akurat dari sistem yang dipelajari.
Jika model simulasi dan hasilnya diterima oleh manajer/client sebagai valid, dan digunakan sebagai alat bantu dalam pengambilan keputusan, berarti model tersebut credible.

Waktu dan hubungan dari Validasi dan Verifikasi :

Prinsip-prinsip Pemodelan Simulasi yang Valid
Umumnya tidak diperlukan adanya korespondensi satu-satu antara setiap elemen sistem dengan elemen model.
Acuan untuk menentukan tingkat detil model simulasi:
- Di awal studi, definisikan dengan hati-hati:
1. isu yang akan diteliti
2. pengukuran kinerja untuk evaluasi
3. konfigurasi sistem alternatif
- Gunakan analisis “pakar” dan analisis sensitifitas untuk membantu menentukan tingkat detil model.
- Mulailah dengan detil tingkat “menengah”, yang dapat diubah jika perlu.
- Jangan mulai dengan terlalu banyak detil, tetapi model tersebut juga harus punya tingkat detil yang cukup agar credible.
- Tingkat detil model harus konsisten dengan jenis data yang tersedia.
- Waktu dan biaya merupakan faktor utama dalam menentukan detil model.
- Jika jumlah faktor (aspek yang diteliti) pada studi cukup besar, gunakan model simulasi “kasar” atau model analitik untuk mengidentifikasi faktor-faktor yang penting sebelum mengembangkan moel simulasi yang detil.

Verifikasi Program Komputer Simulasi
Delapan teknik yang dapat digunakan untuk
mendebug program komputer dari model simulasi:
• Teknik 1:
Dalam mengembangkan model simulasi, tulis dan debug program komputer dalam bentuk modul atau subprogram.
• Teknik 2:
Disarankan agar lebih dari satu orang membaca program komputer jika model simulasi yang dikembangkan besar. Penulis program itu sendiri mungkin tidak dapat memberikan kritik yang baik.
• Teknik 3:
Jalankan simulasi dengan beberapa setting parameter input dan lihat apakah outputnya masuk akal.
• Teknik 4:
Lakukan “trace”, di mana status sistem yang disimulasi, yaitu: daftar event, variabel status, cacahan statistik, dsb., dicetak setelah masing-masing event terjadi dan dibandingkan dengan perhitungan manual untuk melihat apakah program bekerja sebagaimana mestinya.
• Teknik 5:
Jika mungkin, model harus dijalankan dengan asumsi-asumsi yang disederhanakan di mana karakteristik yang sebenarnya diketahui atau dapat dihitung dengan mudah.
• Teknik 6:
Pada beberapa model simulasi, akan sangat menolong jika ada animasi output simulasi yang dapat diteliti.
• Teknik 7:
Tuliskan mean dan varians sampel untuk setiap distribusi probabilitas input simulasi dan bandingkan dengan mean dan varians yang diinginkan (mis., historikal).
Langkah ini menentukan apakah nilai-nilai input dibangkitkan dengan benar dari distribusi-distribusi tsb.
• Teknik 8:
Gunakan paket simulasi untuk memperkecil jumlah baris kode yang dibutuhkan.

Pandangan Umum Mengenai Validasi
1. pengganti dari eksperimen dengan sistem yang ada atau yang diusulkan. Dengan demikian, tujuan ideal dari validasi adalah menjamin bahwa model simulasi cukup baik sehingga dapat digunakan untuk mengambil keputusan bagi sistem.
2. Kemudahan atau kesulitan proses validasi bergantung pada kompleksitas sistem yang dimodelkan dan 1.Ekperimen dengan model simulasi merupakan apakah versi sistem tersebut sudah ada.
3. Model simulasi dari sistem yang kompleks hanya dapat merupakan pendekatan sistem yang sebenarnya.
4.Model simulasi harus selalu dikembangkan untuk sekumpulan tujuan tertentu. Model yang valid untuk satu tujuan belum tentu valid untuk tujuan lainnya.
5. Catatan asumsi-asumsi model simulasi harus di-update secara teratur, dan akhirnya menjadi laporan akhir.
6. Model simulasi harus divalidasi relatif terhadap ukuran-ukuran kinerja yang nanatinya dipakai untuk pengambilan keputusan.
7.Validasi bukan sesuatu yang harus diusahakan setelah model simulasi selesai dikembangkan, melainkan, pengembangan model dan validasi harus dilakukan bersama-sama sepanjang studi simulasi.
8. Umumnya tidak mungkin melakukan validasi statistik antara data output model dan data output sistem ybs (jika ada), bergantung pada sifat data tsb.

Pembangkit Bilangan Acak
(Random Number Generator)
• CARA MEMPEROLEH :
– ZAMAN DAHULU, dgn cara :
• Melempar dadu
• Mengocok kartu

– ZAMAN MODERN (>1940), dgn cara :
membentuk bilangan acak secara numerik/ aritmatik(menggunakan komputer) , disebut “Pseudo Random Number” (bilangan pseudo acak).
• PEMBANGKIT BILANGAN ACAK, HARUS :
– Berdistribusi uniform(0,1) dan tidak berkorelasi antar bilangan.
– Membangkitkan cepat, storage tidak besar
– Dapat di “reproduce”
– Periode besar, karena mungkin bil.acak dibangkitkan berulang

Pseudo Random Number Generator
• METODE KONGRUEN MULTIPLIKATIF

Xn = (aXn-1) modulo m
Dimana :
– Bil. Pseudo dimulai dgn nilai awal X0 yang disebut benih.
– a & m : bilangan bulat positif tertentu
– aXn-1 dibagi dgn m dan sisanya diambil sebagai nilai Xn

• Agar Xn berprilaku acak yang dapat dipertanggungjawabkan :

– Modulo m dipilih sebesar mungkin untuk memperbesar periode
– a dipilih agar korelasi antar Xn minimum
– Benih Xo: bil. Bulat positif ganjil, Xo< x0="">

Read More......

SECARA FISIK BAGAIMANA KOMUNIKASI DATA TERJADI?

Fisikanya seperti apa?

Gelombang dan sinyal

Gelombang?
Sinyal?
Pada dasarnya gelombang dan sinyal kita bagi dalam 2 bagian.
1. Analog
2. digital


Sinyal analog adalah istilah yang digunakan dalam ilmu teknik (terutama teknik elektro, teknik informasi, dan teknik kendali), yaitu suatu besaran yang berubah dalam waktu atau dan dalam ruang, dan yang mempunyai semua nilai untuk untuk setiap nilai waktu (dan atau setiap nilai ruang). Digunakan juga istilah Sinyal Kontinyu, untuk menggambarkan bahwa besaran itu mempunyai nilai yang kontinyu (tak terputus).
Contoh Sinyal Analog adalah Sinyal Elektrik yang dihasilkan oleh peralatan elektrik non-digital: sinyal suara pada radio konvensional, sinyal gambar (foto) pada kamera konvensional, sinyal video pada televisi konvensional.

SINYAL DIGITAL Merupakan hasil teknologi yang mengubah sinyal menjadi kombinasi urutan bilangan 0 dan 1 (disebut juga dengan biner)untuk proses informasi yang mudah, cepat dan akurat. Sinyal tersebut disebut sebuah bit.
Sinyal digital ini memiliki berbagai keistimewaan yang unik yang tidak dapat ditemukan pada teknologi analog, yaitu:
1. Mampu mengirimkan informasi dengan kecepatan cahaya yang dapat membuat informasi dapat dikirim dengan kecepatan tinggi.
2. Penggunaan yang berulang-ulang terhadap informasi tidak mempengaruhi kualitas dan kuantitas informasi itu sendiri,
3. Informasi dapat dengan mudah diproses dan dimodifikasi ke dalam berbagai bentuk,
4. Dapat memproses informasi dalam jumlah yang sangat besar dan mengirimnya secara interaktif.
Komputer mengolah data yang ada adalah secara digital, melalui sinyal listrik yang diterimanya atau dikirimkannya. Pada prinsipnya, komputer hanya mengenal dua arus, yaitu on atau off, atau istilah dalam angkanya sering juga dikenal dengan 1 (satu) atau 0 (nol). Kombinasi dari arus on atau off inilah yang yang mampu membuat komputer melakukan banyak hal, baik dalam mengenalkan huruf, gambar, suara, bahkan film-film menarik yang anda tonton dalam format digital.


Kontinyu = tidak terputus
= statenya/keadaanya kontinyu atau takberhingga

State=nilai  tegangan

Digital = diskrit, tak kontinyu, putus-putus, statenya berhingga biasanya hanya dua state.

Analog?
Fourier: bahwa semua gelombang bisa dinyatakan sebagai deret penjumlahan gelombang sinus sederhana


Bagaimana konsep ini dipakai untuk mengkomunikasikan data?

Data = 1001001 diterjemahkan sebagai gelombang?
Sehingga komunikasi data = komunikasi sinyal/gelombang

Gelombang itu berupa apa saja? Ini bergantung media
Kabel = gelombang listrik/aliran elektron
Ruang = gelombang elektromagnetik
Fiber optik = cahaya

Kasus komunikasi data
Komputer ---------------- komputer
Bagaimana?
Fokus komputer --- komputer



Workstation Server
10010 sinyal digital analog ke digital 10010
Sinyal analog


Bagaimana komunikasi data terjadi?
Untuk berkomunikasi ada aturan  protokol
Protokol?
Seperangkat aturan berkomunikasi antar peralatan
Implementasi? Penerapannya?
Sekelompok program yang mengatur pertukaran data


Gangguan?
Bisa terjadi gangguan? Noise
Gangguan bergantung medianya?
Contoh kabel. - kabel kepanjangan sehingga energi tidak cukup membawa data

Contoh dalam ruang? Maksudnya medianya dengan gelombang ektromagnetik (radio, dsb)

Fiberoptik = cahaya,


Read More......

Lapisan data-link

Lapisan data-link (data link layer) adalah lapisan kedua dari bawah dalam model OSI, yang dapat melakukan konversi frame-frame jaringan yang berisi data yang dikirimkan menjadi bit-bit mentah agar dapat diproses oleh lapisan fisik. Lapisan ini merupakan lapisan yang akan melakukan transmisi data antara perangkat-perangkat jaringan yang saling berdekatan di dalam sebuah wide area network (WAN), atau antara node di dalam sebuah segmen local area network (LAN) yang sama. Lapisan ini bertanggungjawab dalam membuat frame, flow control, koreksi kesalahan dan pentransmisian ulang terhadap frame yang dianggap gagal. MAC address juga diimplementasikan di dalam lapisan ini. Selain itu, beberapa perangkat seperti Network Interface Card (NIC), switch layer 2 serta bridge jaringan juga beroperasi di sini.


Lapisan data-link menawarkan layanan pentransferan data melalui saluran fisik. Pentransferan data tersebut mungkin dapat diandalkan atau tidak: beberapa protokol lapisan data-link tidak mengimplementasikan fungsi Acknowledgment untuk sebuah frame yang sukses diterima, dan beberapa protokol bahkan tidak memiliki fitur pengecekan kesalahan transmisi (dengan menggunakan checksumming). Pada kasus-kasus tersebut, fitur-fitur acknowledgment dan pendeteksian kesalahan harus diimplementasikan pada lapisan yang lebih tinggi, seperti halnya protokol Transmission Control Protocol (TCP) (lapisan transport).
Tugas utama dari data link layer adalah sebagai fasilitas transmisi data mentah dan mentransformasi data tersebut ke saluran yang bebas dari kesalahan transmisi. Sebelum diteruskan ke Network Layer, lapisan data link melaksanakan tugas ini dengan memungkinkan pengirim memecah-mecah data input menjadi sejumlah data frame (biasanya berjumlah ratusan atau ribuan byte). Kemudian lapisan data link mentransmisikan frame tersebut secara berurutan dan memproses acknowledgement frame yang dikirim kembali oleh penerima. Karena lapisan fisik menerima dan mengirim aliran bit tanpa mengindahkan arti atau arsitektur frame, maka tergantung pada lapisan data-link-lah untuk membuat dan mengenali batas-batas frame itu. Hal ini bisa dilakukan dengan cara membubuhkan bit khusus ke awal dan akhir frame.
Layanan yang disediakan bagi lapisan jaringan
Fungsi dari lapisan data link adalah menyediakan layanan bagi lapisan jaringan. Layanannya yang penting adalah pemindahan data dari lapisan jaringan pada node sumber ke lapisan jaringan di pada node yang dituju. Tugas lapisan data link adalah menstransmisikan bit-bit ke komputer yang dituju, sehingga bit-bit tersebut dapat diserahkan ke lapisan jaringan. Berkas:Heru1.GIF
Transmisi aktual yang mengikuti lintasan akan lebih mudah lagi jika dianggap sebagai proses dua lapisan data-link yang berkomunikasi menggunakan protokol data link (Gambar 2). Lapisan data-link dapat dirancang sehingga mampu menyediakan bermacam-macam layanan. Layanan aktual yang ditawarkan suatu sistem akan berbeda dengan layanan sistem yang lainnya. Tiga layanan yang disediakan adalah sebagai berikut :

1. layanan unacknowledged connectionless
2. layanan acknowledged connectionless
3. layanan acknowledged connection-oriented
Setiap layanan yang diberikan data link layer akan dibahas satu persatu.

Layanan unacknowledged connectionless
Layanan jenis ini mempunyai arti di mana node sumber mengirimkan sejumlah frame ke node lain yang dituju dengan tidak memberikan acknowledgment bagi diterimanya frame-frame tersebut. Tidak ada koneksi yang dibuat baik sebelum atau sesudah dikirimkannya frame. Bila sebuah frame hilang sehubungan dengan adanya noise, maka tidak ada usaha untuk memperbaiki masalah tersebut di lapisan data-link. Jenis layanan ini cocok bila laju kesalahan (error rate) sangat rendah, sehingga recovery bisa dilakukan oleh lapisan yang lebih tinggi. Sebagian besar teknologi [LAN] meggunakan layanan unacknowledgment connectionless pada lapisan data link.

Layanan acknowledged connectionless
Pada layanan jenis ini berkaitan dengan masalah reabilitas. Layanan ini juga tidak menggunakan koneksi, akan tetapi setiap frame dikirimkan secara independen dan secara acknowledged. Dalam hal ini, si pengirim akan mengetahui apakah frame yang dikirimkan ke komputer tujuan telah diterima dengan baik atau tidak. Bila ternyata belum tiba pada interval waktu yang telah ditentukan, maka frame akan dikirimkan kembali. Layanan ini akan berguna untuk saluran unreliable, seperti sistem nirkabel.

Layanan acknowledged connection-oriented
Layanan jenis ini merupakan layanan yang paling canggih dari semua layanan yang disediakan oleh lapisan data-link bagi lapisan jaringan. Dengan layanan ini, node sumber dan node tujuan membuat koneksi sebelum memindahkan datanya. Setiap frame yang dikirim tentu saja diterima. Selain itu, layanan ini menjamin bahwa setiap frame yang diterima benar-benar hanya sekali dan semua frame diterima dalam urutan yang benar. Sebaliknya dengan layanan connectionless, mungkin saja hilangnya acknowledgment akan meyebabkan sebuah frame perlu dikirimkan beberapa kali dankan diterima dalam beberapa kali juga. Sedangkan layanan connection-oriented menyediakan proses-proses lapisan jaringan dengan aliran bit yang bisa diandalkan.
Pada saat layanan connection oriented dipakai, pemindahan data mengalami tiga fase. Pada fase pertama koneksi ditentukan dengan membuat kedua node menginisialisasi variabel-variabel dan counter-counter yang diperlukan untuk mengawasi frame yang mana yang diterima dan yang belum diterima. Dalam fase kedua, satu frame atau lebih mulai ditransmisikan dari node sumber ke node tujuan. Pada fase ketiga, koneksi dilepaskan, pembebasan variabel, buffer dan sumber daya yang lain yang dipakai untuk menjaga berlangsungnya koneksi.
Framing
Untuk melayani lapisan jaringan, lapisan data-link harus menggunakan layanan yang disediakan oleh lapisan fisik. Apa yang dilakukan lapisan fisik adalah menerima aliran bit-bit mentah dan berusaha untuk mengirimkannya ke tujuan. Aliran bit ini tidak dijamin bebas dari kesalahan. Jumlah bit yang diterima mungkin bisa lebih sedikit, sama atau lebih banyak dari jumlah bit yang ditransmisikan dan juga bit-bit itu memiliki nilai yang berbeda-beda. Bila diperlukan, lapisan data-link juga dapat diserahi tanggung jawab untuk mendeteksi dan mengoreksi kesalahan yang terjadi.
Pendekatan yang umum dipakai adalah lapisan data link memecah aliran bit menjadi frame-frame dan menghitung nilai checksum untuk setiap frame-nya. Memecah-mecah aliran bit menjadi frame-frame lebih sulit dibandingkan dengan apa yang kita kira. Untuk memecah-mecah aliran bit ini, digunakanlah metode-metode khusus. Ada empat buah metode yang dipakai dalam pemecahan bit menjadi frame, yaitu :
1. Karakter penghitung
2. pemberian karakter awal dan akhir, dengan pengisian karakter
3. Pemberian flag awal dan akhir, dengan pengisian bit
4. Pelanggaran pengkodean Physical layer
Berikut ini akan disajikan pembahasan mengenai metode-metode ini.

Karakter Penghitung
Metode ini menggunakan sebuah field pada header untuk menspesifikasi jumlah karakter di dalam frame. Ketika data link layer pada komputer yang dituju melihat karakter penghitung, maka data link layer akan mengetahui jumlah karakter yang mengikutinya dan kemudian juga akan mengetahui posisi ujung framenya. Teknik ini bisa dilihat pada gambar 3 di bawah ini, dimana ada empat buah frame yang masing-masing berukuran 5,5,8 dan 8 karakter.
Masalah yang akan timbul pada aliran karakter ini apabila terjadi error transmisi. Misalnya, bila hitungan karakter 5 pada frame kedua menjadi 7 (Gambar 4), maka tempat yang dituju tidak sinkron dan tidak akan dapat mengetahui awal frame berikutnya. Oleh karena permasalahan ini, metode hitungan karakter sudah jarang dilakukan.

Pemberian Karakter Awal dan Akhir
Metode yang kedua ini mengatasi masalah resinkronisasi setelah terjadi suatu error dengan membuat masing-masing frame diawali dengan deretan karakter DLE, STX, ASCII dan diakhiri dengan DLE, ETX. DLE adalah Data Link Escape, STX adalah Start of Text, ETX adalah End of Text. Dalam metode ini, bila tempat yang dituju kehilangan batas-batas frame, maka yang perlu dilakukan adalah mencari karakter-karakter DLE, STX, DLE dan ETX.
Masalah yang akan terjadi pada metode ini adalah ketika data biner ditransmisikan. Karakter-karakter DLE, STX, DLE dan ETX yang terdapat pada data akan mudah sekali mengganggu framing. Salh satu car untuk mengatasi masalah ini adalah dengan membuat data link layer, yaitu pengirim menyisipkan sebuah karajter DLE ASCII tepat sebeum karakter DLE pada data. Teknik ini disebut character stuffing (pengisian karakter) dan cara pengisiannya dapat dilihat pada gambar 5

Pemberian Flag Awal dan akhir
Teknik baru memungkinkan frame data berisi sejumlah bit dan mengijinkan kod karakter dengan sejumlah bit per karakter. Setip frame diawali dan diakhiri oleh pola bit khusus, 01111110, yang disebut byte flag. Kapanpun data link layer pada pengirim menemukan lima buah flag yang berurutan pada data, maka data link layer secara otomatis mengisikan sebuah bit 0 ke aliran bit keluar.
Pengisian bit analog dengan pengisian karakter, dimana sebuah DLE diisikan ke aliran karakter keluar sebelum DLE pada data (Gambar 6). Ketika penerima melihat lima buah bit 1 masuk yang berurutan, yang diikuti oleh sebuah bit 0, maka penerima secara otomatis menghapus bit 0 tersebut. Bila data pengguna berisi pola flag, 01111110, maka flag ini ditrnsmisikan kembali sebagai 011111010 tapi akan disimpan di memori penerima sebagai 01111110.

Pelanggaran Pengkodean Physical Layer
Metode yang terakhir hanya bisa digunakan bagi jaringan yang encoding pada medium fisiknya mengandung pengulangan. Misalnya, sebagian LAN melakukan encode bit 1 data dengan menggunakan 2 bit fisik. Umumnya, bit 1 merupakan pasangan tinggi rendah dan bit 0 adalah pasangan rendah tinggi. Kombinasi pasangan tinggi-tinggi dan rendah-rendah tidak digunakan bagi data.

Kontrol Aliran
Flow control adalah suatu teknik untuk menjamin bahwa sebuah stasiun pengirim tidak membanjiri stasiun penerima dengan data. Stasiun penerima secara khas akan menyediakan suatu buffer data dengan panjang tertentu. Ketika data diterima, dia harus mengerjakan beberapa poses sebelum dia dapat membersihkan buffer dan mempersiapkan penerimaan data berikutnya.
Bentuk sederhana dari kontrol aliran dikenal sebagai stop and wait, dia bekerja sebagai berikut. Penerima mengindikasikan bahwa dia siap untuk menerima data dengan mengirim sebual poll atau menjawab dengan select. Pengirim kemudian mengirimkan data.
Flow control ini diatur/dikelola oleh Data Link Control (DLC) atau biasa disebut sebagai Line Protocol sehingga pengiriman maupun penerimaan ribuan message dapat terjadi dalam kurun waktu sesingkat mungkin. DLC harus memindahkan data dalam lalu lintas yang efisien. Jalur komunikasi harus digunakan sedatar mungkin, sehingga tidak ada stasiun yang berada dalam kadaan idle sementara stasiun yang lain saturasi dengan lalu lintas yang berkelebihan. Jadi flow control merupakan bagian yang sangat kritis dari suatu jaringan. Berikut ini ditampilkan time diagram Flow control saat komunikasi terjadi pada kondisi tanpa error dan ada error.
Mekanisme Flow control yang sudah umum digunakan adalah Stop and Wait dan Sliding window, berikut ini akan dijelaskan kedua mekanisme tersebut.

Stop and wait
Protokol ini memiliki karakteristik dimana sebuah pengirim mengirimkan sebuah frame dan kemudian menunggu acknowledgment sebelum memprosesnya lebih lanjut. Mekanisme stop and wait dapat dijelaskan dengan menggunakan gambar 8, dimana DLC mengizinkan sebuah message untuk ditransmisikan (event 1), pengujian terhadap terjadinya error dilakukan dengan teknik seperti VCR (Vertical Redundancy Check) atau LRC (Longitudinal Redundancy Check) terjadi pada even 2 dan pada saat yang tepat sebuah ACK atau NAK dikirimkan kembali untuk ke stasiun pengirim (event 3). Tidak ada messages lain yang dapat ditransmisikan selama stasiun penerima mengirimkan kembali sebuah jawaban. Jadi istilah stop and wait diperoleh dari proses pengiriman message oleh stasiun pengirim, menghentikan transmisi berikutnya, dan menunggu jawaban.
Pendekatan stop and wait adalah sesuai untuk susunan transmisi half duplex, karena dia menyediakan untuk transmisi data dalam dua arah, tetapi hanya dalam satu arah setiap saat. Kekurangan yang terbesar adalah disaat jalur tidak jalan sebagai akibat dari stasiun yang dalam keadaan menunggu, sehingga kebanyakan DLC stop and wait sekarang menyediakan lebih dari satu terminal yang on line. Terminal-terminal tetap beroperasi dalam susunan yang sederhana. Stasiun pertama atau host sebagai penaggung jawab untuk peletakkan message diantara terminal-terminal (biasanya melalui sebuah terminal pengontrol yang berada di depannya) dan akses pengontrolan untuk hubungan komunikasi.
Urutan sederhana ditunjukkan pada gambar 8 dan menjadi masalah yang serius ketika ACK atau NAK hilang dalam jaringan atau dalam jalur. Jika ACK pada event 3 hilang, setelah habis batas waktunya stasiun master mengirim ulang message yang sama untuk kedua kalinya. Transmisi yang berkelebihan mungkin terjadi dan menciptakan sebuah duplikasi record pada tempat kedua dari file data pengguna. Akibatnya, DLC harus mengadakan suatu cara untuk mengidentifikasi dan mengurutkan message yang dikirimkan dengan berdasarkan pada ACK atau NAK sehingga harus dimiliki suatu metoda untuk mengecek duplikat message.
Pada gambar 9 ditunjukkan bagaimana urutan pendeteksian duplikasi message bekerja, pada event 1 stasiun pengirim mengirikan sebuah message dengan urutan 0 pada headernya. Stasiun penerima menjawab dengan sebuah ACK dan sebuah nomor urutan 0 (event 2). Pengirim menerima ACK, memeriksa nomor urutan 0 di headernya, mengubah nomor urutan menjadi 1 dan mengirimkan message berikutnya (event 3).
Stasiun penerima mendapatkan message dengan ACK 1 di event 4. Akan tetapi message ini diterima dalam keadaan rusak atau hilang pada jalan. Stasiun pengirim mengenali bahwa message di event 3 tidak dikenali. Setelah batas waktu terlampau (timeout) stasiun pengirim mengirim ulang message ini (event 5). Stasiun penerima mencari sebuah message dengan nomor urutan 0. Dia membuang message, sejak itu dia adalah sebuah duplikat dari message yang dikirim pada event 3. Untuk melengkapi pertang-gung-jawaban, stasiun penerima mengirim ulang ACK 1 (event 6).

Efek delay propagasi dan kecepatan transmisi
Kita akan menentukan efisiensi maksimum dari sebuah jalur point-to-point menggunakan skema stop and wait. Total waktu yang diperlukan untuk mengirim data adalah :
Td = TI + nTF
di mana:
• TI = waktu untuk menginisiasi urutan = tprop + tpoll + tproc
• TF = waktu untuk mengirim satu frame
• TF = tprop + tframe + tproc + tprop + tack + tproc
• tprop = waktu propagasi
• tframe = waktu pengiriman
• tack = waktu balasan
Untuk menyederhanakan persamaan di atas, kita dapat mengabaikan term. Misalnya, untuk sepanjang urutan frame, TI relatif kecil sehingga dapat diabaikan.
Kita asumsikan bahwa waktu proses antara pengiriman dan penerimaan diabaikan dan waktu balasan frame adalah sangat kecil, sehingga kita dapat mengekspresikan TD sebagai berikut:
TD = n(2tprop + t frame)
Dari keseluruhan waktu yang diperlukan hanya n x t frame yang dihabiskan selama pengiriman data sehingga utilization (U) atau efisiensi jalur diperoleh :
Untuk menyederhanakan persamaan di atas, kita dapat mengabaikan term. Misalnya, untuk sepanjang urutan frame, TI relatif kecil sehingga dapat diabaikan. Kita asumsikan bahwa waktu proses antara pengiriman dan penerimaan diabaikan dan waktu balasan frame adalah sangat kecil, sehingga kita dapat mengekspresikan TD sebagai berikut:
TD = n(2tprop + t frame)
Dari keseluruhan waktu yang diperlukan hanya n x t frame yang dihabiskan selama pengiriman data sehingga utilization (U) atau efisiensi jalur diperoleh.

Sliding window control
Sifat inefisiensi dari stop and wait DLC telah menghasilkan teknik pengembangan dalam meperlengkapi overlapping antara message data dan message control yang sesuai. Data dan sinyal kontrol mengalir dari pengirim ke penerima secara kontinyu, dan beberapa message yang menonjol (pada jalur atau dalam buffer penerima) pada suatu waktu.
DLC ini sering disebut sliding windows karena metode yang digunakan sinkron dengan pengiriman nomer urutan pada header dengan pengenalan yang sesuai. Stasiun transmisi mengurus sebuah jendela pengiriman yang melukiskan jumlah dari message(dan nomor urutannya) yang diijinkan untuk dikirim. Stasiun penerima mengurus sebuah jendela penerimaan yang melakukan fungsi yang saling mengimbangi. Dua tempat menggunakan keadaan jendela bagaimana banyak message dapat/ menonjol dalam suatu jalur atau pada penerima sebelum pengirim menghentikan pengiriman dan menunggu jawaban.
Sebagai contoh pada gambar 10 suatu penerima dari ACK dari message 1 mengalir ke Station A untuk menggeser jendela sesuai dengan urutan nomor. Jika total message 10 harus dalam jendela, Station A dapat menahan pengiriman message 5,6,7,8,9,0, dan 1. (menahan message-message 2,3 dan 4 dalam kondisi transit). Dia tidak harus mengirim sebuah message menggunakan urutan 2 sampai dia menerima sebuah ACK untuk 2. Jendela melilitkan secara melingkar untuk mengumpulkan nomor-nomor set yang sama. Untuk lebih jelasnya dapat dilihat gambar berikut menampilkan lebih detail mekanisme sliding window dan contoh transmisi messagenya.

Deteksi Dan Koreksi Error
Sebagai akibat proses-proses fisika yang menyebabkannya terjadi, error pada beberapa media (misalnya, radio) cenderung timbul secara meletup (burst) bukannya satu demi satu. Error yang meletup seperti itu memiliki baik keuntungan maupun kerugian pada error bit tunggal yang terisolasi. Sisi keuntungannya, data komputer selalu dikirim dalam bentuk blok-blok bit. Anggap ukuran blok sama dengan 1000 bit, dan laju error adalah 0,001 per bit. Bila error-errornya independen, maka sebagian besar blok akan mengandung error.
Bila error terjadi dengan letupan 100, maka hanya satu atau dua blok dalam 100 blok yang akan terpengaruh, secara rata-ratanya. Kerugian error letupan adalah bahwa error seperti itu lebih sulit untuk dideteksi dan dikoreksi dibanding dengan error yang terisolasi.

Kode-kode Pengkoreksian Error
Para perancang jaringan telah membuat dua strategi dasar yang berkenaan dengan error. Cara pertama adalah dengan melibatkan informasi redundan secukupnya bersama-sama dengan setiap blok data yang dikirimkan untuk memungkinkan penerima menarik kesimpulan tentang apa karakter yang ditransmisikan yang seharusnya ada. Cara lainnya adalah dengan hanya melibatkan redundansi secukupnya untuk menarik kesimpulan bahwa suatu error telah terjadi, dan membiarkannya untuk meminta pengiriman ulang. Strategi pertama menggunakan kode-kode pengkoreksian error (error-correcting codes), sedangkan strategi kedua menggunakan kode-kode pendeteksian error (error-detecting codes).
Untuk bisa mengerti tentang penanganan error, kita perlu melihat dari dekat tentang apa yang disebut error itu. Biasanya, sebuah frame terdiri dari m bit data (yaitu pesan) dan r redundan, atau check bits. Ambil panjang total sebesar n (yaitu, n=m+r). Sebuah satuan n-bit yang berisi data dan checkbit sering kali dikaitkan sebagai codeword n-bit.
Ditentukan dua buah codeword: 10001001 dan 10110001. Disini kita dapat menentukan berapa banyak bit yang berkaitan berbeda. Dalam hal ini, terdapat 3 bit yang berlainan. Untuk menentukannya cukup melakukan operasi EXCLUSIVE OR pada kedua codeword, dan menghitung jumlah bit 1 pada hasil operasi. Jumlah posisi bit dimana dua codeword berbeda disebut jarak Hamming (Hamming, 1950). Hal yang perlu diperhatikan adalah bahwa bila dua codeword terpisah dengan jarak Hamming d, maka akan diperlukan error bit tunggal d untuk mengkonversi dari yang satu menjadi yang lainnya.
Pada sebagian besar aplikasi transmisi data, seluruh 2m pesan data merupakan data yang legal. Tetapi sehubungan dengan cara penghitungan check bit, tidak semua 2n digunakan. Bila ditentukan algoritma untuk menghitung check bit, maka akan dimungkinkan untuk membuat daftar lengkap codeword yang legal. Dari daftar ini dapat dicari dua codeword yang jarak Hamming-nya minimum. Jarak ini merupakan jarak Hamming bagi kode yang lengkap.
Sifat-sifat pendeteksian error dan perbaikan error suatu kode tergantung pada jarak Hamming-nya. Untuk mendeteksi d error, anda membutuhkan kode dengan jarak d+1 karena dengan kode seperti itu tidak mungkin bahwa error bit tunggal d dapat mengubah sebuah codeword yang valid menjadi codeword valid lainnya. Ketika penerima melihat codeword yang tidak valid, maka penerima dapat berkata bahwa telah terjadi error pada transmisi. Demikian juga, untuk memperbaiki error d, anda memerlukan kode yang berjarak 2d+1 karena hal itu menyatakan codeword legal dapat terpisah bahkan dengan perubahan d, codeword orisinil akan lebih dekat dibanding codeword lainnya, maka perbaikan error dapat ditentukan secara unik.
Sebagai sebuah contoh sederhana bagi kode pendeteksian error, ambil sebuah kode dimana parity bit tunggal ditambahkan ke data. Parity bit dipilih supaya jumlah bit-bit 1 dalam codeword menjadi genap (atau ganjil). Misalnya, bila 10110101 dikirimkan dalam parity genap dengan menambahkan sebuah bit pada bagian ujungnya, maka data itu menjadi 101101011, sedangkan dengan parity genap 10110001 menjadi 101100010.
Sebuah kode dengan parity bit tunggal mempunyai jarak 2, karena sembarang error bit tunggal menghasilkan sebuah codeword dengan parity yang salah. Cara ini dapat digunakan untuk mendeteksi erro-error tunggal.
Sebagai contoh sederhana dari kode perbaikan error, ambil sebuah kode yang hanya memiliki empat buah codeword valid :
0000000000,0000011111,1111100000 dan 1111111111
Kode ini mempunyai jarak 5, yang berarti bahwa code tersebut dapat memperbaiki error ganda. Bila codeword 0000011111 tiba, maka penerima akan tahun bahwa data orisinil seharusnya adalah 0000011111. Akan tetapi bila error tripel mengubah 0000000000 menjadi 0000000111, maka error tidak akan dapat diperbaiki.
Bayangkan bahwa kita akan merancang kode dengan m bit pesan dan r bit check yang akan memungkinkan semua error tunggal bisa diperbaiki. Masing-masing dari 2m pesan yang legal membutuhkan pola bit n+1. Karena 2n.jumlah total pola bit adalah 2n, kita harus memiliki (n+1)2m
Dengan memakai n = m + r, persyaratan ini menjadi (m + 2r. Bila m ditentukan, maka ini akan meletakkan batas bawah padar + 1) jumlah bit check yang diperlukan untuk mengkoreksi error tunggal.
Dalam kenyataannya, batas bawah teoritis ini dapat diperoleh dengan menggunakan metoda Hamming (1950). Bit-bit codeword dinomori secara berurutan, diawali dengan bit 1 pada sisi paling kiri. Bit bit yang merupakan pangkat 2 (1,2,4,8,16 dan seterusnya) adalah bit check. Sisanya (3,5,6,7,9 dan seterusnya) disisipi dengan m bit data. Setiap bit check memaksa parity sebagian kumpulan bit, termasuk dirinya sendiri, menjadi genap (atau ganjil). Sebuah bit dapat dimasukkan dalam beberapa komputasi parity. Untuk mengetahui bit check dimana bit data pada posisi k berkontribusi, tulis ulang k sebagai jumlahan pangkat 2. Misalnya, 11=1+2+8 dan 29=1+4+8+16. Sebuah bit dicek oleh bit check yang terjadi pada ekspansinya (misalnya, bit 11 dicek oleh bit 1,2 dan 8).
Ketika sebuah codeword tiba, penerima menginisialisasi counter ke nol. Kemudian codeword memeriksa setiap bit check, k (k=1,2,4,8,....) untuk melihat apakah bit check tersebut mempunyai parity yang benar. Bila tidak, codeword akan menambahkan k ke counter. Bila counter sama dengan nol setelah semua bit check diuji (yaitu, bila semua bit checknya benar), codeword akan diterima sebagai valid. Bila counter tidak sama dengan nol, maka pesan mengandung sejumlah bit yang tidak benar. Misalnya bila bit check 1,2, dan 8 mengalami kesalahan (error), maka bit inversinya adalah 11, karena itu hanya satu-satunya yang diperiksa oleh bit 1,2, dan 8. Gambar 12 menggambarkan beberapa karakter ASCII 7-bit yang diencode sebagai codeword 11 bit dengan menggunakan kode Hamming. Perlu diingat bahwa data terdapat pada posisi bit 3,5,6,7,9,10,11.
Kode Hamming hanya bisa memperbaiki error tunggal. Akan tetapi, ada trick yang dapat digunakan untuk memungkinkan kode Hamming dapat memperbaiki error yang meletup. Sejumlah k buah codeword yang berurutan disusun sebagai sebuah matriks, satu codeword per baris. Biasanya, data akan ditransmisikan satu baris codeword sekali, dari kiri ke kanan. Untuk mengkoreksi error yang meletup, data harus ditransmisikan satu kolom sekali, diawali dengan kolom yang paling kiri.
Ketika seluruh k bit telah dikirimkan, kolom kedua mulai dikirimkan, dan seterusnya. Pada saat frame tiba pada penerima, matriks direkonstruksi, satu kolom per satuan waktu. Bila suatu error yang meletup terjadi, paling banyak 1 bit pada setiap k codeword akan terpengaruh. Akan tetapi kode Hamming dapat memperbaiki satu error per codeword, sehingga seluruh blok dapat diperbaiki. Metode ini memakai kr bit check untuk membuat km bit data dapat immune terhadap error tunggal yang meletup dengan panjang k atau kurang.
Kode-kode Pendeteksian Kesalahan
Kode pendeteksian error kadang kala digunakan dalam transmisi data. Misalnya, bila saturan simplex, maka transmisi ulang tidak bisa diminta. Akan tetapi sering kali deteksi error yang diikuti oleh transmisi ulang lebih disenangi. Hal ini disebabkan karena pemakaian transmisi ulang lebih efisien. Sebagai sebuah contoh yang sederhana, ambil sebuah saluran yang errornya terisolasi dan mempunyai laju error 10 –6 per bit.
Anggap ukuran blok sama dengan 1000 bit. Untuk melaksanakan koreksi error blok 1000 bit, diperlukan 10 bit check; satu megabit data akan membutuhkan 10.000 bit check. Untuk mendeteksi sebuah blok dengan error tunggal 1-bit saja, sebuah bit parity per blok akan mencukupi. Sekali setiap 1000 blok dan blok tambahan (1001) akan harus ditransmisikan. Overhead total bagi deteksi error + metoda transmisi ulang adalah hanya 2001 bit per megabit data, dibanding 10.000 bit bagi kode Hamming.
Bila sebuah bit parity tunggal ditambahkan ke sebuah blok dan blok dirusak oleh error letupan yang lama, maka probabilitas error dapat untuk bisa dideteksi adalah hanya 0,5 hal yang sangat sulit untuk bisa diterma. Bit-bit ganjil dapat ditingkatkan cukup banyak dengan mempertimbangkan setiap blok yang akan dikirim sebagai matriks persegi panjang dengan lebar n bit dan tinggi k bit. Bit parity dihitung secara terpisah bagi setiap kolomnya dan ditambahkan ke matriks sebagai baris terakhir. Kemudian matriks ditransmisikan kembali baris per baris. Ketika blok tiba, penerima akan memeriksa semua bit parity, Bila ada bit parity yang salah, penerima meminta agar blok ditransmisi ulang.
Metoda ini dapat mendeteksi sebuah letupan dengan panjang n, karena hanya 1 bit per kolom yang akan diubah. Sebuah letupan dengan panjang n+1 akan lolos tanpa terdeteksi. Akan tetapi bila bit pertama diinversikan, maka bit terakhir juga akan diinversikan, dan semua bit lainnya adalah benar. (Sebuah error letupan tidak berarti bahwa semua bit salah; tetapi mengindikasikan bahwa paling tidak bit pertama dan terakhirnya salah). Bila blok mengalami kerusakan berat akibat terjadinya error letupan yang panjang atau error letupan pendek yang banyak, maka probabilitas bahwa sembarang n kolom akan mempunyai parity yang benar adalah 0,5. Sehingga probabilitas dari blok yang buruk akan bisa diterima adalah 2 –n.
Walaupun metoda di atas kadang-kadang adekuat, pada prakteknya terdapat metode lain yang luas digunakan: Kode polynomial (dikenal juga sebagai cyclic redundancy code atau kode CRC). Kode polynomial didasarkan pada perlakuan string-string bit sebagai representatsi polynomial dengan memakai hanya koefisien 0 dan 1 saja. Sebuah frame k bit berkaitan dengan daftar koefisien bagi polynomial yang mempunyai k suku, dengan range dari xk-1 sampai x0.

Polynomial seperti itu disebut polynomial yang bertingkat k-1. Bit dengan orde tertinggi (paling kiri) merupakan koefisien dari xk-1; bit berikutnya merupakan koefisien dari xk-2, dan seterusnya. Misalnya 110001 memiliki 6 bit, maka merepresentasikan polynomial bersuku 6 dengan koefisien 1,1,0,0,0 dan 1:x5+x4+x0.
Aritmetika polynomial dikerjakan dengan modulus 2, mengikuti aturan teori aljabar. Tidak ada pengambilan untuk pertambahan dan peminjaman untuk pengurangan. Pertambahan dan pengurangan identik dengan EXCLUSIVE OR, misalnya :
Pembagian juga diselesaikan dengan cara yang sama seperti pada pembagian bilangan biner, kecuali pengurangan dikerjakan berdasarkan modulus 2. Pembagi dikatakan “masuk ke” yang dibagi bila bilangan yang dibagi mempunyai bit sebanyak bilangan pembagi.
Saat metode kode polynomial dipakai, pengirim dan penerima harus setuju terlebih dahulu tentang polynomial generator, G(x). Baik bit orde tinggi maupun bit orde rendah dari generator harus mempunyai harga 1. Untuk menghitung checksum bagi beberapa frame dengan m bit, yang berkaitan dengan polynomial M(x), maka frame harus lebih panjang dari polynomial generator. Hal ini untuk menambahkan checksum keakhir frame sedemikian rupa sehingga polynomial yang direpresentasikan oleh frame berchecksum dapat habis dibagi oleh G(x). Ketika penerima memperoleh frame berchecksum, penerima mencoba membaginya dengan G(x). Bila ternyata terdapat sisa pembagian, maka dianggap telah terjadi error transmisi.

Algoritma untuk perhitungan checksum adalah sebagai berikut :
1. Ambil r sebagai pangkat G(x), Tambahkan bit nol r ke bagian orde rendah dari frame, sehingga sekarang berisi m+r bit dan berkaitan dengan polynomial xrM(x).
2. Dengan menggunakan modulus 2, bagi string bit yang berkaitan dengan G(x) menjadi string bit yang berhubungan dengan xrM(x).
3. Kurangkan sisa (yang selalu bernilai r bit atau kurang) dari string bit yang berkaitan dengan xrM(x) dengan menggunakan pengurangan bermodulus 2. Hasilnya merupakan frame berchecksum yang akan ditransmisikan. Disebut polynomial T(x).
Gambar 14 menjelaskan proses perhitungan untuk frame 1101011011 dan G(x) = x4 + x + 1. Jelas bahwa T(x) habis dibagi (modulus 2) oleh G(x). Dalam sembarang masalah pembagian, bila anda mengurangi angka yang dibagi dengan sisanya, maka yang akan tersisa adalah angka yang dapat habis dibagi oleh pembagi. Misalnya dalam basis 10, bila anda membagi 210.278 dengan 10.941, maka sisanya 2399. Dengan mengurangkan 2399 ke 210.278, maka yang bilangan yang tersisa (207.879) habis dibagi oleh 10.941.
Sekarang kita menganalisis kekuatan metoda ini. Error jenis apa yang akan bisa dideteksi ? Anggap terjadi error pada suatu transmisi, sehingga bukannya string bit untuk T(x) yang tiba, akan tetapi T(x) + E(X). Setiap bit 1 pada E(x) berkaitan dengan bit yang telah diinversikan. Bila terdapat k buah bit 1 pada E(x), maka k buah error bit tunggal telah terjadi. Error tunggal letupan dikarakterisasi oleh sebuah awalan 1, campuran 0 dan 1, dan sebuah akhiran 1, dengan semua bit lainnya adalah 0.
Begitu frame berchecksum diterima, penerima membaginya dengan G(x); yaitu, menghitung [T(x)+E(x)]/G(x). T(x)/G(x) sama dengan 0, maka hasil perhitungannya adalah E(x)/G(x).
Error seperti ini dapat terjadi pada polynomial yang mengandung G(x) sebagai faktor yang akan mengalami penyimpangan, seluruh error lainnya akan dapat dideteksi.
Bila terdapat error bit tunggal, E(x)=xi, dimana i menentukan bit mana yang mengalami error. Bila G(x) terdiri dari dua suku atau lebih, maka x tidak pernah dapat habis membagi E(x), sehingga seluruh error dapat dideteksi.
Bila terdapat dua buah error bit-tunggal yang terisolasi, E(x)=xi+xj, dimana i > j. Dapat juga dituliskan sebagai E(x)=xj(xi-j + 1). Bila kita mengasumsikan bahwa G(x) tidak dapat dibagi oleh x, kondisi yang diperlukan untuk dapat mendeteksi semua error adalah bahwa G(x) tidak dapat habis membagi xk+1 untuk sembarang harga k sampai nilai maksimum i-j (yaitu sampai panjang frame maksimum). Terdapat polynomial sederhana atau berorde rendah yang memberikan perlindungan bagi frame-frame yang panjang. Misalnya, x15+x14+1 tidak akan habis membagi xk+1 untuk sembarang harga k yang kurang dari 32.768.
Bila terdapat jumlah bit yang ganjil dalam error, E(x) terdiri dari jumlah suku yang ganjil (misalnya,x5+x2+1, dan bukannya x2+1). Sangat menarik, tidak terdapat polynomial yang bersuku ganjil yang mempunyai x + 1 sebagai faktor dalam sistem modulus 2. Dengan membuat x + 1 sebagai faktor G(x), kita akan mendeteksi semua error yang terdiri dari bilangan ganjil dari bit yang diinversikan.
Untuk mengetahui bahwa polynomial yang bersuku ganjil dapat habis dibagi oleh x+1, anggap bahwa E(x) mempunyai suku ganjil dan dapat habis dibagi oleh x+1. Ubah bentuk E(x) menjadi (x+1)Q(x). Sekarang evaluasi E(1) = (1+1)Q(1). Karena 1+1=0 (modulus 2), maka E(1) harus nol. Bila E(x) mempunyai suku ganjil, pensubtitusian 1 untuk semua harga x akan selalu menghasilkan 1. Jadi tidak ada polynomial bersuku ganjil yang habis dibagi oleh x+1.
Terakhir, dan yang terpenting, kode polynomial dengan r buah check bit akan mendeteksi semua error letupan yang memiliki panjang <=r. Suatu error letupan dengan panjang k dapat dinyatakan oleh xi(xk-1 + .....+1), dimana i menentukan sejauh mana dari sisi ujung kanan frame yang diterima letupan itu ditemui. Bila G(x) mengandung suku x0, maka G(x) tidak akan memiliki xi sebagai faktornya. Sehingga bila tingkat ekspresi yang berada alam tanda kurung kurang dari tingkat G(x), sisa pembagian tidak akan pernah berharga nol. Bila panjang letupan adalah r+1, maka sisa pembagian oleh G(x) akan nol bila dan hanya bila letupan tersebut identik dengan G(x). Menurut definisi letupan, bit awal dan bit akhir harus 1, sehingga apakah bit itu akan sesuai tergantung pada bit pertengahan r-1. Bila semua kombinasi adalah sama dan sebanding, maka probabilitas frame yang tidak benar yang akan diterima sebagai frame yang valid adalah ½ r-1. Dapat juga dibuktikan bahwa bila letupan error yang lebih panjang dari bit r+1 terjadi, maka probabilitas frame buruk untuk melintasi tanpat peringatan adalah 1/2r yang menganggap bahwa semua pola bit adalah sama dan sebanding. Tiga buah polynomial telah menjadi standard internasional: CRC-12 = X12 + X11 + X3 + X2 + X1 + 1 CRC-16 = X16 + X15 + X2 + 1 CRC-CCITT= X16 + X12 + X5 + 1 Ketiganya mengandung x+1 sebagai faktor prima.CRC-12 digunakan bila panjang karakternya sama dengan 6 bit. Dua polynomial lainnya menggunakan karakter 8 bit. Sebuah checksum 16 bit seperti CRC-16 atau CRC-CCITT, mendeteksi semua error tunggal dan error ganda, semua error dengan jumlah bit ganjil, semua error letupan yang mempunyai panjang 16 atau kurang, 99,997 persen letupan error 17 bit, dan 99,996 letupan 18 bit atau lebih panjang. Kendali kesalahan Tujuan dilakukan pengontrolan terhadap error adalah untuk menyampaikan frame-frame tanpa error, dalam urutan yang tepat ke lapisan jaringan. Teknik yang umum digunakan untuk error control berbasis pada dua fungsi, yaitu: Error detection, biasanya menggunakan teknik CRC (Cyclic Redundancy Check) Automatic Repeat Request (ARQ), ketika error terdeteksi, pengirim meminta mengirim ulang frame yang terjadi kesalahan. Mekanisme Error control meliputi • Ack/Nak : Provide sender some feedback about other end • Time-out: for the case when entire packet or ack is lost • Sequence numbers: to distinguish retransmissions from originals Untuk menghindari terjadinya error atau memperbaiki jika terjadi error yang dilakukan adalah melakukan perngiriman message secara berulang, proses ini dilakukan secara otomatis dan dikenal sebagai Automatic Repeat Request (ARQ). Pada proses ARQ dilakukan beberapa langkah diantaranya (1): • Error detection • Acknowledgment • Retransmission after timeout • Negative Acknowledgment • Macam-macam error control adalah:

Read More......
Template by : kendhin x-template.blogspot.com