Cari

Rabu, 05 Oktober 2011

Sistem Berkas

Sistem berkas (Inggris:File System) adalah metoda untuk memberi nama pada berkas dan meletakkannya pada media penyimpanan.
Semua sistem operasi mulai dari DOS, Windows, Macintosh dan turunan UNIX memiliki Sistem berkas sendiri untuk meletakkan file dalam sebuah struktur hirarki. Contoh dari sistem berkas termasuk di dalamnya FAT, NTFS, HFS dan HFS+, ext2, ext3, ISO 9660, ODS-5, dan UDF. Beberapa sistem berkas antara lain juga journaling file system atau versioning file system.

Mengenal Sistem Berkas (Media Penyimpanan)


Konsep Dasar

Seperti yang telah kita ketahui, komputer dapat menyimpan informasi ke beberapa media penyimpanan yang berbeda, seperti magnetic disks, magnetic tapes, dan optical disks. Agar komputer dapat digunakan dengan nyaman, sistem operasi menyediakan sistem penyimpanan dengan sistematika yang seragam. Sistem Operasi mengabstraksi properti fisik dari media penyimpanannya dan mendefinisikan unit penyimpanan logis, yaitu berkas. Berkas dipetakan ke media fisik oleh sistem operasi. Media penyimpanan ini umumnya bersifat nonvolatile , sehingga kandungan di dalamnya tidak akan hilang jika terjadi gagal listrik maupun system reboot.
Berkas adalah kumpulan informasi berkait yang diberi nama dan direkam pada penyimpanan sekunder. Dari sudut pandang pengguna, berkas merupakan bagian terkecil dari penyimpanan logis, artinya data tidak dapat ditulis ke penyimpanan sekunder kecuali jika berada di dalam berkas. Biasanya berkas merepresentasikan program(baik source maupun bentuk objek) dan data. Data dari berkas dapat bersifat numerik, alfabetik, alfanumerik, ataupun biner. Format berkas juga bisa bebas, misalnya berkas teks, atau dapat juga diformat pasti. Secara umum, berkas adalah urutan bit, byte, baris, atau catatan yang didefinisikan oleh pembuat berkas dan pengguna.
Informasi dalam berkas ditentukan oleh pembuatnya. Ada banyak beragam tipe informasi yang dapat disimpan dalam berkas. Hal ini disebabkan oleh struktur tertentu yang dimiliki oleh berkas, sesuai dengan tipenya masing-masing. Contohnya:
  • Text file; yaitu urutan karakter yang disusun ke dalam baris-baris.
  • Source file; yaitu urutan subroutine dan fungsi, yang nantinya akan dideklarasikan.
  • Object file; merupakan urutan byte yang diatur ke dalam blok-blok yang dikenali oleh linker dari sistem.
  • Executable file; adalah rangkaian code section yang dapat dibawa loader ke dalam memori dan dieksekusi.

Atribut Pada Berkas

Berkas diberi nama, untuk kenyamanan bagi pengguna, dan untuk acuan bagi data yang terkandung di dalamnya. Nama berkas biasanya berupa string atau karakter. Beberapa sistem membedakan penggunaan huruf besar dan kecil dalam penamaan sebuah berkas, sementara sistem yang lain menganggap kedua hal di atas sama.Ketika berkas diberi nama, maka berkas tersebut akan menjadi mandiri terhadap proses, pengguna, bahkan sistem yang membuatnya.
Atribut berkas terdiri dari:
  • 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, ataupun block
  • 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:
    • pembuatan berkas
    • modifikasi terakhir yang dilakukan pada berkas, dan
    • penggunaan terakhir berkas
Data-data tersebut dapat berguna untuk proteksi, keamanan, dan monitoring penggunaan dari berkas.
Informasi tentang seluruh berkas disimpan dalam struktur direktori yang terdapat pada penyimpanan sekunder. Direktori, seperti berkas, harus bersifat nonvolatile , sehingga keduanya harus disimpan pada sebuah device dan baru dibawa bagian per bagian ke memori pada saat dibutuhkan.

Operasi Pada Berkas

