Disk Forensik Bag.2

07.59 Edit This 0 Comments »

File System


File System adalah metode untuk menyimpan dan mengatur file-file dan data yang tersimpan di dalamnya untuk membuatnya mudah ditemukan dan diakses. File System dapat menggunakan media penyimpan data seperti HardDisk atau CD Rom. File System juga dapat melibatkan perawatan lokasi fisik file, juga memberikan akses ke data pada file server dengan berlaku sebagai klien untuk protokol jaringan (mis. NFS atau SMB klien), atau dapat juga berlaku sebagai file system virtual dan hanya ada sebagai metode akses untuk data virtual.

Lebih umum lagi, file system merupakan database khusus untuk penyimpanan, pengelolaan, manipulasi dan pengambilan data.

1. Aspek-aspek file system
Kebanyakan file System menggunakan media penyimpan mendasar yang menawarkan akses ke suatu array dengan blok ukuran tertentu yang dinamakan sector, umumnya dengan ukuran pangkat 2 (512 bytes atau 1,2, atau 4 KiB). Software File System bertugas menata sektor-sektor tersebut menjadi file dan direktori, serta mengatur sektor mana milik file mana dan sektor mana yang belum terpakai. Kebanyakan file system mengalamatkan data dalam unit dengan ukuran tertentu yang disebut cluster atau blok yang mengandung sejumlah disk sector (biasanya antara 1-64). Cluster atau blok ini adalah space disk terkecil yang dapat dialokasikan untuk menyimpan file.

Bagimanapun, file system bisa jadi tidak perlu menggunakan media penyimpan sama sekali. File System dapat dipakai untuk menata dan mewakili akses ke setiap data, apakah data itu disimpan atau dibuat secara dinamis.



1.1 Nama File
Tidak peduli apakah file System memiliki media penyimpan atau tidak, file system umumnya memiliki direktori yang menyesuaikan antara nama file dan file, biasanya dengan menghubungkan nama file dan suatu index dalam file.

1.2 Metadata
Informasi lain yang disimpan biasanya berhubungan dengan tiap file yang ada dalam file system. Panjang data yang dikandung dalam sebuah file dapat disimpan sebagai nomor blok yang disediakan untuk file atau sebagai hitungan byte. Waktu di mana file terakhir kali dimodifikasi dapat disimpan sebagai timestamp dari file. Beberapa file system juga menyimpan waktu pembuatan file, waktu terakhir kali diakses, dan waktu di mana meta data dari file diubah. Informasi lain termasuk juga tipe media file (blok, karakter, soket, subdirektori), User-ID pemilik dan Group-ID, serta setting access permission-nya (read only, executeble, dll).

Atribut sebarang dapat dilekatkan pada file system tingkat lanjut, seperti XFS, ext2/ext3, beberapa versi UFS dan HFS+ menggunakan atribut file diperluas. Fitur ini diterapkan pada kernel Linux, FreeBSD dan MacOS X, serta membolehkan metadata untuk dihubungkan dengan file pada level file system. Misalnya info tentang pembuat dokumen, pengkodean karakter dari dokumen plain-text, atau checksum.

1.3 File system hirarkis
File System hirarkis merupakan minat riset awal dari Dennis Ritchie. Implementasi sebelumnya terbatas pada beberapa level, terutama IBM, bahkan pada database awal mereka seperti IMS. Setelah suksesnya Unix, Ritchie memperluas konsep file system ini ke dalam setiap objek dalam pengembangan Sistem Operasi berikutnya yang dikembangkannya, seperti Plan 9 dan Inferno.

1.4 Fasilitas
File System tradisional menawarkan fasilitas untuk membuat, memindah dan menghapus file dan direktrori. File System tradisional masih kekurangan fasilitas untuk membuat link tambahan ke direktrori, merubah link parent, dan membuat link bidireksional ke file.

File system tradisional juga menawarkan fasilitas untuk memotong, menambah catatan, membuat, memindah, menghapus dan modifikasi file di tempat. Mereka tidak menawarkan fasilitas untuk menambah di awal atau untuk meghapus dari bagian awal file, membiarkan penyisipan tunggal sembarang ke file atau penghapusan dari file. Operasi yang disediakan sangat asimetris dan kekurangan manfaat dalam konteks yang tidak diharapkan. Misalnya, pipe interproses dalam Unix harus dilakukan di luar file system karena konspe pipe tidak menawarkan pemotongan dari awal file.

1.5 Keamanan akses
Akses aman ke dalam operasi file system dasar dapat didasarkan pada skema Access Control List atau Capability. Hasil riset menunjukkan bahwa ACL sulit mengamankan secara patut. File System komersial masih menggunakan Access Control List.


2. Tipe-tipe File System
Tipe-tipe File System dapat diklasifikaskan ke dalam disk file system, file system jaringan dan file system untuk tujuan khusus.

2.1 File system Disk
Sebuah file system disk adalah file system yang didesain untuk menyimpan data pada sebuah media penyimpan data, umumnya disk drive baik yang langsung atau tidak langsung terhubung ke komputer. Contoh File System Disk misalnya FAT (FAT 12, FAT 16, FAT 320), NTFS, HFS, HFS+, ext2, ext3, ISO 9660, ODS-5 dan UDF. Beberapa File System Disk ada yang termasuk file system journaling atau file system versioning.

2.2 File System Flash
Sebuah file system Flash adalah file system yang didesain untuk menyimpan data pada media flash memory. Hal ini menjadi lazim ketika jumlah perangkat mobile semakin banyak dan kapasitas memory flash yang semakin besar.
Block device layer dapat mensimulasikan sebuah disk drive agar file system disk dapat digunakan pada flash memory, tapi hal ini kurang optimal untuk beberapa alasan. Menghapus blok. Blok Flash memory harus dihapus sebelum dapat ditulis. Waktu yang dibutuhkan untuk menghapus sebuah blok bisa jadi signifikan, dan hal ini juga bermanfaat untuk menghapus blok yang tidak dipakai saat media dalam keadaan idle. Random Access. file system Disk ditingkatkan untuk mencegah pencarian disk, Flash memory tidak membebankan proses pencarian sama sekali . Level pemakaian: media memori flash cenderung mudah rusak ketika satu blok tunggal di-overwrite secara berulang; file system flash didesian untuk me-write secara merata

