software, technology dan bahasa komunikasi agent

Software, technologi dan bahasa komunikasi agent


Agent merupakan suatu teknologi baru dalam dunia rekayasasoftware. Kemampuan agen yang otonom, personal, mobile dan mampu bekerja sama secara terus menerus membuat para pengembangsoftware memanfaatkan teknologi ini untuk aplikasi yang mempunyai lingkungan yang memiliki jenis informasi yang beragam dan tersebar di banyak lokasi (Lange, 1998).
Menurut, Graesser (Graesser dalam Jeaning, 1998) software agent adalah “An autonomous agent is sistem situated within and part of environment that senses that environment and acts on it, over time, in pursuit of its own agenda and so as to effect what it senses in the future.”
Di dalam kamus Webster’s New World Dictionary [Guralnik, 1983], agent didefinisikan sebagai: “A person or thing that acts or is capable of acting or is empowered to act, for another.”
Disini ada dua point yang bisa kita ambil:
·        Agent mempunyai kemampuan untuk melakukan suatu tugas/pekerjaan.
·        Agent melakukan suatu tugas/pekerjaan dalam kapasitas untuk sesuatu, atau untuk orang lain.
Ditarik dari point-point diatas Caglayan [Caglayan et al., 1997] mendefinisikan software agent sebagai: “Suatu entitas software komputer yang memungkinkan user (pengguna) untuk mendelegasikan tugas kepadanya secara mandiri (autonomously).”
Definisi agen yang akan dipakai dalam penelitian ini yaitu dapat dilihat dalam dua perspektif, yaitu perspektif user dan perspektif sistem. Dalam perspektif user agen merupakan sebuah software yang bertindak selaku perantara/ agen atau broker bagi user yang memungkinkan user untuk mendelegasikan tugas kepadanya serta melakukan pekerjaan seperti yang diperintahkannya. Sedangkan dalam perspektif sistem, agen dapat mengenali lingkungan kerjanya dan memiliki sifat-sifat keagenan.

Karakteristik dan Atribut Software Agent

1.          Autonomy: Agent dapat melakukan tugas secara mandiri dan tidak dipengaruhi secara langsung oleh user, agent lain ataupun oleh lingkungan (environment). Untuk mencapai tujuan dalam melakukan tugasnya secara mandiri, agent harus memiliki kemampuan kontrol terhadap setiap aksi yang mereka perbuat, baik aksi keluar maupun kedalam [Woolridge et. al., 1995]. Dan satu hal penting lagi yang mendukung autonomy adalah masalah intelegensi (intelligence) dari agent.
2.        Intelligence, Reasoning, dan Learning: Setiap agent harus mempunyai standar minimum untuk bisa disebut agent, yaitu intelegensi (intelligence). Dalam konsep intelligence, ada tiga komponen yang harus dimiliki: internal knowledge base, kemampuan reasoning berdasar pada knowledge base yang dimiliki, dan kemampuan learning untuk beradaptasi dalam perubahan lingkungan.
3.        Mobility dan Stationary: Khusus untuk mobile agent, dia harus memiliki kemampuan yang merupakan karakteristik tertinggi yang dia miliki yaitu mobilitas. Berkebalikan dari hal tersebut adalah stationary agent. Bagaimanapun juga keduanya tetap harus memiliki kemampuan untuk mengirim pesan dan berkomunikasi dengan agent lain.
4.        Delegation: Sesuai dengan namanya dan seperti yang sudah kita bahas pada bagian definisi, agent bergerak dalam kerangka menjalankan tugas yang diperintahkan oleh user. Fenomena pendelegasian (delegation) ini adalah karakteristik utama suatu program disebut agent.
5.        Reactivity: Karakteristik agent yang lain adalah kemampuan untuk bisa cepat beradaptasi dengan adanya perubahan informasi yang ada dalam suatu lingkungan (enviornment). Lingkungan itu bisa mencakup: agent lain, user, adanya informasi dari luar, dsb [Brenner et. al., 1998].
6.        Proactivity dan Goal-Oriented: Sifat proactivity boleh dikata adalah kelanjutan dari sifat reactivity. Agent tidak hanya dituntut bisa beradaptasi terhadap perubahan lingkungan, tetapi juga harus mengambil inisiatif langkah penyelesaian apa yang harus diambil [Brenner et. al., 1998]. Untuk itu agent harus didesain memiliki tujuan (goal) yang jelas, dan selalu berorientasi kepada tujuan yang diembannya (goal-oriented).
7.         Communication and Coordination Capability: Agent harus memiliki kemampuan berkomunikasi dengan user dan juga agent lain. Masalah komunikasi dengan user adalah masuk ke masalah user interface dan perangkatnya, sedangkan masalah komunikasi, koordinasi, dan kolaborasi dengan agent lain adalah masalah sentral penelitian Multi Agent System (MAS). Bagaimanapun juga untuk bisa berkoordinasi dengan agent lain dalam menjalankan tugas, perlu bahasa standard untuk berkomunikasi. Tim Finin [Finin et al., 1993] [Finin et al., 1994] [Finin et al., 1995] [Finin et al., 1997] dan Yannis Labrou [Labrou et al., 1994] [Labrou et al., 1997] adalah peneliti software agent yang banyak berkecimpung dalam riset mengenai bahasa dan protokol komunikasi antar agent. Salah satu produk mereka adalah Knowledge Query and Manipulation Language (KQML). Kemudian masih berhubungan dengan ini komunikasi antar agent adalah Knowledge Interchange Format (KIF).

