Category

free counters
Diberdayakan oleh Blogger.
Tampilkan postingan dengan label Introduction to Programming Using Java. Tampilkan semua postingan
Tampilkan postingan dengan label Introduction to Programming Using Java. Tampilkan semua postingan

Rabu, 30 September 2015

Bagian 1.2, Event Asinkron: Loop Polling dan Interupsi

by Unknown  |  in Pengenalan Pemrograman Menggunakan Java at  Rabu, September 30, 2015
Artikel ini merupakan bagian buku Pengenalan Pemrograman Menggunakan Java


Sebelumnya: Cycle Ambil dan Eksekusi: Bahasa Mesin

Bagian 1.2

Event Asinkron: Loop Polling dan Interupsi


CPU menghabiskan sebagian besar waktunya untuk mengambil instruksi dari memori dan mengeksekusinya. Tetapi CPU dan memori utama hanyalah dua diantara banyak komponen pada sistem komputer nyata. Sistem yang lengkap dari komputer mencakup beberapa perangkat seperti:
  • - Hard disk atau solid state drive untuk menyimpan berkas program dan data. (Perlu diingat bahwa memori utama hanya memegang sejumlah informasi yang relatif kecil dan memegangnya selama sumber daya tetap nyala. Hard disk atau solid state drive digunakan sebagai tempat penyimpanan permanen untuk jumlah informasi yang lebih besar, tetapi program harus dimuat dari disk ke memori utama sebelum program tersebut dieksekusi. Hard disk menyimpan data pada piringan magnetis yang berputar, sedangan solid state drive merupakan perangkat elektronis murni tanpa bagian yang bergerak.)
  • - Keyboard dan mouse untuk masukan pengguna.
  • -Monitor dan printer yang digunakan untuk menampilkan keluaran komputer.
  • - Perangkat keluaran audio yang memungkinan komputer untuk mengeluarkan suara.
  • - Antarmuka jaringan yang memungkinkan komputer untuk berkomunikasi dengan komputer lainnya yang terhubung dengannya pada sebuah jaringan, baik secara nirkabel atau dengan kabel.
  • - Scanner yang mengubah gambar ke kode dalam bilangan biner yang dapat disimpan dan diolah oleh komputer.

Daftar perangkat ini bisa ditambahkan lagi, ini karena sistem komputer dibangun sedemikian rupa sehingga dapat dilakukan penambahan perangkat baru dengan mudah. Terkadang CPU harus berkomunikasi dan mengontrol perangkat-perangkat tersebut. CPU hanya bisa melakukan hal ini dengan mengeksekusi instruksi bahasa mesin (hanya inilah yang bisa dilakukan CPU, titik). Cara kerjanya adalah untuk setiap perangkat di sistem terdapat sebuah driver perangkat, yang terdiri dari perangkat lunak yang akan dieksekusi CPU saat sedang berurusan dengan perangkat tersebut. Pemasangan perangkat baru pada sistem umumnya terdiri dari dari langkah: menghubungkan perangkat secara fisik ke komputer, dan memasang perangkat lunak driver dari perangkat. Tanpa driver dari perangkat, perangkat fisik saja akan tidak berguna, karena CPU tidak akan bisa berkomunikasi dengan perangkat tersebut.


Sebuah sistem komputer yang terdiri dari banyak perangkat biasanya diorganisasikan dengan menggabungkan satu perangkat dengan perangkat lainnya ke satu atau lebih bus. Sebuah bus merupakan sebuah kumpulan kabel yang membawa berbagai macam informasi diantara perangkat-perangkat yang terhubung ke kabel-kabel tersebut. Kabel-kabel ini membawa data, alamat, dan sinyal kontrol. Sebuah alamat akan mengarahkan data ke perangkat tertentu dan kemungkinan ke sebuah register tertentu atau lokasi tertentu dari perangkat tersebut. Sinyal kontrol dapat digunakan , sebagai contoh, oleh sebuah perangkat untuk memberitahukan perangkat lain bahwa data telah tersedia di bus data untuk perangkatnya. Sebuah sistem komputer sederhana dapat di organisasikan sebagai berikut:

Diagram bus dengan perangkat yang terpasang


