Senin, 19 Maret 2012

Bagaimana Cara Untuk Membuat Sebuah Permainan Kanvas Sederhana HTML5


Bagaimana Cara Untuk Membuat Sebuah Permainan Kanvas Sederhana HTML5

Sejak meluncurkan permainan Onslaught! Arena, aku telah menerima banyak permintaan untuk membuat tutorial yang sangat dasar tentang bagaimana cara untuk membuat permainan sederhana di kanvas. Setelah merenungkan untuk beberapa waktu cara untuk pendekatan terbaik subjek kompleks ini, Saya memutuskan hanya untuk mengumpulkan permainan yang sangat sederhana saya bisa membayangkan dan berjalan melalui itu praktis baris demi baris.  Jadi ini dia! Mari kita melompat segera dengan berjalan melalui game.js. Anda juga dapat bermain game di sini.
Simple game using Onslaught! graphics
1.                  Membuat kanvas
               // Membuat canvas
               var canvas = document.createElement("canvas");
               var ctx = canvas.getContext("2d");
               canvas.width = 512;
   canvas.height = 480;
   document.body.appendChild(canvas);

Hal pertama yang perlu kita lakukan adalah membuat elemen kanvas. Saya melakukan ini dalam JavaScript, bukan HTML untuk menunjukkan betapa mudah membuatnya. Setelah kita memiliki elemen kita mendapatkan referensi ke konteksnya, mengatur dimensi dan menambahkan ke bagian dokumen.








2.                         Menyertakan gambar
               // Gambar latar belakang
               var bgReady = false;
               var bgImage = new Image();
               bgImage.onload = function () {
                               bgReady = true;
               };
               bgImage.src = "images/background.png";

Sebuah Permainan membutuhkan grafis! Jadi mari kita memuat beberapa gambar. Saya ingin melakukan ini sesederhana mungkin, jadi itu hanya sebuah Gambar yang bukan dibungkus dalam Kelas bagus atau sesuatu. bgReady digunakan untuk memberitahu kanvas kalau sudah aman untuk menggambarnya, seperti mencoba untuk menterjemahkan sebelum itu dimuat dan akan melemparkan kesalahan DOM.
Kita melakukan ini untuk masing-masing dari tiga grafis yang kita butuhkan: latar belakang, pahlawan dan monster.

3.                         Objek permainan
               // Objek permainan
               var hero = {
                               speed: 256, // gerakan dalam pixel per detik
                               x: 0,
                               y: 0
               };
               var monster = {
                               x: 0,
                               y: 0
               };
               var monstersCaught = 0;
              
Sekarang kita mendefinisikan beberapa variabel yang akan kita gunakan nanti. Pahlawan mendapatkan setup dengan kecepatan, diaman seberapa cepat itu akan bergerak dalam piksel per detik. Monster tidak akan bergerak sehingga hanya memiliki koordinat. Terakhir, monstersCaught menyimpan jumlah monster pemain telah tertangkap.

4.                         Masukan pemain
               // Menangani keyboard kontrol
               var keysDown = {};

               addEventListener("keydown", function (e) {
                               keysDown[e.keyCode] = true;
               }, false);
               addEventListener("keyup", function (e) {
                               delete keysDown[e.keyCode];
               }, false);
              
Sekarang menangani masalah penginputan. Ini mungkin adalah bagian utama yang akan dilakukan oleh pengembang yang berasal dari latar belakang pengembangan web. Yang penting untuk diingat adalah bahwa kita tidak selalu ingin untuk bereaksi terhadap suatu peristiwa masukan yang tepat ketika itu terjadi. Dalam tumpukan web, mungkin tepat untuk mulai menghidupkan atau meminta data yang tepat ketika pengguna mulai masuk. Tapi dalam aliran ini, kami ingin permainan logika kita untuk hidup hanya di satu tempat untuk mempertahankan semua kontrol jika sesuatu terjadi. Untuk itu kami hanya ingin menyimpan input pengguna untuk nanti.
Untuk mencapai hal ini kita hanya memiliki keysDown variabel yang menyimpan keyCode pada setiap kejadian. Jika kode kunci berada didalam objek, pengguna harus menekan tombol itu. Mudahkan!