Klasifikasi Software Agent Menurut Karakteristik Yang Dimiliki

1.        Collaborative Agent: Agent yang memiliki kemampuan melakukan kolaborasi dan koordinasi antar agent dalam kerangka Multi Agent System (MAS).
2.      Interface Agent: Agent yang memiliki kemampuan untuk berkolaborasi dengan user, melakukan fungsi monitoring dan learning untuk memenuhi kebutuhan user.
3.      Mobile Agent: Agent yang memiliki kemampuan untuk bergerak dari suatu tempat ke tempat lain, dan secara mandiri melakukan tugas ditempat barunya tersebut, dalam lingkungan jaringan komputer.
4.      Information dan Internet Agent: Agent yang memiliki kemampuan untuk menjelajah internet untuk melakukan pencarian, pemfilteran, dan penyajian informasi untuk user, secara mandiri. Atau dengan kata lain, memanage informasi yang ada di dalam jaringan Internet.
5.      Reactive Agent: Agent yang memiliki kemampuan untuk bisa cepat beradaptasi dengan lingkungan baru dimana dia berada.
6.      Hybrid Agent: Kita sudah mempunyai lima klasifikasi agent. Kemudian agent yang memiliki katakteristik yang merupakan gabungan dari karakteristik yang sudah kita sebutkan sebelumnya adalah masuk ke dalam hybrid agent.
7.       Heterogeneous Agent System: Dalam lingkungan Multi Agent System (MAS), apabila terdapat dua atau lebih hybrid agent yang memiliki perbedaan kemampuan dan karakteristik, maka sistem MAS tersebut kita sebut dengan heterogeneous agent system.

Klasifikasi menurut Lingkungan Dimana Dijalankan
1.        Desktop Agent : Agent yang hidup dan bertugas dalam lingkungan Personal Computer (PC), dan berjalan diatas suatu Operating System (OS).
2.              Internet Agent : Agent yang hidup dan bertugas dalam lingkungan jaringanInternet, melakukan tugas memanage informasi yang ada di Internet. Termasuk dalam klasifikasi ini adalah: Web Search Agent, Web Server Agent, Information Filtering Agent, Information Retrieval Agent, Notification Agent, Service Agent, Mobile Agent.
3.      Intranet Agent : Agent yang hidup dan bertugas dalam lingkungan jaringanIntranet, melakukan tugas memanage informasi yang ada di Intranet.
Termasuk dalam klasifikasi ini adalah: Collaborative Customization Agent, Process Automation Agent, Database Agent, Resource Brokering Agent.