Saat ini, perangkat seperti keyboard, mouse, dan antarmuka jaringan dapat menghasilkan masukan yang perlu untuk diproses oleh CPU. Bagaiaman CPU mengetahui bahwa data telah ada? ? Salah satu gagasan sederhana, yang tidak memuaskan, adalah CPU tetap memeriksa data yang masuk secara berulang-ulang. Saat CPU menemukan data, ia memproses data tersebut. Metode ini disebut polling, dikarenakan CPU menjajaki perangkat masukan secara berkala untuk mencari tahu apakah perangkat memiliki masukan data untuk dilaporkan. Sayangnya, meskipun polling sangat sederhana, metode ini juga sangat tidak efisien. CPU dapat menghabiskan banyak waktu hanya untuk menunggu masukan.


Untuk menghindari ketidakefisienan ini, interupsi lebih sering digunakan sebagai pengganti polling. Interupsi merupakan sinyal yang dikirimkan oleh perangkat lain ke CPU. CPU merespon sinyal interrupt dengan mengesampingkan apapun yang dilakukannya untuk merespon interupsi tersebut. Setelah CPU telah menangani interupsi tersebut, CPU akan kembali ke hal yang dilakukannya sebelum interupsi terjadi. Sebagai contoh, saat kamu menekan tombol di keyboard komputer maka sebuah interupsi keyboard dikirimkan ke CPU. CPU akan merespon sinyal tersebut dengan menginterupsi yang sedang dilakukannya, membaca tombol yang kamu tekan, memprosesnya, dan kembali ke pekerjaan yang dilakukan CPU sebelum kamu menekan tombol tersebut.


Sekali lagi, kamu harus mengerti bahwa hal tersebut merupakan proses mekanis murni: Sebuah perangkat mensinyalkan interupsi hanya dengan mengaktifkan sebuah kabel. CPU dibangun sedemikian rupa sehingga saat kabel diaktifkan, CPU akan menyimpan informasi yang memadai tentang apa yang dikerjakannya saat ini sehingga ia dapat kembali ke keadaan yang sama nantinya. Informasi ini terdiri atas isi dari register internal yang penting seperti program counter. Kemudian CPU akan melompat ke lokasi memori tertentu yang telah ditentukan sebelumnya dan memulai mengeksekusi perintah yang tersimpan di sana. Intruksi- intruksi tersebut membentuk sebuah interrupt handler yang melakukan proses yang diperlukan dalam merespon interupsi. (Interrupt handler ini merupakan bagian dari perangkat lunak driver perangkat yang mensinyalkan interupsi.) Pada bagian akhir dari interrupt handler terdapat instruksi yang memerintahkan CPU untuk melompat kembali ke tugas yang sebelumnya dilakukan; Hal ini dilakukan dengan mengembalikan keadaan yang telah disimpan sebelumnya.


Interupsi memampukan CPU untuk mengatasi event asinkron. Dalam cycle ambil dan eksekusi reguler, berbagai hal terjadi dalam urutan yang telah ditentukan; semua yang terjadi "disinkronisasikan" dengan semua hal yang lainnya. Interupsi memungkinan CPU untuk mengatasi event yang terjadi "secara asinkron" dengan efisien, yakni yang terjadi dalam waktu yang tidak terprediksi.


Sebagai contoh lain bagaimana interupsi digunakan, pertimbangkan apa yang terjadi saat CPU memerlukan pengaksesan data yang disimpan di hard disk. CPU hanya dapat mengakses data secara langsung hanya jika data tersebut berada dalam memori utama. Data di disk harus disalin ke memori sebelum dapat diakses. Sayangnya, dalam skala kecepatan CPU beroperasi, disk drive sangatlah lambat. Ketika CPU memerlukan data dari disk, ia memberikan sinyal ke disk drive yang memerintahkannya untuk menentukan lokasi data dan mempersiapkannya. (Sinyal ini dikirim secara sinkron, di bawah kontrol dari program reguler.) Kemudian, daripada menunggu dalam waktu yang panjang dan tak terprediksi yang diperlukan disk drive untuk mengerjakan hal tersebut, CPU melanjutkan kerjanya yang lain. Ketika disk drive selesai mempersiapkan data, ia akan memberikan sinyal interupsi ke CPU. Interrupt handler kemudian dapat membaca data yang telah diminta.



