Anda di halaman 1dari 18

Nama : Anggun Yuli Astutik Mengetahui Dosen Pengampu

NIM : 183307039
Kelas : Teknologi Informasi TTD
Pertemuan :3 ACC
Tanggal : 13 Februari 2020 Revisi

Pokok-pokok Pembahasan:
1. Thread
2. Perbedaan thread dengan proses
3. Single Thread vs Multithread Process
4. Keuntungan thread
5. Macam-macam thread
6. Model-model Multithreading
7. Thread cancelation
8. Client – server & model
9. Agent
10. Klasifikasi agent software

1. Thread
Thread adalah sebuah alur kontrol dari sebuah proses. Suatu proses yang multithreaded
mengandung beberapa perbedaan alur kontrol dengan ruang alamat yang sama.
Keuntungan dari multithreaded meliputi peningkatan respon dari user, pembagian sumber
daya proses, ekonomis, dan kemampuan untuk mengambil keuntungan dari arsitektur
multiprosesor. User level thread adalah thread yang tampak oleh programmer dan tidak
diketahui oleh kernel. User level thread secara tipikal dikelola oleh sebuah library thread
di ruang user. Kernel level thread didukung dan dikelola oleh kernel sistem operasi. Secara
umum, user level thread lebih cepat dalam pembuatan dan pengelolaan dari pada kernel
thread. Ada tiga perbedaan tipe dari model yang berhubungan dengan user dan kernel
thread.
a. Model many to one: memetakan beberapa user level thread hanya ke satu buah kernel
thread.
b. Model one to one: memetakan setiap user thread ke dalam satu kernel thread. Berakhir.
c. Model many to many: mengizinkan pengembang untuk membuat user thread sebanyak
mungkin, konkurensi tidak dapat tercapai karena hanya satu thread yang dapat
dijadualkan oleh kernel dalam satu waktu.

Kegunaan Thread
Multithreading berguna untuk multiprocessor dan singleprocessor.
Kegunaan untuk system multiprocessor adalah :
a. Sebagai unit pararel atau tingkat granularitas pararelisme.
b. Peningkatan kinerja disbanding berbasis proses.

Karakteristik Thread
Proses merupakan lingkungan eksekusi bagi thread-thread yang dimilikinya. Thread-
thread di satu proses memakai bersama sumber daya yang dimiliki proses, yaitu :
a. Ruang alamat.
b. Himpunan berkas yang dibuka.
c. Proses-proses anak.
d. Timer-timer.
e. Sinyal-sinyal.
f. Sumber daya-sumber daya lain milik proses.

Implementasi Paket Thread


a. Thread level kernel.
> Keunggulan :
 Memudahkan koordinasi multithread seperti proses server.
 Tidak seboros kumpulan proses tradisional.
> Kelemahan :
 Operasi manajemen thread sangat lebih boros.
 Kernel harus menyediakan semua feature.
b. Thread level pemakai.
> Keunggulan :
Kinerja luar biasa bagus disbanding thread level kernel.
 Tidak diperlukan modifikasi kernel.
 Fleksibelitas tinggi.
> Kelemahan :
 Tidak manfaatkan multiprocessor.
 Untuk aplikasi dengan keterlibatan kernel yang kecil.
 Mengharuskan nonblocking system call.

2. Perbedaan thread dengan proses


a. Apa itu Proses?
Sebuah proses, secara umum, adalah serangkaian terus menerus dari tindakan untuk
mencapai hasil yang spesifik. Namun, dalam dunia komputer, proses adalah sebuah
contoh dari mengeksekusi program komputer. Dengan kata lain, itu adalah konsep dari
kejadian tunggal dari program komputer yang berjalan. Proses yang berjalan secara
binar akan mengandung satu atau lebih thread.
Menurut jumlah thread yang terlibat dalam proses, ada dua jenis proses. Mereka
adalah proses single-thread dan proses multi-thread. Seperti namanya, proses tunggal-
thread adalah proses yang hanya memiliki satu thread. Oleh karena itu, thread ini
adalah sebuah proses, dan hanya ada satu aktivitas yang terjadi. Dalam proses multi-
thread, ada lebih dari satu thread, dan ada lebih dari satu aktivitas yang terjadi.
Dua atau lebih proses dapat berkomunikasi dalam setiap menggunakan komunikasi
antar-proses lain. Tapi itu cukup sulit dan membutuhkan lebih banyak sumber daya.
Ketika membuat proses baru programmer harus melakukan dua hal. Mereka adalah
duplikasi proses induk dan alokasi memori dan sumber daya untuk proses baru. Jadi ini
benar-benar mahal.

b. Apa yang dimaksud dengan Thread?


Dalam dunia IT, thread adalah pelaksanaan instruksi terkecil dari program
komputer yang dapat dikelola secara independen sesuai dengan jadwal. Sebuah thread
adalah jalan eksekusi sederhana dalam proses. Sebuah thread adalah sebagai proses
kuat karena thread bisa melakukan proses apa saja yang bisa dilakukan. Sebuah thread
adalah proses ringan dan membutuhkan sumber daya yang lebih sedikit. Thread dapat
mulai dari membaca dan menulis ke variabel yang sama dan struktur data variabel.
Thread dapat berkomunikasi antara thread dengan mudah.
Hari ini multithread telah menjadi pendekatan alami untuk banyak masalah. Sebuah
pekerjaan besar dibagi menjadi beberapa bagian dan masing-masing ditugaskan untuk
unit eksekusi yang disebut thread. Ini hanya multithreading. Hal ini memerlukan
kehati-hatian pemrograman karena thread berbagi struktur data yang dimodifikasi oleh
thread lain pada satu waktu dan juga karena thread berbagi ruang alamat yang sama.
Satu keuntungan lebih dari thread adalah bahwa thread menyediakan cara yang efisien
dan efektif untuk mencapai paralelisme. Sebuah throughput sistem dapat ditingkatkan
dengan membiarkan beberapa thread berjalan pada beberapa prosesor karena thread
adalah entitas independen yang dapat dijadwal (schedulable).