Sebuah berkas adalah tipe data abstrak. Untuk mendefinisikan berkas secara tepat, kita perlu melihat operasi yang dapat dilakukan pada berkas tersebut. Sistem operasi menyediakan system calls untuk membuat, membaca, menulis, mencari, menghapus, dan sebagainya. Berikut dapat kita lihat apa yang harus dilakukan sistem operasi pada keenam operasi dasar pada berkas.
  • Membuat sebuah berkas: Ada dua cara dalam membuat berkas. Pertama, tempat baru di dalam sistem berkas harus di alokasikan untuk berkas yang akan dibuat. Kedua, sebuah direktori harus mempersiapkan tempat untuk berkas baru, kemudian direktori tersebut akan mencatat nama berkas dan lokasinya pada sistem berkas.
  • Menulis pada sebuah berkas: Untuk menulis pada berkas, kita menggunakan system call beserta nama berkas yang akan ditulisi dan informasi apa yang akan ditulis pada berkas. Ketika diberi nama berkas, sistem mencari ke direktori untuk mendapatkan lokasi berkas. Sistem juga harus menyimpan penunjuk tulis pada berkas dimana penulisan berikut akan ditempatkan. Penunjuk tulis harus diperbaharui setiap terjadi penulisan pada berkas.
  • Membaca sebuah berkas: Untuk dapat membaca berkas, kita menggunakan system call beserta nama berkas dan di blok memori mana berkas berikutnya diletakkan. Sama seperti menulis, direktori mencari berkas yang akan dibaca, dan sistem menyimpan penunjuk baca pada berkas dimana pembacaan berikutnya akan terjadi. Ketika pembacaan dimulai, penunjuk baca harus diperbaharui. Sehingga secara umum, suatu berkas ketika sedang dibaca atau ditulis, kebanyakan sistem hanya mempunyai satu penunjuk, baca dan tulis menggunakan penunjuk yang sama, hal ini menghemat tempat dan mengurangi kompleksitas sistem.
  • Menempatkan kembali sebuah berkas: Direktori yang bertugas untuk mencari berkas yang bersesuaian, dan mengembalikan lokasi berkas pada saat itu. Menempatkan berkas tidak perlu melibatkan proses I/O. Operasi sering disebut pencarian berkas.
  • Menghapus sebuah berkas: Untuk menghapus berkas kita perlu mencari berkas tersebut di dalam direktori. Setelah ditemukan kita membebaskan tempat yang dipakai berkas tersebut (sehingga dapat digunakkan oleh berkas lain) dan menghapus tempatnya di direktori.
  • Memendekkan berkas: Ada suatu keadaan dimana pengguna menginginkan atribut dari berkas tetap sama tetapi ingin menghapus isi dari berkas tersebut. Fungsi ini mengijinkan semua atribut tetap sama tetapi panjang berkas menjadi nol, hal ini lebih baik dari pada memaksa pengguna untuk menghapus berkas dan membuatnya lagi.
Enam operasi dasar ini sudah mencakup operasi minimum yang di butuhkan. Operasi umum lainnya adalah menyambung informasi baru di akhir suatu berkas, mengubah nama suatu berkas, dan lain-lain. Operasi dasar ini kemudian digabung untuk melakukan operasi lainnya. Sebagai contoh misalnya kita menginginkan salinan dari suatu berkas, atau menyalin berkas ke peralatan I/O lainnya seperti printer, dengan cara membuat berkas lalu membaca dari berkas lama dan menulis ke berkas yang baru.
Hampir semua operasi pada berkas melibatkan pencarian berkas pada direktori. Untuk menghindari pencarian yang lama, kebanyakan sistem akan membuka berkas apabila berkas tersebut digunakan secara aktif. Sistem operasi akan menyimpan tabel kecil yang berisi informasi semua berkas yang dibuka yang disebut “tabel berkas terbuka”. Ketika berkas sudah tidak digunakan lagi dan sudah ditutup oleh yang menggunakan, maka sistem operasi mengeluarkan berkas tersebut dari tabel berkas terbuka.
Beberapa sistem terkadang langsung membuka berkas ketika berkas tersebut digunakan dan otomatis menutup berkas tersebut jika program atau pemakainya dimatikan. Tetapi pada sistem lainnya terkadang membutuhkan pembukaan berkas secara tersurat dengan system call (open) sebelum berkas dapat digunakan.
Implementasi dari buka dan tutup berkas dalam lingkungan dengan banyak perngguna seperti UNIX, lebih rumit. Dalam sistem seperti itu pengguna yang membuka berkas mungkin lebih dari satu dan pada waktu yang hampir bersamaan. Umumnya sistem operasi menggunakan tabel internal dua level. Ada tabel yang mendata proses mana saja yang membuka berkas tersebut, kemudian tabel tersebut menunjuk ke tabel yang lebih besar yang berisi informasi yang berdiri sendiri seperti lokasi berkas pada disk, tanggal akses dan ukuran berkas. Biasanya tabel tersebut juga memiliki data berapa banyak proses yang membuka berkas tersebut.
Jadi, pada dasarnya ada beberapa informasi yang terkait dengan pembukaan berkas yaitu:
  • Penunjuk Berkas: Pada sistem yang tidak mengikutkan batas berkas sebagai bagian dari system call baca dan tulis, sistem tersebut harus mengikuti posisi dimana terakhir proses baca dan tulis sebagai penunjuk. Penunjuk ini unik untuk setiap operasi pada berkas, maka dari itu harus disimpan terpisah dari atribut berkas yang ada pada disk.
  • Penghitung berkas yang terbuka: Setelah berkas ditutup, sistem harus mengosongkan kembali tabel berkas yang dibuka yang digunakan oleh berkas tadi atau tempat di tabel akan habis. Karena mungkin ada beberapa proses yang membuka berkas secara bersamaan dan sistem harus menunggu sampai berkas tersebut ditutup sebelum mengosongkan tempatnya di tabel. Penghitung ini mencatat banyaknya berkas yang telah dibuka dan ditutup, dan menjadi nol ketika yang terakhir membaca berkas menutup berkas tersebut barulah sistem dapat mengosongkan tempatnya di tabel.
  • Lokasi berkas pada disk: Kebanyakan operasi pada berkas memerlukan sistem untuk mengubah data yang ada pada berkas. Informasi mengenai lokasi berkas pada disk disimpan di memori agar menghindari banyak pembacaan pada disk untuk setiap operasi.
