Pedoman Proposal TA

•14 Mei 2012 • Tinggalkan sebuah Komentar

Untuk mahasiswa S-1 Program Studi Teknik Informatika Fakultas Teknik Universitas Suryakancana Cianjur yang akan melaksanakan penelitian Tugas Akhir, mulai tahun ajaran 2011/2012 sebelum melakukan bimbingan diwajibkan untuk menyusun proposal yang harus lolos melalui team review proposal Tugas Akhir Prodi Teknik Informatika melalui sekretris jurusan.
Lolosnya proposal ditentukan oleh beberapa hal, diantaranya :
1. Bukan Jiplakan/Bajakan
2. Masalah belum pernah ada yang mengajukan
3. Kelayakan materi penelitian setara Skripsi
4. Mengikuti Pedoman Penulisan Proposal

Isi Proposal terdiri dari
1. Cover Proposal
2. Lembar Usulan Dosen Pembimbing
3. Isi Proposal
A. Latar Belakang Masalah
Alenia 1 : Teknologi Terkini yg berhubungan dgn masalah
Alenia 2 : Masalah yang akan dibahas dan harap yang diinginkannya
Alenia 3 : Penyelesaian Masalah yang ada di alenia 2 dengan Teknologi yg dibahas di Alenia 1
Alenia 4 : Pemilihan Judul
B. Rumusan Masalah
– Rumusan Masalah
Buat kalimat tanya misalkan “Bagaimana membangun ‘Judul’ yang dapat ‘harapan’ “
C. Maksud dan Tujuan
Maksud adalah “membangun ‘Judul’ yang dapat ‘harapan’ “
Tujuan adalah hal-hal yg diharapkan seandainya produk nanti jadi, seperti yg di alenia 2 LBM tuliskan
D. Batasan Masalah
Tulis beberapa poin yg akan dibahas dan tidak dibahas tapi berhubungan dengan masalah
E. Waktu dan Tempat
Jelaskan dalam Time Schedule penelitian dan tempat penelitian
F. Metodologi Penelitian
Untuk paradigma S/W gambarkan dan tulis sumbernya
G. Daftar Pustaka
Minimal 5 buku yang berhubungan dengan masalah

Untuk dosen Pembimbing yg bisa diusulkan tahun sekarang :
1. Agus Suheri, S.T.,M.Kom
2. Ai Musrifah, S.T., M.Kom
3. Ekra Sanggala, S.T., M.Si
4. Taufan Mahardika, M.T.
5. Ade Supriatna, M.T.,
6. Hendra Sandy, M.T.,
7. Harisson D.S., MT
8. Patah Herwanto, S.T., M.Kom

Untuk Logo gunakan yg terbaru :
Logo Fakultas Teknik Universitas Suryakancana Cianjur
atau
Logo Fakultas Teknik Universitas Suryakancana Cianjur
Dan untuk pedoman silahkan gunakan : PEDOMAN PENULISAN PROPOSAL TUGAS AKHIR 2012
Untuk penulisan Laporan TA silahkan gunakan Pedoman Penulisan TA Pedoman Penulisan Laporan Tugas Akhir 2012

Fungsi DayOf Tanggal di Delphi

•29 Juli 2011 • Tinggalkan sebuah Komentar

Terkadang kita membuat program yang memiliki type data tanggal yang diproses secara matematika untuk mengetahui selesih antar hari, misalkan kita ingin agar peminjam buku akan kena denda jika buku yang dipinjamkan tidak tepat waktu dimana secara rumus matematika
JmlHari = TanggalKembali-ThlTempo
29 = 07/30/2011 – 07/01/2011
Untuk mendapatkan nilai 29 maka kita bisa menggunakan fungsi DayOf(Tanggal), contoh

Form OnActive :
procedure TForm1.FormActivate(Sender: TObject);
begin
Edit1.Text := DateToStr(Now);
end;

procedure TForm1.Button1Click(Sender: TObject);
Var i : Byte;
begin
i := DayOf(Now)-DayOf(DateTimePicker1.Date);
Edit2.Text := Format(‘%d Hari’,[i]);
end;

Variabel i digunakan untuk mengetahui selisih hari dari tanggal hari ini(aktif sistem)-Tanggal yang diambil dengan datetimepicker1.

Nah akhirnya dapatlah program untuk operasi tanggal terutama untuk mencari berapa hari dari operasi matematika type data tanggal dengan menggunakan function DayOf

Sertifikasi Propesionalisme Bidang IT

•16 Mei 2009 • Tinggalkan sebuah Komentar

Sertifikasi dibidang IT sekarang banyak ditawarkan baik pemula, lanjutan ataupun spesialis. Sertifkasi menawarkan “right to tile” dengan menawarkan alternatif pekerjaaan yang akan dibidik yang menyatakan kualifikasi tertentu dibidang teknologi ataupun pekerjaaan.
Dari sekian banyak penawaran sertifikasi kebanyak berorientasi pada penguasaan bidang IT tertentu atau produk yang dibutuhkan di dunia pekerjaan.
Beberapa vendor yang mengeluarkan Sertifikasi diantaranya :
* Microsoft
* CISCO
* Oracle
* Adobe
* IBM
* SUN
dan masih banyak lainnya.
Buat orang Indonesia yang ingin nambah panjang nama bisa ikut sertifikasi, lumayan tambah 3 sampai 4 huruf :) misalkan microsoft dengan sertifikasi berikut : “H.udin, MCP =))”
Untuk apa sih sebenarnya sertifikasi?
ada beberapa keuntungan jika kita ikut sertifikasi selin tambah panjang nama kita :D , dintaranya :
a. Pengakuan Keahlian Bidang
b. Meningkatkan Pencitraan dan Bisnis Perusahaan
c. dll
Lalu siapa aja yang bisa ikutan sertifikasi ini :
a. Akademisi seperti Dosen, Guru
b. Profesional IT
c. Manajer IT
d. orang2 yang berkecimpung di IT
Oya Sertiikasi ICT ini juga mendapat pengakuan Internasional loh dan katanya bayarannya mahal bagi mereka yang punya sertifikasi tersebut. Bagaimana tertarik?
Oya untuk ujian sertifikasi ini dilakukan secara on-line dimana PC-Server akan terkoneksi dengan pihak ke-3 yang menyelenggarakan ujian sertifikasi, misalkan JOBIT.com akan terkoneksi dengan server CISCO sebagai vendor yang mengeluarkan sertifkasi dalam menyediakan pelayanan ujian on-line.

ifikasi MCE Microsoft

ifikasi MCE Microsoft


Contoh Serififakasi Miscrosoft

Contoh Serififakasi Miscrosoft

Jenis Sertifikasi Microsoft
MCP (Microsoft Certified Professional)
Sertifikasi dasar yang diperoleh dengan mengambil 1 ujian mengenai Operating System atau Software Aplikasi.
MCDST(Microsoft Certified Desktop Support Technician)
Keahlian dasar untuk mendukung end-user dalam troubleshooting software dan hardware. Sertifikasi ini cocok untuk Help Desk Technician, Customer Support Representative, PC Support Specialist, atau Technical Support Representative.
MCSA (Microsoft Certified System Administrator)
Seorang MCSA mempunyai keahlian untuk mengelola, mengimplementasi, dan troubleshooting pada platform Windows 2000 termasuk Windows .NET Server. MCSA cocok untuk Network Administrator, Network Engineer, System Administrator, IT Engineer, Network Technician, and Technical Support Specialist, dan dapat diperoleh sebelum MCSE.
MCSE (Microsoft Certified System Engineer)
Sertifikasi MCSE cocok untuk System Engineer, Technical Support Engineer, Network Analyst, Technical Consultant, dll.
MCAD (Microsoft Certified Application Developer)
MCAD ditujukan bagi Analysts/ Programmer atau Software Application Specialist. Seorang MCAD mempunyai keahlian membangun, dan dapat mengatur aplikasi, komponen, web maupun desktop client pada satu departemen dan mengelola back-end data. Dapat diperoleh sebelum MCSD.
MCSD (Microsoft Certified Solution Developer)
MCSD ditujukan bagi para professional yang hendak dan sedang bekerja mendesain dan membangun solusi bisnis tingkat enterprise dengan menggunakan Development Tools Microsoft, platform dalam framework Microsoft .NET. Sertifikasi MCSD cocok untuk Software Engineer, Software Applications Engineer, Software Developer, Technical Consultant.
MCDBA (Microsoft Certified Database Administrator)
Sertifikasi MCDBA ditujukan untuk professional IT yang hendak dan sedang bekerja dalam implementasi dan administrasi SQL Server. MCDBA cocok untuk Database Administrator, Database Analyst, dan Database Developer.
MCP (Microsoft Certified Professional)
Seseorang berhak mendapat sertifikasi MCP setelah lulus minimal 1 (satu) ujian mengenai Sistem Operasi Microsoft maupun Aplikasi Software Microsoft yang masih berlaku.

Reference
1. Presentation. Certification Systems for Professionalism in Information
Technology — Luis Fernández-Sanz, María-José García, UPGRADE is the European Journal for the Informatics Professional, published bimonthly at Vol. VIII, issue No. 3, June 2007
2. http://mugi.or.id/media/p/2041.aspx

Tutorial Hardware

•25 April 2009 • Tinggalkan sebuah Komentar

Praktikum
Perakitan PC

1.Maksud
a.Membangun/merakit Personal Computer
b.Memahami Tahapan Perakitan PC

2.Tujuan Praktikum
a. Memahami Pemasangan Komponen PC
b. Memahami tahapan perakitan PC
c. Pengujian PC

3.Alat dan Bahan
a. Perangkat komputer
b. Obeng mata positif dan Obeng mata Negatif
c. Listrik

4.Instruksi kerja
a. Mahasiswa dibagi dalam beberapa tim / kelompok.
b. Tiap-tiap kelompok disediakan satu perangkat komputer dimana semua komponen dalam keadaan terurai atau terlepas
c. Tahapan Perakitan
1) Menyiapkan Mainboard
2) Pemasangan Processor
3) Pemasangan Memory
4) Pemasangan Pada Casing
5) Instalasi Kabel
6) Pemasangan Drive
7) Pemasangan Komponen pada BUS
8) Pemasangan Keyboard, Mouse, dan Monitor
9) Pemasangan Arus Power Supply
10) Penyelesaian Akhir

1.Penyiapan motherboard
Periksa buku manual motherboard untuk mengetahui posisi jumper untuk pengaturan CPU speed, speed multiplier dan tegangan masukan ke motherboard. Atur setting jumper sesuai petunjuk, kesalahan mengatur jumper tegangan dapat merusak prosessor.

2. Memasang Prosessor
Prosessor lebih mudah dipasang sebelum motherboard menempati casing. Cara memasang prosessor jenis socket dan slot berbeda.Jenis socket
Tentukan posisi pin 1 pada prosessor dan socket prosessor di motherboard, umumnya terletak di pojok yang ditandai dengan titik, segitiga atau lekukan.
Tegakkan posisi tuas pengunci socket untuk membuka.
Masukkan prosessor ke socket dengan lebih dulu menyelaraskan posisi kaki-kaki prosessor dengan lubang socket. rapatkan hingga tidak terdapat celah antara prosessor dengan socket.
Turunkan kembali tuas pengunci.

Memasang Heatsink
Fungsi heatsink adalah membuang panas yang dihasilkan oleh prosessor lewat konduksi panas dari prosessor ke heatsink.Untuk mengoptimalkan pemindahan panas maka heatsink harus dipasang rapat pada bagian atas prosessor dengan beberapa clip sebagai penahan sedangkan permukaan kontak pada heatsink dilapisi gen penghantar panas.Bila heatsink dilengkapi dengan fan maka konektor power pada fan dihubungkan ke konektor fan pada motherboard.

3.Memasang Modul Memori
Modul memori umumnya dipasang berurutan dari nomor socket terkecil. Urutan pemasangan dapat dilihat dari diagram motherboard.Setiap jenis modul memori yakni SIMM, DIMM dan RIMM dapat dibedakan dengan posisi lekukan pada sisi dan bawah pada modul.Cara memasang untuk tiap jenis modul memori sebagai berikut.
Jenis SIMM
Sesuaikan posisi lekukan pada modul dengan tonjolan pada slot.
Masukkan modul dengan membuat sudut miring 45 derajat terhadap slot
Dorong hingga modul tegak pada slot, tuas pengunci pada slot akan otomatis mengunci modul.

Cara memasang modul memory hanya ada satu cara sehingga tidak akan terbalik karena ada lekukan sebagai panduan. Rebahkan kait pengunci pada ujung slot, sesuaikan posisi lekukan pada konektor modul dengan tonjolan pada slot. lalu masukkan modul ke slot. Kemudian Kait pengunci secara otomatis mengunci modul pada slot bila modul sudah tepat terpasang.

4. Memasang Motherboard pada Casing
Motherboard dipasang ke casing dengan sekerup dan dudukan (standoff). Cara pemasangannya sebagai berikut:
1. Tentukan posisi lubang untuk setiap dudukan plastik dan logam. Lubang untuk dudukan logam (metal spacer) ditandai dengan cincin pada tepi lubang.
2. Pasang dudukan logam atau plastik pada tray casing sesuai dengan posisi setiap lubang dudukan yang sesuai pada motherboard.
3. Tempatkan motherboard pada tray casing sehinga kepala dudukan keluar dari lubang pada motherboard. Pasang sekerup pengunci pada setiap dudukan logam.
4. Pasang bingkai port I/O (I/O sheild) pada motherboard jika ada.
5. Pasang tray casing yang sudah terpasang motherboard pada casing dan kunci dengan sekerup.