Sekarang mungkin kamu telah memperhatikan bahwa kesemuanya tersebut masuk akal jika CPU sebenarnya memiliki beberapa tugas yang harus dikerjakan. Jika ia tidak memiliki hal lain yang lebih baik untuk dikerjakan, maka CPU mungkin akan menghabiskan waktunya melakukan polling terhadap masukan atau menunggu selesainya operasi disk drive. Semua komputer modern menggunakan metode multitasking untuk melakukan beberapa tugas bersamaan. Beberapa jenis komputer dapat digunakan oleh beberapa orang secara bersamaan. dikarenakan CPU sangatlah cepat, maka ia dapat memindahkan perhatiannya secara cepat dari satu pengguna ke pengguna lainnya dengan memberikan pecahan waktu untuk tiap pengguna sesuai gilirannya. Aplikasi dari multitasking ini disebut timesharing. Namun komputer personal modern dengan satu pengguna juga menggunakan multitasking. Sebagai contoh, pengguna dapat menulis paper sementara jam di komputer tetap menunjukkan waktu dan sebuah berkas sedang didownload dari jaringan.


Setiap tugas individual yang dilakukan CPU disebut sebagai thread. (Atau proses; ada perbedaan teknis antara thread dan proses, tetapi hal tersebut tidak penting disini, karena hanya thread yang digunakan di Java.) Banyak CPU secara harfiah dapat mengeksekusi lebih dari satu thread secara serentak -- CPU seperti ini memiliki banyak "inti", dimana setiap inti dapat menjalankan sebuah thread -- tetapi selalu ada batasan dari jumlah thread yang bisa dieksekusi dalam waktu yang sama. Karena sering sekali ada banyak thread yang dapat dieksekusi secara serentak, maka komputer harus mampu memindahkan perhatiannya dari satu thread ke thread lainnya, sama seperti komputer timesharing mengubah perhatiannya dari satu pengguna ke pengguna lainnya. Secara umum, thread yang sedang dieksekusi akan tetap berjalan sampai salah satu dari beberapa hal ini terjadi:

  • - Thread mungkin secara sukarela menyerahkan kontrolnya, untuk memberikan kesempatan untuk berjalan pada thread lainnya.
  • - Thread mungkin perlu menunggu beberapa event asinkron terjadi. Sebagai contoh, thread mungkin meminta beberapa data dari disk drive, atau ia mungkin menunggu pengguna menekan sebuah tombol. Sementara ia menunggu, thread akan diblok, dan thread lain, jika ada, membeli kesempatan untuk berjalan. Saat event yang ditunggu terjadi, interupsi akan "membangunkan" thread sehingga ia dapat meneruskan kegiatannya.
  • - Thread mungkin telah habis menggunakan potongan waktu yang diberikan dan ditunda kegiatannya untuk memberikan kesempatan thread lain berjalan. Tidak semua komputer dapat menunda "secara paksa" sebuah thread dengan cara tersebut; Komputer yang dapat melakukannya disebut menggunakan preemptive multitasking. Untuk melakukan preemptive multitasking, sebuah komputer memerlukan perangkat timer khusus yang menghasilkan sebuah interupsi secara berkala, misal 100 kali per detik. Ketika interupsi timer terjadi, CPU memiliki kesempatan untuk berpindah dari satu thread ke thread lainnya, tidak peduli apakah thread yang lagi bekerja menyukainya atau tidak. Semua komputer desktop dan laptop modern, dan bahkan smartphone dan tablet yang umum pun, menggunakan preemptive multitasking.

Pengguna biasa dan bahkan juga programmer biasa, tidak perlu berhubungan dengan interupsi dan interrupt handler. Mereka dapat berkonsentrasi pada tugas atau thread berbeda yang mereka ingin komputer lakukan; rincian akan bagaimana komputer melakukan semua tugas-tugas tersebut tidaklah penting untuk mereka. Bahkan kenyataannya, banyak pengguna, dan juga banyak programmer, dapat mengabaikan thread dan multitasking sama sekali. Tetapi, thread telah semakin menjadi penting dikarenakan komputer semakin canggih dan semakin memanfaatkan pengunaan multitasking dan multiproses. Dan kenyataannya, kemampuan untuk bekerja dengan thread menjadi hal yang esensial sebagai bagian dari kemampuan programmer. Untungnya, Java memiliki dukungan yang baik untuk thread, yang dibangun ke dalam bahasa pemrograman Java sebagai konsep pemrograman dasas. Pemrograman dengan thread akan dibahas di Bab 12.


