free counters
Diberdayakan oleh Blogger.
Tampilkan postingan dengan label Java. Tampilkan semua postingan
Tampilkan postingan dengan label Java. Tampilkan semua postingan

Selasa, 26 Januari 2016

Menggunakan Array pada Java

by Unknown  |  in pemrograman at  Selasa, Januari 26, 2016
Saya sering berurusan dengan array waktu coding memakai bahasa Java, tapi sering sekali saya lupa mempergunakan array. Malah saya lebih sering mempergunakan ArrayList karena kemudahannya walau sebenarnya ArrayList jauh lebih boros penggunaan memori daripada array.

Hal yang membuat saya sering memilih ArrayList daripada array primitif karena dalam pikiran saya tertanam pendapat bahwa array harus dideklarasikan bersama dengan ukurannya. Contohnya, jika kita ingin membuat array dari int dengan ukuran 10, maka kita harus menuliskan kode program berikut ini:
 int[] arrayInt = new int[10];  
Ternyata saya salah!



Rupanya kita bisa juga mendeklarasikan array tanpa perlu menetapkan ukurannya seperti ini:
 int[] arrayInt;  
Lalu saat konfigurasi, kita bisa menetapkan ukurannya seperti ini:
 arrayInt = new int[10];  
Selain itu, kita juga bisa menentukan nilai dan ukuran dari array secara langsung seperti ini:
 int[] arrayInt = {1,2,3};  
Jadi kesimpulannya kita bisa menentukan array primitif seperti kode di bawah ini:
 int[] arrayInt = new int[3];  
 int[] arrayInt = {1,2,3};  
 int[] arrayInt = new int[]{1,2,3};  
Dan untuk array dari kelas, seperti String, sama saja:
 String[] arrayString = new String[3];  
 String[] arrayString = {"a","b","c"};  
 String[] arrayString = new String[]{"a","b","c"};  


Penggunaannya
Untuk contoh penggunaannya array dalam program dapat dilihat dari kode di bawah ini:

Selamat berprogramming ria...;)



sumber gambar: https://en.wikipedia.org/wiki/Java_(programming_language)

Jumat, 08 Januari 2016

BigDecimalUtils, A Small BigDecimal Comparison and Calculation Utility for Java and Android.

by Unknown  |  in Library at  Jumat, Januari 08, 2016
I've release a small library for comparison and calculation with BigDecimal, BigDecimalUtils. Here the readme:


A Small BigDecimal Comparison and Calculation Utility for Java and Android.
Much of the comparison code (if not all) are heavily taken from Representing money.

Why

We need to work with BigDecimal when working with monetary value because double or float are not recommended since they always carry small rounding differences.
So we need to make comparison and calculation of BigDecimal.
We can use compareTo method for comparison, but it too error prone and lacks readability.
Furthermore, doing calculation with BigDecimal is so unnatural.

How It Work

  • Import library to your code:
    import static com.github.joielechong.currencytextcounter.util.BigDecimalUtils.*;
  • Doing comparison:
    if(is(income).lt(amount)) {
      // ....
    }else {
      // ...
    }
  • Do calculation:
    remain = calculate(income).min(expense);

Other methods currently in this library

      is(bigdecimal).eq(four);    // Equal
      is(bigdecimal).gt(two);     // Greater than
      is(bigdecimal).gteq(one);   // Greater than equal
      is(bigdecimal).lt(two);     // Less than
      is(bigdecimal).lteq(two);   // Less than equal

      calculate(bigdecimal).min(bigdecimal)   // subtraction
      calculate(bigdecimal).plus(bigdecimal)  // addition
      calculate(bigdecimal).div(bigdecimal)   // division
Currently comparison support only String and BigDecimal:
      is(bigdecimal).eq(bigdecimal);    // BigDecimal and BigDecimal
      is(bigdecimal).eq("1000");        // BigDecimal and String
      is("1000").lt("2000");            // String and String
      is("1000").lt(bigdecimal);        // String and BigDecimal
Calculation support some of int, long, float, and BigDecimal (please check the library):
      calculate(bigdecimal).min("500")  // String and String
      calculate("1000").min("500")      // String and String
      calculate(100).min("500")         // int and String
      calculate(1l).min("500")          // long and String

Sabtu, 26 Desember 2015

Font Cache untuk Custom TextView Android

by Unknown  |  in Java at  Sabtu, Desember 26, 2015
Saya saat ini sedang mengembangkan Custom View untuk pengembangan aplikasi Android. Custom view ini merupakan TextView yang berfungsi untuk menampilkan nilai mata uang. Untuk menambahkan nilai estetika dari Custom View ini, saya tambahkan fitur untuk menggunakan font lain.

Untuk efesiensi, saya menggunakan kelas FontCache untuk cache custom font.


 public class FontCache {  
   
 private static HashMap<String, Typeface> fontCache = new HashMap<>();  
   
 public static Typeface getTypeface(String fontname, Context context) {  
   Typeface typeface = fontCache.get(fontname);  
   
   if (typeface == null) {  
     try {  
       typeface = Typeface.createFromAsset(context.getAssets(), fontname);  
     } catch (Exception e) {  
       return null;  
     }  
   
     fontCache.put(fontname, typeface);  
   }  
   
   return typeface;  
 }  
kelas FontCache ini berasal dari britzl di stackoverflow dan Custom Fonts on Android — Extending TextView.


Referensi:
Custom Fonts on Android — Quick & Dirty

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

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.

Minggu, 12 April 2015

learning musicXML, Library and Tutorial

by Unknown  |  in pemrograman at  Minggu, April 12, 2015
Well, beside learning Canvas and Graphics in Java, I also learning musicXML now. For now, I still don't grasp the main idea of reading musicXML. Need more times to understand and mastering it.

I also have collecting some stuffs related to musicXML, here the list:
A. musicXML library

  1. MusicXml.Net (.Net Language)
  2. VexFlow (HTML5)
  3. ProxyMusic (Java Language)
B. Tutorial
All of the files have been collected in my Google Drive in case if the sources have been deleted.

Starting learning Java Canvas

by Unknown  |  in Java at  Minggu, April 12, 2015
Now I'm starting learning Java Canvas for my next Android project which using custom graphics.
Somehow I feel like I can't make it, but my inner voice keep telling me to keep learning and doing it. Because I respect my inner voice, I'll do the best on learning it. Well, nothing is impossible if we believe..:)

For everyone who trying to learn Canvas in java, these resources will help you:
  1. Introduction to graphics programming in Java (PDF)
  2. Canvas (Wiki) 
  3. Android Programming Tutorial (coreservlets.com)
  4. Java Programming Tutorial Custom Graphics

Well, I hope I'll finished devouring these resources on 3 days..


note: In case of these resources dead, I have backup it all in my Google Drive.