2.3 File System Database
Konsep baru untuk manajemen file adalah konsep file system berbasis database. Sebagai perbaikan bagi Manajemen terstruktur hirarkis, file diidentifikasi oleh karakteristiknya, seperti tipe file, topik, pembuat atau metadata yang sama.

2.4 File System Transaksional
Setiap operasi disk dapat melibatkan perubahan ke sejumlah file dan struktur disk yang berbeda. Dalam banyak kasus, perubahan ini berhubungan. Hali in iberarti bahwa operasi ini dieksekusi pada waktu yang sama. Ambil contoh ketika sebuah Bank mengirimkan uang ke Bank lain secara elektronik. Komputer Bank akan ‘mengirim’ perintah transfer ke Bank lain dan meng-update record-nya untuk menunjukkan bahwa telah terjadi transaksi. Jika untuk beberapa alasan terjadi crash antar komputer sebelum komputer berhasil mengupdate record-nya sendiri, maka tidak akan ada tidak akan ada record transfer tapi Bank akan kehilangan uangnya. Pemrosesan transaksi memperkenalkan jaminan bahwa pada tiap point ketika transaksi berlangsung, sebuah transaksi dapat disudahi secara tuntas atau diulang sepenuhnya. Hal ini berarti jika terjadi crash atau kegagalan power, setelah recovery, kondisi yang disimpan akan tetap. File System journaling adalah salah satu teknik yang digunakan untuk mengenalkan konsistensi level-transaksi ke dalam struktur file system.

2.5 File System Jaringan
File System Network adalah file system yang bertindak sebagai klien untuk protokol akses file jarak jauh, memberikan akses ke file pada sebuah server. Contoh dari File system network ini adalah klien protokol NFS, AFS, SMB, dan klien FTP dan WebDAV

2.6 File System untuk Tujuan khusus
File System untuk tujuan khusus adalah file system yang tidak termasuk disk file system atau file system Jaringan. Termasuk dalam kategori ini adalah sistem di mana file ditata secara dinamis oleh software, ditujukan untuk tujuan tertentu seperti untuk komunikasi antar proses komputer atau space file sementara.
File system untuk tujuan khusus sangat banyak dipakai oleh OS yang berpusat pada file seperti UNIX. Contoh file system ini adalah file system procfs (/proc) yang dipakai oleh beberapa varian Unix, yang memberikan akses ke informasi mengenai proses dan fitur-fitur dari OS

2.7 File System Journaling
File system journaling adalah file system yang mencatat perubahan ke dalam jurnal (biasanya berupa log sirkuolar dalam area tertentu) sebelum melakukan perubahan ke file system. File system seperti ini memiliki kemungkinan yang lebih kecil mengalami kerusakan saat terjadi power failure atau system crash.

Meng-update file system untuk menunjukkan perubahan ke file dan direktori biasanya membutuhkan banyak operasi write yang terpisah. Sebagai contoh, operasi delete dalam file system Sistem Unix melibatkan dua proses:

1. menghilangkan entri direktori

2. menandai inode dan space file sebagai space yang kosong Jika terjadi crash antara proses 1 dan 2, akan akan inode yang rusak. Di sisi lain, jika hanya proses 2 yang dijalankan pertama kali sebelum crash maka file yang belum dihapus Akan ditandai sebagai kosong dan mungkin akan ditumpuk dengan file lain.
Dalam file system non-journaling, mencari dan memperbaiki kerusakan ini akam membutuhkan penelusuran menyeluruh pada struktur datanya. Hal ini akan memakan waktu lama jika file system tersebut besar dan jika bandwidth I/O kecil.
File system journaling menjaga jurnal perubahan yang akan dibuat, setiap waktu. Ketika terjadi crash, pemulihan dapat dilakukan dengan simple dengan mengulang perubahan dari jurnal ini hingga file system kembali konsisten.

3. Beberapa File system yang pernah dikembangkan Berikut ini adalah beberapa file system yang terkenal yang pernah dikembangkan. File system-file system berikut terutama dikembangkan untuk Sistem Operasi Windows dan Unix atau Linux. Namun, ada juga file system yang dapat berjalan baik di Linux maupun di Windows.

3.1 FAT
FAT merupakan File System yang digunakan dalam Sistem Operasi Windows. Nama FAT berasal dari penggunaan tabel yang memusatkan informasi tentang area mana milik file yang kosong atau mungkin tidak dipakai, dan di mana setiap file yang disimpan dalam disk. Untuk membatasi ukuran tabel, space disk dialokasikan ke file dalam grup-grup sektor hardware yang bersebelahan, disebut cluster. Ketika disk drive berkembang, jumlah maksimum cluster pun meningkat dan begitu juga jumlah bit yang mengidentifikasikan bahwa cluster telah berkembang. Versi pengembangan dari format file system FAT dinamai sesuai dengan jumlah bit tabel elemennya, yaitu: FAT12, FAT16 dan FAT32.