Dasar konsep dari event asinkron secara umum sama pentingnya baik dalam Java dan pemrograman modern. Meskipun programmer kenyataannya tidak secara langsung berhadapan dengan interupsi, tetapi mereka sering mendapati bahwa mereka menulis event handlers, sama seperti interrupt handler yang dipanggil secara asinkron saat event tertentu terjadi. "Pemrograman berbasis event-driven" ini memiliki citarasa yang berbeda dari kebanyakan pemrograman sinkron tradisional. Kita akan memulai dengan jenis pemrograman tradisional, yang masih digunakan untuk memrogram tugas individual, tetapi kita akan kembali ke thread dan event nantinya, yang dimulai di Bab 6




Perangkat lunak yang melakukan penanganan semua interupsi, menangani komunikasi antar pengguna dan perangkat keras, dan mengontrol thread mana yang diperboleh untuk berjalan disebut Sistem Operasi. Sistem operasi merupakan perangkat lunak dasar dan penting yang tanpanya komputer tidak akan berfungsi. Program lainnya seperti pengolah kata dan penjelajah web, bergantung pada sistem operasi. Sistem operasi yang umumnya dikenal adalah Linux, beberapa versi Windows, dan Mac OS.


Sebelumnya: Cycle Ambil dan Eksekusi: Bahasa Mesin

Sabtu, 19 September 2015

Bagian 1.1 Cycle Ambil dan Eksekusi: Bahasa Mesin

by Unknown  |  in Pengenalan Pemrograman Menggunakan Java at  Sabtu, September 19, 2015
Artikel ini merupakan bagian buku Pengenalan Pemrograman Menggunakan Java

Sebelumnya: Pendahuluan

Bagian 1.1

Cycle Ambil dan Eksekusi: Bahasa Mesin


Komputer merupakan sebuah sistem yang kompleks yang terdiri dari banyak komponen yang berbeda. Tetapi di jantung -- atau di otak, jika anda lebih suka -- komputerlah terletak komponen utama yang melakukan proses komputasi yang sebenarnya. Komponen ini dinamakan Central Processing Unit, atau CPU. Di komputer desktop modern, CPU merupakan sebuah "chip" yang berukuran satu inci persegi. Tugas dari CPU ini adalah untuk menjalankan program.

Sebuah program merupakan daftar instruksi yang ditujukan untuk diikuti secara mekanis oleh komputer. Komputer dibangun untuk melaksanakan instruksi yang ditulis secara sederhana dalam bahasa yang disebut bahasa mesin. Tiap jenis komputer memiliki bahasa mesin tersendiri, dimana komputer hanya dapat mengeksekusi langsung program jika program tersebut dibuat dengan bahasa mesin tersebut. (Komputer dapat menjalankan program yang ditulis dalam bahasa lain jika terlebih dahulu program tersebut diterjemahkan ke dalam bahasa mesinnya.)

Saat CPU mengeksekusi sebuah program, program tersebut disimpan di memori utama komputer (dikenal juga sebagai RAM atau random access memory). Memori juga dapat memegang data yang digunakan atau diproses oleh program. Memori utama terdiri atas sebuah urutan dari lokasi. Lokasi ini diberi nomor dimana urutan nomor dari lokasi disebut sebagai alamat. Sebuah alamat memberikan sebuah cara untuk mengambil sebuah informasi tertentu dari jutaan informasi yang disimpan di memori. Saat CPU mengakses instruksi program atau data di lokasi tertentu, ia akan mengirimkan alamat dari informasi sebagai sinyal ke memori; memori akan merespon dengan mengirimkan data yang terkandung di alamat tertentu tersebut. CPU juga dapat menyimpan informasi di memori dengan cara menentukan informasi yang akan disimpan dan alamat dari lokasi dimana data akan disimpan.