c. Apa perbedaan antara Proses dan Thread?


 Proses sulit untuk membuat karena membutuhkan duplikasi proses induk dan
alokasi memori sedangkan thread lebih mudah untuk membuat karena mereka
tidak memerlukan ruang alamat yang terpisah.
 Thread digunakan untuk tugas-tugas sederhana, sementara proses yang digunakan
untuk tugas-tugas yang berat-berat seperti pelaksanaan aplikasi.
 Proses tidak berbagi ruang alamat yang sama, namun thread dalam berbagi proses
yang sama ruang alamat yang sama.
 Proses yang independen satu sama lain, tetapi thread saling bergantung karena
mereka berbagi ruang alamat yang sama.
 Sebuah proses dapat terdiri dari beberapa thread.
 Karena thread berbagi ruang alamat yang sama, virtual memori hanya terkait
dengan proses tapi tidak dengan thread. Tapi prosesor virtual yang berbeda
dikaitkan dengan setiap thread.
 Setiap proses memiliki kode dan data sendiri sedangkan proses thread berbagi
kode yang sama dan data.
 Setiap proses dimulai dengan thread utama, tapi dapat membuat thread tambahan
jika diperlukan.
 Konteks beralih antara proses jauh lebih lambat dibandingkan konteks beralih
antara thread dari proses yang sama.
 Thread dapat memiliki akses langsung ke segmen data, tetapi proses memiliki
salinan sendiri segmen data mereka.
 Roses memiliki overhead tapi tidak thread.

d. Ringkasan Proses vs Thread


Proses dan thread dua teknik yang digunakan oleh programmer untuk mengontrol
prosesor dan pelaksanaan instruksi pada komputer dengan cara yang efisien dan
efektif. Sebuah proses dapat berisi beberapa thread. Thread menyediakan cara yang
efisien untuk berbagi memori meskipun beroperasi beberapa eksekusi dari proses.
Oleh karena itu, thread merupakan alternatif untuk beberapa proses. Dengan tren yang
berkembang menuju prosesor multi-core, thread akan menjadi alat yang paling
penting dalam dunia programmer.

3. Single thread vs multithread process


Perbedaan antara proses dengan thread tunggal dan proses dengan thread yang
banyak adalah proses dengan thread banyak dapat mengerjakan lebih dari satu tugas pada
satu satuan waktu.

Banyak perangkat lunak yang berjalan pada PC modern dirancang


secara multithreading. Sebuah aplikasi biasanya diimplementasi sebagai proses yang
terpisah dengan beberapa thread yang berfungsi sebagai pengendali. Contohnya
sebuah web browser mempunyai thread untuk menampilkan gambar atau tulisan
sedangkan thread yang lain berfungsi sebagai penerima data dari network.
Kadang kala ada situasi dimana sebuah aplikasi diperlukan untuk menjalankan
beberapa tugas yang serupa. Sebagai contohnya sebuah web server dapat mempunyai
ratusan klien yang mengaksesnya secara concurrent. Kalau web server berjalan sebagai
proses yang hanya mempunyai thread tunggal maka ia hanya dapat melayani satu klien
pada pada satu satuan waktu. Bila ada klien lain yang ingin mengajukan permintaan maka
ia harus menunggu sampai klien sebelumnya selesai dilayani. Solusinya adalah dengan
membuat web server menjadi multi-threading. Dengan ini maka sebuah web server akan
membuat thread yang akan mendengar permintaan klien, ketika permintaan lain diajukan
maka web server akan menciptakan thread lain yang akan melayani permintaan tersebut.