Software agent dalam konsepsi black-box bisa divisualisasikan sebagai berikut. Pertama agent mendapatkan input atau perception terhadap suatu masalah, kemudian bagian intelligent processing mengolah input tersebut sehingga bisa menghasilkan output berupa action. Software agent memiliki module interaksi (interaction module) yang berguna untuk melakukan komunikasi (communication), koordinasi (coordination) dan kooperasi (cooperation) dengan lingkungannya. Lingkungan (environment) dari agent bisa berwujud agent lain, user atau pengguna, ataupun berupa sumber-sumber informasi (information sources). Agent menggunakan module interaksi untuk mendapatkan informasi dari lingkungan dan juga untuk melakukan aksi. Oleh karena itu module interaksi disediakan dalam level input (perception) dan output (action).
Mobile agent adalah agen yang aktif dan dapat bergerak menuju komputer lain, atau mejelajahi jaringan untuk menjalankan tugasnya. Mobile agent sering digunakan untuk mengumpulkan data, informasi atau suatu perubahan. Mobile agent tidak terikat pada sistem dimana ia mulai dieksekusi. Beberapa penerapan dari Mobile agent: Pengumpulan data, pencarian dan penyaringan, pemantauan asinkron, dan pemrosesan paralel.
Keuntungan Mobile agent
1. Mengurangi beban jaringan
2. Efisiensi sumber daya
3. Menanggulangi latency jaringan
4. Encapsulate protocol
5. Eksekusi secara asynchronous dan autonomous
6. Beradaptasi secara dinamis
7. Andal dan toleran terhadap kesalahan
8. Mendukung lingkungan yang heterogen
9. Real Time Notification
10. Ekekusi paralel
11. Paradigma Komputasi yang adaptif
12. Skalabilitas

Bahasa Pemrograman atau komunikasi agent
Bahasa pemrograman yang dipakai untuk tahap implementasi dari softwareagent, sangat menentukan keberhasilan dalam implementasi agent sesuai dengan yangdiharapkan. Beberapa peneliti memberikan petunjuk tentang bagaimana karakteristik bahasa pemrorgaman yang sebaiknya di pakai. Diantaranya yaitu :
1. Object-Orientedness:
Karena agent adalah berhubungan dengan obyek, bahkan beberapa penelitimenganggap agent adalah obyek yang aktif, maka juga agent harusdiimplementasikan kedalam pemrorgaman yang berorientasi obyek (object-orientedprogramming language).
2. Platform Independence:
Seperti sudah dibahas pada bagian sebelumnya, bahwa agent hidup danberjalan diberbagai lingkungan. Sehingga idealnya bahasa pemrograman yang dipakaiuntuk implementasi adalah yang terlepas dari platform, atau dengan kata lain programtersebut harus bisa dijalankan di platform apapun (platform independence).
3. Communication Capability:
Pada saat berinteraksi dengan agent lain dalam suatu lingkungan jaringan(network environment), diperlukan kemampuan untuk melakukan komunikasi secarafisik. Sehingga diperlukan bahasa pemrograman yang dapat mensupportpemrograman yang berbasis network dan komunikasi.
4. Security:
Faktor keamanan (security) adalah factor yang sangat penting dalam memilihbahasa pemrorgaman untuk implementasi software agent. Terutama untuk mobilagent, diperlukan bahasa pemrograman yang mensupport level-level keamanan yangbisa membuat agent bergerak dengan aman.
5. Code Manipulation:
Beberapa aplikasi software agent memerlukan manipulasi kode programsecara runtime, sehingga diperlikan bahasa pemrograman untuk software agent yangdapat menangani masalah runtime tersebut.Dari karakteristik di atas dapat disimpulkan bahwa bahasa pemrograman yang layak untuk mengimplementasikan software agent adalah sebagai berikut :
Java
• Telescript
• Tcl/Tk, Safe-Tcl, Agent-Tcl

Teknologi agen telah menunjukkan potensi besar untuk memecahkan masalah dalam skala besar sistem terdistribusi.
Aplikasi Software Agent di Dunia Industri
Teknologi agent sudah diaplikasikan secara luas di dunia Industri. Bagaimanapun juga harus diakui bahwa secara sejarah penelitian, selain dunia Internet dan bisnis, teknologi agent banyak didesain untuk dimanfaatkan di bidang industry, yaitu:
·         Manufacturing
·         Process Control
·         Telecommunications
·         Air Traffic Control
·         Transportation System