6. Instalasi Kabel
Beberapa jenis casing sudah dilengkapi power supply. Bila power supply belum disertakan maka cara pemasangannya sebagai berikut:
1. Masukkan power supply pada rak di bagian belakang casing. Pasang ke empat buah sekerup pengunci.
2. HUbungkan konektor power dari power supply ke motherboard. Konektor power jenis ATX hanya memiliki satu cara pemasangan sehingga tidak akan terbalik. Untuk jenis non ATX dengan dua konektor yang terpisah maka kabel-kabel ground warna hitam harus ditempatkan bersisian dan dipasang pada bagian tengah dari konektor power motherboard.
3. Hubungkan kabel daya untuk fan, jika memakai fan untuk pendingin CPU.

Memasang Kabel Motherboard dan Casing
Setelah motherboard terpasang di casing langkah selanjutnya adalah memasang kabel I/O pada motherboard dan panel dengan casing.
1. Pasang kabel data untuk floppy drive pada konektor pengontrol floppy di motherboard
2. Pasang kabel IDE untuk pada konektor IDE primary dan secondary pada motherboard.
3. Untuk motherboard non ATX. Pasang kabel port serial dan pararel pada konektor di motherboard. Perhatikan posisi pin 1 untuk memasang.
4. Pada bagian belakang casing terdapat lubang untuk memasang port tambahan jenis non slot. Buka sekerup pengunci pelat tertutup lubang port lalumasukkan port konektor yang ingin dipasang dan pasang sekerup kembali.
5. Bila port mouse belum tersedia di belakang casing maka card konektor mouse harus dipasang lalu dihubungkan dengan konektor mouse pada motherboard.
6. Hubungan kabel konektor dari switch di panel depan casing, LED, speaker internal dan port yang terpasang di depan casing bila ada ke motherboard. Periksa diagram motherboard untuk mencari lokasi konektor yang tepat.

7.Memasang Drive
Prosedur memasang drive hardisk, floppy, CD ROM, CD-RW atau DVD adalah sama sebagai berikut:
1. Copot pelet penutup bay drive (ruang untuk drive pada casing)
2. Masukkan drive dari depan bay dengan terlebih dahulu mengatur seting jumper (sebagai master atau slave) pada drive.
3. Sesuaikan posisi lubang sekerup di drive dan casing lalu pasang sekerup penahan drive.
4. Hubungkan konektor kabel IDE ke drive dan konektor di motherboard (konektor primary dipakai lebih dulu)
5. Ulangi langkah 1 samapai 4 untuk setiap pemasangan drive.
6. Bila kabel IDE terhubung ke du drive pastikan perbedaan seting jumper keduanya yakni drive pertama diset sebagai master dan lainnya sebagai slave.
7. Konektor IDE secondary pada motherboard dapat dipakai untuk menghubungkan dua drive tambahan.
8. Floppy drive dihubungkan ke konektor khusus floppy di motherboard
9. Sambungkan kabel power dari catu daya ke masing-masing drive.

9. Memasang Komponen Pada BUS
Komponen Card adapter yang umum dipasang adalah video card, sound, network, modem dan SCSI adapter. Video card umumnya harus dipasang dan diinstall sebelum card adapter lainnya. Cara memasang adapter:
Pegang card adapter pada tepi, hindari menyentuh komponen atau rangkaian elektronik. Tekan card hingga konektor tepat masuk pada slot ekspansi di motherboard
Pasang sekerup penahan card ke casing
Hubungkan kembali kabel internal pada card, bila ada.

10. Penyelessaian Akhir
Pasang penutup casing dengan menggeser
sambungkan kabel dari catu daya ke soket dinding.
Pasang konektor monitor ke port video card.
Pasang konektor kabel telepon ke port modem bila ada.
Hubungkan konektor kabel keyboard dan konektor mouse ke port mouse atau poert serial (tergantung jenis mouse).
Hubungkan piranti eksternal lainnya seperti speaker, joystick, dan microphone bila ada ke port yang sesuai. Periksa manual dari card adapter untuk memastikan lokasi port.

Pengujian
Komputer yang baru selesai dirakit dapat diuji dengan menjalankan program setup BIOS. Cara melakukan pengujian dengan program BIOS sebagai berikut:
Hidupkan monitor lalu unit sistem. Perhatikan tampilan monitor dan suara dari speaker.
Program FOST dari BIOS secara otomatis akan mendeteksi hardware yang terpasang dikomputer. Bila terdapat kesalahan maka tampilan monitor kosong dan speaker mengeluarkan bunyi beep secara teratur sebagai kode indikasi kesalahan. Periksa referensi kode BIOS untuk mengetahui indikasi kesalahan yang dimaksud oleh kode beep.
Jika tidak terjadi kesalahan maka monitor menampilkan proses eksekusi dari program POST. ekan tombol interupsi BIOS sesuai petunjuk di layar untuk masuk ke program setup BIOS.
Periksa semua hasil deteksi hardware oleh program setup BIOS. Beberapa seting mungkin harus dirubah nilainya terutama kapasitas hardisk dan boot sequence.
Simpan perubahan seting dan keluar dari setup BIOS.
Setelah keluar dari setup BIOS, komputer akan meload Sistem OPerasi dengan urutan pencarian sesuai seting boot sequence pada BIOS. Masukkan diskette atau CD Bootable yang berisi sistem operasi pada drive pencarian.
Penanganan Masalah
Permasalahan yang umum terjadi dalam perakitan komputer dan penanganannya antara lain:
Komputer atau monitor tidak menyala, kemungkinan disebabkan oleh switch atau kabel daya belum terhubung.
Card adapter yang tidak terdeteksi disebabkan oleh pemasangan card belum pas ke slot/
LED dari hardisk, floppy atau CD menyala terus disebabkan kesalahan pemasangan kabel konektor atau ada pin yang belum pas terhubung. Selamat Mencoba dan Semoga Bermanfaat.
Bagaimana apabila BIOS terproteksi/ di password

6.Pelaporan
Tiap Kelompok membuat laporan dari hasil Perkitan PC yang diamati dan dilakuan, berikan penjelasannya dengan singkat padat dan sebaik-baiknya.

DBT – Transparansi Pada DDBMS – (UNSUR Cianjur)

•17 Desember 2008 • Tinggalkan sebuah Komentar

Pendahuluan

Materi ini digunakan sebagai pengganti Pertemuan di Kelas karena saya berhalangan hadir/Terlambat dikelas pada tanggal Kamis 18 Desember 2008. Materi ini untuk mahasiswa Universitas Suryakancana Cianjur Jurusan Teknik Informatika Kelas Basis Data Terdistribusi  Tahun Akademik Ganjil 2008/2009. Mahasiswa dianggap hadir dikelas jika mengisi komentar dengan NIM, Nama ,dan  Menjawab Tugas.

Control Data Semantic

Sebuah alat yang penting bagi DBMS terpusat maupun terdistribusi, adalah kemampuan untuk mendukung kontrol dar i semantik data. (S emantik = makna dari bahasa, jika SQL maka: makna dari bahasa SQL).

Kontrol semantik data, umumnya terdiri dari (1) manajemen view, (2) control security, (3) kontrol semantik integritas .

Secara informal: Sis tem harus menjamin bahwa user yang berhak (author ized) akan melakukan operasi yang benar (correct) terhadap database, untuk menjaga integritas database.

Manajemen View

Salah satu keuntungan dari model relasional adalah: ia memberikan independensi data sepenuhnya secara logikal. Skema external akan mengijinkan user untuk memiliki view ter tentu dar i database.

Dalam sistem relasional, sebuah view adalah sebuah relasivir tual.

Definisi view: hasil (result) dari sebuah kueri terhadap relasi- relasi dasar (atau relasi real). Hasil (view) ini tidak disimpan dalam database seperti relasi dasar. Sebuah view adalah sebuah jendela dinamik, dalam artian bahwa ia mencerminkan semua update yang dilakukan terhadap database. Disamping pemakaiannya di dalam skema external, view juga berguna untuk menjamin data- security dengan cara yang sederhana. Dengan memilih subset dari database, view dapat menyembunyikan beberapa data.

Jika user mengakses database melalui view, mereka tak dapat melihat atau memanipulas i hidden-data; dengan demikian data akan menjadi secure.

Perhatikan bahwa, dalam sistem DBMS terdistribusi, sebuah view dapat diturunkan dari relasi- relasi terdistribusi. Akses ke sebuah view akan memer lukan eksekusi dari kueri terdistribusi yang berhubungan dengan definisi view ter sebut.

Isu penting dalam DBMS terdistribusi adalah untuk membuat materialisasi view dengan cara yang efisien. Kita akan melihat bagaimana konsep snapshot akan membantu dalam memecahkan masalah ini, tapi ter lebih dulu kita akan berkonsentrasi pada DBMS terpusat.

View dalam DBMS Terpusat

Dalam konteks ini, sebuah view adalah sebuah relasi yang diturunkan dari relasi relasi dasar , sebagai hasil dari sebuah kueri relasional.

View didefinis ikan dengan meng-asosiasikan nama dari view dengan query retrieval

(pengambilan data):

Contoh A :

View dari system-analyst (S YS AN) yang diturunkan dari relasi EMP(ENO, ENAME,

TITLE), dapat didefinisikan sebagai berikut dalam kueri SQL:

CREATE VIEW SYSAN(ENO, ENAME)

AS SELECT ENO, ENAME

FROM EMP

WHERE TITLE = “Syst. Anal.”

SYSAN

ENO ENAME
E2 M.Smith
E5 B.Casey
E8 J.Jones

Tabel Relasi yang berhubungan dengan View SYSAN.

Dengan adanya view, maka yang akan disimpan adalah definisi view di dalam katalog. Dengan demikian, hasil dari kueri yang mendefinisikan view tersebut TIDAK akan diproduksi.

Meskipun demikian, view SYSAN dapat dimanipulasi sebagai sebuah relasi dasar .

Contoh B :

Kueri :

“Carilah nama-nama dari semua system-analyst dengan nomor proyek mereka serta pertanggungjawabannya.” akan melibatkan view SYSAN dan relasi ASG(ENO, PNO, RESP,DUR).

Dapat dinyatakan sebagai:

SELECT ENAME, PNO, RESP

FROM SYSAN, ASG

WHERE SYSAN.ENO = ASG.ENO

Dengan teknik ini:

Ø variabel-variabel diubah untuk dieksekusi terhadap relasi- relasi dasar ,

Ø dan kualifikasi kueri digabungkan (AND) dengan kualifikasi view.

ENO ENAME TITLE
E1 J. Doe Elect.Eng.
E2 L. Chu Elect.Eng.

Tabel. Hasil dari kueri terhadap view ENAME

Update melalui View

View dapat didefinisikan memakai kueri relas ional kompleks sembarang, yang melibatkan: selection, projection, join, aggregate- function, dan lain- lain.

Update melalui view dapat ditangani secara otomatis , hanya jika update terhadap view tersebut dapat dipindahkan menjadi update terhadap relasi dasar secara benar .

Kita dapat mengklasifikasikan view sebagai updatable dan not-updatable. Sebuah view adalah updatable, hanya jika update yang diterapkan terhadap view dapat dipindahkan menjadi update terhadap relasi dasar tanpa ambiguitas .

View SYSAN di atas adalah updatable. Sebagai contoh :

[ insertion dar i sys tem-analys t baru < 201, Smith> ]

akan dapat dipetakan menjadi

[ insertion pegawai baru < 201, Smith, S ys t. Anal.> ]

View berikut adalah not-updatable:

CREATE VIEW EG(ENAME, RESP)

AS SELECT ENAME, RESP

FROM EMP, ASG

WHERE EMP.ENO = ASG.ENO

Sebagai contoh, operasi delete dari tuple < Smith, Analys t> tidak dapat dipindahkan, karena akan menimbulkan ambiguitas .

Relasi yang berhubungan dengan view EG:

EG

ENAME R E S P
J. Doe Manager
M. Smith Analys t
M. Smith Analys t
A. Lee Consultant
A. Lee Engineer
J. Miller Programmer
B. Casey Manager
L. Chu Manager
R. Davis Engineer
J. Jones Manager

Deletion terhadap M. Smith dalam relasi EMP (atribut EMP.ENAME) akan menimbulkan ambuguitas , karena ada dua tuple dalam view.

Demikian juga, deletion terhadap Analyst dalam relasi ASG (atribut ASG.RESP) akan menimbulkan ambiguitas .

Sistem yang ada sekarang, sangat restriktif dalam mendukung update melalui view.

View dapat di-update hanya jika mereka diturunkan dari sebuah relasi tunggal melalui selection atau projection.

Sistem akan menghindari view yang didefinisikan oleh join, aggregate-function, dan lainnya.

(Catatan: view yang diturunkan oleh join, dapat disebut updatable j ika mereka

mencakup key dar i relas i dasar .)

View dalam DBMS Terdistribusi

Definisi view dalam sistem terdistribusi sama dengan definisi view dalam system terpusat. Sebagai tambahan, view dalam sistem terdistribusi dapat diturunkan dari relasi-relasi terfragmentasi yang disimpan pada berbagai lokasi yang berbeda.

Ketika sebuah view didefinisikan, maka nama dan kueri retrieval akan disimpan di

dalam katalog.