4. Keuntungan Thread
Keuntungan pada Thread yaitu sebagai berikut:
a. Tanggap : Multithreading mengizinkan program untuk berjalan terus walau pun pada
bagian program tersebut di block atau sedang dalam keadaan menjalankan operasi
yang lama/ panjang. Sebagai contoh, multithread web browser dapat mengizinkan
pengguna berinteraksi dengan suatu thread ketika suatu gambar sedang diload oleh
thread yang lain.
b. Pembagian sumber daya : Secara default, thread membagi memori dan sumber daya
dari proses. Keuntungan dari pembagian kode adalah aplikasi mempunyai perbedaan
aktifitas thread dengan alokasi memori yang sama.
c. Ekonomis: Mengalokasikan memori dan sumber daya untuk membuat proses adalah
sangat mahal. Alternatifnya, karena thread membagi sumber daya dari proses, ini lebih
ekonomis untuk membuat threads.
d. Pemberdayaan arsitektur multiprosesor: Keuntungann dari multithreading dapat
ditingkatkan dengan arsitektur multiprosesor, dimana setiap thread dapat jalan secara
parallel pada prosesor yang berbeda. Pada arsitektur prosesor tunggal, CPU biasanya
berpindah-pindah antara setiap thread dengan cepat, sehingga terdapat ilusi
paralelisme, tetapi pada kenyataannya hanya satu thread yang berjalan di setiap waktu.
e. Responsi : Membuat aplikasi yang interaktif menjadi multithreading dapat membuat
sebuah program terus berjalan meskipun sebagian dari program tersebut diblok atau
melakukan operasi yang panjang, karena itu dapat meningkatkan respons kepada
pengguna. Sebagai contohnya dalam web browser yang multithreading, sebuah thread
dapat melayani permintaan pengguna sementara thread lain berusaha menampilkan
image.
f. Berbagi sumber daya : thread berbagi memori dan sumber daya dengan thread lain
yang dimiliki oleh proses yang sama. Keuntungan dari berbagi kode adalah
mengizinkan sebuah aplikasi untuk mempunyai beberapa thread yang berbeda dalam
lokasi memori yang sama.
g. Ekonomi : dalam pembuatan sebuah proses banyak dibutuhkan pengalokasian memori
dan sumber daya. Alternatifnya adalah dengan penggunaan thread, karena thread
berbagi memori dan sumber daya proses yang memilikinya maka akan lebih ekonomis
untuk membuat dan context switch thread. Akan susah untuk mengukur perbedaan
waktu antara proses dan thread dalam hal pembuatan dan pengaturan, tetapi secara
umum pembuatan dan pengaturan proses lebih lama dibandingkan thread. Pada
Solaris, pembuatan proses lebih lama 30 kali dibandingkan pembuatan thread, dan
context switch proses 5 kali lebih lama dibandingkan context switch thread.
h. Utilisasi arsitektur multiprocessor : Keuntungan dari multithreading dapat sangat
meningkat pada arsitektur multiprocessor, dimana setiap thread dapat berjalan secara
pararel di atas processor yang berbeda. Pada arsitektur processor tunggal, CPU
menjalankan setiap thread secara bergantian tetapi hal ini berlangsung sangat cepat
sehingga menciptakan ilusi pararel, tetapi pada kenyataannya hanya satu thread yang
dijalankan CPU pada satu-satuan waktu (satu-satuan waktu pada CPU biasa disebut
time slice atau quantum).

5. Macam-macam Thread
a. User Thread
User thread didukung di atas kernel dan diimplementasi oleh thread library pada
user level. Library menyediakan fasilitas untuk pembuatan thread, penjadualan thread,
dan managemen thread tanpa dukungan dari kernel. Karena kernel tidak menyadari
user-level thread maka semua pembuatan dan penjadualan thread dilakukan di user
space tanpa intervensi dari kernel. Oleh karena itu, user-level thread biasanya cepat
untuk dibuat dan diatur. Tetapi user threadmempunyai kelemahan yaitu apabila
kernelnyamerupakan thread tunggal maka apabila salah satu user-level thread
menjalankan blocking system call maka akan mengakibatkan seluruh proses diblok
walau pun ada thread lain yang dapat jalan dalam aplikasi tersebut. Contoh user-thread
libraries adalah POSIX Pthreads, Mach C-threads, dan Solaris threads.

b. Kernel Thread
Kernel thread didukung langsung oleh sistem operasi. Pembuatan, penjadualan,
dan managemen thread dilakukan oleh kernel pada kernel space. Karena pengaturan
thread dilakukan oleh sistem operasi maka pembuatan dan pengaturan kernel thread
lebih lambat dibandingkan user thread. Keuntungannya adalah thread diatur oleh
kernel, karena itu jika sebuah thread menjalankan blocking system call maka kernel
dapat menjadualkan thread lain di aplikasi untuk melakukan eksekusi. Keuntungan
lainnya adalah pada lingkungan multiprocessor, kernel dapatmenjadual thread-thread
pada processor yang berbeda. Contoh sistem operasi yang mendukung kernel thread
adalah Windows NT, Solaris, Digital UNIX.

Single threading : proses hanya mengeksekusi satu thread dalam satu waktu.
Multithread: proses dapat mengeksekusi sejumlah thread dalam satu waktu.

6. Model-model multithreading
a. One To One
One to One : memetakan setiap user thread ke dalam 1 kernel thread. Tingkatan
kernel. Pengaturan thread dilakukan dalam ruang pengguna sehingga efisien. Hanya
satu thread pengguna yang dapat mengakses thread kernel pada satu saat. Jadi
Multiple thread tidak dapat berjalan secara paralel pada multiprosesor.

Kelebihan :
Model one-to-one lebih sinkron daripada model many-to-one karena mengizinkan
thread lain untuk berjalan ketika suatu thread membuat pemblokingan terhadap sistem
pemanggilan, hal ini juga membuat multiple thread bisa berjalan secara parallel dalam
multiprosesor .

Kekurangan:
Dalam pembuatan user thread diperlukan pembuatan korespondensi thread pengguna.
Karena dalam proses pembuatan kernel thread dapat mempengaruhi kinerja dari
aplikasi, maka kebanyakan dari implementasi model ini membatasi jumlah thread
yang didukung oleh sistem.
Model ini ada pada Windows NT dan OS/2.

b. One to Many
One to Many : memetakan beberapa tingkatan thread user hanya ke satu buah kernel
thread.

Kelebihan :
Managemen proses thread dilakukan oleh (di ruang) pengguna, sehingga menjadi
lebih efisien.
Kekurangan :
Multithread tidak dapat berjalan atau bekerja secara paralel di dalam multiprosesor
karena hanya satu thread saja yang bisa mengakses kernel dalam suatu waktu.
Model ini ada pada Solaris Green dan GNU Portable.