5.                         Permainan baru
               // Reset permainan ketika pemain menangkap rakasasa
               var reset = function () {
                               hero.x = canvas.width / 2;
                               hero.y = canvas.height / 2;

// Melemparkan Rakasasa di suatu tempat di layar secara acak
                               monster.x = 32 + (Math.random() * (canvas.width - 64));
                               monster.y = 32 + (Math.random() * (canvas.height - 64));
               };
              
Fungsi reset dipanggil untuk memulai permainan baru, atau tingkat, atau terserah Anda ingin menyebutnya apa. Ini menempatkan pahlawan (pemain) di tengah layar dan rakasa di suatu tempat secara acak.

6.                         Pembaruan objek
               // Memperbarui objek permainan
               var update = function (modifier) {
                               if (38 in keysDown) { // Pemain memegang
                               hero.y -= hero.speed * modifier;
                                              }
                               if (40 in keysDown) { // Pemain menekan
                                              hero.y += hero.speed * modifier;
                               }
                               if (37 in keysDown) { // Pemain menekan kiri
                                              hero.x -= hero.speed * modifier;
                               }
                               if (39 in keysDown) { // Pemain menekan kanan
                                              hero.x += hero.speed * modifier;
                               }

                               // Mereka menyentuh?
                               if (
                                              hero.x <= (monster.x + 32)
                                              && monster.x <= (hero.x + 32)
                                              && hero.y <= (monster.y + 32)
                                              && monster.y <= (hero.y + 32)
                               ) {
                                              ++monstersCaught;
                                              reset();
                               }
               };
              
Ini adalah fungsi update dan disebut setiap satu interval eksekusi. Hal pertama yang dilakukannya adalah memeriksa atas, bawah, kiri dan kanan tombol panah untuk melihat apakag pengguna telah menekannya. Jika demikian, pahlawan akan berpindah ke arah yang sesuai.
Yang mungkin tampak aneh adalah merubah argumen masuk ke update. Anda akan melihat bagaimana hal ini direferensikan dalam fungsi utama, tapi biarkan saya menjelaskan di sini. pengubah adalah angka berdasarkan waktu berdasarkan 1. Jika tepat satu detik telah berlalu, nilai akan menjadi 1 dan kecepatan pahlawan akan dikalikan dengan 1, berarti dia akan pindah 256 piksel dalam kedua itu. Jika setengah detik telah berlalu, nilai akan 0,5 dan pahlawan akan pindah setengah dari kecepatan dalam jumlah waktu. Dan sebagainya. Fungsi ini dipanggil begitu cepat sehingga nilai pengubah biasanya akan sangat rendah, tetapi menggunakan pola ini akan memastikan bahwa pahlawan akan bergerak dengan kecepatan yang sama tidak peduli seberapa cepat (atau lambat) script berjalan.
Sekarang kita sudah dapat memindahkan pahlawan sesuai yang diinputkan oleh pemain, kita dapat memeriksa untuk melihat apa yang terjadi dengan gerakan itu. Apabila hanya ada tabrakan dengan pahlawan dan rakasa, itu saja! Itu cukup banyak permainan. Kami menambahkan nilai (+1 untuk monstersCaught) dan me-reset permainan.

7.                         Membuat objek
               // Menarik segala sesuatu
               var render = function () {
                               if (bgReady) {
                                              ctx.drawImage(bgImage, 0, 0);
                               }

                               if (heroReady) {
                                              ctx.drawImage(heroImage, hero.x, hero.y);
                               }

                               if (monsterReady) {
                                              ctx.drawImage(monsterImage, monster.x, monster.y);
                               }

                               // Skor
                               ctx.fillStyle = "rgb(250, 250, 250)";
                               ctx.font = "24px Helvetica";
                               ctx.textAlign = "left";
                               ctx.textBaseline = "top";
                               ctx.fillText("Goblins caught: " + monstersCaught, 32, 32);
               };
              
