Selasa, 06 Oktober 2009

R P L ( Rekayasa Perangkat Lunak )

Rekayasa perangkat lunak

Rekayasa perangkat lunak (RPL, atau dalam bahasa Inggris: Software Engineering atau SE) adalah satu bidang profesi yang mendalami cara-cara pengembangan perangkat lunak termasuk pembuatan, pemeliharaan, manajemen organisasi pengembanganan perangkat lunak dan sebagainya.


Sejarah rekayasa perangkat lunak

Rekayasa perangkat lunak telah berkembang sejak pertama kali diciptakan pada tahun 1940-an hingga kini. Fokus utama pengembangannya adalah untuk mengembangkan praktek dan teknologi untuk meningkatkan produktivitas para praktisi pengembang perangkat lunak dan kualitas aplikasi yang dapat digunakan oleh pemakai.


1945 - 1965: Awal

Istilah software engineering digunakan pertama kali pada akhir 1950-an dan awal 1960-an. Saat itu, masih terdapat debat tajam mengenai aspek engineering dari pengembangan perangkat lunak.

Pada tahun 1968 dan 1969, komite sains NATO mensponsori dua konferensi tentang rekayasa perangkat lunak, yang memberikan dampak kuat terhadap perkembangan rekayasa perangkat lunak. Banyak yang menganggap bahwa dua konferensi inilah yang menandai awal resmi profesi rekayasa perangkat lunak.

1965 - 1985: krisis perangkat lunak

Pada tahun 1960-an hingga 1980-an, banyak masalah yang ditemukan para praktisi pengembangan perangkat lunak. Banyak projek yang gagal, hingga masa ini disebut sebagai krisis perangkat lunak. Kasus kegagalan pengembangan perangkat lunak terjadi mulai dari projek yang melebihi anggaran, hingga kasus yang mengakibatkan kerusakan fisik dan kematian. Salah satu kasus yang terkenal antara lain meledaknya roket Ariane akibat kegagalan perangkat lunak.

1985 - kini: tidak ada senjata pamungkas

Selama bertahun-tahun, para peneliti memfokuskan usahanya untuk menemukan teknik jitu untuk memecahkan masalah krisis perangkat lunak.

Berbagai teknik, metode, alat, proses diciptakan dan diklaim sebagai senjata pamungkas untuk memecahkan kasus ini. Mulai dari pemrograman terstruktur, pemrograman berorientasi object, perangkat pembantu pengembangan perangkat lunak (CASE tools), berbagai standar, UML hingga metode formal diagung-agungkan sebagai senjata pamungkas untuk menghasilkan software yang benar, sesuai anggaran dan tepat waktu.

Pada tahun 1987, Fred Brooks menulis artikel No Silver Bullet, yang berproposisi bahwa tidak ada satu teknologi atau praktek yang sanggup mencapai 10 kali lipat perbaikan dalam produktivitas pengembangan perangkat lunak dalam tempo 10 tahun.

Sebagian berpendapat, no silver bullet berarti profesi rekayasa perangkat lunak dianggap telah gagal. Namun sebagian yang lain justru beranggapan, hal ini menandakan bahwa bidang profesi rekayasa perangkat lunak telah cukup matang, karena dalam bidang profesi lainnya pun, tidak ada teknik pamungkas yang dapat digunakan dalam berbagai kondisi.

Teori Bahasa dan Automata

Terminologi Teori Bahasa

Ditulis dalam Teori Bahasa dan Automata oleh prayoga arief pada Maret 28, 2008

Beberapa terminologi dasar dari sebuah teori bahasa diantaranya:
- Alphabet
- Concatination / penyambungan
- String

Dalam teori bahasa, Istilah huruf = karakter = simbol dan istilah kalimat = kata = string.

• Simbol / huruf / karakter
Merupakan sebuah elemen alphabet yang memiliki makna unik / tunggal, misalnya symbol A dan symbol B yang memiliki makna berbeda.
• Alphabet
Dilambangkan dengan huruf capital miring, alphabet adalah himpunan tak kosong yang berhingga dari symbol – symbol.
• Kata / kalimat / String
Kata merupakan dereten symbol –simbol dari suatu alphabet

Contoh :

C = {a,b,c,1,2,3}

* Contoh diatas merupakan contoh sebuah alphabet C yang memiliki 6 buah symbol
* Contoh sebuah kata / string dari alphabet C: acca, back, 132, a12, dst.
* Kata acca dengan caac memiliki makna yang berbeda.
* Kata acca, 121, abba memenuhi aturan palindrome (walaupun kata dibalik memiliki makna yang sama).


Mengenal Teori Bahasa dan Automata

Ditulis dalam Teori Bahasa dan Automata oleh prayoga arief pada Maret 27, 2008

*Dasar-dasar teori bahasa dan automata

Teori bahasa dan automata merupakan salah satu komponen ilmu informatika, teori ini merupakan ide dan model fundamental yang mendasari sebuah system komputasi, teori ini juga bisa disebut sebagai sebuah teknik rekayasa untuk perancangan system komputasi.