Tergantung kepada derajad otonomi dari lokasi yang ditawarkan oleh sistem, maka definisi view dapat dipusatkan dalam satu lokasi, direplikasi secara parsial, atau sepenuhnya direplikasi.

Dalam setiap kasus , informasi yang menghubungkan nama dari view dengan lokasi penyimpan definisinya, harus direplikasi. Jika definisi view tidak ada pada lokasi di mana kueri diawali, maka akan diperlukan remote-access ke lokasi penyimpan definesi view.

Pemetaan dari kueri yang diekspresikan terhadap view menjadi kueri yang diekspresikan terhadap relasi dasar , (yang bisa dalam bentuk terfragmentasi), akan dapat juga dilakukan dengan cara yang sama seperti dalam sistem terpusat, yaitu melalui modifikasi kueri.

Dengan teknik ini, kualifikasi yang mendefinisikan view akan ditemukan dalam katalog database terdistribusi, dan kemudian akan digabungkan dengan kueri, untuk menghasilkan kueri terhadap relasi dasar .

Kueri ini merupakan kueri terdistribusi, yang dapat diproses oleh query-processor terdistribusi Sehingga guery-processor akan melakukan pemetaan dari kueri terdistribusi menjadi kueri terhadap fragmen-fragmen fisik.

Pada kenyataannya, definisi fragmentasi, sangat mirip dengan definisi view. Sebagai

contoh, view SYSAN (Contoh A.) dapat diimplementasikan oleh sebuah fragmen dalam lokasi tertentu. Di mana kebanyakan user mengakses view SYSAN pada lokasi tersebut.

View yang diturunkan dari relasi-relasi terdistribusi, dapat mengakibatkan biaya tinggi ketika dievaluasi. Karena dalam sebuah organisasi tertentu akan banyak user yang mengakses view yang sama, maka beberapa proposal telah dibuat untuk mengoptimisasi penurunan view.

Sebuah solusi alternatif disusun dalam [Adiba and Lindsay, 1980] untuk menghindari penurunan view dengan mempertahankan versi aktual (sebenarnya) dari view, yang

disebut snaps hot .

Sebuah snapshot menyatakan keadaan (state) tertentu dari database. Snapshot bersifat statik, artinya ia tidak merefleksikan update yang dilakukan terhadap relasi dasar .

Snapshot berguna ketika user tidak tertarik secara khusus untuk melihat versi terbaru dari database.

Snapshot diatur sebagai relasi-relasi temporer, dalam arti bahwa mereka hanya memiliki metode akses dengan cara sequential- scanning.

Dengan demikian, sebuah kueri yang diekspresikan terhadap sebuah snapshot, tidak akan memanfaatkan indeks-indeks yang tersedia untuk relasi dasar (snapshot diturunkan dari relasi dasar ini).

Akses melalui snapshot nampaknya lebih cocok untuk kueri-kueri yang memiliki seleksi yang buruk dan akan melakukan scan terhadap keseluruhan snapshot.

Dalam hal ini, sebuah snapshot akan ber tindak seperti sebuah jawaban terhadap kueri yang telah didefinisikan terlebih dulu (predefined).

Snapshot akan perlu direkalkulasi secara periodik. Hal ini dapat dilakukan ketika sistem sedang idle (berhenti sementara). Sebagai tambahan, untuk snapshot yang diturunkan dari selection dan projection, hanya difference yang perlu untuk direkalkulasi [Blakeley etal., 1986].

TRANSPARANSI PADA DDBMS

Merupakan pemisahan dari semantic level tingkat tinggi dari implementasi level rendah. Atau sistem transparansi menyembunyikan rincian implementasi dari user.

dbt1

Tidak mudah dalam menggambarkan tingkat transparansi yang jelas. Dengan adanya transparansi bahasa sebagai lapisan generik, membuat user memiliki akses terhadap data bertingkat tinggi (4th GL, GUI, akses bahasa natural, dll). Bentuk2 transparansi

Data independence Kebebasan data menjadi bentuk dasar transparansi yang terlihat di DBMS. Kebebasan data berarti kekebalan dari aplikasi user untuk mengubah definisi dan organisasi data dan sebaliknya. Definisi data dapat terjadi dalam 2 tahap. Pada satu level, struktur logika dari data dispesifikasikan (schema definition) dan pada level yang lain struktur fisik dari data didefinisikan (physical data description). Ada 2 tipe kebebasan data 1. Kebebasan data secara logic : kekebalan aplikasi user untuk mengubah struktur logika database. Secara umum, jika aplikasi user dioperasikan pada sebuah subset atribut relasi, tidak ada pengaruh yang terjadi jika atribut baru ditambahkan ke relasi yang sama. 2. Kebebasan data secara fisik : berhubungan dengan penyembunyian rincian struktur penyimpanan dari aplikasi user. Saat aplikasi user ditulis, rincian dari  organisasi data secara fisik tidak perlu diperhatikan. Organisasi data apa pun dapat dipakai.

Transparansi jaringan/ terdistribusi Dalam sistem terpusat, hanya satu sumber yang dipelihara user yaitu data (sistem penyimpanan). Dalam manajemen DB terdistribusi, ada sumber kedua yagn perlu dipelihara yaitu jaringan. User perlu dilindungi dari detail operasi jaringan. Tidak perlu ada perbedaan antara aplikasi database yang berjalan di DB terpusat dan DB terdistribusi. Akan baik jika memiliki keseragaman dalam operasi yang diakses. Jika ingin mengkopi sebuah file, perintah yang digunakan seharusnya sama untuk pengkopian dalam satu mesin atau antar mesin yang terhubung dengan jaringan. Sayangnya banyak OS untuk jaringan yang belum menyediakan transparansi ini. cp ; satu mesin rcp ; mesin berbeda Transparansi lokasi merupakan transparansi terhadap perintah yang bebas digunakan pada lokasi data maupun pada sistem dimana operasi berjalan. Transparansi penamaan (naming tranparancy) berarti nama yang unik diberikan ke setiap objek database. Caranya dengan menambahkan nama lokasi (identifier) sebagai bagian dari nama objek. Sistem yang bertanggungjawab memberikan penamaan terhadap objek agar menjadi unik.

Transparansi replikasi Data yang mudah diakses oleh user dapat ditempatkan pada mesin local user seperti mesin user lain dengan akses data yang sama. Jika satu mesin gagal, salinan data masih ada pada lokasi mesin yang lain dalam jaringan. Keputusan direplikasikan atau tidak, dan berapa banyak salinan dari objek database, bergantung pada tingkatan aplikasi user. Tetapi replikasi menyebabkan masalah dalam meng-update DB. Jika apllikasi user berorientasi pada update, sebaiknya tidak perlu ada banyak salinan data.

Transparansi fragmentasi Fragmentasi dapat mengurangi efek negatif dari repllikasi. Setiap salinan tidak merupakan salinan penuh tetapi hanya sebuah subset, jadi ruang yang dibutuhkan lebih sedikit dan item data lebih sedikit untuk dipelihara. Saat objek DB difragment, masalah menangani queri user timbul. Masalah menangani strategi memproses queri berdasarkan fragment dibandingkan relasi meskipun query dibuat kemudian. Bentuk translasi ini disebut sebagai query global ke beberapa query fragment.

Siapa yang menyediakan transparansi Penyediaan transparansi perlu melihat lapisan transparansi. Ada 3 lapisan transparansi yang berbeda yang dapat saling menguntungkan secara eksklusif dalam penyediaan service meskipun lebih sesuai untuk ditinjau sebagai tambahan. Tanggungjawab dalam menyediakan akses data yang transparan  adalah akses lapisan. Transparansi dimulai dari transparansi bahasa yang menterjemahkan service yang diminta ke operasi yang dibutuhkan. Compiler atau interpreter mengambil alih tugas dan tidak ada service transparan disediakan untuk compiler atau interpreter. Lapis kedua adalah transparansi di level sistem operasi. Penyediaan akses transparan ke sumber daya di level OS diperluas ke distribusi, dimana manajemen jaringan diambil alih oleh OS terdistribusi. Sayangnya tidak semua OS memiliki manajemen jaringan ini. Lapis ketiga ada pada DBMS. DBMS bertindak sebagai operasi yang terintegrasi dan sistem manajemen DB. Yang khas adalah pembuatan DBMS pada komputer generalpurpose yang berjalan di beberapa OS. Pada lingkungan ini, transparansi dan dukungan fungsi DB yang disediakan untuk perancang DBMS sangat minimal dan khas ke operasi dasar untuk menjalankan tugas khusus. DBMS bertanggungjawab untuk membuat semua translasi yang berarti dari OS ke interface user yang lebih tinggi.

Tugas

  1. Apa yang dimaksud dengan Transparansi DBMS?
  2. Sebutkan SO yang mendukung DBT?
  3. Apa keuntungan dari Transparansi?
  4. Apa perbedaan View & BDT?
  5. Jelaskan perangkat yang penting bagi DBMS terpusat atau Terdistribusi !

Animasi : Proyek Akhir Animasi (ST-INTEN Bandung)

•17 Desember 2008 • Tinggalkan sebuah Komentar

Pendahuluan

Materi ini digunakan sebagai pengganti Pertemuan di Kelas karena saya berhalangan hadir dikelas pada tanggal 17 Desember 2008. Materi ini untuk mahasiswa ST-INTEN Bandung Jurusan Teknik Informatika Kelas Malam Animasi Tahun Akademik Ganjil 2008/2009. Mahasiswa dianggap hadir dikelas jika mengisi komentar dengan NIM, Nama ,dan  Tugas.

Animasi

Animasi merupakan kumpulan gambar yang diolah sedemikian rupa sehingga menghasilkan gerakan Animasi mewujudkan ilusi (illusion) bagi pergerakkan dengan memaparkan satu urutan gambar yang berubah sedikit demi sedikit (progressively) pada kadar yang tinggi. Jika setiap gambar (dikenali sebagai bingkai – frames) dipapar dengan kecepatan yang tinggi, seseorang melihatnya sebagai pergerakkan. Biasanya 15 – 16 fps (frame per second) cukup untuk mewujudkan ilusi pergerakkan Animasi profesional biasanya menggunakan 24 fps. Teknik animasi awal bagi animasi gambar (picture animation) ialah dengan teknik berasaskan animasi sel. setiap gambar tersendiri diletakkan atas satu latarbelakang dan foto diambil Konsep key-frame dan in-between diguna pelukisan kedudukan objek yang utama dan bingkai2  perantaraan untuk membolehkan pergerakkan. Kemudian komputer diguna bagi animasi gambar dalam beberapa proses langkah animasi sel. Kini, kesemua langkah dalam mewujudkan animasi dapat dibuat oleh komputer dan dikatakan animasi digital Sistem animasi digital kini boleh dilakukan oleh kebanyakkan sistem komputer.

Animasi digunakan untuk memberi gambaran pergerakan bagi sesuatu objek. Ia membolehkan sesuatu objek yang tetap atau statik dapat bergerak dan kelihatan seolah-olah hidup.

Animasi multimedia merupakan proses pembentukan gerak dari berbagai media atau objek yang divariasikan dengan efek-efek dan filter, gerakan transisi, suara-suara yang selaras dengan gerakan animasi tersebut

Animasi di dalam sebuah aplikasi multimedia dapat menjanjikan suatu visual yang lebih dinamik serta menarik kepada penonton kerana ia memungkinkan sesuatu yang mustahil atau kompleks berlaku di dalam kehidupan sebenar direalisasikan di dalam aplikasi tersebut.

Animasi dapat berbentuk dua dimensi, tiga dimensi ataupun melalui pelbagai kesan khas. Walaupun apa juga bentuk animasi yang digunakan, ia mampu menghasilkan perbedaan dalam program yang mendukungnya kerana sifat manusia menyukai sesuatu yang dinamik dan bukannya statik. Walaupun demikian, proses penghasilan animasi bukanlah sesuatu yang dipandang ringan. Diperlukan pengalaman, kemahiran serta kepakaran yang tinggi bagi tujuan penghasilan. Pakar animasi yang juga sering dikenali sebagai animator diperlukan dalam jumlah yang banyak bagi menghasilkan suatu animasi yang berkualiti tinggi. Animasi komputer melanjutkan grafik komputer untuk menambahkan dimensi masa untuk menunjukkan pergerakan (motion)

PRINSIP ANIMASI

  1. SQUASH AND STRETCH
  2. ANTICIPATION
  3. STAGING
  4. STRAIGHT AHEAD ACTION AND POSE TO POSE
  5. FOLLOW THROUGH OVERLAPPING ACTION
  6. SLOW IN AND SLOW OUT
  7. ARCS
  8. SECONDARY ACTION
  9. TIMING
  10. EXAGGERATION
  11. SOLID DRAWING
  12. APPEAL

PRODUK ANIMASI
• 2D ANIMATION

2D animation disebut juga traditional animation.
Industri animasi berkembang dengan pesat setelah dipopulerkan oleh seorang seniman legendaris yang
bernama Walt Disney.
• 3D ANIMATION
Dari animasi 2D, kemudian dikembangkanlah animasi 3D yang diproduksi dengan tambahan bantuan teknologi, seperti perangkat komputer dan perangkat lunak.
• GAMES ANIMATION
Dari animasi 3D, kemudian dikembangkanlah Games animation yang diproduksi dengan penambahan teknologi interaktif.
• DCC (Digital Content Creation)
Dari games animation kemudian berkembang ke Digital Content Creation, misalnya; mobile content.
• Karya Animasi Visual
Selain 3D animation, Games Animation dan DCC, animasi juga dikembangkan untuk kebutuhan visualisasi disain arsitektural, periklanan, dll.