3.2 NTFS
NTFS merupakan file system standar untuk Windows NT termasuk windows 200, XP, Server 2003, Windows Server 2008 dan Wondows Vista. NTFS menggantikan file system FAT sebagai file system yang dipakai untuk Sistem Operasi Windows. Versi rilis NTFS ada beberapa, sebagai berikut:
. v1.0 with NT 3.1, dirilis pertengahan-1993
. v1.1 with NT 3.5 dirilis 1994
. v1.2 (pertengahan -1995) and NT 4 (pertengahan -1996)
. v3.0 dari Windows 2000
. v3.1 dari Windows XP (2001), Windows Server 2003 (2003), Windows Vista
(pertengahan -2005) dan Windows Server 2008
Dalam NTFS, semua file data – nama file, tangal pembuatan, ijin akses dan isi – disimpan dalam metadata dalam Master File Table (MFT). NTFS mengijinkan setiap urutan 16-bit nilai utuk encoding nama (nama file, nama stream, nama index, dll) Master File table mengandung metadata tentang setiap file, direktori dan metafile dalam suatu volume dengan partisi NTFS. Metadata itu termasuk nama filem lokasim ukuran dan ijinnya. Strukturnya mendukung algoritma yang memperkecil disk fragmentation.

3.3 ext2
Ext2 atau second extended file system adalah file system untuk kernel Linux. Meskipun bukan termasuk file system journaling, tapi penerusnya yaitu ext3 menyediakan fitur journaling dan hampir sepenuhnya kompatibel dengan ext2. File system pertama yang dipakai dalam Sistem Operasi Linux adalah Minix FS yang hampir bebas sepenuhnya dari bug, namun menggunakan offset 16-bit dan ukuran maksimum hanya 64 MB. Nama file juga terbatas hanya 14 karakter. Untuk mengatasi hal ini, dibuatlah file system baru yang dimulai dengan penambahan layer file system virtual pada kernel Linux.

File system ext dirilis pada April 1992 sebagai file system pertama yang menggunakan VFS API dan dimasukkan dalam Linux 0.96c. File system ext menyelesaikan dua masalah Utama dalam Minix FS (ukuran partisi max dan panjang nama file), dan membolehkan partisi hingga 2GB dan nama file hingga 255 karakter. Namun masih ada masalah: belum ada dukungan untuk akses terpisah, modifikasi inode dan timestamp modifikasi data.

Ext2 didesain dengan tujuan bahwa file system ini akan dapat dikembangakan lagi, dengan sisa space yang masih banyak pada struktur datanya untuk dipakai dalam versi mendatang. Fitur seperti POSIX ACL dan atribut diperluas diimplementasikan pertama kali pada ext2 karena mudah diperluas dan internalnya sangat dimengerti.

Dalam Kernel Linux hingga 2.6, batasan dalam driver blok berarti bahwa file system ext2 memiliki ukuran file maksimum 2 TiB. Kernel Linux yang lebi baru membolehkan ukuran file yang lebih besar, namun sistem 32-bit hanya membatasi hingga ukuran file 2 TiB. Ext2 masih direkomendasikan sebagai file system journaling pada Flash Drive USB bootable dan media solid-state lainnya. Ext2 melakukan operasi write yang lebih sedikit dibading ext3 karena ext2 tidak perlu melakukan write ke journal. Faktor utama yang mempengaruhi usia flash Drive adalah siklus hapus, dan juga siklus write, hal inilah yang menyebabkan pemakaian ext2 membuat usia media flash drive lebih panjang.

Space dalam ext2 dibagi dalam blok-blok dan ditata dalam grup-grup blok, sama dnegan grup silinder dalam File System Unix. Hal ini dilakukan untuk mengurangi fragmentasi external dan mengurangi pencarian disk saat me-read data yang besar.

Tiap grup blok berisi superblok, bitmap grup blok, bitmap inode diikuti oleh data blok aktual. Superblok mengandung informasi penting yang krusial untuk proses booting Sistem Operasi, namun copy back up juga dibuat pada setiap grup blok dari tiap blok dalam file system. Hanya copy pertama yang ada pada blok pertama file system yang dipakai dalam proses booting. Deskriptor blok menyimpan nilai bitmap blok, bitmap inode dan table inode awal untuk tiap grup blok yang nantinya semuanya akan disimpan dalam tabel grup descriptor.

3.4 ext3
Ext3 atau third extended file system adalah file system journaling yang umum digunakan dalam Sistem Operasi Linux. Ext3 merupakan pengembangan versi journaling dari file system ext2 yang hampir kompatibel secara keseluruhan dengan ext2. Adanya fitur journaling inilah yang membuatnya lebih dibanding ext2 yang membuatnya lebih reliable dan menghilagkan keperluan untuk mengecek file system setelah shutdown yang tidak semestinya.

Meskipun kecepatannya tidak lebih baik daripada file system Linux lainnya seperti JFS, ReiserFS dan XFS, tapi ext3 memiliki manfaat yang signifikan yaitu membolehkan upgrade di tempat dari file system ext2 tanpa harus mem-back up dan me-restore data yang berarti mengurangi konsumsi daya CPU. Ext3 juga diangap lebih aman dibanding file system Linux lainnya karena kederhanaannya dan juga uji cobanya yang luas.

File system ext3 menambahkan fitur-fitur ini dibanding pendahulunya:

-File system journaling
-Penambahan file system secara online
-Indeks htree untuk direktori yang lebih luas


Tanpa ini, file system ext3 akan sama saja dengan ext2.
Ada 3 level journaling yang tersedia dalam implementasi ext3 pada Sistem Linux:
Journal (resiko terendah)
Metadata dan isi file disimpan dalam jurnal sebelum dikerjakan ke file system utama.
Ordered (resiko menengah)
Hanya metadata yang disimpan dalam jurnal, isi file tidak disimpan tapi dijamin bahwa bahwa isi file disimpan ke disk sebelum metadata yang bersesuaian ditandai untuk dicommit dalam jurnal.

Writeback (resiko tertinggi)

Hanya metadata yang disimpan dalam jurnal, isi file tidak. Isi file mungkin di-write
sebelum atau sesudah jurnal di-update. Akibatnya, file dimodifikasi tepat sebelum crash
dapat terjadi.

Ukuran
BLok
Ukuran file Max
Ukuran file system
Max
1KiB 16GiB <2TiB
2KiB 256GiB <4TiB
4KiB 2TiB <8TiB
8KiB 2TiB <16TiB