Beberapa bidang ilmu lain yang mendukung pengembangan metode komputasi :

1. Biologi
Mempelajari jaringan neuron yang mengilhami ditemukanannya finite automata.

2. Rangkaian Elektronika
Mempelajari teori switching sebagai perancangan perangkat keras menggunakan finite automata.

3. Matematika
Mengembangkan system logika yang berguna untuk masalah pembuktian automata.

* Beberapa model komputasi dalam automata:

1. Finite automata (FA)
Sering juga disebut dengan Finite State Automata (FSA). Terdiri dari Deterministic Finite Automata (DFA) dan Non Deterministik Finite Automata (NDFA). Teori dasar dari FA sangat umum yaitu system pada saat berada di salahsatu state dari sejumlah state bergerak diantara state-state secara dapat diproduksi yang bergantung pada masukan ke system. Salah satu penerapannya adalah kompilasi/translasi bahasa pemograman tingkat tinggi menjadi bahasa mesin yang ekivalen. Finite automata merupakan jenis otomata yang tidak memiliki memori sementara, FA adalah kelas mesin dengan kemampuan paling terbatas.

2. Pushdown Automata (PA)
Terdiri dari Deterministic Pushdown Automata (DFA) dan Non Deterministik Pushdown Automata (NDFA). PA memiliki memori sementara dengan mekanisme stack LIFO (Last In First Out).

3. Turing Machine (TM).
Memiliki mekanisme Random Access Memory.

Dalam teori bahasa dan Automata digunakan model state (State Machine Model). atau biasa disebut model transisi (State Transition Model), pengembangan teori automata difasilitasi dengan perkembangan bidang Psycho Linguistik.

Mengenal Teori Bahasa dan Automata…

Ditulis dalam Teori Bahasa dan Automata oleh prayoga arief pada Maret 15, 2008

Teori bahasa dan automata merupakan salahsatu komponen ilmu informatika, teori ini merupakan ide dan model fundamental yang mendasari sebuah system komputasi, teori ini juga bisa disebut sebagai sebuah teknik rekayasa untuk perancangan system komputasi.

Beberapa bidang ilmu lain yang mendukung pengembangan metode komputasi :

1. Biologi

Mempelajari jaringan neuron yang mengilhami ditemukanannya finite automata.

2. Rangkaian Elektronika

Mempelajari teori switching sebagai perancangan perangkat keras menggunakan finite automata.

3. Matematika

Mengembangkan system logika yang berguna untuk masalah pembuktian automata.

Beberapa model komputasi dalam automata:

1. Finite automata (FA)

Sering juga disebut dengan Finite State Automata (FSA). Terdiri dari Deterministic Finite Automata (DFA) dan Non Deterministik Finite Automata (NDFA). Teori dasar dari FA sangat umum yaitu system pada saat berada di salahsatu state dari sejumlah state bergerak diantara state-state secara dapat diproduksi yang bergantung pada masukan ke system. Salah satu penerapannya adalah kompilasi/translasi bahasa pemograman tingkat tinggi menjadi bahasa mesin yang ekivalen. Finite automata merupakan jenis otomata yang tidak memiliki memori sementara, FA adalah kelas mesin dengan kemampuan paling terbatas.

2. Pushdown Automata (PA)

Terdiri dari Deterministic Pushdown Automata (DFA) dan Non Deterministik Pushdown Automata (NDFA). PA memiliki memori sementara dengan mekanisme stack LIFO (Last In First Out).

3. Turing Machine (TM).

Memiliki mekanisme Random Access Memory.

Dalam teori bahasa dan Automata digunakan model state (State Machine Model). atau biasa disebut model transisi (State Transition Model), pengembangan teori automata difasilitasi dengan perkembangan bidang Psycho Linguistik.

Sejarah Komputer

Pengertian Komputer

Komputer adalah alat yang dipakai untuk mengolah data menurut prosedur yang telah dirumuskan. Kata computer semula dipergunakan untuk menggambarkan orang yang perkerjaannya melakukan perhitungan aritmatika, dengan atau tanpa alat bantu, tetapi arti kata ini kemudian dipindahkan kepada mesin itu sendiri. Asal mulanya, pengolahan informasi hampir eksklusif berhubungan dengan masalah aritmatika, tetapi komputer modern dipakai untuk banyak tugas yang tidak berhubungan dengan matematika.

Secara luas, Komputer dapat didefinisikan sebagai suatu peralatan elektronik yang terdiri dari beberapa komponen, yang dapat bekerja sama antara komponen satu dengan yang lain untuk menghasilkan suatu informasi berdasarkan program dan data yang ada. Adapun komponen komputer adalah meliputi : Layar Monitor, CPU, Keyboard, Mouse dan Printer (sbg pelengkap). Tanpa printer komputer tetap dapat melakukan tugasnya sebagai pengolah data, namun sebatas terlihat dilayar monitor belum dalam bentuk print out (kertas).

Dalam definisi seperti itu terdapat alat seperti slide rule, jenis kalkulator mekanik mulai dari abakus dan seterusnya, sampai semua komputer elektronik yang kontemporer. Istilah lebih baik yang cocok untuk arti luas seperti "komputer" adalah "yang memproses informasi" atau "sistem pengolah informasi."