Aplikasi Software Agent di Dunia Internet dan Bisnis

Teknologi agent paling banyak diaplikasikan dalam dunia Internet dan bisnis ini. Bagaimanapun juga ini tak lepas dari maju dan berkembang pesatnya teknologi jaringan komputer yang membuat perlunya paradigma baru untuk menangani masalah kolaborasi, koordinasi dalam jarak yang jauh, dan salah satu yang penting lagi adalah menangani kendala membengkaknya informasi, yaitu:
·         Information Management
·         Electronic Commerce
·         Distributed Project Management

Aplikasi Software Agent di Dunia Entertainment

Adanya software agent, memungkinkan komunitas informatika dan komputer untuk ikut andil merealisasikan pemikirannya, contohnya:
·         Games
·         Interactive Theatre and Cinema
Aplikasi Software Agent di Dunia Medis
Teknologi agent pun dicoba untuk diimplementasikan dalam rangka mencoba mengatasi masalah-masalah yang berhubungan dengan monitoring pasien [Larsson et al., 1998], manajemen kesehatan dari pasien [Huang et al., 1995], dsb.

Aplikasi Software Agent di Dunia Pendidikan

Dengan perkembangan teknologi jaringan komputer, dunia pendidikan pun salah satu yang merasakan manfaatnya. Sistem pengajaran pun mengalami perkembangan kearah lebih modern dengan memanfaatkan teknologi jaringan. Berhubungan dengan teknologi agent, dewasa ini banyak sekali riset dan aplikasi untuk dunia pendidikan yang menggunakan teknologi agent, misalnya [Chen et al., 1996], [Espinosa et al., 1996], [Florea, 1999], dsb.

http://romisatriawahono.net
http://translate.google.co.id/translate?hl=id&langpair=en|id&u=http://www.imes.mtu.edu/PubDocs/TRC.pdf

pertemuan 3 softskill "Paralel Processing"

Komputasi dan Paralel Processing


Untuk pertemuan ketiga pada matakuliah softskill ini saya akan menambahkan dan mengulas ulang pada materi yang sebelumnya sudah pernah saya bahas pada blog ini juga. Pertemuan ini saya akan membahas mengenai komputasi dan parallel processing serta hubungan yang saling berhubungan di antara keduanya.
            Dalam pembahasan ini kita harus tahu terkebih dahulu apa itu komputasi dan parallel processing?
Pemrosesan paralel (parallel processing) adalah penggunakan lebih dari satu CPU untuk menjalankan sebuah program secara simultan. Idealnya, parallel processing membuat program berjalan lebih cepat karena semakin banyak CPU yang digunakan.
Komputasi paralel adalah salah satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer secara bersamaan. Untuk melakukan aneka jenis komputasi paralel ini diperlukan infrastruktur mesin paralel yang terdiri dari banyak komputer yang dihubungkan dengan jaringan dan mampu bekerja secara paralel untuk menyelesaikan satu masalah. Untuk itu diperlukan aneka perangkat lunak pendukung yang biasa disebut sebagai middleware yang berperan untuk mengatur distribusi pekerjaan antar node dalam satu mesin paralel. Selanjutnya pemakai harus membuat pemrograman paralel untuk merealisasikan komputasi.
Pemrograman paralel adalah teknik pemrograman komputer yang memungkinkan eksekusi perintah/operasi secara bersamaan (komputasi paralel), baik dalam komputer dengan satu (prosesor tunggal) ataupun banyak (prosesor ganda dengan mesin paralel) CPU. Bila komputer yang digunakan secara bersamaan tersebut dilakukan oleh komputer-komputer terpisah yang terhubung dalam suatu jaringan komputer lebih sering istilah yang digunakan adalah sistem terdistribusi (distributed computing).
Komputasi paralel membutuhkan :
  • algoritma 
  • bahasa pemrograman
  • compiler
