IP Versi 6
Sejarah Mikroprosesor
Th. 1946 : Komputer modern pertama dibuat di University of Pennsylvania USA yang disebut ENIAC (Electronics Numerical Integrator and Calculator.
ENIAC terdiri dari 17.000 tabung hampa, 500 mil kabel, berat > 30 ton, dapat menjalankan 100.000 operasi per detik, diprogram dengan mengatur jalur kabel pada rangkaiannya.
Th. 1948 : Transistor pertama dibuat di Bell Labs, USA.
Th. 1958 : IC (Integrated Circuit) pertama dibuat oleh Jack Kilby dari Texas Instrument, USA.
Penemuan IC ini mendorong pengembangan IC Digital (1960), dan mikroprosesor pertama oleh Intel (1971).
Mikroprosesor pertama di dunia adalah Intel 4004 merupakan prosesor 4-bit, Kebanyakan Kalkulator masih berbasis mikroprosesor 4-bit.
Th. 1971 : Intel mengeluarkan mikroprosesor 8-bit yaitu Intel 8008.
Th. 1973 : Intel memperkenalkan mikroprosesor 8-bit modern pertama Intel 8080 (10x lebih cepat dari 8008), dan diikuti Motorola MC6800.
Th. 1977 : Intel memperkenalkan 8085 yang merupakan mikroprosesor 8-bit terakhir yang dibuat Intel dengan frek.clock dan kecepatan lebih tinggi.
Perusahaan lain yang mampu menyaingi Intel 8085 adalah Zilog Corporation dengan Z80.
Th. 1978 : Intel mengeluarkan mikroprosesor 16-bit yaitu 8086, setahun kemudian mengeluarkan 8088 dengan kecepatan eksekusi dan memori lebih besar dari 8085, serta mulai digunakannya cache memori (sistem antrian yang mengatur pemberian instruksi sebelum menjalankannya).
Intel 8086/8088 disebut juga CISC (Complex Instruction Set Computer) karena jumlah dan kompleksitas instruksinya.
Th. 1981 : IBM membuat PC menggunakan mikroprosesor 8088 untuk menjalankan aplikasi seperti spreadsheet dan pengolah kata.
Th. 1983 : Intel mengeluarkan mikroprosesor 16-bit 80286, dengan kemampuan memori 16 MB.
Th. 1986 : Intel mengeluarkan mikroprosesor 32-bit pertama 80386, dengan kemampuan memori 4 GB.
Th. 1989 : Intel mengeluarkan mikroprosesor 32-bit 80486, dengan kemampuan memori 4 GB + 8K Cache.
Th. 1993 : Intel memperkenalkan mikroprosesor 32-bit Pentium I, Th. 1997 Pentium II,kemudian berturut-turut Pentium III dan Pentium 4 pada Th. 2000, dimana mulai digunakan teknologi memori RAMBUS menggantikan teknologi SDRAM.
Microprocessor (CUDA Automatically Manages Threads)
Basis Data (Sintak)
1. FUNGSI SELECT (MENAMPILKAN DATA) PADA SEBUAH TABEL
Fungsi select dalam bentuk sederhana hanya mempunyai pasangan kata from, yang berarti memilih tabel yang akan di tampilkan. Bentuk umumnya sbb :
Select
From
Where
Kita bisa melihat data yang ada di dalam tabel dengan menggunakan perintah "SELECT". Perintah SELECT adalah perintah yang akan sering kita gunakan nantinya. Kita mulai dengan cara yang paling sederhana.
mysql> select * from t_mhs ;
Perintah di atas menampilkan seluruh data yang ada di dalam tabel karyawan, karena menggunakan tanda asterik "*" di dalam perintah SELECT. Bagaimana kalau kita hanya mau menampilkan kolom nama dan gender saja?
mysql> select nama, gender from t_mhs
-> ;
Kalau kita hanya mau menampilkan data-data t_mhs yang berjenis kelamin perempuan saja, Cukup dengan menambahkan perintah "WHERE"
mysql> select nama, gender from t_mhs
-> where gender="Perempuan"
-> ;
Kita tampilkan data berdasarkan urutan nama mahasiswa dengan menambahkan perintah "ORDER BY" pada "SELECT":
mysql> select * from t_mhs
-> order by nama ;
Nah kalo yang sekarang diurut berdasarkan nama, tetapi dengan urutan terbalik (descending). Cukup dengan menambahkan perintah "DESC" pada SELECT:
mysql> select * from t_mhs
-> order by nama DESC ;
Operator Pembanding dan Operator Logika
Sudah saatnya kita melangkah ke permainan data yang lebih mengasyikan lagi dengan menggunakan dua operator, yaitu Operator Pembanding dan Operator Logika. Kedua jenis operator ini akan sering digunakan dalam proses "query" data.
Operator Pembanding
Operator Pembanding Keterangan
Lebih besar >
Lebih kecil <=
Lebih besar atau sama dengan >=
Lebih kecil atau sama dengan <=
Sama dengan =
Tidak sama dengan <>
Operator Logika
Operator Logika Keterangan
Dan AND atau &&
Atau OR atau ||
Lebih besar atau sama dengan NOT atau !
Lebih kecil atau sama dengan <=
Tidak sama dengan <>
Berikut ini adalah penerapan dari operator di atas:
Kita tampilkan data tanggal pinjam yang tanggal pinjamnya setelah tanggal 2009-05-21.
mysql> select *
-> from t_pinjam
-> where tgl_pinjam > "2009-05-20";
Sekarang kita tampilkan data peminjam yang tanggal pinjamnya antara tanggal 22 Mei 2009 dan 24 Mei 2009 :
mysql> select *
-> from t_pinjam
-> where tgl_pinjam >= "2009-05-22"
-> and tgl_pinjam <= "2009-05-24";
Baik kita lanjutkan tutorial ini dengan perintah-perintah lainnya. Kita akan menampilkan data buku yang id golongannya ”130”:
mysql> select * from t_buku
-> where id_gol="130" ;
Kita tampilkan data buku yang id_golongannya bukan ”130”:
mysql> select * from t_buku
-> where id_gol !="130" ;
Perintah di atas dapat juga menggunakan tanda "<>', dan hasilnya tetap sama dengan di atas:
mysql> select * from t_buku
-> where id_gol <>"130" ;
Fungsi Agregasi
Beberapa fungsi untuk statistik dasar adalah:
1. MAX : mencari data terbesar dari sekelompok data
2. MIN : mencari data terkecil dari sekelompok data
3. COUNT : mencari cacah data (data NULL tidak akan dimasukkan dalam perhitungan, kecuali disebutkan secara khusus)
4. SUM : mencari jumlah dari sekumpulan data numeris
5. AVG : mencari rerata dari sekumpulan data numeris
Sekarang berapa mahasiswa yang meminjam buku, dengan kode buku ”12” ?
mysql> select count(*) from t_pinjam
-> where id_buku =”12”;
Berapakah rata-rata denda dari tabel denda?
mysql> select avg(denda) from t_denda;
Berapakah denda yang terbesar?
mysql> select max(denda) from t_denda;
Berapakah denda yang terkecil?
mysql> select min(denda) from t_denda;
Dan berapakah jumlah denda keseluruhan pada table denda?
mysql> select sum(denda) from t_denda;
Operator Precedence
Operator precedence adalah tingkatan hirarki dalam memproses serangkaian operator.
Tingkatan hirarki Jenis Operator
Paling Tinggi BINARY
NOT !
- (unary minus)
* / %
+ -
<< >>
&
|
< <= = <=> != <> >= > IN IS LIKE REGEXP RLIKE
BETWEEN
AND &&
Paling Rendah OR ||
Semakin keatas posisi operator, maka semakin tinggi tingkat hirarki operator tersebut. Begitu pula sebaliknya, semakin rendah posisinya maka akan semakin lemah hirarkinya.
Untuk operator yang sama kuat, misal + dan - digabung dengan operator * / %, maka akan ditentukan hirarkinya tergantung dari posisi mana yang paling kiri/paling awal ditemukan. Dan untungnya posisi hirarki ini dapat diubah dengan bantuan tanda kurung "(" dan ")". Sekarang kita lihat penerapannya.
mysql> select 10+15-11*2, (10+15-11)*2,
-> 2*6-5, 2*(6-5) ;
+------------+--------------+-------+---------+
| 10+15-11*2 | (10+15-11)*2 | 2*6-5 | 2*(6-5) |
+------------+--------------+-------+---------+
| 3 | 28 | 7 | 2 |
+------------+--------------+-------+---------+
1 row in set (0.00 sec)
Anda bisa perhatikan bahwa walaupun angka dan operatornya sama, tapi hasilnya bisa berbeda. Dan itu karena adanya peranan dari tanda kurung "(" dan ")" yang akan mengubah peta posisi hirarki operator....
Operator LIKE, NOT LIKE, REGEXP
Operator LIKE, NOT LIKE, REGEXP akan banyak kita gunakan terutama dalam operasi karakter.
Sekarang kita kan coba menggunakan operator LIKE. Operator LIKE ini digunakan untuk mencari data yang "menyerupai" atau "hampir sama" dengan kriteria tertentu. Biasanya untuk mencari data string/teks. Simbol "%" digunakan untuk membantu pelaksanaan operator LIKE. Posisi "%" sangat berpengaruh dalam menentukan kriteria. Kita langsung dengan contoh-contohnya saja ya biar lebih jelas penggunaannya...
Tampilkan data mahasiswa yang namanya berawalan huruf "a": (perhatikan posisi simbol persennya "%")
mysql> select *
-> from t_mhs
-> where nama LIKE "a%" ;
Tampilkan data mahasiswa yang namanya berakhiran huruf "i". Perhatikan posisi penulisan tanda "%".:
mysql> select *
-> from t_mhs
-> where nama LIKE "%a" ;
Contoh-contoh berikut akan lebih memudahkan pemahaman tentang pemakaian fungsi like.
• “a%” kata yang awalnya dimulai dengan a.
• ”%a%” kata yang di tengah-tengahnya mengandung karakter a.
• " _ _ _ “ kata yang tepat tiga karakter.
• ” _ _ _ %” kata yang minimum terdiri dari 3 karakter.
Bagaimana caranya agar operator LIKE dapat membedakan huruf besar dan kecil... Sederhana saja, cukup dengan menambahkan kata BINARY saja setelah perintah LIKE (sehingga perintahnya menjadi LIKE BINARY). Kita lihat contohnya...
mysql> select *
-> from t_mhs
-> where nama LIKE BINARY "A%" ;
Ya dengan menggunakan LIKE BINARY, penulisan huruf "a" akan dibedakan artinya dengan "A".
Operator REGEXP (singkatan dari REGular EXPressions) merupakan bentuk lain dari operator LIKE, dengan fungsi yang lebih disempurnakan. Operator REGEXP biasanya ditemani juga dengan simbol-simbol tertentu dalam melaksanakan tugasnya, seperti:
Simbol Keterangan
. Satu tanda titik (.) untuk mewakili satu karakter
[?] Untuk mewakili beberapa karakter atau range yang ditentukan.
^ Untuk posisi awal dari sebuah kriteria yang ditentukan
$ Untuk posisi akhir dari sebuah kriteria yang ditentukan
Kita langsung saja pada contohnya. Tampilkan data mahasiswa yang namanya berawalan huruf 'a':
mysql> select *
-> from t_mhs
-> where nama REGEXP "^a" ;
Tampilkan data mahasiswa yang namanya berawalan huruf 'a' sampai dengan huruf 'd':
mysql> select *
-> from t_mhs
-> where nama REGEXP "^[a-g]"
-> order by nama ;
Tampilkan data mahasiswa yang namanya berakhiran huruf "i":
mysql> select *
-> from t_mhs
-> where nama REGEXP "i$"
-> order by nama ;
Tampilkan data mahasiswa yang panjang namanya 10 karakter:
mysql> select *
-> from t_mhs
-> where nama REGEXP "^..........$" ;
Atau perintah diatas bisa juga ditulis dengan:
mysql> select *
-> from t_mhs
-> where nama REGEXP "^.{10}$" ;
Nah, kurang lebih itulah dasar-dasar MySQL. Ini baru tutorial perkenalan. Kita akan bertemu lagi dengan tutorial berikutnya, dasar-dasar database relasi. Kemudian dilanjutkan dengan tutorial penerapan sederhana "database relasi dengan menggunakan 2 buah tabel".
2. FUNGSI SELECT (MENAMPILKAN DATA) PADA BEBERAPA TABEL
Misalnya untuk menampilkan nama dari t_mhs dan no_telp dari t_telp:
mysql> select nama,telp from tmhs
-> inner join t_telp
-> on t_mhs.nim=t_telp.nim;
NIM yang ada di t_mhs dan NIM yang ada di t_telp dijadikan sebagai relasi / penghubung antara t_mhs dan t_telp
Atau bisa ditulis sebagai berikut
mysql> select nama,telp from t_mhs,t_telp
-> where t_mhs.nim=t_telp.nim;
Tampilkan nama mahasiswa yang meminjam buku dengan judul ”Pemrograman Web” :
mysql> select nama from t_mhs,t_pinjam,t_buku
-> where t_mhs.nim=t_pinjam.nim and
-> t_pinjam.id_buku=t_buku.id_buku and judul=’Pemrograman Web’;
NIM yang ada di t_mhs dan NIM yang ada di t_pinjam digunakan untuk menghubungkan t_mhs dengan t_pinjam. Id_buku yang ada di t_pinjam dan id_buku yang ada di t_buku digunakan untuk menghubungkan t_pinjam dengan t_buku
3. Fungsi Renaming (Penggantian Nama)
SQL memberikan fasilitas untuk melakukan renaming (penggantian nama) suatu kolom ataupun tabel. Sebagai contoh :
mysql> select nama as nama_mahasiswa from t_mhs a,t_pinjam b,t_buku c
-> where a.nim=b.nim and
-> b.id_buku=c.id_buku and judul=’Pemrograman Web’;
4. Fungsi Delete (Hapus Data)
Delete yang dilakukan hanya bisa diberikan pada record, bukan pada data kolom tertentu. Untuk menghapus data pada kolom tertentu menggunakan perintah update. Sintaks delete secara umum berbentuk :
Delete from
Where
Contoh sintaks untuk menghapus data telp pada t_telp dengan nim “117”:
mysql> delete from t_telp
-> where nim=’117’;
5. Fungsi Update (Meng-edit Data)
Update merupakan perintah untuk mengubah data yang sudah ada di dalam tabel. Perintah update memiliki sintaks secara umum sebagai berikut
Update
Set
Where
Contoh penggunaan sintaks update untuk mengedit nama mahasiswa dari ”Agus Saputra” menjadi “Kadek Saputra” dengan nim “112” pada t_mhs
mysql> update t_mhs set nama=”Kadek Saputra”
-> where nim=’117’;
Round-Robin
Round-Robin Scheduling
Merupakan penjadwalan yang paling tua, sederhana, adil, banyak digunakan algoritmanya dan mudah diimplementasikan. Penjadwalan ini bukan dipreempt oleh proses lain tetapi oleh penjadwal. Berdasarkan lama waktu berjalannya proses (preempt by time). Penjadwalan tanpa prioritas berasumsi bahwa semua proses memiliki kepentingan yang sama, sehingga tidak ada prioritas tertentu. Semua proses dianggap penting sehingga diberi sejumlah waktu oleh pemroses yang disebut kwanta (quantum) atau time slice dimana proses itu berjalan.
Konsep dasar dari algoritma ini adalah dengan menggunakan time-sharing. Pada dasarnya algoritma ini sama dengan FCFS, hanya saja bersifat preemptive. Setiap proses mendapatkan waktu CPU yang disebut dengan waktu quantum (quantum time) untuk membatasi waktu proses, biasanya 1-100 milidetik. Jika proses masih running sampai akhir quantum, maka CPU akan mempreempt proses itu dan memberikannya ke proses lain. Ketika quantum habis untuk satu proses tertentu, maka proses tersebut akan diletakkan diakhir daftar (list).
Algoritma ini sepenuhnya bergantung besarnya time quantum. Jika terlalu besar, algoritma ini akan sama saja dengan algoritma first come first served. Jika terlalu kecil, akan semakin banyak peralihan proses sehingga banyak waktu terbuang.
Jika suatu proses memiliki CPU burst lebih kecil dibandingkan dengan waktu quantum, maka proses tersebut akan melepaskan CPU jika telah selesai bekerja, sehingga CPU dapat segera digunakan oleh proses selanjutnya. Sebaliknya, jika suatu proses memiliki CPU burst yang lebih besar dibandingkan dengan waktu quantum, maka proses tersebut akan dihentikan sementara jika sudah mencapai waktu quantum, dan selanjutnya mengantri kembali pada posisi ekor dari ready queue, CPU kemudian menjalankan proses berikutnya.
Jika terdapat n proses pada ready queue dan waktu quantum q, maka setiap
proses mendapatkan 1/n dari waktu CPU paling banyak q unit waktu pada sekali
penjadwalan CPU. Tidak ada proses yang menunggu lebih dari (n-1)q unit waktu.
Performansi algoritma round robin dapat dijelaskan sebagai berikut, jika q besar, maka
yang digunakan adalah algoritma FIFO, tetapi jika q kecil maka sering terjadi context
switch.
Ketentuan algoritma round robin adalah sebagai berikut:
1. Jika kwanta dan proses belum selesai maka proses menjadi runnable dan pemroses dialihkan ke proses lain.
2. Jika kwanta belum habis dan proses menunggu suatu kejadian (selesainya operasi I/O), maka proses menjadi blocked dan pemroses dialihkan ke proses lain.
3. Jika kwanta belum habis tapi proses telah selesai, maka proses diakhiri dan pemroses dialihkan ke proses lain.
Algoritma penjadwalan ini dapat diimplementasi sebagai berikut:
1. Mengelola senarai proses read (runnable) sesuai urutan kedatangan.
2. Ambil proses yang berada di ujing depan antrian menjadi running.
3. Bila kwanta belum habis dan proses selesai maka ambil proses di ujung depan antrian proses ready.
4. Jika kwanta habis dan proses belum selesai maka tempatkan proses running ke ekor antrian proses ready dan ambil proses di ujung depatn antrian proses ready.
Masalah yang timbul adalah menentukan besar kwanta, yaitu :
1. Kwanta terlalu besar menyebabkan waktu tanggap besar dan turn arround time
rendah.
2. Kwanta terlalu kecil menyebabkan peralihan proses terlalu banyak sehingga
menurunkan efisiensi proses.
Switching dari satu proses ke proses lain membutuhkan kepastian waktu yang
digunakan untuk administrasi, menyimpan, memanggil nilai-nilai register, pemetaan
memori, memperbaiki tabel proses dan senarai dan sebagainya. Mungkin proses
switch ini atau konteks switch membutuhkan waktu 5 msec disamping waktu pemroses yang dibutuhkan untuk menjalankan proses tertentu. Dengan permasalahan tersebut tentunya harus ditetapkan kwanta waktu yang optimal berdasarkan kebutuhan sistem dari hasil percobaan atau data historis. Besar kwanta waktu beragam bergantung beban sistem. Apabila nilai quantum terlalu singkat akan menyebabkan terlalu banyak switch antar proses dan efisiensi CPU akan buruk, sebaliknya bila nilai quantum terlalu lama akan menyebabkan respon CPU akan lambat sehingga proses yang singkat akan menunggu lama.
Sebuah quantum sebesar 100 msec merupakan nilai yang dapat diterima.
Penilaian penjadwalan ini berdasarkan kriteria optimasi :
• Adil, adil bila dipandang dari persamaan pelayanan oleh pemroses.
• Efisiensi, cenderung efisien pada sistem interaktif.
• Waktu tanggap, memuaskan untuk sistem interaktif, tidak memadai untuk sistem waktu nyata.
• Turn around time Cukup baik.
• Throughtput Cukup baik.
Penjadwalan ini :
• Baik untuk sistem interactive-time sharing dimana kebanyakan waktu
dipergunakan menunggu kejadian eksternal. Contoh : text editor, kebanyakan waktu program adalah untuk menunggu keyboard, sehingga dapat dijalankan proses-proses lain.
• Tidak cocok untuk sistem waktu nyata apalagi hard-real-time applications.
Contoh: Misalkan ada 3 proses: P1, P2, dan P3 yang meminta pelayanan CPU dengan quantum-time sebesar 4 milidetik.
Process Burst Time
P1 20
P2 4
P3 8
Penjadwalan proses dengan algoritma round robin dapat dilihat pada gant chart berikut :
Waktu tunggu untuk P1 adalah 4, P2 adalah 8, dan P3 adalah 12 sehingga rata-rata waktu tunggu adalah (4+ 8+ 12)/3 = 8 milidetik.
Algoritma Round-Robin ini di satu sisi memiliki keuntungan, yaitu adanya keseragaman waktu. Namun di sisi lain, algoritma ini akan terlalu sering melakukan switching seperti yang terlihat pada Gambar di bawah ini. Semakin besar quantum-timenya maka switching yang terjadi akan semakin sedikit.
Waktu turnaround juga tergantung ukuran waktu quantum. Seperti pada Gambar 4-5, rata-rata waktu turnaround tidak meningkat bila waktu quantum dinaikkan. Secara umum, rata-rata waktu turnaround dapat ditingkatkan jika banyak proses menyelesaikan CPU burst berikutnya sebagai satu waktu quantum. Sebagai contoh, terdapat tiga proses masing-masing 10 unit waktu dan waktu quantum 1 unit waktu, rata-rata waktu turnaround adalah 29. Jika waktu quantum 10, sebaliknya, rata-rata waktu turnaround turun menjadi 20.
GENERASI HANDPHONE
Teknologi Generasi Pertama (1G)
Generasi 1G merupakan teknologi handphone pertama yang menggunakan sistem analog., dan menggunakan teknik komunikasi yang disebut Frequency Division Multiple Access (FDMA). Prinsipnya seperti pada stasiun radio dimana satu stasiun radio hanya menggunakan satu frekuensi untuk siarannya.
Teknologi Generasi Kedua (2G)
Generasi 2G sudah menggunakan teknologi digital dan menggunakan mekanisme Time Division Multiple Access (TDMA) dan Code Division Multiple Access ( CDMA) dalam teknik komunikasinya. Yang termasuk dalam teknologi 2G misalnya : GSM di eropa dan asia, PDC di Jepang, High Speed Circuit Switched Data (HSCSD), dsb. Pada HSCSD kecepatan transfer data dapat mencapai 57,6 Kbps.
Teknologi Generasi dua setengah (2.5G)
Disebut sebagai teknologi 2.5G karena merupakan peningkatan dari teknologi 2G terutama dalam platform dasar GSM telah mengalami penyempurnaan, khususnya untuk aplikasi data dan adanya General Packet Radio Service (GPRS). Kecepatan transfer data GPRS dapat mencapai hingga 160 kbps.
Teknologi Generasi ketiga (3G)
Generasi ini lebih dikenal dengan sebutan WCDMA (Wideband - Coded Division Multiple Access). Generasi 3G memiliki kecepatan transfer data cepat (144kbps-2Mbps) sehingga dapat melayani layanan data broadband seperti internet, video on demand, music on demand, games on demand, musik, video, atau game semudah memilih channel di TV. Kecepatan setinggi itu juga mampu melayani video conference dan video streaming lainnya. Kelebihannya :Kualitas suara yang lebih bagus, keamanan yang terjamin, Kecepatan data mencapai 2 Mbps untuk local / Indoor / slow-moving access dan 384kbps untuk wide area access.
Teknologi Generasi ketiga setengah (3.5G)
Teknologi 3,5 G dikenal sebagai teknologi HSPA ( High Speed Packet Access) yang merupakan pengembangan dari 3G dan memiliki kecepatan transfer data yang mencapai 5,6Mbps.
Teknologi Generasi Keempat (4G)
Belum dapat didefinisikan dengan jelas tapi ada beberapa pihak yang mempromosikan jaringan WiMax sebagai 4G padahal bukan merupakan teknologi 4G sebenarnya, karena lebih merupakan varian baru dari teknologi tanpa kabel (wireless) seperti halnya dengan FireWire dan Bluetooth. Memiliki kecepatan transfer data yang jauh lebih tinggi bisa mencapai 20 MBps (Megabytes per detik) di lapangan, 10 kali lipat daripada 3G yang maksimal 2 Mbps (pada prakteknya di lapangan sebenarnya baru mencapai 384 Kbps pada kondisi bergerak).
Perkembangan komputer
Perkembangan komputer akan terus terjadi dari tahun – ke tahun karena para ahli akan terus berupaya memperbaharui dan meningkatkan kemampuan komponen – komponen dalam komputer itu sendiri. Hingga pada akhirnya pada saat ini termasuk komputer generasi keempat karena komputer sekarang ini sesuai dengan ciri – ciri komputer generasi keempat yang menggunakan microprocessor yang merupakan pemadatan dari IC (Integeted Cirkuit) yang lebih kecil dan dapat bekerja lebih cepat seperti core 2 duo,dual core dan quad core. Kesemuanya ini berkembang sesuai irama perkembangan dunia teknologi informasi yang terus bergejolak seolah tak ada henti-hentinya untuk mengembangkan daya kreasi dan inofasi. Bukan termasuk generasi ketiga karena ciri – ciri generasi ketiga ini sudah tepenuhi pada generasi keempat sedangkan komputer generasi kelima masih dalam tahap pengembangan yang menginginkan komputer memiliki kemampuan intelegensi buatan sehingga dapat merespon keinginan manusia.
Dilihat dari perkembangan dan sejarahnya dari generasi ke generasi, pada tiap generasi memiliki ciri – ciri sendiri. Pada generasi pertama komputer ukurannya sebesar ruangan dan bahasanya menggunakan bahasa mesin yaitu menggunakan kode biner. Dan menggunakan tabung hampa udara sebagai penguat signal. Dilanjutkan dengan generasi kedua yang ukurannya sebesar lemari pakaian dan menggunakan transistor. Pada generasi ketiga ditandai dengan digunakannya IC – Chip pada komputer. Sedangkan generasi komputer sekarang ini telah menggunakan microprocessor yang merupakan pengembangan dan peningkatan dari IC-Chip. Microprocessor ini juga belum pasti sebagai palopor lahirnya komputer generasi keempat atau masih pada generasi ketiga karena banyak yang beralasan microprocessor hanya merupakan peningkatan kemampuan dan kecepatan dari IC-Chip. Tetapi ada juga yang beranggapan bahwa generasi komputer sekarang ini telah mencapai generasi kelima, akan tetapi belum terlihat secara nyata ciri khas dari kompoter generasi kelima seperti pada generasi – generasi komputer lainnya sehingga saat ini merupakan generasi komputer keempat dengan pengembangan microprocessornya.
Jadi kesimpulan kami selama kebutuhan user semakin komplek dan banyak maka para ahli di bidang komputer akan terus berinovasi guna memenuhi kebutuhan user itu. Sehingga semakin hari komputer akan terus mengalami perkembangan ke arah yang lebih baik.
Memory Pada Komputer
Penyimpanan primer, biasa disebut main memory, berisi data yang sedang diolah dan program. Penyimpanan sekunder, menyediakan tempat untuk menyimpan program dan data saat tidak dipakai. Data yang disimpan disebut database. Jadi hal yang menjadikan mengapa dibedakan menjadi penyimpanan primer dan sekunder adalah karakter dari data itu sendiri, jika data itu sedang diolah cenderung tersimpan dalam penyimpanan primer dan jika data hanya disimpan saja cenderung ke penyimpanan sekunder.
Bad Sector
Bad sector bisa timbul karena beberapa faktor. Faktor-fakkor tersebut antara
lain misalnya adalah:
• Improperly Shut Down
Mematikan komputer tanpa prosedur shutdown dengan normal akan berpengaruh pada harddisk, karena tujuan dari prosedur shutdown itu sendiri adalah untuk mengamankan posisi head dari piringan harddisk agar tidak bergesekan (atau bisa juga diistilahkan dengan parkir harddisk). Anda bisa bayangkan ketika harddisk yang sedang berputar dengan kecepatan 7200 rpm lalu komputernya dimatikan, maka bisa timbul kemungkinan head dan piringan magnetis harddisk bergesekan dengan tidak normal. Improperly shut down bisa terjadi karena kita mematikan PC tanpa mengikuti prosedur shutdown atau bisa juga karena menekan tombol reset. Di samping itu bagi Anda yang tidak menggunakan UPS atau stabilizer, listrik yang tiba-tiba padam atau tegangan (voltase) yang tidak stabil merupakan faktor penyebab yang lebih parah.
• File
Dalam beberapa kasus, file berpotensi juga menyebabkan bad sector, contohnya file yang corrupt dan rusak, atau penginstalasian program yang salah.
Deadlock
Pengertian
Suatu kondisi dimana proses tidak berjalan lagi atau pun tidak ada komunikasi lagi antar proses.
Deadlock disebabkan karena proses yang satu menunggu sumber daya yang sedang dipegang oleh proses lain yang sedang menunggu sumber daya yang dipegang oleh proses tersebut
Kondisi yang Diperlukan
Deadlock terjadi bila terdapat empat kondisi berikut ini secara simultan.
a. Mutual Exclusion : hanya satu proses pada satu waktu yang dapat menggunakan
sumber daya.
b. Genggam dan Tunggu (Hold and Wait) : suatu proses membawa sedikitnya satu
sumber daya menunggu mendapatkan tambahan sumber daya baru yang dibawa
oleh proses
c. Non-Preemption : sebuah sumber daya dapat dibebaskan dengan sukarela oleh
proses yang memegangnya setelah proses menyelesaikan task.
d. Menunggu Secara Sirkuler (Circular Wait) : Terdapat sekumpulan proses {P0,
P1, …, P0} yang menunggu sumber daya dimana P0 menunggu sumber daya
yang dibawa P1, P1 menunggu sumber daya yang dibawa P2, dan seterusnya,
Pn–1 menunggu sumber daya yang dibawa oleh
Pn, dan Pn menunggu sumber daya yang dibawa P0.
Ketiga syarat pertama merupakan syarat perlu (necessary conditions) bagi
terjadinya deadlock. Keberadaan deadlock selalu berarti terpenuhi kondisi-kondisi
diatas, tak mungkin terjadi deadlock bila tidak ada ketiga kondisi itu. Deadlock terjadi
berarti terdapat ketiga kondisi itu, tetapi adanya ketiga kondisi itu belum berarti terjadi
deadlock.
Deadlock baru benar-benar terjadi bila syarat keempat terpenuhi. Kondisi
keempat merupakan keharusan bagi terjadinya peristiwa deadlock. Bila salah satu saja
dari kondisi tidak terpenuhi maka deadlock tidak terjadi.
Strategi mengatasi Deadlock
• Prevention : memastikan paling sedikit satu penyebab Deadlock tidak berlaku
• Avoidance : sistem menolak request terhadap resource yang berpotensi deadlock, Algoritma Banker
• Detection and Recovery : membiarkan Deadlock terjadi, lalu mendeteksinya, kemudian melakukan recovery, Algoritma Ostrich
Prevention
• Mutual Exclusion : membuat file spool untuk resource yang digunakan bersama-sama
• Hold and Wait : memaksa sebuah proses untuk melepaskan resource yang dimilikinya ketika meminta resource baru
• Circular Waiting : memberikan penamaan resource berdasarkan urutan atau level
• No Preemption : membolehkan adanya preemption
Avoidance
• Resource manager menolak proses yang meminta resource yang berpotensi deadlock
• Jika ada permintaan resource yang maksimum digunakan, maka proses tersebut akan dipaksa untuk melepaskan resource yang sudah dimiliknya
• Perlu adanya informasi tambahan
Penjadwalan Prioritas
Hampir semua sumber daya komputer dijadwalkan sebelum digunakan. Salah satu sumber daya utama sistem komputer adalah CPU. Sehingga pusat rancangan sistem operasi akan berpatokan pada penjadwalan CPU.
Dalam penjadwalan, proses yang belum mendapat jatah alokasi dari CPU akan mengantri di ready queue. Dalam situasi ini, sangatlah diperlukan algoritma untuk mengatur giliran proses-proses tersebut. Terdapat beberapa algoritma untuk mengatur hal tersebut, dalam hal ini salah satunya adalah algoritma Priority Scheduling (Penjadwalan Prioritas).
1. Pengertian Penjadwalan Prioritas
Penjadualan prioritas adalah tiap proses diberi prioritas dan proses yang berprioritas tertinggi mendapat jatah waktu lebih dulu (running). Berasumsi bahwa masing-masing proses memiliki prioritas tertentu, sehingga akan dilaksanakan berdasar prioritas yang dimilikinya. Ilustrasi yang dapat memperjelas prioritas tersebut adalah dalam komputer militer, dimana proses dari jendral berprioritas 100, proses dari kolonel 90, mayor berprioritas 80, kapten berprioritas 70, letnan berprioritas 60 dan seterusnya. Prioritas suatu proses dapat ditentukan melalui beberapa karakteristik antara lain:
a. Batas waktu
b. Kebutuhan Memori
c. Akses file
d. Perbandingan antara I/O Burst dengan CPU Burst
e. Tingkat kepentingan proses
Proses-proses yang sangat banyak operasi masukan/keluaran menghabiskan kebanyakan waktu menunggu selesainya operasinya masukan/keluaran. Proses-proses ini diberi prioritas sangat tinggi sehingga begitu proses Memerlukan pemroses segera diberikan, proses akan segera memulai permintaan masukan/keluaran berikutnya sehingga menyebabkan proses blocked menunggu selesainya operasi masukan/keluaran. Dengan demikian pemroses dapat dipergunakan proses-proses lain. Proses-proses I/O berjalan paralel bersama proses-proses lain yang benar-benar memerlukan pemroses, sementara proses-proses I/O itu menunggu selesainya operasi DMA. Proses-proses yang sangat banyak operasi I/O-nya, kalau harus menunggu lama untuk memakai pemroses (karena prioritas rendah) hanya akan membebani memori, karena harus disimpan tanpa perlu proses-proses itu dimemori karena tidak selesai-selesai menunggu operasi masukan dan menunggu jatah pemroses.
2. Algoritma Penjadwalan Prioritas
Adapun algoritma penjadwalan prioritas adalah sebagai berikut :
* Setiap proses akan mempunyai prioritas (bilangan integer). Beberapa sistem menggunakan integer dengan urutan kecil untuk proses dengan prioritas rendah, dan sistem lain juga bisa menggunakan integer urutan kecil untuk proses dengan prioritas tinggi. Tetapi dalam teks ini diasumsikan bahwa integer kecil merupakan prioritas tertinggi.
* CPU diberikan ke proses dengan prioritas tertinggi (integer kecil adalah prioritas tertinggi). Dalam algoritma ini ada dua skema yaitu :
1. Preemptive: jika ada suatu proses yang baru datang memiliki prioritas yang lebih tinggi daripada proses yang sedang dijalankan, maka proses yang sedang berjalan tersebut dihentikan, lalu CPU dialihkan untuk proses yang baru datang tersebut
2. Nonpreemptive: Ketika proses diberi rentang waktu penggunaan processor, maka proses tersebut dapat diambil alih proses lain, sehingga proses tersebut disela sebelum selesai, dan harus dilanjutkan menunggu sampai waktu processor dari proses yang menyela habis dan tiba untuk proses sebelumnya lagi.
3 SJF adalah contoh penjadwalan prioritas dimana prioritas ditentukan oleh waktu pemakaian CPU berikutnya.
3. Penentuan Prioritas
Setiap proses akan mempunyai prioritas (bilangan integer). Bilangan integer inilah yang akan menunjukkan apakah prioritas dari masing-masing proses yang ada. Integer terkecil merupakan proses yang memiliki prioritas tertinggi.
SJF adalah contoh penjadwalan prioritas dimana prioritas ditentukan oleh waktu pemakaian CPU berikutnya. Semakin cepat waktu yang diperlukan untuk memproses maka proses itulah yang menjadi prioritas tertinggi.
Adapun penentuan prioritas dalam Priority Scheduling didasarkan pada :
1. Secara internal maupun eksternal. Prioritas yang ditentukan secara internal menggunakan beberapa kuantitas atau jumlah yang terukur untuk menghitung prioritas dari suatu proses. Sebagai contoh :
* Time limit (batas waktu)
* Memory requirement (kebutuhan memori)
* Akses file
* Perbandingan antara I/O burst dengan CPU burst
* Tingkat kepentingan proses
* Umur proses (aging)
* % waktu CPU yg telah digunakan pd x jam terakhir
Prioritas eksternal ditentukan oleh kriteria yang bersifat eksternal untuk sistem operasi, sebagai contoh :
* Pentingnya proses
* Jenis dan jumlah dana yang dibayar untuk penggunaan komputer
* Departemen yang mensponsori kerja dan lainnya
* Politik
* Biaya terhadap user
* Tingkat kepentingan user
2. Prioritas statis (static priorities) dan Prioritas dinamis (dynamic priorities).
Pada prioritas statis penentuan prioritas proses menggunakan sistem dengan perilaku aplikasi yg teratur dan telah diketahui, namun sebaliknya, pada prioritas dinamis, algoritma dituntun oleh keputusan untuk memenuhi kebijaksanaan tertentu yang menjadi tujuan. Algoritma sederhana yang men-set prioritas dengan nilai 1/f dimana f adalah ratio kwanta terakhir yang digunakan proses.
* Proses yang menggunakan 2 ms kwanta 100 ms maka prioritasnya 50.
* Proses yang berjalan selama 50 ms sebelum blocked berprioritas 2.
* Proses yang menggunakan seluruh kwanta berprioritas 1.
Kebijaksanaan yang diterapkan adalah jaminan proses-proses mendapat layanan adil dari pemroses dalam arti jumlah waktu pemroses yang sama.
Penjadwalan Prioritas
Penjadwalan proses merupakan basis sistem operasi multiprogramming. Dengan mengalih–alihkan pemroses di antara proses–proses yang ada, sistem operasi membuat sistem komputer menjadi lebih produktif dan efisien. Sasaran multiprogramming adalah mempunyai proses yang berjalan (dieksekusi) disetiap waktu untuk memaksimumkan utilitasi pemproses. Untuk sistem komputer dengan pemroses tunggal (disebut sistem uniprocessor atau singleprocessor) maka tidak lebih dari satu proses yang berjalan (Running). Jika terdapat beberapa proses di sistem, satu proses berjalan sedangkan sisanya menunggu sampai pemroses bebas dan proses itu dijadwalkan untuk dijalankan.
Gagasan multiprogramming adalah sederhana, satu proses dieksekusi sampai proses itu menunggu sesuatu, biasanya pelaksanaan operasi I/O. Pada multiprogramming, beberapa proses disimpan proses disimpan di memori pada satu waktu. Tujuan dari multiprogramming adalah untuk menjalankan beberapa proses pada waktu tertentu sehingga bisa memaksimalkan penggunaan CPU. Tujuan dari time-sharing adalah untuk menggilir penggunaan CPU antara proses-proses sehingga user bisa berinteraksi dengan masing-masing program ketika program tersebut dijalankan. Ketika satu proses harus menunggu, sistem operasi mengambil pemroses darinya dan memberikan pemroses ke proses lain. Pola ini di lakukan terus menerus. Setiap kali proses menunggu, proses lain mengambil alih penggunaan pemroses. Mahsudnya disini adalah jika terdapat lebih dari satu proses, proses-proses lainnya harus menunggu sampai CPU bebas dan bisa dijadwalkan ulang.
Penjadwalan CPU adalah basis dari sistem operasi multiprogramming, yang dilakukan dengan men-switch CPU diantara proses. Disini sistem operasi dapat membuat komputer menjadi lebih produktif.
Penjadwalan adalah fungsi dasar dari sistem operasi. Penjadwalan merupakan kumpulan kebijaksanaan dan mekanisme di sistem operasi yang berkaitan dengan urutan kerja yang dilakukan sistem komputer. Penjadwalan bertugas memutuskan hal-hal berikut:
Proses yang harus berjalan, Kapan dan selama berapa lama proses berjalan. Hampir semua sumber daya komputer dijadwalkan sebelum digunakan. CPU merupakan salah satu sumber daya utama sistem komputer. Sehingga penjadwalan CPU merupakan pusat rancangan sistem operasi.
Dalam penjadwalan, proses yang belum mendapat jatah alokasi dari CPU akan mengantri di ready queue. Di sini algoritma diperlukan untuk mengatur giliran proses-proses tersebut. Ada beberapa algoritma untuk mengatur hal tersebut. Salah satu algoritma tersebut adalah Penjadwalan Prioritas.
PENGERTIAN PENJADWALAN PRIORITAS
Penjadwalan SJF(Shorthest Job First) adalah kasus khusus untuk algoritma penjadwalan Prioritas. Prioritas dapat diasosiasikan masing-masing proses dan CPU dialokasikan untuk proses dengan prioritas tertinggi. Untuk proritas yang sama dilakukan dengan FCFS. Ide penjadwalan prioritas adalah tiap proses diberi prioritas dan proses berprioritas tertinggi running (mendapat jatah waktu pemroses).
Prioritas dapat diberikan secara:
Prioritas statis (static priorities).
Prioritas dinamis (dynamic priorities).
Prioritas Statis
Prioritas statis berarti prioritas tak berubah.
Contoh Penjadwalan Berprioritas
Proses-proses yang sangat banyak operasi masukan/ keluaran (I/ O bound) menghabiskan kebanyakan waktu menuggu selesainya operasi masukan/ keluaran. Proses-proses ini diberi prioritas sangat tinggi sehingga begitu proses memerlukan pemroses segera diberikan, proses akan segera memulai permintaan masukan/ keluaran berikutnya sehingga menyebabkan proses blocked menunggu selesainya operasi masukan/ keluaran. Dengan demikian pemroses dapat dipergunakan proses-proses lain. Proses-proses I/ O bound berjalan parallel bersama proses-proses lain yang benar-benar memerlukan pemroses, sementara proses-proses I/ O bound itu menunggu selesainya operasi DMA.
Proses-proses yang sangat banyak operasi masukan/ keluaran kalau harus menunggu lama untuk memakai pemroses (karena prioritas rendah) hanya akan membebani memori karena harus disimpan tanpa perlu proses-proses itu di memori karena tidak selesai-selesai menunggu operasi masukan dan menunggu jatah pemroses.
ALGORITMA PENJADWALAN PRIORITAS
Adapun algoritma penjadwalam prioritas adalah sebagai berikut :
Setiap proses akan mempunyai prioritas (bilangan integer). Beberapa sistem menggunakan integer dengan urutan kecil untuk proses dengan prioritas rendah, dan sistem lain juga bisa menggunakan integer urutan kecil untuk proses dengan prioritas tinggi. Tetapi dalam teks ini diasumsikan bahwa integer kecil merupakan prioritas tertinggi.
CPU diberikan ke proses dengan prioritas tertinggi (integer kecil adalah prioritas tertinggi). Dalam algoritma ini ada dua skema yaitu :
1. Preemptive: proses dapat di interupsi jika terdapat prioritas lebih tinggi yang memerlukan CPU.
2. Nonpreemptive: proses dengan prioritas tinggi akan mengganti pada saat pemakaian time-slice habis.
SJF adalah contoh penjadwalan prioritas dimana prioritas ditentukan oleh waktu pemakaian CPU berikutnya.
Permasalahan yang muncul dalam penjadwalan prioritas adalah indefinite blocking atau starvation .Kadang-kadang untuk kasus dengan prioritas rendah mungkin tidak pernah dieksekusi. Solusi untuk algoritma penjadwalan prioritas adalah aging. Prioritas akan naik jika proses makin lama menunggu waktu jatah CPU.
ALGORITMA PRIORITAS DINAMIS
Algoritma dituntun oleh keputusan untuk memenuhi kebijaksanaan tertentu yang menjadi tujuan. Algoritma sederhana yang memberi layanan bagus adalah men-set prioritas dengan nilai 1/f dimana f adalah ratio kwanta terakhir yang digunakan proses.
Proses yang menggunakan 2 msec kwanta 100 ms maka prioritasnya 50.
Proses yang berjalan selama 50 ms sebelum blocked berprioritas 2.
Proses yang menggunakan seluruh kwanta berprioritas 1.
Kebijaksanaan yang diterapkan adalah jaminan proses-proses mendapat layanan adil dari pemroses dalam arti jumlah waktu pemroses yang sama.
Kombinasi
Algoritma penjadwalan berprioritas dapat dikombinasikan yaitu mengelompokkan proses-proses menjadi kelas-kelas prioritas. Penjadwalan berprioritas diterapkan antar kelas-kelas prose itu. Penjadwalan round-robin atau FIFO deterapkan pada proses-proses di satu kelas.
Algoritma SJF (Shortest-Job-First) adalah kasus khusus umum algoritma penjadwalan prioritas-prioritas yang terkait dengan setiap proses, dan mengalokasikan CPU untuk proses dengan prioritas tertinggi. Proses prioritas sama dijadwalkan Dalam rangka FCFS( First Come First Serve).
Sebuah algoritma SJF hanyalah sebuah prioritas algoritma di mana prioritas adalah kebalikan dari (berpredikat) CPU berikutnya meledak. CPU yang lebih besar meledak, prioritas yang lebih rendah, dan sebaliknya.
Perhatikan bahwa kita membahas penjadwalan dalam hal prioritas tinggi dan prioritas rendah. Prioritas pada umumnya beberapa tetap kisaran angka, seperti 0 sampai 7, atau 0 sampai 4.095. Namun, tidak ada kesepakatan umum tentang apakah 0 adalah prioritas tertinggi atau terendah. Beberapa sistem menggunakan angka rendah untuk mewakili prioritas rendah penggunaan lainnya nomor rendah untuk prioritas tinggi perbedaan ini dapat menimbulkan kebingungan. Dalam teks ini, kita menggunakan angka yang rendah untuk mewakili prioritas tinggi
Pengertian Komputer
Secara umum Komputer dapat diartikan sebagai alat bantu bagi manusia untuk menyelesaikan pekerjaannya. Perangkat elektronik yang dapat dipakai untuk mengolah data dengan perantaraan sekumpulan program dan mampu memberikan informasi dari hasil pengolahan tersebut. Dalam bahasa indonesia sering ditulis dengan komputer.
Istilah Computer berasal dari kata Compute, yang berarti menghitung. Artinya, setiap proses yang dilaksanakan oleh komputer merupakan proses matematika hitungan. Jadi apapun yang dilakukan oleh komputer, baik penampakan pada layar monitor, suara, gambar, dll. diolah sedemikian rupa dari perhitungan secara elektronik.
Komputer adalah hasil dari kemajuan teknologi elektronika dan informatika yang berfungsi sebagai alat bantu untuk menulis, menggambar, menyunting gambar atau foto, membuat animasi, mengoperasikan program analisis ilmiah, simulasi dan untuk kontrol peralatan.
Bentuk komputer yang dulu cukup besar untuk mengoperasikan sebuah program, sekarang berbentuk kecil dengan kemampuan mengoperasikan program yang beragam. Perlengkapan elektronik (hardware) dan program (perangkat lunak/software) telah menjadikan sebuah komputer menjadi benda yang berguna.
Sebuah komputer yang hanya memiliki perlengkapan elektronik saja atau software saja tidak akan berfungsi. Dengan ada keduanya maka komputer dapat berfungsi menjadi alat yang berguna.
Hubungan Sistem Informasi dengan Teknologi informasi
Sistem informasi adalah aplikasi komputer untuk mendukung operasi dari suatu organisasi: operasi, instalasi, perawatan komputer, perangkat lunak, dan data. sistem Informasi Manajemen adalah kunci dari bidang yang menekankan finansial dan personal manajemen.
Teknologi Informasi dilihat dari kata penyusunnya adalah teknologi dan informasi. Secara mudahnya teknologi informasi adalah hasil rekayasa manusia terhadap proses penyampaian informasi dari bagian pengirim ke penerima sehingga pengiriman informasi tersebut akan:
* lebih cepat
* lebih luas sebarannya, dan
* lebih lama penyimpannya.
Hubungannya sama-sama bergerak di bidang informasi (pengolahan) , dan teknologi informasi merupakan bagian dari sistem informasi. Karena sistem informasi dapat tersusun oleh beberapa teknologi informasi. sehingga apabila teknologi informasi mengalami kerusakan maka mempengaruhi Sistem informasi atau sistem informasi juga akan mengalami gangguan.