Saat ini, komputer sudah semakin canggih. Tetapi, sebelumnya komputer tidak sekecil, secanggih, sekeren dan seringan sekarang. Dalam sejarah komputer, ada 5 generasi dalam sejarah komputer.

Generasi Komputer

Generasi Pertama

Dengan terjadinya Perang Dunia Kedua, negara-negara yang terlibat dalam perang tersebut berusaha mengembangkan komputer untuk mengeksploit potensi strategis yang dimiliki komputer. Hal ini meningkatkan pendanaan pengembangan komputer serta mempercepat kemajuan teknik komputer. Pada tahun 1941, Konrad Zuse, seorang insinyur Jerman membangun sebuah komputer, Z3, untuk mendesain pesawat terbang dan peluru kendali.

Pihak sekutu juga membuat kemajuan lain dalam pengembangan kekuatan komputer. Tahun 1943, pihak Inggris menyelesaikan komputer pemecah kode rahasia yang dinamakan Colossus untuk memecahkan kode rahasia yang digunakan Jerman. Dampak pembuatan Colossus tidak terlalu mempengaruhi perkembangan industri komputer dikarenakan dua alasan. Pertama, Colossus bukan merupakan komputer serbaguna (general-purpose computer), ia hanya didesain untuk memecahkan kode rahasia. Kedua, keberadaan mesin ini dijaga kerahasiaannya hingga satu dekade setelah perang berakhir.

Usaha yang dilakukan oleh pihak Amerika pada saat itu menghasilkan suatu kemajuan lain. Howard H. Aiken (1900-1973), seorang insinyur Harvard yang bekerja dengan IBM, berhasil memproduksi kalkulator elektronik untuk US Navy. Kalkulator tersebut berukuran panjang setengah lapangan bola kaki dan memiliki rentang kabel sepanjang 500 mil. The Harvard-IBM Automatic Sequence Controlled Calculator, atau Mark I, merupakan komputer relai elektronik. Ia menggunakan sinyal elektromagnetik untuk menggerakkan komponen mekanik. Mesin tersebut beropreasi dengan lambat (ia membutuhkan 3-5 detik untuk setiap perhitungan) dan tidak fleksibel (urutan kalkulasi tidak dapat diubah). Kalkulator tersebut dapat melakukan perhitungan aritmatik dasar dan persamaan yang lebih kompleks.

Perkembangan komputer lain pada masa kini adalah Electronic Numerical Integrator and Computer (ENIAC), yang dibuat oleh kerjasama antara pemerintah Amerika Serikat dan University of Pennsylvania. Terdiri dari 18.000 tabung vakum, 70.000 resistor, dan 5 juta titik solder, komputer tersebut merupakan mesin yang sangat besar yang mengkonsumsi daya sebesar 160kW.

Komputer ini dirancang oleh John Presper Eckert (1919-1995) dan John W. Mauchly (1907-1980), ENIAC merupakan komputer serbaguna (general purpose computer) yang bekerja 1000 kali lebih cepat dibandingkan Mark I.

Pada pertengahan 1940-an, John von Neumann (1903-1957) bergabung dengan tim University of Pennsylvania dalam usaha membangun konsep desain komputer yang hingga 40 tahun mendatang masih dipakai dalam teknik komputer. Von Neumann mendesain Electronic Discrete Variable Automatic Computer (EDVAC) pada tahun 1945 dengan sebuah memori untuk menampung baik program ataupun data. Teknik ini memungkinkan komputer untuk berhenti pada suatu saat dan kemudian melanjutkan pekerjaannya kembali. Kunci utama arsitektur von Neumann adalah unit pemrosesan sentral (CPU), yang memungkinkan seluruh fungsi komputer untuk dikoordinasikan melalui satu sumber tunggal. Tahun 1951, UNIVAC I (Universal Automatic Computer I) yang dibuat oleh Remington Rand, menjadi komputer komersial pertama yang memanfaatkan model arsitektur Von Neumann tersebut.

Baik Badan Sensus Amerika Serikat dan General Electric memiliki UNIVAC. Salah satu hasil mengesankan yang dicapai oleh UNIVAC dalah keberhasilannya dalam memprediksi kemenangan Dwilight D. Eisenhower dalam pemilihan presiden tahun 1952.

Komputer Generasi pertama dikarakteristik dengan fakta bahwa instruksi operasi dibuat secara spesifik untuk suatu tugas tertentu. Setiap komputer memiliki program kode biner yang berbeda yang disebut “bahasa mesin” (machine language). Hal ini menyebabkan komputer sulit untuk diprogram dan membatasi kecepatannya. Ciri lain komputer generasi pertama adalah penggunaan tube vakum (yang membuat komputer pada masa tersebut berukuran sangat besar) dan silinder magnetik untuk penyimpanan data.

Generasi Kedua