ISI  PRODUK ANIMASI

  1. SENI
  2. TEKNOLOGI
  3. SINEMATOGRAFI
  4. INDUSTRI

PELUANG

  1. POPULASI INDONESIA
  2. BANYAKNYA STASIUN TV
  3. SUDAH ADA PEKERJA ANIMASI
  4. AKSI OUTSOURCING

HAMBATAN

  1. KURANGNYA INFORMASI
  2. STANDARISASI PENDIDIKAN
  3. BERATNYA BEBAN ANIMATOR
  4. PENERAPAN STANDAR GLOBAL
  5. KETIDAK TAHUAN PEMODAL & PERBANKAN

Perkembangan Animasi

Sebelum Masehi

Animasi diperkirakan sudah ada sejak sebelum, bibit animasi sudah tumbuh sejak 2000 SM. Hal ini dibuktikan dengan ditemukannya gambar pada dinding bangunan atau goa yang dibuat secara berurutan yang menceritakan sesuatu. Penemuan gambar pada dinding tentang manusia mesir kuno dalam bentuk komik strip yang menggambarkan urutan gerakan 2 (dua) orang yang sedang bergulat.Leonardo da Vinci dalam sebuah lukisannya menggambarkan suatu seri gambar malaikat Gioto saat akan terbang.

Masa Awal

Masa ini menampilkan animasi sebagai teknik tipuan mata/visual akibat penayangan gambar secara cepat sehingga mata akan melihatnya seperti suatu gerakan.

1826, Joseph Plateau membuat sebuah alat yang disebut Phenakistoscope, yaitu kumpulan kartu dengan gambar berseri yang berbentuk lingkaran dengan celah dipinggirnya. Selanjutnya diletakan pada cermin dan kartu tersebut dutar sehingga akan terlihat gerakan gambar pada celah tersebut.

1828, Paul Rogert mendemontrasikan sebuah piringan yang ditempelkan pada pasak dan pada bagian sisi piring bergambar burung dan yang lainnya gambar sangkar,ketika diputar seolah terlihat burung dalam sangkar. Alat tersebu disebut Thaumatrope.

1860, Pierre Desvignes membuat seri gambar pada selinder yang diputar didalam drum yang dilubangi,sehingga alatnya disebut Selinder

1911, Winsor Mc Cay,kartunis Kanada membuat sebuah film animasi sederhana berjudul “Little Memo” dari sekitar 40.000 gambar yang disusun berdasarkan keinginannya sebagai ekpresi jiwa,sehingga belum memiliki jalan cerita.

1912, Winsor Mc Cay, membuat film animasi yang memiliki jalan cerita dengan judul “The Story of A Mosquito”, yang menceritakan pertemuan nyamuk dan seorang pemabuk.

1913, Raoul Barre dan William Noan membuat promosi pembukaan New York Theather dengan membuat animasi. Kemudian disusul dengan War in Turkey, A Study in Crayon, He Want a dog, The Dachshund and the sausage, Old doc Yak, dan colonel Heeza Liar in Africa.

1914, Winsor Mc Cay membuat animasi pertama dengan karakter yang dikembangakan dengan judul “Gertie The Dinosour”

Colonel Heeza Liar in Africa, dibuat berseri, John R.Bray mematenkan cara penganimasiannya termasuk pembuatan latar yang praktis dan teknik pewarnaan.

Animasi Modern

1920, bermunculan produsen animasi besar seperti Walt Disney, Warner Brother dan Metro Goldwin Meyer

Walt Disney (1923)

Walt dan Ray Disney mendirikan Disney Brother Cartoon Studio di Hollywood, California, yang menghasilkan film pertamanya pada tahun 1924 berjudul “Alice’ day at sea” yang merupakan serial pertama dari film “Alice in Wonderland”. Pada tahun 1927 muncul tokoh Oswald untuk film “Lucky Rabbit” sebanyak 26 seri. Ketika akan dilanjutkan terjadi pembajakan animator Oswald, sehingga Oswald dianggap mati. gantinya muncul Mickey Mouse yang menjadi film animasi pertama yang bersuara.

Warner Brother

Mulai produksi pada tahun 1930 dengan “Bosko The Talk-Ink Kid”,kemudian “Looney Tunes” pada tahun 1935 ditambahkan tokoh baru “Porky Pig”, 1937 “Daffy Duck” “Egg Head” dan Elmer Fudd.

Metro Goldwin Mayer”

Dibentuk tahun 1924, dan mulai produksi 1934 yang mengkhususkan membuat film animasi yang menceritakan tentang binatang yang lucu dan lugu, “The Bear That Couldn’t Sleep” dengan tokoh central Barney Bearm 1940 muncul “Tom and Jerry”

Animasi Komputer

Disney pada tahun 1995 menggunakan CGI (Computer Grafics Interface) dalam pembuatan “Toy Story”

2000, Jepang dengan Final Fantasy – The Spirits Within

Pematenan Tata Cara Penanimasian

Dengan semakin banyaknya pembuatan Film Animasi dengan berbagai keaneka ragaman Metode dan Teknik, maka pemilik atau pembuat Metode atau Teknik untuk melindungi dari pembajakan dibuatkan hak paten terhadap produk yang mereka gunakan atau buat, diantaranya :

John R Bray (1914), Colonel Heeza Liar in Africa, dibuat berseri, John R.Bray mematenkan cara penganimasiannya termasuk pembuatan latar yang praktis dan teknik pewarnaan untuk film “Colonel Heeza in Africa”

Earl Hurd (1914), penggunaan tranparant untuk objek yang bergerak yang nanti disimpan didepan latar berlakan, sehingga latar berlakang tidak perlu digambar ulang, yang disebut dengan “Cels” = “Celluloid” = “Seluloid”

Max Fleicher (1915) mematenkan Rotoscope yang mampu mentransfer gambar ke kertas.

Jenis-jenis Animasi

Berdasarkan gambar yang digerakan :

  • Animasi 2D
  • Animasi 3D
  • Animasi Objek

Berdasarkan metode pengerakan gambar dalam animasi terdiri dari :

  • Animasi Frame
  • Animasi Vektor
  • Animasi Matematika
  • Animasi Morphing

Berdasarkan material yang digunakan adalah sebagai berikut :

  • Animasi Cel
  • Animasi Komputer

Berdasarkan hasil akhir pembuatan animasi dikategorikan sebagai berikut :

  • Full Animasi
  • Semi Animasi

Berdasarkan alur cerita dari animasi terdiri dari :

  • Animasi Linier
  • Animasi Non Linier

Animasi 2D

Objek yang dianimasikan adalah berupa gambar 2D dimana hanya memperlihatkan gambar dengan arah muka saja

Animasi 3D

Objek yang dianimasikan adalah berupa gambar 3D dengan memiliki kedalaman pada objek yang ditampilakan pada gambar.

Animasi Objek

Animasi ini hasilnya hampir sama seperti animasi 3D, namun objek yang digerakan bukan hanya gambar tetapi suatu objek seperti boneka atau bentuk prototype lainnya yang di rekayasa sedemikian rupa.

Animasi Frame

Animasi dengan pergerakan berdasarkan tampilan yang diurutkan gambar yang dianimasikan. Sebagai contoh proyektor film di bioskop dengan kecepatan tayang gambar 24 fps,sebagai nilai batas bawah dimana mata tidak melihat perpindahan gambar antar frame, jika dibawah akan menghasilkan kedipan atau gambar yang terpatah-patah

Animasi Vektor

Animasi dimana pergerakan berdasarkan nilai vektor yang ditentukan berdasarkan pergerakan yang diinginkan, contoh pada Macromedia Flash

Animasi Matematika

Disebut juga Computational Animation,proses pergerakan gambar pada frame dengan menggunakan perhitungan atau rumusan matematis

Animasi Morphing

Animasi dengan pergerakan perubahan atau transisi dari suatu bentuk ke bentuk yang lain dengan menampilkan suatu urutan frame.

Animasi Cel

Menggunakan beberapa teknik grafik yang berlainan pada setiap kerangka frame, Satu menit animasi akan memainkan 1,440 kerangka, Cel berasal dari kertas celluloid yang digunakan untuk lukisan pada setiap kerangka tetapi sekarang digantikan dengan plastik, Animasi cel diawali dengan keyframe untuk sesuatu aksi, Kerangka akan dilukis cara tweening. Tweening untuk  sesuatu aksi memerlukan perkiraan bilangan kerangka di antara keyframe dan rutunan aksi yang akan diambil

Animasi Komputer

Mengrepresentasikan konsep yang sama seperti animasi cel :menggunakan layer, keyframe, tweening. Menggunakan nilai piksel RGB, mengenal pasti bentukan suatu objek dan percampuran warna agar dapat menghasilkan transparencies, inversion dan effect. Digunakan perangkat komputer dalam pembangunannya

Full Animasi

Animasi yang dibangun, secara keseluruhan dihasilkan dari pengambilan gambar yang dibuat dari hasil proses pengambaran.

Semi Animasi

Animasi yang dibangun dengan pengabungan dari hasil pengambilan Live Actions dengan gambar yang dianimasikan.

Animasi Linier

Animasi yang menggunakan alur cerita yang mengalir dari awal sampai akhir tanpa ada kondisi yang merubah alur cerita.

Animasi Non-Linier

Animasi dengan alur cerita yang diputuskan oleh suatu kondisi pilihan yang mengakibatkan alur cerita untuk setiap penayangan dapat berbeda-beda.

Mamfaat Animasi

Animasi pada saat ini banyak dimanfaatkan untuk berbagai kebutuhan dalam berbagai kegiatan dari mulai kegiatan santai sampai serius, dari mulai sebagai fungsi utama sampai fungsi tambahan atau hiasan. Animasi dibangun berdasarkan manfaatnya sebagai perantara atau media yang digunakan untuk berbagai kebutuhan di antaranya :

  • Media Hiburan
  • Media Presentasi
  • Media Iklan/Promosi
  • Media Ilmu Pengetahuan
  • Media Bantu/Tools
  • Media Pelengkap

Media Hiburan

Animasi digunakan untuk menghibur penonton atau pengguna animasi tersebut, sehingga memberikan kepuasan. Animasi sebagai media hiburan biasanya digarap dengan sangat serius karena sebagai produk dagangan yang memiliki harga jual. Sebagai media hiburan, animasi digarap sebagai project.

Contoh Film, Video Klip, Games dll

Media Presentasi

Animasi digunakan untuk membuat menarik perhatian para auden atau peserta presentasi terhadap materi yang disampaikan oleh presenter. Dengan penambahan animasi pada media presentasi membawa suasana presentasi menjadi tidak kaku. Dengan penambahan animasi diharapkan dapat tercapai penyampaian informasi atau terjadinya komunikasi yang baik dalam kegiatan presentasi.

Fungsi animasi dalam presentasi diantaranya :

  • Menarik Perhatian dengan adanya pergerakan dan suara yang selaras
  • Memperindah tampilan presentasi
  • Memudahkan susunan presentasi
  • Mempermudah penggambaran dari suatu materi

Media Iklan/Promosi

Animasi sebagai media iklan atau promosi dibangun sedemikian rupa agar pemirsa atau penonton tertarik untuk membeli atau memiliki atau mengikuti apa yang disampaikan dalam alur cerita dari animasi tersebut.

Contoh :

  • Iklan Produk
  • Penyuluhan Kesehatan
  • Iklan Layanan Masyarakat

Media Ilmu Pengetahuan

Animasi memiliki kemampuan untuk dapat memaparkan sesuatu yang rumit atau komplek atau sulit untuk dijelaskan dengan hanya gambar atau kata-kata saja. Dengan kemampuan ini maka animasi dapat digunakan untuk menjelaskan suatu materi yang secara nyata tidak dapat terlihat oleh mata, dengan cara melakukan visualisasi maka materi yang dijelaskan dapat tergambarkan. Selain itu animasi sebagai media Ilmu Pengetahuan dapat dijadikan sebagai perangkat ajar yang siap kapan saja untuk mengajarkan materi yang telah dianimasikan, terutama dengan adanya teknologi interaktif pada saat ini baik melalui perangkat komputer ataupun perangkat elektronik lainnya.Pada Perangkat Komputer media ini dikenal dengan istilah CAI atau Computer-Aided Intruction atau Computer-Assisted Intruction.

Contoh :

  • Animasi Dokumenter Dinosourus
  • Pembelajaran Fisika
  • Pembelajaran Shalat dan Cara Baca Al-Qur’an
  • Perjalanan Dalam Dunia Maya
  • Ensiklopedi Jagat Raya
  • Darah Dalam Tubuh Manusia

Media Bantu/Tools

Animasi sebagai media bantu atau tools digunakan sebagai perangkat penuntun atau petunjuk dalam melakukan sesuatu. Sebagai media bantu, animasi akan terlihat menonjol atau memberikan daya tarik atau memunculkan fokus baru terhadap sesuatu yang perlu dibantu.

Contoh :

  • Pedoman Penggunaan TV dan Alat Elektronic
  • Petunjuk cara penggunaan Aplikasi
  • Petunjuk Tata Cara Penggunaan Produk

Media Pelengkap

Animasi digunakan sebagai pelengkap atau tambahan atau hiasan pada suatu tampilan yang digunakan untuk mempercantik atau menarik pada objek yang ditampilkan.

Contoh :

  • Tombol Animasi
  • Banner
  • Bingkai/Frame
  • Tulisan