c. Many to Many
Many to Many : membolehkan setiap tingkatan user thread dipetakan ke banyak kernel
thread. Model ini mengizinkan developer membuat thread sebanyak yang diinginkan
tetapi concurrency tidak dapat diperoleh karena hanya satu thread yang dapat
dijadwalkan oleh kernel pada suatu waktu

Kelebihan:
Developer dapat membuat user thread sebanyak yang diperlukan dan kernel thread
yang bersangkutan dapat berjalan secara parallel pada multiprocessor. Dan ketika
suatu thread menjalankan blocking system call maka kernel dapat menjadwalkan
thread lain untuk melakukan eksekusi.

Kekurangan :
Developer dapat membuat user thread sebanyak mungkin, tetapi konkurensi tidak
dapat diperoleh karena hanya satu thread yang dapat dijadwalkan oleh kernel pada
suatu waktu. Model ini ada pada Solaris, IRIX, dan Digital UNIX.

7. Thread Cancelation
Thread Cancellation ialah pembatalan thread sebelum tugasnya selesai.
Umpamanya, jika dalam program Java hendak mematikan Java Virtual Machine (JVM).
Sebelum JVM dimatikan, maka seluruh thread yang berjalan harus dibatalkan terlebih
dahulu. Contoh lain adalah di masalah search. Apabila sebuah thread mencari sesuatu
dalam database dan menemukan serta mengembalikan hasilnya, thread sisanya akan
dibatalkan. Thread yang akan diberhentikan biasa disebut target thread.
Pemberhentian target Thread dapat dilakukan dengan 2 cara:
a) Asynchronous cancellation : Suatu thread seketika itu juga membatalkan target
thread.
b) Deferred cancellation. Suatu thread secara periodik memeriksa apakah ia harus batal,
cara ini memperbolehkan target thread untuk membatalkan dirinya secara terurut.
Hal yang sulit dari pembatalan thread ini adalah ketika terjadi situasi dimana sumber
daya sudah dialokasikan untuk thread yang akan dibatalkan. Selain itu kesulitan lain
adalah ketika thread yang dibatalkan sedang meng-update data yang ia bagi
dengan thread lain. Sistem operasi akan mengambil kembali sumber daya dari thread yang
dibatalkan tetapi seringkali sistem operasi tidak mengambil kembali semua sumber daya
dari thread yang dibatalkan.
Alternatifnya adalah dengan menggunakan deffered cancellation. Cara kerja
dari deffered cancellation adalah dengan menggunakan satu thread yang berfungsi sebagai
pengindikasi bahwa target thread hendak dibatalkan.Tetapi pembatalan hanya akan terjadi
jika target thread memeriksa apakah ia harus batal atau tidak.
Pada umumnya sistem operasi memperbolehkan proses atau thread untuk dibatalkan
secara asynchronous. Tetapi Pthread API menyediakan deferred cancellation. Hal ini
berarti sistem operasi yang mengimplementasikan Pthread API akan
mengizinkan deferred cancellation.

Penjadwalan Thread
Begitu dibuat, thread baru dapat dijalankan dengan berbagai macam penjadwalan.
Kebijakan penjadwalanlah yang menentukan setiap proses, dimana proses tersebut akan
ditaruh dalam daftar proses sesuai proritasnya dan bagaimana ia bergerak dalam daftar
proses tersebut. Untuk menjadwalkan thread, sistem dengan model mulithreading many to
many atau many to one menggunakan:
a) Process Contention Scope (PCS). Pustaka thread menjadwalkan thread pengguna
untuk berjalan pada LWP (lightweight process) yang tersedia.
b) System Contention Scope (SCS). SCS berfungsi untuk memilih satu dari banyak thread
, kemudian menjadwalkannya ke satu thread tertentu(CPU / Kernel).

8. Client – Server & Model


Banyak referensi yang menjelaskan istilah client server. Menurut definisi yang diperoleh
dari Wikipedia:
Klien-server atau client-server merupakan sebuah paradigma dalam teknologi
informasi yang merujuk kepada cara untuk mendistribusikan aplikasi ke dalam dua pihak:
pihak klien dan pihak server.
Dalam model client/server, sebuah aplikasi dibagi menjadi dua bagian yang terpisah, tetapi
masih merupakan sebuah kesatuan yakni komponen klien dan komponen server. Komponen
klien juga sering disebut sebagai front-end, sementara komponen server disebut sebagai back-
end. Komponen klien dari aplikasi tersebut dijalankan dalam sebuah workstation dan
menerima masukan data dari pengguna. Komponen klien tersebut akan menyiapkan data yang
dimasukkan oleh pengguna dengan menggunakan teknologi pemrosesan tertentu dan
mengirimkannya kepada komponen server yang dijalankan di atas mesin server, umumnya
dalam bentuk request terhadap beberapa layanan yang dimiliki oleh server. Komponen server
akan menerima request dari klien, dan langsung memprosesnya dan mengembalikan hasil
pemrosesan tersebut kepada klien. Klien pun menerima informasi hasil pemrosesan data yang
dilakukan server dan menampilkannya kepada pengguna, dengan menggunakan aplikasi yang
berinteraksi dengan pengguna.
Sebuah contoh dari aplikasi client/server sederhana adalah aplikasi web yang didesain
dengan menggunakan Active Server Pages (ASP) atau PHP. Skrip PHP atau ASP akan
dijalankan di dalam web server (Apache atau Internet Information Services), sementara skrip
yang berjalan di pihak klien akan dijalankan oleh web browser pada komputer klien. Klien-
server merupakan penyelesaian masalah pada software yang menggunakan database sehingga
setiap komputer tidak perlu diinstall database, dengan metode klien-server database dapat
diinstal pada suatu komputer sebagai server dan aplikasinya diinstal pada client.

