halo aku coba tes ya

This is default featured slide 1 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

Wednesday, January 16, 2013

Dasar Jaringan Komputer dan Topologi


A. Pengertian Jaringan komputer :
Jaringan komputer adalah sebuah kumpulan komputer, printer dan peralatan lainnya yang terhubung. Informasi dan data bergerak melalui kabel-kabel sehingga memungkinkan pengguna jaringan komputer dapat saling bertukar dokumen dan data, mencetak pada printer yang sama dan bersama sama menggunakan hardware/software yang terhubung dengan jaringan. Tiap komputer, printer atau periferal yang terhubung dengan jaringan disebut node. Sebuah jaringan komputer dapat memiliki dua, puluhan, ribuan atau bahkan jutaan node. Sebuah jaringan biasanya terdiri dari 2 atau lebih komputer yang saling berhubungan diantara satu dengan yang lain, dan saling berbagi sumber daya misalnya CDROM, Printer, pertukaran file, atau memungkinkan untuk saling berkomunikasi secara elektronik. Komputer yang terhubung tersebut, dimungkinkan berhubungan dengan media kabel, saluran telepon, gelombang radio, satelit, atau sinar infra merah.

B. Jenis-Jenis jaringan berdasarkan jangkauan :
Ada 3 macam jenis Jaringan/Network yaitu :

a. Local Area Network (LAN) /Jaringan Area Lokal.
Sebuah LAN, adalah jaringan yang dibatasi oleh area yang relative kecil, umumnya dibatasi oleh area lingkungan seperti sebuah perkantoran di sebuah gedung, atau sebuah sekolah, dan biasanya tidak jauh dari sekitar 1 km persegi.

Beberapa model konfigurasi LAN, satu komputer biasanya di jadikan sebuah file server. Yang mana digunakan untuk menyimpan perangkat lunak (software) yang mengatur aktifitas jaringan, ataupun sebagai perangkat lunak yang dapat digunakan oleh komputer-komputer yang terhubung ke dalam network. Komputer-komputer yang terhubung ke dalam jaringan (network) itu biasanya disebut dengan workstation. Biasanya kemampuan workstation lebih di bawah dari file server dan mempunyai aplikasi lain di dalam harddisknya selain aplikasi untuk jaringan. Kebanyakan LAN menggunakan media kabel untuk menghubungkan antara satu komputer dengan komputer lainnya.

b. Metropolitan Area Network (MAN) / Jaringan area Metropolitan
Sebuah MAN, biasanya meliputi area yang lebih besar dari LAN, misalnya antar wilayah dalam satu propinsi. Dalam hal ini jaringan menghubungkan beberapa buah jaringan-jaringan kecil ke dalam lingkungan area yang lebih besar, sebagai contoh yaitu : jaringan Bank dimana beberapa kantor cabang sebuah Bank di dalam sebuah kota besar dihubungkan antara satu dengan lainnya. Misalnya Bank BNI yang ada di seluruh wilayah Ujung Pandang atau Surabaya.

c. Wide Area Network (WAN) / Jaringan area Skala Besar
Wide Area Networks (WAN) adalah jaringan yang lingkupnya biasanya sudah menggunakan sarana Satelit ataupun kabel bawah laut sebagai contoh keseluruhan jaringan BANK BNI yang ada di Indonesia ataupun yang ada di Negara-negara lain. Menggunakan sarana WAN, Sebuah Bank yang ada di Bandung bisa menghubungi kantor cabangnya yang ada di Hongkong, hanya dalam beberapa menit. Biasanya WAN agak rumit dan sangat kompleks, menggunakan banyak sarana untuk menghubungkan antara LAN dan WAN ke dalam Komunikasi Global seperti Internet. Tapi bagaimanapun juga antara LAN, MAN dan WAN tidak banyak berbeda dalam beberapa hal, hanya lingkup areanya saja yang berbeda
satu diantara yang lainnya.

C. Topologi/Bentuk Fisik Jaringan :
Topologi suatu jaringan didasarkan pada cara penghubung sejumlah node atau sentral dalam membentuk suatu sistem jaringan. Topologi jaringan yang umum dipakai adalah : Mess, Bintang (Star), Bus, Tree, dan Cincin (Ring).

a. Topologi Jaringan Mesh
Topologi jaringan ini menerapkan hubungan antar sentral secara penuh. Jumlah saluran harus disediakan untuk membentuk jaringan Mesh adalah jumlah sentral dikurangi 1 (n-1, n = jumlah sentral). Tingkat kerumitan jaringan sebanding dengan meningkatnya jumlah sentral yang terpasang. Dengan demikian disamping kurang ekonomis juga relatif mahal dalam pengoperasiannya.



b. Topologi Jaringan Bintang (Star)
Dalam topologi jaringan bintang, salah satu sentral dibuat sebagai sentral pusat. Bila dibandingkan dengan sistem mesh, sistem ini mempunyai tingkat kerumitan jaringan yang lebih sederhana sehingga sistem menjadi lebih ekonomis, tetapi beban yang dipikul sentral pusat cukup berat. Dengan demikian kemungkinan tingkat kerusakan atau gangguan dari sentral ini lebih besar.

c. Topologi Jaringan Bus
Pada topologi ini semua sentral dihubungkan secara langsung pada medium transmisi dengan konfigurasi yang disebut Bus. Transmisi sinyal dari suatu sentral tidak dialirkan secara bersamaan dalam dua arah. Hal ini berbeda sekali dengan yang terjadi pada topologi jaringan mesh atau bintang, yang pada kedua sistem tersebut dapat dilakukan komunikasi atau interkoneksi antar sentral secara bersamaan. topologi jaringan bus tidak umum digunakan untuk interkoneksi antar sentral, tetapi biasanya digunakan pada sistem jaringan komputer.



