Gambar diatas merupakan gambar schematic dari rangkaian linefollower, untuk cara kerjanya sendiri masih sama dengan linefollower yang lainnya namun disini ada penambahan rangkaian regulator untuk mengatur kecepatan motor yang digunakan.
Keberanian bukanlah ketidakhadiran rasa takut, tetapi melakukannya - Montaigne
Kegagalan biasanya merupakan langkah awal menuju sukses, tapi sukses itu sendiri sesungguhnya baru merupakan jalan tak berketentuan menuju puncak sukses. - Lambert Jeffries
Pastikanlah bahwa kepala Anda tidak lebih tinggi dari topi Anda. - Vergill
Tempat untuk berbahagia itu di sini. Waktu untuk berbahagia itu kini. Cara untuk berbahagia ialah dengan membuat orang lain berbahagia. - Robert G. Ingersoll
Keberanian bukanlah ketidakhadiran rasa takut, tetapi melakukannya. - Montaigne
Sifat Cinta: 1. Tidak membeda-bedakan 2. Cuma-cuma atau tanpa pamrih 3. Ketidaksadaran diri 4. Bebas - Anthony De Mello Sj
Hanya ikan yang bodoh yang bisa dua kali kena pancing dengan umpan yang sama. -
Kebanyakan dari kita yakin bisa membuat orang lain bahagia dengan cara yang kita tentukan. - Robert S. Lynd
Jika kita sungguh-sungguh menginginkan cinta, maka cintalah pada akhirnya yang justru menunggu kita. - Oscar Wilde
Orang yang tidak bisa memaafkan orang lain sama saja dengan orang yang memutuskan jembatan yang harus dilaluinya, karena semua orang perlu di maafkan. - Thomas Fuller
Ada dua hal yang harus Anda lupakan: Kebaikan yang Anda lakukan kepada orang lain dan kesalahan orang lain kepada Anda. - Sai Baba
Suatu kehidupan yang penuh kesalahan tak hanya lebih berharga namun juga lebih berguna dibandingkan hidup tanpa melakukan apapun. - George Bernard Shaw
Pengetahuan ada dua macam : yang telah kita ketahui dengan sendirinya atau yang hanya kita ketahui dimana ia bisa didapatkan. - Samuel Johnson
Kita tidak dapat memperoleh pikiran yang damai kecuali kita dapat berhubungan dengan Sumber kedamaian yang ada di dalam diri kita. Damai yang kamu miliki dalam dirimu, dan jika kamu mencarinya di luar, kamu tidak akan pernah menemukannya. - Maha Guru Ching Hai
Jika kita melayani dengan penyerahan penuh (bhakti), kita selamanya terpuaskan, dan merasa terpenuhi. Kita tidak akan berpikir untuk meminta apapun, karena kita merasa bahwa kita memiliki segala sesuatu dalam kelimpahan. - Guru Ching Hai
Janganlah merasa terlalu kecewa, tetapi jalanilah hidup setiap saat dengan sepenuh hati kamu. Apapun yang mesti kamu lakukan, lakukan dengan kebaktian penuh. Miliki iman pada Tuhan dan rencana agung seluruh alam semesta. - Guru Ching Hai
Segala sesuatu merupakan suatu kebiasaan. Kita mempelajari cara keariefan yang merupakan cara kelenturan. Apabila kita terbiasa dengan kelenturan, maka (kita) terbiasa dengan berbagai perubahan dadakan, kita terbiasa dengan tindakan segera, tindakan spontan, bukan tindakan prasangka, itulah cara yang terbaik. - Guru Ching Hai
Kadang kala kita dilahirkan dalam keadaan fakir miskin (sengsara), karena Tuhan menghendaki kita belajar bersemangat pantang mundur dan berlatih keberanian diri. - Guru Ching Hai
Kita seharusnya menjadi se-agung sang Pencipta. Dia bisa mewadahi semua ciptaanNya, mengapa kita tidak bisa bertoleransi terhadap pemikiran-pemikiran saudara kita, teman kita, atau orang lain yang kita kenal? Kita harus bisa berbuat yang sama untuk mencapai Anuttara-Samyak-Samboddhi, dimensi tertinggi, tingkat tertinggi. - Guru Ching Hai
Pada saat kita lancar atau sukses, santai; justru harus lebih waspada, jangan menjadikannya sesuatu terjadi karena kemampuan kita, hingga kehilangan rendah hati, rasa penyesalan, lalu mulai malas, tidak dapat maju. - Guru Ching Hai
Transmission Control Protocol (TCP) TCP/IP (singkatan dari Transmission Control Protocol/Internet Protocol) adalah standar komunikasi data yang digunakan oleh komunitas internet dalam proses tukar-menukar data dari satu komputer ke komputer lain di dalam jaringan Internet. Protokol ini tidaklah dapat berdiri sendiri, karena memang protokol ini berupa kumpulan protokol (protocol suite). Protokol ini juga merupakan protokol yang paling banyak digunakan saat ini. Data tersebut diimplementasikan dalam bentuk perangkat lunak (software) di sistem operasi. Istilah yang diberikan kepada perangkat lunak ini adalah TCP/IP stack Protokol TCP/IP dikembangkan pada akhir dekade 1970-an hingga awal 1980-an sebagai sebuah protokol standar untuk menghubungkan komputer-komputer dan jaringan untuk membentuk sebuah jaringan yang luas (WAN). TCP/IP merupakan sebuah standar jaringan terbuka yang bersifat independen terhadap mekanisme transport jaringan fisik yang digunakan, sehingga dapat digunakan di mana saja. Protokol ini menggunakan skema pengalamatan yang sederhana yang disebut sebagai alamat IP (IP Address) yang mengizinkan hingga beberapa ratus juta komputer untuk dapat saling berhubungan satu sama lainnya di Internet. Protokol ini juga bersifat routable yang berarti protokol ini cocok untuk menghubungkan sistem-sistem berbeda (seperti Microsoft Windows dan keluarga UNIX) untuk membentuk jaringan yang heterogen. Protokol TCP/IP selalu berevolusi seiring dengan waktu, mengingat semakin banyaknya kebutuhan terhadap jaringan komputer dan Internet. Pengembangan ini dilakukan oleh beberapa badan, seperti halnya Internet Society (ISOC), Internet Architecture Board (IAB), dan Internet Engineering Task Force (IETF). Macam-macam protokol yang berjalan di atas TCP/IP, skema pengalamatan, dan konsep TCP/IP didefinisikan dalam dokumen yang disebut sebagai Request for Comments (RFC) yang dikeluarkan oleh IETF.
• Arsitektur
Gambar 1. Arsitektur TCP/IP diperbandingkan dengan DARPA Reference Model dan OSI Reference Model
Arsitektur TCP/IP tidaklah berbasis model referensi tujuh lapis OSI, tetapi menggunakan model referensi DARPA. Seperti diperlihatkan dalam diagram, TCP/IP merngimplemenasikan arsitektur berlapis yang terdiri atas empat lapis. Empat lapis ini, dapat dipetakan (meski tidak secara langsung) terhadap model referensi OSI. Empat lapis ini, kadang-kadang disebut sebagai DARPA Model, Internet Model, atau DoD Model, mengingat TCP/IP merupakan protokol yang awalnya dikembangkan dari proyek ARPANET yang dimulai oleh Departemen Pertahanan Amerika Serikat. Setiap lapisan yang dimiliki oleh kumpulan protokol (protocol suite) TCP/IP diasosiasikan dengan protokolnya masing-masing. Protokol utama dalam protokol TCP/IP adalah sebagai berikut: • Protokol lapisan aplikasi: bertanggung jawab untuk menyediakan akses kepada aplikasi terhadap layanan jaringan TCP/IP. Protokol ini mencakup protokol Dynamic Host Configuration Protocol (DHCP), Domain Name System (DNS), Hypertext Transfer Protocol (HTTP), File Transfer Protocol (FTP), Telnet, Simple Mail Transfer Protocol (SMTP), Simple Network Management Protocol (SNMP), dan masih banyak protokol lainnya. Dalam beberapa implementasi stack protokol, seperti halnya Microsoft TCP/IP, protokol-protokol lapisan aplikasi berinteraksi dengan menggunakan antarmuka Windows Sockets (Winsock) atau NetBIOS over TCP/IP (NetBT). • Protokol lapisan antar-host: berguna untuk membuat komunikasi menggunakan sesi koneksi yang bersifat connection-oriented atau broadcast yang bersifat connectionless. Protokol dalam lapisan ini adalah Transmission Control Protocol (TCP) dan User Datagram Protocol (UDP). • Protokol lapisan internetwork: bertanggung jawab untuk melakukan pemetaan (routing) dan enkapsulasi paket-paket data jaringan menjadi paket-paket IP. Protokol yang bekerja dalam lapisan ini adalah Internet Protocol (IP), Address Resolution Protocol (ARP), Internet Control Message Protocol (ICMP), dan Internet Group Management Protocol (IGMP). • Protokol lapisan antarmuka jaringan: bertanggung jawab untuk meletakkan frame-frame jaringan di atas media jaringan yang digunakan. TCP/IP dapat bekerja dengan banyak teknologi transport, mulai dari teknologi transport dalam LAN (seperti halnya Ethernet dan Token Ring), MAN dan WAN (seperti halnya dial-up modem yang berjalan di atas Public Switched Telephone Network (PSTN), Integrated Services Digital Network (ISDN), serta Asynchronous Transfer Mode (ATM)). • Pengalamatan Protokol TCP/IP menggunakan dua buah skema pengalamatan yang dapat digunakan untuk mengidentifikasikan sebuah komputer dalam sebuah jaringan atau jaringan dalam sebuah internetwork, yakni sebagai berikut: • Pengalamatan IP: yang berupa alamat logis yang terdiri atas 32-bit (empat oktet berukuran 8-bit) yang umumnya ditulis dalam format www.xxx.yyy.zzz. Dengan menggunakan subnet mask yang diasosiasikan dengannya, sebuah alamat IP pun dapat dibagi menjadi dua bagian, yakni Network Identifier (NetID) yang dapat mengidentifikasikan jaringan lokal dalam sebuah internetwork dan Host identifier (HostID) yang dapat mengidentifikasikan host dalam jaringan tersebut. Sebagai contoh, alamat 205.116.008.044 dapat dibagi dengan menggunakan subnet mask 255.255.255.000 ke dalam Network ID 205.116.008.000 dan Host ID 44. Alamat IP merupakan kewajiban yang harus ditetapkan untuk sebuah host, yang dapat dilakukan secara manual (statis) atau menggunakan Dynamic Host Configuration Protocol (DHCP) (dinamis). • Fully qualified domain name (FQDN): Alamat ini merupakan alamat yang direpresentasikan dalam nama alfanumerik yang diekspresikan dalam bentuk ., di mana mengindentifikasikan jaringan di mana sebuah komputer berada, dan mengidentifikasikan sebuah komputer dalam jaringan. Pengalamatan FQDN digunakan oleh skema penamaan domain Domain Name System (DNS). Sebagai contoh, alamat FQDN id.wikipedia.org merepresentasikan sebuah host dengan nama "id" yang terdapat di dalam domain jaringan "wikipedia.org". Nama domain wikipedia.org merupakan second-level domain yang terdaftar di dalam top-level domain .org, yang terdaftar dalam root DNS, yang memiliki nama "." (titik). Penggunaan FQDN lebih bersahabat dan lebih mudah diingat ketimbang dengan menggunakan alamat IP. Akan tetapi, dalam TCP/IP, agar komunikasi dapat berjalan, FQDN harus diterjemahkan terlebih dahulu (proses penerjemahan ini disebut sebagai resolusi nama) ke dalam alamat IP dengan menggunakan server yang menjalankan DNS, yang disebut dengan Name Server atau dengan menggunakan berkas hosts (/etc/hosts atau %systemroot%\system32\drivers\etc\hosts) yang disimpan di dalam mesin yang bersangkutan.
• Layanan Berikut ini adalah layanan tradisional yang dapat berjalan di atas protokol TCP/IP: • Pengiriman berkas (file transfer). File Transfer Protocol (FTP) memungkinkan pengguna komputer yang satu untuk dapat mengirim ataupun menerima berkas ke sebuah host di dalam jaringan. Metode otentikasi yang digunakannya adalah penggunaan nama pengguna (user name) dan [[password]], meskipun banyak juga FTP yang dapat diakses secara anonim (anonymous), alias tidak berpassword. (Keterangan lebih lanjut mengenai FTP dapat dilihat pada RFC 959.) • Remote login. Network terminal Protocol (telnet) memungkinkan pengguna komputer dapat melakukan log in ke dalam suatu komputer di dalam suatu jaringan secara jarak jauh. Jadi hal ini berarti bahwa pengguna menggunakan komputernya sebagai perpanjangan tangan dari komputer jaringan tersebut. (Keterangan lebih lanjut mengenai Telnet dapat dilihat pada RFC 854 dan RFC 855.) • Computer mail. Digunakan untuk menerapkan sistem surat elektronik. (Keterangan lebih lanjut mengenai e-mail dapat dilihat pada RFC 821 RFC 822.) • Network File System (NFS). Pelayanan akses berkas-berkas yang dapat diakses dari jarak jauh yang memungkinkan klien-klien untuk mengakses berkas pada komputer jaringan, seolah-olah berkas tersebut disimpan secara lokal. (Keterangan lebih lanjut mengenai NFS dapat dilihat RFC 1001 dan RFC 1002.) • Remote execution. Memungkinkan pengguna komputer untuk menjalankan suatu program tertentu di dalam komputer yang berbeda. Biasanya berguna jika pengguna menggunakan komputer yang terbatas, sedangkan ia memerlukan sumber yg banyak dalam suatu sistem komputer. Ada beberapa jenis remote execution, ada yang berupa perintah-perintah dasar saja, yaitu yang dapat dijalankan dalam system komputer yang sama dan ada pula yg menggunakan sistem Remote Procedure Call (RPC), yang memungkinkan program untuk memanggil subrutin yang akan dijalankan di sistem komputer yg berbeda. (sebagai contoh dalam Berkeley UNIX ada perintah rsh dan rexec.) • Name server yang berguna sebagai penyimpanan basis data nama host yang digunakan pada Internet (Keterangan lebih lanjut dapat dilihat pada RFC 822 dan RFC 823 yang menjelaskan mengenai penggunaan protokol name server yang bertujuan untuk menentukan nama host di Internet.) • Request for Comments RFC (Request For Comments) merupakan standar yang digunakan dalam Internet, meskipun ada juga isinya yg merupakan bahan diskusi ataupun omong kosong belaka. Diterbitkan oleh IAB yang merupakan komite independen yang terdiri atas para peneliti dan profesional yang mengerti teknis, kondisi dan evolusi Internet. Sebuah surat yg mengikuti nomor RFC menunjukan status RFC : • S: Standard, standar resmi bagi internet • DS: Draft standard, protokol tahap akhir sebelum disetujui sebagai standar • PS: Proposed Standard, protokol pertimbangan untuk standar masa depan • I: Informational, berisikan bahan-bahan diskusi yg sifatnya informasi • E: Experimental, protokol dalam tahap percobaan tetapi bukan pada jalur standar. • H: Historic, protokol-protokol yg telah digantikan atau tidak lagi dipertimbankan utk standarisasi. • Bagaimanakah bentuk arsitektur dari TCP/IP itu ? Dikarenakan TCP/IP adalah serangkaian protokol di mana setiap protokol melakukan sebagian dari keseluruhan tugas komunikasi jaringan, maka tentulah implementasinya tak lepas dari arsitektur jaringan itu sendiri. Arsitektur rangkaian protokol TCP/IP mendifinisikan berbagai cara agar TCP/IP dapat saling menyesuaikan. Karena TCP/IP merupakan salah satu lapisan protokol Model OSI, berarti bahwa hierarki TCP/IP merujuk kepada 7 lapisan OSI tersebut. Tiga lapisan teratas biasa dikenal sebagai "upper level protocol" sedangkan empat lapisan terbawah dikenal sebagai "lower level protocol". Tiap lapisan berdiri sendiri tetapi fungsi dari masing-masing lapisan bergantung dari keberhasilan operasi layer sebelumnya. Sebuah lapisan pengirim hanya perlu berhubungan dengan lapisan yang sama di penerima (jadi misalnya lapisan data link penerima hanya berhubungan dengan lapisan data link pengirim) selain dengan satu layer di atas atau di bawahnya (misalnya lapisan network berhubungan dengan lapisan transport di atasnya atau dengan lapisan data link di bawahnya). Model dengan menggunakan lapisan ini merupakan sebuah konsep yang penting karena suatu fungsi yang rumit yang berkaitan dengan komunikasi dapat dipecahkan menjadi sejumlah unit yang lebih kecil. Tiap lapisan bertugas memberikan layanan tertentu pada lapisan diatasnya dan juga melindungi lapisan diatasnya dari rincian cara pemberian layanan tersebut. Tiap lapisan harus transparan sehingga modifikasi yang dilakukan atasnya tidak akan menyebabkan perubahan pada lapisan yang lain. Lapisan menjalankan perannya dalam pengalihan data dengan mengikuti peraturan yang berlaku untuknya dan hanya berkomunikasi dengan lapisan yang setingkat. Akibatnya sebuah layer pada satu sistem tertentu hanya akan berhubungan dengan lapisan yang sama dari sistem yang lain. Proses ini dikenal sebagai Peer process. Dalam keadaan sebenarnya tidak ada data yang langsung dialihkan antar lapisan yang sama dari dua sistem yang berbeda ini. Lapisan atas akan memberikan data dan kendali ke lapisan dibawahnya sampai lapisan yang terendah dicapai. Antara dua lapisan yang berdekatan terdapat interface (antarmuka). Interface ini mendifinisikan operasi dan layanan yang diberikan olehnya ke lapisan lebih atas. Tiap lapisan harus melaksanakan sekumpulan fungsi khusus yang dipahami dengan sempurna. Himpunan lapisan dan protokol dikenal sebagai "arsitektur jaringan".
User Datagram Protocol (UDP)
User Datagram Protocol (UDP) adalah salah satu protokol lapisan transpor TCP/IP yang mendukung komunikasi yang tidak andal (unreliable), tanpa koneksi (connectionless) antara host-host dalam jaringan yang menggunakan TCP/IP. UDP memiliki karakteristik-karakteristik berikut: • Connectionless (tanpa koneksi): Pesan-pesan UDP akan dikirimkan tanpa harus dilakukan proses negosiasi koneksi antara dua host yang hendak berukar informasi. • Unreliable (tidak andal): Pesan-pesan UDP akan dikirimkan sebagai datagram tanpa adanya nomor urut atau pesan acknowledgment. Protokol lapisan aplikasi yang berjalan di atas UDP harus melakukan pemulihan terhadap pesan-pesan yang hilang selama transmisi. Umumnya, protokol lapisan aplikasi yang berjalan di atas UDP mengimplementasikan layanan keandalan mereka masing-masing, atau mengirim pesan secara periodik atau dengan menggunakan waktu yang telah didefinisikan. • UDP menyediakan mekanisme untuk mengirim pesan-pesan ke sebuah protokol lapisan aplikasi atau proses tertentu di dalam sebuah host dalam jaringan yang menggunakan TCP/IP. Header UDP berisi field Source Process Identification dan Destination Process Identification. • UDP menyediakan penghitungan checksum berukuran 16-bit terhadap keseluruhan pesan UDP. UDP tidak menyediakan layanan-layanan antar-host berikut: • UDP tidak menyediakan mekanisme penyanggaan (buffering) dari data yang masuk ataupun data yang keluar. Tugas buffering merupakan tugas yang harus diimplementasikan oleh protokol lapisan aplikasi yang berjalan di atas UDP. • UDP tidak menyediakan mekanisme segmentasi data yang besar ke dalam segmen-segmen data, seperti yang terjadi dalam protokol TCP. Karena itulah, protokol lapisan aplikasi yang berjalan di atas UDP harus mengirimkan data yang berukuran kecil (tidak lebih besar dari nilai Maximum Transfer Unit/MTU) yang dimiliki oleh sebuah antarmuka di mana data tersebut dikirim. Karena, jika ukuran paket data yang dikirim lebih besar dibandingkan nilai MTU, paket data yang dikirimkan bisa saja terpecah menjadi beberapa fragmen yang akhirnya tidak jadi terkirim dengan benar. • UDP tidak menyediakan mekanisme flow-control, seperti yang dimiliki oleh TCP. Fungsi UDP sebagai berikut: • Protokol yang “ringan” (lightweight): Untuk menghemat sumber daya memori dan prosesor, beberapa protokol lapisan aplikasi membutuhkan penggunaan protokol yang ringan yang dapat melakukan fungsi-fungsi spesifik dengan saling bertukar pesan. Contoh dari protokol yang ringan adalah fungsi query nama dalam protokol lapisan aplikasi Domain Name System. • Protokol lapisan aplikasi yang mengimplementasikan layanan keandalan: Jika protokol lapisan aplikasi menyediakan layanan transfer data yang andal, maka kebutuhan terhadap keandalan yang ditawarkan oleh TCP pun menjadi tidak ada. Contoh dari protokol seperti ini adalah Trivial File Transfer Protocol (TFTP) dan Network File System (NFS) • Protokol yang tidak membutuhkan keandalan. Contoh protokol ini adalah protokol Routing Information Protocol (RIP). • Transmisi broadcast: Karena UDP merupakan protokol yang tidak perlu membuat koneksi terlebih dahulu dengan sebuah host tertentu, maka transmisi broadcast pun dimungkinkan. Sebuah protokol lapisan aplikasi dapat mengirimkan paket data ke beberapa tujuan dengan menggunakan alamat multicast atau broadcast. Hal ini kontras dengan protokol TCP yang hanya dapat mengirimkan transmisi one-to-one. Contoh: query nama dalam protokol NetBIOS Name Service. UDP berbeda dengan TCP yang memiliki satuan paket data yang disebut dengan segmen, melakukan pengepakan terhadap data ke dalam pesan-pesan UDP (UDP Messages). Sebuah pesan UDP berisi header UDP dan akan dikirimkan ke protokol lapisan selanjutnya (lapisan internetwork) setelah mengepaknya menjadi datagram IP. Enkapsulasi terhadap pesan-pesan UDP oleh protokol IP dilakukan dengan menambahkan header IP dengan protokol IP nomor 17 (0×11). Pesan UDP dapat memiliki besar maksimum 65507 byte: 65535 (216)-20 (ukuran terkecil dari header IP)-8 (ukuran dari header UDP) byte. Datagram IP yang dihasilkan dari proses enkapsulasi tersebut, akan dienkapsulasi kembali dengan menggunakan header dan trailer protokol lapisan Network Interface yang digunakan oleh host tersebut.
Gambar 2. lustrasi mengenai pesan-pesan UDP
Dalam header IP dari sebuah pesan UDP, field Source IP Address akan diset ke antarmuka host yang mengirimkan pesan UDP yang bersangkutan; sementara field Destination IP Address akan diset ke alamat IP unicast dari sebuah host tertentu, alamat IP broadcast, atau alamat IP multicast.
Gambar 3. Ilustrasi mengenai header UDP
Saya informasikan kepada pembaca, jika anda membeli perangkat telekomunikasi, sebaiknya yang sudah di sertifikasi atau yang sudah bersertifikat resmi dari postel, untuk menjaga agar anda tidak berurusan dengan pihak yang berwajib. Dan perangkat yang sudah di sertifikasi tentunya sudah lulus pengujian di balai uji, sehingga mutu dan kualitasnya terjamin.
Perbedaan antara TCP dan UDP
TCP TCP Reliabilitas: TCP merupakan protokol berorientasi koneksi. Ketika sebuah file atau pesan kirim diantarkan kecuali akan mendapatkan koneksi gagal. Jika sambungan terputus, server akan meminta bagian yang hilang. Tidak ada korupsi ketika mentransfer pesan. Memerintahkan: Jika Anda mengirim dua pesan sepanjang sambungan, satu demi satu, Anda tahu pesan pertama akan sampai di sana terlebih dahulu. Anda tidak perlu khawatir data yang tiba di urutan yang salah. Kelas berat: - ketika bagian rendahnya dari TCP "sungai" tiba di urutan yang salah, telah mengirimkan kembali permintaan untuk dikirim, dan semua bagian-bagian dari urutan harus disatukan kembali, sehingga memerlukan sedikit pekerjaan yang harus mengumpulkan . Streaming: Data dibaca sebagai sebuah "sungai," dengan tidak membedakan mana satu paket berakhir dan yang lain dimulai. Mungkin ada beberapa paket per dibaca panggilan. Contoh: World Wide Web (Apache TCP port 80), e-mail (SMTP TCP port 25 Postfix MTA), File Transfer Protocol (FTP port 21) dan Secure Shell (OpenSSH port 22), dll
UDP UDP Reliabilitas: UDP adalah connectionless protocol. Ketika Anda mengirim data atau pesan, Anda tidak tahu apakah itu akan sampai di sana, ini bisa tersesat di jalan. Mungkin ada korupsi sementara mentransfer pesan. Memerintahkan: Jika Anda mengirim dua pesan keluar, Anda tidak tahu apa agar mereka akan tiba di tidak yaitu memerintahkan Ringan: Tidak ada pemesanan pesan, tidak ada pelacakan koneksi, dll Ini berarti membuat koneksi itu jauh lebih cepat, dan kartu jaringan / OS telah melakukan sedikit pekerjaan untuk menerjemahkan kembali data dari paket. Datagrams: Paket akan dikirim secara individu dan dijamin akan utuh jika mereka tiba. Satu paket per satu membaca panggilan. Contoh: Domain Name System (DNS UDP port 53), aplikasi media streaming seperti IPTV atau film, Voice over IP (VoIP), Trivial File Transfer Protocol (TFTP) dan online multiplayer games etc
DNS (Domain Name System) adalah suatu system yang berfungsi dalam mentranslasi suatu alamat host (seperti candra.unsri.ac.id) menjadi alamat IP (seperti 222.124.194.11). Secara prinsip alamat yang digunakan untuk mencari suatu tujuan/destination bukanlah menggunakan nama itu sendiri tetapi menggunakan IP address. Hal ini dijelaskan dalam prinsip berdasarkan model referensi OSI. Pada saat terjadi encapsulation segment menjadi packet maka akan terjadi penambahan header pada layer network yaitu alamat IP, yaitu alamat yang akan dituju maupun alamat sipengirim itu sendiri. Peristiwa pencarian alamat IP ini terjadi di upper layer yaitu lapisan Application, dimana DNS akan mengirim query atau permintaaan menuju DNS Server, untuk menanyakan alamat IP dari host yang akan dituju. Setelah alamat ini didapatkan, maka alamat ini akan ditambahkan oleh lapisan network terhadap semua segment yang diterima dari lapisan transport. Penggunaan DNS ini sangat penting sebab kemampuan otak manusia untuk mengingat deretan angka jauh lebih sulit ketimbang mengingat nama. Hampir semua layanan di network dicari dengan menggunakan nama, seperti web, mail maupun layanan lain seperti telnet, ssh sebagai pengganti penggunaan IP address dalam mengakses layanan sehingga memudahkan terjadinya komunikasi. Ada hal yang harus diperhatikan dalam mengartikan DNS Server dan Name Server, walaupun DNS Server dan Name Server ini terdapat pada daemon yang sama, tetapi mereka sebenarnya berbeda satu sama lain, DNS berfungsi mentranslasi nama, sehingga ketika ada permintaan dari client akan suatu nama, maka DNS akan menjawab permintaan ini dengan memberikan alat IP dari host yang akan dituju, apabila alamat yang dicari tadi tidak dimiliki oleh DNS maka DNS akan mencari menuju DNS lain, DNS lain akan memberikan sedangkan Name Server, adalah server yang mempunyai otoritas dalam membuat nama yang di cari oleh DNS Server.
TELNET
TELNET (Terminal Emulation) adalah program untuk memasuki komputer lain di jaringan komputer, awalnya telnet hanya ada di UNIX & turunannya, tapi saat ini juga ada di MS Windows & dapat di akses melalui DOS Prompt. Sebagai contoh, saya menggunakan Windows PC di rumah yang tersambung ke LAN 100Mbps untuk memasuki server Linux gate.yc1dav.ampr.org 192.168.0.1, maka melalui perintah:
Microsoft(R) Windows 98
(C)Copyright Microsoft Corp 1981-1999.
C:\WINDOWS\Desktop>telnet 192.168.0.1
Akan muncul tampilan Telnet yang kemudian dengan memasukan username & password, saya akan masuk ke server Linux yang ada.
Welcome to gate.yc1dav.ampr.org
Linux Mandrake release 8.0 (Traktopel) for i586
Kernel 2.4.3-20mdk on an i586
login: onno
Password:xxxxxxxxx
Last login: Wed Aug 8 08:28:27 on :0
[onno@gate onno]$
[onno@gate onno]$
Tentunya anda dapat saja melakukan telnet ke mesin-mesin lain di Internet & jaringan komputer lainnya jika telepon anda tersambung ke Internet.
Servis di jaringan komputer Internet yang berbasis protokol TCP/IP di identifikasi melalui berbagai port-nya. Untuk mengirim e-mail biasanya kita menggunakan Simple Mail Transport Protocol (SMTP) yang bekerja pada port 25. Untuk membaca / mengambil biasanya digunakan Post Office Protocol (POP) yang bekerja pada port 110. Biasanya kita menggunakan software seperti Outlook Express, Eudora yang sudah menggunakan Grafik User Interface (GUI) untuk ber-e-mail ria, tapi sebetulnya dasar kerja dari Outlook Express, Eudora dll ini sangat sederhana & dapat kita imitasi secara manual (menggunakan tangan di tik) menggunakan Telnet ke port 25 & 110.
Dalam skenario berikutnya, kita akan mencoba mengirimkan e-mail dari alamat e-mail imejiner kiddie@lamer.com yang ditujukan ke alamat e-mail mailmu@yahoo.com. Maka kita harus men-telnet mail server pada port 25 dengan perintah di bawah ini.
Microsoft(R) Windows 98
(C)Copyright Microsoft Corp 1981-1999.
C:\WINDOWS\Desktop>telnet 192.168.0.1 25
Rekaman ketikan manual pada saat tersambung ke port 25 tampak pada cuplikan di bawah ini.
Perhatikan semua kalimat yang di awali angka 220, 250, 354 adalah perintah-perintah uyang dikirimkan oleh mail server ESMTP yang berjalan di Linux Mandrake 8.0. Perintah HELO, MAIL FROM, RCPT TO, DATA dan terakhir adalah “.” (titik) semua di tik secara manual oleh saya untuk mengirimkan e-mail melalui e-mail server. Perhatikan dalam berita yang saya kirim isi e-mail di To: tidak sama dengan di RCPT TO: hal ini boleh-boleh saja untuk membingungkan si penerima J.
Semua tata cara penulisan ini merupakan tata cara komunikasi untuk mengirimkan e-mail yang di dokumentasikan di Simple Mail Transport Protocol (SMTP) yang dapat dibaca di Request For Comment (RFC) di Internet (http://www.internic.net atau http://www.ietf.org). Perhatikan bahwa mailmu@yahoo.com akan menerima seluruh teks yang kita tulis sesudah angka 354 hingga kita menuliskan “.” (titik) yang berdiri sendiri.
Anda dapat mencoba ini di SMTP server ISP anda, yang masih mengijinkan anda untuk merelay mail anda ke Internet. Harap berhati-hati karena semua transaksi anda melalui mail server ISP anda akan di catat (di log) oleh server, jadi sebaiknya jangan melakukan spamming atau hal yang tidak baik.
Dalam skenario selanjutnya, mari kita mencoba membaca e-mail di POP server. Saya akan memperagakan membaca e-mail user lamer dengan password lamer di POP server 192.168.0.1 yang dapat di ambil dengan perintag RETR (retrive) di Post Office Protocol (POP) yang standby pada port 110. Dengan perintah telnet ke port 110,
Microsoft(R) Windows 98
(C)Copyright Microsoft Corp 1981-1999.
C:\WINDOWS\Desktop>telnet 192.168.0.1 110
Selanjutnya adalah rekaman interaksi dengan POP server pada saat mengambil mail untuk user lamer dengan password lamer.
+OK POP3 gate.yc1dav.ampr.org v2000.69mdk server ready
user lamer
+OK User name accepted, password please
pass lamer
+OK Mailbox open, 1 messages
list
+OK Mailbox scan listing follows
1 448
.
retr 1
+OK 448 octets
Return-Path:
Delivered-To: lamer@gate.yc1dav.ampr.org
Received: by gate.yc1dav.ampr.org (Postfix, from userid 0)
id C292E1E85; Wed, 8 Aug 2001 08:33:37 +0700 (JAVT)
Perhatikan bahwa POP server hanya meresponds dengan +OK jika perintah yang diberikan benar. Perintah user, pass, list, retr, dele, quit merupakan perintah-perintah POP server yang kita ketik pada saat mengambil e-mail. Semua perintah di dokumentasikan di naskah Post Office Protocol (POP) 3 yang ada di Request For Comment (RFC) di Internet seperti (http://www.internic.net atau http://www.ietf.org ).
Tampak bahwa sebetulnya tata cara kerja Internet tidak terlalu sulit, bahkan cenderung sangat sederhana & sebagian besar dapat di kerjakan manual menggunakan tangan jika anda rajin. Program hanya membuat semua prosesa menjadi lebih automatis & memudahkan pengguna biasa. Dengan cara yang sama anda bisa melakukan eksplorasi cara kerja protocol-protocol lainnya yang menjadi tulang punggung kerja Internet. Sebagian besar protokol (tata cara komunikasi) di Internet di kerjakan oleh rekan-rekan di Internet Engineering Task Force (IETF) http://www.ietf.org.
SMTP
SMTP (Simple File Transfer Protokol) merupakan protokol yang digunakan sebagai pengelola dan pengatur lalu lintas keluar masuk email pada suatu jaringan.
SMTP berada pada layer aplikasi dengan port 25. Fungsi utama dari SMTP adalah menyampaikan pesan dari komputer pengirim ke komputer penerima, baik dalam jaringan yang sama (LAN atau WAN) maupun ke komputer penerima dalam suatu jaringan yang berbeda.
Jika akan mengirimkan suatu email, maka SMTP Client akan membuka kanal dua arah ke SMTP Server. Dalam hal ini SMTP Server bisa merupakan tujuan akhir, namun kadang bisa juga menjadi perantara antara komputer penerima dengan komputer pengirim atau berupa gerbang yang menghubungkan komunikasi SMTP dengan protokol lain.
Koneksi SMTP Client-Server diawali dengan proses inisialisasi, SMTP Server akan memberikan status bisa digunakan atau tidak. Jika tidak bisa digunakan maka koneksi diputus dan jika statusnya bisa digunakan SMTP client bisa memulai pengiriman
kumpulan perintah yang diperlukan seperti menentukan alamat pengirim, alamat tujuan, serta pesan yang akan disampaikan. Setelah pesan dikirimkan oleh SMTP server, SMTP client bisa meminta koneksinya diputus atau dimulai untuk pengiriman email lainnya.
Post Office Protocol
POP merupakan protokol yang digunakan untuk mengambil email dari mailbox pada komputer server dan menyimpannya pada komputer lokal pengguna POP3. Server menggunakan port 110 pada TCP/IP. Jika ada client yang akan menggunakan layanan server, maka koneksi antara keduanya dilangsungkan. Setelah terkoneksikan, server POP3 akan memberikan sebuah pesan sambutan yang kemudian dilanjutkan pada tahap berikutnya yaitu tahapan otorisasi, dimana client harus mengidentifikasikan dirinya ke server POP3 dengan mengirimkan user id dan password.
Jika otorisasi berhasil dan sesuai dengan data yang tersedia di server, maka server akan mengambil data yang dibutuhkan dalam koneksi tersebut dan dilanjutkan dengan tahapan transaksi.
Pada tahapan transaksi, user bisa menggunakan beberapa perintah untuk berinteraksi dengan server, semisal menampilkan daftar email yang tersedia dalam mailbox. Semua pesan yang dikirimkan dalam koneksi POP3 berupa kode ASCII dan format pesan email yang dikirimkan diasumsikan sesuai dengan standar pada RFC 822. Karena semua pesan tidak terenksripsi jika dilakukan penyadapan, maka pesan yang dikomunikasikan selama koneksi dapat dibaca langsung. Solusi untuk permasalahan ini dapat dibangun dengan koneksi SSH, menggunakan otentikasi/enkripsi (PGP atau PEM) pada pesan email.
OutLook Express
Merupakan Mail User Agent sebagai program yang digunakan untuk membuat dan membaca email. MUA bisa disebut juga sebagai email reader yang dapat menerima bermacam-macam perintah untuk pembuatan, penerimaan dan penjawaban pesan. Selain itu MUA juga dapat digunakan untuk memanipulasi mailbox email pengguna.
Terdapat beberapa jenis MUA yang sering digunakan oleh pengguna internet, antara lain MailX, Pine, OutLook Express dan Netscape.
Untuk dapat menggunakan OutLook Express, syarat utama adalah memiliki account (alamat) yang terdaftar pada sebuah server yang memberikan dan membuka protokol SMTP dan POP.
Konfigurasi server
Sebelum melihat isi mailbox dengan menggunakan OutLook Express, kita lakukan setting terhadap server melalui OutLook Express. Well, untuk melakukan setting terhadap server yang digunakan ikuti langkah berikut :
Buka OutLook Express melalui Desktop atau melalui windows explorer dan cari path c:\program files\Outlook Express\msimn.exe. Tampilan utama dari MUA OutLook Express
Klik menu Tools, kemudian pilih Accounts.
Pilih tab Mail, klik Add dan pilih Mail.
Masukan nama Display yang akan digunakan sebagai tampilan di OutLook Express. Nama yang dimasukan bebas tergantung selera, bisa dimasukan nama asli kita, nama orang lain, piaraan, nama orang tua dan sebagainya.
Klik Next. Kemudian masukan alamat email yang telah didaftarkan pada server. Sebagai contoh, chanzoe@softhome.net.
Klik Next. Masukan alamat pop dan smtp yang digunakan sebagai server penghubung antara server dengan Mail User Agent.
Klik Next, untuk memasukan account dan password. Bagian Remember password digunakan untuk mengingatkan password yang digunakan sebagai kunci membuka mailbox. Dengan mengaktifkan bagian remember password, seorang pengguna tidak harus mengisikan password setiap kali pengguna tersebut log in. Biarkan bagian Log On using Secure Passsword Authentication tidak diaktifkan, bagian ini digunakan untuk jika Internet Service Provider membutuhkan autentikasi password.
Klik Next, dan klik Finish.
Klik tombol Close.
Tunggu, beberapa saat untuk pengambilan pesan yang diterima di dalam server.
Akses mailbox
Untuk dapat melakukan pengakesan pesan yang diterima di dalam mailbox server :
Klik menu Tools, Send and Receive, Send and Receive All atau tekan tombol ctrl+M.
Masukan password yang digunakan untuk mengakses mailbox (kotak pesan surat).
Klik OK.
Tulis pesan
Sebuah pesan yang dituliskan dari OutLook Express dapat dimulai melalui :
Klik menu File, New dan pilih New Message.
Di dalam kotak New Message, alamat tujuan diisikan pada bagian To: dan Cc:. Cc digunakan sebagai Carbon Copy (alamat tembusan). Subject diisi sebagai tempat judul pesan yang dituliskan dan bagian kotak besar adalah tempat pesan yang akan disampaikan.
Sama seperti dengan Mail User Agent yang lain, tombol Send digunakan untuk mengeksekusi pengiriman pesan.
Selain itu, untuk melakukan pengiriman pesan bisa melalui tombol New Mail. Dengan menggunakan tombol ini, kita dapat memberikan theme pesan yang lebih menarik. Untuk mengganti theme, klik panah segitiga yang tersedia di tombol New Mail dan kemudian pilih theme yang tersedia didalam New Mail
note : setiap kali kita melakukan aksi (baik mengirimkan dan menuliskan pesan) pastikan bahwa kita telah mengeksekusi tombol Send/Receive
TFTP
Trivial File Transfer Protocol (disingkat menjadi TFTP) adalah sebuah protokol perpindahan berkas yang sangat sederhana yang didefinisikan pada tahun 1980. TFTP memiliki fungsionalitas dasar dari protokol File Transfer Protocol (FTP).
Karena protokol ini sangatlah sederhana, maka implementasi protokol ini dalam komputer yang memiliki memori yang kecil sangatlah mudah. Hal ini memang pertimbangan yang sangat penting pada saat itu. Akhirnya, TFTP pun digunakan untuk melakukan booting komputer seperti halnya routerjaringan komputer yang tidak memiliki perangkat penyimpanan data. Protokol ini kini masih digunakan untuk mentransfer berkas-berkas kecil antar host di dalam sebuah jaringan, seperti halnya ketika terminal jarak jauh X Window System atau thin client lainnya melakukan proses booting dari sebuah host jaringan atau server.
TFTP dibuat berdasarkan protokol yang sebelumnya, yang disebut dengan Easy File Transfer Protocol (EFTP), yang merupakan bagian dari kumpulan protokol PARC Universal Packet (PUP). Pada awal-awal pengembangan protokol TCP/IP, TFTP merupakan protokol pertama kali yang diimplementasikan dalam sebuah jenis host jaringan, karena memang sangat sederhana.
Versi asli TFTP, sebelum direvisi oleh RFC 1350, menampilkan sebuah kelemahan protokol, yang diberinama Sorcerer's Apprentice Syndrome, saat pertama kali diketemukan.
TFTP pertama kali muncul sebagai bagian dari sistem operasi 4.3 BSD. Protokol ini juga masih dimasukkan ke dalam Mac OS X, paling tidak hingga versi 10.5.
Akhir-akhir ini, TFTP sering digunakan oleh worm komputer, seperti W32.Blaster, sebagai metode untuk menyebarkan dirinya dan menginfeksi host jaringan lainnya.
Cara sederhana untuk melihat kelebihan dan kelemahan dari arsitektur RISC (Reduced Instruction Set Computers) adalah dengan langsung membandingkannya dengan arsitektur pendahulunya yaitu CISC (Complex Instruction Set Computers).
Perkalian Dua Bilangan dalam Memori
Pada bagian kiri terlihat sebuah struktur memori (yang disederhanakan) suatu komputer secara umum. Memori tersebut terbagi menjadi beberapa lokasi yang diberi nomor 1 (baris): 1 (kolom) hingga 6:4. Unit eksekusi bertanggung-jawab untuk semua operasi komputasi. Namun, unit eksekusi hanya beroperasi untuk data-data yang sudah disimpan ke dalam salah satu dari 6 register (A, B, C, D, E atau F). Misalnya, kita akan melakukan perkalian (product) dua angka, satu disimpan di lokasi 2:3 sedangkan lainnya di lokasi 5:2, kemudian hasil perkalian tersebut dikembalikan lagi ke lokasi 2:3.
Pendekatan CISC
Tujuan utama dari arsitektur CISC adalah melaksanakan suatu perintah cukup dengan beberapa baris bahasa mesin sedikit mungkin. Hal ini bisa tercapai dengan cara membuat perangkat keras prosesor mampu memahami dan menjalankan beberapa rangkaian operasi. Untuk tujuan contoh kita kali ini, sebuah prosesor CISC sudah dilengkapi dengan sebuah instruksi khusus, yang kita beri nama MULT. Saat dijalankan, instruksi akan membaca dua nilai dan menyimpannya ke 2 register yag berbeda, melakukan perkalian operan di unit eksekusi dan kemudian mengambalikan lagi hasilnya ke register yang benar. Jadi instruksi-nya cukup satu saja…
MULT 2:3, 5:2
MULT dalam hal ini lebih dikenal sebagai “complex instruction”, atau instruksi yang kompleks. Bekerja secara langsung melalui memori komputer dan tidak memerlukan instruksi lain seperti fungsi baca maupun menyimpan.
Satu kelebihan dari sistem ini adalah kompailer hanya menerjemahkan instruksi-instruksi bahasa tingkat-tinggi ke dalam sebuah bahasa mesin. Karena panjang kode instruksi relatif pendek, hanya sedikit saja dari RAM yang digunakan untuk menyimpan instruksi-instruksi tersebut.
Pendekatan RISC
Prosesor RISC hanya menggunakan instruksi-instruksi sederhana yang bisa dieksekusi dalam satu siklus. Dengan demikian, instruksi ‘MULT’ sebagaimana dijelaskan sebelumnya dibagi menjadi tiga instruksi yang berbeda, yaitu “LOAD”, yang digunakan untuk memindahkan data dari memori ke dalam register, “PROD”, yang digunakan untuk melakukan operasi produk (perkalian) dua operan yang berada di dalam register (bukan yang ada di memori) dan “STORE”, yang digunakan untuk memindahkan data dari register kembali ke memori. Berikut ini adalah urutan instruksi yang harus dieksekusi agar yang terjadi sama dengan instruksi “MULT” pada prosesor RISC (dalam 4 baris bahasa mesin):
LOAD A, 2:3 LOAD B, 5:2 PROD A, B STORE 2:3, A
Awalnya memang kelihatan gak efisien iya khan? Hal ini dikarenakan semakin banyak baris instruksi, semakin banyak lokasi RAM yang dibutuhkan untuk menyimpan instruksi-instruksi tersebut. Kompailer juga harus melakukan konversi dari bahasa tingkat tinggi ke bentuk kode instruksi 4 baris tersebut.
CISC:
Penekanan pada perangkat keras Termasuk instruksi kompleks multi-clock Memori-ke-memori:“LOAD” dan “STORE”saling bekerjasama Ukuran kode kecil,kecepatan rendah Transistor digunakan untuk menyimpan instruksi2kompleks.
RISC:
Penekanan pada perangkat lunak Single-clock, hanya sejumlah kecil instruksi Register ke register: “LOAD” dan “STORE” adalah instruksi2 terpisah Ukuran kode besar,kecepatan (relatif) tinggi Transistor banyak dipakai untuk register memori
Bagaimanapun juga, strategi pada RISC memberikan beberapa kelebihan. Karena masing-masing instruksi hanya membuthukan satu siklus detak untuk eksekusi, maka seluruh program (yang sudah dijelaskan sebelumnya) dapat dikerjakan setara dengan kecepatan dari eksekusi instruksi “MULT”. Secara perangkat keras, prosesor RISC tidak terlalu banyak membutuhkan transistor dibandingkan dengan CISC, sehingga menyisakan ruangan untuk register-register serbaguna (general purpose registers). Selain itu, karena semua instruksi dikerjakan dalam waktu yang sama (yaitu satu detak), maka dimungkinkan untuk melakukan pipelining.
Memisahkan instruksi “LOAD” dan “STORE” sesungguhnya mengurangi kerja yang harus dilakukan oleh prosesor. Pada CISC, setelah instruksi “MULT” dieksekusi, prosesor akan secara otomatis menghapus isi register, jika ada operan yang dibutuhkan lagi untuk operasi berikutnya, maka prosesor harus menyimpan-ulang data tersebut dari memori ke register. Sedangkan pada RISC, operan tetap berada dalam register hingga ada data lain yang disimpan ke dalam register yang bersangkutan.
Persamaan Unjuk-kerja (Performance)
Persamaan berikut biasa digunakan sebagai ukuran unjuk-kerja suatu komputer:
Pendekatan CISC bertujuan untuk meminimalkan jumlah instruksi per program, dengan cara mengorbankan kecepatan eksekusi sekian silus/detik. Sedangkan RISC bertolak belakang, tujuannya mengurangi jumlah siklus/detik setiap instruksi dibayar dengan bertambahnya jumlah instruksi per program.
Penghadang jalan (Roadblocks) RISC
Walaupun pemrosesan berbasis RISC memiliki beberapa kelebihan, dibutuhkan waktu kurang lebih 10 tahunan mendapatkan kedudukan di dunia komersil. Hal ini dikarenakan kurangnya dukungan perangkat lunak.
Walaupun Apple’s Power Macintosh menggunakan chip berbasis RISC dan Windows NT adalah kompatibel RISC, Windows 3.1 dan Windows 95 dirancang berdasarkan prosesor CISC. Banyak perusahaan segan untuk masuk ke dalam dunia teknologi RISC. Tanpa adanya ketertarikan komersil, pengembang prosesor RISC tidak akan mampu memproduksi chip RISC dalam jumlah besar sedemikian hingga harganya bisa kompetitif.
Kemerosotan juga disebabkan munculnya Intel, walaupun chip-chip CISC mereka semakin susah digunakan dan sulit dikembangkan, Intel memiliki sumberdaya untuk menjajagi dan melakukan berbagai macam pengembangan dan produksi prosesor-prosesor yang ampuh. Walaupun prosesor RISC lebih unggul dibanding Intel dalam beberapa area, perbedaan tersebut kurang kuat untuk mempengaruhi pembeli agar merubah teknologi yang digunakan.
Keunggulan RISC
Saat ini, hanya Intel x86 satu-satunya chip yang bertahan menggunakan arsitektur CISC. Hal ini terkait dengan adanya kemajuan teknologi komputer pada sektor lain. Harga RAM turun secara dramatis. Pada tahun 1977, DRAM ukuran 1MB berharga %5,000, sedangkan pada tahun 1994 harganya menjadi sekitar $6. Teknologi kompailer juga semakin canggih, dengan demikian RISC yang menggunakan RAM dan perkembangan perangkat lunak menjadi semakin banyak ditemukan.
Jadi:
CISC dan RISC perbedaannya tidak signifikan jika hanya dilihat dari terminologi set instruksinya yang kompleks atau tidak (reduced). Lebih dari itu, RISC dan CISC berbeda dalam filosofi arsitekturnya. Filosofi arsitektur CISC adalah memindahkan kerumitan software ke dalam hardware. Teknologi pembuatan IC saat ini memungkinkan untuk menamam ribuan bahkan jutaan transistor di dalam satu dice. Bermacam-macam instruksi yang mendekati bahasa pemrogram tingkat tinggi dapat dibuat dengan tujuan untuk memudahkan programmer membuat programnya. Beberapa prosesor CISC umumnya memiliki microcode berupa firmware internal di dalam chip-nya yang berguna untuk menterjemahkan instruksi makro. Mekanisme ini bisa memperlambat eksekusi instruksi, namun efektif untuk membuat instruksi-instruksi yang kompleks. Untuk aplikasi-aplikasi tertentu yang membutuhkan singlechip komputer, prosesor CISC bisa menjadi pilihan.
Sebaliknya, filosofi arsitektur RISC adalah arsitektur prosesor yang tidak rumit dengan membatasi jumlah instruksi hanya pada instruksi dasar yang diperlukan saja. Kerumitan membuat program dalam bahasa mesin diatasi dengan membuat bahasa program tingkat tinggi dan compiler yang sesuai. Karena tidak rumit, teorinya mikroprosesor RISC adalah mikroprosesor yang low-cost dalam arti yang sebenarnya. Namun demikian, kelebihan ruang pada prosesor RISC dimanfaatkan untuk membuat sistem-sistem tambahan yang ada pada prosesor modern saat ini. Banyak prosesor RISC yang di dalam chip-nya dilengkapi dengan sistem superscalar, pipelining, caches memory, register-register dan sebagainya, yang tujuannya untuk membuat prosesor itu menjadi semakin cepat.
Jadi mana yang lebih baik apakah RISC atau CISC, anda tentu punya pendapat sendiri.
PROSESOR SUPERSCALAR
Salah satu jenis dari arsitektur, dimana superscalar adalah sebuah uniprocessor yang dapat mengeksekusi dua atau lebih operasi scalar dalm bentuk paralel.
Merupakan salah satu rancangan untuk meningkatkan kecepatan CPU. Kebanyakan dari komputer saat ini menggunakan mekanisme superscalar ini. Standar pipeline yang digunakan adalah untuk pengolahan bilangan matematika integer (bilangan bulat, bilangan yang tidak memiliki pecahan), kebanyakan CPU juga memiliki kemampuan untuk pengolahan untuk data floating point (bilangan berkoma). Pipeline yang mengolah integer dapat juga digunakan untuk mengolah data bertipe floating point ini, namun untuk aplikasi tertentu, terutama untuk aplikasi keperluan ilmiah CPU yang memiliki kemampuan pengolahan floating point dapat meningkatkan kecepatan prosesnya secara dramatis.
Peristiwa menarik yang bisa dilakukan dengan metoda superscalar ini adalah dalam hal memperkirakan pencabangan instruksi (brach prediction) serta perkiraan eksekusi perintah (speculative execution). Peristiwa ini sangat menguntungkan buat program yang membutuhkan pencabangan dari kelompok intruksi yang dijalankankannya.
Program yang terdiri dari kelompok perintah bercabang ini sering digunakan dalam pemrograman. Contohnya dalam menentukan aktifitas yang dilakukan oleh suatu sistem berdasarkan umur seseorang yang sedang diolahnya, katakanlah jika umur yang bersangkutan lebih dari 18 tahun, maka akan diberlakukan instruksi yang berhubungan dengan umur tersebut, anggaplah seseorang tersebut dianggap telah dewasa, sedangkan untuk kondisi lainnya dianggap belum dewasa. Tentu perlakuannya akan dibedakan sesuai dengan sistem yang sedang dijalankan.
Lalu apa yang dilakukan oleh CPU untuk hal ini? Komputer akan membandingkan nilai umur data yang diperolehnya dengan 18 tahun sehingga komputer dapat menentukan langkah dan sikap yang harus diambilnya berdasarkan hasil perbandingan tersebut. Sikap yang diambil tentu akan diambil berdasarkan pencabangan yang ada.
Pada CPU yang mendukung perintah pencabangan ini, CPU membutuhkan lumayan banyak clock cycle, mengingat CPU menempatkan semuanya pada pipeline dan menemukan perintah berikutnya yang akan dieksekusinya. Sirkuit untuk branch prediction melakukan pekerjaan ini bekerja sama dengan pipeline, yang dilakukan sebelum proses di ALU dilaksanakan, dan memperkirakan hasil dari pencabangan tersebut.
Jika CPU berfikir bahwa branch akan menuju suatu cabang, biasanya berdasarkan pekerjaan sebelumnya, maka perintah berikutnya sudah dipersiapkan untuk dieksekusi berikut data-datanya, bahkan dengan adanya pipeline ini, bila tidak diperlukan suatu referensi dari instruksi terakhir, maka bisa dilaksanakan dengan segera, karena data dan instruksi yang dibutuhkan telah dipersiapkan sebelumnya..
Dalam hal speculative execution, artinya CPU akan menggunakan melakukan perhitungan pada pipeline yang berbeda berdasarkan kemungkinan yang diperkirakan oleh komputer. Jika kemungkinan yang dilakukan oleh komputer tepat, maka hasilnya sudah bisa diambil langsung dan tinggal melanjutkan perintah berikutnya, sedangkan jika kemungkinan yang diperkirakan oleh komputer tidak tepat, maka akan dilaksanakan kemungkinan lain sesuai dengan logika instruksi tersebut.
Teknik yang digunakan untuk pipeline dan superscalar ini bisa melaksanakan branch prediction dan speculative execution tentunya membutuhkan ekstra transistor yang tidak sedikit untuk hal tersebut.
Sebagai perbandingan, komputer yang membangkitkan pemrosesan pada PC pertama yang dikeluarkan oleh IBM pada mesin 8088 memiliki sekitar 29.000 transistor. Sedangkan pada mesin Pentium III, dengan teknologi superscalar dan superpipeline, mendukung branch prediction, speculative execution serta berbagai kemampuan lainnya memiliki sekitar 7,5 juta transistor. Beberapa CPU terkini lainnya seperti HP 8500 memiliki sekitar 140 juta transistor.
Istilah tsunami berasal dari bahasa Jepang. Tsu berarti "pelabuhan", dan nami berarti "gelombang", sehingga tsunami dapat diartikan sebagai "gelombang pelabuhan".
Istilah ini pertama kali muncul di kalangan nelayan Jepang. Karena panjang gelombang tsunami sangat besar, pada saat berada di tengah laut, para nelayan tidak merasakan adanya gelombang ini. Namun setibanya kembali ke pelabuhan, mereka mendapati wilayah di sekitar pelabuhan tersebut rusak parah. Karena itulah mereka menyimpulkan bahwa gelombang tsunami hanya timbul di wilayah sekitar pelabuhan, dan tidak di tengah lautan yang dalam.
Tsunami Tsunami adalah gelombang air yang sangat besar yang dibangkitkan oleh macam-macam gangguan di dasar samudra. Gangguan ini dapat berupa gempa bumi, pergeseran lempeng, atau gunung meletus. Tsunami tidak kelihatan saat masih berada jauh di tengah lautan, namun begitu mencapai wilayah dangkal, gelombangnya yang bergerak cepat ini akan semakin membesar.
Tsunami juga sering disangka sebagai gelombang air pasang. Ini karena saat mencapai daratan, gelombang ini memang lebih menyerupai air pasang yang tinggi daripada menyerupai ombak biasa yang mencapai pantai secara alami oleh tiupan angin. Namun sebenarnya gelombang tsunami sama sekali tidak berkaitan dengan peristiwa pasang surut air laut. Karena itu untuk menghindari pemahaman yang salah, para ahli oseanografi sering menggunakan istilah gelombang laut seismik (seismic sea wave) untuk menyebut tsunami, yang secara ilmiah lebih akurat.
Sebab-sebab Terjadinya Tsunami
Tsunami dapat dipicu oleh bermacam-macam gangguan (disturbance) berskala besar terhadap air laut, misalnya gempa bumi, pergeseran lempeng, meletusnya gunung berapi di bawah laut, atau tumbukan benda langit. Tsunami dapat terjadi apabila dasar laut bergerak secara tiba-tiba dan mengalami perpindahan vertikal.
• Longsoran Lempeng Bawah Laut (Undersea landslides) Gerakan yang besar pada kerak bumi biasanya terjadi di perbatasan antar lempeng tektonik. Celah retakan antara kedua lempeng tektonik ini disebut dengan sesar (fault). Sebagai contoh, di sekeliling tepian Samudra Pasifik yang biasa disebut dengan Lingkaran Api (Ring of Fire), lempeng samudra yang lebih padat menunjam masuk ke bawah lempeng benua. Proses ini dinamakan dengan penunjaman (subduction). Gempa subduksi sangat efektif membangkitkan gelombang tsunami.
• Gempabumi Bawah Laut (Undersea Earthquake) Gempa tektonik merupakan salah satu gempa yang diakibatkan oleh pergerakan lempeng bumi. Jika gempa semacam ini terjadi di bawah laut, air di atas wilayah lempeng yang bergerak tersebut berpindah dari posisi ekuilibriumnya. Gelombang muncul ketika air ini bergerak oleh pengaruh gravitasi kembali ke posisi ekuilibriumnya. Bila wilayah yang luas pada dasar laut bergerak naik ataupun turun, tsunami dapat terjadi.
• Aktivitas Vulkanik (Volcanic Activities) Pergeseran lempeng di dasar laut, selain dapat mengakibatkan gempa juga seringkali menyebabkan peningkatan aktivitas vulkanik pada gunung berapi. Kedua hal ini dapat menggoncangkan air laut di atas lempeng tersebut. Demikian pula, meletusnya gunung berapi yang terletak di dasar samudra juga dapat menaikkan air dan membangkitkan gelombang tsunami.
• Tumbukan Benda Luar Angkasa (Cosmic-body Impacts) Tumbukan dari benda luar angkasa seperti meteor merupakan gangguan terhadap air laut yang datang dari arah permukaan. Boleh dibilang tsunami yang timbul karena sebab ini umumnya terjadi sangat cepat dan jarang mempengaruhi wilayah pesisir yang jauh dari sumber gelombang. Sekalipun begitu, bila pergerakan lempeng dan tabrakan benda angkasa luar cukup dahsyat, kedua peristiwa ini dapat menciptakan megatsunami.
Karakteristik Tsunami
Perilaku gelombang tsunami sangat berbeda dari ombak laut biasa. Gelombang tsunami bergerak dengan kecepatan tinggi dan dapat merambat lintas-samudra dengan sedikit energi berkurang. Tsunami dapat menerjang wilayah yang berjarak ribuan kilometer dari sumbernya, sehingga mungkin ada selisih waktu beberapa jam antara terciptanya gelombang ini dengan bencana yang ditimbulkannya di pantai. Waktu perambatan gelombang tsunami lebih lama dari waktu yang diperlukan oleh gelombang seismik untuk mencapai tempat yang sama.
Periode tsunami cukup bervariasi, mulai dari 2 menit hingga lebih dari 1 jam. Panjang gelombangnya sangat besar, antara 100-200 km. Bandingkan dengan ombak laut biasa di pantai selancar (surfing) yang mungkin hanya memiliki periode 10 detik dan panjang gelombang 150 meter. Karena itulah pada saat masih di tengah laut, gelombang tsunami hampir tidak nampak dan hanya terasa seperti ayunan air saja. Perbandingan Gelombang Tsunami dan Ombak Laut Biasa
Bila lempeng samudra pada sesar bergerak naik (raising), terjadi air pasang di wilayah pantai hingga wilayah tersebut akan mengalami banjir sebelum kemudian gelombang air yang lebih tinggi datang menerjang.
Rising Bila lempeng samudra bergerak naik, wilayah pantai akan mengalami banjir air pasang sebelum datangnya tsunami.
Bila lempeng samudra pada sesar bergerak turun (sinking), kurang lebih pada separuh waktu sebelum gelombang tsunami sampai di pantai, air laut di pantai tersebut surut. Pada pantai yang landai, surutnya air bisa mencapai lebih dari 800 meter menjauhi pantai. Masyarakat yang tidak sadar akan datangnya bahaya mungkin akan tetap tinggal di pantai karena ingin tahu apa yang sedang terjadi. Atau bagi para nelayan mereka justru memanfaatkan momen saat air laut surut tersebut untuk mengumpulkan ikan-ikan yang banyak bertebaran.
Sinking Bila lempeng samudra bergerak turun, di wilayah pantai air laut akan surut sebelum datangnya tsunami.
Pada suatu gelombang, bila rasio antara kedalaman air dan panjang gelombang menjadi sangat kecil, gelombang tersebut dinamakan gelombang air-dangkal. Karena gelombang tsunami memiliki panjang gelombang yang sangat besar, gelombang tsunami berperan sebagai gelombang air-dangkal, bahkan di samudra yang dalam. Gelombang air-dangkal bergerak dengan kecepatan yang setara dengan akar kuadrat hasil perkalian antara percepatan gravitasi (9,8 m/s2) dan kedalaman air laut.
Sebagai contoh, di Samudra Pasifik, dimana kedalaman air rata-rata adalah 4000 meter, gelombang tsunami merambat dengan kecepatan ± 200 m/s (kira-kira 712 km/jam) dengan hanya sedikit energi yang hilang, bahkan untuk jarak yang jauh. Sementara pada kedalaman 40 meter, kecepatannya mencapai ± 20 m/s (sekitar 71 km/jam), lebih lambat namun tetap sulit dilampaui.
Energi dari gelombang tsunami merupakan fungsi perkalian antara tinggi gelombang dan kecepatannya. Nilai energi ini selalu konstan, yang berarti tinggi gelombang berbanding terbalik dengan kecepatan merambat gelombang. Oleh sebab itu, ketika gelombang mencapai daratan, tingginya meningkat sementara kecepatannya menurun.
Kacepatan Tsunami Saat memasuki wilayah dangkal, kecepatan gelombang tsunami menurun sedangkan tingginya meningkat, menciptakan gelombang mengerikan yang sangat merusak.
Selagi orang-orang yang berada di tengah laut bahkan tidak menyadari adanya tsunami, gelombang tsunami dapat mencapai ketinggian hingga 30 meter atau lebih ketika mencapai wilayah pantai dan daerah padat. Tsunami dapat menimbulkan kerusakan yang sangat parah di wilayah yang jauh dari sumber pembangkitan gelombang, meskipun peristiwa pembangkitan gelombang itu sendiri mungkin tidak dapat dirasakan tanpa alat bantu.
Tsunami bergerak maju ke satu arah dari sumbernya, sehingga wilayah yang berada di daerah "bayangan" relatif dalam kondisi aman. Namun demikian, gelombang tsunami dapat saja berbelok di sekitar daratan. Gelombang ini juga bisa saja tidak simetris. Gelombang ke satu arah mungkin lebih kuat dibanding gelombang ke arah lainnya, tergantung dari peristiwa alam yang memicunya dan kondisi geografis wilayah sekitarnya.
Megatsunami dan Seiche
Bukti-bukti menunjukkan bahwa megatsunami, yaitu tsunami yang mencapai ketinggian hingga 100 meter, memang mungkin terjadi. Peristiwa yang langka ini biasanya disebabkan oleh sebuah pulau yang cukup besar amblas ke dasar samudra. Megatsunami juga bisa disebabkan oleh sebongkah besar es yang jatuh ke air dari ketinggian ratusan meter. Gelombang ini dapat menyebabkan kerusakan yang sangat dahsyat pada cakupan wilayah pantai yang sangat luas.
Satu hal yang berkaitan dengan tsunami antara lain adalah seiche, yaitu fluktuasi atau pengalunan permukaan danau atau badan air yang kecil yang disebabkan oleh gempa-bumi kecil, angin, atau oleh keragaman tekanan udara. Seringkali gempa yang besar menyebabkan tsunami dan seiche sekaligus, atau sebagian seiche justru terjadi karena tsunami.
Tsunami Dengan Gelombang Tertinggi
Gelombang tsunami tertinggi yang tercatat sampai saat ini adalah tsunami di Alaska pada tahun 1958 yang disebabkan oleh amblasnya lempeng tektonik di Teluk Lituya. Tsunami ini memiliki ketinggian lebih dari 500 meter dan menghancurkan pohon-pohon dan tanah pada dinding fjord. Saat gelombang tsunami kembali ke laut, gelombang tersebut langsung menyebar dan tingginya menurun dengan cepat. Tingginya gelombang saat berada di pantai lebih disebabkan karena topografi wilayahnya, daripada karena energi yang dikeluarkan oleh peristiwa amblasnya lempeng.
Fjord, suatu teluk sempit (inlet) di antara tebing-tebing atau lahan terjal. Biasa djumpai di Norwegia, Alaska, Selandia Baru, dll. Sebelumnya fjord ini merupakan sungai gletser yang terbentuk di wilayah pegunungan di kawasan pantai. Saat suhu menjadi hangat, sungai gletser ini mencair, akibatnya permukaan air laut naik dan membanjiri lembah di sela-sela pegunungan tersebut.
Tsunami Di Indonesia
Berdasarkan katalog gempa (1629 - 2002) di Indonesia pernah terjadi tsunami sebanyak 109 kali, yakni 1 kali akibat longsoran (landslide), 9 kali akibat gunung berapi dan 98 kali akibat gempa tektonik. Hal-hal yang paling berpotensi menimbulkan tsunami adalah:
Misalkan kita mempunyai susunan sensor, tampak atas, seperti berikut: (4) ------ (3) - (2) -(1) ------ (0)
Dimana angka menunjukkan pin uC, katakanlah pada PORT C. Jadi kita menggunakan pin PORTC.0 untuk sensor paling kanan, PORTC.1 untuk sensor tengah kanan, dst hingga PORTC.4 untuk sensor paling kiri. Untuk mempermudah, saya biasanya menggunakan data mapping. Jadi kondisi sensor akan di mapping dengan data PWM motor. Katakanlah sensor line tracer itu aktif low, jadi pin uC akan membaca logika 0 saat mengenai garis. Oke, karena ada 5 sensor maka akan ada 2^5 = 32 kemungkinan kondisi sensor. Saya hanya akan membuat kedua robot bergerak maju, sehingga bisa di buat kontroler motor untuk bergerak satu arah saja. Saya akan membuat beberapa nilai sensor (dalam hexa) saja sebagai contoh, sisanya bisa diimpementasikan sendiri. Berikut tabelnya:
Saya mengimplementasikan PWM dengan menggunakan interrupt timer pada uC, dimana nilai 0xff adalah PWM full speed (100%) dan motor akan berhenti dengan nilai 0. Pada kasus saya, motor kanan dan kiri akan mempunyai nilai PWM yang berbeda untuk kecepatan aktual yang terlihat sama, jika dilihat pada tabel untuk membuat motor maju lurus nilai PWM kanan dan kiri berbeda 15 desimal. Jika merujuk ke sunsunan sensor, nilai 0×11 menunjukkan tiga sensor tengah mengenai garis, sehingga PWM motor diberi hampir full agar bergerak maju lurus. Kondisi 0×17 mengharuskan robot bergerak serong kiri dan kondisi 0×1E mengharuskan robot banting kanan. Dengan cara mapping nilai sensor dari PINC dengan data PWM kita sudah mengimplementasikan sistem kontrol proportional, dimana gain motor akan mempunyai proporsi sesuai nilai sensor yg diinput ke PINC. Untuk menulisnya dengan bahasa C, saya akan menggunakan array untuk menampung data PWM, berikut potongan programnya: /** * isikan data PWM motor kiri dan kanan * sesuai dengan 32 kondisi sensor */ unsigned char PWMKiri[32] = { 0x00, 0x00, ... } unsigned char PWMKanan[32] = { 0x00, 0x00, ... } unsigned char state;
void scan() { state = PINC & 0x1F; //baca PINC.0 - PINC.4 /** * beri nilai PWM motor kiri dengan * data PWMKiri dan PWMkanan * dimana indexnya adalah kondisi sensor */ PWMKiriVal = PWMKiri[state]; PWMKananVal = PWMKanan[state]; }
Untuk menambahkan kontrol derivative, kita perlu menggunakan delta PWM. Kita perlu mencatat data PWM sebelumnya. Kita bisa mengubah fungsi scan menjadi: //variabel untuk menampung nilai PWM sebelumnya unsigned char last_state, d;
//jika dipanggil tanpa argumen, fungsi scan hanya sistem kontrol proportional void scan(d = false) { state = PINC & 0x1F;
//jika dipanggil dengan scan(1), aktifkan fungsi proportioal-derivative if (d) { PWMKiriVal = PWMKiri[state] + (PWMKiri[state] - PWMKiri[last_state]); PWMKananVal = PWMKanan[state] + (PWMKanan[state] - PWMKanan[last_state]); } else { //sistem proportional saja /* beri nilai PWM motor kiri dan kanan * dimana indexnya adalah kondisi sensor */ PWMKiriVal = PWMKiri[state]; PWMKananVal = PWMKanan[state]; } last_state = state; }
Sistem derivative di atas hanya gambaran bagaimana menerapkan sistem kontrol PD, dan agak redundant jika digunakan dalam robot sederhana dengan 5 sensor. Dalam mendesain sistem derivative perlu diperhatikan apakah penyimpangan error dalam kondisi sistem itu cukup signifikan untuk membuat sistem bergerak stabil jika ditambahkan ke dalam sistem kontrol. Jika masih bingung apa itu sistem PID, coba di googling. Sebagai pendahuluan coba baca artikel PID di Wikipedia.