Tujuan utama dari pemrograman paralel adalah untuk meningkatkan performa komputasi.
Message Passing Interface (MPI). MPI adalah sebuah standard pemrograman yang memungkinkan pemrogram untuk membuat sebuah aplikasi yang dapat dijalankan secara paralel. MPI menyediakan fungsi-fungsi untuk menukarkan antar pesan. Kegunaan MPI yang lain adalah
1.        menulis kode paralel secara portable
2.       mendapatkan performa yang tinggi dalam pemrograman paralel, dan
3.       menghadapi permasalahan yang melibatkan hubungan data irregular atau dinamis yang tidak  begitu cocok dengan model data paralel.

Arsitektur Komputer Parallel, berdasarkan simetrinya, multiprocessing dapat dibagi ke dalam 3 bentuk yaitu:
1.        Asymmetric Multiproce ssing (ASMP)
2.       Symmetric Multiprocessing (SMP)
3.       Non-uniform memory access (NUMA)multi processing
Non-Uniform Memory Accessatau Non-Uniform Memory Arsitektur . (NUMA) adalah memori komputer Rancangan yang digunakan dalam multiprocessors , dimana waktu akses memori tergantung pada lokasi memori relatif terhadap prosesor.
Kriteria yang menentukan baik buruknya topologi yang dipakai dalam Parallel Processing:
1.        Diameter        : Semakin kecil diameter yang digunakan akan semakin baik.
2.       Bisection Width : Semakin besar bisection width semakin baik.
3.       Derajat           : Derajat yang tetap adalah yang terbaik.
4.       Panjang maximum garis : Panjang garis tetap adalah terbaik.\


M. J. Flynn membedakan computer parallel kedalam 4 kelas berdasarkan konsep aliran data (data stream) dan aliran instruksi (instruction stream), yaitu ;
1.    SISD (Single Instruction stream, Single Data stream), computer tunggal yang mempunyai 1 unit control, 1 unit processor dan 1 unit memori.
2.    SIMD (Single Instruction stream, Multiple Data stream), Komputer yang mempunyai beberapa unit processor , setiap processor menerima instruksi yang sama dari unit control, tetapi beroperasi pada data yang berbeda.

3.      MISD (Multiple Instruction stream, Single Data stream), belum ada computer dengan model ini.
4.  MIMD (Multiple Instruction stream, Multiple Data stream), Organisasi computer yan memiliki kemampuan untuk memproses beberapa program dalam waktu yang sama. Multiprocessor dan multikomputer termasuk dalam kategori ini.


Istilah-istilah dalam pemrograman paralel

  • Embarasingly Parallel adalah pemrograman paralel yang digunakan pada masalah-masalah yang bisa diparalelkan tanpa membutuhkan komunikasi satu sama lain. Sebenarnya pemrograman ini bisa dibilang sebagai pemrograman paralel yang ideal, karena tanpa biaya komunikasi, lebih banyak peningkatan kecepatan yang bisa dicapai.
  • Cluster adalah Sekelompok computer yang saling terhubung dan bekerja  sama sebagai satu kesatuan sumber daya komputasi, sedemikian sehingga seolah-olah merupakan mesin tunggal.



Kesimpulannya Hubungan dari komputasi modern dengan parallel processing adalah untuk melakukan aneka jenis komputasi paralel ini diperlukan infrastruktur mesin paralel yang terdiri dari banyak komputer yang dihubungkan dengan jaringan dan mampu bekerja secara paralel untuk menyelesaikan satu masalah. Untuk itu diperlukan aneka perangkat lunak pendukung yang biasa disebut sebagai middleware yang berperan untuk mengatur distribusi pekerjaan antar node dalam satu mesin paralel. Selanjutnya pemakai harus membuat pemrograman paralel untuk merealisasikan komputasi. Paralel prosessing komputasi adalah proses atau pekerjaan komputasi di komputer dengan memakai suatu bahasa pemrograman yang dijalankan secara paralel pada saat bersamaan. Secara umum komputasi parallel diperlukan untuk meningkatkan kecepatan bila dibandingkan dengan pemakaian komputasi pada komputer tunggal. Untuk proses pembagian proses komputasi tersebut dilakukan oleh suatu software yang betugas untuk mengatur komputasi. Terdapat dua jenis kinerja parallel processing yaitu Multi-core dan PC Clustering. Sehingga paralel processing dapat mempercepat waktu penyelesaian masalah komputasi karena proses dijalankan secara paralel dg beberapa processor/komputer dengan tujuan/algoritma yang sama. Banyaknya jumlah komputer/prosessor untuk paralel processing, proses komputasi menjadi lebih cepat.

