Minggu, 03 April 2011

PEMROGRAMAN JARINGAN (Network Programming)

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
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

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:
Client dan Server merupakan item proses (logika) terpisah yang bekerja sama pada suatu jaringan komputer untuk mengerjakan suatu tugas
Service : Menyediakan layanan terpisah yang berbeda
Shared resource : Server dapat melayani beberapa client pada saat yang sama dan mengatur pengaksesan resource
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.
Transparency Location : proses server dapat ditempatkan pada mesin yang sama atau terpisah dengan proses client. Client/server akan menyembunyikan lokasi server dari client.
Mix-and-match : tidak tergantung pada platform
Message-based-exchange : antara client dan server berkomunikasi dengan mekanisme pertukaran message.
Encapsulation of service : message memberitahu server apa yang akan dikerjakan
Scalability : sistem C/S dapat dimekarkan baik vertikal maupun horisontal
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 :
1. User interface
2. 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
Contoh : http://www.ukdw.ac.id/index.php?a=1&b=2
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
 Relative URL : contoh
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
Class : prototipe yang mendefinisikan atribut dan method secara umum.
Object : segala sesuatu yang dapat dilihat dan dirasa. Sebuah instansiasi dari Class.
Object dapat memiliki atribut dan method. Atribut / variabel / properties adalah apa yang dimiliki oleh sebuah object. Sedangkan method / behaviour / event adalah apa yang dapat dilakukan oleh sebuah object.
Enkapsulasi : pembungkusan atribut dan method pada suatu object. Manfaatnya adalah: modularitas dan information hiding.
Message : mekanisme yang digunakan oleh object java untuk berkomunikasi dengan object lain. Sehingga dimungkinkan terjadi aplikasi terdistribusi dan berinteraksi melalui jaringan. Contoh : Java-CORBA dan Java-RMI.
Inheritance : pewarisan atribut dan method dari class induk ke class anaknya, yang mengextends padanya. Superclass adalah class induk, subclass adalah class anak. Subclass akan mewarisi seluruh sifat super class, namun juga memungkinkan dapat juga memiliki atribut dan method yang lain, yang membedakannya dengan induknya.
Abstract : kelas yang hanya terdiri dari method yang abstract yang digunakan untuk mendukung inheritance.
Interface : kelas yang hanya terdiri dari kumpulan method-method saja tanpa implementasi coding.

Tidak ada komentar:

Posting Komentar