Server adalah sebuah sistem komputer yang menyediakan jenis layanan tertentu dalam
sebuah jaringan komputer. Server didukung dengan prosesor yang bersifat scalable dan RAM
yang besar, juga dilengkapi dengan sistem operasi khusus, yang disebut sebagai sistem operasi
jaringan atau network operating system. Server jugamenjalankan perangkat lunak
administratif yang mengontrol akses terhadap jaringan dan sumber daya yang terdapat di
dalamnya, seperti halnya berkas atau alat pencetak (printer), dan memberikan akses kepada
workstation anggota jaringan.
Client adalah komputer yang diperbolehkan untuk masuk kedalam network dan
mengambil/menggunakan segala sumber daya yang tersedia di dalam network.

Sistem client-server mempunyai satu atau lebih proses client dan satu atau lebih proses
server, dan sebuah proses client dapat mengirim query ke sembarang proses server. Client
bertanggung jawab pada antar muka untuk user, sedangkan server mengatur data dan
mengeksekusi transaksi. Sehingga suatu proses client berjalan pada sebuah personal komputer
dan mengirim query ke sebuah server yang berjalan pada mainframe.
Arsitektur ini menjadi sangat popular untuk beberapa alasan. Pertama, implementasi yang
relatif sederhana karena pembagian fungsi yang baik dan karena server tersentralisasi. Kedua,
mesin server yang mahal utilisasinya tidak terpengaruh pada interaksi pemakai, meskipun
mesin client tidak mahal. Ketiga, pemakai dapat menjalankan antarmuka berbasis grafis
sehingga pemakai lebih mudah dibandingkan antar muka pada server yang tidak user-friendly.
perlu diingat batasan antara client dan server dan untuk menjaga komunikasi antara keduanya
yang berorientasi himpunan. Contoh :
Implementasi RPC (Remote Procedure Calling) dan RMI (Remote Method Invocation) :
 Client mengirimkan request berupa pesan ke server untuk mengakses suatu service.
 Server menerima pesan tersebut dan mengeksekusi request client dan mereply hasil
ke client
Ketika client membutuhkan suatu service yang ada di server, dia akan mengirim request
kepada server lewat jaringan. Jika request tersebut dapatdilaksanakan, maka server akan
mengirim balasan berupa service yangdibutuhkan untuk saling berhubungan menggunakan
Socket .

a. Karakteristik Server :
 Pasif
 Menunggu request
 Menerima request , memproses mereka dan mengirimkan balasan berupa service
b. Karakteristik Client
 Aktif
 Mengirim request
 Menunggu dan menerima balasan dari server

Socket adalah sebuah endpoint untuk komunikasi didalam jaringan. Sepasang proses Atau
thread berkomunikasi dengan membangun sepasang socket , yangmasing-masing proses
memilikinya. Socket dibuat dengan menyambungkan dua buah alamat IP melalui port tertentu.
Secara umum socket digunakan dalam client/server system, dimana sebuah server akan
menunggu client pada port tertentu. Begitu ada client yang menghubungi server maka server
akan menyetujui komunikasi dengan client melalui socket yang dibangun.
a. Keuntungan dari Client Server :
 Terpusat – resource dan keamanan data terkontrol melalui server. Mempunyai skala
Satu atau semua elemen bisa di ganti bergantung pada kebutuhan.
 Fleksibel – Teknologi baru dengan mudah dapat di integrasikan ke dalam
sistem.Interoperability – semua komponen (client/jaringan/server) bekerja bersama-
sama. Mudah di akses Server dapat di akses dari jauh dan melewati multiple platform.

b. Komponen Dasar Client Server


Client Merupakan terminal yang digunakan oleh pengguna untuk meminta layanan
tertentu yang dibutuhkan.Peranan client adalah mengirimkan pesan berupa permintaan
layanan ke server.PC, Ponsel, Komunikator, Robot, Televisi dan alat lainnya yang
membutuhkan informasi.

c. Middleware
Merupakan komponen perantara yang memungkinkan client dan server untuk saling
terhubung dan berkomunikasi satu dengan yang lain.Menerjemahkan pesan dari client
agar dapat dimengerti oleh server.Menerjemahkan hasil proses dari server agar dapat
dipahami oleh client.Mengirimkan hasil proses yang telah diterjemahkan kembali ke
client.Transaction Monitor (TP), Remote Procedure Calling (RPC), Object Request
Broker (ORB). Server Merupakan pihak yang menyediakan layanan. Menerima pesan
permintaan layanan dari client. Memproses permintaan dari client.Mengirimkan hasil
permintaan ke client.Server Basis Data, Monitor TP, Server Groupware, Server Object,
Server Web.
d. Ciri – Ciri Client Server :
 Berbasis layanan Server memberikan sejumlah layanan yang dibutuhkan dan diminta
oleh client.
 Sumber daya yang digunakan bersama Server mengelola sejumlah sumber daya yang