Istilah Animasi

Tata Bahasa

  • Transisi
  • Squence
  • Scene

Macam Rangkaian Gambar

  • Cut
  • Fade-In
  • Fade-Out
  • Disolve
  • Double Explosure
  • Super-Impose
  • Pop On
  • Spin
  • Flip
  • Iris
  • Wipes

Gerakan dengan permainan Kamera

  • Close Up
  • Zoom In
  • Zoom Out
  • Panning

Pengaruh Waktu

  • Rangkaian Logika
  • Kehalusan

Aspek Proses Kerja Pembuatan Animasi

  • Produk
    • Guna, Untuk mengetahui kearah mana cerita itu ditujukan dan digerkan dimana lingkungan pemakainya
    • Bentuk, Bentuk produknya
    • Keistimewaan, Memberikan ciri khas
  • Pelihat, Sasaran dari produk yang diciptakan criteria yang cocok.
  • Media

Tahapan

  1. Script
  2. Storyboard
  3. Workbook
  4. Pembuatan dan pengambilan gambar
  5. Penyuntingan
  6. Dubbing
  7. Copy Negative
  8. Master

Karakter & Script

Karakter

Dalam pembuatan animasi diperlukan karakter, dimana karakter sebagai pemeran dalam cerita animasi. Karakter dalam animasi dibuat harus mampu untuk mengekpresikan berbagai macam dalam gerakan. Karakter diharapkan mudah dikenali dan mudah dalam penggambaran sehingga akan menghemat dalam proses pekerjaan. Setiap garis yang digambarkan dalam karakter adalah sejumlah besar pekerjaan dalam pembuatan animasi. Pemberian garis pada karakter harus memberikan guna didalam pembentukan kepribadian karakter. Hal tersebut harus dapat dinilai secara editorial dan emosional.

Karakter diberi bentuk harus melalui perencanaan, sehingga mereka dapat mudah dikenali baik secara visual ataupun dalam proses penggambaran pada segala posisi dalam ruang dengan cepat dan mudah. Oleh karena itu karakter harus dibentuk dalam suatu geometrik yang solid dan sederhana, serta mempunyai porsi yang tetap, yang mudah diingat dan ditiru seberapa besar pun ukurannya.

Dengan bentuk sederhana karakter yang dibuat akan mudah dikenali, sehingga akan memunculkan suatu kepribadian. Kepribadian tersebut akan muncul dengan menempelkan beberapa bentuk dibeberapa tempat.

Ide cerita dari keseluruhan cerita dimana karakter akan beraksi secara lebih teliti harus direncanakan cerita sejelas mungkin, sehingga dapat dimengerti keseluruhan adegan, dan pecahan-pecahan didalam scene yang terpisah, termasuk background dimana setiap scene akan dimainkan.

Apabila script telah tersusun secara lengkap dan siap untuk dilaksanakan setiap team sudah dapat memilih scene yang sesuai dan mulai membuat animasinya tanpa harus berurutan.

Script

Kerangka, dimana film tersebut dibangun, dan produksi sebaiknya tidak dimulai sebelum setiap detil dari script dibicarakan dengan matang.

Dalam thema cerita hendaknya sesederhana mungkin, yang memungkinkan pengungkapan yang hanya dengan aktion saja. Segala situasi yang memaksa karakter untuk tetap diam saja, atau bergerak secara terbatas hendaknya dihindari.

Kelemahan umum pada pemula adalah tertimbunnya ide-ide yang mengakibatkan cerita menjadi simpang siur. Cerita seharusnya mengalir dengan halus dengan cara memecah script menjadi beberapa scene, dimana diperlukan kontinuitas dalam pergantian scene. Scene yang disusun dengan baik dalam rangka yang besar akan menjadi Storyboard, dimana nantinya cerita akan mudah untuk dikritik serta diceri kelemahannya, sehingga akan dapat diperbaiki sebelum pembuatan gambar akhir dalam setiap scene. Scene yang halus akan selalu saling sambung menyambung, merupakan sesuatu yang penting didalam menjaga kontinuitas, dan harus direncanakan dengan teliti didalam script.

Contoh Format Script :

Ide cerita               :

Produk                   :

Media                     :

Judul                      :

Durasi                    :  …. detik

Karakter/Pemain

Sinopsis/prolog (Kilasan cerita)

Storyboard

Format 1

Scene n                 : …..

Durasi                    : …..    detik (1 detik = 24 Frame )

Frame                    :

Suara                     :

Action                     : nama gerakan, potongan cerita

Atau

Storyboard

Format 2

Scene Aktion Durasi(Detik) Frame Suara
1 Long Shot, Anjing berlari menggigit sepucuk surat dijalan dengan suasana pagi hari 4 96 Kicau burung
2 Shot lebih dekat, anjing lari kearah pintu rumah 2 48 Derap langkah kaki
3 Zoom-out, Pintu rumah 2 48
4 Cut, Surat terjatuh dilantai 2 48 Dentuman surat jatuh
5 Zoom-out, Tulisan surat 2 48
6 Fade Out 1 24

Tugas

1.       Tugas dikerjakan secara berkelompok maksimal 3 mahasiswa

2.       Setiap kelompok mencantumkan anggotanya pada daftar peserta tugas animasi

3.       Tugas I membuat Proposal pembuatan Tugas Besar dengan isi proposal ditentukan sebagai berikut :

a.       Cover Proposal

b.       Latar Belakang, alasan pemilihan judul

c.        Maksud & Tujuan, berdasarkan Aspek pembuatan animasi komponen produk & penonton

d.       Perangkat Pendukung, jelaskan perangkat yang akan digunakan

e.       Metode Penyelesaian

f.         Script Animasi

I.      Judul

II.      Ide Cerita (Pilih Salah Satu)

  1. Iklan
    1. ST-INTEN
    2. INFORMATIKA
  2. Pendidikan
    1. Tutorial
    2. e-Book
    3. Proses Belajar Sesuatu
  3. Hiburan
    1. Cerita Singkat
    2. Klip Lagu
    3. Games
  4. Layanan Masyarakat
    1. Anti Narkoba
    2. Bahaya DBD
    3. Awas Banjir
    4. Waspada Bencana Alam
    5. Bahaya Merokok

    III.      Media

IV.      Durasi Minimal 5 Menit

V.      Karakter (Gambar)

VI.      Sinopsis

VII.      Storyboard terdiri dari :

1.       Squence

2.       Scene – Cut (Format Action : Nama Gerakan, Deskripsi)

Sistem Operasi : Proses Pada Sistem Operasi

•17 Desember 2008 • Tinggalkan sebuah Komentar

Pendahuluan

Materi ini digunakan sebagai pengganti Pertemuan di Kelas karena saya berhalangan hadir dikelas pada tanggal 17 Desember 2008. Materi ini untuk mahasiswa ST-INTEN Bandung Jurusan Teknik Informatika Kelas Malam Sistem Operasi Tahun Akademik Ganjil 2008/2009. Mahasiswa dianggap hadir dikelas jika mengisi komentar dengan NIM, Nama, dan Jawaban Pertanyaan atau Komentar.<!–[if gte mso 9]> Normal 0 false false false MicrosoftInternetExplorer4 <![endif]–><!–[if gte mso 9]> <![endif]–> Paling Lambat 24 Desember 2008.<!–[endif]–>

Tujuan

  • Memahami konsep dasar dan definisi dari proses
  • Menjelaskan keadaan/status proses
  • Memahami Process Control Block
  • Memahami operasi-operasi Proses
  • Memahami Hubungan antar Proses

Proses

Satu diskusi mengenai sistem operasi yaitu bahwa ada sebuah pertanyaan mengenai untuk apa menyebut semua aktivitas CPU. Sistem batch mengeksekusi jobs, sebagaimana suatu sistem time-shared telah menggunakan program pengguna, atau tugas-tugas/pekerjaan-pekerjaan. Bahkan pada sistem tunggal, seperti Microsoft Windows dan Macintosh OS, seorang pengguna mampu untuk menjalankan beberapa program pada saat yang sama: sebuah Word Processor, Web Browser, dan paket e-mail. Bahkan jika pengguna dapat melakukan hanya satu program pada satu waktu, sistem operasi perlu untuk mendukung aktivitas program internalnya sendiri, seperti managemen memori. Dalam banyak hal, seluruh aktivitas ini adalah serupa, maka kita menyebut seluruh program itu proses-proses (processes).

Istilah job dan proses digunakan hampir dapat dipertukarkan pada tulisan ini. Banyak teori dan terminologi sistem-operasi dikembangkan selama suatu waktu ketika aktivitas utama sistem operasi adalah job processing. Akan menyesatkan untuk menghindari penggunaan istilah umum yang telah diterima bahwa memasukkn kata job (seperti penjadualan job) hanya karena proses memiliki job pengganti/ pendahulu.

Konsep Dasar dan Definisi Proses

Secara informal; proses adalah program dalam eksekusi. Suatu proses adalah lebih dari kode program. Proses termasuk aktivitas yang sedang terjadi, sebagaimana digambarkan oleh nilai pada program counter dan isi dari daftar prosesor/ processor’s register. Suatu proses umumnya termasuk process stack, yang berisikan data temporer (seperti parameter metoda, address yang kembali, dan variabel lokal) dan sebuah data section, yang berisikanvariabel global.

Program itu bukanlah sebuah proses; suatu program adalah satu entitas pasif; seperti isi dari sebuah berkas yang disimpan didalam disket, sebagaimana sebuah proses dalam suatu entitas aktif, dengan sebuah program counter yang mengkhususkan pada instruksi selanjutnya untuk dijalankan dan seperangkat sumber daya/ resource yang berkenaan dengannya.

Walau dua proses dapat dihubungkan dengan program yang sama, program tersebut dianggap dua urutan eksekusi yang berbeda. Sebagai contoh, beberapa pengguna dapat menjalankan copy yang berbeda pada mail program, atau pengguna yang sama dapat meminta banyak copy dari program editor. Tiap-tiap proses ini adakah proses yang berbeda dan walau bagian tulisan-text adalah sama, data section bervariasi. Juga adalah umum untuk memiliki proses yang menghasilkan banyak proses begitu ia bekerja.


Keadaan Proses

Sebagaimana proses bekerja, maka proses tersebut merubah state (keadaan statis/ asal). Status dari sebuah proses didefinisikan dalam bagian oleh aktivitas yang ada dari proses tersebut. Tiap proses mungkin adalah satu dari keadaan berikut ini:

  • New: Proses sedang dikerjakan/ dibuat.
  • Running: Instruksi sedang dikerjakan.
  • Waiting: Proses sedang menunggu sejumlah kejadian untuk terjadi (seperti sebuah penyelesaian I/Oatau penerimaan sebuah tanda/ signal).
  • Ready: Proses sedang menunggu untuk ditugaskan pada sebuah prosesor.
  • Terminated: Proses telah selsesai melaksanakan tugasnya/ mengeksekusi.

Nama-nama tersebut adalah arbitrer/ berdasar opini, istilah tersebut bervariasi disepanjang sistem operasi. Keadaan yang mereka gambarkan ditemukan pada seluruh sistem. Namun, sistem operasi tertentu juga lebih baik menggambarkan keadaan/ status proses. Adalah penting untuk menyadari bahwa hanya satu proses dapat berjalan pada prosesor mana pun pada waktu kapan pun. Namun, banyak proses yang dapat ready atau waiting. Keadaan diagram yang berkaitan dangan keadaan tersebut dijelaskan pada Gambar 1.

Keadaan Proses

Gambar 1  Keadaan Proses

Process Control Block

Tiap proses digambarkan dalam sistem operasi oleh sebuah process control block (PCB) – juga disebut sebuah control block. Sebuah PCB ditunjukkan dalam Gambar 2. PCB berisikan banyak bagian dari informasi yang berhubungan dengan sebuah proses yang spesifik, termasuk ini:

  • Keadaan proses: Keadaan mungkin, new, ready, running, waiting, halted, dan juga banyak lagi.
  • Program counter: Counter mengindikasikan address dari perintah selanjutnya untuk dijalankan untuk proses ini.
  • CPU register: Register bervariasi dalam jumlah dan jenis, tergantung pada rancangan komputer.
  • Register tersebut termasuk accumulator, index register, stack pointer, general-puposes register, ditambah code information pada kondisi apa pun. Besertaan dengan program counter, keadaan/ status informasi harus disimpan ketika gangguan terjadi, untuk memungkinkan proses tersebut berjalan/bekerja dengan benar setelahnya (lihat Gambar 2-3).
  • Informasi managemen memori: Informasi ini dapat termasuk suatu informasi sebagai nilai dari dasar dan batas register, tabel page/ halaman, atau tabel segmen tergantung pada sistem memori yangdigunakan oleh sistem operasi (lihat Bab 4).
  • Informasi pencatatan: Informasi ini termasuk jumlah dari CPU dan waktu riil yang digunakan, batas waktu, jumlah akun, jumlah job atau proses, dan banyak lagi.
  • Informasi status I/O: Informasi termasuk daftar dari perangkat I/O yang di gunakan pada proses ini, suatu daftar open berkas dan banyak lagi.
  • PCB hanya berfungsi sebagai tempat menyimpan/ gudang untuk informasi apa pun yang dapat bervariasi dari prose ke proses.

gbr2-3

Threads

Model proses yang didiskusikan sejauh ini telah menunjukkan bahwa suatu proses adalah sebuah program yang menjalankan eksekusi thread tunggal. Sebagai contoh, jika sebuah proses menjalankan sebuah program Word Processor, ada sebuah thread tunggal dari instruksi-instruksi yang sedang dilaksanakan.