Pada tahun 1948, penemuan transistor sangat mempengaruhi perkembangan komputer. Transistor menggantikan tube vakum di televisi, radio, dan komputer. Akibatnya, ukuran mesin-mesin elektrik berkurang drastis.

Transistor mulai digunakan di dalam komputer mulai pada tahun 1956. Penemuan lain yang berupa pengembangan memori inti-magnetik membantu pengembangan komputer generasi kedua yang lebih kecil, lebih cepat, lebih dapat diandalkan, dan lebih hemat energi dibanding para pendahulunya. Mesin pertama yang memanfaatkan teknologi baru ini adalah superkomputer. IBM membuat superkomputer bernama Stretch, dan Sprery-Rand membuat komputer bernama LARC. Komputer-komputer ini, yang dikembangkan untuk laboratorium energi atom, dapat menangani sejumlah besar data, sebuah kemampuan yang sangat dibutuhkan oleh peneliti atom. Mesin tersebut sangat mahal dan cenderung terlalu kompleks untuk kebutuhan komputasi bisnis, sehingga membatasi kepopulerannya. Hanya ada dua LARC yang pernah dipasang dan digunakan: satu di Lawrence Radiation Labs di Livermore, California, dan yang lainnya di US Navy Research and Development Center di Washington D.C. Komputer generasi kedua menggantikan bahasa mesin dengan bahasa assembly. Bahasa assembly adalah bahasa yang menggunakan singkatan-singakatan untuk menggantikan kode biner.

Pada awal 1960-an, mulai bermunculan komputer generasi kedua yang sukses di bidang bisnis, di universitas, dan di pemerintahan. Komputer-komputer generasi kedua ini merupakan komputer yang sepenuhnya menggunakan transistor. Mereka juga memiliki komponen-komponen yang dapat diasosiasikan dengan komputer pada saat ini: printer, penyimpanan dalam disket, memory, sistem operasi, dan program.

Salah satu contoh penting komputer pada masa ini adalah IBM 1401 yang diterima secara luas di kalangan industri. Pada tahun 1965, hampir seluruh bisnis-bisnis besar menggunakan komputer generasi kedua untuk memproses informasi keuangan.

Program yang tersimpan di dalam komputer dan bahasa pemrograman yang ada di dalamnya memberikan fleksibilitas kepada komputer. Fleksibilitas ini meningkatkan kinerja dengan harga yang pantas bagi penggunaan bisnis. Dengan konsep ini, komputer dapat mencetak faktur pembelian konsumen dan kemudian menjalankan desain produk atau menghitung daftar gaji. Beberapa bahasa pemrograman mulai bermunculan pada saat itu. Bahasa pemrograman Common Business-Oriented Language (COBOL) dan Formula Translator (FORTRAN) mulai umum digunakan. Bahasa pemrograman ini menggantikan kode mesin yang rumit dengan kata-kata, kalimat, dan formula matematika yang lebih mudah dipahami oleh manusia. Hal ini memudahkan seseorang untuk memprogram dan mengatur komputer. Berbagai macam karir baru bermunculan (programmer, analis sistem, dan ahli sistem komputer). Industri piranti lunak juga mulai bermunculan dan berkembang pada masa komputer generasi kedua ini.

Generasi Ketiga

Walaupun transistor dalam banyak hal mengungguli tube vakum, namun transistor menghasilkan panas yang cukup besar, yang dapat berpotensi merusak bagian-bagian internal komputer. Batu kuarsa (quartz rock) menghilangkan masalah ini. Jack Kilby, seorang insinyur di Texas Instrument, mengembangkan sirkuit terintegrasi (IC : integrated circuit) di tahun 1958. IC mengkombinasikan tiga komponen elektronik dalam sebuah piringan silikon kecil yang terbuat dari pasir kuarsa. Pada ilmuwan kemudian berhasil memasukkan lebih banyak komponen-komponen ke dalam suatu chip tunggal yang disebut semikonduktor. Hasilnya, komputer menjadi semakin kecil karena komponen-komponen dapat dipadatkan dalam chip. Kemajuan komputer generasi ketiga lainnya adalah penggunaan sistem operasi (operating system) yang memungkinkan mesin untuk menjalankan berbagai program yang berbeda secara serentak dengan sebuah program utama yang memonitor dan mengkoordinasi memori komputer.

Generasi Keempat

Setelah IC, tujuan pengembangan menjadi lebih jelas: mengecilkan ukuran sirkuit dan komponen-komponen elektrik. Large Scale Integration (LSI) dapat memuat ratusan komponen dalam sebuah chip. Pada tahun 1980-an, Very Large Scale Integration (VLSI) memuat ribuan komponen dalam sebuah chip tunggal.