d. Topologi Jaringan Pohon (Tree)
Topologi jaringan ini disebut juga sebagai topologi jaringan bertingkat. Topologi ini biasanya digunakan untuk interkoneksi antar sentral dengan hirarki yang berbeda. Untuk hirarki yang lebih rendah digambarkan pada lokasi yang rendah dan semakin keatas mempunyai hirarki semakin tinggi. Topologi jaringan jenis ini cocok digunakan pada sistem jaringan komputer .



e. Topologi Jaringan Cincin (Ring)
Untuk membentuk jaringan cincin, setiap sentral harus dihubungkan seri satu dengan yang lain dan hubungan ini akan membentuk loop tertutup. Dalam sistem ini setiap sentral harus dirancang agar dapat berinteraksi dengan sentral yang berdekatan maupun berjauhan. Dengan demikian kemampuan melakukan switching ke berbagai arah sentral. Keuntungan dari topologi jaringan ini antara lain : tingkat kerumitan jaringan rendah (sederhana), juga bila ada gangguan atau kerusakan pada suatu sentral maka aliran trafik dapat dilewatkan pada arah lain dalam sistem. Yang paling banyak digunakan dalam jaringan komputer adalah jaringanbertipe bus dan pohon (tree), hal ini karena alasan kerumitan, kemudahan instalasi dan pemeliharaan serta harga yang harus dibayar. Tapi hanya jaringan bertipe pohon (tree) saja yang diakui kehandalannya karena putusnya salah satu kabel pada client, tidak akan mempengaruhi hubungan client yang lain.

Konsep Dasar Menejemen Proses

KONSEP PROSES
•Proses merupakan semua aktifitas CPU, seperti :
–Job yang dieksekusi pada sistem batch
–User Program atau task pada sistem time shared
–Beberapa program yang dijalankan pada satu waktu : satu program interactive dan beberapa program batch pada system single user seperti MS-DOS
•Windows Task Manager
Windows Task Manager
•Perintah PS pada UNIX
Perintah PS pada UNIX
.
•Proses adalah program yang sedang dieksekusi.
•Eksekusi proses dilakukan secara berurutan
•Proses bukan hanya “kode program”, tapi juga termasuk didalamnya :
–Aktifitas saat ini yang merupakan nilai dari “program counter”
–Isi dari register processor
–Program stack
–“Data section” yang berisi variabel global
–Menyimpan status proses, seperti : aktif, wait I/O request dll
STATUS PROSES
•Apabila proses dieksekusi maka kemungkinan akan terjadi perubahan “state”
•Status dari sebuah proses mencerminkan suatu keadaan/ aktivitas yang sedang dilakukan oleh proses itu sendiri.
•Hanya satu proses yang dapat berjalan pada prosesor manapun pada satu waktu, tetapi banyak proses yang dapat berstatus ready atau waiting
•Status proses terdiri dari :
–NEW
•Status yang dimiliki pada saat proses baru saja   dibuat
–RUNNING
•Status yang dimiliki pada saat instruksi-instruksi dari sebuah proses dieksekusi
•Proses bisa dieksekusi karena CPU tidak sedang mengerjakan tugas yang lain
–WAITING
•Status yang dimiliki pada saat proses menunggu suatu event, seperti penyelesaian I/O atau menerima signal
–READY
•Status yang dimiliki pada saat proses siap dieksekusi oleh processor
•Proses menunggu jatah waktu dari processor
–TERMINATED
•Status yang dimiliki pada saat proses telah selesai dieksekusi
DIAGRAM STATUS PROSES
DIAGRAM STATUS PROSES
.
•Ada 3 kemungkinan bila sebuah proses memiliki status running :
1.   Jika program telah selesai dieksekusi à   status   proses berubah menjadi TERMINATED
2.   Jika waktu yang disediakan oleh OS untuk   proses tersebut habis à akan terjadi interrupt   dan proses berstatus READY
3.   Jika suatu event terjadi pada saat proses   dieksekusi (seperti ada request I/O) à proses   tersebut akan menunggu event tersebut dan   proses berstatus WAITING

Process Control Block (PCB) 
•Setiap proses direpresentasikan pada OS sebagai “Process Control Block”
•PCB hanya berfungsi sebagai tempat penyimpanan informasi yang dapat bervariasi dari proses satu dengan proses yang lainnya
•PCB berisi informasi dari proses tertentu :
–Status Proses
•Status yang mungkin dimiliki oleh setiap proses : new, ready, running, waiting, terminated
–Program Counter
•Menunjukkan alamat berikutnya yang akan dieksekusi oleh proses tersebut
–CPU Register
•Register bervariasi dalam jumlah dan jenis, tergantung pada rancangan komputer, meliputi :
–Accumulator, register index, stack pointer, dan register serbaguna
•Bila terjadi interrupt, status informasi disimpan dan proses dilanjutkan
–Informasi Penjadwalan CPU
•Berisi prioritas dari proses, pointer ke antrian penjadwalan, parameter penjadwalan lainnya
–Informasi Manajemen Memori
•Berisi nilai dari dasar(basis) dan limit (batas) register, tabel page, atau tabel segmen
–Informasi Accounting
•Berisi jumlah CPU dan real time yang digunakan,batas wakti, jumlah job atau proses dll
–Informasi Status I/O
•Informasi daftar dari perangkat I/O yang digunakan untuk proses ini
•Informasi daftar file-file yang sedang diakses
KONSEP PENJADWALAN
<p>Your browser does not support iframes.</p>