dimilikinya agar dapat diakses dan digunakan secara bersama-sama oleh terminal-
terminal client yang terhubung pada server.
 Hubungan dan interaksi antara client-server. Hubungan yang terjadi antara server dan
client adalah one-to-many.
 Client tidak perlu mengetahui lokasi fisik server. Server dapat terletak di berbagai
tempat yang belum tentu diketahui oleh client.
 Interoperabilitas perangkat lunak dan perangkat keras Perangkat keras dan perangkat
lunak yang digunakan oleh masing-masing client tidak harus sama dengan yang
digunakan pada server, namun masih dapat saling terkoneksi antara satu dan yang
lain.
 Pertukaran berbasis pesan Mekanisme dari client-server berdasar pada pertukaran
pesan. Pesan yang dipertukarkan ialah permintaan layanan dan umpan balik dari
permintaan layanan.
 Enkapsulasi layanan Client tidak perlu mengetahui proses pengolahan permintaan
yang terjadi dalam server sehingga client tidak dapat mengontrol proses pengolahan
permintaan.
 Skalabilitas adalah kemampuan untuk diperbesar atau diperkecilnya ukuran sistem
client server dapat diubah secara horizontal maupun vertikal .
 Konsistensi data Data hanya dikelola pada server pusat sehingga konsistensi dan data
lebih terjamin dan biaya pemeliharaan pun menjadi lebih murah.

e. Server Berkas
Sistem berkas terdistribusi adalah sebuah sistem di mana banyak pengguna dapat berbagi
berkas dan sumber daya penyimpanan. Client, server, dan media penyimpanan dalam
sistem terdistribusi tersebar pada perangkat-perangkat yang terdapat dalam sistem
terdistribusi.
Sistem jaringan server berkas ialah system jaringan dimana layanan yang diberikan server
berupa berkas,baik berkas aplikasi, seperti pengolahan kata, pengolah angka, pengolah
data, pengolah gambar dan lain sebagainya, maupun berkas yang dihasilkan oleh aplikasi
tersebut, seperti dokumen pengolah kata, table-tabel pengolah angka, berkas presentase
dan lain sebagainya.

f. Adapun tahapan proses layanan jaringan adalah sebagai berikut :


 Client meminta berkas tertentu kepada server
 Server mengirmkan keseluruhan berkas yang diminta ke client.

g. Server Basis Data


Pada basis data terdistribusi (distributed database), data disimpan pada beberapa tempat
(site), setiap tempat diatur dengan suatu DBMS (Database Management System) yang
dapat berjalan secara independent. Sistem jaringan server basis data adalah system
jaringan dimana layanan yang diberikan oleh server berupa pengolahan dan penyajian
data berdasarkan perintah terstruktur yang diberikan client.
h. Server Transaksi
Transaksi berhubungan dengan sistem manajemen database. Transaksi adalah eksekusi
program yang mengakses database. System jaringan server transaksi ialah system
jaringan dimana layanan yang diberikan server berupa hasil proses dari sekelompok
perintah terstruktur yang diberikan client.
i. Adapun Tahapan Proses Layanan Jaringan Adalah Sebagai Berikut:
Keterangan : Client meminta layanan dari server berupa suatu prosedur yang berisi
sekumpulan query.Setelah menerima prosedur dari client, server berusaha menjalankan
keseluruhan perintah di dalam prosedur.Bila seluruh perintah dalam prosedur dapat
dijalankan dengan benar, maka hasil prosedur akan dikirmkan ke client melalui jaringan.
Groupware Server Sistem jaringan groupware server ialah sistem jaringan dimana
layanan yang diberikan server berupa fasilitas pemakaian bersama informasi semi
terstruktur di antara pengguna jaringan.

j. Alasan menggunakan client server :


 Kapasitas Beban client akan lebih ringan jika data
 Disimpan di server dan data tersebut digunakan bersama oleh banyak client.
 Keamanan data akan lebih terjamin jika disimpan di server dan membatasi
pengguna yang dapat mengakses server.
 Penghematan Sumber daya yang dimiliki server dapat digunakan oleh terminal-
terminal client, sehingga biaya investasi untuk sumber daya dapat dihemat.

Ada beberapa Model Client/Server yang penting untuk diketahui. Dimulai dari arsitektur
mainframe hingga arsitektur client/server.
a. Arsitektur Mainframe
Pada arsitektur ini, terdapat sebuah komputer pusat (host) yang memiliki sumber daya
yang sangat besar, baik memori, processor maupun media penyimpanan. Melalui
komputer terminal, pengguna mengakses sumber daya tersebut. Komputer terminal hanya
memiliki monitor/keyboard dan tidak memiliki CPU. Semua sumber daya yang diperlukan
terminal dilayanioleh komputer host. Model ini berkembang pada akhir tahun 1980-an.

b. Arsitektur File Sharing


Pada arsitektur ini komputer server menyediakan file-file yang tersimpan di media
penyimpanan server yang dapat diakses oleh pengguna. Arsitektur file sharing memiliki
keterbatasan, terutama jika jumlah pengakses semakin banyak serta ukuran file yang di
sharing sangat besar. Hal ini dapat mengakibatkan transfer data menjadi lambat. Model
ini populer pada tahun1990-an.