Kontrol thread tunggal ini hanya memungkinkan proses untuk menjalankan satu tugas pada satu waktu. Banyak sistem operasi modern telah memiliki konsep yang dikembangkan agar memungkinkan sebuah proses untuk memiliki eksekusi multithreads, agar dapat dapat secara terus menerus mengetik dalam karakter dan menjalankan pengecek ejaan didalam proses yang sama. Maka sistem operasi tersebut memungkinkan proses untuk menjalankan lebih dari satu tugas pada satu waktu.

Penjadualan Proses

Tujuan dari multiprogramming adalah untuk memiliki sejumlah proses yang berjalan pada sepanjang waktu, untuk memaksimalkan penggunaan CPU. Tujuan dari pembagian waktu adalah untuk mengganti CPU diantara proses-proses yang begitu sering sehingga pengguna dapat berinteraksi dengan setiap program sambil CPU bekerja. Untuk sistem uniprosesor, tidak akan ada lebih dari satu proses berjalan. Jika ada proses yang lebih dari itu, yang lainnya akan harus menunggu sampai CPU bebas dan dapat dijadualkan kembali.

Penjadualan Antrian

Ketika proses memasuki sistem, mereka diletakkan dalam antrian job. Antrian ini terdiri dari seluruh proses dalam sistem. Proses yang hidup pada memori utama dan siap dan menunggu/ wait untuk mengeksekusi disimpan pada sebuah daftar bernama ready queue. Antrian ini biasanya disimpan sebagai daftar penghubung. Sebuah header ready queue berisikan penunjuk kepada PCB-PCB awal dan akhir. Setiap PCB memiliki pointer field yang menunjukkan proses selanjutnya dalam ready queue.

Juga ada antrian lain dalam sistem. Ketika sebuah proses mengalokasikan CPU, proses tersebut berjalan/bekerja sebentar lalu berhenti, di interupsi, atau menunggu suatu kejadian tertentu, seperti penyelesaian suatu permintaan I/O. Pada kasus ini sebuah permintaan I/O, permintaan seperti itu mungkin untuk sebuah tape drive yang telah diperuntukkan, atau alat yang berbagi, seperti disket. Karena ada banyak proses dalam sistem, disket bisa jadi sibuk dengan permintaan I/O untuk proses lainnya. Maka proses tersebut mungkin harus menunggu untuk disket tersebut. Daftar dari proses yang menunggu untuk peralatan I/O tertentu disebut sebuah device queue. Tiap peralatan memiliki device queuenya sendiri (Lihat Gambar 2-4).

antrianGambar 4. Device Queue.

Reprensentasi umum untuk suatu diskusi mengenai penjadualan proses adalah diagram antrian, seperti pada Gambar 2-5. Setiap kotak segi empat menunjukkan sebuah antrian. Dua tipe antrian menunjukan antrian yang siap dan suatu perangkat device queues. Lingkaran menunjukkan sumber-sumber yang melayani sistem. Sebuah proses baru pertama-tama ditaruh dalam ready queue. Lalu menunggu dalam ready queue sampai proses tersebut dipilih untuk dikerjakan/lakukan atau di dispatched. Begitu proses tersebut mengalokasikan CPU dan menjalankan/ mengeksekusi, satu dari beberapa kejadian dapat terjadi.

  • Proses tersebut dapat mengeluarkan sebuah permintaan I/O, lalu di tempatkan dalam sebuah antrian I/O.
  • Proses tersebut dapat membuat subproses yang baru dan menunggu terminasinya sendiri.
  • Proses tersebut dapat digantikan secara paksa dari CPU, sebagai hasil dari suatu interupsi, dan diletakkan kembali dalam ready queue.

diagram-antrianGambar 5. Diagram Antrian.

Dalam dua kasus pertama, proses akhirnya berganti dari waiting state menjadi ready state, lalu diletakkan kembali dalam ready queue. Sebuah proses meneruskan siklus ini sampai berakhir, disaat dimana proses tersebut diganti dari seluruh queue dan memiliki PCB nya dan sumber-sumber/ resources dialokasikan kembali.

Penjadual / Scheduler

Sebuah proses berpindah antara berbagai penjadualan antrian selama umur hidupnya. Sistem operasi harus memilih, untuk keperluan penjadualan, memproses antrian-antrian ini dalam cara tertentu. Pemilihan proses dilaksanakan oleh penjadual yang tepat/ cocok. Dalam sistem batch, sering ada lebih banyak proses yang diserahkan daripada yang dapat dilaksanakan segera. Proses ini dipitakan/ disimpan pada suatu alat penyimpan masal (biasanya disket), dimana proses tersebut disimpan untuk eksekusi dilain waktu. Penjadualan long term, atau penjadual job, memilih proses dari pool ini dan mengisinya kedalam memori eksekusi.

Sebuah proses dapat mengeksekusi untuk hanya beberapa milidetik sebelum menunggu permintaan I/O. Seringkali, penjadualan shorterm mengeksekusi paling sedikit sekali setiap 100 milidetik. Karena durasi waktu yang pendek antara eksekusi, penjadualan shorterm haruslah cepat. Jika memerlukan 10 mili detik untuk menentukan suatu proses eksekusi selama 100 mili detik, maka 10/(100 + 10) = 9 persen CPU sedang digunakan (terbuang) hanya untuk pekerjaan penjadualan.

Penjadualan longterm pada sisi lain, mengeksekusi jauh lebih sedikit. Mungkin ada beberapa menit antara pembuatan proses baru dalam sistem. Penjadualan longterm mengkontrol derajat multiprogramming (jumlah proses dalam memori). Jika derajat multiprogramming stabil, lalu tingkat rata-rata dari penciptaan proses harus sama dengan tingkat kepergian rata rata dari proses yang meninggalkan sistem. Maka penjadualan longterm mungkin diperlukan untuk dipanggil hanya ketika suatu proses meninggalkan sistem. Karena interval yang lebih panjang antara eksekusi, penjadualan longterm dapat memakai waktu yang lebih lama untuk menentukan proses mana yang harus dipilih untuk dieksekusi.

Adalah penting bagi penjadualan longterm membuat seleksi yang hati-hati. Secara umum, kebanyakan proses dapat dijelaskan sebagai I/O bound atau CPU bound. Sebuah proses I/O bound adalah salah satu yang membuang waktunya untuk mengerjakan I/O dari pada melakukan perhitungan. Suatu proses CPU-bound, pada sisi lain, adalah salah satu yang jarang menghasilkan permintaan I/O, menggunakan lebih banyak waktunya melakukan banyak komputasi daripada yang digunakan oleh proses I/O bound. Penting untuk penjadualan longterm memilih campuran proses yang baik antara proses I/O bound dan CPU bound. Jika seluruh proses adalah I/O bound, ready queue akan hampir selalu kosong, dan penjadualan short term akan memiliki sedikit tugas. Jika seluruh proses adalah CPU bound, I/O waiting queue akan hampir selalu kosong, peralatan akan tidak terpakai, dan sistem akan menjadi tidak imbang. Sistem dengan kinerja yang terbaik akan memiliki kombinasi proses CPU bound dan I/O bound.

antrian-2

Gambar 6. Penjadual Medium-term.

Pada sebagian sistem, penjadual long term dapat tidak turut serta atau minimal. Sebagai contoh, sistem time-sharing seperti UNIX sering kali tidak memiliki penjadual long term. Stabilitas sistem-sistem ini bergantung pada keterbatasan fisik (seperti jumlah terminal yang ada) atau pada penyesuaian sendiri secara alamiah oleh manusia sebagai pengguna. Jika kinerja menurun pada tingkat yang tidak dapat diterima, sebagian pengguna akan berhenti.

Sebagian sistem operasi, seperti sistem time sharing, dapat memperkenalkan sebuah tambahan, penjadualan tingkat menengah. Penjadual medium-term ini digambarkan pada Gambar 2-5. Ide utama/kunci dibelakang sebuah penjadual medium term adalah kadang kala akan menguntungkan untuk memindahkan proses dari memori (dan dari pengisian aktif dari CPU), dan maka untuk mengurangi derajat dari multiprogramming. Dikemudian waktu, proses dapat diperkenalkan kedalam memori dan eksekusinya dapat dilanjutkan dimana proses itu di tinggalkan/ diangkat. Skema ini disebut swapping. Proses di swapped out, dan lalu di swapped in, oleh penjadual jangka menengah. Swapping mungkin perlu untuk meningkatkan pencampuran proses, atau karena suatu perubahan dalam persyaratan memori untuk dibebaskan. Swapping dibahas dalam Bagian 4.2.

Alih Konteks / Switch Context

Mengganti CPU ke proses lain memerlukan penyimpanan suatu keadaan proses lama (state of old process) dan kemudian beralih ke proses yang baru. Tugas tersebut diketahui sebagai alih konteks (context switch). Alih konteks sebuah proses digambarkan dalam PCB  suatu proses; termasuk nilai dari CPU register, status proses (lihat Gambar 2-7). dan informasi managemen memori. Ketika alih konteks terjadi, kernel menyimpan konteks dari proses lama kedalam PCB nya dan mengisi konteks yang telah disimpan dari process baru yang telah terjadual untuk berjalan. Pergantian waktu konteks adalah murni overhead, karena sistem melakukan pekerjaan yang tidak perlu. Kecepatannya bervariasi dari mesin ke mesin, bergantung pada kecepatan memori, jumlah register yang harus di copy, dan keberadaan instruksi khusus (seperti instruksi tunggal untuk mengisi atau menyimpan seluruh register). Tingkat kecepatan umumnya berkisar antara 1 sampai 1000 mikro detik

gbr7Gambar 7. Alih Konteks.

Waktu alih konteks sangat begantung pada dukungan perangkat keras. Sebagai contoh, prosesor seperti UltraSPARC menyediakan dua rangkap register. Sebuah alih konteks hanya memasukkan perubahan pointer ke perangkat register yang ada. Tentu saja, jika ada lebih proses-proses aktif yang ada dari pada yang ada di perangkat register, sistem menggunakan bantuan untuk meng-copy data register pada dan dari memori, sebagaimana sebelumnya. Semakin sistem operasi kompleks, makin banyak pekerjaan yang harus dilakukan selama alih konteks. Sebagaimana dilihat pada Bab 4, teknik managemen memori tingkat lanjut dapat mensyaratkan data tambahan untuk diganti dengan tiap konteks. Sebagai contoh, ruang alamat dari proses yang ada harus dijaga sebagai ruang pada pekerjaan berikutnya untuk digunakan. Bagaimana ruang alamat di jaga, berapa banyak pekerjaan dibutuhkan untuk menjaganya, tergantung pada metoda managemen memori dari sistem operasi. Sebagaimana akan kita lihat pada Bab 4, alih konteks telah menjadi suatu keharusan, bahwa programmer menggunakan struktur (threads) untuk menghindarinya kapan pun memungkinkan.

gbr8

Gambar 8. Pohon Proses.

Operasi-Operasi Pada Proses

Proses dalam sistem dapat dieksekusi secara bersama-sama, proses tersebut harus dibuat dan dihapus secara dinamis. Maka, sistem operasi harus menyediakan suatu mekanisme umtuk pembuatan proses dan terminasi proses.

gbr9

Gambar 9. Operasi pada Proses.

Pembuatan Proses

Suatu proses dapat membuat beberapa proses baru, melalui sistem pemanggilan pembuatan proses, selama jalur eksekusi. Pembuatan proses dinamakan induk proses, sebagaimana proses baru disebut anak dari proses tersbut. Tiap proses baru tersebut dapat membuat proses lainnya, membentuk suatu pohon proses (lihat Gambar 2-7).

Secara umum, suatu proses akan memerlukan sumber tertentu (waktu CPU, memori, berkas, perangkat I/O) untuk menyelesaikan tugasnya. Ketika suatu proses membuat sebuah subproses, sehingga subproses dapat mampu untuk memperoleh sumbernya secara langsung dari sistem operasi. Induk mungkin harus membatasi sumber diantara anaknya, atau induk dapat berbagi sebagian sumber (seperti memori berkas) diantara beberapa dari anaknya. Membatasi suatu anak proses menjadi subset sumber daya induknya mencegah proses apa pun dari pengisian sistem yang telalu banyak dengan menciptakan terlalu banyak subproses.

Sebagai tambahan pada berbagai sumber fisik dan logis bahwa suatu proses diperoleh ketika telah dibuat, data pemula (masukan) dapat turut lewat oleh induk proses sampai anak proses. Sebagai contoh, anggap suatu proses yang fungsinya untuk menunjukkan status sebuah berkas, katakan F1, pada layar terminal.

Ketika dibuat, akan menjadi sebagai sebuah masukan dari proses induknya, nama dari berkas F1, dan akan mengeksekusi menggunakan kumpulan data tersebut untuk memperoleh informasi yang diinginkan. Proses tersebut juga mendapat nama dari perangkat luar. Sebagian sistem operasi melewati sumber-sumber ke anak proses. Pada sistem tersebut, proses baru bisa mendapat dua berkas terbuka yang baru, F1 dan perangkat terminal dan hanya perlu untuk mentransfer data antara kedua berkas tersebut.

Ketika suatu proses membuat proses baru, dua kemungkinan ada dalam term eksekusi:

1. Induk terus menerus untuk mengeksekusi secara bersama-sama dengan anaknya.