Beberapa sistem operasi menyediakan fasilitas untuk memetakan berkas ke dalam memori pada virtual-memory systems . Hal tersebut mengijinkan bagian dari berkas ditempatkan pada suatu alamat di virtual memory . Operasi baca dan tulis pada memori dengan alamat tersebut dianggap sebagai operasi baca dan tulis pada berkas yang ada di alamat tersebut. Menutup berkas mengakibatkan semua data yang ada pada alamat memori tersebut dikembalikan ke disk dan dihilangkan dari virtual memory yang digunakan oleh proses.

Tipe Berkas

Pertimbangan utama dalam perancangan sistem berkas dan seluruh sistem operasi, apakah sistem operasi harus mengenali dan mendukung tipe berkas. Jika suatu sistem operasi mengenali tipe dari berkas, maka ia dapat mengoperasikan berkas tersebut. Contoh apabila pengguna mencoba mencetak berkas yang merupakan kode biner dari program yang pasti akan menghasilkan sampah, hal ini dapat dicegah apabila sistem operasi sudah diberitahu bahwa berkas tersebut merupakan kode biner.
Teknik yang umum digunakan dalam implementasi tipe berkas adalah menambahkan tipe berkas dalam nama berkas. Nama dibagi dua, nama dan akhiran (ekstensi), biasanya dipisahkan dengan karakter titik. Sistem menggunakan akhiran tersebut untuk mengindikasikan tipe berkas dan tipe operasi yang dapat dilakukan pada berkas tersebut. Sebagai contoh hanya berkas yang berakhiran .bat , .exe atau .com yang bisa dijalankan (eksekusi). Program aplikasi juga menggunakan akhiran tersebut untuk mengenal berkas yang dapat dioperasikannya. Akhiran ini dapat ditimpa atau diganti jika diperbolehkan oleh sistem operasi.
Beberapa sistem operasi menyertakan dukungan terhadap akhiran, tetapi beberapa menyerahkan kepada aplikasi untuk mengatur akhiran berkas yang digunakan, sehingga tipe dari berkas dapat menjadi petunjuk aplikasi apa yang dapat mengoperasikannya.
Sistem UNIX tidak dapat menyediakan dukungan untuk akhiran berkas karena menggunakan angka-angkaajaib yang disimpan di depan berkas untuk mengenali tipe berkas. Tidak semua berkas memiliki angka ini, jadi sistem tidak bisa bergantung pada informasi ini. Tetapi UNIX memperbolehkan akhiran berkas tetapi hal ini tidak dipaksakan atau tergantung sistem operasi, kebanyakan hanya untuk membantu pengguna mengenali tipe isi dari suatu berkas.
Tabel 5-1. Tabel Tipe Berkas

berkas1.JPG

Struktur Berkas

Kita juga dapat menggunakan tipe berkas untuk mengidentifikasi struktur dalam dari berkas. Berkas berupa source dan objek memiliki struktur yang cocok dengan harapan program yang membaca berkas tersebut. Suatu berkas harus memiliki struktur yang dikenali oleh sistem operasi. Sebagai contoh, sistem operasi menginginkan suatu berkas yang dapat dieksekusi memiliki struktur tertentu agar dapat diketahui dimana berkas tersebut akan ditempatkan di memori dan di mana letak instruksi pertama berkas tersebut. Beberapa sistem operasi mengembangkan ide ini sehingga mendukung beberapa struktur berkas, dengan beberapa operasi khusus untuk memanipulasi berkas dengan struktur tersebut.
Kelemahan memiliki dukungan terhadap beberapa struktur berkas adalah: Ukuran dari sistem operasi dapat menjadi besar, jika sistem operasi mendefinisikan lima struktur berkas yang berbeda maka ia perlu menampung kode untuk yang diperlukan untuk mendukung semuanya. Setiap berkas harus dapat menerapkan salah satu struktur berkas tersebut. Masalah akan timbul ketika terdapat aplikasi yang membutuhkan struktur informasi yang tidak didukung oleh sistem operasi tersebut.
Beberapa sistem operasi menerapkan dan mendukung struktur berkas sedikit struktur berkas. Pendekatan ini digunakan pada MS-DOS dan UNIX. UNIX menganggap setiap berkas sebagai urutan 8-bit byte, tidak ada interpretasi sistem operasi terhadap dari bit-bit ini. Skema tersebut menawarkan fleksibilitas tinggi tetapi dukungan yang terbatas. Setiap aplikasi harus menambahkan sendiri kode untuk menerjemahkan berkas masukan ke dalam struktur yang sesuai. Walau bagaimana pun juga sebuah sistem operasi harus memiliki minimal satu struktur berkas yaitu untuk berkas yang dapat dieksekusi sehingga sistem dapat memuat berkas dalam memori dan menjalankannya.
Sangat berguna bagi sistem operasi untuk mendukung struktur berkas yang sering digunakan karena akan menghemat pekerjaan pemrogram. Terlalu sedikit struktur berkas yang didukung akan mempersulit pembuatan program, terlalu banyak akan membuat sistem operasi terlalu besar dan pemrogram akan bingung.