Pada tingkatan bahasa mesin, operasi dari CPU cukup gamblang (walaupun sangat rumit secara rincinya). CPU mengeksekusi program yang disimpan sebagai sebuah urutan bahasa mesin di memori utama. Hal ini dilakukan dengan berulang-ulang membaca, atau mengambil, sebuah instruksi dari memori dan kemudian mengerjakan, atau mengeksekusi, instruksi tersebut. Proses ini -- mengambil sebuah instruksi, mengeksekusinya, mengambil instruksi lain, mengeksekusinya, dan begitu seterusnya -- disebut sebagai cycle ambil-dan-eksekusi. Dengan sebuah pengecualian, yang akan dijelaskan di bagian selanjutnya, Semua inilah yang dilakukan oleh CPU.

Rincian dari cycle ambil-dan-eksekusi tidaklah begitu penting, namun ada beberapa hal dasar yang harus kamu tahu. CPU memiliki beberapa register internal, yang merupakan unit memori kecil yang memiliki kemampuan untuk mempertahankan sebuah nomor atau instruksi bahasa mesin. CPU menggunakan salah satu dari register -- program counter, atau PC -- untuk merekam jejak dimana bagian program yang sedang dieksekusi. PC menyimpan alamat dari instruksi selanjutnya yang harus dikerjakan oleh CPU. Di permulaan dari ambil-dan-eksekusi cycle, CPU memeriksa PC untuk melihat instruksi mana yang harus diambil. Selama proses ambil-dan-eksekusi cycle, nomor dari PC diperbaharui untuk menunjukkan instruksi yang akan dieksekusi di cycle selanjutnya.(Biasanya, tidak selalu, merupakan instruksi yang diikuti secara berurutan pada instruksi terkini di program.)


Komputer mengeksekusi program bahasa mesin secara mekanis -- tanpa mengetahui atau berpikir tentangnya -- dikarenakan oleh cara penempatan fisik yang bersamaan. Ini memang bukan konsep yang mudah. Komputer merupakan sebuah mesin yang dibangun dari berjuta-juta saklar kecil yang disebut transistor, yang dibentuk sedemikian rupa sehingga mereka bisa dihubungkan bersama dimana keluaran dari satu saklar dapat menyalakan atau mematikan saklar lainnya. Saat komputer melakukan komputasi, saklar-saklar ini menyalakan dan mematikan satu sama lain dengan pola yang ditentukan oleh bagaimana mereka dihubungkan dan oleh program yang lagi dieksekusi komputer.

Instruksi bahasa mesin diekspresikan sebagai bilangan biner. Bilangan biner hanya terdiri dari dua digit kemungkinan, nol dan satu. Oleh karena itu, instruksi bahasa mesin hanyalah urutan dari nol dan satu. Tiap nol atau satu ini disebut bit. Jadi instruksi bahasa mesin hanya merupakan urutan dari nol dans atu. Tiap urutan tertentu mengkodekan instruksi tertentu. Data yang dimanipulasi oleh komputer juga dikodekan sebagain bilangan biner. Pada komputer modern, setiap lokasi memori menyimpan satu byte, yang merupakan urutan dari 8 buah bit. (Sebuah instruksi bahasa mesin atau sepotong data umumnya terdiri dari beberapa byte yang disimpan di lokasi memori yang berurutan.)

Komputer dapat bekerja secara langsung dengan bilangan biner dikarenakan saklar-saklar dapat mewakilkan bilangan tersebut: nyalakan saklar sebagai satu; matikan saklar sebagai nol. Instruksi bahasa mesin disimpan di memori sebagai pola dari nyalakan dan matikan saklar. Saat instruksi bahasa mesin dimuat ke CPU, yang terjadi adalah saklar-saklar tertentu dinyalakan atau dimatikan sesuai pola yang dikodekan oleh instruksi tersebut. CPU dibangun untuk merespon pola ini dengan mengeksekusi instruksi yang dikodekan; Hal ini dapat dilakukan dengan mudah dikarenakan oleh susunan hubungan di dalam CPU yang merupakan satu kesatuan.

