7
BAB 2
LANDASAN TEORI
2.1 Teori Umum
2.1.1 Jaringan Komputer
Jaringan komputer adalah sejumlah komputer yang dikelompokkan dan
dihubungkan satu dengan yang lainnya menggunakan protocol
komunikasi
melalui media transmisi atau media komunikasi, sehingga dapat saling berbagi
data
atau
informasi,
program-program, penggunaan bersama
piranti keras
(printer, hardisk, scanner, CD Room, serta piranti keras lainnya), dan
memberikan
layanan
komunikasi
antar pemakai.
Dua
komputer
atau
lebih
dikatakan saling berhubungan (terkoneksi) bila saling dapat bertukar informasi
dan
data.
Hubungan
antar
Komputer tersebut tidak terbatas
berupa
kabel
tembaga saja, namun bisa juga melalui fiber optic, gelombang microwave,
infrared, dan bahkan melalui satelit. Pada dasarnya tujuan daripada pembuatan
jaringan adalah untuk :
Dapat menghemat hardware seperti berbagi pemakaian printer dan CPU
Melakukan komunikasi, contohnya surat elektronik,
instant
messaging, dan
chatting
Mendapatkan akses informasi dengan cepat, contohnya web browsing
Melakukan sharing data
|
8
Berdasarkan tipe transmisinya, network dibagi menjadi dua bagian
besar yaitu broadcast dan point-to-point. Dalam broadcast network, komunikasi
terjadi dalam sebuah saluran komunikasi yang digunakan secara bersama-sama,
dimana data berupa paket yang dikirimkan dari sebuah komputer akan
disampaikan
ke
tiap komputer
yang
ada
dalam jaringan
tersebut.
Paket
data
hanya
akan diproses oleh
komputer tujuan
dan
akan dibuang oleh
komputer
yang bukan tujuan paket tersebut. Sedangkan pada point-to-point network,
komunikasi
data
terjadi
melalui
beberapa koneksi antar sepasang komputer,
sehingga
untuk
mencapai
tujuannya sebuah paket mungkin harus melalui
beberapa
komputer terlebih
dahulu. Oleh karena
itu,
dalam tipe
jaringan
ini,
pemilihan rute yang baik menentukan bagus tidaknya koneksi data yang
berlangsung.
a. Local Area Network (LAN), adalah sebuah jaringan komputer yang
jaringannya
hanya
mencakup wilayah
kecil
seperti
jaringan
komputer
kampus,
gedung,
kantor,
dalam rumah,
sekolah
atau
yang
lebih
kecil.
Biasanya LAN menggunakan teknologi IEEE 802.3 yang
mempunyai
kecepatan transfer 10, 100, 1000 Mbit/s. Pada sebuah LAN, setiap komputer
mempunyai daya komputasi sendiri, berbeda dengan konsep dump terminal.
Setiap komputer juga dapat mengakses sumber daya yang ada di LAN sesuai
dengan hak akses yang telah diatur. Sumber daya tersebut dapat berupa data
atau perangkat seperti printer. Pada LAN, seorang pengguna juga dapat
berkomunikasi dengan pengguna yang lain dengan menggunakan aplikasi
yang sesuai.
|
9
Beberapa teknologi yang digunakan dalam LAN antara lain :
Ethernet
Token ring
FDDI
b.
Wide
Area
Network
(WAN),
adalah
jaringan
komputer
yang
merupakan
gabungan beberapa LAN. WAN dapat memberikan akses kepada komputer,
printer ataupun device yang lain untuk saling berkomunikasi dan melakukan
sharing sehingga untuk berkomunikasi dapat dilakukan tanpa mengenal
jarak. Wide Area Network dirancang untuk :
Menghubungkan antar jaringan pada skala geografis yang besar.
Membuat
user dapat
melakukan komunikasi dengan
user yang
lain
tanpa
mengenal jarak.
Mendukung email, internet, file transfer, dan service e-commerce.
Untuk merancang sebuah Wide Area Network maka diperlukan beberapa
device maupun protocol. Biasanya jenis protocol yang digunakan dalam
Wide Area Network antara lain :
Multi Protocol Layer Switching (MPLS)
Integrated Services Digital Network (ISDN)
Digital subscriber line (DSL)
Frame Relay
X.25
PPP
HDLC
|
10
VPN
Selain
itu,
device
yang
biasa
digunakan
antara
lain
router,
communication
server, modem CSU/DSU, dan frame relay switch.
c. Metropolitan
Area
Network
(MAN),
adalah
jaringan
komputer
yang
merupakan gabungan beberapa LAN di
satu wilayah geografis. MAN
biasanya dibuat jika jaringan LAN tersebut hanya berada dalam satu wilayah
saja. Penggunaan device dan protocolnya hampir sama dengan WAN.
2.1.2 Internet
Internet adalah suatu jaringan publik dimana pengguna yang ada di luar
jaringan dapat mengakses sumber yang ada di jaringan publik. Definisi lain
mengatakan bahwa internet adalah suatu jaringan antar komputer yang saling
dihubungkan.
Media
penghubung
tersebut
bisa
melalui kabel, kanal satelit
maupun frekuensi radio, sehingga komputer-komputer yang terhubung tersebut
dapat saling berkomunikasi. Setiap komputer
yang terhubung dengan jaringan
tersebut,
diberikan
sebuah
nomor
yang unik, dan berkomunikasi satu sama
lainnya dengan bahasa komunikasi yang sama. Bahasa komunikasi yang sama
ini disebut protokol. Protokol yang digunakan di internet adalah TCP/IP
(Transmission Control Protocol / Internet Protocol).
Internet
itu
sendiri
memiliki beberapa kegunaan
yang sangat membantu bagi
para penggunanya, yaitu :
|
11
Fungsi komunikasi
Internet adalah alat komunikasi, kegunaan yang sangat penting dari internet
adalah pertukaran pesan dengan menggunakan electronic mail (e-mail).
Fungsi Resource Sharing
Dengan internet, kita dapat mencari software, essay, data dan program dari
ribuan titik distribusi di seluruh dunia.
Fungsi Resource Discovery
Navigasi
untuk
mencari
file
tertentu,
dokumen,
host atau
orang diantara
jutaan host.
Fungsi Komunitas
Masyarakat pengguna internet
Layanan yang diberikan oleh internet yaitu :
Internet memungkinkan aplikasi aplikasi terdistribusi yang berjalan pada
end system yang berbeda untuk saling bertukar data. Beberapa contoh dari
aplikasi tersebut adalah remote login, e-mail, web surfing, instant
messaging, dll.
Internet menyediakan dua layanan sehubungan dengan aplikasi terdistribusi
yang
dijalankan, yaitu connection-oriented reliable service dan
connectionless
unreliable
service. Connection-oriented
reliable
service
menjamin bahwa data yang dikirimkan sampai kepada penerima secara utuh
dan dalam urutan yang benar. Sedangkan connectionless unreliable service
tidak menjamin keutuhan dan urutan data yang sampai kepada penerima.
|
![]() 12
2.1.3 TCP/IP
Definisi
dari
TCP/IP
adalah sebuah
protokol
yang
menentukan
bagaimana
komputer
komputer
dalam suatu
jaringan
saling
terhubung,
mengirim, serta menerima pesan lewat internet. TCP/IP merupakan bahasa
internet, dimana TCP/IP
memungkinkan aneka jenis komputer, dari PC
sampai mainframe untuk bertukar informasi.( Tanenbaum, 2003)
TCP/IP protocol suite terdiri dari banyak protokol dengan dua protokol
utama,
yaitu
Transport
Control
Protocol
(TCP)
dan Internet
Protocol
(IP).
Dalam protokol
jaringan
TCP/IP,
sebuah
port
adalah
mekanisme
yang
mengizinkan sebuah komputer untuk mendukung beberapa sesi koneksi dengan
komputer
lainnya
dan
program di
dalam jaringan.
Port
dapat
mengidentifikasikan aplikasi dan layanan yang menggunakan koneksi di dalam
jaringan
TCP/IP.
Sehingga, port juga
mengidentifikasikan sebuah
proses
tertentu di mana sebuah server dapat memberikan sebuah layanan kepada klien
atau bagaimana sebuah klien dapat mengakses sebuah layanan yang ada dalam
server. Port dapat dikenali dengan angka 16-bit (dua byte) yang disebut dengan
Port Number dan diklasifikasikan dengan jenis protokol transport
apa
yang
digunakan, ke dalam Port TCP dan Port UDP.
Dilihat dari penomorannya, port UDP dan TCP dibagi menjadi tiga jenis, yakni
sebagai berikut:
a. Well-known
Port:
yang
pada
awalnya
berkisar
antara
0
hingga
255
tapi
kemudian diperlebar
untuk
mendukung antara 0
hingga 1023. Port
number
|
![]() 13
yang termasuk ke dalam well-known port, selalu merepresentasikan layanan
jaringan yang sama, dan ditetapkan oleh Internet Assigned Number
Authority (IANA). Beberapa di antara port-port yang berada di dalam range
Well-known port masih belum ditetapkan dan direservasikan untuk
digunakan
oleh
layanan
yang
bakal
ada
di
masa
depan. Well-known
port
didefinisikan dalam RFC 1060.
b. Registered Port: Port-port yang digunakan oleh vendor-vendor komputer
atau
jaringan
yang
berbeda
untuk
mendukung
aplikasi dan sistem operasi
yang mereka buat. Registered port juga diketahui dan didaftarkan oleh IANA
tapi tidak dialokasikan secara permanen, sehingga vendor lainnya dapat
menggunakan port number
yang
sama. Range registered port berkisar dari
1024 hingga 49151 dan beberapa port di antaranya adalah Dynamically
Assigned Port.
c.
Dynamically Assigned Port: merupakan port-port yang ditetapkan oleh
sistem operasi
atau
aplikasi
yang
digunakan
untuk
melayani
request
dari
pengguna sesuai dengan kebutuhan. Dynamically Assigned Port berkisar dari
1024 hingga 65536 dan dapat digunakan atau dilepaskan sesuai kebutuhan.
Ciri-ciri yang terdapat pada protokol TCP/IP yang juga merupakan keunggulan
dari protokol tersebut adalah :
Perkembangan protokol TCP/IP menggunakan standar protokol terbuka
Tidak tergantung pada perangkat keras atau sistem operasi jaringan tertentu
Cara pengalamatan bersifat unik dalam skala global
TCP/IP memiliki fasilitas routing
|
![]() 14
Application Layer
Transport Layer
Internet Layer
Network Access Layer
Physical Layer
Dalam arsitektur
jaringan
komputer,
terdapat
suatu
lapisan
-
lapisan
(layer)
yang memiliki
tugas
spesifik
serta
memiliki
protokol
tersendiri.
ISO
(International Standard Organization) telah mengeluarkan suatu standard untuk
arsitektur jaringan komputer yang dikenal dengan nama Open System
Interconnection
(OSI).
Standard
ini terdiri
dari
7
lapisan
protokol
yang
menjalankan
fungsi
komunikasi
antara 2
komputer.
Dalam TCP/IP
hanya
terdapat 5 lapisan, yaitu :
Application Layer
Presentation Layer
Session Layer
Transport Layer
Network Layer
Data Link Layer
Physical Layer
Arsitektur OSI
Arsitektur TCP/IP
Gambar 2.1 Perbandingan Arsitektur OSI dan TCP/IP
Walaupun jumlahnya berbeda, namun semua
fungsi dari lapisan
lapisan arsitektur
OSI telah
tercakup oleh
arsitektur
TCP/IP.
Adapun
rincian
fungsi masing masing layer arsitektur TCP/IP adalah sbb :
a. Physical
Layer
(lapisan
fisik)
merupakan
lapisan
terbawah
yang
mendefinisikan besaran fisik seperti media komunikasi, tegangan, arus, dsb.
|
15
Lapisan
ini
dapat bervariasi
bergantung pada
media
komunikasi pada
jaringan
yang
bersangkutan.
TCP/IP
bersifat
fleksibel sehingga dapat
mengintegralkan mengintegralkan berbagai jaringan dengan media fisik yang
berbeda - beda.
b.
Network
Access
Layer
mempunyai
fungsi
yang
mirip
dengan
Data
Link
layer pada OSI. Lapisan ini mengatur penyaluran data frame-frame data pada
media fisik yang digunakan secara handal. Lapisan ini biasanya memberikan
servis
untuk
deteksi
dan
koreksi
kesalahan dari data yang ditransmisikan.
Beberapa contoh protokol
yang
digunakan
pada
lapisan
ini
adalah
X.25
jaringan
publik,
Ethernet
untuk
jaringan Etehernet, AX.25 untuk jaringan
Paket Radio dsb.
c.
Internet
Layer
mendefinisikan
bagaimana
hubungan
dapat
terjadi
antara
dua pihak yang berada pada jaringan yang berbeda seperti Network Layer
pada OSI.
Pada jaringan Internet yang terdiri atas puluhan juta host dan
ratusan ribu jaringan
lokal, lapisan ini bertugas
untuk
menjamin agar suatu
paket yang dikirimkan dapat menemukan tujuannya dimana pun berada. Oleh
karena itu, lapisan ini memiliki peranan penting terutama dalam mewujudkan
internetworking yang meliputi wilayah luas (worldwide Internet).
Beberapa tugas penting pada lapisan ini adalah :
Addressing,
yakni
melengkapi
setiap
datagram
dengan
alamat
Internet
dari tujuan. Alamat pada protokol inilah yang dikenal dengan Internet
Protocol
Address (IP Address). Karena pengalamatan (addressing) pada
|
16
jaringan TCP/IP berada pada level ini (software), maka jaringan TCP/IP
independen dari jenis media dan komputer yang digunakan.
Routing, yakni menentukan kemana datagram akan dikirim agar
mencapai tujuan yang diinginkan. Fungsi ini merupakan fungsi terpenting
dari Internet Protocol (IP). Sebagai protokol yang bersifat connectionless,
proses
routing
sepenuhnya
ditentukan
oleh
jaringan.
Pengirim tidak
memiliki kendali terhadap paket yang dikirimkannya untuk bisa mencapai
tujuan.
Router-router pada
jaringan TCP/IP lah yang sangat
menentukan
dalam penyampaian datagram dari penerima ke tujuan.
d. Transport Layer mendefinisikan cara-cara untuk melakukan pengiriman
data
antara
end
to
end host
secara
handal. Lapisan
ini
menjamin
bahwa
informasi yang diterima pada sisi penerima adalah sama dengan informasi
yang dikirimkan pada pengirim.
Untuk itu, lapisan ini memiliki beberapa fungsi penting antara lain :
Flow
Control.
Pengiriman data
yang telah
dipecah
menjadi paket-paket
tersebut
harus
diatur
sedemikian
rupa
agar
pengirim tidak
sampai
mengirimkan data dengan kecepatan yang melebihi kemampuan penerima
dalam menerima data.
Error Detection.
Pengirim
dan
penerima juga
melengkapi
data dengan
sejumlah informasi yang bisa digunakan untuk memeriksa data yang
dikirimkan
bebas
dari kesalahan.
Jika
ditemukan
kesalahan
pada paket
data
yang
diterima,
maka penerima
tidak akan
menerima data
tersebut.
|
![]() 17
Pengirim akan
mengirim
ulang paket data yang mengandung kesalahan
tadi.
e.
Application Layer merupakan lapisan terakhir dalam arsitektur TCP/IP
yang berfungsi mendefinisikan aplikasi-aplikasi yang
dijalankan pada
jaringan. Karena itu, terdapat banyak protokol pada lapisan ini, sesuai
dengan banyaknya aplikasi TCP/IP yang dapat dijalankan. Contohnya adalah
SMTP (Simple Mail Transfer Protocol) untuk pengiriman e-mail, FTP
(File
Transfer Protocol) untuk transfer file, HTTP (Hyper Text Transfer Protocol)
untuk aplikasi web, dll.
Proses enkapsulasi data pada protokol TCP/IP dapat dijelaskan dari gambar
di bawah ini :
Gambar 2.2 Proses Enkapsulasi Data Pada Protocol TCP/IP
2.1.4 Web Server
Web Server
adalah
software
yang
menjadi tulang belakang dari worl
wide
web
(www).
Web
server
menunggu
permintaan
dari
client
yang
|
18
menggunakan browser seperti Netscape Navigator, Internet Explorer, Mozilla,
dan
program browser
lainnya.
Jika ada permintaan dari
browser,
maka
web
browser akan memproses permintaan itu kemudian memberikan hasil
prosesnya berupa data yang diinginkan kembali ke browser.
Data ini mempunyai format yang standar, disebut dengan format SGML
(standar general
markup
language).
Data
yang
berupa
format
ini
kemudian
akan
ditampilkan
oleh
browser
sesuai dengan
kemampuan
browser
tersebut.
Contohnya, bila data yang dikirim berupa gambar, browser yang hanya mampu
menampilkan teks (misalnya lynx) tidak akan mampu
menampilkan gambar
tersebut, dan jika ada akan menampilkan alternatifnya saja.
Web server, untuk berkomunikasi dengan client-nya (web browser)
mempunyai protokol sendiri, yaitu HTTP (hypertext tarnsfer protocol). Dengan
protokol
ini,
komunikasi
antar
web
server
dengan
client-nya dapat saling
dimengerti dan lebih mudah.
Seperti telah dijelaskan diatas, format data pada world wide web adalah
SGML. Tapi para pengguna internet saat ini lebih banyak menggunakan format
HTML
(hypertext
markup
language)
karena
penggunaannya
lebih
sederhana
dan mudah dipelajari.
Kata
HyperText
mempunyai arti bahwa seorang
pengguna
internet
dengan web browsernya dapat membuka dan membaca dokumen-dokumen
yang
ada
dalam komputernya
atau
bahkan
jauh
tempatnya
sekalipun. Hal
ini
memberikan cita rasa dari suatu proses yang tridimensional, artinya pengguna
|
19
internet dapat membaca dari satu dokumen ke dokumen yang lain hanya
dengan mengklik beberapa bagian dari halaman-halaman dokumen (web) itu.
Proses yang dimulai dari permintaan webclient (browser), diterima web
server, diproses, dan dikembalikan hasil prosesnya oleh web server ke web
client
lagi
dilakukan secara
transparan.
Setiap orang
dapat
dengan mudah
mengetahui apa yang terjadi pada tiap-tiap proses. Secara garis besarnya web
server hanya memproses semua masukan yang diperolehnya dari web
clientnya.
2.1.5 HTTP
Protokol HTTP pertama kali dipergunakan dalam www pada tahun
1990. Pada saat itu yang gunakan adalah protokol HTTP versi 0.9. Versi 0.9 ini
adalah protokol
transfer dokumen secara
mentah, yaitu data dokumen dikirim
sesuai dengan isi dari dokumen tersebut tanpa memandang tipe dari dokumen.
Kemudian pada tahun 1996 protokol HTTP diperbaiki menjadi HTTP versi 1.0.
Perubahan ini untuk mengakomodasi
tipe-tipe dokumen yang hendak dikirim
beserta enkoding yang dipergunakan dalam pengiriman data dokumen.
Sesuai
dengan
perkembangan
infrastruktur
internet
maka
pada
tahun
1999 dikeluarkan HTTP versi 1.1 untuk mengakomodasi proxy, cache dan
koneksi yang persisten. HTTP (HyperText Transfer Protocol) adalah protokol
yang
dipergunakan
untuk
mentransfer
dokumen
dalam World
Wide
Web
(WWW). Protokol ini adalah protokol ringan, tidak berstatus dan generik yang
dapat dipergunakan berbagai macam tipe dokumen. Pengembangan HTTP
|
20
dikoordinasi
oleh
Konsorsium World
Wide
Web
(W3C)
dan
grup
bekerja
Internet Engineering Task Force (IETF), bekerja dalam publikasi satu seri
RFC, yang paling terkenal RFC 2616, yang menjelaskan HTTP/1.1, versi
HTTP yang digunakan umum sekarang ini.
HTTP adalah sebuah protokol meminta atau menjawab antara client dan
server. Sebuh client HTTP seperti web browser, biasanya memulai permintaan
dengan membuat hubungan TCP/IP ke port tertentu di tuan rumah yang jauh
(biasanya port 80). Sebuah server HTTP yang mendengarkan di port tersebut
menunggu
client
mengirim kode
permintaan
(request),
lalu
me-reply dengan
HTTP response.
Contoh request HTTP:
GET
/index.htm HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0
Contoh Response HTTP:
HTTP/1.1 200 OK
Date: Wed, 10 Jun 2009 19:53:40 GMT
Server: Apache/2.2.4 (Win32) DAV/2 mod_ssl/2.2.4
OpenSSL/0.9.8e mod_autoindex_color PHP/5.2.2
Content-Length: 22
Content-Type: text/html
|
21
<HTML>
:
</HTML>
2.1.6 HTTPS
Hyper
Text
Transfer
Protocol
over Secure socket layer (HTTPS)
merupakan versi aman (save) dari HTTP. Ditemukan oleh Netscapes
communication Corporation untuk menyediakan otentifikasi dan komunikasi
tersandi (memiliki sandi). Selain menggunakan komunikasi Plain Text, HTTPS
menyandikan sesi data menggunakan protokol SSL (Secure Socket Layer) atau
protocol TLS (Transport Layer Security). Kedua protokol tersebut memberikan
perlindungan
yang cukup dari serangan eavesdroppers dan man in the middle
attacks. Pada umumnya, port HTTPS adalah 443.
2.1.7 PHP
Bahasa scripting adalah bahasa yang dapat menambah fitur
fitur
tambahan
secara
tertulis
pada HTML,
mengingat
terbatasnya
kemampuan
HTML. Bahasa scripting di bagi menjadi 2 jenis, yaitu server side scripting dan
client side scripting.
Server
side
script adalah script
yang
diterjemahkan
oleh web server.
Server side script merupakan
satu set
instruksi
yang diproses oleh server dan
menghasilkan
HTML.
HTML
yang
dihasilkan
dikirim sebagai
bagian
dari
tanggapan HTTP ke browser.Browser kemudian menampilkan HTML tersebut.
|
22
Sedangkan
client
side script merupakan script yang diterjemahkan
oleh
browser.
PHP
merupakan server side script yang tergabung dalam HTML
yang
didukung
oleh
banyak web
server dan
termasuk
server
HTTP
Apache,
dan
internet
Informatioan
Service
milik
Microsoft. PHP
juga
merupakan
bahasa
pemograman yang
disukai
pada
bahasa scripting web linux. PHP
telah
dipengaruhi
oleh
perkembangan
bahasa
pemograman
lain
seperti
Perl,
C,
Java dan beberapa cakupan ASP (Active Server Pages).
PHP memiliki beberapa kelebihan, yaitu :
Ekstensibility, memiliki cakupan yang luas.
Sejumlah
modul
disediakan
untuk mendukung
hal
hal
seperti
hubungan
dengan database, xml, mail.
Didukung oleh sejumlah besar ISP(Internet Server Provider), yang berarti
aplikasi yang ditulis dengan PHP dapat dengan mudah diletakkan pada web
untuk dilihat oleh siapa saja.
Kombinasi yang popular saat ini adalah server HTTP Apache, PHP, dan
database MYSQL atau Postgre SQL. Di bawah ini merupakan langkah
langkah
untuk
mengirim
web
(Choi,2000,p2,pp49-51;Connoly,2002,pp965-
966) :
Pertama tama client meminta halaman web kemudian web server mencari
lokasi halaman web yang diminta.
Jika
halamn web
tersebut merupakan
halaman PHP
maka web server perlu
untuk memproses PHP untuk menghasilkan HTML yang akan dikembalikan
|
23
ke browser. Pada tahap ini jika halaman
web
diakhiri
dengan php, maka
server mengirimnya ke server machine PHP yang ada dalam web server
untuk diproses. Jadi kode PHP dimasukkan ke salah satu ujung web server
yang kemudian menghasilkan output berupa halaman
HTML murni. alaman
HTML tersebut kemudian dikirimkan ke browser. Di browser, halaman
HTML akan diterjemahkan untuk ditampilkan.
2.1.8 MySQL
Menurut artikel MSIT 643 Relational Database Management System
dan
Migrating
From
Microsoft
SQL
Server
and
Access
to
MySQL, pada
mulanya MySQL dikembangkan oleh TcX, sebuah perusahaan di Swedia oleh
Michael Widenius
sebagai perancang
utama.
Pada
tahun
1979,
ia
mengembangkan sebuah Database Management System yang pertama kali
diberi
nama
UNIREG.
Lalu pada tahun 1995, terlahirlah MySQL yang dirilis
ke internet. Pada tahun 1999, diperkirakan ada sekitar setengah juta server yang
menggunakan MySQL.
MySQL
sebagai
salah satu
DBMS
yang
paling
popular
memiliki
beberapa keunggulan, antara lain :
1. Performance yang tinggi, reliable, dan mudah untuk digunakan.
2. Open Source,
yang berarti dapat digunakan dan dikembangkan oleh siapa
saja.
3. Dapat dijalankan pada system client/server maupun
sebagai embedded
system.
|
24
4. Cross-Platform, MySQL dapat digunakan pada berbagai macam sistem
operasi.
2.1.9 Bahasa C
Bahasa C
dikembangkan pertama
kali
pada
laboratorium Bell
(USA)
sekitar tahun 1972 oleh Dennis Ritchie pada komputer DEC PDP-11 dengan
sistem operasi UNIX. Untuk melaksanakan pembakuan (standardisasi)
terhadap bahasa C, ANSI (American National Standards Institute) membentuk
team untuk
membuat
bahasa
C
standard
ANSI,
yang
dimulai
tahun
1983.
Standard ANSI inilah yang selanjutnya digunakan sebagai acuan dari berbagai
versi C yang beredar dewasa ini.
Bahasa C mempunyai kemampuan lebih dibanding dengan bahasa
pemrograman yang lain. Bahasa C merupakan bahasa
pemrograman yang
bersifat portabel, yaitu suatu program yang dibuat dengan bahasa C pada suatu
komputer akan dapat dijalankan pada komputer lain dengan sedikit (atau tanpa)
perubahan yang berarti.
Bahasa C merupakan bahasa yang
biasa digunakan untuk keperluan
pemrograman sistem, antara lain untuk membuat :
assembler
interpreter
kompiler
sistem operasi
program bantu (utility)
|
25
editor
paket program aplikasi
Beberapa
program paket
yang
beredar
seperti
dBase
dibuat
dengan
menggunakan
bahasa
C,
bahkan
sistem Operasi
UNIX
juga
dibuat
dengan
menggunakan bahasa C. Bahasa C sesungguhnya merupakan bahasa
pemrograman yang serbaguna yang pemakaiannya tidak terbatas untuk
pemrograman sistem, namun juga dapat digunakan untuk aplikasi bisnis,
matematis maupun games, bahkan untuk aplikasi
kecerdasan
buatan.
Dalam
beberapa literatur, bahasa C digolongkan
sebagai
bahasa
aras
menengah
(medium level language).
Penggolongan ini bukan berarti bahasa C kurang ampuh atau lebih sulit
dibandingkan dengan
bahasa
aras
tinggi
(high
level language, seperti Pascal,
Basic, Fortran, dll), namun untuk menegaskan bahwa bahasa C bukanlah
bahasa yang berorientasi pada mesin (yang merupakan ciri bahasa aras rendah
(low level language), yaitu bahasa mesin dan assembly). Pada kenyataannya, C
mengkombinasikan elemen dalam
bahasa aras tinggi dan bahasa aras
rendah,
yaitu kemudahan dalam membuat program yang ditawarkan pada bahasa aras
tinggi dan kecepatan eksekusi dari bahasa aras rendah.
2.1.10 Thread
Thread adalah sebuah pengontrol aliran program pelaksanaan program
dengan menggunakan kendali tunggal (Tanenbaum, 2001). Operasi yang paling
Modern saat ini adalah sistem yang banyak sekali menyediakan berbagai cara,
|
26
dan memungkinkan suatu proses terkendali dengan baik.Pendekatan tradisional
sebuah thread eksekusi per-proses, dimana konsep thread tidak dikenal.
Thread
bermanfaat
untuk
Multithreading yang berguna untuk
Multiprocessor dan Singleprocessor. Kegunaan untuk sistem Multiprocessor,
adalah :
Sebagai unit pararel atau tingkat granularitas pararelisme
Peningkatan kinerja disbanding berbasis proses
Sedangkan kegunaan Multithreading pada singleprocessor, adalah :
Kerja foreground dan background sekaligus di satu aplikasi
Penanganan asynchronous processing menjadi lebih baik
Mempercepat eksekusi program
Pengorganisasian program menjadi lebih baik
Karakteristik thread adalah :
Proses merupakan lingkungan eksekusi bagi thread-thread yang
dimilikinya. Thread-thread di satu proses memakai bersama sumber daya yang
dimiliki proses, yaitu :
Ruang alamat
Himpunan berkas yang dibuka
Himpunan berkas yang dibuka
Timer-timer
Sinyal-sinyal
Sumber daya-sumber daya lain milik proses
|
27
Tiap thread mempunyai property independen berikut seperti :
Keadaan (state) eksekusi thread (running, ready dan sebagainya)
Konteks pemroses
Thread
dapat dipandang
sebagai
satu PC
(program counter)
tersendiri
independen
di
satu
proses.
Beberapa
penyimpan
statik
per-thread
untuk
variable-variabel lokal.
a. Paket Thread
Paket thread adalah sekumpulan primitive (misalnya library calls)
untuk
pemrogram berhubungan
dengan
thread
di
program aplikasi.
Pertimbangan penting pembuatab paket thread adalah :
Waktu penciptaan thread
Penanganan critical region di tingkat thread
Penanganan private global variables
Implementasi paket thread
b. Jenis-jenis Thread Berdasarkan Waktu
Berikut
ini
adalah
macam
macam
thread
berdasarkan waktu
penciptaannya, yaitu :
1. Static threads
Jumlah thread yang akan dibuat ditentukan saat penulisan dan kompilasi
program.
Tiap
thread
langsung
dialokasikan
stack
tetap.
Keunggulan
dari thread ini adalah sederhana. Sedangkan kelemahannya adalah tidak
fleksibel.
|
28
2. Dynamic threads
Penciptaan dan penghancuran thread on-the-fly saat eksekusi.
Penciptaan thread biasanya lebih spesifik pada fungsi utamanya (seperti
pointer ke prosedur) dan ukuran stack, dapat juga ditambah parameter-
parameter lain seperti prioritas panjadualan. Keunggulan thread ini
adalah fleksibel. Kelemahannya adalah lebih rumit.
2.1.11 IPC (Inter-Process Communication)
Inter-Process Communication (IPC) atau Komunikasi antar Proses
adalah teknik-teknik untuk penukaran data antara banyak thread (fork kepada
dua atau lebih task yang berjalan secara konkuren) dalam satu atau lebih proses
(Tanenbaum, 2001). Proses dapat berjalan pada satu atau lebih computer yang
terhubung oleh sebuah network. Teknik-teknik IPC dibagi menjadi
metode-
metode untuk message passing, synchronization, shared memory, dan remote
procedure calls
(RPC).
Metode
IPC
yang
digunakan
dapat
berbeda-beda
tergantung bandwidth dan
latensi komunikasi antar thread, dan tipe data
yang
dikomunikasikan.
A. Shared Memory
Shared Memory merupakan salah satu metode interprocess
communication
yang
paling
sederhana, dimana
shared
memory
memperbolehkan 2 atau lebih proses untuk mengakses memory yang sama,
biasa disebut dengan
malloc, dan pointer dikembalikan ke memory yang
sebenarnya.
|
29
B. Socket Programming
Socket adalah mekanisme komunikasi yang memungkinkan
terjadinya pertukaran data antar program atau proses baik dalam satu
mesin
maupun antar mesin(Stevens, 1998). Gaya pemrograman socket sendiri
berawal dari sistem Unix
BSD
yang
terkenal
dengan
kepeloporannya
pada
bidang
penanganan
jaringan,
sehingga sering disebut BSD Socket. Socket
pertama kali diperkenalkan di system Unix BSD versi 4.2 tahun 1983 sebagai
kelanjutan
dari
implementasi
protokol
TCP/IP
yang
muncul
pertama
kali
pada system Unix BSD 4.1 pada akhir 1981. Hampir setiap varian Unix dan
Linux mengadopsi BSD socket.
Linux
menggunakan
paradigma
open-read-write-close. Sebagai
contoh, suatu aplikasi pertama harus memanggil open untuk menyiapkan file
yang akan diakses. Kemudian aplikasi tersebut
memangil
read atau write
untuk
membaca data dari pada
file atau
menuliskan data ke
file. Setelah itu
close dijalankan untuk mengakhiri aplikasi yang digunakan. Interface soket
dalam berkomunikasi bisa dilihat dalam gambar berikut :
|
![]() 30
Gambar 2.3 Interface Socket Dalam Berkomunikasi Data
Di dalam kotak menunjukkan system call / function yang dibutuhkan
untuk koneksi / komunikasi, misalnya socket(), bind(), listen(), connect(), dll.
Secara garis besar langkah langkah yang dilakukan pada client dan server
adalah sebagai berikut :
1. Langkah langkah dasar di client :
a)
Membuka koneksi client ke server, yang di dalamnya adalah :
Membuat socket dengan printah socket()
Melakukan pengalamatan ke server
Menghubungi server dengan connect()
b)
Melakukan
komunikasi
(mengirim
dan
menerima
data),
dengan
menggunakan perintah write() dan read().
c)
Menutup hubungan dengan perintah close().
|
![]() 31
2. Langkah langkah dasar di server :
a)
Membuat socket dengan printah socket()
b)
Mengikatkan socket kepada sebuah
alamat
network dengan perintah
bind()
c)
Menyiapkan
socket
untuk
menerima
koneksi
yang
masuk ke
server
dengan perintah listen()
d)
Menerima koneksi yang masuk ke server dengan perintah accept()
e)
Melakukan
komunikasi
(mengirim
dan
menerima
data),
dengan
menggunakan perintah write() dan read()
Gambar 2.4 Komunikasi Antar Sepasang Socket
|
![]() 32
Gambar 2.5 Client Server Socket
Struktur Pengalamatan
Jaringan
komputer
dalam melakukan
pengiriman
data
dapat
diilustrasikan
seperti
pengiriman
surat. Supaya surat
dapat
terkirim secara
benar,
maka alamat pengirim dan
penerima harus tertulis dengan jelas dan
lengkap.
Begitu juga dengan koneksi di socket, diperlukan variable yang
dipakai
untuk
menyimpan
address
clent dan server. Variable yang dipakai
berupa structure sockaddr dan sockaddr_in pada include socket.h di direktori
/usr/include/sys. Address
ini
akan dipakai pada waktu
melaukan connect(),
bind(), dan accept().
|
33
C. Mutex
Mutex (mutual
exclusion)
adalah
suatu
jenis
semaphore
yang
digunakan untuk menjamin hanya
ada satu proses yang berjalan untuk
mengakses
buffer pada
suatu
waktu.
Sehingga
thread
thread lain yang
mencoba
mengakusisi
mutex
akan
memblock. Pemblokiran didapatkan
dengan melakukan spinning atau sleeping. Mutex biasanya diberi inisialisasi
dengan angka 1.
Solaris memiliki dua tipe dasar mutex, yaitu adaptive dan spin.
Tipe default mutex adalah adaptive.
Tipe
mutex
ditentukan
ketika
diinisialisasikan oleh
mutex_init(9f). Sebagian besar
mutex di sistem adalah
adaptive,
dan
kode
pengunci dioptimalisasikan
untuk
mutex adaptive tanpa
perlu diperdebatkan. Dengan kata lain, mengakusisi mutex adaptive yang
tidak ada pemilikinya merupakan kasus yang paling umum dan path kodenya
paling cepat.
a. Mutex adaptive bekerja sebagai berikut :
Thread peminta mencoba mendapatkan pengunci. Jika pengunci
tidak ada pemiliknya, thread peminta mengakusisi pengunci dan
melanjutkan pemorosesannya. Jika pengunci telah ada pemiliknya, dan
pemilik
pengunci
sekarang
sedang berjalan
di
prosesor
(tentunya
ini
mempengaruhi mesin berprosesor gdana), thread peminta men-spin untuk
mencoba mengakusisi pengunci. Jika pemilik pengunci mem-blok (men-
switch keluar membiarkan thread lain berjalan), thread peminta tidur (
berhenti
men-spin
dan
men-switch
keluar).
Jika
pemilik
pengunci
|
34
melepaskan penguncinya, thread peminta bisa mengakusisi pengunci
tersebut (tentunya bisa saja terdapat
beberapa
thread
men-spin,
dalam
kasus ini hanya satu thread akan mendapatkan penguncinya). Jika thread
pemilik tidak sedang berjalan di prosesor, thread peminta tidur. Dalam
kasus dimana beberapa thread peminta tidur untuk mendapatkan
pengunci, thread-thread seperti ini
mengakusisi
pengunci
berdasarka
prioritas urutan FIFO.
b.
Mutex spin bekerja sebagai berikut :
Thread peminta me-mask interupsi di tingkat yang ditentukan
oleh
sebuah
argumen
dari
mutex_init(9f). Thread peminta mencoba
mengakusisi
pengunci.
Jika pengunci
telah
ada pemiliknya, thread
peminta men-spin dengan interrupts masked hingga pengunci dilepaskan
dan thread peminta dijamin memperoleh penguncinya. Ketika pengunci
tidak ada pemiliknya, thread peminta mengakusisi pengunci dan
melanjutkan pemrosesanya dengan interrupts masked. Interupsi di-
unmasked ketika pengunci dilepaskan. Dalam kasus dimana beberapa
thread
men-spin
(di prosesor
yang berbeda,
tentunya), salah satu thread
ini akan mengakusisi pengunci ketika pengunci dilepaskan. Siapa yang
akan mengakusisi pengunci tergantun siapa yang lebih dulu
mendapatkannya.
Penggunaan
mutex
bersifat
sukarela (voluntary). Penggunaan
mutex
terlalu
banyak
menimbulkan
resiko kinerja buruk. Hindari
penggunaan mutex karena menimbulkan resiko data tak-konsisten.
|
35
D. Semaphore
Semaphore
pada
UNIX
merupakan suatu counter yang dapat
digunakan untuk mensinkronisasi multiple
thread.
Apabila
menggunakan
semaphore, maka harus menyertakan preprocessor include <semaphore.h>
Secara deskripsi, semaphore dapat
digambarkan sebagai suatu
pemrograman struktur komponen data yang merupakan suatu variable
bilangan bulat tak negatif semval.
Seperti yang kita ketahui bersama bahwa semaphore dapat digunakan
ketika beberapa proses mencoba untuk mengakses file yang sama. Dalam hal
ini
kita
harus
membuat
semaphore
yang tersedia
agar
dapat
diakses
oleh
semua proses sehingga mereka dapat membaca dan memeriksa nilai juga
menginisialisasi
serta
mereinilisasi nilai
dari
semaphore
yang
sewajarnya.
Untuk alasan tersebut semaphore hanya disimpan di dalam kernel sehingga
dapat diakses oleh semua proses.
Karena
beberapa
kegunaan
seperti
onmode
menggunakan
koneksi -
koneksi memori yang dibagi bersama, maka kita harus mengatur sedikitnya
dua semaphore untuk menetapkan masing
masing kejadian pada server
database. Pertama, karena set awal dari VPs dan yang kedua adalah karena
koneksi
koneksi
memori yang dibagi bersama
untuk setiap penggunaan
server database.
Parameter
konfigurasi
sistem operasi
SEM-NI
pada
umumnya
menerapkan banyaknya semaphore untuk menetapkan pengalokasiannya.
Karena informasi tentang bagaimana cara menetapkan parameter parameter
|
36
terkait dengan semaphore melihat perintah konfigurasi untuk sistem operasi
yang digunakan.
Parameter
konfigurasi
sistem operasi
SEMMSL
pada
umumnya
menetapkan nomor maksimum dari semaphore semaphore per set. Tetapan
parameter ini untuk minimal 100.
Beberapa
sistem operasi
memerlukan
pengaturan
suatu
total
nomor
yang maksimum dari semaphore semaphore yang tersedia, yang mana pada
umumnya parameter konfigurasi ditetapkan oleh sistem operasi SEMMNS.
Semaphore dapat juga digunakan sebagai mekanisme sleep / wakeup.
Perbedaan antara semaphore dan variabel kondisi adalah semaphore tidak
memiliki
cara
untuk membangunkan
semua
thread (seperti
fungsi
cv_broadcast pada variabel kondisi).
a. Macam macam semaphore, yaitu :
1. binary semaphore, nilai hanya berkisar 0 dan 1.
2. counting semaphore, nilai tidak terikat pada 0 dan 1.
b.
Semaphore system calls teridiri dari 3, yaitu :
1. semget(key;nsems;flags)
buat satu array semaphore semaphore
nsems dan kembalikan
identifikasinya sid
2. semop(sid;ops;nops)
laksanakan
valensi daftar operasi di sid seperti
yang ditetapkan oleh
array ops dari panjangnya nops
|
37
3. semctl(sid;snum;cmd;arg)
merubah atau mengembalikan
informasi tentang arus status dari
semaphore semaphore seperti yang terdapat pada struct sem
c. Suatu struktur data pemeliharaan semaphore ditunjukkan dalam :
1. semval, adalah nilai semaphore pada saat ini.
2. sempit, adalah nomor identifikasi proses
yang
menunjukkan operasi
terakhir.
3. semncnt, adalah nomor proses yang menunggu semval untuk
mencapai nilai positif yang cocok.
4. semzcnt, adalah nomor proses
yang
menunggu semval menjadi
nol.
System call ini dikembalikan satu integer id ke semaphore (analisator
ke suatu file descriptor), atau -1 dalam hal kesalahan (error).
E. Message Passing
Sistem ini
menyediakan suatu
mekanisme agar
proses-proses dapat
berkomunikasi dan mesinkronkan tugas-tugasnya tanpa harus berbagi pakai
ruang
alamat
yang
sama
dan
terutama
digunakan
dalam lingkungan
terdistribusi, dimana komunikasi proses terjadi antar komputer yang
terhubung melalui jaringan. Fasilitas yang disediakan terdiri dari dua operasi
yaitu send(message)
dan receive(message).
Pengiriman pesan
ukuran
yang
tetap maupun dinamis.
|
![]() 38
Gambar 2.6 Cara Kerja Message Passing
Jika suatu proses P dan Q berkomunikasi diantaranya harus
mengirimkan pesan dan menerima pesan dari yang lainnya. Beberapa metode
hubungan komunikasi antar proses tersebut diantaranya adalah:
a)
Komunikasi langsung dan tidak langsung
Komunikasi Langsung
Proses-proses yang ingin dikomunikasikan harus memiliki sebuah
cara untuk memilih satu dengan yang lain. Mereka dapat menggunakan
komunikasi
langsung/tidak
langsung.Setiap
proses yang
ingin
berkomunikasi harus memiliki nama yang bersifat eksplisit baik
penerimaan atau pengirim dari komunikasi tersebut. Dalam konteks ini,
|
39
pengiriman
dan
penerimaan
pesan
secara
primitif
dapat
dijabarkan
sebagai berikut:
Send (P, message) - mengirim sebuah pesan ke proses P.
Receive (Q, message) - menerima sebuah pesan dari proses Q.
Komunikasi Tidak Langsung
Dengan komunikasi tidak langsung, pesan akan dikirimkan pada
dan diterima dari/melalui mailbox (Kotak Surat) atau terminal-terminal,
sebuah mailbox dapat dilihat secara abstrak sebagai sebuah obyek di
dalam setiap
pesan
yang
dapat ditempatkan
dari
proses
dan
dari
setiap
pesan
yang bias
dipindahkan.
Setiap
kotak
surat
memiliki
sebuah
identifikasi
(identitas)
yang
unik, sebuah
proses
dapat
berkomunikasi
dengan beberapa proses lain melalui sebuah nomor dari mailbox yang
berbeda. Dua proses dapat saling berkomunikasi apabila kedua proses
tersebut berbagi pakai
mailbox. Pengirim dan penerima dapat dijabarkan
sebagai:
Send (A, message) - mengirim pesan ke mailbox A.
Receive (A, message) - menerima pesan dari mailbox A.
b) Komunikasi sinkron dan asinkron
Komunikasi
antara
proses
membutuhkan
place
by
calls untuk
mengirim
dan
menerima
data
primitif.
Terdapat
desain
yang
berbeda-
beda dalam implementasi setiap primitif. Pengiriman pesan mungkin
|
40
dapat
diblok
(blocking)
atau
tidak
dapat
dibloking
(nonblocking)-juga
dikenal dengan nama sinkron atau asinkron.
Pengiriman yang diblok: Proses pengiriman di blok sampai pesan
diterima oleh proses penerima (receiving process) atau oleh mailbox.
Pengiriman yang tidak diblok: Proses pengiriman pesan dan
mengkalkulasi operasi.
Penerimaan yang diblok: Penerima memblok sampai pesan tersedia.
Penerimaan
yang tidak diblok: Penerima
mengembalikan pesan
valid
atau null.
c)
Penyangga (buffering) otomatis dan eksplisit
Apa pun jenis komunikasinya, langsung atau tidak langsung,
penukaran pesan oleh proses memerlukan antrian sementara. Pada
dasarnya, terdapat tiga cara untuk mengimplementasikan antrian tersebut:
Kapasitas Nol.
Antrian
mempunyai
panjang
maksimum 0,
sehingga
tidak ada penungguan pesan (message waiting). Dalam kasus ini,
pengirim harus memblok sampai penerima menerima pesan.
Kapasitas Terbatas. Antrian
mempunyai panjang yang telah
ditentukan, paling banyak n pesan dapat dimasukkan. Jika antrian
tidak penuh ketika pesan dikirimkan, pesan yang baru akan menimpa,
dan pengirim pengirim dapat
melanjutkan eksekusi tanpa
menunggu.
Link
mempunyai
kapasitas
terbatas.
Jika
link
penuh,
pengirim
harus
memblok sampai terdapat ruang pada antrian.
|
41
Kapasitas
Tidak
Terbatas.
Antrian
mempunyai
panjang
yang
tak
terhingga, sehingga semua pesan dapat menunggu disini. Pengirim
tidak akan pernah di blok.
F. Signalling
Signalling adalah sebuah sinyal yang digunakan di sistem UNIX
untuk notify sebuah proses kalau suatu peristiwa telah terjadi. Sebuah sinyal
dapat digunakan secara synchronous atau asynchronous tergantung dari
sumber dan alas an kenapa peristiwa
itu
meberi sinyal. Semua sinyal
(asynchronous dan synchronous) mengikuti pola yang sama :
Sebuah sinyal dimunculkan oleh kejadian dari suatu peristiwa.
Sinyal yang dimunculkan tersebut dikirim ke proses
Sesudah dikirim, sinyal tersebut harus ditangani.
Setiap sinyal dapat ditangani oleh salah satu dari dua penerima sinyal :
a)
Penerima sinyal yang merupakan set awal dari system operasi.
b)
Penerima
sinyal
yang didefinisikan sendiri oleh
user. Penanganan sinyal
pada program yang hanya memakai thread tunggal cukup mudah yaitu
hanya
dengan
mengirimkan
sinyal
ke prosesnya.
Tetapi
mengirimkan
sinyal
lebih
rumit
pada
program yang
multithreading,
karena
sebuah
proses dapat memiliki beberapa thread.
|
42
Secara umum ada tiga pilihan kemana sinyal harus dikirim :
a)
Mengirimkan sinyal ke thread yang dituju oleh sinyal tersebut.
b) Mengirimkan sinyal ke setiap thread pada proses tersebut.
c)
Mengirimkan sinyal ke thread tertentu dalam proses.
G. Named Pipe
Named pipe hanya bisa digunakan untuk komunikasi antara dua
proses
yang
men-share common
file sistem. Keuntungan
dari
named
pipe
adalah kemampuan untuk mengkomunikasikan dua proses yang dimulai
secara independent, dimana salah satu proses tidak fork off sebuah proses
baru.
H. Unnamed Pipe
Unnamed pipe
digunakan ketika
program Linux
mematikan sebuah
proses yang terpisah setelah menggunakan pipe library call untuk men-create
dua
file
descriptors (salah
satunya
tiap
bagian
akhir
dari
pipe).
file
unnamed_pipe.c mengimplementasikan ends of a pipe dengan meng-create
dua input/output file descriptors:
int file_descriptors[2]
Pipe(file_descriptors)
dan kemudian forking off sebuah proses baru menggunakan fork library call:
pid_t spawned_process_pid = fork()
|
43
2.1.12 Embedded System
Embedded
system merupakan
suatu
sistem /
program yang
sengaja
dirancang untuk melakukan tugas yang sangat spesifik. Sehingga, karena tugas
yang dilakukannya sangat spesifik dan berulang
ulang, tidak dibutuhkan
kekuatan
prosesor
yang
sangat
tinggi.
Dan
hal
ini
akan
sangat
menghemat
biaya produksi.
Embedded
system biasanya
merupakan
bagian
dari
piranti
yang
lebih
besar.
Dalam
hal
ini,
embedded
system di
pergunakan
untuk
meningkatkan
kapabilitas
piranti
itu
sendiri.
Banyak dari kita
yang tidak
menyadari
bahwa
embedded
system sebenarnya
telah
menjadi
bagian
dari
kehidupan,
karena
mereka selalu ada di hamper semua piranti eletronik yang kita gunakan saat ini.
Beberapa embedded system yang banyak ditemui saat ini :
-
Sistem Pemrosesan Signal
Real-time video, DVD player, peralatan kesehatan.
-
Distributed control
Network router, switche, firewall, mass transit system, elevator
-
Small systems
Mobile
phone,
pager, toys,
smartcard, MP3 player, PDA,
kamera
digital,
sensor.
Karakteristik dari embedded system adalah :
Menjadi bagian dari system yang lebih besar
Application-specific,
bahkan
sebagian
bekerja
dengan
real-time
Baik
hardware
maupun software dirancang khusus
untuk aplikasi yang spesifik.
|
44
Software
yang dipergunakan untuk embedded system biasa disebut dengan
firmware,
dan
disimpan
di
dalam ROM
atau
Flash
Memory.
Firmware
tersebut bekerja dengan sumber daya yang sangat terbatas. (Tanpa Monitor,
Keyboard dan memory yang besar)
Interaksi dengan dunia fisik
Aspek aspek yang membedakan embedded system dari sistem sistem
lainnya yaitu :
a. Biaya (cost)
Ini merupakan aspek yang dapat dikatakan paling penting karena
sangat
mempengaruhi desain suatu embedded
system secara
keseluruhan.
Dalam membuat
suatu
embedded
system,
biasanya
dipilih
komponen-
komponen secara optimal, yaitu yang memungkinkan implementasi sistem
tersebut tetapi dengan biaya yang
serendah-rendahnya. Hal ini karena
perbedaan harga sedikit saja dapat sangat berpengaruh ketika embedded
system tersebut harus dipasarkan secara luas dalam jumlah yang besar.
b. Constraint waktu
Tidak sedikit embedded system yang sekaligus merupakan real-time
system,
yaitu
sistem yang prosesnya
terbatasi
oleh
batas waktu. Sistem -
sistem
ini
umumnya
merupakan
sistem yang
digunakan
untuk
keperluan
yang kritikal, dan harus selalu
aktif. Dengan demikian tidak seperti system
computer
desktop
yang
dapat
dilakukan reboot,
misalnya
untuk
menjaga
kestabilannya atau menangani serangan tertentu seperti virus, dalam
embedded system tertentu hal tersebut mungkin tidak dapat diterima.
|
45
Embedded
system harus
selalu
stabil,
termasuk
dalam gangguan
oleh
serangan. Harus diperhatikan bagaimana jika suatu real-time system
mengalami
serangan
Denial
of
Service (DoS) yang membuatnya menjadi
lambat sehingga batas waktunya tidak lagi terpenuhi.
c. Interaksi langsung dengan dunia nyata
Banyak embedded system, umumnya embedded control application,
harus berhubungan langsung dengan dunia nyata. Akibatnya adalah
kesalahan suatu gangguan bisa berakibat lebih fatal dibandingkan sistem
komputer yang biasa. Jika misalnya suatu komputer server yang menyimpan
database mengalami gangguan, paling parah yang terjadi adalah kehilangan
data, dan apabila database tersebut
di-backup
secara
berkala
maka
kerugiannya lebih kecil
lagi. Hal ini akan sangat berbeda jika misalnya
sistem kontrol
dalam suatu
pabrik
kimia
mengalami
gangguan
dan
melakukan kesalahan.
d. Constraint energi
Banyak embedded system yang mengambil daya dari baterai. Hal ini
berarti
munculnya
satu titik
serangan baru
pada
embedded
system,
yaitu
power supply.
e. Elektronika
Masih berhubungan dengan yang terakhir, karena embedded system
merupakan
sistem yang
sangat
erat
dengan
elektronika,
maka
seranganserangan atau gangguan juga
mungkin dilakukan secara elektrik,
misalnya
analisis
dengan
multimeter,
logic
analyzer,
dan
sebagainya.
|
46
Walaupun
sistem komputer
lain
pada
dasarnya
juga
merupakan
alat
elektronik,
tetapi
kemungkinan
hal ini
dilakukan
lebih
tinggi
untuk
embedded system.
2.1.13 Enkripsi
a. Algoritma Asimetrik
Algoritma kriptografi asimetrik (Algoritma asimetrik) merupakan
algoritma kriptografi yang menggunakan dua buah kunci yang berbeda
untuk proses enkripsi dan dekripsi. Kunci yang digunakan untuk enkripsi
disebut kunci publik sedangkan kunci yang digunakan untuk dekripsi
disebut kunci private. Dinamai kunci publik karena nilai kunci ini bisa
diketahui
oleh siapa saja.
Maksudnya jika
kunci
ini
diketahui oleh
semua
orang,
tidak
akan
mempengaruhi
keamanan dari informasi yang akan
dikirim. Namun, jika kunci private diketahui oleh banyak orang, maka
keamanan informasi tidak akan terjamin. Oleh sebab itu, privatee key hanya
diketahui oleh orang-orang tertentu (pihak yang berwenang).
Pada
awalnya, algoritma asimetrik hadir untuk mengatasi masalah
yang terjadi pada algoritma simetrik (key manajemen). Namun, seiring
dengan perkembangan zaman, algoritma asimetrik digunakan untuk
enkripsi dan dekripsi data.
Sebenarnya, dua buah kunci yang digunakan pada algoritma
asimetrik (kunci publik dan kunci privatee)
didapatkan
melalui
suatu
perhitungan. Kunci private dihitung menggunakan perhitungan yang
|
![]() 47
melibatkan kunci publik dan sejumlah parameter tertentu, sehingga
seseorang yang hanya mengetahui kunci publik saja akan sulit bahkan tidak
mungkin untuk menghitung kunci private. Pada umumnya, algoritma
asimetrik
mengaplikasikan
beberapa persoalan pada
matematika,
seperti
pemfaktoran bilangan integer yang sangat besar, masalah
logaritma diskrit
(discrete
logarithm
problem),
elliptic
curve, bilangan
kompleks
(complex
number), dsb. Contoh dari algoritma asimetrik adalah RSA.
Saya
!!x!!??!x!
E
D
Saya
plaintext
enkripsi
dekripsi
ciphertext
plaintext
Gambar 2.7 Enkripsi Asimetrik
b. Algoritma Simetrik
Algoritma kriptografi simetrik (algoritma simetrik) merupakan
algoritma kriptografi yang menggunakan satu buah kunci untuk proses
enkripsi dan dekripsi. Karena kunci yang digunakan untuk enkripsi dan
dekripsi adalah sama, maka kekuatan dari algoritma ini terletak pada kunci
yang digunakan. Kunci yang digunakan pada algoritma
simetrik disebut
dengan secret key.
Kelemahan algoritma simetrik terletak pada manajemen kunci (key
management). Karena kunci yang digunakan pada algoritma simetrik
memegang peranan penting, maka kunci ini tidak boleh diketahui oleh pihak
|
![]() 48
yang tidak berhak. Sehingga diperlukan suatu
mekanisme
yang
menjamin
pengiriman/distribusi kunci pada semua pihak yang berwenang secara aman.
Masalah distribusi kunci ini merupakan salah satu aspek yang terdapat pada
manajemen kunci.
Rumitnya masalah manajemen kunci pada algoritma simetrik ini
membuat algoritma simetrik lebih memfokuskan pada masalah manajemen
kunci
dibandingkan
masalah
enkripsi
data.
Selain
manajemen
kunci,
hal
yang
tidak
kalah
penting
dalam algoritma
simetrik
adalah
meyakinkan/jaminan
bahwa
pengirim
dan
penerima
message
benar-benar
memiliki kunci yang sama.
Saya
!!x!!??!x!
Saya
E
D
plaintext
enkripsi
ciphertext
dekripsi
plaintext
Gambar 2.8 Enkripsi Simetrik
Berdasarkan proses yang dilakukannya, algoritma simetrik dibagi
menjadi dua, yaitu :
Block
cipher,
rangkaian
bit-bit
plainteks dibagi
menjadi
blok-blok
bit
dengan panjang sama, biasanya 64 bit (tapi adakalanya lebih). Algoritma
enkripsi menghasilkan blok cipherteks yang
pada kebanyakan sistem
kriptografi simetri berukuran sama dengan blok plainteks.
|
49
Stream cipher, suatu sistem dimana kuncinya dimasukkan ke dalam
suatu algoritma yang menggunakan kunci untuk membangkitkan suatu
rangkaian yang tak terbatas. Algoritma tersebut biasanya dikenal sebagai
pembangkit
rangkaian (sequence
generator)
atau
pembangkit
kunci
stream (stream key
generator),
stream cipher
memiliki
karakteristik
membagi teks
terang ke dalam karakter-karakter dan
menyandi
masing-
masing karakter bit per waktu dengan suatu fungsi waktu bervariasi yang
ketergantungan waktunya di atur berdasarkan kondisi (state) internal dari
algoritma
sistem sandi tersebut. Setiap penyandian satu karakter selesai,
perangkat tersebut akan merubah kondisi (state) sesuai formulasinya.
Sehingga pemunculan dua karakter teks terang yang sama biasanya tidak
akan
menghasilkan
karakter
teks
sandi
yang
sama.
stream cipher
juga
sebagai sistem sandi data digital yang
menyandi 1 bit atau 1 byte dalam
satuan
waktu. Proses enkripsi pada stream cipher umumnya
menggunakan operasi XOR sehingga kekuatan kriptografis dari algoritma
stream cipher terletak pada key generatornya. Sebuah key generator harus
menghasilkan
rangkaian kunci
yang
acak
dan memiliki
periode
yang
sangat panjang sehingga dapat dihindari pengulangan pemakaian kunci
akibat dari periode yang tidak maksimum.
2.1.14 RC-4
RC4
merupakan salah satu jenis
stream cipher,
yaitu
memproses
unit
atau input data pada satu saat. Unit atau data pada umumnya sebuah byte atau
|
50
bahkan kadang kadang bit (byte dalam hal RC4). Dengan cara ini enkripsi atau
dekripsi
dapat
dilaksanakan
pada
panjang yang variabel. Algoritma ini tidak
harus
menunggu
sejumlah
input
data
tertentu
sebelum diproses,
atau
menambahkan byte tambahan untuk mengenkrip. Contoh stream cipher adalah
RC4, Seal, A5, Oryx, dll. Tipe lainnya adalah block cipher yang memproses
sekaligus sejumlah tertentu data (biasanya 64 bit atau 128 bit blok), contohnya :
Blowfish, DES, Gost, Idea, RC5, Safer, Square, Twofish, RC6, Loki97, dll.
RC4
merupakan enkripsi stream simetrik proprietary
yang dibuat oleh
RSA Data Security, Inc (RSADSI). Penyebarannya diawali dari sebuah source
code yang diyakini sebagai RC4 dan dipublikasikan secara 'anonymously' pada
tahun
1994.
Algoritma
yang
dipublikasikan ini sangat identik dengan
implementasi
RC4
pada
produk
resmi. RC4
digunakan
secara
luas
pada
beberapa aplikasi dan umumnya dinyatakan sangat aman. Sampai saat ini
diketahui tidak ada yang dapat memecahkan/membongkarnya, hanya saja versi
ekspor 40 bitnya dapat dibongkar dengan cara "brute force" (mencoba semua
kunci yang mungkin). RC4 tidak dipatenkan oleh RSADSI, hanya saja tidak
diperdagangkan secara bebas (trade secret).
2.1.15 Use Case Diagram
Use-case
diagram menjelaskan
manfaat dari
aplikasi
jika
dilihat dari
sudut
pandang
orang
yang
berada
diluar
sistem (actor).
Diagram ini
menunjukkan
fungsionalitas
suatu
sistem atau
kelas
dan
bagaimana
sistem
berinteraksi
dengan
dunia
luar.
Use-case
diagram dapat
digunakan
selama
proses analisa untuk menangkap requirements atau permintaan terhadap sistem
|
![]() 51
dan
untuk memahami bagaimana sistem tersebut harus berkerja.Selama tahap
desain, use-case diagram menetapkan perilaku dari aplikasi saat
implementasi.
Dalam sabuah model
memungkinkan terdapat satu atu beberapa use-case
diagram.
Gambar 2.9 Use Case
2.1.16 Sequence Diagram
Sequence
Diagram menjelaskan
interaksi objekyang disusun dalam
suatu
urutan
waktu.
Diagram ini
secara
khusus
berasosiasi
dengan
use-case.
Sequencediagram memperlihatkan tahap demi tahap apa yang arusterjadi untuk
menghasilkan suatu didalam use-case diagram.
Tipe diagram yang digunakan
sebaiknya
digunakan
diawal
tahap desain
atau
analisis
karena
kesederhanaannya dan mudah untuk di mengerti.
|
![]() 52
Gambar 2.10 Sequence Diagram
2.1.17 Entity Relationship Diagram
ERD merupakan suatu model untuk
menjelaskan
hubungan antar data
dalam basis
data
berdasarkan
objek-objek
dasar
data
yang
mempunyai
hubungan
antar
relasi. ERD untuk
memodelkan struktur
data dan
hubungan
antar data, untuk menggambarkannya digunakan beberapa notasi dan simbol.
Pada dasarnya ada tiga simbol yang digunakan, yaitu :
a. Entiti
Entiti
merupakan
objek
yang
mewakili
sesuatu
yang nyata
dan dapat
dibedakan dari sesuatu yang lain (Fathansyah, 1999: 30). Simbol dari entiti
ini biasanya digambarkan dengan persegi panjang.
b. Atribut
Setiap entitas pasti mempunyai elemen yang disebut atribut yang berfungsi
untuk
mendeskripsikan
karakteristik
dari
entitas tersebut.
Isi
dari
atribut
mempunyai sesuatu yang dapat mengidentifikasikan isi elemen satu dengan
yang lain. Gambar atribut diwakili oleh simbol elips.
|
![]() 53
c. Hubungan / Relasi
Hubungan antara sejumlah entitas yang berasal dari himpunan entitas yang
berbeda. Relasi dapat digambarkan sebagai berikut :
Relasi yang terjadi diantara dua himpunan entitas (misalnya A dan B) dalam
satu basis data yaitu (Abdul Kadir, 2002: 48) :
1). Satu ke satu (One to one)
Hubungan relasi satu ke satu yaitu setiap entitas pada himpunan entitas
A berhubungan paling banyak dengan satu entitas pada himpunan entitas
B.
2). Satu ke banyak (One to many)
Setiap entitas pada himpunan entitas A dapat berhubungan dengan
banyak entitas pada himpunan entitas B, tetapi setiap entitas pada entitas
B dapat berhubungan dengan satu entitas pada himpunan entitas A.
3). Banyak ke banyak (Many to many)
Setiap entitas pada himpunan entitas A dapat berhubungan dengan
banyak entitas pada himpunan entitas B.
2.1.18 State Transition Diagram
State-Transition Diagram menggambarkan bagaimana perilaku sistem
saat mendapatkan event dari luar (External Events). STD mewakili berbagai
mode perilaku dari sistem dan perlakuan yang terdapat pada transisi antar state.
STD menjadi dasar dari model perilaku. Informasi tambahan mengenai aspek-
|
![]() 54
aspek
kontrol
terhadap
perangkat
lunak
terdapat
dalam
spesifikasi
kontrol
(Control Specification).
Contoh :
State 1
Condition
Action
State 2
Gambar 2.11 State Transition Diagram
2.1.19 Flowchart
Flowchart adalah
gambaran dalam bentuk diagram alir dari algoritma-
algoritma dalam suatu program, yang menyatakan arah alur program tersebut.
Berikut adalah beberapa simbol yang digunakan dalam menggambar suatu
flowchart :
Tabel 2.1 Simbol Flowchart
SIMBOL
NAMA
FUNGSI
TERMINATOR
Permulaan/akhir program
|
![]() 55
GARIS ALIR
(FLOW LINE)
Arah aliran program
PREPARATION
Proses
inisialisasi/pemberian harga
awal
PROSES
Proses perhitungan/proses
pengolahan data
INPUT/OUTPUT
DATA
Proses input/output data,
parameter, informasi
PREDEFINED
PROCESS
(SUB PROGRAM)
Permulaan sub
program/proses
menjalankan sub program
DECISION
Perbandingan pernyataan,
penyeleksian data yang
memberikan pilihan untuk
langkah selanjutnya
ON PAGE
CONNECTOR
Penghubung bagian-bagian
flowchart yang berada pada
satu halaman
OFF PAGE
CONNECTOR
Penghubung bagian-bagian
flowchart yang berada pada
halaman berbeda
2.1.20 Online Processing
Online
Processing
adalah
sebuah sistem yang
mengaktifkan
semua
periferal
sebagai
pemasok
data,
dalam kendali
komputer
induk.
Informasi-
informasi
yang
muncul
merupakan
refleksi dari kondisi data yang paling
mutakhir,
karena
setiap
perkembangan
data
baru
akan
terus
diupdatekan
ke
data induk. Salah satu contoh penggunaan online processing adalah transaksi
|
56
online.
Dalam
sistem pengolahan
online,
transaksi
secara
individual dientri
melalui
peralatan
terminal,
divalidasi dan
digunakan
untuk
meng-update
dengan
segera
file
komputer.
Hasil pengolahan
ini
kemudian tersedia segera
untuk permintaan keterangan atau laporan.
2.1.21 Batch Processing
Batch
processing
adalah
suatu model
pengolahan
data,
dengan
menghimpun data terlebih dahulu, dan diatur pengelompokkan datanya dalam
kelompok-kelompok yang disebut batch. Tiap batch ditandai dengan identitas
tertentu,
serta
informasi
mengenai
data-data
yang
terdapat
dalam
batch
tersebut. Setelah data-data tersebut terkumpul dalam jumlah tertentu, data-data
tersebut akan langsung diproses.
Contoh dari penggunaan batch processing adalah e-mail dan transaksi
batch
processing.
Dalam
suatu
sistem batch
processing,
transaksi
secara
individual dientri melalui peralatan terminal, dilakukan validasi tertentu, dan
ditambahkan ke transaction file yang berisi transaksi lain, dan kemudian dientri
ke dalam sistem secara periodik. Di waktu kemudian, selama siklus pengolahan
berikutnya, transaction file dapat divalidasi lebih lanjut dan kemudian
digunakan untuk meng-up date master file yang berkaitan.
2.2 Teori Khusus
2.2.1 Telemetri
Telemetri adalah sebuah teknologi
yang
memungkinkan
pengukuran
jarak
jauh dan pelaporan
informasi
terhadap
suatu
obyek kepada
perancang
|
![]() 57
atau operator sistem yang berada di tempat
yang jauh dari objek pengukuran.
Setelah di terima oleh operator sistem, data tersebut dapat diolah kembali atau
ditampilkan Kata
telemetri berasal dari
akar bahasa Yunani,
tele
yang berarti
jarak
jauh,
dan
metron
yang
berarti
pengukuran.
Sistem yang
membutuhkan
instruksi
atau
data
yang
dikirim kepada
mereka
untuk
mengoperasikan
membutuhkan lawan dari telemetri, telekomando.
Telemetri
awalnya
merujuk
pada komunikasi
nirkabel
(contohnya
menggunakan sistem radio untuk mengimplementasikan komunikasi data), tapi
kini juga dapat merujuk pada komunikasi data melalui media lain, seperti
telepon, kabel optic, kabel tembaga atau jaringan komputer atau internet.
Secara umum sistem telemetri terdiri atas enam bagian pendukung yaitu objek
ukur, sensor, pemancar, saluran transmisi, penerima dan tampilan/display.
Gambar 2.12 Sistem Telemetri
2.2.2 Telecommand
Telecommand adalah perintah yang dikirimkan
untuk mengatur sistem
remote
atau
sistem
yang
tidak
terhubung secara
langsung
(misalnya
melalui
|
58
kabel) ke tempat dari mana telecommand dikirimkan. Kata tersebut berasal dari
tele = jauh (yunani), dan command = mempercayakan / order (Latin).
Telecommand
biasa
diaplikasikan pada
sistem
yang
membutuhkan
pengukuran jarak jauh dan pelaporan informasi yang menarik bagi sistem
desainer atau operator. Dalam prakteknya, aplikasi yang digunakan tidak hanya
membutuhkan telecommand saja tetapi juga telemetri.
|