Struktur Berkas Pada Disk

Menempatkan batas dalam berkas dapat menjadi rumit bagi sistem operasi. Sistem disk biasanya memiliki ukuran blok yang sudah ditetapkan dari ukuran sektor. Semua I/O dari disk dilakukan dalam satuan blok dan semua blok (‘physical record’) memiliki ukuran yang sama. Tetapi ukuran dari ‘physical record’ tidak akan sama dengan ukuran ‘logical record’. Ukuran dari ‘logical record’ akan bervariasi. Memuatkan beberapa ‘logical record’ ke dalam ‘physical record’ merupakan solusi umum dari masalah ini.
Sebagai contoh pada sistem operasi UNIX, semua berkas didefinisikan sebagai kumpulan byte. Setiap byte dialamatkan menurut batasnya dari awal berkas sampai akhir. Pada kasus ini ukuran ‘logical record’ adalah 1 byte. Sistem berkas secara otomatis memuatkan byte-byte tersebut kedalam blok pada disk.
Ukuran ‘logical record’, ukuran blok pada disk, dan teknik untuk memuatkannya menjelaskan berapa banyak ‘logical record’ dalam tiap- tiap ‘physical record’. Teknik memuatkan dapat dilakukan oleh aplikasi pengguna atau oleh sistem operasi.
Berkas juga dapat dianggap sebagai urutan dari beberapa blok pada disk. Konversi dari ‘logical record’ ke ‘physical record’ merupakan masalah perangkat lunak.
Tempat pada disk selalu berada pada blok, sehingga beberapa bagian dari blok terakhir yang ditempati berkas dapat terbuang. Jika setiap blok berukuran 512 byte, sebuah berkas berukuran 1.949 byte akan menempati empat blok (2.048 byte) dan akan tersisa 99 byte pada blok terakhir. Byte yang terbuang tersebut dipertahankan agar ukuran dari unit tetap blok bukan byte disebut fragmentasi dalam disk. Semua sistem berkas pasti mempunyai fragmentasi dalam disk, semakin besar ukuran blok akan semakin besar fragmentasi dalam disknya.

Penggunaan Berkas Secara Bersama-sama

Konsistensi semantik adalah parameter yang penting untuk evaluasi sistem berkas yang mendukung penggunaan berkas secara bersama. Hal ini juga merupakan karakterisasi dari sistem yang menspesifikasi semantik dari banyak pengguna yang mengakses berkas secara bersama-sama. Lebih khusus, semantik ini seharusnya dapat menspesifikasi kapan suatu modifikasi suatu data oleh satu pengguna dapat diketahui oleh pengguna lain. Terdapat beberapa macam konsistensi semantik. Di bawah ini akan dijelaskan kriteria yang digunakan dalam UNIX.
Berkas sistem UNIX mengikuti konsistensi semantik :
  • Penulisan ke berkas yang dibuka oleh pengguna dapat dilihat langsung oleh pengguna lain yang sedang mengakses ke berkas yang sama.
  • Terdapat bentuk pembagian dimana pengguna membagi pointer lokasi ke berkas tersebut. Sehingga perubahan pointer satu pengguna akan mempengaruhi semua pengguna sharingnya  
  •  
  • Tinjauan :
  • http://dedenthea.wordpress.com/

Interaksi Manusia dengan Komputer