2. Induk menunggu sampai sebagian dari anaknya telah diakhiri/terminasi.

Juga ada dua kemungkinan dalam term dari address space pada proses baru:

1. Anak proses adalah duplikat dari induk proses.

2. Anak proses memiliki program yang terisikan didalamnya.

Untuk mengilustrasikan implementasi yang berbeda ini, mari kita mempelajari sistem operasi UNIX. Dalam UNIX, tiap proses diidentifikasi oleh pengidentifikasi proses, yang merupakan integer yang unik. Proses baru dibuat oleh sistem pemanggilan fork system call. Proses baru tersebut terdiri dari sebuah copy ruang alamat dari proses aslinya (original). Mekanisme tersebut memungkinkan induk proses untuk berkomunikasi dengan mudah dengan anak proses. Kedua proses (induk dan anak) meneruskan eksekusi pada instruksi setelah fork dengan satu perbedaan: Kode kembali untuk fork adalah nol untuk proses baru (anak), sebagaimana proses pengidentifikasi non nol (non zero) dari anak dikembalikan kepada induk.

Umumnya, sistem pemanggilan execlp digunakan setelah sistem pemanggilan fork. Oleh satu dari dua proses untuk menggantikan proses ruang memori dengan program baru. Sistem pemanggilan execlp mengisi suatu berkas binary kedalam memori (menghancurkan gambar memori pada program yang berisikan sistem pemanggilan execlp) dan memulai eksekusinya. Dengan cara ini, kedua proses mampu untuk berkomunikasi, dan lalu untuk pergi ke arah yang berbeda. Induk lalu dapat membuat anak yang lebh banyak atau jika induk tidak punya hal lain untuk dilakukan ketika anak bekerja, induk dapat mengeluarkan sistem pemanggilan wait untuk tidak menggerakkan dirinya sendiri pada suatu antrian yang siap sampai anak berhenti. Program C ditunjukkan pada Gambar 2-10 mengilustrasikan sistem pemanggilan pada UNIX yang sebelumnya dijelaskan. Induk membuat anak proses menggunakan sistem pemanggilan fork(). Kini kita mempunyai dua proses yang berbeda yang menjalankan sebuah copy pada program yang sama. Nilai dari pid untuk anak proses adalah nol (zero): maka untuk induk adalah nilai integer yang lebih besar dari nol. Anak proses meletakkan ruang alamatnya dengan UNIX command/bin/ls (digunakan untuk mendapatkan pendaftaran directory) menggunakan sistem pemanggilan execlp(). Ketika anak proses selesai, induk proses menyimpulkan dari pemanggilan untuk wait() dimana induk proses menyelesaikannya dengan menggunakan sistem pemanggilan exit().

Secara kontras, sistem operasi DEC VMS membuat sebuah proses baru dengan mengisi program tertentu kedalam proses tersebut, dan memulai pekerjaannya. Sistem operasi Microsoft Windows NT mendukung kedua model: Ruang alamat induk proses dapat di duplikasi, atau induk dapat menspesifikasi nama dari sebuah program untuk sistem operasi untuk diisikan kedalam ruang alamat pada proses baru.

Terminasi Proses

Sebuah proses berakhir ketika proses tersebut selesai mengeksekusi pernyataan akhirnya dan meminta sistem operasi untuk menghapusnya dengan menggunakan sistem pemanggilan exit. Pada titik itu, proses tersebut dapat mengembalikan data (keluaran) pada induk prosesnya (melalui sistem pemanggilan wait). Seluruh sumber-sumber dari proses-termasuk memori fisik dan virtual, membuka berkas, dan penyimpanan I/O di tempatkan kembali oleh sistem operasi.

Ada situasi tambahan tertentu ketika terminasi terjadi. Sebuah proses dapat menyebabkan terminasi dari proses lain melalui sistem pemanggilan yang tepat (contoh abort). Biasanya, sistem seperti itu dapat dipanggil hanya oleh induk proses tersebut yang akan diterminasi. Bila tidak, pengguna dapat secara sewenang-wenang membunuh job antara satu sama lain. Catat bahwa induk perlu tahu identitas dari anaknya. Maka, ketika satu proses membuat proses baru, identitas dari proses yang baru diberikan kepada induknya.

Induk dapat menterminasi/ mengakhiri satu dari anaknya untuk beberapa alasan, seperti:

  • Anak telah melampaui kegunaannya atas sebagaian sumber yang telah diperuntukkan untuknya.
  • Pekerjaan yang ditugaskan kepada anak telah keluar, dan sistem operasi tidak memeperbolehkan sebuah anak untuk meneruskan jika induknya berakhir.

Untuk menentukan kasus pertama, induk harus memiliki mekanisme untuk memeriksa status anaknya. Banyak sistem, termasuk VMS, tidak memperbolehkan sebuah anak untuk ada jika induknya telah berakhir. Dalam sistem seperti ini, jika suatu proses berakhir (walau secara normal atau tidak normal), maka seluruh anaknya juga harus diterminasi. Fenomena ini, mengacu pada terminasi secara cascading, yang normalnya dimulai oleh sistem operasi.

Untuk mengilustrasikan proses eksekusi dan proses terminasi, kita menganggap bahwa, dalam UNIX, kami dapat mengakhiri suatu proses dengan sistem pemanggilan exit; proses induknya dapat menunggu untuk terminasi anak proses dengan menggunakan sistem pemanggilan wait. Sistem pemanggilan wait kembali ke pengidentifikasi proses dari anak yang telah diterminasi, maka induk dapat memberitahu kemungkinanan anak mana yang telah diterminasi. Jika induk menterminasi. Maka, anaknya masih punya sebuah induk untuk mengumpulkan status mereka dan mengumpulkan statistik eksekusinya.

Hubungan Antara Proses

Sebelumnya kita telah ketahui seluk beluk dari suatu proses mulai dari pengertiannya, cara kerjanya, sampai operasi-operasinya seperti proses pembentukannya dan proses pemberhentiannya setelah selesai melakukan eksekusi. Kali ini kita akan mengulas bagaimana hubungan antar proses dapat berlangsung, misal bagaimana beberapa proses dapat saling berkomunikasi dan bekerja-sama.

Proses yang Kooperatif

Proses yang bersifat simultan (concurrent) dijalankan pada sistem operasi dapat dibedakaan menjadi yaitu proses independent dan proses kooperatif. Suatu proses dikatakan independen apabila proses tersebut tidak dapat terpengaruh atau dipengaruhi oleh proses lain yang sedang dijalankan pada sistem.

Berarti, semua proses yang tidak membagi data apa pun (baik sementara/ tetap) dengan proses lain adalah independent. Sedangkan proses kooperatif adalah proses yang dapat dipengaruhi atau pun terpengaruhi oleh proses lain yang sedang dijalankan dalam sistem. Dengan kata lain, proses dikatakan kooperatif bila proses dapat membagi datanya dengan proses lain. Ada empat alasan untuk penyediaan sebuah lingkungan yang memperbolehkan terjadinya proses kooperatif:

1.       Pembagian informasi: apabila beberapa pengguna dapat tertarik pada bagian informasi yang sama (sebagai contoh, sebuah berkas bersama), kita harus menyediakan sebuah lingkungan yang mengizinkan akses secara terus menerus ke tipe dari sumber-sumber tersebut.

2.       Kecepatan penghitungan/ komputasi: jika kita menginginkan sebuah tugas khusus untuk menjalankan lebih cepat, kita harus membagi hal tersebut ke dalam subtask, setiap bagian dari subtask akan dijalankan secara parallel dengan yang lainnya. Peningkatan kecepatan dapat dilakukan hanya jika komputer tersebut memiliki elemen-elemen pemrosesan ganda (seperti CPU atau jalur I/O).

3.       Modularitas: kita mungkin ingin untuk membangun sebuah sistem pada sebuah model modular-modular, membagi fungsi sistem menjadi beberapa proses atau threads.

4.       Kenyamanan: bahkan seorang pengguna individu mungkin memiliki banyak tugas untuk dikerjakan secara bersamaan pada satu waktu. Sebagai contoh, seorang pengguna dapat mengedit, memcetak, dan meng-compile secara paralel.

Program Produser Konsumer

  1. import java.util.*;
  2. public class BoundedBuffer {
  3. public BoundedBuffer() {
  4. // buffer diinisialisasikan kosong
  5. count = 0;
  6. in = 0;
  7. out = 0;
  8. buffer = new Object[BUFFER_SIZE];
  9. }
  10. // produser memanggil method ini
  11. public void enter( Object item ) {
  12. while ( count == BUFFER_SIZE )
  13. ; // do nothing
  14. // menambahkan suatu item ke dalam buffer
  15. ++count;
  16. buffer[in] = item;
  17. in = ( in + 1 ) % BUFFER_SIZE;
  18. if ( count == BUFFER_SIZE )
  19. System.out.println( “Producer Entered ” +
  20. item + ” Buffer FULL” );
  21. else
  22. System.out.println( “Producer Entered ” +
  23. item + ” Buffer Size = ” + count );
  24. }
  25. // consumer memanggil method ini
  26. public Object remove() {
  27. Object item ;
  28. while ( count == 0 )
  29. ; // do nothing
  30. // menyingkirkan suatu item dari buffer
  31. –count;
  32. item = buffer[out];
  33. out = ( out + 1 ) % BUFFER_SIZE;
  34. if ( count == 0 )
  35. System.out.println( “Consumer consumed ” +
  36. item + ” Buffer EMPTY” );
  37. else
  38. System.out.println( “Consumer consumed ” +
  39. item + ” Buffer Size = ” +count );
  40. return item;
  41. }
  42. public static final int NAP_TIME = 5;
  43. private static final int BUFFER_SIZE = 5;
  44. private volatile int count;
  45. private int in; // arahkan ke posisi kosong selanjutnya
  46. private int out; // arahkan ke posisi penuh selanjutnya
  47. private Object[] buffer;
  48. }

Sebuah proses produser membentuk informasi yang dapat digunakan oleh konsumen proses. Sebagai contoh sebuah cetakan program yang membuat banyak karakter yang diterima oleh driver pencetak. Untuk memperbolehkan produser dan konsumer proses agar dapat berjalan secara terus menerus, kita harus menyediakan sebuah item buffer yang dapat diisi dengan proses produser dan dikosongkan oleh proses konsumer. Proses produser dapat memproduksi sebuah item ketika konsumer sedang mengkonsumsi item yang lain. Produser dan konsumer harus dapat selaras. Konsumer harus menunggu hingga sebuah item diproduksi.

Komunikasi Proses Dalam Sistem

Cara lain untuk meningkatkan efek yang sama adalah untuk sistem operasi yaitu untuk menyediakan alat-alat proses kooperatif untuk berkomunikasi dengan yang lain lewat sebuah komunikasi dalam proses (IPC = Inter-Process Communication). IPC menyediakan sebuah mekanisme untuk mengizinkan proses-proses untuk berkomunikasi dan menyelaraskan aksi-aksi mereka tanpa berbagi ruang alamat yang sama. IPC adalah khusus digunakan dalam sebuah lingkungan yang terdistribusi dimana proses komunikasi tersebut mungkin saja tetap ada dalam komputer-komputer yang berbeda yang tersambung dalam sebuah jaringan. IPC adalah penyedia layanan terbaik dengan menggnakan sebuah sistem penyampaian pesan, dan sistem-sistem pesan dapat diberikan dalam banyak cara.

Sistem Penyampaian Pesan

Fungsi dari sebuah sistem pesan adalah untuk memperbolehkan komunikasi satu dengan yang lain tanpa perlu menggunakan pembagian data. Sebuah fasilitas IPC menyediakan paling sedikit dua operasi yaitu kirim (pesan) dan terima (pesan). Pesan dikirim dengan sebuah proses yang dapat dilakukan pada ukuran pasti atau variabel. Jika hanya pesan dengan ukuran pasti dapat dikirimkan, level sistem implementasi adalah sistem yang sederhana. Pesan berukuran variabel menyediakan sistem implementasi level yang lebih kompleks.

Berikut ini ada beberapa metode untuk mengimplementasikan sebuah jaringan dan operasi pengiriman/penerimaan secara logika:

  • Komunikasi langsung atau tidak langsung.
  • Komunikasi secara simetris/ asimetris.
  • Buffer otomatis atau eksplisit.
  • engiriman berdasarkan salinan atau referensi.
  • Pesan berukuran pasti dan variabel.

Komunikasi Langsung

Proses-proses yang ingin dikomunikasikan harus memiliki sebuah cara untuk memilih satu dengan yang lain. Mereka dapat menggunakan komunikasi langsung/ tidak langsung.

Setiap proses yang ingin berkomunikasi harus memiliki nama yang bersifat eksplisit baik penerimaan atau pengirim dari komunikasi tersebut. Dalam konteks ini, pengiriman dan penerimaan pesan secara primitive dapat dijabarkan sebagai:

  • Send (P, message) – mengirim sebuah pesan ke proses P.
  • Receive (Q, message) – menerima sebuah pesan dari proses Q.

Sebuah jaringan komunikasi pada bahasan ini memiliki beberapa sifat, yaitu:

  • Sebuah jaringan yang didirikan secara otomatis diantara setiap pasang dari proses yang ingin dikomunikasikan. Proses tersebut harus mengetahui identitas dari semua yang ingin dikomunikasikan.
  • Sebuah jaringan adalah terdiri dari penggabungan dua proses.
  • Diantara setiap pesan dari proses terdapat tepat sebuah jaringan.

