Posts filed under 'IF2-an'
Ringkasan Kuliah “Advanced Operating System”…[Pertemuan II]
Kuliah “Advanced Operating System” (Sistem Operasi Lanjut) merupakan salah satu mata kuliah S2 Informatika yang aku ‘cicil’ dimasa kuliah S1 sekarang ini. Secara garis besar, seperti halnya yang disampaikan Pak Awang (dosen mata kuliah ini), kuliah ini akan mempelajari hal-hal fundamental dari perancangan Sistem Operasi serta melakukan simulasi untuk melakukan riset yang berkaitan dengan ilmu Sistem Operasi. Referensi perkuliahan tidak akan banyak mengacu ke text-book klasik, melainkan akan banyak melakukan analisis terhadap berbagai makalah/paper yang telah pernah dipublikasikan oleh para ahli di bidang.
Pada pertemuan II, cukup banyak hal yang disampaikan oleh Pak Awang. Langsung aja ga usah pake basa basi (karena skrg aq dah ngantuk berat, fiuuhh.. pengen cepet2 selesai nge-rangkum), ini dia beberapa info yang berhasil ku rangkum.
——————————————————————————————————————————————-
Tipe-tipe Paper
- Survey Papers
- Positioin Papers
- Simulation Papers
- Measurement Papers
- System Papers
Tujuan perancangan Single-Processor OS
- clean virtual machine
- hardware independence
- resource sharing & management
- long-time data storage
- protection
- real-time support
Process Management
- Thread => a sequencial execution stream
- Address Space => chunks of memory & everything needed to run a program
- Process => an address space + thread
Process Schedulling
- membuat kesan seolah-olah proses berjalan berbarengan (konkuren)
- context switching=> changing the attention of the processor
OS Design Issues
- fairness
- high throughput
- responsiveness
- cost of context switching
- dll
Synchronization
=> provide correct execution or coordinating thread
=> issues : atomic actions, mutual exclusion, semaphore, deadlock
Memory Management
=> memberikan kesan bahwa memori yang tersedia seolah-olah lebih besar dari kapasitas yang dimilikinya
=> issues : virtual memory, swapping, paging, dll
File System
=> File : Data + Attributes
=> Issues : organization, naming, access, synchronization, protection & security
Device Caching
=> Latar belakang : I/O access jauh lebih lambat daripada memory access
Oiya, hampir lupa.. pertemuan kali ini kami juga diberikan tugas untuk menganalisis paper yang berjudul “The Unix Time-Sharing System (Dennis M.Ritchie & Ken Thompson, Bell Laboratories)”. Paper ini mengulas tentang ide-ide mendasar pada masa-masa awal perancangan Sistem Operasi. Silakan dinikmati bacaannya..
————————————————————————————————————————————————
Huh, selesai juga.. tidur dulu ah. Maav kalo ringkasan tidak begitu jelas & terkesan seadanya. Sekadar untuk ‘mengikat’ ilmu yang baru saja aq dapatkan.
Ikatlah ilmu dengan menuliskannya (Ali bin Abi Thalib)
1 comment February 4, 2009
Ringkasan Kuliah Sistem Terdistribusi I
Pada pertemuan I kuliah Sistem Terdistribusi(Sister) hari ini (3/2/2009),kelas yang tadinya ‘adem ayem’ tiba2 rusuh dgn membludaknya jumlah mahasiswa yang masuk ke kelas.Ternyata kelas tetangga (utk mata kuliah yang sama) ikut bergabung sehingga jumlah total mahasiswa yang ada di kelas sekitar 240 orang !!,melebihi kapasitas kursi yang tersedia sehingga banyak teman2 menyimak kuliah sambil berdiri.– ni kuliah apa mo dengerin pidato presiden Barrack Obama yak?? –
Mungkin kuliah kali ini menjadi kuliah dgn peserta terbanyak selama aq berkuliah. huhu… tapi mudah2an keadaan yang ga kondusif ini ga bertahan lama yak, hhe..
Pada kesempatan kali ini Pak Imam, dosen mata kuliah ini, tidak terlalu menjelaskan banyak hal. Yah yang namanya kuliah hari pertama tau sendirilah, hhe…pemanasan dulu. Mobil aja kalo langsung dibawa ‘ngebut’ tanpa dipanasi bisa2 bakal ‘batuk2′.
Berikut ini hal-hal yang berhasil ku ringkas dari kuliah yang diberikan oleh Pak Imam pada pertemuan pertama ini.
Lingkup Bahasan
Selama 1 semester ini, kuliah Sistem Terdistribusi akan membahas tentang masalah2x sbb.
- konsep dasar
- prasyarat Sister : transparansi
- masalah : kegagalan & keandalan (reliability)
- struktur aplikasi sister : RPC & Client-Server, Tiered-Systems
- atomic transactions
- events, message & order : group communication
- fault-tolerance
- Peer-to-peer
- aplikasi/implementasi (ni kayaknya bakal jadi tugas kecil/besar)
Text-Book
Cuma sempet 2 referensi yang ke catet, yaitu
- G. Coulouris et.al. : “Distributed Systems, Concepts & Design, 4rd Edition”. Addison- Wesley, 2006
- Philip J. Brooke & Richard F. Paige : Practical Distributed Processing, Springer, 2008
Ringkasan Kuliah
Definisi Sistem Terdistribusi :
=> [Leslie Lamport] : one in which the failure of a computer you did not even know existed can render your own computer unusable.
=> [- ga tau- ] : sistem yang terdiri dari komponen-komponen yang independen, namun menyediakan kesatuan layanan kepada pengguna
=> [Tanenbaum] : fokus pada aspek transparansi
=> [Coulouris] : sistem yang komponen2xnya saling berkomunikasi hanya dengan bertukar pesan
=> [Shcroeder]: beberapa komponen melakukan sesuatu bersama-sama dengan 3 karakteristik, yaitu multiple computer, interconnection, shared state
3 masalah utama pada sister :
1. konkurensi : – penanganan akses bersama
2. sinkronisasi : – timing
3. failure : – multiple component
Begitulah kira2 ringkasan kuliah Sistem Terdistribusi di hari pertama. InsyaAllah ringkasan untuk kuliah-kuliah berikutnya akan selalu di-posting di sini.
1 comment February 3, 2009
Kesalahan Terbesar dalam Mendesain Web
hehe, dah lumayan lama aq ga nulis postingan yang rada seriusan dikit. skrg aj ah…..
Lagi termenung di kamar,, ngedengerin musik2 klasik,, ngemil2,, tidur2an - dengan harapan dapet ilham buat nge desain suatu web (berhubung skrg lagi dapet project baru). ‘n hasilnya te2p ga dapet2 ilham, hhe.
Langsung aja aq nyolok modem baru, konek to dunia maya, ‘n tanya om google ttg masalah web design, berharap om google bisa ngasih primbon yg ‘cocok’.
Wow, ternyata ada tulisan dari Pak Jacob Nielsen, sang ahli Design Usability, yang dulu namanya sering aq denger di kuliah Interaksi Manusia Komputer. Menurut beliau, ada 10 kesalahan terbesar yang seharusnya tidak dilakukan dalam mendesain web, yaitu
1. Mesin pencarian yang buruk
Mesin pencari biasanya digunakan bila pencarian melalui navigasi gagal. Idealnya, hasil dokumen yang menduduki peringkat-peringkat teratas yang didapatkan dari mesin pencari merupakan dokumen yang paling relevan dengan user. Namun demikian, mesin-mesin pencari yang ada pada saat ini berbasis berapa banyak literal pada dokumen yang cocok dengan kalimat query. Banyaknya literal yang cocok pada suatu dokumen, belum tentu relevan bagi user. Menurut pak Jacob, sebaiknya mesin pencari menampilkan informasi “best bets”, yaitu dokumen-dokumen yang paling sering di ambil untuk query tertentu.
2. File PDF yang digunakan untuk membaca online
Adanya halaman berformat PDF yang dibaca secara online dapat memperlambat flow dalam melakukan aktifitas berselancar. Selain lambat untuk dibuka, terkadang melakukan hal-hal sederhana pun seperti menyimpan dan menge-print dokumen menjadi sulit. Hal yang paling krusial, tidak semua browser mendukung fasitilitas pembacaan PDF secara online.
3. Tidak mengubah warna text link tanda bahwa link tersebut sudah pernah dikunjungi
Mungkin hal ini telah menjadi hal yang lumrah, agar user tidak mengulangi pekerjaan membuka halaman yang sama
4. Text yang tidak scannable
Text yang tidak scannable sulit dan ’sangat menyakitkan’ untuk dibaca. Adapun tips & trik untuk merancang suatu tulisan yang scannable yaitu :
- subheads
- bulleted lists
- highlighted keywords
- short paragraphs
- the inverted pyramid
- a simple writing style, and
- de-fluffed language devoid of marketese.
5. Ukuran font yang tidak dapat diubah-ubah
Pada teknologi CSS, disediakan fasilitas untuk tidak dapat mengubah ukuran font. Misalnya, tidak mengaktifkan aksi Ctrl + Scroll untuk me-resize font. Nah, sebaiknya fasilitas itu jangan digunakan. Biarkan user bebas dalam menentukan ukuran font sesuai yang diinginkan.
6. Judul halaman yang menyebabkan halaman tersebut sulit ditemukan oleh mesin pencari (tidak visible)
Usahakan judul halaman merupakan text yang unik dan relevan, yang cukup menggambarkan isi dari situs.
7. Apapun yang tampak seperti iklan
Sebenarnya iklan dirancang dengan tujuan agar mendapat perhatian seketika dari user (selective attention). Namun pada kenyataannya, banyak user yang seringkali mengacuhkan iklan. Alih-alih user membaca isi dari halaman tersebut, kebanyakan halaman yang tampak seperti iklan langsung ditutup. Dengan demikian, hindari desain yang tampak seperti iklan atau cobalah metode selective attention yang lain.
8. Melanggar konvensi desain
Konvensi/prinsip utama dalam mendesain web yang hampir tidak boleh dilanggar adalah konsistensi. Desain halaman web yang konsisten mempermudah user dalam mempelajarinya.
9. Membuka jendela browser baru
Terkadang user tidak menyadari bahwa halaman web yang baru diklik tersebut telah terbuka. Selain itu, bertambah jendela browser baru semakin ‘mengotori’ monitor user.
10. Tidak menjawab pertanyaan user
Kegagalan utama dari desain suatu web adalah user tidak mampu mendapatkan informasi dari web tersebut dimana informasi tersebut seharusnya ada di sana.
Contohnya, pada web komersial, informasi yang utama bagi user adalah harga produk/jasa. Kebanyakan web komersial tidak men-visible-kan informasi harga tersebut, sehingga user cenderung mencari web lain yang lebih relevan. Contoh yang lain adalah pada aktifitas download. Kebanyakan aplikasi web yang menyediakan fasilitas download, harus melewati berbagai ‘rintangan’ prosedur terlebih dahulu. Dan contoh2 lainnya.
Hmm…mayan lah sbg guideline buat ngedesain halaman web. Boleh setuju ataupun ga setuju. Kalau aq siy setuju-setuju aja karena pendapat tersebut langsung dari ahlinya
Kalo mo nambahin sendiri ‘kesalahan-kesalahan’ lainnya, ini dia beberapa hal yang menurut aq cukup nyebelin :
- terlalu banyak kombinasi warna yang mencolok
- terlalu banyak gambar atau video yang membuat respon lambat
- ga ada keterangan singkat tentang web site di halaman depan
- halaman web yang tampaknya menyediakan dokumen/program/file multimedia yang gratis, padahal berbayar (hhe, ga tau ini yang salah syapa)
Ada yang mau nambahin lagi??
1 comment January 13, 2009
Teori Shannon
Baru2 ini ada tugas mata kuliah Kriptografi yang membahas tentang Teori Shannon, salah satu teori komunikasi yang menjadi sumber inspirasi di berbagai disiplin ilmu, khususnya di bidang ilmu komputer, matematika, dan komunikasi.
Ini dia tulisan yang ku rangkum dari berbagai sumber. Silakan diunduh pada link di bawah. .Semoga bermanfaat
4 comments September 11, 2008
Real-Time Clock dengan Javascript
Ass…wr.wb.
Pengen buat real-time clock pada web? Ini bisa diprogram dengan mudah dengan Javascript. Pada bahasa pemrograman Javascript, terdapat predefined object yang dapat digunakan untuk merepresentasikan tanggal dan waktu, yaitu objek date. Untuk ‘menghidupkan’ sebuah instance date dengan nama tanggal, sintaks yang digunakan adalah sebagai berikut.
var tanggal = new Date();
Pada objek date, ada berbagai method yang dapat kita gunakan, yaitu sebagai berikut.
|
Method |
Tipe Kembalian |
Deskripsi |
|
getDate() |
Integer |
Mengembalikan angka hari dalam suatu bulan |
|
getDay() |
Integer |
Mengembalikan angka hari dalam 1 minggu (Minggu = 0) |
|
getMonth() |
Integer |
Mengembalikan angka bulan dalam 1 tahun (Januari = 0) |
|
getYear() |
Integer |
Jika tahun<2000, maka kembaliannya adalah 2 digit terakhir dari tahun, jika tahun>= 2000, maka kembaliannya adalah 3 digit terakhir dari tahun (xyz) dimana x = 1 |
|
getFullYear() |
Integer |
Mengembalikan angka tahun |
|
getTime() |
Integer |
Mengembalikan selang waktu dalam milliseconds sejak 1 Januari 1970 s.d. sekarang |
|
getHours |
Integer |
Mengembalikan jam dalam 1 hari |
|
getMinutes() |
Integer |
Mengembalikan menit dalam 1 jam |
|
getSeconds() |
Integer |
Mengembalikan detik dalam 1 menit |
|
getMilliseconds() |
Integer |
Mengembalikan milidetik dalam 1 detik |
|
toTimeString() |
String |
Mengembalikan waktu dalam string dengan format hh:mm:ss GMT – xx:yy (<nama_lokasi> Standard Time) |
|
toLocaleTimeString() |
String |
Mengembalikan waktu dalam string dengan format hh:mm:ss AM/PM |
|
toDateString() |
String |
Mengembalikan tanggal dalam string-string singkatan dengan format inggris ( contoh : Wed Jun 25 2008 ) |
|
toLocaleDateString() |
String |
Mengembalikan tanggal dalam string dengan format inggris (contoh : Wednesday, June 25, 2008 ) |
|
toLocaleString() |
String |
Mengembalikan tanggal + waktu dalam string dengan format inggris (contoh : Wednesday,June 25,2008 7:09:21 PM ) |
Darimanakah informasi tanggal dan waktu yang diambil oleh Javascript berasal?
Ya mudah aja, karena Javascript merupakan salah satu dari sekian jenis bahasa pemrograman web yang client-side scripting, maka informasi tanggal dan waktu tersebut berasal dari komputer client, bukan dari komputer server.
Untuk menampilkan waktu atau jam dengan format hh:mm:ss PM/AM di suatu objek HTML (pada contoh dibawah ini akan digunakan objek DIV) pada saat halamat HTML tersebut di-load ke browser,maka langkah-langkahnya adalah sebagai berkut.
1. Buat sebuah fungsi yang menjalankan instance dari objek tanggal. Mis. Fungsi tersebut kita namakan show_date()
<script type=”text/javascript”>
function show_date(){
var tanggal= new Date();
document.getElementById(“tempat_tanggal”).innerHTML= tanggal.toLocaleTimeString();
}
</script>
2. Tambahkan action onload = <nama_fungsi> pada tag pembuka body
</pre> . . . <body onload="show_date()"> . . . <pre>
3. Jangan lupa buat sebuah objek DIV dengan ID = <string_id> pada halaman tersebut.
<div id = “tempat_tanggal”></div>
Jika langkah-langkah tersebut dijalankan dengan bernar dan tidak ada gangguan teknis maupun non-teknis :> , maka jam dengan format dd:mm:yy AM/PM akan tampil pada objek div dengan id=”tempat_tanggal”.
Nah, agar jam dapat berjalan pada web browser seperti jam-jam sebagaimana mestinya (real-time clock), maka ide dasarnya adalah dengan me-refresh halaman secara menyeluruh ataupun secara parsial setiap detiknya dengan harapan agar informasi jam dari mesin client dapat diambil terus-menerus tiap detiknya. Untuk itu, kita dapat menggunakan method setTimeout(<nama_fungsi>,<milliseconds>).
Script pada block javascript yang dituliskan kira-kira dapat berbentuk seperti ini
<script type=”text/javascript”>
//menuju ke fungsi show_date() 1000 milidetik atau 1 detik kemudian
window.setTimeout(“show_date()”,1000);
function show_date(){
var tanggal = new Date();
document.getElementById(“tempat_tanggal”).innerHTML= tanggal.toLocaleTimeString();
//kembali ke awal fungsi show_date() 1000 milidetik atau 1 detik kemudian
setTimeout(“show_date”,1000);
}
</script>
Kira-kira begitulah ide dasar dari pembuatan real-time clock pada web. Representasi dari jam dapat dikembangkan menjadi animasi dengan mengganti-ganti gambar clock atau menggeser-geser jarum jam pada clock untuk setiap perubahan waktu yang terjadi, tidak harus menggunakan method toLocaleTimeString() atau method-method string lainnya.
Sekian…wassalam.
P.S. coba temen2 buat script untuk countdown timer. Misal: untuk dalam selang waktu n jam / menit / detik tiba-tiba halaman web nya nutup sendiri :> jangan lupa di-posting di komentar
7 comments June 26, 2008
Nilai-Nilai Kuliah Semester VI Dah Keluar Euy…!
Kemaren (Kamis, 13 Juni 2008), aku dpt informasi ttg nilei2 kuliahku (minus SBD) slm Semester VI dari Nanto via Messenger (thx Nanto ;p). Berikut ini hasil nilai di atas kertas yang ku dapat :
- Jaringan Komputer (4 sks) = A x 4 = 16
- Pemrograman Internet (2 sks) = A x 2 = 8
- Manajemen Proyek Perangkat Lunak (2 sks) = A x 2 = 8
- Proyek Perangkat Lunak (3 sks) = A x 3 = 12
- Grafika (2 sks) = B x 2 = 6
- Teknik Kompilasi (3 sks) = A x 3 = 12
- Sistem Basis Data (3 sks) = ? x 3 = ?
Misalkan, asumsi kalo aku lulus semua mata kuliah semester VI, berarti kemungkinan terburuknya nilai kuliah untuk Sistem Basis Data adalah C (C x 3 = 6). Jadi, NR untuk semester ini = (16+8+8+12+6+12+6)/19 = 3.57. Alhamdulillah, lumayan deh. Naek 0.02 dari semester lalu.
(Latest news : tadi baru aj dpt kabar klo mata kuliah Sistem Basis Data ku ternyata dapet A )
Pas aku selesai ngitung2in ginian, tiba2 aku berpikir,”Ngapain sih ngitung beginian? Kenapa ga coba hitung2 kira2 ilmu apa aj sih yang dah nempel selama Semester VI ini?” Klo mo ‘menghisab’ diri sendiri, aq ternyata bener2 msh blm ‘berilmu’, apalagi ’skillful’. Di semester VI ini memori otakku dah kyk ‘buffer memory’ aj, nyimpen informasi sementara aj, lebih tepatnya lagi pas saat ujian aja, he3…(sebenarnya bukan cuma di semester ini doank, semester2 yang sebelumny juga demikian, hiks3..)
Ini dia kira2 nilai yang ku dapat yang ‘bukan di atas kertas’ (penilaian Subjektif):
1. Jarkom
- cuma tau bedanya Connection-Oriented ma Connectionless doank.
- berhubung di tempat KP aku ditempatkan di divisi IT Network, karena keterbatasan ilmu, aq belum biasa ngebedain yang mana barangnya itu switch, hub, router, kabel UTP, dll. Trus aq jg belum bisa nge-Crimping kabel UTP.(jadi malu…) Selain itu, aq jg belum ngerti tentang Virtual LAN, padahal pas di cari2 di buku Jarkom ternyata ada materinya. Skema VLAN ini dipake di jaringan LAN seluruh kantor Indosat.
- Nilai : D
2. SBD
- Sekarang dah hampir lupa lagi syntax2 SQL..
- Protokol utk nge-Lock tuh apa aja yah??
- Nilai : C
3. MPPL
- Jangankan mo mengelola perangkat lunak, mengelola diri sendiri aj belum beres, he3
- dulu deliverables dokumennya ap aj yah?
- Nilai : D
4. PPL
- Sama sekali ga ngoding, tiba2 softwarenya dah jadi aj ;p
- Cara pake netbeans & ngaktifin ‘Glashfish’ gmn yah?
- wah, waktu uas, sequence & class diagram ny dulu use case yang mana yah?
- tapi lumayanlah dah bisa bikin temen2 yang lain smgt bwt kerja, he3
- Nilai : D
5. Teknik Kompilasi
- Buat tabel parsing LR(1) langkah pertamanya gmn yah?
- Buat program Parser (analisis syntax) gmn caranya?? soalny wkt itu ga ikut ngerjain
- Nilai : C
6. Pemrograman Internet
- Selama 1 semester, ngeliat muka Pak Riza cuma 3 kali, hiks2… tingkat kehadiran yg menyedihkan
- Tapi, semua tugas berhasil dikerjain dgn baik..
- Bisa coding pake PHP, Javascript, AJAX, atau buat aplikasi Client-Server sedikit2lah
- Nilai : B
7. Grafika
- klo disuruh orang, tolong coding-in algoritma Bresenham dari awal dlm tempo sesingkat-singkatny, pasti terbatah-batah deh. apalagi mo coding-in teknik2 penggambaran grafis yg laen…
- dasar malu-maluin, masa ngecek tetangga-tetangga di sekitar rumah kita aj ga bisa, padahal tinggal ketok pintu aj, he3…
- Nilai : C
Dari segi ilmu yang didapat, ternyata masih banyak kuliah2ku yang ga lulus. ‘NR’-nya pun demikian buruknya. 2.75 aj ga nyampe. Jadi, apalah artinya nilai di atas kertas kalo kenyataannya begini…Padahal, nilai di atas kertas hanyalah sebagai ‘bonus’ (kata Pak Adi juga begitu). Klo begitu, lebih baik yang nilai di atas kertasnya rendah namun banyak ilmunya. So, beruntunglah teman2 yang maha ‘berilmu’ lagi maha ’skillful’, terlepas dari berapapun nilai NR-nya. Karena, yang bisa dipake buat beramal itu ilmunya, bukan ‘NR’-nya..
11 comments June 13, 2008
VLAN (Virtual Local Area Network)
Pada saat aku ngeliat-liat suatu Network Diagram, aku menemukan suatu istilah yang tak kupahami, yaitu VLAN (Cuma tau LAN-nya doank, V-nya apaan yah??). Rasa penasaran langsung bersemayam dibenakku, huehehe(kyknya terlalu berlebihan..) Langsung aj aku cari2 di dunia maya apa itu istilah VLAN. Dan ternyata VLAN tuh seperti ini toh :
DEFINISI
VLAN(Virtual Local Area Network) ternyata merupakan pengembangan dari LAN. VLAN adalah suatu model jaringan mirip LAN namun tidak terbatas pada lokasi fisik. Oleh karena itu, jaringan ini dapat dikonfigurasi secara virtual tidak bergantung pada lokasi fisik peralatan. Penggunaan VLAN akan membuat pengaturan jaringan menjadi sangat fleksibel dimana dapat dibuat segmen yang bergantung pada organisasi atau departemen, tanpa bergantung pada lokasi workstation. Alat yang menjadi kunci utama sehingga jaringan dapat dikonfigurasi secara lojik adalah switched.
CARA KERJA
VLAN diklasifikasikan berdasarkan metode(tipe) yang digunakan untuk mengklasifikasikannya, baik menggunakan port, MAC addresses, dsb. Semua informasi yang mengandung penandaan/pengalamatan suatu vlan (tagging) di simpan dalams suatu database. Jika tag-nya berdasarkan port yang digunakan, maka database harus mengindikasikan port-port yang digunakan oleh VLAN. Untuk mengatur hal tersebut, maka biasanya digunakan switch/bridge yang manageable. Switch/bridge inilah yang bertanggung jawab menyimpan semua informasi dan konfigurasi suatu VLAN dan dipastikan semua switch/bridge memiliki informasi yang sama. Switch akan menentukan ke jalur mana data-data akan diteruskan. Selain itu, dapat pula digunakan suatu software pengalamatan (bridging software) yang berfungsi mencatat/menandai suatu VLAN beserta workstation yang di dalamnya. Sedangkan, alat yang menghubungkan antar VLAN adalah router.
TIPE-TIPE VLAN
VLAN dapat diklasifikasikan berdasarkan port yang digunakan, MAC address, atau jenis protokolnya.
1. Berdasarkan port
Keanggotaan pada suatu VLAN dapat di dasarkan pada port yang di gunakan oleh VLAN tersebut. Sebagai contoh, pada bridge/switch dengan 4 port, port 1, 2, dan 4 merupakan VLAN 1 sedang port 3 dimiliki oleh VLAN 2, lihat tabel:
Port 1 2 3 4
VLAN 3 3 1 2
Kelemahannya adalah user tidak bisa untuk berpindah pindah, apabila harus
berpindah maka Network administrator harus mengkonfigurasikan ulang.
2. Berdasarkan MAC Address
Keanggotaan suatu VLAN dapat pula berdasarkan MAC address dari setiap workstation/komputer yang dimiliki oleh user. Mekanismenya adalah dengan cara mencatat semua MAC address yang dimiliki oleh setiap Virtual LAN (dilakukan oleh switch). Pengklasifikasian berdasarkan MAC address menjadi solusi untuk menangani permasalahan apabila VLAN dibentuk berdasarkan port. Setiap user dapat berpindah-pindah tanpa perlu melakukan konfigurasi ulang VLAN. Namun demikian, konfigurasi MAC address dilakukan secara manual sehingga kurang efisien untuk jaringan yang memiliki banyak workstation.
MAC address VLAN
132516617738 1
272389579355 2
536666337777 2
24444125556 1
3. Berdasarkan Tipe Protokol pada Layer 3 atau IP address yang digunakan
Pada pengklasifikasian ini, bridge/switch mengecek payload field dari setiap frame. Contohnya: melakukan pengklasifikasian setiap IP machine ke suatu VLAN dan setiap AppleTalk machine ke VLAN yang lain. IP address dapat juga digunakan untuk mengidentifikasikan suatu mesin. Strategi ini sangat menguntungkan ketika workstations yang digunakan adalah notebook yang dapat dipindah-pindahkan.
PERBEDAAN LAN v.s. VLAN
Perbedaan mendasar dari LAN dan VLAN adalah bahwa bentuk jaringan LAN sangat bergantung pada letak/fisik dari workstation, serta penggunaan hub dan repeater sebagai perangkat jaringan yang memiliki beberapa kelemahan. Sedangkan, VLAN memungkinkan tiap-tiap workstation/user yang tergabung dalam 1 VLAN dapat tetap saling terhubung walaupun terpisah secara geografis. Untuk lebih jelasnya, lihat skema di bawah ini.
Skema Konfigurasi LAN
[hub] – [A] – [A] – [A] {lan A, di Departemen/Divisi/lantai/dll A}
|
[Router]->[hub] – [B] – [B] – [B] {lan B, di Departemen/Divisi/lantai/dll B}
|
[hub] – [C] – [C] – [C] {lan C, di Departemen/Divisi/lantai/dll C}
Skema Konfigurasi VLAN
[switch] – [A] – [C] – [B]
|
[Router] -> [switch] – [B] -[C] – [A]
|
[switch] – [B] – [A] – [C]
Dengan demikian, penggunaan VLAN akan memberikan kemudahan-kemudahan baik secara teknis maupun operasional dibandingkan dengan VLAN.
REFERENSI
1. Tanenbaum,A. Computer Network, 4th Edition. 2003. Prentice Hall
2. y3dips, Virtual Local Area Network, http://ezine.echo.or.id
3 comments June 11, 2008
Asyiknya nge- Clipping [Kuliah Grafika]
Ini dia prosedur untuk nge-clip sebuah garis. Algoritma yang digunakan ialah algoritma Cohen-Sutherland. Prosedur ini hanya menggambar sebuah garis di sebuah kotak yang tepat(canvas) walaupun salah satu atau kedua dari titik ujung garis tersebut terdefinisi berada di luar daerah kotak. Titik kiri atas kotak tersebut direpresentasikan dengan Point winMin, dan titik kanan bawahnya di representasikan dengan Point winMax. Sedangkan, titik2 ujung dari garisnya direpresentasikan dengan Point P1 dan P2.
Ide dasar dari algoritma ini ialah membagi-bagi daerah layar monitor menjadi 9 kotak (matriks 3×3). Kotak yang tengah merupakan kotak tempat menggambar garis atau canvas. Langkah-langkah penggambaran garisnya adalah sebagai berikut.
- Jika kedua titik ujung garis berada di daerah canvas, maka garis langsung di gambar.
- Jika salah satu atau kedua titik ujung dari garis berada di luar wilayah canvas, maka titik tersebut akan digeser menuju canvas sedemikian rupa sehingga memotong garis batas dari canvas, setelah itu garis baru di gambar. Titik potong tersebut harus tetap berada/dilewati oleh garis yang akan digambar.
Berikut ini prosedur clipLine yang menggambar garis dengan menggunakan mekanisme Clipping.
void clipLine(Point winMin, Point winMax, Point P1, Point P2, byte warna){
/* Prosedur untuk menggambar garis hanya pada window yang terdefinisi */
byte code1, code2;
int done = 0;
int draw = 0;
float m; /* gradien */
while(!done){
code1 = encode(P1, winMin,winMax);
code2 = encode(P2, winMin,winMax);
if(TERIMA(code1,code2)){ /*jika kedua titik ujung garis berada di daerah canvas */
done = 1;
draw = 1;
}
else{/* jika salah satu / kedua titik ujunga garis tidak berada di daerah canvas */
if(TOLAK(code1,code2)){
done = 1;
}
else{/* Kedua titik tidak langsung diterima namun tidak juga ditolak*/
/* Pastikan P1 harus diluar window*/
if(DIDALAM(code1)){
swapKode(&code1,&code2);
swapPoint(&P1,&P2);
}
/* Gunakan gradien untuk menghitung titik potong antara garis yang akan digambar dengan sisi window */
if(P1.x != P2.x){
m = (float)(P2.y - P1.y)/(float)(P2.x - P1.x);
}
if(code1 & DAERAH_KIRI){/* Jika P1 di daerah kiri */
P1.y += ((float)(winMin.x - P1.x))*m;
P1.x = winMin.x;
}
else{/* Jika P1 bukan di daerah kiri*/
if(code1 & DAERAH_KANAN){ /* Jika P1 di daerah kanan */
P1.y += ((float)(winMax.x - P1.x))*m;
P1.x = winMax.x;
}
else{/* Jika P1 bukan di daerah kiri dan kanan */
if(code1 & DAERAH_ATAS){/* Jika P1 di daerah atas*/
/* P1 perlu di-update, jika garis tidak berbentuk vertikal sempurna */
if(P1.x !=P2.x){
P1.x += ((float)(winMin.y - P1.y))/m;
}
P1.y = winMin.y;
}
else{/* Jika P1 di daerah bawah */
/* P1 perlu di-update, jika garis tidak berbentuk vertikal sempurna */
if(P1.x !=P2.x){
P1.x += ((float)(winMax.y - P1.y))/m;
}
P1.y = winMax.y;
}
}
}
}
}
}
if(P1.x == winMin.x) P1.x = P1.x + 1;
if(P1.x == winMax.x) P1.x = P1.x - 1;
if(P1.y == winMin.y) P1.y = P1.y + 1;
if(P1.y == winMax.y) P1.y = P1.y - 1;
if(P2.x == winMin.x) P2.x = P2.x + 1;
if(P2.x == winMax.x) P2.x = P2.x - 1;
if(P2.y == winMin.y) P2.y = P2.y + 1;
if(P2.y == winMax.y) P2.y = P2.y - 1;
if(draw){
plot_lines_bresenham(BULAT(P1.x),BULAT(P1.y),BULAT(P2.x), BULAT(P2.y),warna);
}
}
4 comments April 22, 2008
Algoritma Bressenham
Setelah mengerjakan tugas ke 2 mata kuliah Grafika, aku mempelajari sebuah algoritma untuk menggambar garis ke layar monitor, yaitu Algoritma Bressenham. Bressenham sendiri merupakan seorang ahli komputer yang dulu pernah menjadi pionirnya IBM.
Algoritma ini merupakan optimasi dari algoritma penggambaran garis yang konvensional. Algoritma Bressenham mereduksi bahkan mengeliminasi operasi perkalian, pembagian, dan operasi pembulatan yang dilakukan pada algoritma konvensial. Dalam dunia komputasi dengan komputer, operasi-operasi tersebut memiliki harga yang ‘mahal’ (kompleksitas yang tinggi). Ide dari algoritma Bressenham ini cukup simple namun sangat powerful, yaitu memilih titik koordinat pixel tetangga yang akan digambar berikutnya secara iteratif dan berhenti di titik/pixel tujuan. Pixel tetangga yang dipilih dapat secara axial (horizontal dan vertikal) ataupun secara diagonal.
Pada algoritma Bressenham, diantara dari operasi-operasi yang ‘mahal’, hanya operasi pembagian yang dilakukan. Itu pun cuma 1 kali dilakukan, yaitu perhitungan galat/error. Nilai galat tersebut digunakan untuk menentukan pilihan koordinat pixel tetangga apakah secara axial atau diagonal. Jika galat < 5, pixel tetangga dipilih secara axial, sedangkan jika galat >= 5, pixel tetangga dipilih secara diagonal.
Kekuatan algoritma Bressenham bukan hanya ‘murahnya’ proses komputasi, tetapi juga menggambarkan sebuah garis lurus yang bersifat kontinyu ‘tampak terlihat lurus’ pada layar monitor yang diskrit. Berikut ini kode program algoritma konvensial dengan algoritma bressenham dalam bentuk prosedur bahasa C. Silakan diliat-liat perbedaannya. :>
Kode program algoritma konvensional
void plot_lines(int x1, int x2, int y1, int y2, byte color){
/* Prosedur untuk menggambar garis yang melalui 2 buah titik yaitu (x1,y1) dan (x2,y2) , kecepatan rendah (pendekatan konvensional) */
/* I.S. : sembarang */
/* F.S. : pixel(xi,yj) dengan i=x1 sampai i=x2 dan j=y1 sampai j=y2 berwarna 'color' sehingga seolah-olah membentuk sebuah garis */
int y,xi,x,yi,dy,dx;
dy = y2-y1;
dx = x2-x1;
if(abs(dx) >= abs(dy)){/* jika garis cenderung horizontal*/
if((x2-x1)>=0){
for(xi=x1;xi=x2;xi--){
y = ((xi - x1)*(y2-y1)/(x2-x1)) + y1;
y = abs(y);
plot_pixel(xi,y,color);
}
}
}
else{/* jika garis cenderung vertikal */
if((y2-y1)>=0){
for(yi=y1;yi=y2;yi--){
x = ((yi - y1)*(x2-x1)/(y2-y1)) + x1;
x = abs(x);
plot_pixel(x,yi,color);
}
}
}
}
Kode program algoritma bressenham
void plot_lines_bresenham(int x1, int y1, int x2, int y2, byte warna){
int dx,dy,dx_abs,dy_abs;
float derror,error;
int x, y;
int sign = 0;
dy = y2 - y1;
dx = x2 - x1;
error = 0.0;
if(abs(dx) >= abs(dy)){/* jika garis cenderung horizontal*/
dx_abs = abs(dx);
if(dx_abs!=0){
derror = (float)dy/(float)dx_abs;/* error */
y = y1;
if(dy>0){/* jika y2 > y1*/
sign= 1;
}
else if(dy<0){ /*jika y2=0){
for(x = x1; x= 0.5 || error=x2; x--){
plot_pixel(x,y,warna);
error = error + derror;
if(error>= 0.5 || error0){
sign= 1;
}
else if(dx=0){
for(y = y1; y= 0.5 || error=y2; y--){
plot_pixel(x,y,warna);
error = error + derror;
if(error>= 0.5 || error<=-0.5){
x = x + sign * 1;
error = error - sign* 1.0;
}
}
}
}
else{
plot_pixel(x1,y1,warna);
}
}
}
3 comments March 11, 2008
Medium Access Control Sublayer
Fiuhh.. akhirnya selesai juga tugas I : membuat slide presentasi mata kuliah Jaringan Komputer. Slide ini menjelaskan tentang alokasi bandwidth dengan menggunakan single channel pada jaringan broadcast. Untuk lebih jelasnya, silakan download link di bawah ini:
Add comment March 3, 2008