referensi dari :

materi dari gunadarma

pertemuan 2 softskill "Komputasi Modern"


KOMPUTASI MODERN

 Pada pertemuan sebelumnya saya sudah membahas sedikit mengenai komputasi modern, namun kali ini saya akan menambahkan lagi penjelasan tersebut.
Komputasi modern merupakan sebuah cara untuk menyelesaikan sebuah masalah yang berkaitan dengan sistem matematis, namun dalam pengertian yang akan dibahas dalam pembahasan komputasi modern ini merupakan sebuah sistem yang akan menyelesaikan masalah matematis menggunakan komputer dengan cara menyusun algoritma yang dapat dimengerti oleh komputer yang berguna untuk menyelesaikan masalah manusia.
Sejarah komputasi modern seperti yang kita ketahui sesuai tahunnya seperti dibawah ini:
·         1936 Alan Turing menyampaikan makalahnya "Pada nomor dihitung, dengan aplikasi ke masalah Entscheidungs ​​'untuk Proses dari London Masyarakat matematika.
·         Tahun 1940 komputer yang semula dikhususkan sebagai instrument untuk science, berubah menjadi produk komersil.
·         1941 Zuse Konrad bekerja dalam isolasi di Jerman, membangun Z3. Dia tahu apa-apa tentang pekerjaan Turing.
·         1944 Komputer Colossus pertama adalah operasional di Bletchley Park, Buckinghamshire, secara signifikan memberikan kontribusi kepada upaya perang sekutu dengan menggandakan output codebreakers '. Isinya 1.500 katup termionik, adalah ukuran ruangan dan beratnya sekitar satu ton. Secara keseluruhan, 10 komputer Colossus yang digunakan pada akhir perang dan di temukan Bug Komputer oleh Grace Murray Hopper
·         1945 John von Neumann menerbitkan sebuah makalah yang menetapkan arsitektur dari sebuah komputer disimpan-program.
·         1946 publik Pertama menunjukkan dari komputer Eniac dibangun dalam tiga tahun sebelumnya di University of Pennsylvania.
·         Tahun 1947 tanggal 23 Desember ditemukan transistor yang pertama kali oleh Bardeen dan Walter Brattain bersama dengan William Shockley
·         Tahun 1951 dimulai sebuah gagasan microprogramming oleh Maurice Wilkes
·         Tahun 1951-1952 Grace Murray Hopper mengembangkan A-O, yang merupakan compiler pertama.
·         1952 Von Neumann komputer IAS menjadi operasional dan secara luas kloning - ada hak paten.
·         Tahun 1957 John Backus dan kolega IBM mengirimkan Compiler Fortran yang pertama.
·         Tahun 1958 Jack Kilby menghasilkan prototype semiconductor IC
·         Tahun 1960 merupakan timbulnya system kecil seperti word length, register structure, Number of Addresses, I/O channel, Floating point hardware.Tahun 1960 juga Paul Baran yang bekerja di Rand Corp. menemukan dasar packet switching untuk data komunikasi.
·         Tahun 1962 video game pertama kali di temukan oleh Steve Russell yang merupakan seorang lulusan MIT.
·         Tahun 1964 mouse ditemukan oleh Doug Engelbart.Tahun 1969 munculnya internet oleh DARPA
·         Tahun 1970 merupakan kedatangan PC (personal computer).
·         Tahun 1970 ditemukan UNIX oleh Dennis Ritchie dan Kenneth Thomson.Pada tahun 1970 juga floppy disk dan daisywheel printer di tunjukkan kepada umum (debut pertama).
·         Tahun 1971 Ray Tomlinson of Bolt Beranek dan Newmen pertama kali mengirimkan jaringan surat e-mail dan Niklaus Wirth menemukan Pascal
·         Tahun 1972 di temukan bahasa C oleh Dennis Ritchie di Bell Labs.
·         Tahun 1973 Robert Metcalfe menuliskan catatan di “Ether Acquisition” yang mendeskripsikan Ethernet.
·         Tahun 1973 Robert Metcalfe dan David Boggs menemukan Ethernet.
·         Tahun 1976 merupakan tahun pertama kalinya muncul supercomputer dengan vektorial arsitektur.
·         Tahun 1976, Steve Jobs dan Steve Wozniak mendesain dan membangun Apple I yang terdiri dari kebanyakan papan circuit.
·         Tahun 1977, Steve Jobs dan Steve Wozniak tergabung dalam Apple computer pada 3 januari.
·         Tahun 1978, Muncul MS
·         Tahun 1978, Wordstar yang merupakan software pengolah kata diperkenalkan dan meluas.
·         Tahun 1979 telepon seluler di test di Jepang dan Chicago.
·         Tahun 1980 IBM memilih PC-DOS dari Microsoft sebagai OS (Operating System), bahasa Ada muncul yang di temukan oleh Departemen Pertahanan US dan tahun 1980 portable computer seberat 24 pounds lahir.
·         1 januari 1983, muncul TCP/IP
·         Tahun 1984, muncul Apple Macintosh dan muncul DNS
·         Tahun 1985 menyebarnya sistem networking.
·         Tahun 1990 tim Barners Lee Menemukan WWW yaitu aplikasi internet yang membawa perkembangan dan perubahan besar di dunia internet.
·         Tahun 1991 Trovalds menempatkan UNIX di IBMnya.
·         Tahun 1992 muncul istilah surfing
·         Tahun 1993 pentium milik intel diperkenalkan kepada umum pada bulan Maret
·         Tahun 1993 muncul NSCA Mosaic
·         Tahun 1994 muncul Yahoo dan Netscape Navigator 1.0
·         Tahun 1995 muncul bahasa pemrograman Java pada bulan Mei
·         Pada Desember 1994 maka Spyglass milik Microsoft telah dibayar dan diberi lisensi, sehingga untuk web browser yang nantinya nama spyglass tersebut akan diganti dengan nama Internet Explorer.
·         Pada 1995 spyglass sudah menjadi bagian dari OS dan bagian dari windows
Pada akhir tahun 1940 dan awal tahun 1950, melalui perkembangan dari mesin komputasi elektronik, kata "Computing Machine" atau "Mesin Komputasi" secara bertahap berubah hingga menjadi "Computer" saja. Berikut ini merupakan beberapa mesin yang menggunakan prinsip komputasi dan menjadi "nenek moyang" dari komputasi modern:
1.      Babbage's Difference Engine

            Charles Babbage adalah seorang profesor matematika di Cambridge University pada tahun 1828 hingga 1839 (posisi yang sebelumnya diduduki oleh Isaac Newton). Difference Engine diusulkan Babbage adalah mesin komputasi tujuan khusus digital untuk produksi otomatis tabel matematika (seperti tabel logaritma, tabel pasang surut, dan tabel astronomi).