•Konsep dari Multiprogramming :
–Suatu proses akan menggunakan CPU sampai proses tersebut dalam status “wait” (misal : meminta I/O) selesai
–Pada saat “wait” à CPU akan menganggur, untuk mengatasi hal ini à CPU dialihkan ke proses lain yang berstatus “ready”
•Tujuan dari Multiprogramming adalah :
–Untuk memaksimalkan penggunaan CPU dengan cara mengatur alokasi waktu yang digunakan oleh CPU untuk memperkecil waktu idle
•Untuk Sistem yang bersifat Uniprogramming:
–Hanya ada 1 proses yang dapat berjalan setiap waktunya
–Jika ada proses yang lebih dari satu, maka proses yang lain harus menunggu sampai CPU bebas dan siap untuk dijadwalkan kembali

  QUEUE SCHEDULING
•Queue Scheduling dapat diklasifikasikan dalam 3 kategori :
–Job Queue
•Antrian berisi semua proses yang masuk dalam sistem
–Ready Queue
•Proses yang berada pada memori utama, siap dan menunggu untuk dieksekusi
–Device Queue
•Deretan proses yang sedang menunggu peralatan I/O
•Tiap peralatan I/O memiliki device queue
–Setiap antrian disimpan sebagai linked list dan berisi pointer awal dan akhir PCB.
–Tiap PCB memiliki suatu pointer menunjuk ke proses selanjutnya pada antrian
–Proses baru mula-mula diletakkan di ready queue dan menunggu sampai dipilih untuk dieksekusi (dispatched) CPU
–Ketika proses dialokasikan CPU dan dieksekusi, terjadi satu dari event berikut :
•Proses meminta I/O dan kemudian ditempatkan pada I/O queue
•Proses membuat sub proses baru dan menunggu diterminasi
•Proses dihapus dari CPU karena diinterrupt dan dikembalikan ke ready queue
–Penjadwalan proses dapat direpresentasikan secara umum dalam bentuk diagram :
bentuk diagram

SCHEDULER (PENJADWAL)
•Sistem operasi harus memilih dan memproses antrian-antrian berdasarkan kategorinya, dimana proses seleksinya dilakukan oleh scheduler yang tepat
•Ada 3 tipe Scheduler :
–Long Term Scheduler (Job Scheduler)
–Short Term Scheduler (CPU Scheduler)
–Medium Term Scheduler
•Long Term Scheduler (Job Scheduler)
–Menyeleksi proses-proses mana yang harus dimasukkan ke dalam ready queue dan membawanya ke memori untuk dieksekusi
–Long Term Scheduler mengeksekusi lebih jarang, dibutuhkan beberapa menit untuk pembuatan proses baru dalam sistem
–Long Term Scheduler à mengontrol jumlah proses dalam memori (degree of multiprogramming)
–Jika degree of multiprogramming stabil à tingkat rata-rata penciptaan proses harus sama dengan tingkat rata-rata proses meninggalkan sistem
•Short Term Scheduler (CPU Scheduler)
–Menentukan proses mana yang selanjutnya akan dieksekusi dan mengalokasikan CPU untuk proses tersebut, dimana pemilihan proses barunya dialokasikan sesering mungkin
–Sort Term Scheduler à lebih sering dipanggil (hanya dalam waktu milisecond)
–Karena durasi yang pendek antara eksekusi, short Term Scheduler harus sangat cepat
•Medium Term Scheduler
–Penjadwal ini akan menguntungkan untuk memindahkan proses dari memori à jumlah proses dalam memori akan berkurang
–Skema Medium Term Scheduler disebut swapping.
Swapping diperlukan untuk meningkatkan mutu penggabungan proses (karena perubahan dalam kebutuhan memori yang mengakibatkan memori harus dibebaskan)

CONTEXT SWITCH
•Pada saat CPU beralih ke proses lain, sistem harus menyimpan state dari proses lama dan mengambil state dari proses yang baru.Pekerjaan ini disebut : “Context Switch”
•Context Switch sebuah proses direpresentasikan dalam PCB dari suatu proses à nilai dari CPU register, status proses, informasi manajemen memori
•Waktu context switch mempunyai kecepatan bervariasi (biasanya berkisar 1 – 1000ms) tergantung:
–Kecepatan memori
–Jumlah register yang dicopy
–Ada atau tidaknya instruksi khusus (misal : instruksi tunggal untuk mengisi atau menyimpan seluruh register)
OPERASI PADA PROSES
•Sistem Operasi dalam mengelola proses dapat melakukan operasi-operasi terhadap proses
•Pembuatan Proses
–Beberapa aktifitas yang berkenaan dengan pembuatan proses, a.l :
•Memberi identitas (nama) pada proses yang dibuat
•Menyisipkan proses pada list proses atau tabel proses
•Menentukan prioritas awal proses
•Membuat/ menciptakan PCB
•Mengalokasikan sumber daya (resource) awal bagi proses
–Contoh Pembuatan Proses
•Inisialisasi Sistem à Reboot
•Eksekusi System Call untuk Pembuatan proses
–Fork ()
•User meminta untuk membuat proses baru
–Mengetikkan perintah di command line
–Mengklik icon
•PENGHENTIAN PROSES
–Pada saat proses berhenti à proses akan mengembalikan semua data ke parent proses, dan proses dihapus dari sistem, dilanjutkan dengan menghapus PCB
–Alasan yang menyebabkan proses dihentikan :
•Selesainya proses secara normal
•Proses berjalan melewati batas waktu yang telah ditentukan
•Memori tidak tersedia
•Pelanggaran terhadap batas memori
•Terjadi kesalahan perhitungan (misal :pembagian dengan 0)
•Proses menunggu terlalu lama
•Terjadi kegagalan I/O (misal : tidak menemukan file)

Pengertian Dasar Sistem Operasi

Pengertian Sistem operasi Komputer adalah perangkat lunak komputer atau software yang bertugas untuk melakukan kontrol dan manajemen perangkat keras dan juga operasi-operasi dasar sistem, termasuk menjalankan software aplikasi seperti program-program pengolah data yang bisa digunakan untuk mempermudah kegiatan manusia. Sistem Operasi dalam bahasa Inggrisnya disebut Operating System, atau biasa di singkat dengan OS.