Ultra-Large Scale Integration (ULSI) meningkatkan jumlah tersebut menjadi jutaan. Kemampuan untuk memasang sedemikian banyak komponen dalam suatu keping yang berukurang setengah keping uang logam mendorong turunnya harga dan ukuran komputer. Hal tersebut juga meningkatkan daya kerja, efisiensi dan keterandalan komputer. Chip Intel 4004 yang dibuat pada tahun 1971 membawa kemajuan pada IC dengan meletakkan seluruh komponen dari sebuah komputer (central processing unit, memori, dan kendali input/output) dalam sebuah chip yang sangat kecil. Sebelumnya, IC dibuat untuk mengerjakan suatu tugas tertentu yang spesifik. Sekarang, sebuah mikroprosesor dapat diproduksi dan kemudian diprogram untuk memenuhi seluruh kebutuhan yang diinginkan. Tidak lama kemudian, setiap piranti rumah tangga seperti microwave, oven, televisi, dan mobil dengan electronic fuel injection (EFI) dilengkapi dengan mikroprosesor.

Perkembangan yang demikian memungkinkan orang-orang biasa untuk menggunakan komputer biasa. Komputer tidak lagi menjadi dominasi perusahaan-perusahaan besar atau lembaga pemerintah. Pada pertengahan tahun 1970-an, perakit komputer menawarkan produk komputer mereka ke masyarakat umum. Komputer-komputer ini, yang disebut minikomputer, dijual dengan paket piranti lunak yang mudah digunakan oleh kalangan awam. Piranti lunak yang paling populer pada saat itu adalah program word processing dan spreadsheet. Pada awal 1980-an, video game seperti Atari 2600 menarik perhatian konsumen pada komputer rumahan yang lebih canggih dan dapat diprogram.

Pada tahun 1981, IBM memperkenalkan penggunaan Personal Computer (PC) untuk penggunaan di rumah, kantor, dan sekolah. Jumlah PC yang digunakan melonjak dari 2 juta unit di tahun 1981 menjadi 5,5 juta unit di tahun 1982. Sepuluh tahun kemudian, 65 juta PC digunakan. Komputer melanjutkan evolusinya menuju ukuran yang lebih kecil, dari komputer yang berada di atas meja (desktop computer) menjadi komputer yang dapat dimasukkan ke dalam tas (laptop), atau bahkan komputer yang dapat digenggam (palmtop).

IBM PC bersaing dengan Apple Macintosh dalam memperebutkan pasar komputer. Apple Macintosh menjadi terkenal karena mempopulerkan sistem grafis pada komputernya, sementara saingannya masih menggunakan komputer yang berbasis teks. Macintosh juga mempopulerkan penggunaan piranti mouse.

Pada masa sekarang, kita mengenal perjalanan IBM compatible dengan pemakaian CPU: IBM PC/486, Pentium, Pentium II, Pentium III, Pentium IV (Serial dari CPU buatan Intel). Juga kita kenal AMD k6, Athlon, dsb. Ini semua masuk dalam golongan komputer generasi keempat.

Seiring dengan menjamurnya penggunaan komputer di tempat kerja, cara-cara baru untuk menggali potensial terus dikembangkan. Seiring dengan bertambah kuatnya suatu komputer kecil, komputer-komputer tersebut dapat dihubungkan secara bersamaan dalam suatu jaringan untuk saling berbagi memori, piranti lunak, informasi, dan juga untuk dapat saling berkomunikasi satu dengan yang lainnya. Jaringan komputer memungkinkan komputer tunggal untuk membentuk kerjasama elektronik untuk menyelesaikan suatu proses tugas. Dengan menggunakan perkabelan langsung (disebut juga Local Area Network atau LAN), atau kabel telepon, jaringan ini dapat berkembang menjadi sangat besar.

Generasi Kelima

Mendefinisikan komputer generasi kelima menjadi cukup sulit karena tahap ini masih sangat muda. Contoh imajinatif komputer generasi kelima adalah komputer fiksi HAL9000 dari novel karya Arthur C. Clarke berjudul 2001: Space Odyssey. HAL menampilkan seluruh fungsi yang diinginkan dari sebuah komputer generasi kelima. Dengan kecerdasan buatan (artificial intelligence atau AI), HAL dapat cukup memiliki nalar untuk melakukan percapakan dengan manusia, menggunakan masukan visual, dan belajar dari pengalamannya sendiri.

Walaupun mungkin realisasi HAL9000 masih jauh dari kenyataan, banyak fungsi-fungsi yang dimilikinya sudah terwujud. Beberapa komputer dapat menerima instruksi secara lisan dan mampu meniru nalar manusia. Kemampuan untuk menterjemahkan bahasa asing juga menjadi mungkin. Fasilitas ini tampak sederhana. Namun fasilitas tersebut menjadi jauh lebih rumit dari yang diduga ketika programmer menyadari bahwa pengertia manusia sangat bergantung pada konteks dan pengertian ketimbang sekedar menterjemahkan kata-kata secara langsung.

Banyak kemajuan di bidang desain komputer dan teknologi semkain memungkinkan pembuatan komputer generasi kelima. Dua kemajuan rekayasa yang terutama adalah kemampuan pemrosesan paralel, yang akan menggantikan model non Neumann. Model non Neumann akan digantikan dengan sistem yang mampu mengkoordinasikan banyak CPU untuk bekerja secara serempak. Kemajuan lain adalah teknologi superkonduktor yang memungkinkan aliran elektrik tanpa ada hambatan apapun, yang nantinya dapat mempercepat kecepatan informasi.

