Thursday, November 8, 2012

Sejarah C++

C + + (diucapkan "cee plus plus") yaitu sebuah statically typed, free-form, multi-paradigm, compiled, bahasa pemrograman  general-pupose. Hal ini dianggap sebagai bahasa tingkat menengah, karena terdiri dari kombinasi fitur bahasa baik tingkat tinggi dan tingkat rendah.

Bahasa ini dikembangkan oleh Bjarne Stroustrup mulai pada tahun 1979 di Bell Labs sebagai tambahan untuk bahasa C. Awalnya bernama "C with class", bahasa itu kemudian berganti nama C + + pada tahun 1983.

Menurut Stroustrup: "nama menandakan sifat evolusi perubahan dari C". Selama periode pengembangan C + +, bahasa ini telah dirujuk sebagai "C baru", kemudian "C with Classes". Nama terakhir adalah dipersembahkan ke Rick Mascitti (pertengahan 1983) dan pertama kali digunakan pada Desember 1983.

Ketika Mascitti mempertanyakan secara informal pada tahun 1992 tentang penamaan ini, ia menunjukkan bahwa itu diberikan dalam semangat lidah-di-pipi (togue-in-cheek). Hal ini berasal dari C operator "+ +" ( penambahan 1 nilai variabel) dan konvensi penamaan umum menggunakan "+" untuk menunjukkan sebuah program komputer ditingkatkan. Tidak ada bahasa yang disebut "C ditambah". ABCL / c + adalah nama sebuah bahasa, pemrograman sebelumnya tidak berhubungan.

C + + adalah salah satu bahasa pemrograman paling populer dengan domain aplikasi termasuk sistim perangkat lunak, aplikasi perangkat lunak, driver, perangkat lunak tertanam, server berkinerja tinggi dan aplikasi-aplikasi client, dan perangkat lunak hiburan seperti video game. Beberapa kelompok memberikan gratis dan kepemilikan perangkat lunak compiler C + +, termasuk juga GNU Project, Microsoft, Intel dan Embarcadero Technologies mereka pun memberikan layanan gratis tersebut.

Bahasa mulai sebagai perangkat tambahan ke C, pertama menambahkan kelas, maka fungsi virtual, operator overloading, multiple inheritance, template, dan penanganan pengecualian (exception) antara fitur-fitur lainnya.

Setelah tahun pengembangan, C++ bahasa pemrograman standar diratifikasi pada tahun 1998 sebagai ISO / IEC 14882:1998.Standar ini diubah oleh kesalahan dlm tulisan yg diperbaiki 2003 teknis, ISO / IEC14882:2003. Standar saat ini memperpanjang C++ dengan fitur baru disahkan dan diterbitkan oleh ISO pada bulan September 2011 sebagai ISO / IEC 14882:2011(informal dikenal sebagai C + 11).

Bjarne Stroustrup mulai bekerja pada "C with Classes" pada tahun 1979. Ide untuk menciptakan bahasa baru berasal dari pengalaman Stroustrup dalam pemrograman untuk gelar Ph.D. tesis. Stroustrup menemukan bahwa Simula memiliki fitur yang sangat membantu untuk pengembangan perangkat lunak besar, tetapi bahasa itu terlalu lambat untuk penggunaan praktis, sementara BCPL dengan cepat tapi terlalu rendah tingkat cocok untuk pengembangan perangkat lunak besar. Ketika Stroustrup mulai bekerja di AT & T Bell Labs, ia menganalisis masalah kernel UNIX terhadap komputasi terdistribusi. Mengingat gelar Ph.D. pengalaman, Stroustrup berangkat untuk meningkatkan bahasa C dengan Simula-seperti fitur. C dipilih karena itu adalah tujuan umum, cepat, portabel dan banyak digunakan. Selain C dan Simula, beberapa bahasa lain yang mengilhami dia adalah ALGOL 68, Ada, CLU dan ML. Pada awalnya, kelas, kelas turunan, memeriksa jenis yang kuat, inlining, dan fitur argumen default yang ditambahkan ke C melalui itu Stroustrup C + + ke C compiler, Cfront. Pelaksanaan komersial pertama dari C++ dirilis pada 14 Oktober 1985.