Sistem Operasi komputer merupakan software pada lapisan pertama yang diletakkan pada memori komputer, (memori komputer dalam hal ini ada Hardisk, bukan memory ram) pada saat komputer dinyalakan. Sedangkan software-software lainnya dijalankan setelah Sistem Operasi Komputer berjalan, dan Sistem Operasi akan melakukan layanan inti umum untuk software-software itu. Layanan inti umum tersebut seperti akses ke disk, manajemen memori, skeduling task, dan antar-muka user. Sehingga masing-masing software tidak perlu lagi melakukan tugas-tugas inti umum tersebut, karena dapat dilayani dan dilakukan oleh Sistem Operasi. Bagian kode yang melakukan tugas-tugas inti dan umum tersebut dinamakan dengan kernel suatu Sistem Operasi.

Sistem Operasi berfungsi sebagai penghubung antara lapisan hardware dan lapisan software. selain itu, Sistem Operasi komputer juga melakukan semua perintah perintah penting dalam komputer, serta menjamin aplikasi-aplikasi yang berbeda fungsinya dapat berjalan lancar secara bersamaan tanpa hambatan. Sistem Operasi Komputer menjamin aplikasi perangkat lunak lainnya bisa memakai memori, melakukan input serta output terhadap peralatan lain, dan mempunya akses kepada sistem file. Jika beberapa aplikasi berjalan secara bersamaan, maka Sistem Operasi Komputer akan mengatur jadwal yang tepat, sehingga sebisa mungkin semua proses pada komputer yang berjalan mendapatkan waktu yang cukup untuk menggunakan CPU dan tidak saling mengganggu dengan perangkat yang lain.

berikut ini merupakan fungsi-fungsi sistem operasi :
1.   Resource Manager
Fungsi Resource Manager adalah untuk mengalokasikan sumber daya, seperti CPU, printer, drive, memori, dan lain sebagainya.
2.   Interface
Fungsi interface adalah sebagai perantara antara user dengan hardware untuk menyediakan lingkungan yang bersahabat. Dengan demikian, user tidak memiliki kekhawatiran untuk mengoprasikan perangkat level bawah.
3.   Guardian
Fungsi guardian adalah untuk menyediakan control akses yang melindungi file dan member pengawasan pada pembaca/penulisan/eksekusi data dan program.
4.   Optimizer
Fungsi optimizer adalah untuk menjadwal peng-inpu-an oleh user, pengaksesan basis data, proses komputasi, dan pengeluaran output untuk meningkatkan kegunaan.
5.   Accountant
Fungsi Accountant adalah untuk mengatur waktu CPU, penggunaan memori, disk storage, waktu connect terminal dan pemanggilan I/O.
6.   Server
Fungsi server adalah untuk menyediakan layanan yang sering dibutuhkan user, baik secara eksplisit, maupun implicit seperti mekanisme akses file.
7.   Coordinator
Fungsi coordinator adalah untuk menyediakan fasilitas sehingga aktivitas yang kompleks dapat diatur untuk dikerjakan dalam urutan yang telah disusun sebelumnya.

Sumber : http://id.wikipedia.org/wiki/Sistem_operasi
              http://dicahideto.wordpress.com/2010/08/18/fungsi-sistem-operasi/
              http://www.jaringankomputer.org/pengertian-sistem-operasi-dan-fungsi-sistem-operasi-komputer/

Notasi Algoritma Pseudocode

Pseudocode adalah deskripsi dari algoritma pemrograman computer yang menggunakan struktur sederhana dari beberapa bahasa pemograman tetapi bahasa tersebut hanya ditujukan agar dapat dibaca manusia. Biasanya yang ditulis dari pseudocode adalah variabel dan fungsi. 

Tujuan penggunaan utama dari pseudocode adalah untuk memudahkan manusia dalam memahami prinsip-prinsip dari suatu algoritma. Penggunaan pseudocode umumnya banyak kita temukan di buku-buku dan artikel-artikel tentang pemrograman yang membahas tentang algoritma tertentu. Kadang pula pseudocode kita temukan dalam merencanakan pengembangan suatu program komputer. Dalam pseudocode, tidak ada syntax standar yang resmi. Karena itu, pseudocode ini dapat kita terapkan dalam berbagai bahasa pemograman.

Di Notasi Pseudocode ada 2 cara untuk menggambarkan kondisional / decision, yaitu:
  1. Menggunakan if,
  2. Menggunakan depend on.
Contoh:
1. Menggunakan IF
if(Nilai > 80)
Output ‘A’
else if(Nilai > 60)
Output ‘B’
else if(Nilai > 50)
Output ‘C’
else if(Nilai > 30)
Output ‘D’
2. Menggunakan DEPEND ON
Depend on Nilai
Nilai > 80: Output ‘A’
Nilai > 60: Output ‘B’
Nilai > 50: Output ‘C’
Nilai > 30: Output ‘D’
Dalam notasi Pseudocode ada 3 cara untuk menggambarkan pengulangan (loop), yaitu:
  1. Menggunakan repeat,
  2. Menggunakan while,
  3. Menggunakan traversal.
Contohnya:

1. Menggunakan Repeat
Dengan menggunakan repeat…until, maka proses yang ada di dalam looping (perulangan) akan dilakukan minimal sekali hingga menemukan kondisi berhenti pada kondisi until nya.
Contoh:
X = 10
repeat
Output X
X = X – 1
until X = 0
Pseudocode diatas menggambarkan program yang akan menampilkan bilangan dari 10 dan bilangan akan berkurang hingga 0.