4. File system and Sistem Operasi
Hampir semua OS juga menyediakan file system, karena file system adalah bagian integral dari semua OS. Tugas nyata dari OS microcomputer generasi awal hanyalah berupa manajemen file. Beberapa OS masa kini memiliki komponen terpisah untuk menangani file system yang dulunya disebut Disk Operating System (DOS) ini. Dalam beberapa mikrokomputer, DOS diload secara terpisah dari bagian OS yang lain.

Karena itulah, diperlukan interface antara user dan file system yang disediakan oleh software dalam Sistem Operasi. Interface ini dapat berupa textual seprti Unix Shell atau grafis seperti file browser. Jika berupa grafis, seringkali digunakan metafora seperti folder, isi dokumen, file dan direktori folder.

4.1 File system flat
Dalam sebuah file system flat, tidak ada subdirektori – semua file disimpan pada level media yang sama (root), misal hard disk, floppy disk, dll. Sistem ini menjadi tidak efisien ketika jumlah file bertambah banyak, dan karenanya sulit bagi user untuk mengorganisir data ke dalam grup-grup.

4.2 File system dalam platform Sistem Operasi Unix-like
Sistem Operasi Unix-like membuat file system virtual, yang membuat semua file pada semua media tampak berada pada susatu hirarki tunggal. Hal ini berarti, dalam sistem tersebut,ada satu direktori /root, dan setiap file yang ada pada sistem diletakkan di bawah direktori tersebut.. Lebih jauh lagi, direktori /root tidak harus berada dalam suatu media fisik. D­­­­­­­irsktori tersebut bisa jadi tidak ada di Hard Drive bahkan mungkin tidak berada di komputer Anda. OS Unix-Like dapat menggunakan sumber daya dari jaringan sebagai direktori /root-nya.

Sistem Unix-like memberikan nama kepada tiap media, tapi hal ini bukanlah cara bagaimana file dalam media tersebut diakses. Untuk mendapatkan akses ke file di media lain, Anda pertama kali harus memberitahu OS di direktori mana file tersebut akan tampil. Proses ini disebut dengan mounting sebuah file system. Sebagai contoh, untuk mengakses file pada CD-ROM, user harus memberitahu OS “ambil file system dari CD-ROM ini dan tampilkan pada direktori ini dan ini”. Direktori yang diberikan ke OS disebut sebagai mountpoint, yang bisa berupa, misalnya /media. Direktori /media ada pada kebanyakan Sistem Unix dan ditujukan khusus untuk dipakai sebagai mount point untuk media removable seperti CD, DVD, dan floppy disk. Umumnya, hanya administrator aau pengguna root dapat melakukan aksi mounting file system ini.

OS Unix-like seringkali sudah memiliki software dan tools yang menangani proses mounting dan menyediakan fungsi baru. Strategi ini disebut dengan “auto-mounting”, seperti yang tercermin dalam tujuannya.

1. Dalam banyak situasi, file system selain root diharuskan tersedia segera setelah OS telah boot. Karena itu, semua Sistem Unix-like menyediakan fasilitas untuk me-mount file system pada saat booting. Administrator menyebut file system ini
2. Dalam beberapa situasi, tidak perlu me-mount beberapa file system pada saat boot, meskipun mungkin dibutuhkan setelahnya. Ada
3. Media removable telah menjadi hal yang umm dengan platform mikrokomputer. Removable media ini mengijinkan program dan data untuk ditransfer antar mesin tanpa koneksi fisik. Misalnya USB flash drive, CD-RM, dan DVD. Hal ini menyebabkan dikembangkannya perangkat untuk mendeteksi keberadaan suatu medium dan ketersediaan mount-point serta me-mount media tersebut tanpa intervensi dari user.
4.Sistem Unix-like yang lebih maju juga telah mengenalkan konsep yang disebut supermounting. Contohnya, sebuah floppy disk yang telah di-supermount dapat dicopot secara fisik dari sistem. Dalam keadaan normal, disk harus sudah disinkronkan dan kemudian di-unmount sebelum dicopot. Sinkronisasi yang diperlukan sudah terjadi, disk yang berbeda dapat disisipkan ke dalam drive. Sistem secara otomatis mengetahui bahwa disk telah dirubah dan mengupdate isi mount point untuk mengindikasikan medium baru. Fungsi serupa ditemukan pada mesin Windows standar.
5. Inovasi serupa yang dipilih oleh beberapa pengguna adalah menggunakan autofs, sistem yang tidak membutuhkan perintah mount manual. Perbedaannya dengan supermount adalah media di-mount secara transparan ketika permintaan ke file system dibuat. Cara ini sesuai untuk file system pada server jaringan.

4.2.1 File system dalam platform Linux
Linux mendukung banyak file system yang berbeda, tapi pilihan yang umum untuk sistem
di antaranya adalah keluarga ext* (seperti ext2 dan ext3), XFS, JFS dan ReiserFS 4.2.2 File system dalam platform Mac OS X MacOS X menggunakan file system HFS Plus yang merupakan turunan dari Mac OS klasik yaitu. HFS plus adalah file system yang kaya metadata dan case preserve. Karena Mac OS X memiliki root milik Unix, aturan Unix juga ditambahkan dalam HFS Plus. Versi terbaru dari HFS plus menambahkan journaling untuk mencegah kerusakan pada struktur file system dan mengenalkan sejumlah optimasi dalam hal algoritma alokasi dalam usaha untuk memecah file secara otomatis tanpa membutuhkan defragmenter luar.

Nama file dapat mencapai 255 karakter. HFS Plus menggunakan pengkodean Unicode
untuk menyimpan nama file. Dalam Mac OS X, tipe file dapat diambil dari type code yang
disimpan dalam metadata atau nama file.