Pembahasan ini memperlihatkan sebuah cara simetris dalam pemberian alamat. Oleh karena itu, baik keduanya yaitu pengirim dan penerima proses harus memberi nama bagi yang lain untuk berkomunikasi, hanya pengirim yang memberikan nama bagi penerima sedangkan penerima tidak menyediakan nama bagi pengirim. Dalam konteks ini, pengirim dan penerima secara sederhana dapat dijabarkan sebagai:

  • Send (P, message) – mengirim sebuah pesan kepada proses P.
  • Receive (id, message) – menerima sebuah pesan dari semua proses. Variabel id diatur sebagai nama dari proses dengan komunikasi.

Komunikasi Tidak Langsung

Dengan komunikasi tidak langsung, pesan akan dikirimkan pada dan diterima dari/ melalui mailbox(kotak surat) atau terminal-terminal, sebuah mailbox dapat dilihat secara abstrak sebagai sebuah objek didalam setiap pesan yang dapat ditempatkan dari proses dan dari setiap pesan yang bias dipindahkan. Setiap kotak surat memiliki sebuah identifikasi (identitas) yang unik, sebuah proses dapat berkomunikasi dengan beberapa proses lain melalui sebuah nomor dari mailbox yang berbeda. Dua proses dapat saling berkomunikasi apabila kedua proses tersebut sharing mailbox. Pengirim dan penerima dapat dijabarkan

sebagai:

  • Send (A, message) – mengirim pesan ke mailbox A.
  • Receive (A, message) – menerima pesan dari mailbox A.

Dalam masalah ini, link komunikasi mempunyai sifat sebagai berikut:

  • Sebuah link dibangun diantara sepasang proses dimana kedua proses tersebut membagi mailbox.
  • Sebuah link mungkin dapat berasosiasi dengan lebih dari dua proses.
  • Diantara setiap pasang proses komunikasi, mungkin terdapat link yang berbeda-beda, dimana setiap link berhubungan pada satu mailbox.

Misalkan terdapat proses P1, P2 dan P3 yang semuanya share mailbox. Proses P1 mengirim pesan ke A, ketika P2 dan P3 masing-masing mengeksekusi sebuah kiriman dari A. Proses mana yang akan menerima pesan yang dikirim P1? Jawabannya tergantung dari jalur yang kita pilih:

  • Mengizinkan sebuah link berasosiasi dengan paling banyak 2 proses.
  • Mengizinkan paling banyak satu proses pada suatu waktu untuk mengeksekusi hasil kiriman (receive operation).
  • Mengizinkan sistem untuk memilih secara mutlak proses mana yang akan menerima pesan (apakah itu P2 atau P3 tetapi tidak keduanya, tidak akan menerima pesan). Sistem mungkin mengidentifikasi penerima kepada pengirim.

Mailbox mungkin dapat dimiliki oleh sebuah proses atau sistem operasi. Jika mailbox dimiliki oleh proses, maka kita mendefinisikan antara pemilik (yang hanya dapat menerima pesan melalui mailbox) dan pengguna dari mailbox (yang hanya dapat mengirim pesan ke mailbox). Selama setiap mailbox mempunyai kepemilikan yang unik, maka tidak akan ada kebingungan tentang siapa yang harus menerima pesan dari mailbox. Ketika proses yang memiliki mailbox tersebut diterminasi, mailbox akan hilang. Semua proses yang mengirim pesan ke mailbox ini diberi pesan bahwa mailbox tersebut tidak lagi ada.

Dengan kata lain, mempunyai mailbox sendiri yang independent, dan tidak melibatkan proses yang lain. Maka sistem operasi harus memiliki mekanisme yang mengizinkan proses untuk melakukan hal-hal dibawah ini:

  • Membuat mailbox baru.
  • Mengirim dan menerima pesan melalui mailbox.
  • Menghapus mailbox.

Proses yang membuat mailbox pertama kali secara default akan memiliki mailbox tersebut. Untuk pertama kali, pemilik adalah satu-satunya proses yang dapat menerima pesan melalui mailbox ini. Bagaimana pun, kepemilikan dan hak menerima pesan mungkin dapat dialihkan ke proses lain melalui sistem pemanggilan.

Sinkronisasi

Komunikasi antara proses membutuhkan place by calls untuk mengirim dan menerima data primitive. Terdapat rancangan yang berbeda-beda dalam implementasi setiap primitive. Pengiriman pesan mungkin dapat diblok (blocking) atau tidak dapat dibloking (nonblocking) – juga dikenal dengan nama sinkron atau asinkron.

  • Pengiriman yang diblok: Proses pengiriman di blok sampai pesan diterima oleh proses penerima (receiving process) atau oleh mailbox.
  • Pengiriman yang tidak diblok: Proses pengiriman pesan dan mengkalkulasi operasi.
  • Penerimaan yang diblok: Penerima mem blok samapai pesan tersedia.
  • Penerimaan yang tidak diblok: Penerima mengembalikan pesan valid atau null.

Buffering

Baik komunikasi itu langsung atau tak langsung, penukaran pesan oleh proses memerlukan antrian sementara. Pada dasarnya, terdapat tiga jalan dimana antrian tersebut diimplementasikan:

  • Kapasitas nol: antrian mempunyai panjang maksimum 0, maka link tidak dapat mempunyai penungguan pesan (message waiting). Dalam kasus ini, pengirim harus memblok sampai penerima menerima pesan.
  • Kapasitas terbatas: antrian mempunyai panjang yang telah ditentukan, paling banyak n pesan dapat dimasukkan. Jika antrian tidak penuh ketika pesan dikirimkan, pesan yang baru akan menimpa, dan pengirim pengirim dapat melanjutkan eksekusi tanpa menunggu. Link mempunyai kapasitas terbatas.
  • Jika link penuh, pengirim harus memblok sampai terdapat ruang pada antrian.
  • Kapasitas tak terbatas: antrian mempunyai panjang yang tak terhingga, maka, semua pesan dapat menunggu disini. Pengirim tidak akan pernah di blok.

Contoh Produser-Konsumer

Sekarang kita mempunyai solusi problem produser-konsumer yang menggunakan penyampaian pesan. Produser dan konsumer akan berkomunikasi secara tidak langsung menggunakan mailbox yang dibagi. Buffer menggunakan java.util.Vector class sehingga buffer mempunyai kapasitas tak terhingga. Dan send() dan read() method adalah nonblocking. Ketika produser memproduksi suatu item, item tersebut diletakkan ke mailbox melalui send() method. Konsumer menerima item dari mailbox menggunakan receive() method. Karena receive() nonblocking, consumer harus mengevaluasi nilai dari Object yang di-return dari receive(). Jika null, mailbox kosong.

Program Produser Konsumer Alternatif

  1. import java.util.*;
  2. public class Producer extends Thread {
  3. private MessageQueueueue mbox;
  4. public Producer( MessageQueueueue m ) {
  5. mbox = m;
  6. }
  7. public void run() {
  8. Date message;
  9. while ( true ) {
  10. int sleeptime = ( int ) ( Server.NAP_TIME * Math.random() );
  11. System.out.println( “Producer sleeping for ” +
  12. sleeptime + ” seconds” );
  13. try {
  14. Thread.sleep(sleeptime*1000);
  15. } catch( InterruptedException e ) {}
  16. message = new Date();
  17. System.out.println( “Producer produced ” + message );
  18. mbox.send( message );
  19. }
  20. }
  21. }
  22. import java.util.*;
  23. public class Consumer extends Thread {
  24. private MessageQueueueue mbox;
  25. public Consumer( MessageQueueueue m ) {
  26. mbox = m;
  27. }
  28. public void run() {
  29. Date message;
  30. while ( true ) {
  31. int sleeptime = (int) (Server.NAP_TIME * Math.random());
  32. System.out.println(“Consumer sleeping for ” +
  33. sleeptime + ” seconds” );
  34. try {
  35. Thread.sleep( sleeptime * 1000 );
  36. } catch( InterruptedException e ) {}
  37. message = ( Date ) mbox.receive();
  38. if ( message != null )
  39. System.out.println(“Consumer consume ” + message );
  40. }
  41. }
  42. }

Kita memiliki dua aktor di sini, yaitu Produser dan Konsumer. Produser adalah thread yang menghasilkan waktu (Date) kemudian menyimpannya ke dalam antrian pesan. Produser juga mencetak waktu tersebut di layer (sebagai umpan balik bagi kita). Konsumer adalah thread yang akan mengakses antrian pesan untuk mendapatkan waktu (date) itu dan tak lupa mencetaknya di layer. Kita menginginkan supaya konsumer itu mendapatkan waktu sesuatu dengan urutan sebagaimana produser menyimpan waktu tersebut. Kita akan menghadapi salah satu dari dua kemungkinan situasi di bawah ini:

  • Bila p1 lebih cepat dari c1, kita akan memperoleh output sebagai berikut:

……

Consumer consume Wed May 07 14:11:12 ICT 2003

Consumer sleeping for 3 seconds

Producer produced Wed May 07 14:11:16 ICT 2003

Producer sleeping for 4 seconds

// p1 sudah mengupdate isi mailbox waktu dari Wed May 07

// 14:11:16 ICT 2003 ke Wed May 07 14:11:17 ICT 2003,

// padahal c1 belum lagi mengambil waktu Wed May 07 14:11:16

Producer produced Wed May 07 14:11:17 ICT 2003

Producer sleeping for 4 seconds

Consumer consume Wed May 07 14:11:17 ICT 2003

Consumer sleeping for 4 seconds

// Konsumer melewatkan waktu Wed May 07 14:11:16

. . .


  • Bila p1 lebih lambat dari c1, kita akan memperoleh keluaran seperti berikut:

. . .

Producer produced Wed May 07 14:11:11 ICT 2003

Producer sleeping for 1 seconds

Consumer consume Wed May 07 14:11:11 ICT 2003

Consumer sleeping for 0 seconds

// c1 sudah mengambil isi dari mailbox, padahal p1 belum

// lagi megupdate isi dari mailbox dari May 07 14:11:11

// ICT 2003 ke May 07 14:11:12 ICT 2003, c1 mendapatkan

// waktu Wed May 07 14:11:11 ICT 2003 dua kali.

Consumer consume Wed May 07 14:11:11 ICT 2003

Consumer sleeping for 0 seconds

Producer sleeping for 0 seconds

Producer produced Wed May 07 14:11:12 ICT 2003

. . .


Situasi di atas dikenal dengan race conditions. Kita dapat menghindari situasi itu dengan

mensinkronisasikan aktivitas p1 dan c1 (sehubungan dengan akses mereka ke mailbox). Proses tersebut akan didiskusikan pada Bagian 3.2.

Mailbox

Program Send/ Receive

  1. import java.util.*;
  2. public class MessageQueue {
  3. private Vector q;
  4. public MessageQueue() {
  5. q = new Vector();
  6. }
  7. // Mengimplementasikan pengiriman nonblocking
  8. public void send( Object item ) {
  9. q.addElement( item );
  10. }
  11. // Mengimplementasikan penerimaan nonblocking
  12. public Object receive() {
  13. Object item;
  14. if ( q.size() == 0 )
  15. return null;
  16. else {
  17. item = q.firstElement();
  18. q.removeElementAt(0);
  19. return item;
  20. }
  21. }
  22. }
  1. Menunggu sampai batas waktu yang tidak dapat ditentukan sampai terdapat ruang kosong pada mailbox.
  2. Menunggu paling banyak n milidetik.
  3. Tidak menunggu, tetapi kembali (return) secepatnya.
  4. Satu pesan dapat diberikan kepada sistem operasi untuk disimpan, walau pun mailbox yang dituju penuh. Ketika pesan dapat disimpan pada mailbox, pesan akan dikembalikan kepada pengirim (sender). Hanya satu pesan kepada mailbox yang penuh yang dapat diundur (pending) pada suatu waktu untuk diberikan kepada thread pengirim.

Pertanyaan

    1. Definisikan perbedaan antara penjadualan short term, medium term dan long term

  1. Jelaskan tindakan yang diambil oleh sebuah kernel ketika alih konteks antar proses.
  2.  

  3. Sebutkan lima aktivitas sistem operasi yang merupakan contoh dari suatu managemen proses
  4. nformasi apa saja yang disimpan pada tabel proses saat alih konteks dari satu proses ke proses lain
  5. Kernel menjaga suatu rekaman untuk setiap proses, disebut Proses Control Blocks (PCB). Ketika suatu proses sedang tidak berjalan, PCB berisi informasi tentang perlunya melakukan restart suatu proses dalam CPU. Jelaskan dua informasi yang harus dipunyai PCB.
Sumber Materi

1.    Avi Silberschatz, Peter Galvin, dan Greg Gagne, Applied Operationg System Concepts, 1stEd., John Wiley &amp; Sons, Inc. , 2002
2.    William Stallings, Operating Systems — Fourth Edition, Prentice Hall. , 2001
3.    http://www.cs.ui.ac.id/kuliah/IKI20230/materi/week4/Proses.PDF
4.    http://www.cs.ui.ac.id/kuliah/IKI20230/materi/week4/CPU-Scheduler.PDF
5.    http://www.cs.nyu.edu/courses/spring02/v22.0202-002/lecture-03.html
6.    http://www.risc.uni-linz.ac.at/people/schreine/papers/idimt97/multithread.gif
7.    http://www.unet.univie.ac.at/aix/aixprggd/genprogc/figures/genpr68.jpg

 
Ikuti

Get every new post delivered to your Inbox.