5
BAB II LANDASAN TEORI
2.1
Rekayasa Perangkat Lunak Perangkat Lunak adalah : 1. Kumpulan instruksi atau program untuk komputer. 2. Struktur dari data yang berbentuk program dan tugasnya untuk memanipulasi informasi. 3. Dokumen yang berbentuk operasi-operasi atau instruksi-instruksi. 4. Suatu aplikasi program komputer yang didalamnya terdapat: program itu sendiri, konfigurasi yang digunakan, dokumentasi yang menjelaskan struktur sistem serta menjelaskan bagaimana megunakan sistem dan informasi tentang versi terbaru.
Pengertian Rekayasa Perangkat Lunak: 1. Pada seminar Fristz Baur [NAU69] mengusulkan rekayasa perangkat lunak adalah pengembangan dan penggunaan prinsip pengembangan suara untuk memperoleh perangkat lunak secara ekonomis yang reliabel dan bekerja efesien pada mesin nyata. 2. IEEE [IEE93](A) Aplikasi dari sebuah pendekatan kuantiabel, disiplin, dan sistimatis kepada pengembangan, operasi dan pemeliharaan perangkat lunak; yaitu aplikasi dari rekayasa perangkat lunak. (B) Studi tentang pendekatan-pendekatan seperti kuantiafabel, disiplin dan sistimatis kepada pengembangan , operasi dan pemeliharaan perangkat lunak.
5
6
2.1.1
Pandangan Umum Tentang Rekayasa Perangkat Lunak Kegiatan Rekayasa Perangkat Lunak dapat dikategorikan dalam 3 fase
umum tanpa memandang area aplikasi, ukuran proyek atau kompleksitas. Fase tersebut yaitu: 1.
Definition Phase Merupakan fase awal dari proses pengerjaan perangkat lunak. Pada fase ini, pengembang perangkat lunak melakukan kegiatan identifikasi yang meliputi : informasi apa saja yang harus diproses, fungsi dan kinerja yang digunakan, tingkah laku sistem yang diharapkan, interface yang harus dibuat, kendala desain yang ada, serta kriteria validasi yang diperlukan untuk mendefinisikan keberhasilan sistem.
2. Development Phase Pada fase ini menerjemahkan keperluan yang telah dianalisis ke dalam bahasa pemrograman yang telah ditentukan. Kegiatan yang dilakukan adalah mendefinisikan bagaimana : data disusun, fungsi bisa diimplementasikan sesuai dengan arsitektur software, detik prosedur untuk implemetasi, karakter interface, hasil desain bisa ditranslasikan ke bahasa pemrograman dan cara pengujiannya. Ada tiga aktivftas teknis yang selalu terjadi: •
Desain
•
Software
•
Pembuatan Program Pengujian Software
3. Maintenance Phase Pada fase ini, perangkat lunak telah selesai dan kegiatan difokuskan pada perubahan yang berkaitan dengan adanya koreksi kesalahan, adaptasi dan pengembangan yang dikehendaki user. Ada 4 tipe perubahan: •
Correction, yaitu : mengubah perangkat lunak untuk memperbaiki kesalahan-kesalahan yang ada.
•
Adaption, yaitu : modifikasi yang dilakukan terhadap perangkat lunak dikarenakan adanya perubahan lingkungan eksternal (misal: CPU, sistem operasi, aturan bisnis, karakter produk eksternal).
7
•
Enhancement, yaitu : saat perangkat lunak dipakai, user meminta tambahan-tambahan fungsi. Sehingga software dikembangkan dari kebutuhan semula.
•
Prevention / sering disebut software re-enginering, yaitu: harus dilakukan untuk memungkinkan perangkat lunak bisa sesuai dengan keinginan end user. Pada fase ini dilakukan perubahanperubahan ke program komputer, sehingga program tersebut bisa dikoreksi, beradaptasi dan dikembangkan dengan mudah [1].
2.1.2
Proses Perangkat Lunak Sebuah kerangka kerja proses umum dibangun dengan mendefinisikan
sejumlah kecil aktivitas kerangka kerja yang bisa siap diaplikasikan ke semua proyek perangkat lunak, tanpa melihat ukuran atau kompleksitasnya. Sejumlah task setiap koleksi rekayasa pernagkat lunak mengerjakan tugas-tugas, tonggak proyek, hasil usaha perangkat lunak dan bisa dipesan, serta titik jaminan kualitas memungkinkan aktifitas kerja disesuaikan dengna karkteristik proyek perangkat lunak dan kebutuhan tim proyek. Akhirnya, aktifitas pelindung seperti jaminan kualitas perangkat lunak, manajemen konfigurasi perangkat lunak lampiran model proses. Rekayasa perangkat lunak Institut[SEI] telah mengembangkan model koperhensif yang didasarkan atas sekumpulan kapabilitas rekayasa perangkat lunak yang harus ada sebagai organisasi yang mencapai tingkat kematangan proses yang berbeda. Pendekatan SEI memberikan sebuah pengukuran terhadap efektifitas global dari sebuah praktek perekayasaan perangkat lunak perusahan dan membangun lima tingkatan proses, yang didefinisikan dengan cara berikut: 1. Level 1 : Initial - Proses perangkat lunak yang ditandai sebagai ad hoc, dan bahkan kadang-kadang bersifat kacau (chaotic). 2. Level 2 : Repeatable - Proes-proses manajemen proyek dasar dibangun untuk menelusuri maslah biaya, jadwal, dan fungsional. Disiplin proses
8
yang perlu ada untuk mengulangi sukses-sukses proyek yang terdahulu dengan penerapan yang sama. 3. Level 3 : manajemen
Defined – Proses perangkat lunak, baik untuk aktivitas atau
perekayasaan
didokumentasi,
distandarkan,
dan
integrasikan kedalam proses perangkat lunak organisasi besar. 4. Level 4 : Managed – Pengukuran detail terhadap proses perangkat lunak dan kualitas produksi dikumpulkan. Produk dan proses perangkat lunak dipahami secara kuantitatif dan dikontrol dengan menggunakan cara pengukuran secara detail. 5. Level 5 : Optimizing – Pertambahan proses yang terus menerus dimungkinkan oleh umpan balik kuantitatif dari proses dan dari gagasan inovatif pengujian serta teknologi. Lima tingkat yang didefinisikan oleh SEI ini disimpulkan dari sebuah konsekunsi respon evaluasi ke assment questionaire yang didasari pada CMM. Hasil dari kuesioner tersebut didestilasi menjadi sebuah tingkatan numeric tunggal yang memberikan identifikasi terhadap kematangan proses organisasi.
2.1.3
Model Proses Perangkat Lunak Untuk menyelesaikan masalah actual di dalam sebuah seting instruksi,
rekayasa perangkat lunak atau tim rakayasa harus menggabungkan srategi pengembangan yang melingkupi lapisan proses, metode, dan alat bantu. Model proses untuk rekayasa perangkat lunak dipilih berdasarkan sifat aplikasi dan proyek, metode alat – alat bantu yang akan dipakai dan kontrol serta yang dibutuhkan, model proses perangkat lunak yang akan digunakan dalam penulisan ini adalah model sekuensial linier.
2.1.4
Model Sekuensial Linier Sekuensial Linier mengusulkan sebuah pendekatan kepada perkembagan
perangkat lunak yang sistematik dan sekuensial yang mulai pada tingkatan dan
9
kemajuan sistem pada seluruh analisa, desain, kode, pengujian, dan pemeliharaan. Gambar 2.1 menggambarkan sekunsial linier dimodelkan setelah.
Gambar 2.1 Model sekunsial linier
Siklus rekayasa konvensional, model sekuensional linier melingkupi aktivitasaktivitas sebagai berikut: 1. Rekayasa dan pemodelan sistem/informasi. Karena perangkat lunak selalu merupakan bagian dari sebuah sistem (bisbis) yang lebih besar, kerja dimulai dengan membangun syarat dari semua elemen sistem dan mengalokasikan beberapa subset dari kebutuhan keperangkat lunak tersebut. Pandangan sistem ini penting ketika perangkat lunak harus berhubungan dengan elemen-elemen yang lain seperti perangkat lunak, manusia, dan data base. Rekayasa dan analisa sistem menyangkut pengumpulan kebutuhan pada tingkat sistem dengan sejumlah kecil analisa serta didesain tingkat puncak. Rekayasa informasi mencakup juga pengumpulan kebutuhan pada tingkat bisnis setrategi dan tingkat area bisnis. 2. Analisa kebutuhan perangakat lunk. Proses pengumpulan kebutuhan diintensifkan dan difokuskan, khususnya pada perangkat lunak. Untuk memahami sifat program yang dibangun, perekayasa perangkat lunak (analis ) harus memahami domain informasi, tingkah laku, unjuk kerja, dan antar muka (interface) yang diperlukan. Kebutuhan baik untuk sistem
10
maupun perangkat lunak di dokumentasikan dan dilihat lagi dengan pelangan. 1. Desain.
Desain
perangkat
lunak
sebenarnya
adalah
proses
multilangkah yang berfokus pada empat atribut sebuah program yang berbeda; struktur data, arsitektur perangkat lunak, representasi interface, dan detail (algoritama ) prosedural. Proses desain menerjemahkan syarat/ kebutuhan kedalam sebuah representasi perangkat lunak yang dapat diperkirakan demi kualitas sebelum dimulai pemunculan kode. 2. Kode. Desain harus diterjemahkan kedalam bentuk mesin yang bisa dibaca. Langkah pembuatan kode melalui langkah ini. Jika desain dilakukan dengan cara yang lengkap, pembuatan kode dapat diselesaikan secara mekanis. 3. Pengujian. Sekali kode dibuat, pengujian program dimulai. Proses pengujian berlaku pada logika internal perangkat lunak, memastikan bahwa semua pertanyaan sudah diuji, dan pada eksternal fungsional yaitu mengarahkan pengujian untuk menemukan kesalahan – kesalahan dan memastikan bahwa input yang dibatasi akan memberikan hasil aktual yang sesuai dengan hasil yang dibutuhkan. 4. Pemeliharaan. Perangkat lunak akan mengalmi perubahan setelah disampaikan kepada pelanggan ( perkecualian yang mungkin adalah perangkat lunak yang dilekatkan). Perubahan akan terjadi karena kesalahan- kesalahan ditentukan, karena perangkat lunak harus disesuaikan untuk mengakomodasi perubahan – perubahan didalam lingkungan eksternalnya [1].
2.1.5
Rekaya Perangkat Lunak Client/Server Evolusi arsitektur komputer telah memungkinkan perekayasa sistem dan
perekayasa perangkat lunak megembangkan cara baru untuk menyusun kerja dan memproses informasi dalam suatu organisasi. Struktur organisasi baru dan cara
11
pengolahan informasi baru, misal “decision supporting system”
(sistem
penunjang keputusan), groupware, dan pencitraan/imaging, menjadi lambang perpisahan mencolok dari teknologi mainframe sebelumnya dan mini teknologi berbasis mini komputer. Arsitektur pengkomputeran yang baru telah menyediakan teknologi yangmemungkinkan organisasi-organisasi untuk membongkar ulang proses bisnisnya. Dalam penulisan ini memberikan gambaran arsitektur baru yang domain dalam pengelolaan data, yakni sistem client/server (sistemC/S). C/S telah muncul seiring kemajuan dalam desktop computing, teknologi storage baru, jaringan komunikasi yang telah maju dan teknologi data base yang maju dengan tujuan menyajikan pandangan singkat tentang C/S.
2.1.6
Struktur Sistem Client/Server Teknologi perangkat keras, perangkat lunak, data base, dan komunikasi
jaringan semuanya memberikan kontribusi pada arsitektur komputer kooperatif dan terdistribusi, seperti ditunjukan pada gambar 2.2. Root sistem, khususnya mainframe, berfungsi sebagai respositori untuk data koporat. Mainframe tersebut dihubungkan dengan server (biasanya workstation yang kuat atau pc) yang punya dua peran. Server bertindak untuk memperbaharui dan meminta cooperate data yang disimpan oleh mainframe. Server juga menjaga sistem bagian lokal dan memainkan peran kunci dalam jaringan pc tingkat pemakai lewat jaringan wilayah lokal (lan). Dalam struktur c/s, komputer yang tingkatnya diatas komputer yang lain (Gambar 2.2) disebut server, dan komputer yang dibawah disebut client. Client meminta pelayanan dan server melayaninya. Tetapi dalam konteks arsitektur yang ditunjukkan Gambar 2.3, sejumlah implemntasi lain dapat juga dicapai [ORF94].
12
Gambar 2.2 Arsitektur komputer yang kooperatif
•
File server. Client meminta record spesifik dari satu file. Server mengirim record tersebut ke client lewat jaringan.
•
Data bese server. Client mengirim permintaan SQL ke server, yang kemudian ditransmisikan sebagai pesan lewat jaringn. Server mengelola permintan SQL dan mencari informasi yang diminta, lalu mengirim hasilnya ke client.
Gambar 2.3 Pilihan arsitektur client/server
13
•
Transaction server, client mengirim permintan yang membangkitkan prosedur remote pada tempat server. Prosedur remote dapat berupa serangkaian statmen SQL. Transaksi berlangsung ketika permintan tersebut menyebabkan prosedur remote dan transmisi hasilnya sampai kembali ke client.
•
Group ware server, GS muncul saat server menyediakan serangkaian aplikasi yang memungkinkan adanya komunikasi antar client ( dan orang yang memakainya) dengan menggunakan text, image/citra, bulletin, video dan bentuk lain [2].
2.2
Delphi Borland Delphi 7.0 adalah suatu bahasa pemograman yang terintegrasi
berbasis Windows. Borland Delphi 7.0 yang sering disebut Delphi 7.0 dapat digunakan untuk membangun sebuah aplikasi sederhana, aplikasi data base (stand alone atau client/server) sampai dengan aplikasi berbasi internet. Delphi 7.0 memiliki berbagai tool sehingga memudahkan pengguna untuk membangun aplikasi. Tool yang tesedia didalam IDE (Integrated Development Enviorment ) tergantung pada edisi Delphi 7.0. Bahasa pemograman Delphi merupakan pengembangan dari bahasa Pascal. Bila sudah memahami bahasa pemrograman Pascal, berarti akan lebih mudah dan cepat menguasai bahasa pemrograman Delphi.
2.2.1 Jenis Tipe Data Delphi Tipe Data sangat penting dan harus diperhatikan dalam pembuatan program, karena bila salah dalam menentukan tipe data, maka komputer juga akan terjadi error (kesalahan ) dan tentunya program tidak bisa berjalan. Untuk dapat mempermudah dalam penulisan perlu diketahui tipe data sebagai berikut:
14
•
Tipe Integer, digunakana untuk menyatakan bilangan yang tidak memiliki desimal, tabel berikut memberikan tipe-tipe bilangan integer beserta jangkauan dan memori yang diperlukan.
Tabel 2.1 Tipe Integer Tipe
Jangkauan
Memori (byte)
Byte
0-255
1
Word
0-65535
2
ShortInt
-128-127
1
SmallInt
-32768-32767
2
Integer
-2147483648-
4
21474834647 Cardinal
0-2147483647
4
LongInt
-2147483648 - 4 2147483647
•
Tipe Real. Tipe data real dipakai untuk menyimpan bilangan yangmempunyai desimal, biasanya tipe data ini digunakn dalam membuat aplikasi-aplikasi yang membutuhkan ketelitian sampai tingkat desimal. Tabel berikit ini merupakan tipe-tipe bilangan real. Tabel 2.2 Tipe Real
Tipe
Jangkauan
Memori(byte)
Real
± 2.9 *10 −39 − ±1.7 *10 −38
6
Single
± 1.5 * 10 −45 − ±3.4 *10 38
4
15
•
Double
± 5.0 *10 −324 − ±1.7 * 10 308
8
Extended
± 3.4 *10 −4932 − ±1.1 *10 −4392
10
Comp
− 2 63 − 2 63 − 1
8
Tipe Bolean, dipakai untuk menyatakan nilai logika, variabel tipe ini
hanya TRUE atau FALSE. Mungkin untuk kompabilitas pada keadaan tertentu windows memerlukan nilai Boolean yang ukurannya satu word, namun variabel tipe Boolean dapat menerima operator AND, OR, dan NOT.
Tabel 2.3 Tipe Bolean
•
Tipe
Memori
Boolean
1
ByteBool
1
Bool
2
WordBool
2
LongBool
4
Tipe Character, dipakai untuk menyimpan satu huruf (satu digit)
sebuah karakter berukuran satu byte, jika anda menghitung 2 8 hasilnya adalah 256, ini berarti ada 256 karakter berbeda yang dapat mengisi sebuah variable tiap karakter. Dalam Delphi tipe Char (dalam turbo pascal), sama dengan tipe ANSIChar (karakter ANSI 8-bit). Tipe WideChar adalah tipe karakter dengan 16-bit sama seperti Boolean.
16
Tabel 2.4 Tipe Char
•
Tipe
Ukuran(byte)
Isinya
ANSIChar
1
1 karakter ANSI
WideChar
1
1 karakter Unicode
Char
1
Sama dengan WideChar
Tipe String, adalah sederetan karakter yang membentuk kesatuan, tipe
string lebih banyak gunanya bila dbanding dengan tipe karakter. Tipe data String ini dapat digunakan untuk menyimpan data nama, alamat, kota, dan lain-lain. Untuk lebih rinci perhatikan tabel berikut ini: Tabel 2.5 Tipe String
2.2.2
Tipe
Panjang
Isi
ShortingString
225
ANSIChar
ANSIString
Sampai 3GB
ANSIChar
String
255 Sampai 3GB
ANSIChar
WideString
Sampai 1.5 GB
WideChar
Exception
Salah satu kelebihan yang dimiliki delphi adalah kemampuannya untuk menenganai exeption. Exeption adalah sebuah
istilah pemrograman yang
mengacu pada perkecualian yang diakibatkan kesalahan pada waktu menjalankan program dan tidak diketahui atau didefinisi pada waktu kompilasi. Exception sendiri dapat diatasi dengan suatu cara yang disebut dengan resurce protection, yaitu suatu metode untuk melindungi sumber daya program. Lebih jauh lagi cara tersebut dinamakan dengan exception handling (penangan pengecualian). Ada dua macam resource protection dalam delphi, yaitu dengan :
17
•
Blok try-except. blok ini digunkan untuk menjalankan suatu blok
perintah dan mencegah delphi agar tidak menampilkan pesan kesalahan sendiri, bila terjadi exeption maka semua baris pada bagian try akan dijalankan namun bagian except tidak dijalankan. Bila terjadi exeption maka baris setelah baris dimana terjadi exception tadi (pada
bagian try ) tidak akan dijalankan, namun proses eksekusi program dilanjutkan kebagian except •
Try…Finally. Blok try-finally digunakan untuk menjalankan suatu
blok pernyataan dan selalu menjalankan bagian finally apapun yang terjadi (terjadi exception atau pun tidak ). Hal ini biasanya berguna untuk memberikan finalisasi (pemberian nilai akhir, atau yang harus selalu dikerjakan terakhir kali ). Blok ini sebenarnya tidak menangani exception, hanya menangani alur program agar apapun yang terjadi,
bagian finally selalu dikerjakan.
2.2.3
TCanvas Microsoft Windows dan Borland Delphi memberi kemampuan untuk
menggambar grafik, seperti geometris angka pada sebuah kontrol. Menggambar biasanya dilakukan pada objek khusus yang disebut kanvas. Seperti AnsiString kelas, objek kanvas tersedia di semua kontrol yang akan perlu gambar pada satu waktu atau yang lain. Pada kenyatannya, kanvas adalah turunan dari kelas TCanvas [8].
2.2.3.1 Menggambar Garis TCanvas membutuhkan dua pernyataan, x dan y, yang mewakili titik di
mana garis akan mulai. Untuk menarik garis dari titik A ke titik B, menggunakan TCanvas.LineTo () method. Metode ini juga membutuhkan dua pernyataan yang
menentukan titik akhir garis. Berikut adalah contoh yang menggunakan kedua metode dalam peristiwa OnPaint :
18
Kode 2.1 Potongan kode program OnPaint
Jika ingin menarik garis sendiri menggunakan mouse dari sebuah obyek, maka dapat digunakan pendeklarasikan beberapa variable bantu, suatu titik obyek yang akan menyimpan titik awal dari garis. Dua variabel ini dapat dinyatakan sebagai berikut:
Kode 2.2 Potongan kode program membuat garis
OnMouseDown, menarik garis dengan mengklik dan menahan mouse di mana
garis akan mulai dengan ini dapat digunakan untuk menggambar. Sebagai perintah dapat dapat menggunakan contoh program sebagai berikut:
Kode 2.3 Potongan kode program OnMouseDown.
19
OnMouseUp, berhenti menggambar garis dengan melepaskan mouse untuk
melaksanakan cara ini, dapat menggunakan titik yang telah dideklarasikan sebelumnya untuk memulai garis. Kemudian gunakan titik ini untuk membuat garis dan melepaskan mouse sebagai titik akhir dari garis. Yang bahkan dapat diimplementasikan sebagai berikut:
Kode 2.4 Potongan kode program OnMouseUp
2.2.3.2
Menggambar dan Warna
Menggambar dilakukan pada objek TCanvas menggunakan warna yang ditugaskan ke TPen objek. Sebuah contoh TPen selalu tersedia ketika Anda menggunakan kanvas karena dinyatakan anggota kelas TCanvas. Ini berarti bahwa, tidak seperti aplikasi Win32, anda tidak perlu secara eksplisit menciptakan objek pena. Dengan menggunakan kanvas, sebuah objek secara implisit TPen tersedia. Secara default, warna yang diberikan pada sebuah pena hitam. Oleh karena itu, garis di atas akan diambil dalam hitam. Untuk mengubah warna secara pemrograman dengan menghubungi anggota pena variabel dari kanvas sebelum menyelesaikan garis, dengan contoh sebagai berikut:
20
Kode 2.5 Potongan kode program menggambar dan mewarnai.
Menggambar garis sendiri, fitur yang digunakan dalam kemampuan memilih warna untuk garis gambar, VCL menyediakan kemampuan luar biasa dalam fitur ini. Paling sederhana dan termudah kontrol dapat digunakan untuk pemilihan warna adalah ColorGrid. ColorGrid menyediakan dua warna yang dipilih, namun ini dapat digunakan dengan cara yang lain. Sebagai contoh dapat menggunakan properti sebagai berikut :
Kode 2.6 Potongan kode program ColordGrid.
21
Gambar. 2.4 Menggambar dan mewarnai garis
2.3
Protokol Jaringan Komputer
Protokol merupakan suatu rule / aturan main yang mengatur komunikasi data. Dalam sebuah jaringan komputer, terjadi suatu proses komunikasi antar perangkat yang berlain sistemnya. Perangkat yang ada tersebut dapat mengirim dan menerima data. Untuk dapat mengirim dan menerima data dibutuhkan pengrian kedua belah pihak, pengertian inilah yang disebut protokol. Jadi, protokol dapat diartikan sebagai himpunan aturan main yang mengatur komunikasi data [3].
2.3.1
Dasar TCP/IP TCP/IP merupakan sekumpulan protokol yang melakukan fungsi
komunikasi data antar komputer dalam sebuah LAN( Lokal Area Network ) atau WAN( Wide Area Network ). Masing-masing protokol mempunyai tanggung
jawab sendiri sehingga tugasnya menjadi jelas dan sederhana, karena protokol
22
yang satu tidak perlu mengetahui cara kerja protokol yang lain. Gambar lapisan protokol terlihat pada gambar 2.5.
Lapisaan Aplikasi Lapisan Transport Lapisan Internet Lapisan Akses Jaringan Gambar 2.5 Lapisan TCP/IP
lapisan dan layanan yang berhubungan dengan TCP/IP sebagai berikut : •
Lapisan Network Interface (Network interface Layer) bertanggung
jawab mengirim dan menerima data kedan media fisik, media fisik bisa berupa kabel, serat optik, atau gelombang radio. Protokol ini harus bisa menerjemahkan sinyal listrik menjadi data digital yang dimengerti oleh komputer, berasal dari peralatan lain sejenis. •
Lapisan Internet (Internet Layer), bertanggung jawab dalam proses
pengiriman paket kealamat yang tepat, dalam layer ini terdapat 3 macam protokol yaitu : 1. IP (internet Protocol ) berfungsi menyampaikan paket data kealamat yang tepat. 2. ARP (Address Resolution Protocol ) berfungsi untuk menemukan alamat hardware dari host/ komputer yang terletak pada network yang sama. 3. ICMP (Internet Control Message Protocol) berfungsi untuk mengirim pesan dan melaporkan pengiriman data.
23
•
Lapisan
Transport
(Transport
berisi
layer)
protokol
yang
bertangggung jawab untuk mengadakan komunikasi antara dua host/komputer, kedua komputer itu adalah
TCP ( Transmission
Control Protokol ) dan UDP ( User Datagram Protokol ).
•
Lapisan Aplikasi(Aplication Layer) aplikasi ini terletak pada semua
aplikasi yang menggunakan protokol TCP/IP ini.
2.3.2
Pengalamatan IP
Pengalamatan menyampaikan
dalam
komputer
sangatlah
penting
karena
untuk
paket informsi data dalam sebuah jaringan komputer, maka
masing-masing komputer harus mempunyai ciri yang unik sehingga dapat dikenal dengan muah. Identifikasi tersebut dilakukan dengan memberikan IP Address ( yang biasanya terdiri dari bilangan 32 bit ) merupakan hal yang penting karena IP Address tersebut akan diletakkan dalam heder setiap paket data yang dikirim oleh
komputer satu kekomputer yanglain, serta digunakan untuk menentukan rute yang akan dilalui oleh paket data [3]. Dalam Ip address ada 5 kelas diantaranya kelas A, kelas B, kelas C, kelas D dan kelas E. Semua itu didisain untuk kebutuhan jenis-jenis organisasi, kelas tersebut diantaranya sebagai berikut:
Kelas A
Dalam kelas A ini oktet (8 bit) pertama adalah netid. Di mana bit yang tertinggal pada netid kelas A ini adalah nol (0) semua. Secara teori, kelas A ini memiliki 27 jaringan atau 128 jaringan yang tersedia. Secara aktual hanya ada 126 jaringan yang tersedia karena ada 2 alamat yang disisakan untuk tujuan tertentu. Dalam kelas A, 24 bit digunakan sebagai hostid. Jadi secara teori pula setiap netid memiliki 224 host atau 16.777.216 host/router. Kelas A cocok untuk mendisain organisasi komputer yang jumlahnya sangat besar dalam jaringannya.
Kelas B
Dalam kelas B, 2 oktet digunakan sebagai netid dan 2 oktet sisanya untuk hostid. Secara teori pula, kelas B memiliki 214 netid atau 16.384 jaringan.
24
Sedangkan banyaknya host setiap jaringan
adalah 216 host atau 65.536
host/router. Dikarenakan ada 2 alamat yang akan digunakan untuk tujuan khusus, maka hostid yang tersedia efektif adalah sebanyak 65.534. Kelas B ini cocok untuk mendisain organisasi komputer dalam jumlah menengah.
Kelas C
Dalam kelas C, 3 oktet sudah dimiliki untuk netid dan hanya 1 oktet untuk hostid. Sehingga secara teori banyaknya jaringan yang bisa dibentuk oleh kelas C ini adalah 221 atau terdapat 2.097.152 jaringan. Sedangkan banyaknya host/router di setiap jaringan adalah 28 host/router atau setara dengan 256 host. Juga dikarenakan penggunaan 2 hostid untuk tujuan khusus maka hostid yang tersedia efektif adalah sebanyak 254 host atau router.
Kelas D
Khusus kelas D ini digunakan untuk tujuan multicasting. Dalam kelas ini tidak lagi dibahas mengenai netid dan hostid. Kelas E
Kelas E disisakan untuk pengunaan khusus, biasanya untuk kepentingan riset. Juga tidak ada dikenal netid dan hostid di sini. Secara keseluruhan penentuan kelas dapat dilihat di Gambar 2.6.
Gambar 2.6 Kelas-kelas dengan menggunakan notasi desimal
25
2.4
Internet Protocol (IP) Internet Protocol (IP) adalah mekanisme transmisi yang digunakan oleh
TCP/IP
yang
sifatnya
unreliable
dan
connectionless.
Banyak
yang
mengistilahkan dengan best effort delivery, artinya: bahwa IP menyediakan no error checking atau tracking. Jika diperlukan reliabilitas maka IP mesti
dipasangkan dengan protokol yang reliabel misalnya TCP. Contoh alama dari IP adalah, kantor pos mengirimkan surat tapi tidak selalu sukses dikirimkan. Jika surat tersebut tidak lengkap maka terserah pengirim ingin mengantarkannya atau tidak. Juga kantor pos tidak pernah menjejaki ke mana surat-surat yang jumlahnya jutaan itu terkirim [6].
2.5
Winsock (Windows Socket) Winsock merupakan sebuah API (Application Socket Programming) yang
dibuat oleh Microsoft, yang digunakan oleh aplikasi windows yang menggunakan jaringan kapabilites. Winsock terdiri dari kata Windows dan Socket. Winsock kebanyakan hanya versi yang kompatibel dengan Windows. Tabel berikut berisi daftar nilai-nilai yang mungkin untuk tipe yang didukung parameter untuk Windows Socket :
Tabel 2.7 Tabel windows socket Tipe
Fungsi
Sebuah tipe socket yang menyediakan sequencing, dapat SOCK_STREAM
diandalkan, dua-arah, koneksi stream berbasis byte dengan mekanisme
transmisi
data
OOB.
Jenis
soket
ini
menggunakan Transmission Control Protocol (TCP) untuk keluarga alamat Internet (AF_INET atau AF_INET6).
26
Sebuah tipe soket yang mendukung datagrams, yang, tidak SOCK_DGRAM
dapat
diandalkan
penyangga
yang
tetap
panjang
maksimum. Jenis soket ini menggunakan User Datagram Protocol (UDP) untuk keluarga alamat Internet (AF_INET atau AF_INET6). Sebuah tipe socket yang menyediakan soket mentah yang SOCK_RAW
memungkinkan sebuah aplikasi untuk memanipulasi berikutnya protokol lapisan atas. Memanipulasi header IPv4. Sebuah tipe socket yang menyediakan pesan yang dapat
SOCK_RDM
diandalkan datagram. Contoh jenis ini adalah General Pragmatis
Multicast
(PGM)
pelaksanaan
protokol
multicast di Windows, sering disebut sebagai multicast. SOCK_SEQPACKET
2.6
Sebuah tipe socket yang menyediakan proseudor-aliran paket berdasarkan datagrams.
Socket Socket (TCP/IP soket ) merupakan fasilitas IPC (Inter Proses
Comunication ) berfungsi penghubung sistem operasi satu dengan sistem operasi
lainnya seperti aplikasi client dan server. Socket juga sebuah abstraksi perangkat lunak yang digunakan sebagai
suatu "terminal" dari suatu hubungan antara dua mesin atau proses yang saling berinterkoneksi. Di tiap mesin yang saling berinterkoneksi, harus terpasang socket untuk aplikasi jaringan. Model komunikasi dengan soket digambarkan pada gambar 2.7.
27
Gambar 2.7 Socket
2.7
Model Aplikasi Client /Server dengan Protokol TCP
Model aplikasi yang menggunakan komunikasi soket dengan protokol TCP digambarkan pada gambar 2.7. Obyek socket pada sisi client dan server berbeda sedikit. Pada 7 sisi aplikasi server, suatu socket server dibentuk:
(1) Melakukan operasi listen, yaitu mendengarkan perintah yang akan disampaikan dari server. (2) Operasi ini pada intinya menunggu permintaan koneksi dari sisi client. Sedangkan pada sisi client, dibentuk suatu socket biasa.
Pada saat socket client. (3) Informasi alamat socket server dilewatkan sebagai argumen dan socket client akan otomatis mencoba meminta koneksi ke socket server. Pada saat permintaan koneksi client sampai pada server,
maka server akan membuat suatu socket biasa. Socket ini yang nantinya akan berkomunikasi dengan socket pada sisi client. Setelah itu socket server dapat kembali melakukan listen. (4) Untuk menunggu permintaan koneksi dari client lainnya. Langkah 4
ini
umumnya
hanya
dilakukan
jika
aplikasi
server
mengimplementasikan multithreading. Setelah tercipta koneksi antara client dan server, maka keduanya dapat saling bertukar pesan.
28
(5) Salah satu atau keduanya kemudian dapat mengakhiri komunikasi dengan menutup socket. (6) Menutup aplikasi adalah bagian akhir dari.
Gambar: 2. 8 Model aplikasi client/ server pada protokol TCP