Jadi, kamu harus memahami kerja komputer seperti ini: Memori utama memegang program bahasa mesin dan data. Dimana mereka dikodekan sebagai bilangan biner. CPU mengambil instruksi bahasa mesin dari memori satu demi satu dan mengeksekusinya. CPU melakukannya secara mekanis, tanpa memikirkan dan memahami apa yang dilakukannya -- dan oleh karena itu program yang dieksekusinya harus sempurna, lengkap secara rincinya, dan benar hal ini dikarenakan CPU hanya bisa mengeksekusi instruksi seperti apa yang tertulis. Inilah tampilan skematis dari tingkat-pertama pemahaman akan komputer:


Sebelumnya: Pendahuluan Selanjutnya: Event Asinkron: Loop Polling dan Interupsi

Senin, 14 September 2015

Pendahuluan: Pengenalan Pemrograman Menggunakan Java

by Unknown  |  in Pengenalan Pemrograman Menggunakan Java at  Senin, September 14, 2015
Artikel ini merupakan bagian buku Pengenalan Pemrograman Menggunakan Java

Pengenalan Pemrograman Menggunakan Java
Versi 7.0, Agustus 2014

Pendahuluan


Pengenalan Pemrograman Menggunakan Java merupakan sebuah buku teks gratis untuk pengenalan pemrograman komputer yang menggunakan bahasa Java sebagai bahasa instruksinya. Buku ini cocok digunakan dalam pelajaran pengenalan pemrograman dan untuk orang yang ingin mencoba belajar pemrograman secara mandiri. Tidak diperlukan pengetahuan awal melebihi dari mengenal ide dari komputer dan program. Tersedia materi yang cukup untuk pemrograman setahun penuh di tingkat universitas. Bab 1 hingga Bab 7 dapat digunakan sebagai buku teks satu semester untuk pelajaran tingkat mahasiswa atau di dalam pelajaran setahun tingkat SMA. Sisa dari Bab dapat dicakup pada pelajaran sesi kedua.
Edisi Ketujuh dari buku ini mencakup "Java 7." Versi terbaru dari Java adalah versi 8, tetapi buku ini hanya sedikit sekali menyebutkan fitur-fitur baru dari Java 8.
Situs web dari buku ini adalah http://math.hws.edu/javanotes/. Halaman dari alamat tersebut mengandung tautan untuk mendownload kopi dari situs web dan untuk mendownload versi PDF dari buku ini. Situs web -- dan situs web downloadnya -- mencakup source code untuk program contoh yang didiskusikan dalam teks buku, jawaban untuk kuis di akhir bab dan diskusi serta solusi untuk latihan di akhir bab. Pembaca diharapkan untuk mendownload source code dari program contoh dan membaca serta menjalankan program di saat membaca buku ini. Pembaca juga sangat diharapkan untuk membaca solusi dari latihan jika ia ingin mendapatkan manfaat terbaik dari buku ini.

Buku ini menggunakan gaya bahasa buku teks daripada tutorial. Dimana buku ini mengkonsentrasikan dalam penjelasan konsep daripada memberikan petunjuk dengan langkah per langkah seperti di How-to-do-it. Saya telah mencoba menggunakan gaya penulisan percakapan yang lebih dekat ke kuliah di kelas daripada buku teks umumnya. Buku ini bukan merupakan buku referensi Java, dan bukan survei menyeluruh dari semua fitur Java. Buku ini tidak ditulis sebagai pengenalan cepat ke Java untuk orang-orang yang telah mengetahui bahasa pemrograman lainnya. Tetapi buku ini ditujukan umumnya untuk orang yang belajar pemrograman pertama kalinya, dimana dibahas mengenai konsep pemrograman secara umum dan Java secara khusus. Saya percaya Pengenalan Pemrograman Menggunakan Java sangat kompetitif dengan buku pemrograman yang dicetak secara konvensional, yang tersedia di pasar. (Yah, baiklah, Saya akui bahwa saya berpikir buku ini lebih baik.)
Ada beberapa pendekatan untuk mengajar Java. Salah satu cara dengan menggunakan pemrograman grafis antarmuka pengguna dari awal. Beberapa orang percaya bahwa pemrograman berorientasi objek seharusnya ditekankan dari awal. Ini bukan pendekatan yang saya gunakan. Pendekatan yang saya senangi adalah memulai dari blok bangunan pemrograman dasar dan membangun dari sana. Setelah bab pengenalan, Saya membahas pemrograman prosedural di Bab 2, 3 dan 4. Pemrograman berorientasi objek diperkenalkan di Bab 5. Bab 6 mencakup topik yang berhubungan erat dengan pemrograman berorientasi kejadian (event) dan grafis antarmuka pengguna. Array diperkenalkan di Bab 3 yang dijelaskan lebih lengkap di Bab 7. Bab 8 merupakan bab pendek yang menandai titik balik di buku, berpindah dari ide dasar pemrograman ke cakupan topik yang lebih lanjut. Bab 8 membahas mengenai penulisan program yang kokoh, benar, dan efisien. Bab 9 dan 10 mencakup rekursi dan struktur data, termasuk Java Collection Framework. Bab 11 membahas mengenai berkas dan jaringan. Bab 12 mencakup thread dan pemrosesan paralel. Akhirnya, Bab 13 kembali ke topik pemrograman grafis antarmuka pengguna untuk mencakup beberapa kemampuan Java yang lebih lanjut.