Ketika komputer pertama kali diperkenalkan secara komersial pada tahun 50-an, mesin ini sangat sulit dipakai dan sangat tidak praktis. Hal demikian karena waktu itu komputer merupakan mesin yang sangat mahal dan besar, hanya dipakai dikalangan tertentu, misalnya para ilmuwan atau ahli-ahli teknik.
Setelah komputer pribadi (PC) diperkenalkan pada tahun 70-an, maka berkembanglah penggunaan teknologi ini secara cepat dan mengagurnkan ke berbagai penjuru kehidupan (pendidikan, perdagangan, pertahanan, perusahaan, dan sebagainya). Kemajuan-kemajuan teknologi tersebut akhirnya juga mempengaruhi rancangan sistem. Sistem rancangan dituntut harus bisa memenuhi kebutuhan pemakai, sistem harus mempunyai kecocokkan dengan kebutuhan pemakai atau suatu sistem yang dirancang harus berorientasi kepada pemakai. Pada awal tahun 70-an ini, juga mulai muncul isu teknik antarmuka pemakai (user interface) yang diketahui sebagai Man-Machine Interaction (MMI) atau Interaksi Manusia-Mesin.
Pada Man-Machine Interaction sudah diterapkan sistem yang “user friendly”. Narnun, sifat user friendly pada MMI ini diartikan secara terbatas. User friendly pada MMI hanya dikaitkan dengan aspek-aspek yang berhubungan dengan estetika atau keindahan tampilan pada layar saja. Sistem tersebut hanya menitik beratkan pada aspek rancangan antarmukanya saja, sedangkan faktor-faktor atau aspek-aspek yang berhubungan dengan pemakai baik secara organisasi atau individu belum diperhatikan [PRE94].
Para peneliti akademis mengatakan suatu rancangan sistem yang berorientasi kepada pemakai, yang memperhatikan kapabilitas dan kelemahan pemakai ataupun sistem (komputer) akan memberi kontribusi kepada interaksi manusia-komputer yang lebih baik. Maka pada pertengahan tahun 80-an diperkenalkanlah istilah Human-Computer Interaction (HCI) atau Interaksi Manusia-Komputer.
Pada HCI ini cakupan atau fokus perhatiannya lebih luas, tidak hanya berfokus pada rancangan antarmuka saja, tetapi juga memperhatikan semua aspek yang berhubungan dengan interaksi antara manusia dan komputer. HCI ini kemudian berkembang sebagai disiplin ilmu tersendiri (yang merupakan bidang ilmu interdisipliner) yang membahas hubungan tirnbal balik antara manusia-komputer beserta efek-efek yang terjadi diantaranya.
Oleh Baecker dan Buxton [dalam PRE94] HCI ini didefinisikan sebagai “set of processes, dialogues, and actions through -which a human user employs and interacts with computer”. ACM-SGCHI [dalam PRE94] lebih jauh menuliskan definisi tentang HCI sebagai berikut:
— human-computer interaction is a discipline concerned with the design, evaluation and implementation of interactive computing system for human use and with the study of major phenomena surrounding them. “
Dengan demikian terlihat jelas bahwa fokus perhatian HCI tidak hanya pada keindahan tampilannya saja atau hanya tertuju pada tampilan antarmukanya saja, tetapi juga memperhatikan aspek-aspek pamakai, implementasi sistem rancangannya dan fenomena lingkungannya, dan lainnya. Misalnya, rancangan sistem itu harus memperhatikan kenyamanan pemakai, kemudahan dalam pemakaian, mudah untuk dipelajari dlsb.
Tujuan dari HCI adalah untuk menghasilkan sistem yang bermanfaat (usable) dan aman (safe), artinya sistem tersebut dapat berfungsi dengan baik. Sistem tersebut bisa untuk mengembangkan dan meningkatkan keamanan (safety), utilitas (utility), ketergunaan (usability), efektifitas (efectiveness) dan efisiensinya (eficiency). Sistem yang dimaksud konteksnya tidak hanya pada perangkat keras dan perangkat lunak, tetapi juga mencakup lingkungan secara keseluruhan, baik itu lingkungan organisasi masyarakat kerja atau lingkungan keluarga. Sedangkan utilitas mengacu kepada fungsionalitas sistem atau sistem tersebut dapat meningkatkan efektifitas dan efesiensi kerjanya. Ketergunaan (usability) disini dimaksudkan bahwa sstem yang dibuat tersebut mudah digunakan dan mudah dipelajari baik secara individu ataupun kelompok.
Pendapat Preece, J. di atas didasarkan pada pemikiran yang menyatakan bahwa kepentingan pemakai sistem harus didahulukan, pemakai tidak bisa diubah secara radikal terhadap sistem yang telah ada, sistem yang dirancang harus cocok dengan kebutuhan-kebutuhan pemakai.
Selanjutnya, dalam berinteraksi dengan komputer, para pemakai pertama kali akan berhadapan dengan perangkat keras komputer. Untuk sampai pada isi yang ingin disampaikan oleh perangkat lunak, pemakai dihadapkan terlebih dahulu dengan seperangkat alat seperti papan ketik (keyboard), monitor, mouse, joystick, dan lain-lain. Pemakai harus dapat mengoperasikan seperangkat alat tersebut. Selanjutnya, pemakai akan berhadapan dengan macam-macam tampilan menu, macam-macam perintah yang terdiri dari kata atau kata-kata yang harus diketikkannya, misalnya save, copy, delete, atau macam-macam ikon. Peralatan, perintah, ikon dan lain-lain yang disebutkan di atas dikenal dengan nama interface (antarmuka). Interface ini merupakan lapisan pertama yang langsung bertatap muka dengan pemakai.
Tujuan utama disusunnya berbagai cara interaksi manusia & komputer :
untuk mempermudah manusia dalam mengoperasikan komputer dan mendapatkan berbagai umpan balik yang ia perlukan selama ia bekerja pada sebuah sistem komputer.