HFS Plus memiliki tiga macam link: Hard Link seperti pada Unix, Link simbolis Unix, dan alias. Alias didesain untuk menangani link ke file asli meski file tersebut telah dipindah ataupun diubah namanya. Alias ini tidak diinterpretasikan dalam file system, tapi pada kode File Manager pada userland.

Mac OS X juga mendukung penggunaan File System UFS yang merupakan turunan dari
File System Unix BSD.

4.3 File system dalam platform Microsoft Windows
Microsoft Windows menggunakan file system FAT dan NTFS

File System FAT (File Allocation Table) yang didukung oleh semua versi Microsoft Windows merupakan evolusi file system yang digunakan dalam MS DOS. Selama bertahun-tahun, banyak fitur telah ditambahkan dalam pengembangannya, yang terinspirasi dari fitur serupa yang ada pada file system yang dipakai pada Unix. Versi lama dari file system FAT (FAT12 dan FAT16) memiliki keterbatasan dalam memberikan nama file, batasan dalam hal jumlah entri dalam direktori root dalam file system dan batasan jumlah maksimum partisi. Secara spesifik, FAT12 dan FAT16 membatasi nama file hanya sampai 8 karakter dan 3 karakter untuk perluasan. VFAT yang merupakan perluasan dari FAT12 dan FAT16 mulai diperkenalkan pada Windows NT dan berikutnya dimasukkan dalam Windows 95, yang mengijinkan nama file yang panjang.

NTFS yang diperkenalkan bersama dengan Wndows NT mengijinkan kontrol berbasis Access Control List. NTFS juga mendukung Hard link, aliran file jamak, indexing atribut,
pengecekan kuota, kompresi dan menyediakan mount point untuk file system lainnya.

Tidak seperti Sistem Operasi lainnya, Windows menerapkan abstraksi berupa drive letter pada level user untuk membedakan sebuah disk atau partisi dari yang lain. Sebagai contoh, path C:\Windows menunjukkan direktori Windows pada partisi yang ditunjukkan oleh label huruf C. Drive dalam jaringan juga dapat di-map menjadi drive letter.

4.3.1 Proses pengambilan data
Sistem Operasi memanggil IFS (Installable File System) manager. IFS kemudian Memanggil FSD (File System Driver) yang sebenarnya untuk membuka file yang diminta dari beberapa pilihan FSD yang bekerja untuk File System yang berbeda –NTFS, VFAT, CDFS (untuk drive optikal) dan network drive. FSD kemudian mendapatkan info lokasi kluster pertama dari file pada disk dari FAT, VFAT atau MFT (Master File Table). MFT inilah yang yang memetakan semua file pada disk dan merekan jejak di mana file disimpan.

untuk bagian sebelumnya & selanjutnya :

analisa game engine

02.45 Edit This 0 Comments »
Sejarah dari Game Engine
Istilah “Game Engine” muncul pada pertengahan 1990-an, terutama dalam kaitannya dengan game 3D seperti orang pertama shooters (FPS). (Lihat juga: pertama-orang jujur mesin).Begitulah popularitas id Software ’s Doom dan Quakepermainan yang, daripada bekerja dari nol, lain pengembangberlisensi bagian inti dari perangkat lunak dan grafis yang dirancang mereka sendiri, karakter, senjata, dan tingkat-”permainan isi” atau “permainan aset. “ Pemisahan permainan-aturan tertentu dan data dari konsep-konsep dasar seperti tabrakan dan permainanentitas yang berarti bahwa tim bisa tumbuh dan mengkhususkan.
Kemudian permainan, seperti Quake III Arena dan Epic Games ’s 1998 Unreal dirancang dengan pendekatan ini dalam pikiran, dengan mesin dan konten dikembangkan secara terpisah.Praktek seperti perizinan teknologi telah terbukti menjadi aliran pendapatan tambahan yang berguna untuk beberapa pengembang game, sebagai lisensi tunggal untuk high-end mesin permainan komersial dapat berkisar dari US $ 10.000 hingga jutaan dolar, dan jumlah pemegang lisensi dapat mencapai beberapa lusin perusahaan (seperti terlihat dengan Unreal Engine).Setidaknya, mesin dapat digunakan kembali membuat sekuel permainan berkembang lebih cepat dan lebih mudah, yang merupakan keuntungan berharga dalam persaingan industri video game.
Sekarang hampir semua perusahaan game memiliki game engine mereka sendiri, menggunakannya untuk membuat game mereka, dan menyimpannya untuk diri sendiri. Semakin lama kebutuhan untuk game engine yang makin modern semakin bertambah. Waktu demi waktu, game engine yang mereka kembangkan sendiri mulai dirasa terlalu mahal untuk dikembangkan lebih lanjut. Hal ini memicu beberapa developer untuk menciptakan game engine yang terbuka untuk di franchise kan. Sebagai contoh adalah id Tech dan Unreal Engine. Game Engine yang dijual dan di franchisekan secara umum semacam ini disebut dengan middleware. Middleware menawarkan harga yang relatif lebih murah, dan bagi kebanyakan studio game, menggunakan middleware merupakan solusi cepat dan ekonomis ketimbang harus membangun sendiri engine game mereka. Konsep dari game engine sebenernya cukup gampang, yaitu bahan dasar yang diperlukan sebuah game untuk menjalankan tugasnya, merender pixel demi pixel, menghitung physiscs, memperkirakan input tombol, dan lain hal, yang memungkinkan developer kreatif dapat membuat sebuah game dengan engine yang sama menjadi unik satu sama lain. Di analogikan sebagai sebuah mobil, game engine sudah merupakan bagian mobil, sekitar 50% jadi. Mesin dan rangkaian sistem pengapian, sampai pembuangan. Kurang body dan aksesoris. Sebuah game engine memungkinkan penggunaan kembali komponen komponen yang dapat mempercepat hadirnya game menjadi nyata di layar monitor mu. Beberapa diantara nya yang termasuk dengan itu adalah deteksi tubrukan, tampilan grafis, setting dalam game, artificial intelligence dan lain lain. Semua komponen tadi disatukan dalam satu pake game engine. Artist dan Developer, dapat menambahkan pustaka texture dan model sendiri untuk dijadikan tokoh utama atau setting dunia dalam sebuah engine. Sekali lagi dalam analogi game, model dan texture dalam game engine bisa dibilang sebagai body dan aksesoris mobil. Sebuah game engine dibagi lagi menjadi dua bagian besar. Yaitu API dan SDK. API ( Applicaiton Programming Interfaces ) adalah bagian operating system, services dan libraries yang diperlukan untuk memanfaatkan beberapa feature yang diperlukan. Dalam hal ini contohnya DirectX. Sementara SDK adalah kumpulan dari libraries dan API yang sudah siap digunakan untuk memodifikasi program yang menggunakan operating system dan services yang sama. Biasanya, game engine menyertakan keduanya. Contohnya dalam Unreal Engine, menyiapkan antarmuka baku bagi programmer untuk menciptakan game nya dengan mudah, melalui scripting engine, yang disebut UnrealScript, dan juga libraries, yang berisi model standar dan texture standar dan juga world editor yang disebut sebagai UnrealED.

