Kamis, 14 Mei 2009

Bagaimana memulai belajar pemrograman komputer

Sering saya mendapat pertanyaan dari teman-teman yg masih student (SMA maupun kuliah, terutama yg nemu messenger ID saya dari www.ilmukomputer.com ) tentang bagaimana cara memulai belajar programming. Atau juga dari teman-teman yang sudah familiar dengan programming di bahasa pemrograman lain tapi baru mau mulai belajar programming di .NET (C# maupun VB.NET). Mereka kebanyakan akan bertanya, mulainya gimana? Saya perlu install apa saja? Gratis gak? Dsb. Jawaban saya selalu seperti yang ada dibawah ini, jd daripada saya menulis di messenger berulang-ulang hal yang sama, saya summary-kan saja dalam satu post di blog saya ini, jd next time ada yg tanya, saya tinggal refer ke post ini. 1. Kalau anda baru belajar programming, pilih suatu bahasa pemrograman untuk dipelajari. Yang mana? Yang skrg populer itu: - Java - C# (dibaca "Si Sharp") - VB.NET (dibaca "Vibi Dotnet") Kenapa memilih yg populer? Simple. Biar bisa dipakai cari kerja. Setelah menguasai suatu bahasa pemrograman, anda akan bisa belajar bahasa pemrograman lainnya. Kalau anda memilih C# atau VB.NET, lanjutkan membaca artikel ini. Kalau anda memilih Java, silahkan googling lebih jauh. O ya, saya juga tidak menyarankan untuk belajar Java lagi. Kenapa? Lihat ini: http://geeks.netindonesia.net/blogs/norman/archive/2007/12/31/java-is-becoming-the-new-cobol.aspx Kalau anda benar-benar baru dlm belajar programming, saya rekomendasikan pilih bahasa C#. Kalau anda pernah belajar C, C++, Java, saya rekomendasikan pilih bahasa C#. Kalau anda pernah belajar VB6, anda bisa memilih VB.NET, karena ada kemiripan. Tp, saya tetap rekomendasikan pilih bahasa C#. Singkatnya, mulailah dengan C#. 2. Kunjungi dan explore website ini: http://msdn2.microsoft.com/en-us/express/default.aspx Ini adalah website dari Microsoft Visual Studio Express. Versi Visual Studio yang gratis, yang bisa anda download dan install di komputer anda. Visual Studio adalah tool/software yang akan anda pakai dalam membuat program. Dengan Visual Studio Express ini anda sudah bisa belajar untuk membuat berbagai jenis program/aplikasi: - Desktop/Windows, atau program yang running di PC anda seperti halnya Word, Excel, Internet Explorer, dsb. - Web, program yang anda akses via browser seperti Internet Explorer, Firefox, Opera, dll. Misalnya: myspace.com, friendster, klikbca.com, dll - Game, ya anda bisa membuat program game. - Hardware/Robot, jika anda suka robot. Anda juga bisa bikin program untuk robot. - Database, membuat program untuk menyimpan data. Kalau mau langsung download Visual Studio Express, silahkan langsung ke sini: http://msdn2.microsoft.com/en-us/express/aa975050.aspx Seperti yang saya bilang tadi, download yang C#. 1. Mulailah belajar membuat program. Sering2 latihan membuat program. Anda bisa memulai belajar dengan membaca di link ini : http://msdn.microsoft.com/vstudio/express/beginner Pokoknya, explore seluruh halaman yang saya sebut tadi: http://msdn2.microsoft.com/en-us/express/default.aspx Jika anda kesulitan, ini ada tutorial "C# for Kids": http://msdn.microsoft.com/vstudio/express/beginner/kids/csharp Iya, turorial bagi anak kecil yang pengen belajar pemrograman C#. Serius. 2. Sering baca buku/artikel tentang pemrograman C#, anda bisa beli, atau cari eBook, atau baca2 artikel di internet. Bila perlu cari mentor/teman yg sdh bisa untuk membantu belajar. Sering2 latihan membuat program. That's it. Sambil jalan anda akan semakin tahu banyak hal tentang C# dan pemrograman secara umum, dan anda juga akan semakin tahu bahwa banyak yang anda belum tahu. Anda akan kenal apa itu Compiler, .NET Framework, ASP.NET, ADO.NET, CLR, Garbage Collector, XML, AJAX, JSON dan lain-lain. Kunci sukses-nya adalah: anda harus proaktif, jangan manja/malas explorasi sendiri, dan anda mesti semangat. Misal, sambil jalan anda akan butuh SQL Server Express. Barang apa itu? Well, harapannya mestinya anda sudah harus bisa cari tahu sendiri barang apa itu. Satu lagi: English. You gotta know English. At least you can read English text. If you just counting on Programming books in Bahasa Indonesia, you'll get nowhere. Cos there are very few titles of programming books in Bahasa Indonesia, while there are tons of programming books in English. Especially on advanced topics. So, learn some English. Belajar pemrograman itu seperti belajar bela diri. Sering latihan, jadi lancar saat pakai jurus2nya. Kalau cuma tahu jurus tapi jarang latihan, kagok nantinya saat benar2 akan dipakai. Mudah2an tulisan kecil ini bisa membantu teman-teman yang baru mau belajar programming dan C#. Dan saya tidak perlu cerita hal yang sama ini berulang-ulang. Tinggal refer ke post ini jika ada yang tanya: "Bagaimana cara belajar pemrograman komputer (dengan .NET)?".

Membuat Wajan Bolik

Antena WLAN, sepertinya barang yang satu ini akan menjadi kebutuhan baru temen-temen yang mulai seneng ber internet ria, kalo selama ini kita menggunakan antena radio untuk komunikasi, nah suatu saat kita akan menggunakan antena untuk akses ke internet, wahhh… mainan apa lagi nih ..??

Yup.., komunikasi komputer baik LAN atau WAN sudah merambah ke era wireless, sudah gak pake kabel-kabel lagi buat koneksi, bayangin sekarang dengan Rp. 200 ribu perbulan kita sudah bisa menikmati internet unlimited selama sebulan x 24 jam, nah kalo mau murah lagi .. ya di share lah sama tetangga, kalo ada 4 tetangga yang mau berbagi berarti hanya membayar 50 rb perbulan on line terus-terusan, … efisien kan?

Tapi bagaimana kalo card standar Wifi kita terbatas..? nah solusinya kita pake antena eksternal kayak kita pake antena hygain, cara yang murah meriah kita bikin antenanya dari kaleng bekas, kaleng susu, kaleng softdrink atau kaleng lain yang masih bagus tentunya.., nah temen-temen silahkan baca artikel ini ..

Antena Waveguide WLAN dengan memanfaatkan bahan-bahan yang relatif murah. Kaleng, konektor, kable dan busi bisa jadi solusi WLAN yang cukup menyenangkan. Selamat bereksperimen.Bahan:

  1. 1 konektor chassis mount N-female
  2. 4 pasang mur dan baut, atau sesuai kebutuhan
  3. kabel tembaga 12 gauge secukupnya
  4. 1 kaleng, diameter yang disarankan adalah 3 inchi atau 3 2/3 inchi

Bahan Tambahan

  1. Kabel ‘pigtail’ (dengan konektor N-Male)
  2. Kartu Wireles yang dapat dihubungkan ke ‘pigtail’

Perlengkapan:

  1. Bor untuk melubangi kaleng, dapat diganti dengan palu dan paku
  2. Solder

Cara Membuat:

  1. Pilih kaleng yang ingin digunakan. Buka satu sisinya, habiskan isinya, cuci bersih termasuk labelnya.
  2. Buat lubang di sisi kaleng anda. Usahakan agar lubang tepat dengan
  3. ukuran konektornya.
  4. Jarak lubang dari dasar kaleng tergantung diameter kaleng. Gunakan perhitungan di http://www.saunalahti.fi/elepal/antenna2calc.php angka Lg/4 adalah jarak lubang dari dasar kaleng. Perhatikan bahwa angka ¾ Lg adalah tinggi kaleng yang diinginkan Pasang kabel pada konektor, gunakan solder.
  5. Usahakan panjang kabel yang keluar dari konektor ke dalam kaleng mendekati 1.21 inchi. Sekarang pasang konektor N-female itu, pada lubang yang ada. Gunakan mur dan baut seperlunya, sebaiknya sisi yang dipasang mur menghadap keluar kaleng.
  6. Hubungkan N-Male pada kabel ‘pigtail’ ke konektor N-Female
  7. Hubungkan ‘pigtail’pada kartu wireles.
  8. Antena siap digunakan, arahkan bagian terbuka pada ‘teman’ anda.

Saran: Perlu diingat resiko dan segala sesuatu yang mungkin timbul akibat penggunaan antena kaleng ini ditanggung oleh anda…Informasi diambil dari situs: http://www.turnpoint.net/wireless/cantennahowto.html

Senin, 27 April 2009

Misteri Bau Tanah Terpecahkan

Bau tanah yang khas tercium setiap kali hujan mengguyur, tapi dari mana asal bau tersebut masih menjadi teka-teki sejak bertahun-tahun. Para peneliti dari Universitas Brown di New York, AS, akhirnya memastikan bahwa aroma tersebut berasal dari senyawa yang dihasilkan bakteri. Mereka menyimpulkan bahwa bau tanah berasal dari kombinasi dua senyawa yang disebut geosmin dan methylisoborneol. Kedua zat kimia yang tidak berbahaya itu termasuk dalam kelas senyawa terpene yang sama-sama disintesis oleh bakteri tanah. Tahun lalu, salah satu peneliti bernama David Cane menemukan gen dalam tubuh bakteri yang mengatur produksi geosmin. Proses produksi methylisoborneol masih misterius waktu itu. Sebab, tidak seperti senyawa-senyawa terpene lainnya yang memiliki 15 rantai karbon, senyawa ini hanya memiliki 11 rantai karbon. Saat itu, Cane dan koleganya, Chieh-Mieh Wang, mencoba menyintesis senyawa tersebut dengan mempelajari gen bakteri tanah yang disebut Streptomyces. Salah satu gen dari 8.000 gen diprediksi sebagai katalis terpene, tapi saat disisipkan ke tubuh bakteri lainnya ternyata tak menghasilkan apa-apa. Gen ganda “Kami lalu melihat gen lainnya, gen berikutnya dari yang pertama,” ujar Cane yang melaporkan temuannya dalam Journal of the American Chemical Society. Gen tersebut diketahui menambahkan satu rantai karbon dalam senyawa kimia yang dihasilkan gen lainnya. Tanpa disadari sebelumnya, methylisoberneol dihasilkan dari kerja sama kedua gen. Saat kedua gen disisipkan ke dalam bakteri Escherichia coli, senyawa tersebut terbentuk sempurna. Selain pada bakteri, Cane memperkirakan kedua senyawa tersebut juga dihasilkan alga hijau. Sebab, aroma yang sama juga ditemukan pada lumpur yang terbentuk di dalam perairan yang ditumbuhi alga tersebut. Jika benar, temuan ini dapat dijadikan dasar peringatan dini untuk mencegah gangguan ganggang sebelum tumbuh berlebihan. -Kompas Online-

Jumat, 17 April 2009

Internet CDMA

Internet CDMA internet gratis cdma: internetan gratis menggunakan dial up cdma Ditulis oleh internetgratisesia di/pada Januari 5, 2008 Apakah anda ingin nerinternet gratis menggunakan perantara kartu chip xxx? jika anda memiliki: 1. laptop/pc dengan os windows xp/vista 2. browser internet 3. hp cdma yang bisa buat modem + kabel data / infra / bluetooth + chip xxx sudah cukup alasan bagi anda untuk mendapatkan koneksi internet gratis dari kamar anda! bagaimana caranya ? gampang saja, anda bisa menggunakan browser apapun, untuk yang belum tahu cara setting koneksi dialup cdma bisa di lihat disini parameter yang digunakan untuk koneksi dgn chip xxx, nomor dial = #777 username/login= wap password= wap dalam opsi koneksi pada browser ganti proxy secara manual menggunakan proxy berikut : 66.29.36.95 port: 554 proxy ini bagus karena bisa membuka halaman2 dengan ssl 128 bit seperti yahoomail,e-gold, gmail, internet banking, dan semuanya, tentu saja bisa membuka halaman friendster yang menjadi kegemaran anda lakukan dial cdma anda, kemudian mulailah browsing…. good luck. Disini : Teknologi internet tidak saja merambah pada kecepatan, tetapi mulai di sajikan pada teknologi handphone. Pada artikel kali ini dibahas sedikit mengenai kecepatan koneksi dengan CDMA dan kemudahan menginstall handphone menjadi sebuah modem PC. Koneksi CDMA pada saat ini dapat mencapai 230Kbps untuk koneksi dan kecepatan download 15KB/s (153Kbps). Untuk perbandingan, kecepatan CDMA telah mencapai 3X sistem koneksi dial-up dan sudah separuh dari sistem koneksi cable modem. Memang belum cepat, tetapi cukup lumayan bila anda memiliki area yang tidak terjangkau oleh cable modem atau ADSL modem. Solusi ini setidaknya dapat menyajikan sebuah koneksi internet dimana saja dan kapan saja yang cukup mengunakan handphone untuk dijadikan sebuah modem bersama sebuah PC. Tahapan untuk menginstall dengan Handphone CDMA : 1. Persiapan untuk membuat Com Port, komunikasi modem dilakukan melalui Com Port dan digunakan cable data untuk difungsikan sebagai Com Port. Caranya dengan merubah fungsi dari USB Cable data menjadi sebuah COM pada PC 2. Mengenal Handphone sebagai Modem. Setting driver dari install driver setelah dibukanya Com Port maka software WinXP dapat mengenal Handphone sebagai Modem 3. Proses untuk koneksi Network pada Windows XP, setelah COM port dan Modem selesai di Install, proses terakhir adalah memasukan fungsi koneksi dari Modem sebagai koneksi ke Internet. Perlengkapan untuk koneksi Internet dengan Handphone CDMA Untuk perlengkapan, pada percobaan ini digunakan: • Prolific GW-DKU-001- Compatible Cable data DKU5 Nokia • Nokia CDMA 6585 • Starone CDMA Prepaid Untuk perlengkapan PC: • Pentium P4 2.4C @ 3.3Ghz • Corsair memory 1GB TwinX PC320 • Asus P4C800-D • Gigabyte Radeon 9800 Pro • Seagate 120GB SATA Harddisk • USB port internet ICH5 • Flatron L1710B LCD monitor • Zalman ZM-400B APS Fungsi Cable data selain menjadi simulasi Com Port, juga difungsikan sebagai fungsi tranfer data dari handphone ke PC. Sedangkan modem difungsikan sebagai modem pada koneksi internet dari PC. Pada gambar dibawah ini adalah cara pemasangan Cable Data pada bagian bawah handphone dan dihubungkan pada USB port. Tahap pertama : menginstalll COM port dari Prolific data cable Seperti pada PC, bila sebuah perangkat modem akan melalui port atau USB port. Untuk sistem CDMA melalui cable data juga perlu diaktifkan Com port yang ditanamkan pada USB Cable Data. Tahap awal dibawah ini adalah cara menginstall driver USB yang disimulasikan sebagai Com port untuk menghubungkan koneksi PC ke Handphone. Kami mengunakan Cable Data Prolific , lebih mudah menginstall dibandingkan original Cable Data dari DKU-5 yang memerlukan driver ukuranbesar. Anda cukup memasangkan Cable Data Prolific dan Windows akan meminta driver USB port untuk mengenal Cable Data Prolific seperti pada gambar dibawah ini. Setelah memasukan CD dan menginstall, maka akan tampil Com port baru pada Device manager. Artinya installasi dari driver Com port Prolific sudah aktif dan siap digunakan untuk menghubungkan handphone ke USB port. Pada tahap ini anda telah selesai membuat Com port baru melalui Cable Data yang nantinya Com Port akan digunakan sebagai penghubung dari Handphone sebagai modem dan Com port untuk koneksi antara PC dan Modem / Handphone. Cable data merubah fungsi USB port menjadi Com Port pada sistem operasi Tahap kedua : Menginstall Modem untuk Handphone melalui Cable Data Selanjutnya memberikan pengenalan untuk pemakaian Com port bagi modem, click Phone and modem pada control panel Maka akan tampil pilihan seperti pada gambar dibawah ini Masuk ke bagian modem. Pada gambar dibawah terdapat sebuah modem dengan chip-set untuk dial-up dan tidak ada hubunganya dengan artikel ini. Untuk penambahan modem yang difungsikan pada Handphone, anda cukup memilih ADD dan jangan lupa click untuk Don't Detect My modem. Karena modem harus di install driver secara manual Masuk kebagian pencarian nama modem, click bagian Have Disk untuk menginstall driver modem baru pada Handphone Selanjutnya masukan driver handphone anda, sistem driver ini tidak standard. Dan anda dapat mendownload driver dari masing masing produk handphone yang anda gunakan Bila anda mengunakan Nokia, maka akan ditampilkan 3 pilihan. Untuk koneksi Internet anda cukup mengclick bagian 3G sebagai driver modem CDMA anda Selanjutnya memberikan port untuk modem anda yang telah di Install, pada gambar dibawah ini memperlihatkan pilihan Port 6 untuk Prolific cable data yang akan dikenal oleh System operasi Windows untuk mengaktifkan Com 6 bagi modem Handphone Selesai proses ini anda telah memiliki 2 modem, pertama modem dial up dari Lucent dan kedua modem Nokia melalui Handphone dan Com port dari koneksi Cable Data Pada tahap ini anda telah selesai menginstall Com port dari sistem operasi Windows dan mengenal modem anda untuk digunakan sebagai koneksi ke handphone. Tahap ketiga : Menginstal koneksi Internet untuk Window untuk CDMA modem Seperti anda mengunakan modem dial up atau ethernet broadband, masing masing hubungan network juga diperlukan jenis koneksi dan jenis yang anda butuhkan Untuk koneksi ke Internet, cukup mengunakan Wizard dari Windows XP. Anda masuk kebagian Control Panel dan click Network Connection Anda cukup mengclick bagian Create New Connection pada sub menu Network Connection Selanjutnya akan muncul Wizard Connection, dan click Next Pilih koneksi langsung ke Internet Dan masukan setup untuk koneksi manual Pilih dial-up, karena mengunakan sistem Handphone seperti telepon dan anda perlu melakukan dial nomor manual untuk koneksi melalui handphone CDMA Pilih modem yang telah anda install seperti gambar dibawah ini untuk hubungan internet melalui Handphone CDMA Masukan nama koneksi, misalnya Starone CDMA seperti pada gambar dibawah ini Masukan nomor untuk hubungan internet ke Provider, untuk Starone mengunakan nomor 777 Proses hampir berakhir, masukan nama login dari Provider, pada Starone diminta untuk nama login : starone dan password : indosat. Masing masing login dan password berbeda pada setiap provider Selesai pada tahap untuk membuat icon modem pada Dekstop Windows dan modem handphone anda siap dihubungkan ke internet provider Untuk melalukan koneksi anda cukup mengclick koneksi yang telah anda buat seperti mengunakan koneksi dial-up Bila setting seluruhnya benar, maka koneksi anda akan terhubung langsung ke provider CDMA. Pada gambar bawah terlihat kecepatan koneksi 230Kbps. Tahap keempat : Informasi kecepatan koneksi dengan teknologi CDMA Untuk kecepatan , koneksi internet melalui CDMA akan mencapai 230Kbps atau sekitar lebih dari 15KB/s. Dan kecepatan ini setara dengan kecepatan 3X dari koneksi dial up atau hampir sepertiga kecepatan koneksi cable modem. Pada gambar bawah capture ketika handphone sedang dihubungkan ke provider. Pada test melalukan download, kecepatan mencapai 12-15KB/s lebih, tentunya kecepatan ini tergantung dimana anda membuka sebuah website dan lokasi server. Kelemahan pada internet melalui handphone CDMA masih memiliki kelemahan, dimana kecepatan upload lebih kecil dibandingkan kecepatan download Untuk ping delay, koneksi sistem CDMA yang diuji cukup cepat dan tidak banyak berbeda dengan koneksi melalui Dial-up telepon biasa. Dibawah ini adalah hasil koneksi dan kestabilan ketika mendownload mengunakan Handphone CDMA melalui sistem operasi Windows XP Result : Kemajuan teknologi Internet untuk koneksi CDMA Setidaknya, kemampuan koneksi yang lebih cepat dan dapat digunakan secara mobile akan memudahkan pemakai Internet di Indonesia. Bila dikatakan teknologi CDMA untuk koneksi Internet untuk kegiatan umum seperti browsing, email tentunya sudah memadai, tetapi dikatakan cepat mungkin belum cukup. Adanya teknologi ini akan lebih menghemat biaya, khususnya penawaran tarif flat untuk koneksi bulanan yang lebih murah dibandingkan mengunakan sistem Dial-up konvensional dengan tarif selangit serta lebih lambat bahkan sangat buruk pada suatu area tertentu. Tetapi mengunakan handphone CDMA untuk koneksi Internet tidak lepas dari kendala lain walaupun tidak terlalu signifikan, kekuatan koneksi internet tidak lagi tergantung pada baik buruk nya jaringan, melainkan baik tidaknya cuaca serta kekuatan baterai handphone anda. Note: Koneksi internet dengan CDMA memerlukan informasi setup dari masing masing provider serta jenis produk dan driver. Artikel ini sedikitnya dapat menjelaskan bahwa koneksi CDMA menjadi solusi baru dengan kecepatan lebih baik dibandingkan Dial-up, dan kemudahan mengunakan koneksi melalui CDMA untuk Internet. Sebelum mengunakan CDMA untuk koneksi internet, sebaiknya melakukan evaluasi dimana anda berada. Dan periksa kekuatan signal dari BTS provider. Teknologi CDMA memiliki 3 pilihan yaitu signal Digital, Analog dan 1X. Untuk internet dibutuhkan koneksi 1X dan akan terlihat pada display handphone anda Sistem koneksi internet via handphone juga dapat dilakukan dengan OS Win98. Dengan persyaratan, koneksi cable data harus memiliki driver bagi Win98 agar mendapat COM port untuk penghubung ke Handphone. Dan intall modem handphone sama seperti melakukan install modem dialup. Kecepatan 15KB/s tidak dipengaruhi oleh jenis versi USB 1.1 pada Windows 98 Kemampuan Handphone memiliki kemampuan terbatas karena mengunakan sistem transmisi, dan kemungkinan kerusakan terjadi pada Handphone dapat terjadi bila dipakai secara berlebihan. Untuk Nokia 6585, dari laporan pemakai hanya mampu bertahan antara 1-2 jam. Dan informasi lain untuk kekuatan handphone terbaik dipegang oleh Modotel dengan kemampuan transmit 3-4 jam dan ketahanan kestabilan koneksi

Menghitung korelasi secara akurat dengan metode numerik

Berikut adalah algoritma (dalam pseudocode) yang akan mengestimasi korelasi dengan menggunakan metode mumerik
sum_sq_x = 0
sum_sq_y = 0
sum_coproduct = 0
mean_x = x[1]
mean_y = y[1]
last_x = x[1]
last_y = y[1]
for i in 2 to N:
    sweep = (i - 1.0) / i
    delta_x = x[i] - mean_x
    delta_y = y[i] - mean_y
    sum_sq_x += delta_x * delta_x * sweep
    sum_sq_y += delta_y * delta_y * sweep
    sum_coproduct += delta_x * delta_y * sweep
    mean_x += delta_x / i
    mean_y += delta_y / i 
pop_sd_x = sqrt( sum_sq_x / N )
pop_sd_y = sqrt( sum_sq_y / N )
cov_x_y = sum_coproduct / N
correlation = cov_x_y / (pop_sd_x * pop_sd_y)

Jumat, 03 April 2009

Arsitektur Komputer

Pendahuluan Setiap hal yang dikerjakan CPU dibagi-bagi menjadi beberapa langkah yang sederhana dan berurutan. Osilator clock membangkitkan clock CPU yang digunakan dalam langkah (step) kerja CPU dalam urutan perkerjaannya. Karena clock CPU ini sangat cepat untuk ukuran manusia, sehingga yang terlihat bahwa CPU bekerja secara langsung dan cepat. Mikrokontroler 8-bit dari Motorola M68HC05 dan M68HC11 memiliki organisasi khusus yan disebut dengan arsitektur Von Neumann. Dalam arsitektur ini, CPU dan rangkaian memori di-interkoneksi-kan dengan bus alamat dan bus data. Bus alamat digunakan untuk menentukan lokasi memori yang mana yang akan diakses, dan bus data digunakan untuk mengirim informasi baik dari CPU ke lokasi memori dan sebaliknya. Dalam arsitektur implementasi Motorola ini terdapat beberapa memori spesial yang disebut dengan register CPU yang terletak di dalam CPU itu sendiri. Register ini mirip dengan memori yang dapat menyimpan informasi. Tetapi register ini terjalur langsung di dalam CPU dan bukan bagian dari memori konvensional mikrokontroler. CPU menganggap semua lokasi memori sebagai satu kesatuan walaupun di dalamnya terdapat instruksi program, data variabel, maupun kontrol input-output (I/O). Teknik semacam ini yang disebut dengan memory-mapped I/O. Artinya, semua piranti input-output dari sistem mikrokontroler memiliki alamat tersendiri yang ikut dipetakan dalam peta memori, sehingga dianggap sebagai bagian dari memori itu sendiri. Di dalam CPU juga terdapat komponen ALU atau Arithmatic Logic Unit yang digunakan untuk melakukan kalkulasi aritmatika dan logika yang didefinisikan oleh instruksi. Berbagai macam variasi operasi aritmatika biner dikerjakan dalam ALU ini. Hampir semua operasi aritmatika biner didasarkan pada operasi tambah. Pengurangan dikerjakan sebagai proses tambah dengan salah satu data dikomplemenkan. Perkalian dikerjakan sebagai urutan beberapa proses tambah dan operasi shift dalam ALU. Blok diagram dari CPU M68HC05 ditampilkan dalam gambar 4.1 di bawah ini.

gb41.gif (2133 bytes)

Register-register CPU CPU yang berbeda memiliki set register yang berbeda pula. Perbedaan utama terletak pada jumlah dan ukuran dari register itu sendiri. Dalam gambar 4.1 diperlihatkan register-register CPU yang terdapat dalam mikrokontroler keluarga M68HC05.

gb42.gif (2430 bytes)

Register A berukuran 8 bit, juga dikenal sebagai akumulator karena register ini digunakan untuk menyimpan hasil dari operasi aritmatika dan manipulasi data. Register ini juga dapat langsung diakses untuk operasi non-aritmatika. Akumulator digunakan dalam proses eksekusi dari program saat isi dari beberapa lokasi memori yang digunakan di-load ke akumulator. Demikian juga instruksi penyimpanan akan menyebabkan isi dari akumulator disimpan dalam memori yang telah ditentukan. Register X adalah index register yang berukuran 8 bit. Kegunaan utama dari index register ini adalah untuk menunjukkan suatu area memori di mana CPU akan mengambil atau menuliskan suatu informasi. Kadang-kadang index register juga disebut dengan pointer register. PC atau program counter digunakan CPU untuk menata urutan alamat instruksi yang akan dikerjakan. Saat CPU reset atau baru dihidupkan, PC ini dimuati dengan alamat yang telah ditentukan dalam reset vector. Lokasi reset vector ini berisi alamat dari instruksi pertama yang akan dikerjakan oleh CPU. Saat suatu instruksi dikerjakan, CPU akan menambah isi PC sehingga akan menunjuk ke alamat informasi berikutnya yang akan dibutuhkan CPU. Jumlah bit dari PC sama persis dengan jumlah jalur bus alamat. Isi dari register ini dinyatakan dalam empat digit heksadesimal di mana enam bit teratas selalu nol karena hanya 10 bit jalur bus alamat. CCR atau condition code register adalah register dengan ukuran 8 bit, yang menyimpan indikator status dari hasil operasi CPU sebelumnya. Terdapat tiga bit teratas tidak digunakan dan selalu sama dengan logika satu. Instruksi percabangan menggunakan bit-bit status dalam register ini untuk mengerjakan suatu keputusan percabangan. Isi dari CCR ini adalah sebuah interrupt mask dan empat indikator status seperti pada gambar 4.1. Kelima flag tersebut adalah H atau half cary, N atau negative, Z atau zero, dan C atau carry/borrow. Flag H (half carry) digunakan untuk operasi aritmatika BCD (Binary Coded Decimal) dan dipengaruhi oleh kerja instruksi ADD dan ADC. Bit H ini akan set jika ada carry yang timbul dari digit heksadesimal 0-3 (low order) dan digit desimal 4-7 (high order). Bit I (interrupt mask) bukanlah status flag tetapi merupakan bit yang akan men-nonaktif-kan semua sumber interrupt yang maskable saat bit ini diset. Interrupt baru akan aktif jika bit ini nol. Jika ada interrupt eksternal yang terjadi saat bit I diset, maka interrupt tersebut akan di-latch dan akan diproses saat bit I dinolkan. Karena itu, interrupt yang terjadi tidak akan hilang. Setelah interrupt ditangani, instruksi RTI (return from interrupt) akan menyebabkan register ini dikembalikan ke nilai semula. Umumnya, bit I ini akan menjadi nol setelah instruksi RTI dilaksanakan. Flag N (negative) akan diset jika hasil dari operasi aritmatika, logika, maupun manipulasi data yang terakhir adalah negatif. Nilai negatif dalam two's complement ditandai jika bit MSB adalah satu. Flag Z (zero) diset jika hasil dari operasi aritmatika, logika, maupun manipulasi data terakhir adalah nol. Instruksi perbandingan (compare) akan mengurangi suatu harga dari suatu lokasi memori yang akan dites. Jika nilainya sama, maka bit Z ini akan diset. Flag C (carry/borrow) digunakan untuk menandai apakah ada carry dari hasil operasi tambah atau ada borrow darioperasi pengurangan. Instruksi shift dan rotate juga dapat memakai bit C ini. SP atau stack pointer digunakan sebagai pointer ke lokasi yang tersedia berikutnya dalam tumpukan stack dalam uruatn LIFO (last-in first-out). Stack ini dapat dianalogikan sebagai tumpukan kartu. Setiap kartu menyimpan satu byte (8 bit) informasi. Dalam suatu saat, CPU dapat menaruh satu kartu di atas tumpukan kartu tersebut maupun mengambil satu kartu dari tumpukan. Kartu di dalam tumpukan tidak dapat diambil kecuali jika kartu di atasnya sudah diambil sebelumnya. Stack mirip dengan tumpukan kartu ini hanya saja dalam fisiknya, stack mempunyai arah tumpukan ke bawah bukan ke atas seperti pada tumpukan kartu. SP akan menunjuk pada alamat stack yang akan tersedia berikutnya. Jika CPU menaruh informasi dalam stack, maka data tersebut akan dituliskan dalam memori yang ditunjukkan oleh nilai SP saat itu, dan kemudian nilai SP akan dikurangi satu sehingga SP akan menunjukkan ke lokasi memori berikutnya yang kosong untuk digunakan sebagai penyimpan berikutnya. Jika CPU mengambil data dari stack, SP akan ditambah satu sehingga menunjukkan ke lokasi stack yang terakhir, dan kemudian data diambil dan dibaca oleh CPU. Saat CPU pertama kali dihidupkan atau setelah instruksi Reset Stack Pointer (RSP), maka SP akan menunjukkan memori tertentu dalam RAM. Reset Reset digunakan untuk memaksa sistem mikrokontroler untuk menuju alamat tertentu. Sistem periperal dan sejumlah bit kontrol dan status juga dipaksa untuk menuju ke state awal sebagai hasil dari proses reset. Aksi-aksi berikut ini yang terjadi akibat proses reset dari mikrokontroler: 1. Semua register data direction (DDR) diset nol (input) 2. Nilai SP dipaksa menjadi $00FF 3. Bit I dalam CCR diset 4. Latch interrupt eksternal dinolkan 5. Latch STOP dinolkan 6. Latch WAIT dinolkan Kondisi-kondisi berikut ini yang akan menyebabkan mikrokontroler M68HC05 menjadi reset: 1. Sinyal input low pada kaki RESET 2. Reset karena pertama kali dihidupkan 3. Timer watchdog COP (computer operating properly) sudah habis 4. Usaha untuk menjalankan perintah dari suatu alamat yang tidak diperbolehkan