Para perancang antarmuka manusia dan komputer berharap agar sistem komputer yang dirancangnya dapat bersifat akrab dan ramah dengan penggunanya (user friendly).

Untuk membuat antarmuka yang baik dibutuhkan pemahaman beberapa bidang ilmu, antara lain :

1. Teknik elektronika & ilmu komputer
memberikan kerangka kerja untuk dapat merancang sistem HCI

2. Psikologi
memahami sifat & kebiasaan, persepsi & pengolahan kognitif, ketrampilan motorik pengguna

3. Perancangan grafis dan tipografi
sebuah gambar dapat bermakna sama dengan seribu kata. Gambar dapat digunakan sebagai sarana dialog cukup efektif antara manusia & komputer

4. Ergonomik
berhubungan dengan aspek fisik untuk mendapatkan lingkungan kerja yang nyaman, misal : bentuk meja & kursi kerja, layar tampilan, bentuk keyboard, posisi duduk, pengaturan lampu, kebersihan tempat kerja

5. Antropologi
ilmu pengetahuan tentang manusia, memberi suatu pandangan tentang cara kerja berkelompok yang masing – masing anggotanya dapat memberikan konstribusi sesuai dengan bidangnya

6. Linguistik
merupakan cabang ilmu yang mempelajari tentang bahasa. Untuk melakukan dialog diperlukan sarana komunikasi yang memadai berupa suatu bahasa khusus, misal bahasa grafis, bahasa alami, bahasa menu, bahasa perintah

7. Sosiologi
studi tentang pengaruh sistem manusia-komputer dalam struktur sosial, misal adanya PHK karena adanya otomasi kantor.

Otomata & Pengantar Kompilasi



Bahasa

Teori Bahasa dan Otomata

Bahasa adalah struktur yang dikendalikan sekumpulan aturan tertentu, semacam mesin untuk memproduksi makna. Akan tetapi seperti setiap mesin hanya terdapat kemungkinan terbatas bagi setiap orang dalam menggunakannya.

Dalam bahasa disediakan pembendaharaan kata atau tanda (vocabulary), serta perangkat aturan bahasa (grammar, sintaks) yang harus dipatuhi jika hendak menghasilkan sebuah ekspresi yang bermakna.

Proses Kemampuan Pemahaman Bahasa

Hipotesis Noam Chomsky menggugat postulat John Locke (tokoh empirisme) yang menyatakan segala pengetahuan yang dimiliki manusia berasal dari rangsangan-rangsangan luar (pengalaman) yang ditangkap oleh indera-indera manusia, sehingga meniadakan pengetahuan apriori (pengetahuan yang langsung tertanam di manusia)

Noam Chomsky menyandarkan pada pemahaman bahasa sebagai sesuatu yang bersifat khas dan bawaan (tertanam) pada manusia sejak lahir.

Secara khusus Chomsky dipengaruhi Descartes tentang bahasa dan pikiran yang terikat begitu erat sehingga pengetahuan tentang bahasa bisa membuka pengetahuan tentang pikiran manusia.

Secara mendasar bahasa adalah bagian psikologi manusia yang dipahami sebagai teori tentang kemampuan pikiran manusia berupa ungkapan dari subjek psikologi.

Chomsky dan para ahli bahasa telah mengamati anak kecil mampu menjadi lancar berbahasa lebih cepat dan mudah dibanding "algoritma belajar berbahasa".

Sehingga para ahli bahasa membuat hipotesis otak berisi/memuat suatu "mesin bahasa umum". Kemudian selama masa awal pertumbuhan anak, terjadi pertemuan dengan bahasa sehari-hari yang mengubah mesin bahasa umum menjadi mesin bahasa partikular (tertentu) ke bahasa spesifik.


Teori Bahasa

Teori Bahasa adalah konsep-konsep pada "string alpabet V" dalam penyambungan karakter-karakter alpabet untuk membentuk suatu makna (bahasa).

Alpabet

Adalah himpunan simbol (karakter) tak kosong yang berhingga. Alpabet digunakan untuk membentuk kata-kata (string-string) di bahasa. Bahasa dimulai dengan alpabet. Pada beberapa buku, alpabet dilambangkan dengan Σ