Pengertian Game Engine

Game Engine adalah system perangkat lunak yang dirancang untuk menciptakan dan pengembangan video game. Ada banyak mesin permainan yang dirancang untuk bekerja pada konsol permainan video dan sistem operasi desktop seperti Microsoft Windows, Linux, dan Mac OS X. fungsionalitas inti biasanya disediakan oleh mesin permainan mencakup mesin render ( “renderer”) untuk 2D atau 3D grafis, mesin fisika atau tabrakan (dan tanggapan tabrakan), suara, script, animasi, kecerdasan buatan, jaringan, streaming, manajemen memori, threading, dukungan lokalisasi, dan adegan grafik. Proses pengembangan permainan sering dihemat oleh sebagian besar menggunakan kembali mesin permainan yang sama untuk menciptakan permainan yang berbeda.
Engine bukanlah executable program, artinya engine tidak bisa dijalankan sebagai program yang berdiri sendiri. Diperlukan sebuah program utama sebagai entry point atau titik awal jalannya program. Pada C++, entry point-nya adalah fungsi ‘main().’ Biasanya program utama ini relatif pendek. Game engine adalah program yang ‘memotori’ jalannya suatu program game. Kalau game diilustrasikan sebagai ‘musik’ yang keluar dari mp3 player, maka engine adalah ‘mp3 player’ dan program utama adalah ‘data mp3’ yang dimasukkan ke dalam mp3 player tersebut. Dengan adanya engine, waktu, tenaga dan biaya yang dibutuhkan untuk membuat game software menjadi berkurang secara signifikan. Beberapa game dengan jenis dan gameplay yang hampir sama bisa dibuat dengan sedikit usaha bila terlebih dulu dibuat engine-nya. Setelah engine diselesaikan, programmer hanya perlu menambahkan program utama, memakai resources (objek 3D, musik, efek suara) yang baru, dan, jika benar-benar dibutuhkan, sedikit memodifikasi engine sesuai kebutuhan spesifk dari game yang bersangkutan. Program game engine seluruhnya berorientasi objek. Dia lebih bersifat reaktif daripada prosedural. Sulit untuk menggambarkan engine secara keseluruhan dalam flow-chart, karena alur program bisa diatur sesuai dengan keinginan pemakai engine, yaitu game programmer.
Tipe Tipe Game Engine
Game engine biasanya datang dengan berbagai macam jenis dan ditujukan untuk berbagai kemampuan pemrogramman. Tapi dalam pembahasan sekarang ini, ketimbang harus me-list semua jenis game engine yang ada di wikipedia, mendingan kita bahas garis besar nya saja.
Roll-your-own game engine. Banyak perusahaan game kecil seperti publisher indie biasanya menggunakan engine nya sendiri. Ini berarti mereka menggunakan API seperti XNA, DirectX atau OpenGL untuk membuat game engine mereka sendiri. Disisi lain, mereka kadang menggunakan libraries komersil atau malah open source. Terkadang mereka malah membuat semuanya dari nol.
Biasanya, game engine tipe ini lebih disukai karena selain kemungkinan besar tersedia gratis, juga memperbolehkan mereka, para developer, lebih fleksibel dalam mengintegrasikan komponen yang diinginkan untuk dibentuk sebagai game engine mereka sendiri. Kelemahannya, banyak engine yang dibuat dengan cara semacam ini malah menyerang balik developernya. Menara Games Studio membutuhkan satu tahun penuh untuk menyempurnakan game engine nya, hanya untuk di tulis ulang semuanya dalam beberapa hari penggunaan karena adanya bug kecil yang sangat mengganggu.
Mostly-ready game engines. Engine engine ini biasanya sudah menyediakan semuanya begitu diberikan pada developer / programmer. Semuanya termasuk contoh GUI, physiscs, libraries model dan texture, dan segalanya. Banyak dari mereka yang sudah benar benar matang, sehingga dapat langsung digunakan untuk scripting sejak hari pertama.
Biasanya game engine semacam ini memiliki batasan batasan, terutama jika dibandingkan dengan game engine sebelumnya yang benar benar terbuka lebar. Hal ini ditujukan agar tidak terjadi terlalu banyak error yang mungkin terjadi setelah sebuah game yang menggunakan engine ini dirilis, dan masih memungkinkan game engine nya itu sendiri untuk mengoptimalkan kinerja game nya. Banyak dari game engine seperti ini, Unreal Engine, Source Engine, id Tech Engine dan sebagainya, yang sudah sangat optimal dibandingkan jika harus membuat dari awal. Hal ini dengan serta merta menyingkat sangat banyak waktu dan jelas, biaya dari para Developer game.
Point-and-click engines. Engine untuk point-and-click merupakan engine yang sangat amat dibatasi, tapi dibuat sangat user friendly. Kamu bahkan bisa mulai membuat game mu sendiri menggunakan engine seperti GameMaker, Torque Game Builder dan Unity3D. Dengan sedikit memanfaatkan coding, kamu sudah bisa merilis game point-and-click yang kamu banget.
Kekurangannya terletak pada terbatasnya jenis interaksi yang bisa dilakukan, dan biasanya hal ini mencakup semuanya, mulai dari grafis, hingga tata suara. Tapi bukan berarti game engine jenis ini nggak berguna, bagi developer cerdas dan berdaya kreativitas tinggi, game engine bapuk seperti ini bisa dirubah menjadi sebuah game menyenangkan, seperti Flow. Game engine seperti ini memang ditujukan bagi developer yang ingin menyingkat waktu pemrogramman, dan secepatnya merilis game game mereka.
Jenis – Jenis Game Engine
1. Freeware
  • Blender
  • Golden T Game Engine (GTGE)
  • DXFramework
  • Ogre
  • Aleph One
  • Axiom Engine
  • Allegro Library
  • Box2D
  • Build Engine
  • Cube
  • Cube 2
  • DarkPlaces
  • jMonkeyEngine (jME)
  • Panda3D
  • Pipmak Game
  • Unity