2.      Analog komputer

Mesin-mesin komputasi yang paling awal digunakan secara luas adalah bukan digital tapi analog. Dalam representasi analog, sifat-sifat kera menengah representasional (atau mencerminkan atau model) dari konstruksi yang diwakili negara-of-urusan. Halangan utama dari perhitungan analog adalah biaya yang lebih tinggi, relatif terhadap mesin digital, dari kenaikan presisi. Selama tahun 1960 dan 1970-an, ada minat yang besar terhadap 'hibrida' mesin, di mana bagian analog dikendalikan oleh dan diprogram melalui bagian digital. Namun, mesin tersebut sekarang langka.

3.      Para Turing Machine Universal

Pada tahun 1936, di Universitas Cambridge, Turing menemukan prinsip dari komputer modern. Dia menggambarkan mesin komputasi abstrak digital yang terdiri dari memori terbatas dan scanner yang bergerak bolak-balik melalui simbol, memori dengan simbol, membaca apa yang ditemukan dan menulis simbol lebih lanjut (Turing [1936]).

4.      Atanasoff

Penggunaan sebanding awal tabung vakum di AS tampaknya telah oleh John Atanasoff pada apa yang kemudian Iowa State College (sekarang Universitas). Selama periode 1937-1942 Atanasoff mengembangkan teknik untuk menggunakan tabung vakum untuk melakukan perhitungan numerik secara digital.