Istilah huruf, karakter dan simbol adalah sinonim menunjukkan elemen alpabet. Jika simbol berbaris bersebelahan, maka diperoleh "string simbol". Istilah kalimat, kata dan string adalah sinonim

Contoh :
{a,b} -> Himpunan yang terdiri dari simbol "a" dan "b".


Penyambungan (Concatenation - o)

Penyambungan dilakukan pada 2 karakter atau lebih membentuk 1 barisan karakter (string simbol).

Contoh :
'a' o 'b' = 'ab'
'ab' o 'baab' = 'abbaab'


String pada alpabet V
Karakter atau barisan karakter pada alpabet V dibentuk dari penyambungan karakter pada alpabet V.

String pada alpabet V adalah deretan (sekeun) simbol dari V dimana perulangan simbol diijinkan.

Contoh :
V = {a,b,c,d}
String pada alpabet V antara lain -> 'a','abcd','bbba'

Pemangkatan
Penyambungan dapat dianggap sebagai perkalian karena biasanya penulisannya adalah bila x dan y string, maka x o y adalah xy. sehingga pemangkatan dapat digunakan

VoV = VV = V2 ----> Panjang string = 2
VoVoV = V2oV=V3 -> Panjang string = 3
VoVoVoV = N4 ----> Panjang string = 4
VoVoVo...oV=Vn ---> Panjang string = n


Vk = VoVoVo...oV
adalah himpunan string dengan panjang k, masing-masing simbol adalah alpabet V

V* = {ε} U V+ (Kleene closure)
adalah string pada V, termasuk string kosong dimana ε string kosong (string tanpa simbol)
ε mempunyai sifat identitas, yaitu:
ε o x = x
x o ε = x

V+ = V1 U V2 U V3 U ... (Positive closure)
adalah himpunan string pada V, tidak ada string kosong didalamnya.

V0 = {ε}
adalah himpunan yang isinya hanya string kosong, dimana String kosong ε tidak sama dengan himpunan kosong


Maka 'bbba' dapat ditulis 'b3a'


Panjang String
Panjang string dilambangkan |w| dimana panjang string adalah jumlah simbol di dalam string bukan pada alpabet dan pengulangan kemunculan simbol dihitung.

Contoh:
|ε| = 0
|a| = 1
|aa| = 2
|aaa| = 3
|aaab| = 4



Otomata

         adalah mesin abstrak yang menggunakan model matematika, tetapi matematika yang digunakan benar-benar berbeda dibanding matematika klasik dan kalkulus. Model yang digunakan adalah model mesin state (state machine model) atau model trnasisi state (state transition model).

Terdapat 3 model komputasi pada teori otomata.
- Finite automata
- Pushdown automata
- Turing Mavhine


Memori Otomata

Otomata dibedakan berdasarkan jenis memori sementara yang dimilikinya, yaitu:

- Finite automata (FA)
Tidak memiliki memori sementara. Finite automata adalah kelas mesin dengan kemampuan-kemampuan paling terbatas.

- Pushdown automata (PDA)
Memiliki memori sementara dengan mekanisme LIFO (Last In, First Out). Mesin ini lebih ampuh karena bantuan keberadaan stack yang dipandang sebagai unit memori

- Turing Machine (TM)
Memiliki memori dengan mekanisme pengaksesan acak (Random akses memori). Turing Machine merupakan model matematika untuk komputer saat ini.


Sejarah Otomata dan Teori Bahasa

Otomata bermula sebelum komputer ada pada teori di bidang sistem logika matematika atau formal, ilmuwan David Hilbert telah mencoba menciptakan algoritma umum untuk pembuktian (seluruh) persoalan matematika secara otomatis yaitu mampu menentukan salah benarnya sembarang prosisi matematika.

Tahun 1931, Kurt Gdel mempublikasikan teori ketidaklengkapan dimana membuktikan prosedur/algoritma yang dikehendaki David Hilbert tersebut tidak akan pernah ada.

Gdel membangun rumus di kalkulus predikat yang diterapkan pada bilangan bulat yang memiliki pernyataan-pernyataan definisi yang tidak dapat dibuktikan maupun dibantah di dalam sistem logika yang mungkin dibangun manusia.

Formalisasi argumen teorema ketidaklengkapan Gdel ini berikut penjelasan dan formalisasi selanjutnya dari prosedur efektif secara intuisi merupakan salah satu pencapaian intelektual terbesar abad 20, yaitu abad dimana formalisasi berkembang semarak.

Pengembangan teori otomata, komputasi dan teori bahasa berikutnya difasilitasi perkembangan bidang psyco-linguistic. Bidang psyco-linguistic berupaya menjawab pertanyan-pertanyan berikut:
- Apakah bahasa secara umum?
- Bagaimana manusia mengembangkan bahasa?
- Bagaimana manusia memahami bahasa?
- Bagaimana manusia mengajarkan bahasa ke anak-anaknya?
- Apa gagasan-gagasan yang dapat dinyatakan dan bagaimana caranya?
- Bagaimana manusia membangun kalimat-kalimat dari gagasan-gagasan yang berada di pikirannya?