Jepang adalah negara yang terkenal dalam sosialisasi jargon dan proyek komputer generasi kelima. Lembaga ICOT (Institute for new Computer Technology) juga dibentuk untuk merealisasikannya. Banyak kabar yang menyatakan bahwa proyek ini telah gagal, namun beberapa informasi lain bahwa keberhasilan proyek komputer generasi kelima ini akan membawa perubahan baru paradigma komputerisasi di dunia.

Sejarah Windows

Awal-awal Versi Windows

Windows 1.0

Versi pertama Microsoft Windows, yang disebut dengan Windows 1.0, dirilis pada tanggal 20 November 1985. Versi ini memiliki banyak kekurangan dalam beberapa fungsionalitas, sehingga kurang populer di pasaran. Pada awalnya Windows versi 1.0 ini hendak dinamakan dengan Interface Manager, akan tetapi Rowland Hanson, kepala bagian pemasaran di Microsoft Corporation, meyakinkan para petinggi Microsoft bahwa nama "Windows" akan lebih "memikat" konsumen. Windows 1.0 bukanlah sebuah sistem operasi yang lengkap, tapi hanya memperluas kemampuan MS-DOS dengan tambahan antarmuka grafis. Selain itu, Windows 1.0 juga memiliki masalah dan kelemahan yang sama yang dimiliki oleh MS-DOS.

Lebih jauh lagi, Apple yang menuntut Microsoft membuat Microsoft membatasi kemampuannya. Sebagai contoh, jendela-jendela di dalam Windows 1.0 hanya dapat ditampilkan di layar secara "tile" saja, sehingga jendela tersebut tidak dapat saling menimpa satu sama lainnya. Selain itu, tidak ada semacam tempat yang digunakan untuk menyimpan berkas sebelum dihapus (Recycle Bin), karena memang Apple berkeyakinan bahwa mereka memiliki hak terhadap paradigma tersebut. Microsoft pun kemudian membuang limitasi tersebut dari Windows dengan menandatangani perjanjian lisensi dengan Apple.

Windows 2.x

Windows versi 2 pun muncul kemudian pada tanggal 9 Desember 1987, dan menjadi sedikit lebih populer dibandingkan dengan pendahulunya. Sebagian besar populeritasnya didapat karena kedekatannya dengan aplikasi grafis buatan Microsoft, Microsoft Excel for Windows dan Microsoft Word for Windows. Aplikasi-aplikasi Windows dapat dijalankan dari MS-DOS, untuk kemudian memasuki Windows untuk melakukan operasinya, dan akan keluar dengan sendirinya saat aplikasi tersebut ditutup.

Microsoft Windows akhirnya memperoleh peningkatan signifikan saat Aldus PageMaker muncul dalam versi untuk Windows, yang sebelumnya hanya dapat berjalan di atas Macintosh. Beberapa ahli sejarahwan komputer mencatat ini sebagai kemunculan sebuah aplikasi yang laku secara signifikan selain buatan Microsoft sebagai awal kesuksesan Microsoft Windows.

Windows versi 2.0x menggunakan model memori modus real, yang hanya mampu mengakses memori hingga 1 megabita saja. Dalam konfigurasi seperti itu, Windows dapat menjalankan aplikasi multitasking lainnya, semacam DESQview, yang berjalan dalam modus terproteksi yang ditawarkan oleh Intel 80286.

Windows 2.1x

Selanjutnya, dua versi yang baru dirilis, yakni Windows/286 2.1 dan Windows/386 2.1. Seperti halnya versi Windows sebelumnya, Windows/286 menggunakan model memori modus real, tapi merupakan versi yang pertama yang mendukung High Memory Area (HMA). Windows/386 2.1 bahkan memiliki kernel yang berjalan dalam modus terproteksi dengan emulasi Expanded Memory Specification (EMS) standar Lotus-Intel-Microsoft (LIM), pendahulu spesifikasi Extended Memory Specification (XMS) yang kemudian pada akhirnya mengubah topologi komputasi di dalam IBM PC. Semua aplikasi Windows dan berbasis DOS saat itu memang berjalan dalam modus real, yang berjalan di atas kernel modus terproteksi dengan menggunakan modus Virtual 8086, yang merupakan fitur baru yang dimiliki oleh Intel 80386.

Versi 2.03 dan kemudian versi 3.0 mendapatkan tuntutan dari Apple karena memang versi 2.1 ini memiliki modus penampilan jendela secara cascade (bertumpuk), selain beberapa fitur sistem operasi Apple Macintosh yang "ditiru" oleh Windows, utamanya adalah masalah tampilan/look and feel. Hakim William Schwarzer akhirnya membatalkan semua 189 tuntutan tersebut, kecuali 9 tuntutan yang diajukan oleh Apple terhadap Microsoft pada tanggal 5 Januari 1989.

Kesuksesan dengan Windows 3.0