c. Arsitektur Client/Server
Karena keterbatasan sistem file sharing, dikembangkanlah arsitektur client/server. Salah
satu hasilnya yaitu berupa software database server yang menggantikan software database
berbasis file server. Dikenalkan pula RDBMS (Relational Database Management
System). Dengan arsitektur ini, query data ke server dapat terlayani dengan lebih cepat
karena yang ditransfer bukanlah file, tetapi hanyalah hasil dari query tersebut. RPC
(Remote Procedure Calls) memegang peranan penting pada arsitektur client/server.
d. Model Two-tier
Model Two-tier terdiri dari tiga komponen yang disusun menjadi dua lapisan: client (yang
meminta service) dan server (yang menyediakan service). Tiga komponen tersebut yaitu :
 User Interface, yaitu antar muka program aplikasi yang berhadapan dan digunakan
langsung oleh user.
 Manajemen proses
 Database Model ini memisahkan peranan user interface dan database dengan jelas,
sehingga terbentuk dua lapisan.

c. Model Three-tier
Pada model ini disisipkan satu layer tambahan diantara user interface tier dan database
tier. Tier tersebut dinamakan middle-tier. Middle-Tier terdiri dari bussiness logic dan
rules yang menjembatani query user dan database, sehingga program aplikasi tidak bisa
mengquery langsung ke database server, tetapi harus memanggil prosedur-prosedur yang
telah dibuat dan disimpan pada middle-tier. Dengan adanya server middle-tier ini, beban
database server berkurang. Jika query semakin banyak dan/atau jumlah pengguna
bertambah, maka server-server ini dapat ditambah, tanpa merubah struktur yang sudah
ada. Ada berbagai macam software yang dapat digunakan sebagai server middle-tier.
Contohnya MTS (Microsoft Transaction Server) dan MIDAS.
9. Agent
Agent adalah entitas perangkat lunak yang didedikasikan untuk tujuan tertentu yang
memungkinkan user untuk mendelegasikan tugasnya secara mandiri, selanjutnya software
agent nantinya disebut agent saja. Agent bisa memiliki ide sendiri mengenai bagaimana
menyelesaikan suatu pekerjaan tertentu atau agenda tersendiri. Agent yang tidak berpindah ke
host lain disebut stationary agent.
Karakteristik dari Agent :
a. Autonomy :
Agent dapat melakukan tugas secara mandiri dan tidak dipengaruhi secara langsung oleh
user, agent lain ataupun oleh lingkungan (environment). Untuk mencapai tujuan dalam
melakukan tugasnya secaramandiri, agent harus memiliki kemampuan kontrol terhadap
setiap aksi yang mereka perbuat, baik aksi keluar maupun ke dalam.

b. Intelligence, Reasoning, dan Learning :


Setiap agent harus mempunyai standar minimum untuk bisa disebut agent, yaitu intelegensi
(intelligence). Dalam konsep intelligence, ada tiga komponen yang harus dimiliki : internal
knowledge base, kemampuan reasoning berdasar pada knowledge base yang dimiliki, dan
kemampuan learning untuk beradaptasi dalam perubahan lingkungan.

c. Mobility dan Stationary :


Khusus untuk mobile agent, dia harus memiliki kemampuan yang merupakan karakteristik
tertinggi yang dia miliki yaitu mobilitas. Berbeda dengan stationary agent . Tetapi
keduanya tetap harus memiliki kemampuan untuk mengirim pesan dan berkomunikasi
dengan agent lain.

d. Delegation :
Agent bergerak dalam kerangka menjalankan tugas yang diperintahkan oleh user.
Fenomena pendelegasian (delegation) ini adalah karakteristik utama suatu program
disebut agent.

e. Reactivity :
Kemampuan untuk bisa cepat beradaptasi dengan adanya perubahan informasi yang ada
dalam suatu lingkungan. Lingkungan itu bisa mencakup : agent lain, user, informasi dari
luar, dsb.

f. Proactivity dan Goal-Oriented :


Sifat proactivity boleh dibilang adalah kelanjutan dari sifat reactivit . Agent tidak hanya
dituntut bisa beradaptasi terhadap perubahan lingkungan, tetapi juga harus mengambil
inisiatif langkah penyelesaian apa yang harus diambil. Untuk itu agent harus didesain
memiliki tujuan (goal) yang jelas, dan selalu berorientasi kepada tujuan yang diembannya
(goal-oriented ).

g. Communication and Coordination Capability :


Agent harus memiliki kemampuan berkomunikasi dengan user dan juga agent lain.
Masalah komunikasi dengan user adalah masuk ke masalah user interface dan
perangkatnya, sedangkan masalah komunikasi, koordinasi, dan kolaborasi dengan agent
lain adalah masalah sentral penelitian Multi Agent System (MAS).
Bagaimanapun juga, untuk bisa berkoordinasi dengan agent lain dalam menjalankan tugas,
perlu bahasa standard untuk berkomunikasi. Tim Finin adalah peneliti software agent yang
banyak berkecimpung dalam riset mengenai bahasa dan protokol komunikasi antar agent.
Salah satu produk mereka adalah Knowledge Query and Manipulation Language
(KQML). Dan masih terkait dengan komunikasi antar agent adalah Knowledge
Interchange Format (KIF).

10. Klasifikasi Agent Software


a. Klasifikasi menurut Karakteristik yang Dimiliki
Menurut Nwana, agent bisa diklasifikasikan menjadi delapan berdasarkan pada
karakteristiknya.

 Collaborative Agent :
Agent yang memiliki kemampuan melakukan kolaborasi dan koordinasi antar
agent dalam kerangka Multi Agent System (MAS)
 Interface Agent :