Game akan lebih menyenangkan apabila Anda bisa melihat aksi turun, jadi mari kita menarik segala sesuatu ke layar. Pertama kita mengambil gambar latar belakang dan menariknya ke kanvas. Ulangi untuk pahlawan dan rakasa. Perhatikan bahwa perintah ini penting, karena setiap gambar ditarik ke permukaan akan ditarik selama piksel di bawahnya.
Selanjutnya kita mengubah beberapa sifat pada konteks yang berhubungan dengan cara menggambar font, dan kami membuat panggilan ke fillText untuk menampilkan skor pemain. Apabila  kita tidak memiliki animasi yang rumit atau gerakan, kita sudah selesai menggambar.

8.                         Loop permainan utama
               // Loop permainan utama
               var main = function () {
                               var now = Date.now();
                               var delta = now - then;

                               update(delta / 1000);
                               render();

                               then = now;
               };
              
Loop permainan utama adalah apa yang mengontrol aliran permainan. Pertama kita ingin mendapatkan waktu permainan saat ini sehingga kita dapat menghitung delta (berapa banyak milidetik yang berlalu sejak interval terakhir). Kami dapat mengubahnya untuk mengirim yang baru dan membaginya dengan 1000 (jumlah milidetik dalam satu detik). Yang sering kita sebut membuat dan merekam timestamp(pencatat waktu).
Lihat juga Onslaught itu! Arena Studi Kasus untuk lebih lanjut tentang loop permainan..

9.                         Memulai permainan!
               // Mari kita memainkan permainan ini!
               reset();
               var then = Date.now();
               setInterval(main, 1); // Menjalankan secepat mungkin
              
Hampir sama, ini adalah potongan kode terakhir! Pertama kita sebut memanggil “Reset/Ulang” untuk memulai permainan baru / tingkatan. (Ingatlah bahwa ini pusat pahlawan dan tempat rakasa secara acak bagi pemain untuk menemukannya.) Kemudian kita menaruh pencatat waktu kami (dengan variabel itu) dan memulai interval.
SELAMAT! Sekarang Anda (mudah-mudahan!) memahami dasar-dasar dasar pengembangan game dengan menggunakan elemen kanvas dalam JavaScript. Anda dapat mencobanya sendiri! Bermain game atau merubah kode pada GitHub dan memulai hacking.

Ingin Memberi Saran?
Apa yang anda pikirkan dari tutorial ini? Apakah itu berguna? Terlalu lambat, terlalu cepat, terlalu teknis, tidak teknis? Tolong beritahu saya dan saya akan mencoba untuk meningkatkan tutorial berikutnya! Pastikan untuk mengikuti kami di Twitter untuk mngetahui tutorial berikutnya.

Senin, 12 Maret 2012

tugas softskill

silahkn download untuk terjemahan "design successfuly iphone and android game with games maker"
http://www.mediafire.com/?t0zc745lx7040td

Kamis, 19 Januari 2012

soal dan jawaban V-class SO 2

Perangkat Keras I/O
1. Gambarkan diagram dari Interrupt Driven I/O Cycle.
2. Sebutkan langkah-langkah dari transfer DMA!
3. Apakah perbedaan dari polling dan interupsi?
4. Apa hubungan arsitektur kernel yang di-thread dengan implemen tasi interupsi?
#jawab#
1.
 
2. langkahnya:
  • Prosesor menyiapkan DMA transfer dengan menyedia kan data-data dari device, operasi yang akan ditampilkan, alamat memori yang menjadi sumber dan tujuan data, dan banyaknya byte yang di transfer.
  • DMA controller memulai operasi (menyiapkan bus, menyediakan alamat, menulis dan membaca data), sampai seluruh blok sudah di transfer.
  • DMA controller meng-interupsi prosesor, dimana selanjutnya akan ditentukan tindakan berikutnya.
3. polling adalah ketika host mengalami looping yaitu membaca status register secara terus-menerus sampai status busy di-clear. Interupsi dalam teknologi informasi merujuk kepada sebuah permintaan terhadap layanan dari CPU yang dibuat baik secara eksternal oleh sebuah perangkat keras (sebagai contoh: oleh disk drive, atau port I/O) atau secara internal oleh CPU itu sendiri.

4.


Interface Aplikasi I/O
1. Kenapa dibutuhkan interface pada aplikasi I/O?
2. Apa tujuan adanya device driver? Berikan contoh keuntungan yang kita dapatkan dengan adanya hal ini!