2. Menggunakan While
Dengan menggunakan while, proses yang dilakukan pada bagian perulangan akan dilakukan jika kondisi yang berada pada while nya dipenuhi, jadi masih ada kemungkinan proses yang ada pada perulangannya (loopnya) masih tidak dijalankan.
Contoh:
X = 10
while (X >= 0) do
Output X
X = X – 1
3. Menggunakan Traversal
Dengan menggunakan metode traversal, proses yang dilakukan pada bagian perulangan akan dilakukan sebanyak jumlah yang ditentukan pada bagian traversalnya. Jadi, kita dapat menggunakan metode traversal jika kita memang sudah tau benar berapa kali proses yang dilakukan tersebut akan dilakukan.
Contoh:
i traversal (1..10)
Output X

Struktur Sistem Operasi

1. Struktur Sederhana

Pada awalnya, sistem operasi dimulai sebagai sistem yang kecil, sederhana, dan terbatas. Lama kelamaan, sistem operasi semakin berkembang menjadi suatu sistem yang lebih besar dari awalnya. Dalam perkembangannya, ada sistem yang terstruktur dengan kurang baik, dan ada juga yang baik. Contoh sistem yang terstruktur kurang baik adalah MS-DOS. Sistem operasi ini dirancang sedemikian rupa agar mampu berjalan pada hardware yang terbatas. Memang memiliki struktur, tapi belum terbagi-bagi dalam modul-modul, dan interface serta fungsionalitas tidak begitu jelas batasannya.

Begitu pula dengan UNIX, yang pada awalnya juga terbatas oleh hardware yang ada. Sistem ini dapat dibagi menjadi dua bagian, yaitu kernel dan program sistem. Kernel sendiri dapat dibagi menjadi dua bagian, yaitu device driver dan interface, yang kemudian terus berkembang seiring dengan perkembangan UNIX. Berikut ini adalah skema struktur UNIX.

 Gambar 7.1. Struktur UNIX

Versi-versi UNIX selanjutnya dirancang agar mampu bekerja dengan hardware yang lebih baik. Begitu pula dengan strukturnya, yang dibuat makin modular.

2. Struktur Berlapis

Rasanya susah membayangkan sekian banyak fungsi yang disediakan oleh sistem operasi diimplementasikan dalam satu program saja. Karena itu, lebih mudah untuk membaginya dalam sejumlah layer/lapisan. Tentu setiap lapisan memiliki fungsinya sendiri-sendiri, dan juga bisa menambah fungsi-fungsi lain, berdasarkan fungsi-fungsi yang tersedia pada lapisan-lapisan lain yang dibawahnya.

Lapisan-lapisan sistem operasi adalah suatu abstraksi dari enkapsulasi sekumpulan struktur data dalam sistem operasi. Lapisan-lapisan yang berada di atas bisa mengakses operasi-operasi yang tersedia di lapisan-lapisan bawahnya. Stallings memberi model yang lebih detail, sebagai berikut:
•    Lapisan 1. Berisi berbagai sirkuit elektronik, misal register, memory cells, dan logic gate.
•    Lapisan 2. Berisi instruksi prosesor, misal instruksi aritmatika, instruksi transfer data, dsb.
•    Lapisan 3. Penambahan konsep seperti prosedur/subrutin, maupun fungsi yang me-return nilai tertentu.
•    Lapisan 4. Penambahan interrupt.
•    Lapisan 5. Program sebagai sekumpulan instruksi yang dijalankan oleh prosesor.
•    Lapisan 6. Berhubungan dengan secondary storage device, yaitu membaca/menulis head, track, dan sektor.
•    Lapisan 7. Menciptakan alamat logika untuk proses. Mengatur hubungan antara main memory, virtual memory, dan secondary memory.
•    Lapisan 8. Program sebagai sekumpulan instruksi yang dijalankan oleh prosesor.
•    Lapisan 9. Berhubungan dengan secondary storage device, yaitu membaca/menulis head,track, dan sektor.
•    Lapisan 10. Menciptakan alamat logika untuk proses. Mengatur hubungan antara main memory, virtual memory, dan secondary memory.
•    Lapisan 11. Program sebagai sekumpulan instruksi yang dijalankan oleh prosesor.
•    Lapisan 12. File adalah objek yang memiliki nama dan ukuran. Abstraksi dari lapisan 9.
•    Lapisan 13. Menyediakan interface agar bisa berinteraksi dengan pengguna.

Lapisan-lapisan dari 1-4 bukanlah bagian dari sistem operasi dan masih menjadi bagian dari prosesor secara ekslusif.
Lapisan ke-5 hingga ke-7, sistem operasi sudah berhubungan dengan prosesor. Selanjutnya dari lapisan ke-8 hingga 13, sistem operasi berhubungan dengan media penyimpanan maupun perlatan-peralatan lain yang ditancapkan, misalnya peralatan jaringan.

3. Mikro Kernel

Pada pembahasan "Struktur Sederhana", sempat disinggung istilah "kernel". Apakah kernel itu? Kernel adalah komponen sentral dari sistem operasi. Ia mengatur hal-hal seperti interrupt handler(untuk menyediakan layanan interupsi), process scheduler(membagi-bagi proses dalam prosesor), memory management, I/O, dan sebagainya. Atau dengan kata lain, ia adalah jembatan antara hardware dengan software.

Cara tradisional untuk membangun sistem operasi adalah dengan membuat kernel monolitis, yaitu semua fungsi disediakan oleh kernel, dan ini menjadikan kernel suatu program yang besar dan kompleks. Cara yang lebih modern, adalah dengan menggunakan kernel mikro. Pada awalnya, konsep mikro kernel dikembangkan pada sistem operasi Mach. Ide dasar dari pengembangan kernel mikro adalah bahwa hanya fitur-fitur yang perlu saja yang diimplementasikan dalam kernel (mengenai fitur-fitur apa saja yang perlu diimplementasikan, ini bisa berbeda tergantung desain sistem operasi).