2. Berbayar/ Commercial
  • Alamo
  • A.L.I.V.E
  • BigWorld
  • DXStudio
  • Dunia Engine
  • Euphoria
  • GameStudio
  • Jade Engine
  • Jedi
  • Medusa
  • RPG Maker VX
  • RPG Maker XP
  • RPG Maker 2003
  • RPG Maker 95
  • Vision Engine
  • Visual3d
PerbanPerbandingan 2 Buah Game Engine Freeware Game Engine dan Comercial Game Engine, antara lain :
Freeware Game Engine Unity


Unity adalah alat authoring terpadu untuk membuat video game 3D atau konten interaktif lainnya, seperti visualisasi arsitektur atau real-time 3D animasi. Unity serupa dengan Direktur, game engine Blender, Virtools atau Torque Game Builder dalam arti bahwa lingkungan grafis terintegrasi dengan metode utama pembangunan. Editor berjalan pada Windows dan Mac OS X dan dapat menghasilkan permainan untuk Windows, Mac, Wii , atau iPhone platform,
Kelebihannya:
  • Otomatis mengimpor aset – aset load ke Unity dan secara otomatis diimpor, dan impor kembali jika aset diperbarui. Meskipun banyak aplikasi 3D modeling populer didukung oleh Unity, dengan integrasi  3ds Max, Maya, Blender, Cinema 4D, dan Cheetah3D yang paling lengkap mendukung untuk masuk ke format lain bervariasi.
  • Mesin grafis menggunakan Direct3D (Windows), OpenGL (Mac, Windows) dan berpemilik API (Wii).
  • Mendukung  Bump mappingReflection mappingParallax mappingScreen Space Ambient Occlusion bayangan dinamis menggunakan shadow maps, merender teksturenya  dan membuat layar penuh efek pengolahan.
  • Game Scripting melalui Mono . Scripting dibangun di atas Mono, implementasi open source dari. NET Framework. Karena itu, pemrogram dapat menggunakan JavaScript, C # atau Boo (yang memiliki sintaks Python).
  • sudah mendukung pembuatan dari Nvidia’s (khususnya Ageia’sPhysX physics engine.
  • Pemutaran video menggunakan codec Theora
Commercial Game Engine
Torque Game Engine, atau TGE, adalah versi modifikasi dari sebuah 3D komputer mesin permainanawalnya dikembangkan oleh Dynamix untuk 2001 FPD suku 2. Torsi mesin yang sejak saat itu telah tersedia untuk lisensi dari GarageGames untuk independen dan profesional pengembang permainan. Beberapa judul terkenal komersial dikembangkan dengan menggunakan mesin termasuk Blockland, Marble Blast Gold, Minion dari Tawa, TubeTwist, Ultimate Duck Hunting, Wildlife Tycoon: Venture Afrika, ThinkTanks, The Destiny of Zorro dan Penny Arcade Adventures. Torque Game Engine tidak lagi dijual karena telah digantikan oleh Torque 3D
Kelebihannya:
  • Selain sebagai mesin grafis 3D, TGE menyediakan kode jaringan yang kuat, scripting, di-dunia mesin editing dan GUI penciptaan. The source code dapat dikompilasi pada Windows, Macintosh, Linux, Wii, Xbox 360 dan iPhone platform.
  • Model pemuatan mendukung model 3D dalam. DTS format file dan. DIF format file.
  • Torsi mendukung jaringan LAN dan permainan di internet dengan tradisional arsitektur client-server. Server objek “ghosted” pada klien dan diperbarui secara berkala atau pada peristiwa.
  • DTS model biasanya digunakan untuk karakter dan kendaraan meskipun kadang-kadang,disini digunakan untuk bangunan dan interior jadi beda .
  • Dataran secara otomatis menyala dan tekstur diterapkan pada daerah dapat dicampur bersama-sama dengan dengan rapi.
Kekurangannya:
  • Banyak versi dari Torque Game Engine, terutama Torque Torque X dan 3d, yang hampir seluruhnya kurang di dokumentasi resmi. Sebagai contoh, satu-satunya dokumentasi resmi untuk Torque 3d terdiri dari deskripsi singkat subset terbatas fitur
  • Sofwarenya mahal sekali Tersedia Lisensi Indie untuk individu dan perusahaan yang membuat kurang dari US $ 250,000 dalam penjualan tahun sebelumnya, dan Lisensi Komersial Tersedia pada harga yang lebih tinggi untuk individu dan perusahaan yang membuat lebih dari 250,000 dolar di tahun sebelumnya
Sumber:

LISTING PAA3

05.19 Edit This 0 Comments »


#include
#include
#include

void prima (),bsort(),kalimatriks();

main()
{
 start :
 int x;
 clrscr();
 printf ("\n \t Algoritma Brute Force \n");
 printf ("\n ==========================================");
 printf ("\n \t 1. Pencarian Bilangan Prima");
 printf ("\n \t 2. Sorting Bilangan");
 printf ("\n \t 3. Perkalian Matrix");
 printf ("\n \t 4. Exit ");
 printf ("\n ========================================= \n");
 printf ("\n Masukkan Pilihan (1-4) : ");
 scanf ("%d",&x);
 switch(x)
  {
            case 1  : prima ();
                          goto start;
            case 2  : bsort();
                          goto start;
            case 3  : kalimatriks();
                          goto start;
            case 4  : return 0;
            default : clrscr();
                 printf("\n \n \n \n \n \n \t \t \t Anda Salah memasukkan Input");
                          printf("\n \t \t Program Akan Direstart Setelah Anda Menekan Tombol Enter");
                 getch();
                          goto start;
  }
}

void prima ()
{
  int bil,j;
  clrscr();
  printf ("\t \t \t Pencarian Bilangan Prima \n \n \n");
  printf ("Masukkan Data Yang Ingin Diinput: ");
  scanf("%d",&bil);
  for(j=2;j<=bil;j++)
  {
             if ((j%2>0)&&(j%3>0)&&(j%5>0)&&(j%7>0) || (j==2)||(j==3)||(j==5)||(j==7))
             printf ("%i ",j);
  }
  getch();
}

void bsort()
{
  int i,j,temp,n,bil[100];
  clrscr();
  printf ("\t \t \t Sorting Bilangan \n \n \n" );
  printf ("Masukkan jumlah bilangan: " );
  scanf ("%d",&n);
 for(i=0;i
 {
  printf ("Bilangan ke-%d \t: ",i+1);
  scanf ("%d",&bil[i]);
 }
 printf ("\n");
 for(i=0;i
 {
  for(j=n-1;j>i;j--)
  {
            if (bil[i] > bil[j])
   {
             temp = bil[i];
    bil[i] = bil[j];
             bil[j] = temp;
   }
  }
 }
 printf ("Sorting:");
 for(i=0;i
 {
  printf ("%d",bil[i]);
  if (i!= n-1);
  {
            printf (",");
  }
 }
 getch();
}

void kalimatriks()
{
 int i,j,k,temp,ordo,ma[10][10],mb[10][10],mc[10][10];
 clrscr();
 printf ("\t \t \t Perkalian Matrix \n \n \n");
 printf ("Masukkan Ordo Matriks: ");
 scanf ("%d", &ordo);
 printf ("Matriks A: ");
 for(i=0;i
 {
  for(j=0;j
  {
            gotoxy((j+1)*5,i+6);
            scanf ("%d", &ma[i][j]);
  }
 }
 printf ("\n");
 printf ("Matriks B: ");
 for(i=0;i
 {
  for(j=0;j
  {
            gotoxy((j+1)*5,i+8+ordo);
            scanf ("%d", &mb[i][j]);
  }
 }
 for(i=0;i
 {
  for(j=0;j
  {
            temp = 0;
            for(k=0;k
            {
             temp += ma[i][k] * mb[k][j];
            }
            mc[i][j] = temp;
  }
 }
 printf ("\n \n");
 printf ("Hasil Matriks A * Matriks B: ");
 for(i=0;i
 {
  for(j=0;j
  {
            gotoxy((j+1)*5,i+11+ordo*2);
            printf ("%d",mc[i][j]);
  }
 }
 getch();
}

OUTPUT: 





LISTING PAA2

04.05 Edit This 0 Comments »
#include
#include
int max,min;
int a[100];
void maxmin(int i, int j)
{
  int max1,min1,mid;
  if (i==j)
   max=min=a[i];
  else
   if (i==j-1)
     {
     if (a[i]
                         {
       max=a[j];
       min=a[i];
                         }
      else
       {
                         max=a[i];
       min=a[j];
       }
              }
   else
      {
                        mid=(i+j)/2;
      maxmin(i,mid);
      max1=max;
                        min1=min;
      maxmin(mid+1,j);
                        if(max
            max=max1;
                        if(min>min1)
            min=min1;
                        }
}

void main()
{
 int i,num;
 clrscr();
 printf("\n\t\t\tMAXIMUM & MINIMUM\n\n");
 printf("\n Masukkan Banyak Angka:");
 scanf("%d",&num);
 printf("Masukkan Angkanya:\n");
 for (i=1;i<=num;i++)
 {
            scanf("%d",&a[i]);
 }
 max=a[0];
 min=a[0];
 maxmin(1,num);
 printf("Maximum Angka: %d\n",max);
 printf("Minimum Angka: %d\n",min);
 getch();
 }

KARENA TGL 25 DES LIBUR, MAKA
PRAKTIKUM DIADAKAN TANGGAL 21 DES 2010
DI LAB 4A JAM 15.30 - 17.30

jadual ujian i-lab 3IA09

23.24 Edit This 0 Comments »
ini jadual dan nomor kursi buat ujian i-lab download disini

FORMAT MANUAL BOOK PROLOG

07.05 Edit This 0 Comments »
Dengan ketentuan sebagai berikut :

1. COVER
2. DAFTAR ISI
3. ISI :
     - CARA BERMAIN 
     - ALGORITMA AI YANG DIPAKAI
     - SOURCE CODE
4. DAFTAR PUSTAKA
5. BLOSARIUM  (KATA-KATA YANG TERDENGAR ASING DI KUPING KALIAN)

dengan ketentuan seperti yang di atas telah disebutkan diharap jangan ada yang sampe ketinggalan atau ga ada ya..