#jawab#
1. untuk mempermudah dalam pengaksesan.

2. Tujuan dari adanya lapisan device driver ini adalah untuk menyembunyikan perbedaan-perbedaan yang ada pada device controller dari subsistem I/O pada kernel.
Karena subsistem I/O independen dari hardware maka hal ini akan sangat menguntungkan dari segi pengembangan hardware. Tidak perlu menunggu vendor sistem operasi untuk mengeluarkan support code untuk hardware-hardware baru yang akan dikeluarkan oleh vendor hardware.




Kernel I/O Subsystem
1. Apakah yang dimaksud dengan proses pooling? (jelaskan dengan jelas)
2. Mengapa diperlukan proses pooling?
3. Apakah yang dimaksud dengan buffer?
4. Jelaskan dengan singkat mengenai I/O Scheduling!

#jawab#
1. Busy-waiting/ polling adalah ketika host mengalami looping yaitu membaca status register secara terus-menerus sampai status busy di-clear. Pada dasarnya polling dapat dikatakan efisien. Akan tetapi polling menjadi tidak efisien ketika setelah berulang-ulang melakukan looping, hanya menemukan sedikit device yang siap untuk men-service, karena CPU processing yang tersisa belum selesai.


2. 


3.Buffer adalah area memori yang menyimpan data ketika mereka sedang dipindahkan antara dua device atau antara device dan aplikasi.


4.Untuk menjadualkan sebuah set permintaan I/O, kita harus menetukan urutan yang bagus untuk mengeksekusi permintaan tersebut. Scheduling dapat meningkatkan kemampuan sistem secara keseluruhan, dapat membagi device secara rata di antara proses-proses, dan dapat mengurangi waktu tunggu rata-rata untuk menyelesaikan I/O. Ini adalah contoh sederhana untuk menggambarkan definisi di atas.






Penanganan Permintaan I/O
1. Apakah kegunaan dari Streams pada Sistem V UNIX?
2. Jelaskan lifecycle dari permintaan pembacaan blok!

#jawab#
1. untuk membolehkan aplikasi untuk men-assemble pipeline dari kode driver secara dinamis.


2. Berikut dideskripsikan sebuah lifecycle yang tipikal dari sebuah permintaan pembacaan blok:
  • Sebuah proses mengeluarkan sebuah blocking read system call ke sebuah file deskriptor dari berkas yang telah dibuka sebelumnya
  • Kode system-call di kernel mengecek parameter untuk kebenaran. Dalam kasus input, jika data telah siap di buffer cache, data akan dikembalikan ke proses dan permintaan I/O diselesaikan.
  • Jika data tidak berada dalam buffer cache, sebuah physical I/O akan bekerja, sehingga proses akan dikeluarkan dari antrian jalan (run queue) dan diletakkan di antrian tunggu (wait queue) untuk alat, dan permintaan I/O pun dijadwalkan. Pada akhirnya, subsistem I/O mengirimkan permintaan ke device driver. Bergantung pada sistem operasi, permintaan dikirimkan melalui call subrutin atau melalui pesan in-kernel.
  • Device driver mengalokasikan ruang buffer pada kernel untuk menerima data, dan menjadwalkan I/O. Pada akhirnya, driver mengirim perintah ke device controller dengan menulis ke register device control
  • Device controller mengoperasikan piranti keras device untuk melakukan transfer data.
  • Driver dapat menerima status dan data, atau dapat menyiapkan transfer DMA ke memori kernel. Kita mengasumsikan bahwa transfer diatur oleh sebuah DMA controller, yang meggunakan interupsi ketika transfer selesai.
  • Interrupt handler yang sesuai menerima interupsi melalui tabel vektor-interupsi, menyimpan sejumlah data yang dibutuhkan, menandai device driver, dan kembali dari interupsi.
  • Device driver menerima tanda, menganalisa permintaan I/O mana yang telah diselesaikan, menganalisa status permintaan, dan menandai subsistem I/O kernel yang permintaannya telah terselesaikan.
  • Kernel mentransfer data atau mengembalikan kode ke ruang alamat dari proses permintaan, dan memindahkan proses dari antrian tunggu kembali ke antrian siap.
  • Proses tidak diblok ketika dipindahkan ke antrian siap. Ketika penjadwal (scheduler)
    mengembalikan proses ke CPU, proses meneruskan eksekusi pada penyelesaian dari system call.