Walaupun garis pembatas mengenai apa saja yang berada di dalam dan luar kernel mikro bisa berbeda antara desain yang satu dengan yang lain, namun ada karakteristik yang umum, yaitu servis-servis yang umumnya menjadi bagian sistem operasi menjadi subsistem eksternal yang bisa berinteraksi satu sama lain dan dengan kernel tentunya. Ini mencakup device driver, file system, virtual memory manager, windowing system, dan security devices. Pendekatan kernel mikro menggantikan pendekatan berlapis yang vertikal tradisional.

Komponen-komponen sistem operasi yang berada di luar kernel mikro diimplementasikan sebagai server process dan berkomunikasi dengan message passing via kernel mikro. Misalnya jika user ingin membuat berkas baru, dia mengirim pesan ke file system server, atau jika ingin membuat proses baru, dia mengirimkan pesan ke process server.

Gambar 7.2. Struktur kernel mikro

Beberapa kelebihan kernel mikro:
a.    Interface yang seragam. Proses tidak lagi dibedakan, baik antara kernel-level maupun user-level, karena semuanya berkomunikasi via message passing.
b.    Extensibility . Bisa menambahkan fitur-fitur baru tanpa perlu melakukan kompilasi ulang.
c.    Flexibility . Fitur-fitur yang sudah ada bisa dikurangi, atau dimodifikasi sesuai dengan kebutuhan sehingga menjadi lebih efisien. Misalnya tidak semua pengguna membutuhkan security yang sangat ketat, atau kemampuan untuk melakukan distributed computing.
d.    Portability . Pada kernel mikro, semua atau sebagian besar kode yang prosesor-spesifik berada di dalamnya. Jadi, proses porting ke prosesor lain bisa dilakukan dengan relatif sedikit usaha. Pada kelompok desktop misalnya, tampaknya dominasi Intel makin kuat. Tapi, sampai seberapa lama itu bisa bertahan? Karena itulah, portability adalah salah satu isu yang sangat penting.
e.    Reliability . Semakin besar suatu software, maka tentulah semakin sulit untuk menjamin reliability-nya. Desain dengan pendekatan berlapis sangatlah membantu, dan dengan pendekatan kernel mikro bisa lebih lagi. Kernel mikro dapat dites secara ekstensif .Karena dia menggunakan API yang sedikit, maka bisa meningkatkan kualitas code di luar kernel.
f.    Support for object-oriendted OS . Model kernel mikro sangat sesuai untuk mengembangkan sistem operasi yang berbasis object-oriented. Contoh sistem operasi yang menggunakan kernel mikro adalah MacOS X dan QNX.

       3.1 Proses Boot

Booting adalah istilah untuk menghidupkan komputer. Secara umum, gambaran yang terjadi pada proses boot adalah sebagai berikut.
•    Saat komputer dihidupkan, memorinya masih kosong. Belum ada instruksi yang dapat dieksekusi oleh prosesor. Karena itu, prosesor dirancang untuk selalu mencari alamat tertentu di BIOS ROM. Pada alamat tersebut, terdapat sebuah instruksi jump yang menuju ke alamat eksekusi awal BIOS. Setelah itu, prosesor menjalankan power-on-self test(POST), yaitu memeriksa kondisi hardware yang ada.
•    Sesudah itu, BIOS mencari video card. Secara khusus, dia mencari program BIOS milik video card. Kemudian system BIOS menjalankan video card BIOS. Barulah setelah itu, video card diinisalisasi.
•    Kemudian BIOS memeriksa ROM pada hardware yang lain, apakah memiliki BIOS tersendiri apakah tidak. Jika ya, maka akan dieksekusi juga.
•    BIOS melakukan pemeriksaan lagi, misal memeriksa besar memori dan jenis memori. Lebih lanjut lagi, dia memeriksa hardware yang lain, seperti disk. Lalu dia mencari disk dimana proses boot bisa dilakukan, yaitu mencari boot sector. Boot sector ini bisa berada di hard disk, atau floppy disk.

        3.2. Kompilasi Kernel

Pada dasarnya Linux hanyalah sebuah kernel. Sedangkan program-program lain seperti teks editor, browser, kompilator, dan seterusnya melengkapi kernel menjadi suatu paket sistem operasi. Tentunya agar kernel dapat bekerja dengan optimal, perlu dilakukan konfigurasi sesuai dengan hardware yang ada. Biasanya, kompilasi kernel dilakukan saat hendak menambahkan device baru yang belum dikenali sebelumnya atau jika hendak mengaktifkan fitur tertentu pada sistem operasi. Pada proses kompilasi kernel, sangat mungkin terjadi kesalahan. Karena itu, jangan lupa membackup kernel yang lama, dan menyiapkan emergency boot disk. Pada penjelasan berikut, diasumsikan kernel yang digunakan adalah versi 2.6.20 dan komputer menggunakan prosesor Intel.