Edisi Ketujuh dari "Pengenaln Pemrograman Menggunakan Java" bukan merupakan pembaharuan besar dari edisi keenam. Tetapi sebenarnya motivasi utama saya untuk versi baru adalah menghapus semua penggunaan applet atau pembahasan tentang applet dari buku ini. Applet merupakan program Java yang berjalan di halaman web. Ketika Java pertama kali keluar, applet merupakan hal yang menarik, dan kelihatannya applet akan menjadi cara utama untuk membuat konten aktif di web. Sampai edisi keenam halaman web dari buku ini mencakup applet yang dipakai untuk menjalankan banyak program contoh. Tetapi karena isu keamanan dan kemunculan dari teknologi lain, applet saat ini tidak dipakai secara umum. Dan lebih dari itu, versi terbaru dari Java membuat penggunaan applet di buku ini menjadi cukup sulit dan tidak menyenangkan. Sebagai ganti applet, saya telah membuat sedemikian hal yang memudahkan pembaca untuk mendownload program contoh dan menjalankannya di komputer masing-masing.
Perubahan penting lainnya di edisi ketujuh adalah pengenalan array di Bab 3 dalam bentuk dasar yang dipakai pada tiga bab selanjutnya. Sebelumnya, array tidak diperkenalkan sampai Bab 7 setelah objek dan pemrograman GUI telah dibahas. Pembahasan lebih lanjut untuk array dilakukan di Bab  7.
Disamping itu, ada banyak perbaikan kecil secara keseluruhan yang kebanyakan berhubungan dengan fitur baru di Java 7.

Edisi lengkap yang terbaru dari Pengenalan Pemrograman Menggunakan Java selalu tersedia secara online di http://math.hws.edu/javanotes/. Versi pertama dari buku ini ditulis pada tahun 1996, karena itu terdapat beberapa versi setelahnya. semua edisi diarsipkan pada alamat web berikut ini:
Pengenalan Pemrograman Menggunakan Java bersifat gratis, tetapi tidak berlisensi public domain. Versi 7 diterbitkan dengan ketentuan lisensi Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Untuk meninjau kopi dari lisensi ini, kunjungi http://creativecommons.org/licenses/by-nc-sa/3.0/. Sebagai contoh, Anda dapat:
  • Memposting kopi nonmodifikasi dari versi online di situs web Anda (Mencakup bagian yang mencantumkan penulis dan status lisensi dari kopi yang didistribusikan!).
  • Memberikan secara gratis versi nonmodifikasi dari buku ini atau menjual seharga ongkos produksi, selama masih di dalam batasan yang diberikan lisensi.
  • Membuat versi modifikasi dari buku lengkap atau bagian buku dan mempostingnya ke web atau mendistribusikannya secara nonkomersial, dengan menyertakan atribusi ke penulis, modifikasi dengan jelas dicatat, dan kopi dari versi modifikasinya didistribusikan dengan lisensi yang sama dengan yang asli. Ini termasuk terjemahan ke bahasa lain.