Pada tahun 1983, nama bahasa itu berubah dari C dengan Kelas ke C + + (+ + menjadi operator kenaikan di C). Fitur-fitur baru yang ditambahkan termasuk fungsi virtual, nama fungsi dan operator overloading, referensi, konstanta, yang dikendalikan oleh pengguna non-store kontrol memori, memeriksa jenis diperbaiki, dan BCPL gaya single-line dengan dua garis miring (//) untuk komentar. Pada tahun 1985, edisi pertama dari The C + + Programming Language ini dirilis, dan menyediakan referensi penting untuk bahasa ini, karena belum ada standar resmi Rilis 2.0 dari.

C++ datang pada tahun 1989 dan edisi kedua diperbarui dari The C++ Programming Language yang dirilis pada 1991. Ada fitur baru termasuk multiple inheritance, kelas abstrak, fungsi anggota statis, fungsi anggota const, dan anggota (variabel) dilindungi. Pada tahun 1990, The Annotated C + + Reference Manual diterbitkan. Karya ini menjadi dasar untuk standar masa depan. Selain itu akhir fitur yang disertakan template, pengecualian, ruang nama, gips baru, dan tipe Boolean.

Saat bahasa C++ berkembang, library standar pun ikut berevolusi. Penambahan pertama untuk library standar C++ adalah stream I/O library yang menyediakan fasilitas untuk menggantikan fungsi C tradisional seperti printf dan scanf. Kemudian, di antara penambahan yang paling signifikan ke perpustakaan standar, adalah sejumlah besar dari Standard Template Library.
Di dalam C + + Object Model (Lippman, 1996) menjelaskan bagaimana compiler dapat mengkonversi C++ ke dalam laporan program tata letak di memori. Namun, penulis compiler  bebas untuk menerapkan standar dalam cara mereka sendiri.




Monday, January 16, 2012

Pengertian Pointer

Dalam ilmu komputer, pointer adalah tipe data bagi bahasa pemrograman yang nilainya mengacu untuk menunjuk langsung nilai lain yang tersimpan di tempat lain (variabel) di dalam suatu memori komputer dengan menggunakan alamat yang ada. Untuk bahasa pemrograman tingkat tinggi, pointer secara efektif dapat mengambil tempat pada general purpose registers yang ada pada bahasa tingkat rendah seperti bahasa assembly apabila memori masih tersedia. 

Pointer adalah implementasi sederhana, lebih konkretnya yaitu tentang tipe data referensi yang lebih abstrak. Beberapa jenis bahasa mendukung pointer, walaupun ada yang memiliki lebih banyak pembatasan penggunaannya dari pada yang lain. 

Sebagai analoginya, sebuah nomor halaman yang ada pada buku dapat dianggap sebagai pointer ke halaman yang sesuai, dan dereferencing pada pointer akan dilakukan dengan membalik ke halaman dengan nomor halaman yang diberikan. 

Pointer dapat meningkatkan kinerja data secara signifikan agar operasi berulang seperti traversing string, tabel lookup, tabel kontrol dan struktur pohon. Secara khusus, sering jauh lebih efisien dalam penggunaan waktu dan space untuk pointer dari pada menggunakan variable tipe data biasa. 

Pointer juga digunakan untuk menyimpan alamat dari titik masuk untuk memanggil subrutin dalam pemrograman prosedural dan untuk run-time penghubung ke dynamic link libraries (DLL). Dalam pemrograman berorientasi objek, pointer ke fungsi yang digunakan untuk mengikat/menjilid method, ini sering disebut tabel method virtual.

Sementara ini "pointer" telah digunakan untuk merujuk pada referensi yang ada pada umumnya, hal ini juga baik digunakan untuk struktur data yang secara eksplisit memungkinkan antar muka (interface) pointer untuk dimanipulasi (secara aritmetik melalui aritmetik pointer) sebagai alamat memori. Karena pointer memungkinkan akses yang dilindungi maupun tidak dilindungi ke memori yang dituju. 

Pointer primitif adalah pointer sering disimpan dalam format yang sama dengan integer. Namun, pada saat untuk dereference atau "mencari" pointer yang nilainya tidak pernah menjadi alamat memori yang valid akan menyebabkan program menjadi crash. 

Deskripsi Formal: 
Dalam ilmu komputer, pointer adalah termasuk tipe data macam referensi. Sebuah data primitive adalah setiap datum yang dapat dibaca dari atau ditulis ke memori komputer menggunakan satu akses memori (misalnya, kedua byte dan kata (word) yang primitif). 


Sebuah data agregat (aggregate) adalah data primitif yang logis berdekatan di dalam memori dan yang dipandang secara kolektif sebagai satu datum (misalnya, agregat bisa saja 3 byte logis berdekatan, maka nilai-nilai itu lah yang mewakili 3 koordinat titik di dalam ruang memori), ketika seluruh agregat yang terdiri dari jenis primitive yang sama, agregat dapat disebut sabagai sebuah array (larik), dalam arti, multi-byte primitif adalah array dari byte.

Dalam konteks definisi ini, byte adalah primitif terkecil, masing-masing menentukan alamat memori byte yang berbeda. Alamat memori dari byte pertama pada sebuah datum dianggap sebagai alamat memori (atau base alamat memori) dari seluruh datum. 

Sebuah pointer memori adalah primitive, nilai pointer itu digunakan sebagai alamat memori dan disebut sebagai pointer petunjuk ke alamat memori. Hal ini juga disebut bahwa pointer menunjuk ke datum [yang ada dalam memori] ketika nilai pointer berupa alamat memori datum itu.

Secara lebih umumnya, pointer adalah jenis data referensi, dan agar memperoleh  pointer dereference maka datum pointer disimpan di lokasi yang berbeda di dalam memori. Fitur yang membedakan pointer dengan jenis referensi lain yaitu nilai pointer yang dimaksud  dianggap sebagai alamat memori, yang merupakan konsep 'tingkat rendah'. 

Saat membuat struktur data seperti daftar, deret dan percabangan, perlu memiliki pointer untuk membantu mengelola bagaimana struktur dapat diimplementasikan dan dikendalikan. Contoh umum dari pointer adalah start pointer, end pointer, dan stack pointer. Pointer ini dapat menjadi absolute (alamat fisik yang sebenarnya atau alamat virtual di memori virtual) atau relative (sebuah offset dari alamat awal absolute ("dasar") yang biasanya menggunakan bit yang lebih sedikit dari pada alamat lengkap, tetapi biasanya juga akan membutuhkan satu tambahan operasi aritmatika untuk menyelesaikannya).

Dua byte offset, berisi 16-bit unsigned integer, dapat digunakan untuk menyediakan pengalamatan relative sampai dengan 64 kilobyte struktur data. Secara umum, meskipun, skema seperti itu banyak masalah, dan untuk kemudahan bagi programmer maka ruang alamat datar biasanya lebih disukai.

Sebuah byte offset, seperti nilai ASCII karakter heksadesimal dapat digunakan untuk menunjuk nilai integer alternatif dalam array. Dengan cara ini, karakter dapat sangat efisien diterjemahkan dari 'data mentah' ke indeks sekuensial dapat digunakan dan kemudian dituju ke alamat absolut tanpa menggunakan tabel lookup. 

Digunakan dalam mengontrol tabel 
Kontrol tabel digunakan untuk mengontrol aliran program (program flow), biasanya membuat ekstensif menggunakan pointer. Pointer biasanya tertanam dalam sebuah entry tabel. Misalnya, digunakan untuk menyimpan entry point bagi subrutin yang akan dijalankan, dan berdasarkan kondisi tertentu yang didefinisikan dalam entri tabel yang sama. 

Namun pointer  hanya dapat berupa indeks untuk memisahkan data yang lain tetapi terikat, tabel terdiri dari suatu array dari alamat yang aktual atau alamat sendiri (tergantung pada struktur bahasa pemrograman yang tersedia). 

Pointer juga dapat digunakan untuk titik (kembali) ke entri tabel sebelumnya (seperti dalam pengolahan loop) atau maju melewati beberapa entri tabel (seperti pada switch atau "awal" keluar dari loop). 

Abstraksi pointer yang sangat tipis di atas merupakan kemampuan pengalamatan yang dikembangkan dengan arsitektur paling modern. Dalam skema sederhana, alamat atau indeks numerik, ditugaskan bagi setiap unit memori dalam sistem, di mana unit ini biasanya baik byte atau kata (word), secara efektif dapat mengubah semua memori ke array yang sangat besar. Kemudian, jika kita memiliki suatu alamat, sistem itu menyediakan operasi untuk mengambil nilai yang tersimpan dalam unit memori pada alamat (biasanya menggunakan register tujuan umum di dalam mesin yang digunakan). 

Dalam kasus biasa, pointer itu cukup besar untuk menampung alamat lebih dari beberapa unit memori yang berada di dalam sistem. Ini memperkenalkan kemungkinan bahwa program mungkin berusaha untuk mengakses alamat bila tidak ada unit memori, baik karena memori tidak cukup dipasang (yaitu di luar jangkauan memori yang tersedia) atau arsitektur tidak mendukung alamat tersebut. Kasus pertama mungkin, dalam platform tertentu seperti arsitektur Intel x86, disebut kesalahan segmentasi (segfault). Kasus kedua adalah mungkin dalam implementasi pada AMD64, di mana pointer yang memiliki panjang 64 bit dan alamat hanya memperpanjang sampai 48 bit. Disini pointer harus sesuai dengan aturan-aturan tertentu (alamat kanonik), jadi jika pointer nonkanonik adalah dereferenced, akan berakibat prosesor melakukan kesalahan perlindungan umum (general protection fault).

Di sisi lain, beberapa sistem memiliki lebih banyak unit memori dari pada alamat. Dalam hal ini, skema yang lebih kompleks seperti segmentasi memori atau paging dikelola untuk menggunakan bagian yang berbeda dari memori pada waktu yang berbeda pula. Inkarnasi terakhir dari arsitektur x86 mendukung hingga 36 bit dari alamat memori fisik, yang dipetakan ke ruang alamat 32-bit linear melalui mekanisme paging PAE. Jadi, hanya 1 / 16 dari total memori yang mungkin dapat diakses pada suatu waktu. Contoh lain dalam kelompok komputer yang sama adalah 16-bit dalam keadaan terlindungi dari prosesor 80286 yang meskipun mempunyai 16 MiB memori fisik, dapat mengakses hingga 1 GB dari memori virtual, namun kombinasi dari 16-bit alamat dan segmen register dapat mengakses lebih dari 64 KiB dalam satu struktur data rumit. Beberapa pembatasan aritmetik pointer ANSI mungkin memiliki model memori tersegmentasi dari kelompok prosesor ini.

Dalam rangka untuk mengembangkan interface yang konsisten, beberapa arsitektur menyediakan I / O yang dipetakan ke dalam memori, yang memungkinkan beberapa alamat untuk menuju ke unit memori sedangkan yang lain mengacu pada register perangkat perangkat lain di komputer. Ada konsep analog seperti file offset, indeks array, dan referensi object remote yang melayani beberapa tujuan yang sama sebagai alamat untuk jenis object lainnya. 

Pointer secara langsung didukung tanpa pembatasan dalam bahasa seperti PL / I, C, C++, Pascal, dan kebanyakan bahasa perakitan. Ketika berhadapan dengan array, operasi pencarian kritis biasanya perhitungan alamat  disebut tahap perhitungan alamat yang melibatkan pembentukan sebuah array. 

Dalam struktur data lain, seperti daftar terhubung (linked list), pointer digunakan sebagai referensi secara eksplisit yang mengikat salah satu bagian dari struktur yang lain. Pointer digunakan untuk menumpangi parameter bagi referensi. Hal ini berguna jika programmer menginginkan modifikasi fungsi untuk parameter, agar dapat dilihat pada pemanggilan fungsi itu. Ini juga berguna untuk menampilkan nilai hasil perkalian dari dalam fungsi yang telah dibuat.

Pointer juga dapat digunakan untuk mengalokasikan/ALLOCATE atau DEALLOCATE variabel dinamis dan array dalam memori. Karena variable akan sering menyebabkan memori penuh setelah selasai ngerjakan perintah, itu dapat menjadi pemborosan memori apabila kita menyimpannya terus-menerus, dan oleh karena itu praktik yang baik untuk DEALLOCATE itu (menggunakan referensi pointer asli) ketika tidak diperlukan lagi. Kegagalan pada DEALLOCATE dapat mengakibatkan kehabisan memori (dimana memori bebas yang tersedia akan secara bertahap berkurang atau dalam kasus yang parah, dengan secara cepat akan penuh).

Friday, January 13, 2012

Sejarah C#

C# (diucapkan see sharp) adalah bahasa pemrograman multi-paradigma meliputi Strong typing, imperative, declarative, Functional, generic, object-oriented(class-based), dan disiplin pemrograman component-oriented. Ini dikembangkan oleh Microsoft dalam inisiatif NET. 



C # adalah salah satu bahasa pemrograman yang dirancang untuk Infrastruktur Common Language. Perancangan C # adalah dimaksudkan untuk menjadi sederhana, modern, tujuan umum, bahasa pemrograman berorientasi objek. Tim pengembangan dipimpin oleh Anders Hejlsberg. Versi terbarunya adalah C # 4.0, yang dirilis pada tanggal 12 April 2010.





Selama pengembangan Framework. NET, Libray class awalnya ditulis menggunakan managed code compiler system disebut juga Simple Managed C (SMC). Pada Januari 1999, Anders Hejlsberg membentuk tim untuk membangun sebuah bahasa baru pada saat itu disebut Cool, yang berdiri untuk "C-seperti Bahasa Berorientasi Obyek". Microsoft telah memutuskan untuk mempertahankan nama "Cool" sebagai nama akhir dari bahasa ini, tetapi memilih untuk tidak melakukannya untuk alasan merek dagang. Pada saat proyek .NET diumumkan pada Konferensi Pengembang Profesional Juli 2000, bahasa Cool telah diubah namanya menjadi C #, dan Librari class dan ASP.NET runtime telah porting ke C#.

C# desainer utama dan arsitek utama di Microsoft yaitu Anders Hejlsberg, yang sebelumnya pernah terlibat dengan desain dari Turbo Pascal, Embarcadero Delphi (sebelumnya CodeGear Delphi dan Borland Delphi), dan Visual J + +. Dalam wawancara dan makalah teknis ia telah menyatakan bahwa kelemahan dalam bahasa pemrograman yang paling utama (misalnya C + +, Java, Delphi, dan Smalltalk) mendorong fundamental dari Common Language Runtime (CLR) yang pada gilirannya, mendorong desain dari bahasa C # itu sendiri.

James Gosling, yang menciptakan bahasa pemrograman Java pada tahun 1994, dan Bill Joy, co-pendiri dari Sun Microsystems, pencetus Java, disebut C # merupakan "tiruan" dari Java; Gosling lebih jauh menyatakan bahwa "[C# is] sort of Java with reliability, productivity and security deleted." Klaus Kreft dan Angelika Langer (penulis buku C++ Streams ) dinyatakan dalam sebuah posting blog bahwa "Java dan C # adalah bahasa pemrograman hampir identik. Ada pengulangan Membosankan yang tidak memiliki inovasi, " " Hampir tidak ada orang akan mengklaim bahwa Java atau C # adalah bahasa pemrograman revolusioner yang mengubah cara kita menulis program," dan "C # meminjam banyak dari Java -. dan sebaliknya Sekarang bahwa C # mendukung boxing dan Unboxing, kita akan memiliki fitur yang sangat serupa di Jawa. " Anders Hejlsberg telah berpendapat bahwa C # adalah "bukan sebuah clone Java" dan "lebih dekat ke C + +" dalam desain. 

Sejak rilis C # 2.0 pada bulan November 2005, C # dan bahasa Java telah berevolusi di lintasan semakin divergen, menjadi agak kurang sama. Salah satu keberangkatan besar pertama datang dengan penambahan generik untuk kedua bahasa, dengan implementasi yang sangat berbeda. C # membuat penggunaan reifikasi untuk menyediakan "Class" object generik yang dapat digunakan seperti class lain, dengan generasi kode dilakukan di Class-load time. Sebaliknya, Java generik adalah dasarnya fitur sintaks bahasa dan mereka tidak mempengaruhi kode byte yang dihasilkan, karena compiler melakukan penghapusan type erasure pada generics type information setelah diverifikasi kebenarannya.

Selanjutnya, C # telah menambahkan fitur-fitur utama untuk mengakomodasi fungsional-gaya pemrograman, yang berpuncak pada ekstensi mereka LINQ dirilis dengan C # 3.0 dan kerangka pendukungnya ekspresi lambda, ekstensi method, dan anonymous classes. Fitur-fitur ini membolehkan programmer C # untuk menggunakan teknik pemrograman fungsional, seperti closures, ketika berguna bagi aplikasi mereka. Ekstensi LINQ dan import fungsional membantu pengembang mengurangi jumlah kode "boilerplate" yang disertakan dalam tugas-tugas umum seperti query database, parsing file xml, atau mencari melalui struktur data, pergeseran penekanan ke logika program yang sebenarnya untuk membantu meningkatkan kemudahan untuk dibaca dan perawatan. 

C# used to have a mascot called Andy (named after Anders Hejlsberg). It was retired on 29 Jan 2004.
C# was originally submitted for review to the ISO subcommittee JTC 1/SC 22 under ISO/IEC 23270:2003, which is now withdrawn. It was then approved under ISO/IEC 23270:2006.

sumber: www.wikipedia.org

Thursday, January 12, 2012

Sejarah Java



Java adalah bahasa pemrograman yang awalnya dikembangkan oleh James Gosling di Sun Microsystems (yang sejak bergabung ke Oracle Corporation) dan dirilis pada tahun 1995 sebagai komponen inti dari platform JavaSun Microsystems. Banyak Syntax Bahasa Java ini yang berasal dari C dan C + + tetapi memiliki model objek yang sederhana dan lebih cenderung pada fasilitas tingkat-rendah (bahasa pemrograman tingkat-rendah). Aplikasi Java biasanya dikompilasi untuk bytecode (class file) yang dapat berjalan pada Java Virtual Machine(JVM) terlepas dari arsitektur komputer. Java memiliki karakteristik general-purpose, concurrent, class-based, object-oriented language yang khusus dirancang untuk beberapa penerapan yang dependensi. Hal ini dimaksudkan untuk memungkinkan pengembang aplikasi "tulis sekali, jalankan di mana saja," itu berarti bahwa kode yang berjalan pada satu platform tidak perlu di edit untuk berjalan pada platform yang lain. Java saat ini adalah salah satu bahasa pemrograman yang paling populer digunakan, terutama untuk client-server web aplikasi, dengan 10 juta pengguna yang telah ter catat.

Referensi Java compiler, virtual machines, dan class libraries yang asli adalah yang dikembangkan oleh Sun dari tahun 1995. Pada Mei 2007, sesuai dengan spesifikasi dari Java Community Process, Sun memberi lisensi kembali sebagian besar teknologi Java itu di bawah GNU GPL (General Public License). Lainnya juga telah mengembangkan implementasi alternatif dari teknologi milik Sun ini, seperti Kompilator GNU untuk Java dan GNU Classpath.

James Gosling, Mike Sheridan, dan Patrick Naughton memulai proyek bahasa Java pada bulan Juni 1991. Java pada awalnya didesain untuk televisi interaktif, tapi itu terlalu maju bagi industri televisi kabel digital pada saat itu. 

Bahasa ini awalnya disebut Oak, konon karena pada saat itu pohon Oak tumbuh di luar kantor Gosling, kemudian ia beralih dengan memberi nama Green, dan kemudian berganti nama Java, dari kopi Jawa, disebutkan untuk dikonsumsi dalam jumlah besar oleh pencipta bahasa ini.  Kita juga harus bangga, mungkin bukan hanya nama tetapi juga kasiat kopinya (Produk Jawa) yang masuk ketubuh Gosling. :D

Saat itu gosling pun bermaksud untuk mewujudkan sebuah mesin virtual dan sebuah bahasa yang dekat dengan gaya notasi C / C + +.

Sun Microsystems merilis implementasi publik pertama yaitu Java 1,0 pada tahun 1995. Mereka berjanji "Write Once, Run Anywhere" (WORA), mengembangkan tanpa biaya run-time pada platform populer. Cukup aman dan menampilkan keamanan yang dapat dikonfigurasi, ini memungkinkan jaringan dan akses file yang dibatasi. Sebagian besar Web browser segera masukkan kemampuan untuk menjalankan applet Java dalam halaman web, dan Java dengan cepat menjadi populer. 

Dengan munculnya Java 2 (dirilis awalnya sebagai J2SE 1,2 pada Desember 1998-1999), versi baru telah dibangun beberapa konfigurasi untuk berbagai jenis platform. Sebagai contoh, J2EE ditargetkan aplikasi perusahaan dan versi J2ME untuk aplikasi mobile (Mobile Java). J2SE dirancang untuk Edisi Standar. Pada tahun 2006, untuk tujuan pemasaran, Sun mengganti nama baru versi J2 menjadi Java EE, Java ME, dan Java SE.

Pada tahun 1997, Sun Microsystems mendatangi ISO / IEC JTC1 badan standar dan kemudian Internasional ECMA untuk meresmikan Java, tetapi segera menarik diri dari proses tersebut. Java tetap menjadi standar de facto, dikontrol melalui Java Community Process. Pada suatu waktu, Sun membuat sebagian besar Java implementasi yang tersedia tanpa biaya, meskipun status perangkat lunak berpemilik mereka. 

Sun menghasilkan pendapatan dari Java melalui penjualan lisensi untuk produk-produk khusus seperti Java Enterprise System. Sun membedakan antara Software Development Kit nya (SDK) dan Runtime Environment (JRE) (subset dari SDK); perbedaan utama melibatkan kurangnya JRE dari compiler, program utilitas, dan file header. Pada 13 November 2006, Sun telah meluncurkan banyak Java sebagai perangkat lunak bebas dan open source, Free and Open Source Software (FOSS), di bawah persyaratan dari GNU General Public License (GPL). Pada tanggal 8 Mei 2007, Sun menyelesaikan proses membuat semua kode inti Java tersedia di bawah perangkat lunak bebas / open source distribusi, selain dari sebagian kecil dari kode yang Sun tidak memegang hak cipta.

Wakil presiden Sun Rich Green mengatakan bahwa peran yang ideal Sun berkaitan dengan Java sebagai "pengabar injil." Setelah akuisisi Oracle Corporation dari Sun Microsystems pada 2009-2010, Oracle telah menggambarkan dirinya sebagai "steward of Java technology with a relentless commitment to fostering a community of participation and transparency" Perangkat lunak Java berjalan pada laptop ke pusat data, konsol game untuk superkomputer ilmiah. Ada 930 juta Java Runtime Environment di-download setiap tahun dan 3 miliar ponsel menjalankan aplikasi Java. Pada 2 April 2010, James Gosling mengundurkan diri dari Oracle.



Sejarah perkembangan versi Java
Bahasa Java telah mengalami beberapa perubahan sejak JDK 1,0 serta penambahan berbagai kelas dan paket ke perpustakaan standar. Sejak J2SE 1.4, evolusi dari bahasa Java telah diatur oleh Java Community Process (JCP), yang menggunakan Java Spesifikasi Requests (JSRs) untuk mengusulkan dan menentukan untuk penambahan dan perubahan pada platform Java. Bahasa ini ditentukan oleh Java Language Specification(JLS), perubahan pada JLS dikelola di bawah JSR 901.

Selain perubahan bahasa, perubahan dramatis lebih telah dilakukan untuk Java Class Library selama bertahun-tahun, yang telah berkembang dari beberapa ratus kelas di JDK 1,0 sampai lebih dari tiga ribu di J2SE 5. Seluruh API baru seperti Swing dan Java2D telah diperkenalkan dan banyak Class dan Method dari JDK 1.0 yang asli telah usang.

Beberapa program memungkinkan untuk konversi program Java (Java Class) dari satu versi platform Java ke yang lebih tua (misalnya Java 5.0 di-backporting ke 1.4). 


1. JDK 1.0 (23 Januari 1996)
Codename Oak. Rilis awal Versi stabil pertama adalah JDK 1.0.2. ini disebut Java 1. 

2. JDK 1.1 (19 Februari, 1997)
Tambahan: 
  • Suatu retooling luas model acara AWT 
  • Inner classes ditambahkan ke bahasa 
  • JavaBeans 
  • JDBC 
  • RMI 
  • Reflection yang Introspeksi saja, tidak ada modifikasi pada saat runtime itu mungkin. 
3. J2SE 1.2 (8 Desember 1998)
Codename Playground. Ini dan rilis selanjutnya sampai J2SE 5,0 dimana Java 2 dan nama versi "J2SE" (Java 2 Platform, Standard Edition) diganti JDK untuk membedakan platform dasar dari J2EE (Java 2 Platform, Enterprise Edition) dan J2ME (Java 2 Platform , Micro Edition). 
Tambahan utama meliputi:
  • strictfp keyword 
  • API swing grafis telah diintegrasikan ke dalam Class inti 
  • Sun JVM yang dilengkapi dengan compiler JIT untuk pertama kalinya 
  • Java Plug-in 
  • Java IDL, sebuah implementasi IDL untuk interoperabilitas CORBA 
  • Koleksi framework 

4. J2SE 1.3 (8 Mei 2000)
Codename Kestrel. Perubahan paling menonjol adalah:
  • HotSpot JVM termasuk (HotSpot JVM pertama kali dirilis pada bulan April, 1999 untuk J2SE 1.2 JVM) 
  • RMI adalah dimodifikasi untuk mendukung kompatibilitas opsional dengan CORBA 
  • JavaSound 
  • Java Penamaan dan Direktori Interface (JNDI) termasuk dalam perpustakaan inti (sebelumnya tersedia sebagai ekstensi) 
  • Java Platform Debugger Arsitektur (JPDA) 
  • Syntetic proxy classes 

5. J2SE 1.4 (6 Feb 2002)
Codename Merlin. Ini adalah rilis pertama dari platform Java yang dikembangkan di bawah Java Community Process sebagai JSR 59. 
Perubahan besar mencakup: 
  • Perubahan bahasa 
  • Assert keyword 
  • Perbaikan Library
  • Regular expressions model setelah ekspresi reguler Perl expressions 
  • Exeption chaining memungkinkan pengecualian untuk merangkum exception tingkat-bawah yang asli 
  • Internet Protocol versi 6 (IPv6) dukungannon-blocking IO (bernama NIO) (input / Output baru) 
  • Logging API 
  • Gambar I / O API untuk membaca dan meletakan gambar dalam format seperti JPEG dan PNG 
  • Meng-integrasikan XML parser dan XSLT prosesor (JAXP) 
  • Meng-integrasikan keamanan dan ekstensi Cryptography (JCE, JSSE, JAAS) 
  • Java Web Start disertakan (Java Web Start pertama kali dirilis pada bulan Maret, 2001 untuk J2SE 1.3) (Ditentukan dalam JSR 56.)Preferensi API (java.util.prefs) 

6. J2SE 5.0 (September 30, 2004)
Codename Tiger. Awalnya nomor 1,5, yang masih digunakan sebagai nomor versi internal. Versi ini dikembangkan di bawah JSR 176.
J2SE 5.0 memasuki nya akhir-hidup pada tanggal 8 April 2008 dan tidak lagi didukung oleh Sun pada 3 Nopember 2009 .
Tiger menambahkan sejumlah fitur bahasa baru yang signifikan: 
  • Generics: Menyediakan waktu kompilasi (static) safety type untuk koleksi dan menghilangkan kebutuhan untuk kebanyakan typecasts (type conversion). (Ditentukan oleh JSR 14.) 
  • Metadata: Juga disebut penjelasan; memungkinkan konstruksi bahasa seperti kelas dan metode yang harus ditandai dengan data tambahan, yang kemudian dapat diproses oleh metadata-sadar utilitas. (Ditentukan oleh JSR 175.) 
  • Autoboxing / unboxing: konversi otomatis antara tipe primitif (seperti int) dan kelas wrapper primitif (seperti Integer). (Ditentukan oleh JSR 201.) 
  • Enumerations: enum keyword menciptakan sebuah typesafe, memerintahkan daftar nilai (seperti Day.MONDAY, Day.TUESDAY, dll). Sebelumnya ini hanya dapat dicapai oleh non-bilangan bulat typesafe konstan atau kelas secara manual dibangun (enum typesafe pola).(Ditentukan oleh JSR 201.) 
  • Varargs: Parameter terakhir dari sebuah method sekarang dapat dideklarasikan menggunakan nama jenis diikuti oleh tiga titik (misalnya void drawtext(string... lines)). Dalam memanggil code sejumlah angka dari parameter jenis yang dapat digunakan dan mereka kemudian ditempatkan dalam array yang akan dilewatkan ke metode, atau sebagai alternatif kode panggilan dapat melewatkan sebuah array dari tipe tersebut. 
  • Enhance untuk setiap loop: untuk sintaks loop yang diperpanjang dengan sintaks khusus untuk iterasi setiap anggota baik array atau Iterable, seperti pada koleksi class standar, menggunakan konstruksi dalam bentuk: 
void displayWidgets (Iterable<Widget> widget) {

for (widget w: widgets) {

w.display();

}



Contoh iterasi ini atas Iterable Object widgets, menugaskan setiap item yang pada gilirannya untuk variabel w, dan kemudian memanggil Widget method display() untuk setiap item.

  • Perbaiki semantik sebelumnya yang rusak dari Java Memori Model, yang mendefinisikan bagaimana ancaman berinteraksi melalui memori. 
  • Static imports 
Ada juga perbaikan untuk library standar:
  1. Otomatis stub generasi pada objek RMI. 
  2. Swing: skinnable look and feel baru, yang disebut synth. 
  3. Utilitas concurrency dalam package java.util.concurrent. 
  4. Scanner class untuk parsing dari berbagai data input stream dan buffer. 
Java 5 adalah rilis terakhir dari Java untuk secara resmi mendukung Microsoft Windows 9x line (Windows 95, Windows 98, Windows ME). Secara tidak resmi, Java SE 6 Update 7 (1.6.0.7) adalah versi terakhir dari Java yang akan ditampilkan bekerja pada keluarga sistem operasi (OS).

7. Java SE 6 (11 Desember 2006)
Codename Mustang. Pada versi ini, Sun diganti nama "J2SE" dengan Java SE dan menghilangkan ".0" dari nomor versi. Penomoran internal untuk pengembang tetap 1.6.0. Versi ini dikembangkan di bawah JSR 270. Selama tahap pengembangan, baru dibangun termasuk perangkat tambahan dan perbaikan bug yang dirilis mingguan. Versi beta yang dirilis pada bulan Februari dan Juni 2006, mengarah ke rilis final yang terjadi pada tanggal 11 Desember 2006.
Perubahan besar disertakan dalam versi ini:
  • Dukungan untuk versi Win9x tua turunkan. Secara tidak resmi Java 6 Update 7 adalah rilis terakhir dari Java ditunjukkan untuk bekerja pada versi Windows. Hal ini diyakini terjadi karena perubahan besar dalam update 10. 
  • Dukungan Bahasa Scripting: Generic API untuk integrasi yang erat dengan bahasa scripting, dan built-in Mozilla javaScript Rhino 
  • Peningkatan kinerja yang dramatis untuk platform inti, dan Swing. 
  • Peningkatan Layanan Web dukungan melalui JAX-WS 
  • Dukungan JDBC 4.0. 
  • Java Compiler API: sebuah API yang memungkinkan program Java untuk memilih dan memanggil Compiler pemrograman Java. 
  • Upgrade dari JAXB ke versi 2.0: Termasuk integrasi Stax parser. 
  • Dukungan untuk penjelasan pluggable 
  • Banyak perbaikan GUI, seperti integrasi SwingWorker di dalam API, tabel pemilahan dan penyaringan, dan Swing double-buffering (menghilangkan efek wilayah abu-abu). 
  • Perbaikan JVM meliputi: Sinkronisasi dan Optimasi kinerja compiler, algoritma baru dan upgrade untuk algoritma pengumpulan sampah (gerbage collection) yang ada, dan kinerja aplikasi start-up. 
8. Java SE 7 (Juli 28, 2011)
Java 7 (Dolphin codename ) adalah sebuah update besar ke Java yang diluncurkan pada tanggal 7 Juli 2011 dan tersedia dibuat bagi para pengembang pada tanggal 28 Juli 2011. Masa perkembangannya diorganisir menjadi tiga belas milestone. Pada tanggal 18 Februari 2011, 13 milestone (milestone terakhir) yang tercapai . Rata-rata, 8 pengerjaan (yang umumnya termasuk perangkat tambahan dan perbaikan bug) yang dirilis per milestone. Daftar fitur di proyek OpenJDK 7 daftar banyak perubahan fitur.

Fitur tambahan untuk Java 7 meliputi: 
  • JVM dukungan untuk bahasa dinamis, berikut prototipe pekerjaan saat ini dilakukan pada Virtual Machine Multi Bahasa 
  • Compressed pointer 64-bit Tersedia di Java 6 dengan-XX: UseCompressedOops 
  • Perubahan kecil bahasa (dikelompokkan dalam sebuah proyek bernama Coin) : 
  1. String di switch 
  2. Manajemen sumber (source code) secara otomatis di try-statment 
  3. Peningkatan jenis inferensi untuk penciptaan generik 
  4. Metode varargs deklarasi sederhana 
  5. Literal bilangan Biner 
  6. Mengijinkan menggaris bawahi di literal numerik 
  7. Penangkapan beberapa tipe exception dan rethrowing exception dengan memeriksa tipe yang ditingkatkan 
  • Concurrency utilitas di bawah JSR 166 
  • File library I / O baru untuk meningkatkan kemandirian platform dan menambahkan dukungan untuk metadata dan link simbolik. Paket-paket baru java.nio.file dan java.nio.file.attribute 
  • Dukungan Library-level untuk algoritma kriptografi kurva elliptic 
  • Sebuah pipeline XRender untuk Java 2D, yang meningkatkan penanganan fitur khusus untuk GPU yang modern 
  • Platform API baru untuk grafis fitur awalnya direncanakan untuk rilis di Jawa versi 6u10 
  • Peningkatan Library-level dukungan untuk protokol jaringan baru, termasuk SCTP​​ dan Socket Direct Protokol 
  • Upstream update untuk XML dan Unicode 
Lambda (implementasi Java fungsi lambda), Jigsaw (implementasi Java module), dan bagian dari Java 7. Java 8 akan dirilis dengan fitur yang tersisa di musim panas 2013. 

9. Java 7 update 
Rencana Oracle mengeluarkan update untuk  Java 7 secara triwulanan 


RilisTanggal RilisKeteangan
Java SE 72011-07-07Awal rilis
Java SE 7 Update 12011-10-1820 perbaikan security, perbaikan bug lainnya 
Java SE 7 Update 22011-12-12perbaikan bug

10. Java SE 8
Java 8 diharapkan pada musim panas 2013 dan akan mencakup fitur minimal yang direncanakan untuk Java 7 tetapi kemudian ditangguhkan.
  • Modularisasi dari JDK di bawah Jigsaw Proyek 
  • Dukungan language-level untuk ekspresi lambda di bawah Proyek Lambda. Ada perdebatan yang sedang berlangsung dalam komunitas Java untuk menambahkan dukungan untuk ekspresi lambda. Sun kemudian. menyatakan bahwa ekspresi lambda akan dimasukkan di Java 8 dan meminta komunitas untuk memperbaiki fitur tersebut. 
  • Bagian dari Coin project yang tidak termasuk di Jawa 7 
  • Integrasi ketat dengan JavaFX. 

11. Java 9
Pada JavaOne 2011, Oracle membahas fitur yang mereka harapkan untuk memiliki di Java 9, termasuk dukungan yang lebih baik untuk tumpukan (stack) multi-gigabyte, integrasi kode asli yang lebih baik, dan self-tuning JVM.


sumber : www.wikipedia.org

Monday, January 9, 2012

Sejarah Internet

Pada mulanya sejarah Internet dimulai dengan pengembangan komputer pada tahun 1950. Hal ini dimulai dengan komunikasi point-to-point antara komputer mainframe dan terminal, diperluas untuk koneksi point-to-point antara komputer dan kemudian penelitian awal ke packet switching. Packet switched jaringan seperti ARPANET, Mark I di NPL di Inggris, CYCLADES, Merit Jaringan, Tymnet, Telenet dan, dikembangkan pada 1960-an dan awal 1970-an menggunakan berbagai protokol. ARPANET secara khusus mengarah pada pengembangan protokol untuk internetworking, di mana beberapa jaringan yang terpisah dapat bergabung bersama-sama ke jaringan dari jaringan.

Pada tahun 1982 Internet Protocol Suite (TCP / IP) adalah standar dan konsep jaringan di seluruh dunia saling berhubungan sepenuhnya TCP / IP disebut Internet diperkenalkan.Akses ke ARPANET diperluas pada tahun 1981 ketika National Science Foundation (NSF) mengembangkan Computer Science Networking (CSNET) lagi dan pada tahun 1986 ketika NSFNET menyediakan akses ke situs superkomputer di Amerika Serikat dari organisasi penelitian dan pendidikan. Penyedia layanan Internet komersial (ISP) mulai muncul pada akhir 1980-an dan 1990-an. ARPANET dinonaktifkan pada tahun 1990. Internet adalah dikomersialisasikan pada tahun 1995 saat NSFNET adalah dinonaktifkan, menghilangkan pembatasan terakhir pada penggunaan Internet sebagai lalu lintas komersial.

Sejak pertengahan 1990-an Internet telah membawa dampak drastis pada budaya dan perdagangan, termasuk bangkitnya komunikasi instan melalui surat elektronik, pesan instan, Voice over Internet Protocol (VoIP) "panggilan telepon", panggilan dua arah video interaktif , dan World Wide Web dengan forum diskusinya, blog, jaringan sosial, dan situs belanja online. Komunitas riset dan pendidikan terus mengembangkan dan menggunakan jaringan canggih seperti Layanan Jaringan Backbone kecepatan sangat tinggi (vBNS) NSF, Internet2, dan National LambdaRail. Menjadi meningkatnya jumlah data yang ditransmisikan pada kecepatan yang lebih tinggi dan lebih tinggi melalui jaringan fiber optic beroperasi pada 1-Gb / s, 10-Gb / s, atau lebih. Internet terus tumbuh, didorong oleh semakin besar jumlah informasi dan pengetahuan online, perdagangan, hiburan dan jaringan sosial.

Diperkirakan bahwa pada tahun 1993 Internet dilakukan hanya 1% dari informasi yang mengalir melalui dua arah telekomunikasi. Pada tahun 2000 angka ini telah tumbuh menjadi 51%, dan pada 2007 lebih dari 97% dari semua telekomunikasi informasi dilakukan melalui Internet.

Mempelopori
Internet telah dimulai kembali pada abad ke-19, terutama sistem telegraf, lebih dari satu abad sebelum internet menjadi digital yang banyak digunakan pada paruh kedua th.1990-an. Konsep komunikasi data - transmisi data antara dua tempat yang berbeda, terhubung melalui beberapa jenis media elektromagnetik, seperti radio atau kawat listrik - mendahului pengenalan komputer pertama. Sistem komunikasi seperti itu biasanya terbatas pada titik ke titik komunikasi antara dua perangkat akhir. Sistem telegraf dan mesin telex dapat dianggap pelopor awal komunikasi semacam ini.
Awalnya komputer menggunakan teknologi yang tersedia pada saat itu untuk memungkinkan komunikasi antara unit pengolahan pusat dan terminal remote. Sebagai teknologi yang berkembang, sistem baru dirancang untuk memungkinkan komunikasi jarak yang lebih jauh (untuk terminal) atau dengan kecepatan yang lebih tinggi (untuk interkoneksi perangkat lokal) yang diperlukan untuk model komputer mainframe. Menggunakan teknologi ini, adalah mungkin untuk pertukaran data (seperti file) antara komputer remote. Namun, model komunikasi point-to-point masih terbatas, karena tidak memungkinkan untuk komunikasi langsung antara dua sistem yang berubah-ubah dan memerlukan sebuah link fisik. Teknologi ini juga dianggap tidak aman untuk penggunaan strategis dan militer, karena tidak ada jalan alternatif untuk komunikasi dalam kasus serangan musuh.

Tiga Terminal dan satu ARPA
Orang pertama yang menyebut untuk istilah global network adalah JCR Licklider, diartikulasikan ide-ide pada Januari tahun 1960 dimakalahnya, Simbiosis Manusia-Komputer.
"A network of such [computers], connected to one another by wide-band communication lines [which provided] the functions of present-day libraries together with anticipated advances in information storage and retrieval and [other] symbiotic functions." —J.C.R. Licklider,
Pada bulan Agustus 1962, Licklider dan Welden Clark menerbitkan kertas "On-Line Man Computer Communication", salah satu deskripsi pertama jaringan masa depan.
Pada bulan Oktober 1962, Licklider dipekerjakan oleh Jack Ruina sebagai Direktur Information Processing Techniques Office (IPTO) dalam DARPA, dengan mandat untuk terhubung dengan komputer utama Departemen Pertahanan Amerika Serikat di Cheyenne Mountain, Pentagon, dan SAC HQ. Di sana ia membentuk kelompok informal dalam DARPA untuk penelitian komputer lebih lanjut. Dia mulai dengan menulis memo menjelaskan jaringan didistribusikan ke staf IPTO, yang disebutnya "Anggota dan Afiliasi dari intergalaksi Jaringan Komputer". Sebagai bagian dari peran proses informasi kantor, tiga terminal jaringan telah dipasang: satu untuk System Development Corporation di Santa Monica, satu untuk Proyek Genie di University of California, Berkeley dan satu untuk proyek Time-Sharing Sistem Kompatibel di Massachusetts Institute of Technology (MIT). Licklider perlu diidentifikasi untuk antar-jaringan akan menjadi jelas dengan nyata penyebab dihanbur-hanburkannya sumberdaya.

"For each of these three terminals, I had three different sets of user commands. So if I was talking online with someone at S.D.C. and I wanted to talk to someone I knew at Berkeley or M.I.T. about this, I had to get up from the S.D.C. terminal, go over and log into the other terminal and get in touch with them. [...] I said, it's obvious what to do (But I don't want to do it): If you have these three terminals, there ought to be one terminal that goes anywhere you want to go where you have interactive computing. That idea is the ARPAnet."—Robert W. Taylor, co-writer dengan Licklider untuk "The Computer as a Communications Device", dalam sebuah wawancara dengan The New York Times,

Meskipun ia meninggalkan IPTO pada tahun 1964, lima tahun sebelum ARPANET , itu adalah visinya tentang jaringan universal yang memberikan dorongan yang dipimpin penerusnya seperti Lawrence Roberts dan Robert Taylor untuk pengembangan lebih lanjut ARPANET. Kemudian Licklider kembali untuk memimpin IPTO pada tahun 1973 selama dua tahun.


Daftar kejadian penting










































TahunKejadian
1957-Uni Soviet (sekarang Rusia) meluncurkan wahana luar angkasa, Sputnik.
1958-Sebagai buntut dari "kekalahan" Amerika Serikat dalam meluncurkan wahana luar angkasa, dibentuklah sebuah badan di dalam Departemen Pertahanan Amerika Serikat, Advanced Research Projects Agency (ARPA), yang bertujuan agar Amerika Serikat mampu meningkatkan ilmu pengetahuan dan teknologi negara tersebut. Salah satu sasarannya adalah teknologi komputer.
1962-J.C.R. Licklider menulis sebuah tulisan mengenai sebuah visi di mana komputer-komputer dapat saling dihubungkan antara satu dengan lainnya secara global agar setiap komputer tersebut mampu menawarkan akses terhadap program dan juga data. Pada tahun ini juga RAND Corporation memulai riset terhadap ide ini (jaringan komputer terdistribusi), yang ditujukan untuk tujuan militer.
Awal 1960-an-Teori mengenai packet-switching dapat diimplementasikan dalam dunia nyata.
Pertengahan 1960-an-ARPA mengembangkan ARPANET untuk mempromosikan "Cooperative Networking of Time-sharing Computers", dengan hanya empat buah host komputer yang dapat dihubungkan hingga tahun 1969, yakni Stanford Research Institute, University of California, Los Angeles, University of California, Santa Barbara, dan University of Utah.
1965-Istilah "Hypertext" dikeluarkan oleh Ted Nelson.
1968-Jaringan Tymnet dibuat.
1971-Anggota jaringan ARPANET bertambah menjadi 23 buah node komputer, yang terdiri atas komputer-komputer untuk riset milik pemerintah Amerika Serikat dan universitas.
1972-Sebuah kelompok kerja yang disebut dengan International Network Working Group (INWG) dibuat untuk meningkatkan teknologi jaringan komputer dan juga membuat standar-standar untuk jaringan komputer, termasuk di antaranya adalah Internet. Pembicara pertama dari organisasi ini adalah Vint Cerf, yang kemudian disebut sebagai "Bapak Internet"
1972-1974-Beberapa layanan basis data komersial seperti Dialog, SDC Orbit, Lexis, The New York Times DataBank, dan lainnya, mendaftarkan dirinya ke ARPANET melalui jaringan dial-up.
1973-ARPANET ke luar Amerika Serikat: pada tahun ini, anggota ARPANET bertambah lagi dengan masuknya beberapa universitas di luar Amerika Serikat yakni University College of London dari Inggris dan Royal Radar Establishment di Norwegia.
1974-Vint Cerf dan Bob Kahn mempublikasikan spesifikasi detail protokol Transmission Control Protocol (TCP) dalam artikel "A Protocol for Packet Network Interconnection".
1974-Bolt, Beranet & Newman (BBN), pontraktor untuk ARPANET, membuka sebuah versi komersial dari ARPANET yang mereka sebut sebagai Telenet, yang merupakan layanan paket data publik pertama.
1977-Sudah ada 111 buah komputer yang telah terhubung ke ARPANET.
1978-Protokol TCP dipecah menjadi dua bagian, yakni Transmission Control Protocol dan Internet Protocol (TCP/IP).
1979-Grup diskusi Usenet pertama dibuat oleh Tom Truscott, Jim Ellis dan Steve Bellovin, alumni dari Duke University dan University of North Carolina Amerika Serikat. Setelah itu, penggunaan Usenet pun meningkat secara drastis.
Pada tahun ini pula, emoticon diusulkan oleh Kevin McKenzie.
Awal 1980-anKomputer pribadi (PC) mewabah, dan menjadi bagian dari banyak hidup manusia.
Tahun ini tercatat ARPANET telah memiliki anggota hingga 213 host yang terhubung.
-Layanan BITNET (Because It's Time Network) dimulai, dengan menyediakan layanan e-mail, mailing list, dan juga File Transfer Protocol (FTP).
CSNET (Computer Science Network) pun dibangun pada tahun ini oleh para ilmuwan dan pakar pada bidang ilmu komputer dari Purdue University, University of Washington, RAND Corporation, dan BBN, dengan dukungan dari National Science Foundation (NSF). Jaringan ini menyediakan layanan e-mail dan beberapa layanan lainnya kepada para ilmuwan tersebut tanpa harus mengakses ARPANET.
1982Istilah "Internet" pertama kali digunakan, dan TCP/IP diadopsi sebagai protokol universal untuk jaringan tersebut.
-Name server mulai dikembangkan, sehingga mengizinkan para pengguna agar dapat terhubung kepada sebuah host tanpa harus mengetahui jalur pasti menuju host tersebut.
Tahun ini tercatat ada lebih dari 1000 buah host yang tergabung ke Internet.
1986-Diperkenalkan sistem nama domain, yang sekarang dikenal dengan DNS (Domain Name System) yang berfungsi untuk menyeragamkan sistem pemberian nama alamat di jaringan komputer.

Kejadian penting lainnya
Tahun 1971, Ray Tomlinson berhasil menyempurnakan program e-mail yang ia ciptakan setahun yang lalu untuk ARPANET. Program e-mail ini begitu mudah sehingga langsung menjadi populer. Pada tahun yang sama, ikon "@" juga diperkenalkan sebagai lambang penting yang menunjukkan “at” atau “pada”. Tahun 1973, jaringan komputer ARPANET mulai dikembangkan ke luar Amerika Serikat.

Komputer University College di London merupakan komputer pertama yang ada di luar Amerika yang menjadi anggota jaringan Arpanet. Pada tahun yang sama, dua orang ahli komputer yakni Vinton Cerf dan Bob Kahn mempresentasikan sebuah gagasan yang lebih besar, yang menjadi cikal bakal pemikiran internet. Ide ini dipresentasikan untuk pertama kalinya di Universitas Sussex.

Hari bersejarah berikutnya adalah tanggal 26 Maret 1976, ketika Ratu Inggris berhasil mengirimkan e-mail dari Royal Signals and Radar Establishment di Malvern. Setahun kemudian, sudah lebih dari 100 komputer yang bergabung di ARPANET membentuk sebuah jaringan atau network. Pada 1979, Tom Truscott, Jim Ellis dan Steve Bellovin, menciptakan newsgroups pertama yang diberi nama USENET. Tahun 1981 France Telecom menciptakan gebrakan dengan meluncurkan telpon televisi pertama, dimana orang bisa saling menelpon sambil berhubungan dengan video link.

Karena komputer yang membentuk jaringan semakin hari semakin banyak, maka dibutuhkan sebuah protokol resmi yang diakui oleh semua jaringan. Pada tahun 1982 dibentuk Transmission Control Protocol atau TCP dan Internet Protokol atau IP yang kita kenal semua. Sementara itu di Eropa muncul jaringan komputer tandingan yang dikenal dengan Eunet, yang menyediakan jasa jaringan komputer di negara-negara Belanda, Inggris, Denmark dan Swedia. Jaringan Eunet menyediakan jasa e-mail dan newsgroup USENET.

Untuk menyeragamkan alamat di jaringan komputer yang ada, maka pada tahun 1984 diperkenalkan sistem nama domain, yang kini kita kenal dengan DNS atau Domain Name System. Komputer yang tersambung dengan jaringan yang ada sudah melebihi 1000 komputer lebih. Pada 1987 jumlah komputer yang tersambung ke jaringan melonjak 10 kali lipat manjadi 10.000 lebih.

Tahun 1988, Jarko Oikarinen dari Finland menemukan dan sekaligus memperkenalkan IRC atau Internet Relay Chat. Setahun kemudian, jumlah komputer yang saling berhubungan kembali melonjak 10 kali lipat dalam setahun. Tak kurang dari 100.000 komputer kini membentuk sebuah jaringan. Tahun 1990 adalah tahun yang paling bersejarah, ketika Tim Berners Lee menemukan program editor dan browser yang bisa menjelajah antara satu komputer dengan komputer yang lainnya, yang membentuk jaringan itu. Program inilah yang disebut www, atau World Wide Web.

Tahun 1992, komputer yang saling tersambung membentuk jaringan sudah melampaui sejuta komputer, dan pada tahun yang sama muncul istilah surfing the internet. Tahun 1994, situs internet telah tumbuh menjadi 3000 alamat halaman, dan untuk pertama kalinya virtual-shopping atau e-retail muncul di internet. Dunia langsung berubah. Pada tahun yang sama Yahoo! didirikan, yang juga sekaligus kelahiran Netscape Navigator.


Sumber :www.wikipedia.org