Beberapa tahapan dalam kompilasi kernel:
a.    Mendownload kernel. Ada banyak situs di internet tempat mendownload kernel. Tapi ada baiknya jika anda mengunjungi situs resminya, yaitu "kernel.org". Anda bisa melihat beraneka versi kernel dan patchnya disana.Format penamaan kernel Linux adalah linux-X.YY.ZZ.tar.gz atau linux-X.YY.ZZ.tar.bz2, dimana: X = major number; Y = minor number; ZZ = revision number. Contoh: linux-2.6.20. Angka 2 adalah major number (angka 2 ini jarang berubah dan baru berubah jika sudah terjadi perubahan besar) Angka 6 adalah minor number (karena 6 adalah bilangan genap, berarti kernel ini versi stabil) Angka 20 menunjukkan nomor revisi.
b.    Mengekstrak kernel. Source code kernel Anda yang lama bisa dilihat di direktori /usr/src/linux. Supaya source code kernel sebelumnya tidak hilang, ekstraklah kernel yang baru di direktori yang berbeda, misal /usr/src/linux-2.6.20 (tentunya sesuaikan angka-angka tersebut dengan versi kernel yang anda pakai).
c.    Buat symbolic link. 
ln -s linux-2.6.20 linux
d.    Konfigurasi kernel. Sebelum proses kompilasi, anda memiliki 2 pilihan, yaitu membuat konfigurasi baru, atau menggunakan konfigurasi kernel sebelumnya. Jika anda ingin membuat konfigurasi baru, maka jalankan perintah: make xconfig (atau make menuconfig). Pada tahap ini, anda mengkonfigurasi kernel sesuai dengan hardware yang ada di komputer anda. Isinya antara lain mengatur jenis prosesor, memory, networking, USB, dsb. Dengan ini, kernel bisa bekerja optimal pada hardware yang ada Setelah berkas configurasi (.config) terbentuk, anda bisa memulai proses kompilasi. Sedangkan jika anda ingin menggunakan konfigurasi kernel yang lama, anda bisa mengcopy berkas .config dari direktori kernel yang lama ke direktori kernel yang baru, lalu menjalankan perintah: make oldconfig
e.    Kompilasi. Jalankan perintah "make bzImage". Proses kompilasi kernel bisa memakan waktu cukup lama, dan sangat mungkin terjadi kesalahan disitu. Jika ada kesalahan, coba lakukan lagi konfigurasi kernel. Setelah itu, coba lakukan kompilasi lagi. Jika sukses, terbentuk berkas bzImage di/usr/src/linux-2.6.20/arch/i386/boot. Copy ke direktori /boot dengan perintah:
f.              cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.20
         
Selanjutnya, kompilasi modul. Jalankan perintah :
make modules
diikuti oleh
make modules_install
Terbentuk berkas System.map. Copylah ke /boot dengan perintah:
          cp System.map /boot/System.map-2.6.20
         
Supaya kernel yang baru bisa digunakan, ubahlah konfigurasi bootloader anda supaya ia mengetahui dimana kernel yang baru berada. Misal jika anda menggunakan Lilo, modifikasi berkas lilo.conf (ada di /etc), atau jika anda menggunakan grub, modifikasi berkas menu.lst (ada di /boot/grub). Khusus jika anda menggunakan lilo, jalankan perintah lilo. Setelah itu, reboot komputer anda.

4. Rangkuman

Ada beberapa cara untuk menghubungkan komponen-komponen yang ada didalam suatu sistem operasi. Pertama, dengan menggunakan struktur sederhana. Kedua, dengan pendekatan terlapis atau level. Lapisan yang lebih rendah menyediakan layanan untuk lapisan yang lebih tinggi. Ketiga, dengan pendekatan kernel mikro, yaitu sistem operasi disusun dalam bentuk kernel yang lebih kecil.

Sistem berprosesor jamak mempunyai lebih dari satu CPU yang mempunyai hubungan yang erat; CPU-CPU tersebut berbagi bus komputer, dan kadang-kadang berbagi memori dan perangkat yang lainnya. Sistem seperti itu dapat meningkatkan throughput dan reliabilititas.

Sistem hard real-time sering kali digunakan sebagai alat pengontrol untuk applikasi yang dedicated/spesifik tugas tertentu. Sistem operasi yang hard real-time mempunyai batasan waktu yang tetap yang sudah didefinisikan dengan baik.Pemrosesan harus selesai dalam batasan-batasan yang sudah didefinisikan, atau sistem akan gagal.

Sistem soft real-time mempunyai lebih sedikit batasan waktu yang keras, dan tidak mendukung penjadwalan dengan menggunakan batas akhir. Sistem ini menggunakan prioritas untuk memilih tugas-tugas mana yang harus terlebih dahulu dikerjakan

Sistem terdistribusi adalah sistem yang menjalankan bagian-bagian program di beberapa komputer yang berbeda. Komputer-komputer itu terhubung dalam suatu jaringan. Sistem terdistribusi adalah salah satu bentuk dari paralelisme

Sistem terkluster adalah sistem yang terdiri dari banyak komputer yang disusun sedemikian rupa untuk menyatukan sumber daya yang ada dan seolah-olah dapat dipandang sebagai satu komputer saja. Model seperti ini sering digunakan untuk membangun super komputer.

Pengaruh dari internet dan WWW telah mendorong pengembangan sistem operasi modern yang menyertakan web browser serta perangkat lunak jaringan dan komunikasi sebagai satu kesatuan. Multiprogramming dan sistem time-sharing meningkatkan kemampuan komputer dengan melampaui batas operasi (overlap) CPU dan M/K dalam satu mesin. Hal seperti itu memerlukan perpindahan data antara CPU dan alat M/K, ditangani baik dengan polling atau interrupt-driven akses ke M/K port Agar komputer dapat menjalankan suatu program, maka program tersebut harus berada di memori utama.

Sumber : http://bebas.vlsm.org/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-4.X-1/

Notasi Algoritma Flowchart

Flowchart merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan antar proses beserta instruksinya. Gambaran ini dinyatakan dengan simbol. Dengan demikian setiap simbol menggambarkan proses tertentu. Sedangkan hubungan antar proses digambarkan dengan garis penghubung.
Flowchart ini merupakan langkah awal pembuatan program. Dengan adanya flowchart urutan poses kegiatan menjadi lebih jelas. Jika ada penambahan proses maka dapat dilakukan lebih mudah. Setelah flowchart selesai disusun, selanjutnya pemrogram (programmer) menerjemahkannya ke bentuk program dengan bahsa pemrograman.