Performa I/O
1. Gambarkan bagan mengenai komunikasi antar komputer
2. Bagaimana cara meningkatkan efisiensi performa I/O
3. Jelaskan mengenai implementasi dari fungsi I/
#jawab#
1.


2. cara meningkatkan perfoma I/O
  • Menurunkan jumlah alih konteks.
  • Mengurangi jumlah pengkopian data ke memori ketika sedang dikirimkan antara device dan aplikasi.
  • Mengurangi frekuensi interupsi, dengan menggunakan ukuran transfer yang besar, smart controller, dan polling.
  • Meningkatkan concurrency dengan controller atau channel yang mendukung DMA.
  • Memindahkan kegiatan processing ke perangkat keras, sehingga operasi kepada device controller dapat berlangsung bersamaan dengan CPU.
  • Menyeimbangkan antara kinerja CPU, memory subsystem, bus, dan I/O.
3. Pada dasarnya kita mengimplementasikan algoritma I/O pada level aplikasi. Hal ini dikarenakan kode aplikasi sangat fleksible, dan bugs aplikasi tidak mudah menyebabkan sebuah sistem crash. Lebih lanjut, dengan mengembangkan kode pada level aplikasi, kita akan menghindari kebutuhan untuk reboot atau reload device driver setiap kali kita mengubah kode. Implementasi pada level aplikasi juga bisa sangat tidak efisien. Tetapi, karena overhead dari alih konteks dan karena aplikasi tidak bisa mengambil keuntungan dari struktur data kernel internal dan fungsionalitas dari kernel (misalnya, efisiensi dari kernel messaging, threading dan locking.



Struktur Disk
1. Sebutkan bagian-bagian dari disk
2. Apa keuntungan penggunaan pemetaan pada disk?
#jawab#
1. Disk menyediakan penyimpanan sekunder bagi sistem komputer modern. Magnetic tape sebelumnya digunakan sebagai media penyimpanan sekunder, tetapi waktu aksesnya lebih lambat dari disk. Oleh karena itu, sekarang tape digunakan terutama untuk backup, untuk penyimpanan informasi yang tidak sering, sebagai media untuk mentransfer infromasi dari satu sistem ke sistem yang lain, dan untuk menyimpan sejumlah data yang terlalu besar untuk sistem disk.

2. Dengan menggunakan pemetaan, kita dapat minimal dalam teori mengubah sebuah nomor blok logikal ke sebuah alamat disk yang bergaya lama (old-style disk address) yang terdiri atas sebuah nomor silinder, sebuah nomor trek di silinder tersebut, dan sebuah nomor sektor di trek tersebut.

Kamis, 12 Januari 2012

soal dan jawaban V-class SO !

Soal-Soal Sistem Berkas:

Sebutkan macam-macam atribut pada berkas!
# jawab
  • Nama; merupakan satu-satunya informasi yang tetap dalam bentuk yang bisa dibaca oleh manusia (human-readable form)
  • Type; dibutuhkan untuk sistem yang mendukung beberapa type berbeda
  • Lokasi; merupakan pointer ke device dan ke lokasi berkas pada device tersebut
  • Ukuran (size); yaitu ukuran berkas pada saat itu, baik dalam byte, huruf, atau pun blok
  • Proteksi; adalah informasi mengenai kontrol akses, misalnya siapa saja yang boleh membaca, menulis, dan mengeksekusi berkas
  • Waktu, tanggal dan identifikasi pengguna; informasi ini biasanya disimpan untuk:

Operasi apa sajakah yang dapat diterapkan pada sebuah berkas?
#jawab
  • Membuat berkas
  • Menulis berkas
  • Membaca berkas
  • Menempatkan kembali berkas
  • Menghapus berkas
  • Memmendekan berkas
Sebutkan informasi yang terkait dengan pembukaan berkas!
#jawab

  • Penunjuk berkas
  • Pneghitung berkas yang terbuka
  • Lokasi berkas pada disk
Sebutkan dan jelaskan metode alokasi pada sistem berkas!
#jawab

 Alokasi Secara Berdampingan (Contiguous Allocation)
Metode ini menempatkan setiap berkas pada satu himpunan blok yang berurut di dalam disk. Alamat disk menyatakan sebuah urutan linier. Dengan urutan linier ini maka head disk hanya bergerak jika mengakses dari sektor terakhir suatu silinder ke sektor pertama silinder berikutnya. Waktu pencarian (seek time) dan banyak disk seek yang dibutuhkan untuk mengakses berkas yang di alokasi secara berdampingan ini sangat minimal. Contoh dari sistem operasi yang menggunakan contiguous allocation adalah IBM VM/ CMS karena pendekatan ini menghasilkan performa yang baik.


Alokasi Secara Berangkai (Linked Allocation)
Metode ini menyelesaikan semua masalah yang terdapat pada contiguous allocation. Dengan metode ini, setiap berkas merupakan linked list dari blok-blok disk, dimana blok-blok disk dapat tersebar di dalam disk. Setiap direktori berisi sebuah penunjuk (pointer) ke awal dan akhir blok sebuah berkas. Setiap blok mempunyai penunjuk ke blok berikutnya. Untuk membuat berkas baru, kita dengan mudah membuat masukan baru dalam direktori. Dengan metode ini, setiap direktori masukan mempunyai penunjuk ke awal blok disk dari berkas. Penunjuk ini diinisialisasi menjadi nil (nilai penunjuk untuk akhir dari list) untuk menandakan berkas kosong. Ukurannya juga diset menjadi 0. Penulisan suatu berkas menyebabkan ditemukannya blok yang kosong melalui sistem manajemen ruang kosong (free-space management system), dan blok baru ini ditulis dan disambungkan ke akhir berkas.

Alokasi Dengan Indeks (Indexed Allocation)
Metode alokasi dengan berangkai dapat menyelesaikan masalah fragmentasi eksternal dan pendeklarasian ukuran dari metode alokasi berdampingan. Bagaimana pun tanpa FAT, metode alokasi berangkai tidak mendukung keefisiensian akses langsung, karena penunjuk ke bloknya berserakan dengan bloknya didalam disk dan perlu didapatkan secara berurutan. Metode alokasi dengan indeks menyelesaikan masalah ini dengan mengumpulkan semua penunjuk menjadi dalam satu lokasi yang dinamakan blok indeks (index block). Setiap berkas mempunyai blok indeks, yang merupakan sebuah larik array dari alamat-alamat disk-blok. Direktori mempunyai alamat dari blok indeks. Ketika berkas dibuat, semua penunjuk dalam blok indeks di set menjadi nil. Ketika blok ke-i pertama kali ditulis, sebuah blok didapat dari pengatur ruang kosong free-space manager dan alamatnya diletakkan ke dalam blok indeks ke-i. Metode ini mendukung akses secara langsung, tanpa mengalami fragmentasi eksternal karena blok kosong mana pun dalam disk dapat memenuhi permintaan ruang tambahan. Tetapi metode ini dapat menyebabkan ada ruang yang terbuang. Penunjuk yang berlebihan dari blok indeks secara umum lebih besar dari yang terjadi pada metode alokasi berangkai.

Sebutkan dan jelaskan operasi pada direktori?
#jawab

  • Mencari berkas, kita dapat menemukan sebuah berkas didalam sebuah struktur direktori
  • Membuat berkas, kita dapat membuat berkas baru dan menambahkan berkas tersebut kedalam direktori
  • Menghapus berkas, apabila berkas sudah tidak diperlukan lagi, kita dapat menghapus berkas tersebut dari direktori.
  • Menampilkan isi direktori, kita dapat menampilkan seluruh berkas dalam direktori, dan kandungan isi direktori untuk setiap berkas dalam daftar tersebut.
  • Mengganti nama berkas, karena nama berkas merepresentasikan isi dari berkas kepada user, maka user dapat merubah nama berkas ketika isi atau penggunaan berkas berubah. Perubahan nama dapat merubah posisi berkas dalam direktori.
  • Melintasi sistem berkas, ini sangat berguna untuk mengakses direktori dan berkas didalam struktur direktori.
Sebutkan dan Jelaskan tentang tipe akses pada berkas?
#jawab

  • Read: Membaca dari berkas
  • Write: Menulis berkas
  • Execute: Meload berkas kedalam memori untuk dieksekusi.
  • Append: Menambahkan informasi kedalam berkas di akhir berkas
  • Delete: Menghapus berkas.
  • List: Mendaftar properti dari sebuah berkas.
  • Rename: Mengganti nama sebuah berkas.
  • Copy: Menduplikasikan sebuah berkas.
  • Edit: Mengedit sebuah berkas.
Sebutkan dan jelaskan bagaimana cara mengatur free space?
#jawab
Setiap direktori berisi sebuah penunjuk (pointer) ke awal dan akhir blok sebuah berkas. Setiap blok mempunyai penunjuk ke blok berikutnya. Untuk membuat berkas baru, kita dengan mudah membuat masukan baru dalam direktori. Dengan metode ini, setiap direktori masukan mempunyai penunjuk ke awal blok disk dari berkas. Penunjuk ini diinisialisasi menjadi nil (nilai penunjuk untuk akhir dari list) untuk menandakan berkas kosong. Ukurannya juga diset menjadi 0. Penulisan suatu berkas menyebabkan ditemukannya blok yang kosong melalui sistem manajemen ruang kosong (free-space management system), dan blok baru ini ditulis dan disambungkan ke akhir berkas.

Bagaimanakah implementasi dari sebuah direktori dalam disk
#jawab
dengna menggunakan  metode linear list dan hash table

Sebutkan keunggulan dari sistem berkas dalam UNIX dengan sistem berkas pada WINDOWS?
#jawab

  • Bersifat case sensitive
  • Tidak menggunakan drive letter
Bagaimanakah langkah-langkah dalam proses back-up?

Minggu, 18 Desember 2011

makna logo kelas

disini saya akan menjabarkan makna makna yang terkandung didalam gambar "logo kelas 3-ia 19" yang sudah dibuat sebelumnya dan berikut gambarnya
dan penjabaran makanya adalah sebagai berikut:
  • Burung
seperti yang kita ketahui, burung melambangkan kebebasan dimana seekor burung bisa terbang kemana saja dengan bebas dan bersemangat tanpa memikirkan beban masalah sama sekali. Hal ini tercermin didalam kelas 3IA19 dimana seluruh mahasiswa yang ada dikelas ini selalu bersemangat setiap harinya meskipun ada tugas perkuliahan yang menanti, mereka tidak terlalu membebankan pikirannya dengan tugas-tugas yang ada sehingga sifat inilah yang bisa digambarkan dengan seekor burung.
  • Topi / blankon
seperti yang kalian ketahui bahwa topi / blankon memiliki fungsi dasar untuk melindungi diri dari cuaca panas, hujan dll. hal ini tercermin pada mahasiswa yang ada didalam kelas ini dimana semua mahasiswa yang ada saling melindungi satu sama lain. sikap melindungi ini lebih dipraktekan dengan membantu satu sama lain dalam menjalankan tugas-tugas perkuliahan yang ada, oleh sebab itu sifat ini digambarkan dengan topi.
  • Ikat pinggang
ikat pinggang disini menggambarkan sebuah ikatan pertemanan yang erat dan nilai ini juga ada didalam kelas ini dimana selurah mahasiswa yang ada dikelas 3IA19 ini saling akur dan akrab satu sama lainnya, hampir tidak ada konflik yang terjadi, oleh sebab itu bisa digambarkan dengan ikat pinggang
  • Batik
seperti yang kalian ketahui bahwa batik memiliki berbagai  macam warna yang membentuk sebuah keindahan dari sebuah batik, dan batik merupakan sesuatu hal yang menjadi tradisi Indonesia. Dari segi warna yang bermacam-macam menggambarkan bahwa didalam kelas 3IA19 ini berisi mahasiswa-mahasiswa dari berbagai suku, agama, sifat, kelebihan yang bermacam-macam namum dari berbagai ragam tersebut membentuk sebuah keindahan yang berupa sebuah kekompakan yang saling mengisi satu sama lain sehingga terlihat kompak dan solid satu sama lain..