MAKALAH CLIENT SERVER Dibuat untuk memenuhi tugasMatakuliah interoperabilitas
Di susunoleh : Nama :RikiWiswandi Moch. Rizky Ananda F Moch. Ridwanto Nrp : 152009071 152009049 152009095
FAKULTAS TEKNIK INDUSTRI JURUSAN TEKNIK INFORMATIKA INSTITUT TEKNOLOGI NASIONAL BANDUNG 2012
Pendahuluan Kata server seringkali diucapkan oleh pengguna komputer, terutama ketika sedang membicarakan jaringan komputer atau internet. Dalam bahasa Inggris, kata server berasal dari kata serve yang artinya melayani, meladeni, menghidangkan, menyajikan. Sehingga dalam pembicaraan jaringan komputer atau internet, server adalah sebuah komputer (atau sebuah sistem komputer) yang tugasnya melayani komputer-komputer lainnya. Tentu saja, komputer-komputer yang dilayani adalah komputer-komputer yang terhubung dengan server tersebut. Dengan demikian, komputer server dapat berfungsi sebagai: - Situs intenet atau ilmu pengetahuan - Penyimpan data atau file, dan membuat data atau file tersebut dapat diambil kembali saat dibutuhkan. - Mengkoneksikan komputer client ke Internet. Banyak sekali kaum komputeris yang mencoba mendefinisikan arti kata/istilah server dalam hubungannya dengan komputer. Berikut ini disajikan beberapa definisinya: - Server adalah sebuah komputer di Internet atau di jaringan lainnya yang menyimpan file dan membuat file tersebut tersedia untuk diambil jika dibutuhkan. - Server adalah sebuah aplikasi jaringan komputer yang digunakan untuk melayani banyak pengguna dalam satu jaringan. - Server adalah sebuah sistem komputer yang menyediakan jenis layanan tertentu dalam sebuah jaringan komputer.
Komputer server biasanya memiliki RAM yang besar dan dalam operasionalnya menggunakan sistem operasi khusus, yang disebut sistem operasi jaringan atau network operating system. Server juga menjalankan software administratif yang berguna untuk mengontrol akses ke jaringan, dan mengelola perangkat (sumber daya) yang terdapat di dalamnya, misalnya printer, serta memberikan akses kepada workstation yang menjadi anggota jaringan (workstation yang tersambung ke jaringan). Kata atau istilah workstation berasal dari bahasa Inggris yang terjemahan bebasnya bermakna stasiun kerja. Dalam bahasan jaringan komputer, istilah workstation biasanya dipakai untuk menyebut komputer (yang dipakai oleh pengguna) yang terhubung ke suatu jaringan. Dalam pengertian yang lain, workstation diartikan sebagai single user komputer yang berdaya penuh yang penggunaannya biasanya ditujukan untuk aplikasi high end graphics dan aplikasi desain tambahan. Disebut juga dengan nama graphics workstation.
1. Pengertian Client Server Client-server adalah suatu bentuk arsitektur, dimana client adalah perangkat yang menerima yang akan menampilkan dan menjalankan aplikasi (software komputer) dan server adalah perangkat yang menyediakan dan bertindak sebagai pengelola aplikasi, data, dan keamanannya. Server biasanya terhubung dengan client melalui kabel UTP dan sebuah kartu jaringan (network card). Kartu jaringan ini biasanya berupa kartu PCI atau ISA. Dalam teknologi informasi, client-server merujuk kepada cara mendistribusikan aplikasi ke pihak client dan pihak server. Dalam model clientserver, sebuah aplikasi dibagi menjadi dua bagian yang terpisah (tetapi masih dalam sebuah kesatuan) yakni komponen client dan komponen server. Komponen client dijalankan pada sebuah workstation. Pemakai workstation memasukkan data dengan menggunakan teknologi pemrosesan tertentu, kemudian mengirimkannya ke komponen server, umumnya berupa permintaan layanan tertentu yang dimiliki oleh server. Komponen server akan menerima permintaan layanan tersebut dan langsung memprosesnya serta mengembalikan hasil pemrosesan kepada client. Client pun menerima informasi hasil pemrosesan data tadi dan menampilkannya kepada pemakai dengan menggunakan aplikasi yang digunakan oleh pemakai. Sebuah contoh dari aplikasi client-server sederhana adalah aplikasi web yang didesain dengan menggunakan Active Server Pages (ASP). Skrip ASP akan dijalankan di dalam web server (Apache atau Internet Information Services), sementara skrip yang berjalan di pihak client akan dijalankan oleh web browser pada komputer client (workstation). Client-server merupakan penyelesaian masalah pada software yang menggunakan database sehingga setiap komputer tidak perlu diinstall database. Dengan metode client-server database dapat diinstal pada komputer server dan aplikasinya diinstal pada client. Komponen client juga sering disebut sebagai front-end, sementara komponen server disebut sebagai back-end.
Sistem client server didefinisikan sebagai sistem terdistribusi, tetapi ada beberapa perbedaan karakteristik yaitu : [Link] (layanan) a) Hubungan antara proses yang berjalan pada mesin yang berbeda b)Pemisahan fungsi berdasarkan ide layanannya. c)Server sebagai provider, client sebagai konsumen [Link] resources (sumber daya) Server bisa melayani beberapa client pada waktu yang sama, dan meregulasi akses bersama untuk share sumber daya dalam menjamin konsistensinya. [Link] protocol (protokol yang tidak simetris ) Many-to-one relationship antara client dan [Link] selalu menginisiasikan dialog melalui layanan permintaan, dan server menunggu secara pasif request dariclient. [Link] lokasi Proses yang dilakukan server boleh terletak pada mesin yang sama atau pada mesin yang berbeda melalui [Link] server harus mudah diakses dari client. [Link]-and-Match Perbedaan server client platforms [Link] berbasiskan komunikasi Interaksi server dan client melalui pengiriman pesan yang menyertakan permintaan dan jawaban. [Link] interface dan implementasi Server bisa diupgrade tanpa mempengaruhi client selama interface pesan yang diterbitkan tidak berubah.
Client Server System
Client / Server Application
Perbedaan Tipe Client-Server [Link] Servers a) File server vendors mengklaim bahwa mereka pertama menemukan istilah client-server. b)Untuk sharing file melalui jaringan
[Link] Servers a) Client mengirimkan SQL requests sebagai pesan pada database server,selanjutnya hasil perintah SQL dikembalikan. b) Server menggunakan kekuatan proses yang diinginkan untuk menemukan data yang diminta dan kemudian semua record dikembalikan pada client.
3. Transaction Servers (Transaksi Server) a)Client meminta remote procedures yang terletak pada server dengan sebuah SQL database engine. b)Remote procedures ini mengeksekusi sebuah grup dari SQL statement c) Hanya satu permintaan / jawaban yang dibutuhkan untuk melakukan transaksi.
[Link] Servers a) Dikenal sebagai Computer-supported cooperative working. b) Manajemen semi-struktur informasi seperti teks, image, bulletin boards dan aliaran kerja. d) Data diatur sebagai dokumen.
[Link] Application Servers a)Aplikasi client/server ditulis sebagai satu set objek komunikasi. b) Client objects berkomunikasi dengan server objects melalui Object Request Broker (ORB). c) Client meminta sebuah method pada remote object.
[Link] Application Servers (Aplikasi Web Servers) a) World Wide Web adalah aplikasi client server yang pertama yang digunakan untuk web. b) Client dan servers berkomunikasi menggunakan RPC seperti protokol yang disebut HTTP.
Kelebihan dan Kekurangan Client Server Kelebihan Kecepatan akses lebih tinggi karena penyediaan fasilitas jaringan dan
pengelolaannya dilakukan secara khusus oleh satu komputer (server) yang tidak dibebani dengan tugas lain seperti sebagai workstation. Sistem keamanan dan administrasi jaringan lebih baik, karena terdapat sebuah komputer yang bertugas sebagai administrator jaringan, yang mengelola administrasi dan sistem keamanan jaringan. Sistem backup data lebih baik, karena pada jaringan client-server backup dilakukan terpusat di server, yang akan membackup seluruh data yang digunakan di dalam jaringan. Memberikan keamanan yang lebih baik Lebih mudah pengaturannya bila networknya besar karena administrasinya disentralkan, Semua data dapat dibackup pada satu lokasi sentral (pusat)
Kelemahan Biaya operasional relatif lebih mahal. Diperlukan adanya satu komputer khusus yang berkemampuan lebih untuk ditugaskan sebagai server. Kelangsungan jaringan sangat tergantung pada server. Bila server mengalami gangguan maka secara keseluruhan jaringan akan terganggu. Membutuhkan software NOS yang mahal contoh : NT atau server Windows 2000, XP,Novell, UNIX Membutuhkan hardware yang lebih tinggi dan mahal untuk mesin server Membutuhkan administrator yang Profesional Mempunyai satu titik lemah jika menggunakan satu server, data user menjadi tak ada jika server mati.
Kendala atau Hambatan dalam Client Server Kenadala atau Hambatan Implementasi Sistem Client Server Organisasi Teknologi Membutuhkan infrastruktur LAN dan WAN Skill dan peralatan yang belum memadai Belum adanya pemahaman dan pengalaman dalam merencanakan sistem client server Tidak tersedianya produk dan tools pengembangan sistem client server Sedikitnya applikasi client server Sedikitnya standar nasional dan internasional untuk sistem client server. Skill personel yang kurang memadai untuk implementasi sistem client server. Anti perubahan terhadap teknologi baru. Biaya konversi Membutuhkan koordinasi dan kontrol yang lebih pada end user.
Arsitektur Client Server Kita tahu bahwa perkembangan teknologi kini telah banyak membuat perubahan pada cara berpikir kita (manusia). Dengan laju pertumbuhan teknologi yang makin cepat, kebutuhan akan informasi dari hari ke hari meningkat sehingga menuntu kelancaran, dan kecepatan proses distribusi informasi. Arsitektur jaringan Client Server merupakan model konektivitas pada jaringan yang membedakan fungsi computer sebagai Client dan Server. Arsitektur ini menempatkan sebuah komputer sebagai Server. Nah Server ini yang bertugas memberikan pelayanan kepada terminal-terminal lainnya tang terhubung dalam system jaringan atau yang kita sebut Clientnya. Server juga dapat bertugas untuk memberikan layanan berbagi pakai berkas (file server), printer (printer server), jalur komunikasi (server komunikasi). Pada model arsitektur ini, Client tidak dapat berfungsi sebagai Server, tetapi Server dapat berfungsi menjadi Client (server non-dedicated). Prinsip kerja pada arsitektur ini sangat sederhana, dimana Server akan menunggu permintaan dari Client, memproses dan memberikan hasil kepada Client, sedangkan Client akan mengirimkan permintaan ke Server, menunggu proses dan melihat visualisasi hasil prosesnya. Sistem Client Server ini tidak hanya diperuntukkan bagi pembangunan jaringan komputer skala luas. Sistem ini menggunakan protokol utama Transmision Control Protocol/Internet Protocol (TCP/IP), sedangkam sistem operasi yang digunakan antara lain Unix, Linux dan Windows NT. Lingkungan Database Client/Server di Internet
Menggunakan LAN untuk mendukung jaringan PC Masing-masing PC memiliki penyimpan tersendiri Berbagi hardware atau software
Komponen dasar Client Server Pada dasarnya Client Server terdiri dari 3 komponen pembentuk dasar, yaitu Client, Middleware, dan Server. Gubungan dari ketiganya dapat digambarkan sebagai berikut:
Arsitektur File Server
Model pertama Client/Server Semua pemrosesan dilakukan pada sisi workstation Satu atau beberapa server terhubungkan dalam jaringan Server bertindak sebagai file server File server bertindak sebagai pengelola file dan memungkinkan klien mengakses file tersebut
Setiap klien dilengkapi DBMS tersendiri DBMS berinteraksi dengan data yang tersimpan dalam bentuk file pada server Aktivitas pada klien: Meminta data
Meminta penguncian data Tanggapan dari klien Memberikan data Mengunci data dan memberikan statusnya
Batasan File Server
Beban jaringan tinggi karena tabel yang diminta akan diserahkan oleh file server ke klien melalui jaringan
Setiap klien harus memasang DBMS sehingga mengurangi memori Klien harus mempunyai kemampuan proses tinggi untuk mendapatkan response time yang bagus
Salinan DBMS pada setiap klien harus menjaga integritas databasse yang dipakai secara bersama-sama tanggung jawab diserahkan kepada programmer.
Bahasa pemrograman yang di gunakan Client Server Pemrograman Client/Server Dengan Java Java adalah bahasa pemrograman yang berorientasi objek (OOP) yang dapat dijalankan pada berbagai platform sistem operasi. Perkembangan Java tidak hanya terfokus pada satu sistem operasi, tetapi dikembangkan untuk berbagai sistem operasi dan bersifat open source. Keunggulan java antara lain : 1. Sederhana Java telah banyak diperbaiki terutama menghilangkan penggunaan pointer yang rumit dan multiple inheritance. Java juga menggunakan automatic memory allocation dan memory garbage collection. 2. Berorientasi objek (Object Oriented) Java mengunakan pemrograman berorientasi objek yang membuat program dapat dibuat secara modular dan dapat dipergunakan kembali. Pemrograman berorientasi objek memodelkan dunia nyata kedalam objek dan melakukan interaksi antar objekobjek tersebut. 3. Dapat didistribusi dengan mudah Java dibuat untuk membuat aplikasi terdistribusi secara mudah dengan adanya libraries networking yang terintegrasi pada Java. 4. Interpreter Program Java dijalankan menggunakan interpreter yaitu Java Virtual Machine (JVM). Hal ini menyebabkan source code Java yang telah dikompilasi menjadi Java bytecodes dapat dijalankan pada platform yang berbeda-beda.
5. Robust Java mempuyai reliabilitas yang tinggi. Compiler pada Java mempunyai kemampuan mendeteksi error secara lebih teliti dibandingkan bahasa pemrograman lain. Java mempunyai runtime-Exception handling untuk membantu mengatasi error pada pemrograman.
6. Aman Sebagai bahasa pemrograman untuk aplikasi internet dan terdistribusi, Java memiliki beberapa mekanisme keamanan untuk menjaga aplikasi tidak digunakan untuk merusak sistem komputer yang menjalankan aplikasi tersebut.
7. Architecture Neutral Program Java merupakan platform independent. Program cukup mempunyai satu buah versi yang dapat dijalankan pada platform yang berbeda dengan Java Virtual Machine. 8. Portabel Source code maupun program Java dapat dengan mudah dibawa ke platform yang berbeda-beda tanpa harus dikompilasi ulang.
9. Multithreading Java mempunyai kemampuan untuk membuat suatu program yang dapat melakukan beberapa pekerjaan secara sekaligus dan simultan.
11. Dinamis Perubahan pada suatu class dengan menambahkan properties ataupun method dapat dilakukan tanpa menggangu program yang menggunakan class tersebut. Komponen penting java antara lain : By : Dita Gojack Java Virtual Machine (JVM) Sebuah mesin imajiner (maya) yang bekerja dengan menyerupai aplikasi pada sebuah mesin nyata. JVM menyediakan spesifikasi hardware dan platform dimana kompilasi kode Java terjadi. Spesifikasi inilah yang membuat aplikasi berbasis Java menjadi bebas dari platform manapun karena proses kompilasi diselesaikan oleh JVM. Garbage Collection Program Java melakukan garbage collection yang berarti program tidak perlu menghapus sendiri objekobjek yang tidak digunakan lagi. Fasilitas ini mengurangi beban pengelolaan memori oleh programmer dan mengurangi atau mengeliminasi
sumber kesalahan terbesar yang terdapat pada bahasa yang memungkinkan alokasi dinamis. Code Security Code Security terimplementasi pada Java melalui penggunaan Java Runtime Environment (JRE)
Saat program java dikompilasi, kompilator akan terlebih dahulu menentukan struktur program. Yaitu akan membaca kode sumber kemudian menerapkan aturan-aturan secara progresif menjadi identifier, ekspresi, kalimat dan kelas.
1. Lexical Analyze. Melakukan analisi leksik yaitu scan untuk mencari sekuen karakter (token) , membentuk identifier, operator dan sebagainya.
2. Parser. Melakukan proses parsing yang bertanggungjawab untuk menemukan level yang lebih tinggi pada sekuen token yang dihasilkan pada lexical analyzer. Token adalah element terkecil program yang mempunyai arti bag kompilator Token java dibagi menjadi 5 macam : A. Identifier Identifier adaah token yang merepresentasikan nama yang mewakili variabel, method, class, paket dan interface. Contoh dari Identifier adalah : Hello, main, System, out. B. Variabel digunakan data untuk menyimpan pernyataan [Link] memiliki tipe data dan nama. Tipe data menandakan tipe nilai yang dapat dibentuk oleh variabel itu sendiri. int panjang , String nama, boolean siswa C. Konstanta merupakan variabel yang telah diberi nilai sekali saja dan tidak dapat diubah selamanya.
D. Keyword Kata kunci adalah identifier yang telah didefinisikan sebelumnya oleh java untuk tujuan tertentu. Kita tidak dapat menggunakan keyword sebagai nama variabel, class, dan method. E. Literal Literal adalah tanda bahwa tidak terjadi perubahan atau konstan. Secara garis besar literal terbagi menjadi angka, karakter, string
Bahasa pemrograman Java mendefinisikan delapan tipe data. Yaitu boolean (untuk bentuk logika), char (untuk bentuk tekstual), byte, short, int, long (integral), double dan float (floating point). Konversi Saat kita melakukan pemberian nilai suatu tipe data dengan tipe data lain. Jika kedua tipe data tersebut kompatibel maka java akan melakukan konversi secara otomatis. Java akan melakukan konversi tipe data secara otomatis dengan syarat : Kedua tipe data (atau lebih) saling kompatibel. Tipe data tujuan ukurannya lebih besar dari tipe data sumber Java, ada operator aritmatika, operator relasi, operator increment-decrement, operator logika, operator kondisi dsb. Operator ini mengikuti bermacam-macam prioritas yang pasti sehingga kompiler java akan tahu yang mana operator untuk dijalankan lebih dulu dalam kasus beberapa operator yang dipakai bersama-sama dalam satu pernyataan. Percabangan merupakan bagian dari struktur kontrol. Struktur kontrol percabangan adalah pernyataan dari program yang mengijinkan user untuk memilih dan mengeksekusi blok kode spesifik dan mengabaikan blok kode yang lain A. Percabangan If => akan menentukan sebuah pernyataan (blok kode) yang akan eksekusi jika persyaratan bernilai benar(true). B. Percabangan If Else => digunakan apabila kita ingin mengeksekusi beberapa pernyataan dengan kondisi true dan pernyataan yang lain dengan kondisi false
C. Percabangan Switch-Case Cara lain untuk membuat percabangan adalah menggunakan switch. Switch mengkonstruksikan cabang untuk beberapa kondisi dari nilai Perulangan juga merupakan bagian dari struktur kontrol. Dalam perulangan java mengijinkan kita untuk mengeksekusi blok kode berulang-ulang sesuai dengan jumlah tertentu yang diinginkan. A. Perulangan For digunakan untuk melakukan pengulangan dalam mengeksekusi kode yang sama sebanyak jumlah tertentu. B. Perulangan While digunakan untuk melakukan pengulangan dalam blok kode hingga mencapai kondisi yang cocok. C. Perulangan Do-While akan dieksekusi beberapa kali selama kondisi bernilai benar(true). Perbedaan antara while dan do-while adalah dimana pernyataan di dalam do-while akan dieksekusi sedikitnya satu kali. Array adalah variabel yang menyimpan beberapa data dengan tipe data yang sama. Array dapat berupa data ssederhana atau komposit. Dideklarasikan dengan kurung siku. Format penulisan array: tipe_data nama_variabel []; Array multidimensi dapat dikatakan sebagai array di dalam sebuah array. Array multidimensi dideklarasikan dengan menambahkan jumlah tanda kurung setelah nama array. OOP (Object Oriented Programming). Artinya program dipusatkan pada object dan class berdasarkan gambaran (object) dunia nyata. Hal ini menyediakan manfaat akan kebebasan pengembangan, meningkatkan kualitas, mempermudah pemeliharaan, mempertinggi kemampuan dalam modifikasi dan meningkatkan penggunaan kembali software. Bebrapa istilah yang harus diketahui sebagai konsep OOP adalah : a. Class mengizinkan kita dalam mendeklarasikan tipe data baru. Ia dijalankan sebagai blueprint,dimana model dari object yang kita buat berdasarkan pada tipe data baru ini b. Object adalah sebuah entiti yang memiliki keadaan, behaviour dan identitas yang yang tugasnya dirumuskan dalam suatu lingkup masalah dengan baik. Object juga dikenal sebagai instance. Instance dibuat sewaktu kita meng-instantiate class menggunakan
kata kunci new. Object dapat berupa benda, manusia, kejadian, tempat dll. Dapat konkret maupun abstrak c. Atribut menunjuk pada elemen data dari sebuah object. Atribut menyimpan informasi tentang object. Dikenal juga sebagai member data, variabel instance, properti atau sebuah field data. Misal attribute object siswa adalah nama, nim, nilai dll. d. Method menjelaskan behaviour dari sebuah object. Method juga dikenal sebagai fungsi atau prosedur. Misal method getNilai, yang mungkin untuk mendapatkan informasi nilai siswa. e. Constructor adalah sebuah tipe khusus dari method yang digunakan untuk membuat dan menginisialisasi sebuah object baru. Ingat bahwa constructor bukan atribut, method atau inner class dari sebuah object. f. Package menunjuk pada pengelompokkan class dan/atau subpackages. Strukturnya dapat disamakan dengan direktorinya. g. Enkapsulasi menunjuk pada prinsip dari menyembunyikan desain atau mengimplementasikan informasi yang tidak sesuai pada object yang ada. h. Abstraksi mengabaikan aspek dari subyek yang tidak sesuai dengan tujuan yang ada supaya lebih banyak mengkonsentrasikan yang ada. i. Pewarisan (Inheritance) adalah hubungan antara class dimana dalam satu class ada superclass atau class induk dari class yang lain. Pewarisan menunjuk pada properti dan behaviour yang diterima dari nenek moyang dari class. j. Polimorfisme adalah kemampuan dari sebuah object untuk membolehkan mengambil beberapa bentuk yang berbeda. k. Interface adalah sebuah contract dalam bentuk kumpulan method dan deklarasi konstanta. Ketika sebuah class implements sebuah interface, ini mengimplementasikan semua method yang dideklarasikan dalam interface.
Kesimpulan
Client-server adalah suatu bentuk arsitektur, dimana client adalah perangkat yang menerima yang akan menampilkan dan menjalankan aplikasi (software komputer) dan server adalah perangkat yang menyediakan dan bertindak sebagai pengelola aplikasi, data, dan keamanannya, Dalam teknologi informasi, client-server merujuk kepada cara mendistribusikan aplikasi ke pihak client dan pihak server. Dalam model client-server, sebuah aplikasi dibagi menjadi dua bagian yang terpisah (tetapi masih dalam sebuah kesatuan) yakni komponen client dan komponen server.