BAB 2 LANDASAN TEORI

advertisement
BAB 2
LANDASAN TEORI
2.1 Protokol
2.1.1
Pendahuluan
Protokol merupakan persetujuan antara dua entitas atau lebih tentang bagaimana
entitas-etintas tersebut akan berkomunikasi satu dengan yang lainnya. Persetujuan –
persetujuan yang dimaksud antara lain :
-
Bagaimana
entitas-entitas
akan
memulai
komunikasi
atau
mengakhiri
komunikasi.
-
Proses sinkronisasi antara pengirim dan penerima.
-
Deteksi dan perbaikan kesalahan.
-
Format dan encoding data.
2.1.2
Lima Elemen Protokol
Sebuah protokol memiliki lima bagian terpisah. Untuk menjadi lengkap, seluruh
bagian ini harus dimasukkan ke dalam sebuah protokol :
1.
Layanan yang disediakan oleh sebuah protokol.
2.
Asumsi mengenai ruang lingkup protokol.
5
3.
Vocabulary atau kosakata dari suatu pesan yang digunakan dalam protokol.
4.
Format atau susunan dari pesan.
5.
Prosedur dan aturan-aturan yang menjaga agar pertukaran pesan tetap
konsisten.
2.1.3
Layanan dan ruang lingkup
Untuk memudahkan perancangan, protokol biasanya dibagi menjadi beberapa
tahapan atau layer. Layer – layer yang ada ini juga bertujuan mengurangi kompleksitas
dalam memecahkan masalah – masalah yang akan timbul ketika dua atau lebih komputer
saling berkomunikasi melalui jaringan.
Pada masing masing layer, terdapat beberapa protokol yang bertujuan untuk
memecahkan masalah yang ditangani oleh layer tersebut. Gabungan dari layer dan
protokol dari masing – masing layer biasanya disebut hirarki protokol atau model.
Jumlah layer maupun protokol yang digunakan pada masing – masing layer tergantung
dari model protokol yang digunakan.
2.1.4
Vocabulary dan Format
Tiga metode formating yang biasa digunakan saat ini adalah :
1. Bit-oriented.
Protokol bit-oriented mengirimkan data sebagai suatu aliran dari bit –bit. Supaya
penerima dapat mengenali dimana awal atau akhir dari suatu paket, digunakan flag atau
6
penanda yang terdiri dari sekumpulan bit yang unik diawal dan di akhir data user.
Penanda ini biasa juga disebut control codes. Jadi biasanya dalam suatu paket data bitoriented, terdapat data user dan diapit control codes.
2. Character-oriented
Pada protokol jenis ini, ditentukan panjang dari sebuah karakter, biasanya 7 atau 8
bit. Penerima akan membaca bit – bit sampai 7 atau 8 bit, baru kemudian
menerjemahkannya ke dalam karakter – karakter baik berupa data user atau control
codes. Contoh control codes yang biasa digunakan sebagai penanda awal dari paket
character-oriented adalah STX dan akhir paket adalah ETX.
3. Byte-count-oriented
Sedikit berbeda dengan character-oriented dan bit-oriented, byte-count- oriented
menambahkan sejumlah data setelah STX. Data tersebut berupa panjang dari data user
yang ada dalam paket tersebut. Dengan demikian, ETX sudah tidak diperlukan lagi. Saat
ini protokol ini adalah protokol yang paling umum digunakan.
2.1.5
Model Open System Interconnection (OSI)
Model ini dikembangakan oleh organisasi standar dunia, International
Organization for Standardization (ISO). Model ini biasanya digunakan untuk
menjelaskan layer – layer dalam protokol jaringan.
Model ini terdiri dari tujuh layer dimana masing – masing layer memiliki tugas
dan masalah – masalah yang harus dipecahkan. Berikut masing – masing layer dan
penjelasannya yaitu:
7
1. Physical Layer
Yaitu layer paling dasar yang membahas peralatan yang mendukung jaringan seperti
komputer, jenis kabel, satelit dll. Selain itu layer ini juga membahas bagaimana data
dikirim secara fisik menyangkut bentuk signal, besarnya tegangan atau hambatan, dsb.
2. Data link layer
Ketika kita telah berhasil membangun jaringan melalui physical layer, kita harus
dapat mengirimkan data melalui jaringan itu. Data link layer bertugas untuk memenuhi
tugas tersebut.
Data link layer harus dapat menyimpan informasi ke dalam suatu paket yang dapat
mengenali tujuan data atau alat lain yang akan menerima data. Selain itu data link layer
juga harus dapat melakukan pengecekan kesalahan, juga menangani masalah – masalah
lain yang muncul dalam pengiriman data dari satu alat ke alat lainnya.
3. Network layer
Setelah kita dapat memastikan data link dapat mengirimkan data dari satu alat ke alat
lainnya, kita butuh suatu cara agar data dapat dikirim dari satu jaringan ke jaringan
lainnya. Network layer diharapkan mampu mengirimkan data dari suatu jaringan ke
jaringan lain dimana didalam sebuah jaringan bisa saja terdapat berbagai macam alat
yang memiliki physical layer dan data link layer.
4. Transport layer
Tugas utama dari transport layer adalah mengatur agar data yang diterima
merupakan data yang seharusnya di terima. Selain itu juga karena terbatasnya ukuran
data yang dapat dikirm melalui suatu jaringan, transport layer juga bertugas untuk
8
memecah data ke dalam ukuran – ukuran tertentu sebelum dikirimkan dan memiliki
kemampuan untuk merakit kembali data – data yang diterima.
5. Session layer
Tugas dari session layer adalah untuk mengatur koneksi antara satu node dengan
node lainnya sehingga satu node bisa berkomunikasi dengan satu atau lebih node
lainnya. Session layer dapat membuka dan menutup koneksi dan memastikan layer –
layer diatasnya dapat mengirim dan menerima data.
6. Presentation layer
Tujuan utama dari presentation layer ini adalah mengubah bentuk atau format data
sebelum dikirim atau sebelum diberikan ke user. Misalnya untuk menjamin kerahasiaan
data, data tersebut harus di enkripsi sebelum dikirimkan dan kemudian sebelum
disajikan kepada user, data tersebut harus kembali di dekripsi.
7. Application layer
Layer ini merupakan layer yang langsung berinteraksi dengan user. Layer ini
menyediakan interface kepada user agar dapat menggunakan aplikasi – aplikasi yang
kita buat.
2.1.6
TCP/IP Model
Model ini pertama kali dikembangkan oleh departemen pertahanan amerika
untuk tujuan kemiliteran. Pada perkembangan selanjutnya, protokol ini paling banyak
digunakan untuk komunikasi antar jaringan.
9
2.1.6.1 Layer
Model ini biasanya digambarkan memiliki empat layer dan mengesampingkan detail
mengenai beberapa layer yang ada pada OSI model. Layer – layer tersebut antara lain:
1. Data Link Layer
Data link layer yang juga biasa disebut link layer atau network interface layer
memiliki device driver yang bekerja pada sistem operasi dan juga network interface
card. Keduanya terdapat pada data link layer dan bertugas untuk menangani masalah
yang berhubungan dengan hardware dan masalah fisik lainnya.
2. Network Layer
Network layer biasa juga disebut internet layer. Layer ini bertugas untuk menangani
pergerakan paket dan juga mengarahkan paket ke tujuan. Pada model TCP/IP, terdapat
beberapa protokol yang bekerja pada layer ini. Salah satunya IP (Internet Protocol),
ICMP (Internet Control Message Protocol), dan IGMP (Internet Group Management
Protocol ).
3. Transport layer
Transport layer memberikan layanan berupa pengaturan aliran data antara dua
device. Pada layer ini terdapat dua protokol yaitu UDP (User Datagram Protocol) dan
TCP (Transmission Control Protocol).
4. Application layer
Model TCP/IP menggabungkan presentation layer pada OSI model ke dalam
application layer. Pada layer ini, beberapa protokol yang bertugas menyiapkan data
sebelum sampai ke user antara lain File Transfer Protokol (FTP), Telnet, Simple Mail
10
Transfer Protocol (SMTP). Selain itu layer ini juga bertugas menyediakan user interface
seperti web browser kepada user.
2.1.6.2 Transmission Control Protocol (TCP)
Transmission Control Protocol (TCP) merupakan connection oriented protocol
dimana suatu connection harus dibangun sebelum dapat mengirim atau menerima data.
Berikut ini sekenario yang menunjukkan bagaimana TCP membangun dan juga
mengakhiri connection.
Untuk menetapkan atau membangun connection pada TCP, dikenal three-way
handshake. Berikut bagaimana skenario dari three-way handshake yaitu:
1. Server mempersiapkan diri untuk menerima permintaan connection yang akan
datang. Biasanya server menjalankan socket, bind dan listen dan proses ini
disebut passive open.
2. Client melaksanakan apa yang disebut active open dengan menjalankan perintah
connect. Perintah ini akan menyebabkan TCP akan mengirim “synchronize”
(SYN) yang akan memberi tahu kepada server awal nomor urut dari data yang
akan dikirm oleh client.
3. Server harus melakukan “acknowledge” (ACK) sebagai balasan dari synchronize
client dan kemudian mengirimkan synchronizenya sendiri. Server akan
mengirimkan keduanya baik ACK dan SYN dalam satu segmen.
4. Client akan melakukan acknowledge terhadap synchronize dari server.
11
Sementara untuk memutuskan connection dilakukan langkah – langkah sbb :
1. Salah satu aplikasi akan menjalankan perintah close dimana kita sebut sebagai
active close. Perintah ini akan menyebabkan TCP akan mengirimkan segment
FIN yang maksudnya aplikasi tersebut sudah selesai mengirimkan data (finish).
2. Aplikasi yang menerima FIN disebut dengan passive close. Aplikasi ini akan
mengirimkan ACK sebagai balasan dari FIN dan juga mengirimkan end-of-file
ke aplikasinya sendiri.
3. End-of-file yang di diterima oleh aplikasi akan mengaktifkan perintah close yang
mengakibatkan TCP akan mengirimkan FIN.
4. Aplikasi yang menerima FIN penutup itu akan men-acknowledge FIN tersebut.
Dengan adanya connection yang dibangun antara dua node ini, TCP dapat
mengontrol data, mengecek error, me-recovery data dan menjamin keamanan data dari
kerusakan.
2.1.6.3 Telnet
Salah satu protokol TCP/IP adalah telnet. Telnet memungkinkan seorang user
untuk mengakses sebuah komputer melalui jaringan intranet. Telnet membangun
koneksi TCP kemudian mengirim inputan dari keyboard user ke remote komputer.
12
2.1.6.4 File Transfer Protocol (FTP)
File Transfer Protocol (FTP) merupakan metode populer untuk mentransfer file
di antara komputer-komputer. Komunikasi FTP mengikuti model client-server dimana
klien memulai komunikasi dengan mengirim perintah, dan server menanggapi dengan
pesan dan kode-kode status, termasuk melakukan pengiriman atau penerimaan file. FTP
bekerja dengan TCP dan umumnya digunakan di internet, meskipun dapat juga
diimplementasikan dalam lingkungan LAN.
Protokol FTP mengizinkan transaksi file dua-arah, dimana file-file dapat dikirim
ke atau dari sebuah server.
File merupakan salah satu bentuk penyimpanan jangka panjang. Pengiriman file
menjadi rumit karena internet terhubung dengan berbagai jenis system yang berbeda–
beda. Oleh karea itu, software yang mengirimkan file harus dapat menangani perbedaan
mengenai bagaimana masing–masing system menyimpan file. Selain itu juga akan
muncul masalah kepemilikan data dan juga penamaan file.
Berikut beberapa karakteristik dari FTP :
- Arbitary File Contents, FTP mengizinkan pengiriman data apa saja.
- Authentication dan Ownership, FTP memiliki suatu cara yang memungkinkan
file memiliki kepemilikan dan batasan – batasan dalam pengaksesannya.
- Accommodates Heterogeneity, FTP menyembunyikan detail dari sebuah system
komputer sehingga FTP dapat mengirimkan file ke komputer mana saja.
13
2.1.6.5 Internet Addresses
Setiap interface dalam internet harus memiliki alamat yang disebut internet
address yang unik. Saat ini internet address yang umum digunakan adalah internet
address dari IP versi empat (IPv4) dimana alamat ini ukurannya tiga puluh dua bit dan
setiap bit dipisahkan oleh titik “.”. Masing–masing bagian yang dipisahkan oleh titik
disebut oktet. Untuk desimalnya, masing masing oktet memiliki nomor mulai dari 0
sampai dengan 255.
2.1.6.6 Port
Dalam satu waktu, sebuah device bisa saja menjalankan berbagai beberapa
proses sekaligus. Masing–masing proses mungkin bisa menggunkan protokol dari
transport layer misalnya TCP atau UDP. Untuk bisa membedakan satu proses dan
proses lainnya di jaringan, digunakan port number. Port number memiliki ukuran 16 bit
sehingga penomoran yang memungkinkan yaitu mulai dari 0 sampai dengan 65535.
Penggunaan nomor pada port diatur oleh Internet Assigned Number Authority
(IANA). Berikut pengaturan yang dilakukan oleh IANA :
1. Well-know ports : 0 sampai dengan 1023
Penomoran dan penggunaan port – port ini diatur sepenuhnya oleh IANA. Jika
diperlukan, sebuah port bisa di manfaatkan oleh TCP dan UDP sekaligus.
2. Registered port : 1024 sampai dengan 49151
IANA tidak sepenuhnya mengatur penggunaan port – port ini, tetapi IANA
menyediakan port ini untuk dimanfaatkan oleh perusahaan atau komunitas – komunitas.
14
3. Dynamic atau private port : 49152 sampai dengan 65535.
IANA tidak mengatur port – port ini. Port ini bisa dengan bebas digunakan dan biasanya
disebut ephemeral port.
2.1.6.7 Socket
Socket merupakan dua nilai yang mengidentifikasi sebuah end point. Nilai
tersebut biasanya adalah IP address dan port. Selain itu dikenal juga socket pair yang
memiliki empat nilai yang mengidentifikasikan socket local dan socket asing. Masing–
masing IP addres lokal, port local, IP address asing dan port asing yang
mengidentifikasikan sebuah koneksi TCP dalam sebuah jaringan.
2.1.7
Client-server model
Kebanyakan dari aplikasi yang dibuat untuk jaringan akan menganggap satu
pihak adalah client dan yang lainnya adalah server.
Bagian server dapat digambarkan sebagai berikut:
-
Passive
-
Menunggu permintaan atau perintah.
-
Ketika perintah datang, server akan mengirimkan balasan
-
Tugas utamanya menyediakan layanan untuk client.
15
Sedangkan bagian client yaitu:
-
Active
-
Memberi perintah
-
Menunggu balasan atau layanan dari server.
Kita dapat mengkategorikan server kedalam dua golongan : iterative atau
concurrent. Golongan iterative memiliki tahap – tahap sebagai berikut :
I1. Menunggu perintah dari client.
I2. Menjalankan perintah client.
I3. Mengirimkan hasil yang diminta client.
I4. Kembali ke tahap I1.
Pemasalahan iterative-server adalah adanya kebutuhan waktu di tahap I2 dimana
selama itu, server tidak dapat menerima client lain.
Sedangkan concurrent server memiliki tahapan sebagai berikut:
C1. Menunggu perintah dari client.
C2. Menjalankan server yang baru untuk menangani permintaan client. Ini
akan melibatkan pembuatan proses, task atau thread baru tergantung dari
sistem operasinya. Server yang baru ini akan menangani seluruh
permintaan dari client dan ketika sudah selesai, server yang baru ini akan
di berhentikan.
C3. Kembali ke C1.
16
Keuntungan dari concurrent server adalah server akan membiarkan server lain
untuk menanggani permintaan dari client sehingga setiap client akan ditangani oleh satu
server.
2.2 Database
2.2.1
Structure Query Language (SQL)
SQL merupakan bahasa pokok yang memungkinkan pengguna komputer dapat
berkomunikasi dengan database. SQL sangat powerful karena dengan SQL kita dapat :
-
Memanipulasi database.
-
Mencari data dalam database.
-
Memanipulasi data dalam database.
Bagian dari SQL yang berhubungan dengan manipulasi database disebut DDL
(Data Definition Language) dan bagian yang berhubungan manipulasi data dalam
database disebut DML (Data Manipulation Language).
Statement SQL yang umum digunakan adalah SELECT. Statement SELECT
memiliki sintaks sbb :
SELECT [ALL|DISTINCT] < [table].columnA, [table].columnB>
FROM <tables>
WHERE <filters>
GROUP BY <coloumn digunakan untuk menggabungkan record –record>
17
HAVING < filters pada record yang di group>
ORDER BY <coloumn yang ingin di urutkan >
Statement ini memungkinkan user untuk mengakses data pada database dengan
sangat fleksibel.
Selain statement SELECT, masih banyak statement–statement lain, misalnya
statement yang digunakan untuk meng-update database seperti INSERT, UPDATE,
DELETE, dan sebagainya.
2.2.2
Open Database Connectivity (ODBC)
ODBC merupakan usaha dari microsoft untuk memungkinkan pengaksesan
berbagai macam database yang tergabung dalam sebuah driver. Karena ODBC sudah
cukup lama, maka berbagai driver yang lebih efisien telah di kembangkan dan database
–database yang umum digunakan dapat dijalankan termasuk diantaranya :
-
Microsoft SQL Server
-
Oracle
-
Sybase SQL Server
-
Microsoft Access
ODBC mencoba untuk menyembunyikan perbedaan antara berbagai jenis
database dengan menyusun tiga buah layer antara data dan aplikasi yang menggunakan
data. Ketiga layer tersebut adalah :
-
ODBC API ( Application Programming Interface )
18
-
Driver Manager
-
Driver
ODBC API adalah kumpulan dari fungsi – fungsi yang memungkinkan program
berkomunikasi dengan driver manager. Sementara driver manager sendiri menerima
perintah dari program dan melemparnya ke driver tertentu sesuai dengan databasenya.
Driver bertanggung jawab untuk menangani komunikasi antara driver management dan
data yang sebenarnya. Aplikasi membangun koneksi dengan database tertentu dengan
menggunakan sebuah connection string. String ini mengacu ke database tertentu dengan
data source name atau DSN, dan juga berisikan identitas user dan password.
2.3 Thread
Untaian-untaian eksekusi dalam sebuah proses disebut thread. Dalam kata
lainnya, thread merupakan urutan kontrol dalam sebuah proses. Sebuah proses paling
tidak memiliki sebuah thread. Sebuah proses bisa saja memiliki lebih dari satu thread
yang biasa disebut multithreading.
Tiap thread dalam sebuah proses tidak independent seperti proses yang satu
dengan yang lain. Setiap thread memiliki addres space yang sama, yang berarti mereka
juga mengakses global variable yang sama. Selain itu mereka juga berbagi open file,
child prosesses, alarms, signal dll.
Berikut alasan kenapa kita menggunakan thread :
-
Thread dapat berbagi addres space dan seluruh data diantara mereka sendiri.
Kemampuan ini sangat penting untuk beberapa aplikasi.
19
-
Thread lebih mudah untuk dibuat dan dihancurkan dari pada proses.
-
Thread memungkinkan seorang user tetap melakukan input output pada saat
CPU sedang melakukan computing.
2.4 Diagram
Object dalam suatu sistem merubah keadaannya sebagai respon atas kejadian dan
waktu. Berikut diagram – diagram yang menggambarkan bagaimana respon dari suatu
object terhadap kejadian dan waktu.
1. State diagram
State diagram menggambarkan perubahan keadaan dari suatu object berdasarkan
suatu triger event (kejadian), akhir dari suatu aksi, kegiatan dalam sebuah state
(triggerless even ) dan kondisi tertentu (guard condition).
2. Time diagram
Time diagram, menggambarkan perubahan keadaan dari subatu object seiring
berjalannya waktu.
20
Download