PEMROGRAMAN JARINGAN
PEMROGRAMAN JARINGAN
By Antonius Rachmat C, S.Kom
Pemrograman Jaringan modern sekarang
ini berbasis pada model client/server. Pada sebagian besar kasus, server
biasanya mengirim data, sedangkan client menerimanya. Pembahasan tentang model Client/Server tidak
akan lepas dari konsep sistem terdistribusi.
Sebab client/server merupakan model dasar dari sistem
terdistribusi.
Pengertian “Sistem Terdistribusi”
"A system in which hardware or
software components located at networked computers communicate and coordinate
their actions only by message passing."
[Coulouris]
Dengan pembagian fungsi untuk tiap
komponen dalam suatu sistem, manfaatnya:
- Berbagi resource
- Berbagi beban kerja
- Tidak membedakan platform
- Meningkatkan efisiensi
Ada dua organisasi yang menstandarisasi
pemrograman jaringan dan protokol di internet, yaitu :
- Internet Engineering Task Force (IETF) : TCP/IP, MIME, dan SMTP
- World Wide Web Consortium (W3C) : HTTP, HTML, XHTML, MathML, dan XML
- Internet Engineering Task Force (IETF) : TCP/IP, MIME, dan SMTP
- World Wide Web Consortium (W3C) : HTTP, HTML, XHTML, MathML, dan XML
Dokumen-dokument IETF dipublikasikan
sebagai Internet drafts dan requests for comments (RFCs). RFCs and Internet
drafts berasal dari informational dokumen dari keinginan umum sampai
spesifikasi detail dari Internet protokol seperti HTTP.
Dokumen RFCs dipublikasikan jika
disetujui oleh Internet Engineering Steering Group (IESG) dari IETF. Semua
dokumen standar IETF yang disetujui adalah RFCs, tetapi tidak semua RFCs adalah
standar IETF. RFCs banyak terdapat di Internet, misalnya http://www.faqs.org/rfc/ dan http://www.ietf.org/rfc.html
RFC
|
Title
|
Maturity level
|
Requirement level
|
Description
|
RFC 791
RFC 919 RFC 922 RFC 950 STD 5 |
Internet Protocol
|
Standard
|
Required
|
The IP internet layer protocol.
|
RFC 768
STD 6 |
User Datagram Protocol
|
Standard
|
Recommended
|
An unreliable, connectionless transport layer protocol.
|
RFC 793
STD 7 |
Transmission Control Protocol
|
Standard
|
Recommended
|
A reliable, connection-oriented, streaming transport layer
protocol.
|
RFC
2821 |
Simple Mail Transfer Protocol
|
Proposed standard
|
Recommended
|
The application layer protocol by which one host transfers
email to another host. This standard doesn't say anything about email user
interfaces; it covers the mechanism for passing email from one computer to
another.
|
RFC 822
STD 11 |
Format of Electronic Mail Messages
|
Standard
|
Recommended
|
The basic syntax for ASCII text email messages. MIME is
designed to extend this to support binary data while ensuring that the
messages transferred still conform to this standard.
|
RFC 854
RFC 855 STD 8 |
Telnet Protocol
|
Standard
|
Recommended
|
An application-layer remote login service for command-line
environments based around an abstract network virtual terminal (NVT) and TCP.
|
RFC 959
STD 9 |
File Transfer Protocol
|
Standard
|
Recommended
|
An optionally authenticated, two-socket application layer
protocol for file transfer that uses TCP.
|
RFC 977
|
Network News Transfer Protocol
|
Proposed standard
|
Elective
|
The application layer protocol by which Usenet news is
transferred from machine to machine over TCP; used by both news clients
talking to news servers and news servers talking to each other.
|
RFC
1034 RFC 1035 STD 13 |
Domain Name System
|
Standard
|
Recommended
|
The collection of distributed software by which hostnames
that human beings can remember, like www.oreilly.com,
are translated into numbers that computers can understand, like 198.112.208.11. This STD defines how domain name
servers on different hosts communicate with each other using UDP.
|
RFC 1738
|
Uniform Resource Locators
|
Proposed standard
|
Elective
|
Full URLs like http://www.amnesty.org/
and ftp://ftp.ibiblio.org/pub/multimedia/chinese-music/Dream_Of_Red_Mansion/HLM04
.Handkerchief.au.
|
RFC 1808
|
Relative Uniform Resource Locators
|
Proposed standard
|
Elective
|
Partial URLs like /javafaq/books/
and ../examples/07/index.html used as values
of the HREF attribute of an HTML A element.
|
RFC 1939
STD 53 |
Post Office Protocol, Version 3
|
Standard
|
Elective
|
An application-layer protocol used by sporadically
connected email clients such as Eudora to retrieve mail from a server over
TCP.
|
RFC 1945
|
Hypertext Transfer Protocol (HTTP 1.0)
|
Informational
|
N/A
|
Version 1.0 of the application layer protocol used by web
browsers talking to web servers over TCP; developed by the W3C rather than
the IETF.
|
RFC
2045
RFC 2046
RFC 2047
|
Multipurpose Internet Mail Extensions
|
Draft standard
|
Elective
|
A means of encoding binary data and non-ASCII text for
transmission through Internet email and other ASCII-oriented protocols.
|
RFC 2068
|
Hypertext Transfer Protocol (HTTP 1.1)
|
Proposed standard
|
Elective
|
Version 1.1 of the application layer protocol used by web
browsers talking to web servers over TCP.
|
RFC 2373
|
IP Version 6 Addressing Architecture
|
Proposed standard
|
Elective
|
The format and meaning of IPv6 addresses.
|
RFC 2396
|
Uniform Resource Identifiers (URI): Generic Syntax
|
Proposed standard
|
Elective
|
Similar to URLs but cut a broader path. For instance, ISBN
numbers may be URIs even if the book cannot be retrieved over the Internet.
|
RFC 3501
|
Internet Message Access Protocol Version 4rev1
|
Proposed standard
|
Elective
|
Sedangkan
W3C hanya boleh terdiri dari perusahaan-perusahaan saja.
ARSITEKTUR CLIENT-SERVER
Client/Server dapat diartikan sebagai
kemampuan komputer untuk meminta layanan request
data kepada komputer lain. Komputer yang
meminta layanan disebut sebagai client,
sedangkan yang menyediakan layanan disebut sebagai server.
Pengertian lain, client melakukan
permintaan suatu informasi atau mengirim perintah ke server. Server akan
menerima permintaan dan perintah client. Kemudian server akan memproses
memproses berdasarkan permintaan tersebut, dan mengembalikan kepada client
sebagai hasil pemrosesan yang sudah dilakukan.
|