Agent yang memiliki kemampuan untuk berkolaborasi dengan user, melakukan
fungsi monitoring dan learning untuk memenuhi kebutuhan user.
 Mobile Agent :
Agent yang memiliki kemampuan untuk bergerak dari suatu tempat ke tempat
lain, dan secara mandiri melakukan tugas ditempat barunya tersebut, dalam
lingkungan jaringan komputer.
 Information dan Internet Agent :
Agent yang memiliki kemampuan untuk menjelajah internet untuk melakukan
pencarian, pemfilteran, dan penyajian informasi untuk user, secara mandiri.
Atau dengan kata lain, memanage informasi yang ada di dalam jaringan
Internet.
 Reactive Agent :
Agent yang memiliki kemampuan untuk bisa cepat beradaptasi dengan
lingkungan baru dimana dia berada.
 Hybrid Agent :
Kita sudah mempunyai lima klasifikasi agent . Kemudian agent yang memiliki
katakteristik yang merupakan gabungan dari karakteristik yang sudah kita
sebutkan sebelumnya adalah masuk ke dalam hybrid agent .
 Heterogeneous Agent System :
Dalam lingkungan Multi Agent System (MAS),apabila terdapat dua atau lebih
hybrid agent yang memiliki perbedaan kemampuan dan karakteristik, maka
sistem MAS tersebut kita sebut dengan heterogeneous agent system.

b. Klasifikasi menurut Lingkungan Dimana Dijalankan


 Desktop Agent :
Agent yang hidup dan bertugas dalam lingkungan Personal Computer (PC), dan
berjalan diatas suatu Operating System (OS).Termasuk dalam klasifikasi ini adalah:
- Operating System Agent
- Application Agent
- Application Suite Agent
 Internet Agent :
Agent yang hidup dan bertugas dalam lingkungan jaringan Internet, melakukan
tugas memanage informasi yang ada di Internet.Termasuk dalam klasifikasi ini
adalah:
- Web Search Agent
- Web Server Agent
- Information Filtering Agent
- Information Retrieval Agent
- Notification Agent
- Service Agent
- Mobile Agent
 Intranet Agent :
Agent yang hidup dan bertugas dalam lingkungan jaringan Intranet, melakukan
tugas memanage informasi yang ada di Intranet.Termasuk dalam klasifikasi ini
adalah:
- Collaborative Customization Agent
- Process Automation Agent
- Database Agent
- Resource Brokering Agent
Agent Riset dan Aplikasi Software Agent Dibawah ini beberapa contoh riset
Software Agent dalam bidang industri, internet/bisnis, entertainment, medis, dan
bidang pendidikan.
- Riset dan Aplikasi Software Agent di Dunia Industri Manufacturing, Process
Control, Telecommunications, Air Traffic Control, Transportation System .
- Riset dan Aplikasi Software Agent di Dunia Internet dan Bisnis Information
Management, Information Filtering, Information Gathering, Electronic
Commerce, Distributed Project Management.
- Riset dan Aplikasi Software Agent di Dunia Entertainment Games 4. Riset
dan Aplikasi Software Agent di Dunia Medis.
c. Bahasa Pemrograman yang digunakan
Bahasa pemrograman yang dipakai untuk tahap implementasi dari softwareagent,
sangat menentukan keberhasilan dalam implementasi agent sesuai dengan yang
diharapkan. Bahasa pemrograman yang dipakai untuk tahap implementasi darisoftware
agent, sangat menentukan keberhasilan dalam implementasi agent sesuaidengan yang
diharapkan. Beberapa penelitian memberikan petunjuk tentang bagaimana karakteristik
bahasa pemrograman yang sebaiknya di pakai [Knap e, 1995] [Brenner et al, 1998].
Dianranya yaitu :
 Object-Orientedness:
Karena agent adalah berhubungan dengan obyek, bahkan beberapa peneliti
menganggap agent adalah obyek yang aktif, maka juga agent harus
diimplementasikan kedalam pemrorgaman yang berorientasi obyek (object-
oriented programming language).
 Platform Independence:
Seperti sudah dibahas pada bagian sebelumnya, bahwa agent hidup dan berjalan
diberbagai lingkungan. Sehingga idealnya bahasa pemrograman yang dipakai untuk
implementasi adalah yang terlepas dari platform, atau dengan kata lain program
tersebut harus bisa dijalankan di platform apapun (platform independence).
 Communication Capability:
Pada saat berinteraksi dengan agent lain dalam suatu lingkungan jaringan(network
environment), diperlukan kemampuan untuk melakukan komunikasi secara fisik.
Sehingga diperlukan bahasa pemrograman yang dapat mensupport pemrograman
yang berbasis network dan komunikasi.
 Security:
Faktor keamanan (security) adalah factor yang sangat penting dalam memilih
bahasa pemrorgaman untuk implementasi software agent. Terutama untuk
mobilagent, diperlukan bahasa pemrograman yang mensupport level-level
keamanan yangbisa membuat agent bergerak dengan aman.
 Code Manipulation:
Beberapa aplikasi software agent memerlukan manipulasi kode programsecara
runtime, sehingga diperlikan bahasa pemrograman untuk software agent yangdapat
menangani masalah runtime tersebut. Dari karakteristik di atas dapat disimpulkan
bahwa bahasa pemrograman yang layak untuk mengimplementasikan software
agent adalah sebagai berikut :
- Java
- Telescript
- Tcl/Tk, Safe-Tcl, Agent-Tcl

Anda mungkin juga menyukai