Microsoft Windows akhirnya mencapai kesuksesan yang sangat signifikan saat menginjak versi 3.0 yang dirilis pada tahun 1990. Selain menawarkan peningkatan kemampuan terhadap aplikasi Windows, Windows 3.0 juga mampu mengizinkan pengguna untuk menjalankan beberapa aplikasi MS-DOS secara serentak (multitasking), karena memang pada versi ini telah diperkenalkan memori virtual. Versi ini pulalah yang menjadikan IBM PC dan kompatibelnya penantang serius terhadap Apple Macintosh. Hal ini disebabkan dari peningkatan performa pemrosesan grafik pada waktu itu (dengan adanya kartu grafis Video Graphics Array (VGA)), dan juga modus terproteksi/modus 386 Enhanced yang mengizinkan aplikasi Windows untuk memakai memori lebih banyak dengan cara yang lebih mudah dibandingkan dengan apa yang ditawarkan oleh MS-DOS.

Windows 3.0 dapat berjalan di dalam tiga modus, yakni modus real, modus standar, dan modus 386 Enhanced, dan kompatibel dengan prosesor-prosesor keluarga Intel dari Intel 8086/8088, 80286, hingga 80386. Windows 3.0 akan mencoba untuk mendeteksi modus mana yang akan digunakan, meski pengguna dapat memaksa agar Windows bekerja dalam modus tertentu saja dengan menggunakan switch-switch tertentu saat menjalankannya

  • win /r: memaksa Windows untuk berjalan di dalam modus real
  • win /s: memaksa Windows untuk berjalan di dalam modus standar
  • win /3: memaksa Windows untuk berjalan di dalam modus 386 Enhanced.

Versi 3.0 juga merupakan versi pertama Windows yang berjalan di dalam modus terproteksi, meskipun kernel 386 enhanced mode merupakan versi kernel yang ditingkatkan dari kernel modus terproteksi di dalam Windows/386.

Karena adanya fitur kompatibilitas ke belakang, aplikasi Windows 3.0 harus dikompilasi dengan menggunakan lingkungan 16-bit, sehingga sama sekali tidak menggunakan kemampuan mikroprosesor Intel 80386, yang notabene adalah prosesor 32-bit.

Windows 3.0 juga hadir dalam versi "multimedia", yang disebut dengan Windows 3.0 with Multimedia Extensions 1.0, yang dirilis beberapa bulan kemudian. Versi ini dibundel dengan keberadaan "multimedia upgrade kit", yang terdiri atas drive CD-ROM dan sebuah sound card, seperti halnya Creative Labs Sound Blaster Pro. Versi ini merupakan perintis semua fitur multimedia yang terdapat di dalam versi-versi Windows setelahnya, seperti halnya Windows 3.1 dan Windows for Workgroups, dan menjadi bagian dari spesifikasi Microsoft Multimedia PC.

Fitur-fitur yang disebutkan di atas dan dukungan pasar perangkat lunak aplikasi yang semakin berkembang menjadikan Windows 3.0 sangat sukses di pasaran. Tercatat, dalam dua tahun sebelum dirilisnya versi Windows 3.1, Windows 3.0 terjual sebanyak 10 juta salinan. Akhirnya, Windows 3.0 pun menjadi sumber utama pemasukan Microsoft, dan membuat Microsoft melakukan revisi terhadap beberapa rencana awalnya.

Beralih sementara ke OS/2

Selama pertengahan hingga akhir 1980an, Microsoft dan IBM bekerja sama dalam mengembangkan sebuah sistem operasi penerus DOS, yang disebut sebagai IBM OS/2. OS/2 dapat menggunakan semua kemampuan yang ditawarkan oleh mikroprosesor Intel 80286 dan mampu mengakses memori hingga 16 Megabyte. OS/2 1.0 dirilis pada tahun 1987, yang memiliki fitur swapping dan multitasking, selain tentunya mengizinkan aplikasi MS-DOS untuk berjalan di atasnya.

OS/2 versi 1.0 hanyalah sebuah sistem operasi yang berbasis modus teks/command line saja. OS/2 versi 1.1 yang dirilis pada tahun 1988 menawarkan antarmuka grafis, yang disebut dengan Presentation Manager (PM). Presentation Manager ini menggunakan sistem koordinat yang sama dengan koordinat Cartesius, berbeda dengan sistem operasi Windows dan beberapa sistem GUI lainnya. Penggunaan sistem koordinat tersebut menyebabkan titik x,y 0,0 pada OS/2 diletakkan pada pojok kiri bawah layar, sementara pada Windows, peletakannya pada pojok kiri atas. OS/2 versi 1.2, yang dirilis pada tahun 1989, memperkenalkan sebuah sistem berkas baru, yang disebut dengan High Performance File System (HPFS), yang ditujukan untuk menggantikan sistem berkas File Allocation Table (FAT).