Simbol-simbol flowchart

Kaidah-kaidah pembuatan Flowchart

Dalam pembuatan flowchart tidak ada rumus atau patokan yang bersifat mutlak. Karena flowchart merupakan gambaran hasil pemikiran dalam menganalisa suatu masalah dengan komputer. Sehingga flowchart yang dihasilkan dapat bervariasi antara satu pemrogram dengan pemrogram lainnya.
Namun secara garis besar, setiap pengolahan selalu terdiri dari tiga bagian utama, yaitu;
¨       Input berupa bahan mentah
¨       Proses pengolahan
¨       Output berupa bahan jadi.
Untuk pengolahan data dengan komputer, dapat dirangkum urutan dasar untuk pemecahan suatu masalah, yaitu;
 START: berisi instruksi untuk persiapan perlatan yang diperlukan sebelum menangani pemecahan masalah.
 READ: berisi instruksi untuk membaca data dari suatu peralatan input.
PROCESS: berisi kegiatan yang berkaitan dengan pemecahan persoalan sesuai dengan data yang dibaca.
WRITE: berisi instruksi untuk merekam hasil kegiatan ke perlatan output.
END: mengakhiri kegiatan pengolahan
 
Gambar berikut memperlihatkan flowchart dari kegiatan dasar diatas.
 
 
Basic Flowchart






Dari gambar flowchart di atas terlihat bahwa suatu flowchart harus terdapat proses persiapan dan proses akhir. Dan yang menjadi topik dalam pembahasan ini adalah tahap proses. Karena kegiatan ini banyak mengandung variasi sesuai dengan kompleksitas masalah yang akan dipecahkan. Walaupun tidak ada kaidah-kaidah yang baku dalam penyusunan flowchart, namun ada beberapa anjuran yaitu:
1.   Hindari pengulangan proses yang tidak perlu dan logika yang berbelit sehingga jalannya proses menjadi singkat
2.      Penggambaran flowchart yang simetris dengan arah yang jelas.
3.      Sebuah flowchart diawali dari satu titik START dan diakhiri dengan END.

 

 

Operator

1. Operator Numerik                                                           2. Operator Hubungan

+
Penjumlahan

=
Sama dengan
-
Pengurangan

#
Tidak sama dengan
*
Perkalian

Lebih kecil
/
Pembagian

Lebih Besar
^
Pangkat

<=
Lebih kecil sama dengan
sqrt
Akar pangkat dua

>=
Lebih besar sama dengan

3. Operator Logika

AND
Logika DAN
OR
Logika ATAU
NOT
Logika LAWAN

 Contoh Soal

buatlah flowchart menentukan bilangan genap dan ganjil :

  • Masukkan sebuah bilangan sembarang 
  • Bagi bilangan tersebut dengan 2 
  • Hitung sisa hasil bagi pada langkah 2 
  • Bila sisa hasil sama dengan 0, maka bilangan itu adalah bilangan genap 
  • Jika hasil bagi sama dengan 1, maka bilangan itu adalah bilangan ganjil

Tuesday, January 15, 2013

Notasi Algoritma Deskriptif

Notasi algoritma deskriptif ini adalah notasi algoritma yang paling dekat dengan bahasa manusia, karena setiap kata-kata yang ada di notasi deskriptif ini, masih pake bahasa mawam….
Contohnya:
Algoritma Mencuci Baju
Deskripsi
Algoritma ini digunakan pada saat seseorang ingin mencuci baju, mulai dari baju kotor dikumpulkan sampai dengan baju dapat diguanakan kembali.
Langkah Penyelesaian
1.      Kumpulkan baju kotor
2.      Ambil ember
3.      Tuang detergen secukupnya
4.      Masukkan air secukupnya hingga berbusa
5.      Masukkan baju kotor yang sudah dikumpulkan
6.      Tunggu 20 menit
7.      Brush pakaian yang sudah direndam
8.      Bilas hingga bersih
9.      Tambahkan molto atau pewangi lainnya (opsional)
10.  Jemur
11.  Tunggu hingga kering
12.  Ambil baju yang sudah kering
13.  Gosok dengan rapi dan masukkan ke lemari
14.  Pakaian siap digunakan kembali

Algoritma yg diatas mungkin masih gampang dimengerti, karena rata-rata semua orang sudah pernah ngelakukannya. Yang susah itu, adalah waktu ada permasalahan yang membutuhkan logika yang lebih mantap. Huah…mungkin kalo kayak gitu, bakal susah dikerjain.T____T
Contoh lain yang udah pake logika lebih, adalah permasalahan x pangkat y. Jika ada dua angka x dan y, maka bagaimana algoritma yang dapat digunakan untuk memperoleh hasilnya.
Kalo algoitma deskriptifnya masih bisa ngerti lah, karena pake bahasa manusia masih. hehhehehe…

Contoh Lain Algoritma:
1.  Mengirim surat kepada teman:
·         Tulis surat pada secarik kertas surat
·         Ambil sampul surat
·         Masukkan surat ke dalam sampul
·         Tutup sampul surat dengan perekat
·         Jika kita ingat alamat teman tersebut, maka tulis alamat surat pada sampul
·         Jika tidak ingat, lihat buku alamat, kemudian tulis alamat surat pada sampul
·         Tempel prangko pada sampul
·         Bawa sampul ke kantor pos untuk diposkan
2.  Menentukan apakah suatu bilangan merupakan bilangan ganjil atau bilangan genap:
·         Masukkan sebuah bilangan sembarang
·         Bagi bilangan tersebut dengan 2
·         Hitung sisa hasil bagi pada langkah 2
·         Bila sisa hasil sama dengan 0, maka bilangan itu adalah bilangan genap
·         Jika hasil bagi sama dengan 1, maka bilangan itu adalah bilangan ganjil