Untuk penggunaan buku ini yang tidak dicakup oleh lisensi, izin dari penulis dibutuhkan.
Walaupun sebenarnya tidak diperlukan di dalam lisensi, tetapi saya sangat menghargai jika mendengar kabar dari orang-orang yang menggunakan atau mendistribusikan pekerjaan saya.

Catatan teknis untuk produksi: Versi online dan PDF dari buku ini dibuat dari satu sumber, yang sebagian besar ditulis dalam XML. Untuk memproduksi versi PDF, berkas XML diproses menjadi bentuk yang dapat digunakan oleh program typesetting TeX. Selain berkas-berkas XML, sumber termasuk DTD, transformasi XSLT, berkas kode sumber Java, berkas gambar, sebuah berkas makro TeX, dan beberapa skrip yang digunakan dalam pemrosesan. Skrip-skrip ini bekerja di Linux dan Mac OS.
Saya telah membuat berkas kode yang lengkap tersedia untuk didownload pada alamat berikut:
Berkas-berkas ini pada mulanya tidak ditujukan untuk publikasi, oleh karena itu tidak cukup baik ditulis. Selain itu, memerlukan cukup banyak keahlian untuk menggunakannya secara efektif. Namun, saya mendapatkan beberapa permintaan untuk sumber dan telah membuatnya tersedia secara "apa adanya". Untuk informasi lebih lanjut mengenai sumber dan bagaimana menggunakannya, silahkan melihat di README file dari sumber downloadnya.

Profesor David J. Eck
Departemen Matematika dan Ilmu Komputer
Universitas Hobart dan William Smith
300 Pulteney Street
Jenewa, New York 14456, Amerika Serikat
Email: eck@hws.edu
WWW: http://math.hws.edu/eck/

Penerjemahan Buku Pengenalan Pemrograman Menggunakan Java

by Unknown  |  in Pengenalan Pemrograman Menggunakan Java at  Senin, September 14, 2015

Saya telah memulai penerjemahan buku Java, Introduction to Programming Using Java, Seventh Edition karya Profesor David J. Eck. Semoga pekerjaan penerjemahan saya ini konsisten sehingga membantu orang-orang yang ingin belajar bahasa Java tapi terkendala oleh buku dan bahasa inggris.

Untuk pekerjaan penerjemahan ini dapat dilihat di https://github.com/joielechong/javanote-book.

Daftar Isi:
1. Pendahuluan
2. Bagian 1.1 Cycle Ambil dan Eksekusi: Bahasa Mesin
3. Bagian 1.2 Event Asinkron: Loop Polling dan Interupsi

Jumat, 11 September 2015

Kembali menerjemahkan buku Java

by Unknown  |  in Java at  Jumat, September 11, 2015

Setelah lebih dari satu tahun meninggalkan rencana untuk menerjemahkan sebuah buku, hari ini saya kembali lagi memulai menerjemahkan sebuah buku berjudul "Introduction to Programming Using Java, Seventh Edition", ke dalam bahasa Indonesia.

Buku asli dapat didownload dari math.hws.edu/javanotes, sedangkan terjemahan yang sedang saya lakukan dapat dilihat di github javanote saya.

Sabtu, 12 Juli 2014

Terjemahan Introduction to Programming Using Java, Sixth Edition

by Unknown  |  in Pengenalan Pemrograman Menggunakan Java at  Sabtu, Juli 12, 2014
Sebagai wujud sumbangsih untuk perkembangan teknologi di Indonesia, saya akan menterjemahan buku yang akan saya share gratis.

Buku yang saya terjemahkan berjudul Introduction to Programming Using Java, Sixth Edition, dimana versi aslinya bisa didapatkan dari http://math.hws.edu/javanotes/.

Saya akan secara rutin memberitahukan status perkembangan terjemahan ini. Semoga saya bisa menyelesaikannya dalam waktu dekat.

Sumber dari hasil terjemahan bisa teman-teman download dari github saya di:
https://github.com/joielechong/Introduction-to-Programming-Using-Java--Sixth-Edition


Versi PDF-nya akan saya coba posting di blog ini.
Semoga apa yang saya kerjakan bisa membantu teman-teman seperjuangan.. :D


Doakan saya yah.. :D ;)