Pada awal-awal tahun 1990an, hubungan antara Microsoft dan IBM pun meregang akibat munculnya sebuah konflik. Hal ini dikarenakan mereka saling bekerja sama dalam mengembangkan sistem operasi komputer pribadi masing-masing (IBM dengan OS/2 dan Microsoft dengan Windows-nya), keduanya memiliki akses terhadap kode masing-masing sistem operasi. Microsoft menghendaki pengembangan lebih lanjut dari sistem operasi Windows buatannya, sementara IBM memiliki hasrat bahwa semua pekerjaan masa depannya haruslah dibuat berdasarkan sistem operasi OS/2. Dalam sebuah percobaan untuk mengakhiri konflik ini, IBM dan Microsoft akhirnya setuju bahwa IBM akan mengembangkan IBM OS/2 versi 2.0, untuk menggantikan OS/2 versi 1.3 dan Windows 3.0, sementara Microsoft harus mengembangkan sebuah sistem operasi baru, OS/2 versi 3.0, yang akan kemudian menggantikan OS/2 versi 2.0.

Persetujuan ini pun tidak berlangsung lama, sehingga hubungan IBM dan Microsoft pun dihentikan. IBM akhirnya melanjutkan pengembangan OS/2, sementara Microsoft mengganti nama sistem operasi OS/2 versi 3.0 (yang belum dirilis) menjadi Windows NT. Keduanya masih memiliki hak untuk menggunakan teknologi OS/2 dan Windows yang sudah dibentuk sampai pemutusan persetujuan; akan tetapi, Windows NT benar-benar ditulis sebagai sebuah sistem operasi yang baru dan sebagian besar kode bebas dari kode IBM OS/2.

Setelah versi 1.3 dirilis untuk untuk membenarkan beberapa masalah dalam OS/2 versi 1.x, IBM akhirnya merilis OS/2 versi 2.0 pada tahun 1992. Versi 2.0 ini menawarkan peningkatan yang signifikan, yakni sebuah GUI berorientasi objek, yang disebut dengan Workplace Shell (WPS), yang mencakup di dalamnya sebuah dekstop dan dianggap oleh banyak orang merupakan fitur terbaik di dalam OS/2. Microsoft pun akhirnya "menjiplak" beberapa elemen dari Workplace Shell pada sistem operasi Windows 95 yang dirilis tiga tahun kemudian. Versi 2.0 juga menawarkan API yang mendukung penuh instruksi 32-bit milik Intel 80386, sehingga menawarkan fitur multitasking yang bagus dan mampu mengalamatkan memori hingga 4 gigabyte. Meskipun demikian, banyak hal di dalam internal sistem masih menggunakan kode 16-bit, yang mengharuskan device driver juga harus ditulis dengan menggunakan kode 16-bit juga, selain tentunya beberapa hal internal lainnya. Hal ini merupakan salah satu alasan mengapa OS/2 kekurangan driver perangkat keras. Versi 2.0 juga mampu menjalankan aplikasi DOS dan Windows 3.0, karena memang IBM juga masih memiliki hak untuk menggunakan kode DOS dan Windows setelah "perceraian" hubungan antara mereka.

Pada saat itu, memang tidak jelas siapa yang menjadi pemenang dalam perlombaan yang disebut "Desktop Wars", akan tetapi pada akhirnya OS/2 tidak mampu mendapatkan pangsa pasar yang cukup meskipun IBM pada akhirnya merilis beberapa versi OS/2 yang jauh lebih hebat lagi setelah versi 2.0 ini.

E R D ( Entity Relationship Diagram )

ERD merupakan suatu model untuk menjelaskan hubungan antar data dalam basis data berdasarkan objek-objek dasar data yang mempunyai hubungan antar relasi.

ERD untuk memodelkan struktur data dan hubungan antar data, untuk menggambarkannya digunakan beberapa notasi dan simbol. Pada dasarnya ada tiga simbol yang digunakan, yaitu :

  1. Entiti

Entiti merupakan objek yang mewakili sesuatu yang nyata dan dapat dibedakan dari sesuatu yang lain (Fathansyah, 1999: 30). Simbol dari entiti ini biasanya digambarkan dengan persegi panjang.

  1. Atribut

Setiap entitas pasti mempunyai elemen yang disebut atribut yang berfungsi untuk mendeskripsikan karakteristik dari entitas tersebut. Isi dari atribut mempunyai sesuatu yang dapat mengidentifikasikan isi elemen satu dengan yang lain. Gambar atribut diwakili oleh simbol elips.

  1. Hubungan / Relasi

Hubungan antara sejumlah entitas yang berasal dari himpunan entitas yang berbeda. Relasi dapat digambarkan sebagai berikut :

Relasi yang terjadi diantara dua himpunan entitas (misalnya A dan B) dalam satu basis data yaitu (Abdul Kadir, 2002: 48) :

1). Satu ke satu (One to one)

Hubungan relasi satu ke satu yaitu setiap entitas pada himpunan entitas A berhubungan paling banyak dengan satu entitas pada himpunan entitas B.

2). Satu ke banyak (One to many)

Setiap entitas pada himpunan entitas A dapat berhubungan dengan banyak entitas pada himpunan entitas B, tetapi setiap entitas pada entitas B dapat berhubungan dengan satu entitas pada himpunan entitas A.

3). Banyak ke banyak (Many to many)

Setiap entitas pada himpunan entitas A dapat berhubungan dengan banyak entitas pada himpunan entitas B.