Arsitektur Model Client/Server
Service Request
adalah permintaan dari client baik berupa permintaan data maupun perintah ke server.
Service Response berupa balasan dari server atas permintaan dari client berupa hasil
proses.
Data yang diminta oleh client dapat
diambil dari database pada sisi server yang sering disebut database server,
seperi misalnya MySQL, PostgreSQL, Oracle, atau SQL Server.
Karakteristik
Client-Server:
v Client dan Server merupakan item
proses (logika) terpisah yang bekerja sama pada suatu jaringan komputer untuk
mengerjakan suatu tugas
v Service :
Menyediakan layanan terpisah yang berbeda
v Shared resource
: Server dapat melayani beberapa client pada saat yang sama dan mengatur
pengaksesan resource
v Asymmetrical Protocol : antara client dan server merupakan hubungan one-to-many. Client
memulai komunikasi dengan mengirim request ke server. Server menunggu
permintaan dari client. Kondisi tersebut juga memungkinkan komunikasi callback.
v Transparency Location : proses server dapat ditempatkan pada mesin yang sama atau terpisah
dengan proses client. Client/server akan menyembunyikan lokasi server dari
client.
v Mix-and-match
: tidak tergantung pada platform
v Message-based-exchange : antara client dan server berkomunikasi dengan mekanisme
pertukaran message.
v Encapsulation of service : message memberitahu server apa yang akan dikerjakan
v Scalability :
sistem C/S dapat dimekarkan baik vertikal maupun horisontal
v Integrity :
kode dan data server diatur secara terpusat, sedangkan pada client tetap pada
komputer tersendiri
MIDDLEWARE
Software yang berfungsi sebagai
lapisan konversi atau penerjemah. Juga sebagai konsolidator dan integrator.
Middleware saat ini dikembangkan untuk memungkinkan satu aplikasi berkomunikasi
dengan lainnya walaupun berjalan pada platform yang berbeda.
ARSITEKTUR SOFTWARE
-
Data,
menyediakan struktur dan fungsi untuk manipulasi informasi, yang terdiri dari
banyak objek data. Sebagai contoh : relational Database, file grafik, file
suara atau multimedia data stream
-
Processing, terfokus pada pemrosesan objek
data, yang biasanya disebut sebagai middleware.
- Presentation,
terfokus untuk membuat data tersedia untuk user dan menangani interaksi dengan
user. Ada dua
level :
Ø User interface
Ø Presentation management, menyediakan
operasi dasar untuk membangun dan mengontrol user interface di bawah kontrol
aplikasi. Meliputi : layanan tampilan, kontrol dialog dan API. Contoh :
X-Windows, MS Windows
KONSEP DASAR WEB
Hypertext Transfer Protocol (HTTP) adalah standar untuk
mendefiniskan bagaimana client berkomunikasi dengan server dan bagaimana data
ditransmisikan dari server kembali ke client.
1. URI (Uniform Resource Identifier)
Uniform Resource Identifier (URI) adalah kumpulan karakter dalam sintaks tertentu
yang mengidentifikasi sebuah resource. Resource bisa merupakan file di server
tapi juga bisa merupakan email address, berita, buku, host internet, dan
lain-lain.
Sintaks : scheme:scheme-specific-part
scheme bisa
berupa : data, file, http, ftp, gopher, mailto, news, telnet.
scheme-specific-part
bisa berupa : //authority/path?query
URI ada 2 yaitu :
-
URN (Uniform Resource Name)
Tujuan URN adalah menghandle resource yang dimirror pada banyak tempat
yang berbeda atau telah dipindah dari satu tempat ke tempat lain. URN
mengidentifikasi resource itu sendiri, bukan tempat resourcenya. Jika terdapat
sebuah URN, sebuah program FTP harus mengambil filenya dari mirror terdekat.
Sebuah URN memiliki format sebagai berikut urn:namespace:resource_name. Sebuah namespace
adalah nama dari koleksi dari resource. Sebuah resource_name adalah nama dari
resource dari sebuah koleksi. Contohnya, URN dari urn:ISBN:1565924851 mengindentifikasikan
sebuah ISBN dengan identifikasi 1565924851. Dan mengacu pada sebuah buku
misalnya bernama : Java Network Programming. Masing-masing sintaks tergantung
pada resource_name.ISBN namespace terdiri dari 10 atau 13 karakter, semuanya
adalah digit—dengan sebuah aturan bahawa karakter terakhir berupa huruf : X (baik
huruf besar / kecil).
-
URL (Uniform Resource Locator) : penunjuk ke suatu resource di Internet pada lokasi tertentu,
misal: http://www.oreilly.com/catalog/javanp3/
URL ada dua macam :
Ø Absolute
URL : contoh <img src=”http://www.ukdw.ac.id/ukdw.jpg”>
Ø Relative
URL : contoh <img src=”images/ukdw.gif”>
2. HTML, SGML, dan XML
HTML digunakan untuk
memformat dokumen web. HTML digunakan untuk presentasi data dan menyediakan linking
antar halaman.
SGML adalah ide untuk
mendeskripsikan sematik teks daripada penampilannya yang disebut juga Standard
Generalized Markup Language. SGML ditemukan pada pertengahan tahun 1970an oleh
Charles Goldfarb, Edward Mosher, dan Raymond Lorie di IBM. SGML merupakan
standar International Standards Organization (ISO), yaitu ISO 8879:1986.
XML adalah suatu bahasa Markup, yaitu bahasa yang berisikan
kode-kode berupa tanda-tanda tertentu dengan aturan tertentu untuk memformat
dokumen teks dengan tag sendiri agar dapat dimengerti. XML menyediakan format
untuk mendeskripsikan data terstruktur.
XML menyebabkan isi data mudah dimengerti dan memungkinkan pendefinisian
kumpulan tag yang tidak terbatas.
3. MIME (Multipurpose Internet Mail
Extensions), RFC 2045.
MIME adalah standar untuk
mengirim multipart, multimedia data melalui email di Internet. Data bisa berupa data biner, ASCII atau bukan
ASCII. MIME digunakan untuk mendeskripsikan isi file sehingga software client
dapat mengetahui perbedaan antara data.
Contoh : text/html,
text/css, image/gif, video/mpeg, application/zip.
RETHINGKING JAVA
- Siapkan java sdk yang bisa didownload dari http://java.sun.com
- Editor java bisa menggunakan teks editor apa
saja: notepad? edit plus? Kawa? Netbeans? Jbuilder? JCreator?
- Prinsip-prinsip dasar :
o
Satu
buah file java harus berekstensi .java, satu file boleh terdiri dari banyak
kelas, namun hanya bisa terdiri dari satu public class.
o
Nama
file java harus sama dengan nama public class nya. Misal nama public class adalah : public class
HelloWorld, berarti nama filenya adalah HelloWorld.java
o
Ingat
di Java case-sensitive, termasuk nama file dan folder nya. Java sangat memperhatikan susunan
folder/direktori, terutama untuk sebuah package.
o
Satu
buah class sederhana minimal ada kata kunci class nama_class. Sebuah class boleh tidak memiliki atribut dan
method. Sebuah aplikasi java harus
berupa class, dan jika di compile dengan javac akan menghasilkan file
berekstensi .class untuk masing-masing class yang ada.
o
Sebuah
class hanya dapat dieksekusi jika di dalamnya ada method public static void
main. Jika tidak ada method main maka
class tersebut hanya bisa dicompile dan tidak bisa dieksekusi.
o
Sintaks
java rata-rata mirip dengan bahasa C.
-
Terdapat
beberapa konvensi (aturan) dalam java:
o
nama
variabel primitif biasanya ditulis dalam huruf kecil. Contoh : int
o
nama
variabel berupa Object / Class ditulis dimulai huruf besar. Contoh : String,
Integer, Byte, Boolean.
o
nama
method untuk mengambil data bisanya diberi awalan getNamaMethod(), sedangkan
method untuk mengeset data biasanya diberi awalan setNamaMethod(tipedata
variabelset). Contoh:
§ Public void setNama(String nama);
§ Public String getNama()
o
nama
variabel biasanya dimulai dengan huruf kecil dan jika lebih dari satu kata,
disambung dan ditulis dengan huruf pertama huruf besar. Contoh: int angkaRandom = 0, String
namaMahasiswa
-
Ada 3 jenis modifier variabel dalam
Java:
Ø private : hanya dapat diakses oleh
kelas itu sendiri
Ø protected : hanya dapat diakses oleh
kelas itu dan kelas turunannya atau masih dalam satu package.
Ø public : dapat diakses oleh seluruh
kelas yang ada.
-
Java
mengenal operasi control flow :
Ø Percabangan : if-else, switch-case
Ø Perulangan : for, while-do, do-while
Ø Penanganan Exception :
try-catch-finally, throws
KONSEP OOP








Komentar