Sekitar tahun 1950-an, Noam Chomsky menciptakan model matematika sebagai sarana untuk mendeskripsikan bahasa serta menjawab pertanyaan-pertanyaan di atas. Saat ini dimulai pendalaman bidang bahasa komputer.

Perbedaan antara bahasa komputer dan bahasa manusia adalah sampai sekarang belum diketahuinya bagaimana cara manusia mengartikan bahasa, sementara dengan pasti dapat mengartikan bahasa pada komputer.

Noam Chomsky mengemukakan perangkat format disebut grammar untuk memodelkan properti-properti bahasa.

Grammar
Grammar berisi sejumlah aturan serta menspesifikasikan bahasa tertentu.

Bahasa berisi semua string yang dapat dihasilkan menggunakan aturan-aturan grammar.

Meski pembahasan Chomsky terutama ditujukan untuk bahasa alami, grammar mempunyai nilai/manfaat sangat besar di ilmu informatika/komputer karena pencapaian ini digunakan untuk mendeskripsikan dan mendefinisikan sintaks bahasa pemrograman dan bahasa-bahasa formal lainnya.

Grammar diterapkan pada perancangan kompilator dan bidang-bidang di ilmu komputer.

McCulloch dan Pitts mengemukakan Mesin Abstrak sederhana yaitu finite automata untuk memodelkan neuron nets.

Finite automata juga digunakan untuk merancang switching circuit. Studi mengenai teori otomata terkait bidang-bidang lain di ilmu komputer.

Kemudian ekivalensi antara finite automata dan ekspresi reguler (reguler expression) dikemukakan Stephen Kleene. Sejak saat itu teori bahasa dikaitkan secara erat dengan teori bahasa formal. ubungan teori otomata dan teori pengkodean (coding theory) juga banyak diteliti.

Turing machine seperti komputer modern saat ini dapat mengolah (simbol-simbol di tape) dan mengahasilkan keluaran (simbol-simbol yang berada di tapenya setelah berakhirnya sebarisan pergerakkan) merupakan karya teoritis dari Alan Turing.

Karena banyak yang berperan pada pengembangannya, bidang teori ini diberi aneka ragam nama yaitu:
- teori otomata (theory of automata)
- teori bahasa formal (theory of formal language)
- teori mesin turing (theory of Turing machine).
jadi, dari kesimpulan di atas Otomata adalah MODEL. Model dari sistem apapun yang akan kita komputasikan. Tidak ada bidang apapun dalam teknologi informasi yang tidak terkait dengan teori ‘dahsyat’ ini. Semua bentuk sistem, diskrit, kontinu, bahkan hybrid (gabungan event diskrit dan kontinu dalam satu sistem) dapat dimodelkan oleh teori ‘digdaya’ ini.
Sementara, Kompilasi adalah ilmu yang mempelajari bagaimana kita dapat merancang & membangun bahasa pemrograman.
Kompilasi merupakan salah satu bidang yang memanfaatkan teori ‘sakti’ ini.
Komputasi menjadi isu penting karena mempelajari bagaimana merancang mesinyang mampu melakukan proses-proses intelektual (yang mulanya hanya dapat dilakukan manusia). Dan benarkah batasan-batasan yang dimiliki komputer pada dasarnya disebabkan oleh kelemahan programmer (manusia), dan bukan batasan intrinsik yang dimiliki mesin/komputer ?
Jika Ya, maka kita berharap agar batasan-batasan tersebut dapat terreduksi melalui pengembangan teori komputasi.
Simbol-simbol dari Terminal diantaranya :
ü huruf kecil, misalnya : a, b, c, 0, 1, .. 
ü simbol operator, misalnya : +, -, dan ´ 
ü simbol tanda baca, misalnya : (,  ),  dan ; 
ü string yang tercetak tebal, misalnya : if, then, dan else. 
Simbol-simbol berikut adalah simbol non terminal /Variabel :
ü huruf besar, misalnya : A, B, C
ü huruf S sebagai simbol awal
ü string yang tercetak miring, misalnya : expr 
Huruf yunani melambangkan string yang tersusun atas simbol-simbol terminal atau simbol-simbol non terminal atau campuran keduanya, misalnya : a, b, dan g.
Sebuah produksi dilambangkan sebagai a ® b, artinya : dalam sebuah derivasi dapat dilakukan penggantian simbol a dengan simbol b.
 Derivasi adalah proses pembentukan sebuah kalimat atau sentensial. Sebuah derivasi dilambangkan sebagai : a Þ b.



http://www.globalkomputer.com
http://nono-zone.co.cc




Oleh :
Nama : Siti Nur Fatikhah
NIM : 120911079
Kelas : IF 09 B