5.      Patung raksasa

Sepenuhnya berfungsi komputer elektronik digital pertama adalah Colossus, yang digunakan oleh Taman Bletchley cryptanalysts dari Februari 1944.

6.      Turing Otomatis Mesin Komputasi

Turing dan Newman berpikir sepanjang garis yang sama. Pada tahun 1945 bergabung Turing National Physical Laboratory (NPL) di London, singkatnya untuk merancang dan mengembangkan sebuah komputer disimpan-program elektronik digital untuk karya ilmiah. (Artificial Intelligence tidak jauh dari pikiran Turing: ia menggambarkan dirinya sebagai 'membangun otak' dan mengatakan dalam sebuah surat bahwa ia lebih tertarik pada kemungkinan memproduksi model dari tindakan otak dari dalam aplikasi praktis untuk komputasi ' .) Yohanes Womersley, atasan langsung Turing di NPL, dibaptis mesin diusulkan Turing Engine Komputasi Otomatis, atau ACE, dalam penghormatan kepada Babbage Difference Engine dan Analytical Engine.
 
Macam- macam komputasi modern terdapat 3 jenis, yaitu:
a.
  1.          Mobile Computing atau Komputasi Bergerak
    Mobile computing (komputasi bergerak) merupakan kemajuan teknologi komputer sehingga dapat berkomunikasi menggunakan jaringan tanpa menggunakan kabel serta mudah dibawa atau berpindah tempat, tetapi berbeda dengan komputasi nirkabel. Berdasarkan penjelasan tersebut, untuk kemajuan teknologi ke arah yang lebih dinamis membutuhkan perubahan dari sisi manusia maupun alat. Contoh dari mobile computing adalah GPS, smart phone, dan sebagainya.
    2.      Grid Computing
    Komputasi grid memanfaatkan kekuatan pengolahan idle berbagai unit komputer, dan menggunakan kekuatan proses untuk menghitung satu pekerjaan. Pekerjaan itu sendiri dikontrol oleh satu komputer utama, dan dipecah menjadi beberapa tugas yang dapat dilaksanakan secara bersamaan pada komputer yang berbeda. Tugas-tugas ini tidak perlu saling eksklusif, meskipun itu adalah skenario yang ideal. Sebagai tugas lengkap pada berbagai unit komputasi, hasil dikirim kembali ke unit pengendali, yang kemudian collates itu membentuk keluaran kohesif.
    Ada beberapa daftar yang dapat dugunakan untuk mengenali sistem komputasi grid, adalah :
    • Sistem untuk koordinat sumber daya komputasi tidak dibawah kendali pusat.
    • Sistem menggunakan standard dan protocol yang terbuka.
    • Sistem mencoba mencapai kualitas pelayanan yang canggih, yang lebih baik diatas kualitas komponen individu pelayanan komputasi grid.
    3.      Cloud Computing atau Komputasi Awan
    Komputasi cloud merupakan gaya komputasi yang terukur dinamis dan sumber daya virtual yang sering menyediakan layanan melalui internet. Cloud computing adalah perluasan dari konsep pemrograman berorientasi objek abstraksi. Abstraksi, sebagaimana dijelaskan sebelumnya, menghapus rincian kerja yang kompleks dari visibilitas. Semua yang terlihat adalah sebuah antarmuka, yang menerima masukan dan memberikan output. Bagaimana output ini dihitung benar-benar tersembunyi.

referensi yang saya ambil dari :