Recent Posts

Timer Untuk komputer

 
Kali ini saya ingin berbagi pengalaman, Kapan hari saya sedang santai di kos, eh kepikiran mumpung kuliah libur enakan main game aja biar gak jenuh, tapi ternyata saking keasikannya bermain, mata ngantuk pun tak terasa, akibatnya saya ketiduran, dan alhasil setelah bangun laptop saya menjadi seperti oven, panasnya bukan main.
Dari pengalaman itu saya mulai memikirkan bagaimana solusi agar kejadian tersebut tidak terulang kembali, setelah sekian lama saya berfikir, eh kok kepikiran waktu dirumah pas liat televisi.disana saya selalu mensetting televisi dengan timer, agar kalau saya ketiduran televisi bisa mati dengan sendiri, dari ide itu saya kepikiran bagaimana kalau hal tersebut saya aplikasikan ke laptop saya. Setelah berselancar di internet ternyata saya menemukan aplikasi yang pas untuk laptop saya, nama aplikasinya adalah TimeComX. Selain mudah dalam penggunaan, aplikasi ini juga ringan (tidak membuat komputer lemot ).maka dari itu sekarang saya tidak perlu khawatir lagi kalo sedang bermain game atau apa saja dengan laptop saya.Dikarenakan ada aplikasi Time ComX ini...




Teknopreneur

 
Teknopreneur, Apaan tuh ? Saat membaca kata teknopreneur, kemungkinan besar pikiran kita akan tertuju pada dua hal, teknologi dan entrepreneurship atau kewirausahaan.
Ya, teknopreneur memang didefinisikan sebagai entrepreneur yang mengoptimalkan segenap potensi teknologi yang ada sebagai basis pengembangan bisnis yang dijalankannya. namun, permasalahan mendasarnya, teknopreneur sendiri merupakan istilah yang masih asing di kalangan masyarakat Indonesia pada umumnya. – kecuali bagi mereka yang terus mengikuti segenap perkembangan bisnis dunia-.
selain itu, bagi mereka yang sudah mengenalnya pun masih ada yang salah kaprah memahaminya sebagai IT entrepreneur. well, it depend on which side you look at it.
Penulis sendiri pertama kali mendengar dan mengetahui teknopreneur ini ketika masih kuliah di semester 7 di Fisipol UGM. Berbekal modal sebagai salah satu pemenang lomba inovasi mahasiswa yang diselenggarakan UGM sejak tahun 2002, tim penulis berkesempatan untuk diundang menghadiri berbagai seminar dan workshop entrepreneur secara gratis yang diselenggarakan UGM, dengan mendatangkan entrepeneur dari dalam dan luar negeri sebagai narasumber.
Karena, ternyata, disamping punya tujuan menjadi research university, UGM juga mulai mengejar peluang sebagai entrepreneur university. poin kedua inilah yang ternyata sayangnya tidak banyak diketahui publik di lingjkungan UGM sendiri.
Yah, itu sisi lain yang tidak perlu diributkan di sini. Yang pasti, pengalaman paling berkesan bagi penulis adalah ketika yang menjadi narasumbernya adalah seorang Profesor dari Delft University of Technology Belanda yang juga menjadi seorang entrepreneur. Karena dari beliaulah penulis mendapat pemahaman awal tentang teknopreneur, dan bagaimana aplikasinya di negara Belanda sana (tengah menuju 3rd generation techno-starter loh).
Mungkin ada yang heran dan bertanya-tanya, memang apa yang dibuat oleh anak fisipol yang konon bicara dan bacaannya kebanyakan soal politik ini dalam kaitannya dengan bidang teknologi, lebih-lebih teknopreneur. Aah…paling salah seorang anggota timnya ada yang anak teknik atau IT sehingga bisa buat produk berbau teknologi.
Well, not quite true…but, tim penulis semuanya benar-benar gak ada yang berasal dari fakultas teknik, apalagi cabutan dari jurusan IT. alias 90 % murni anak fisipol+ 10 % anak ekonomi dan pendidikan lain universitas untuk cabutannya.
Yang kami buat cuma sebuah jurnal digital berformat CD-ROM berbalut offline website dengan content bertemakan teknologi, dakwah dan pendidikan. Loh?? politiknya kemana? koq cuma dalam bentuk CD-ROM, Kenapa bukan internet? jawaban penulis sederhana, justru politik itu yang menjadi substansi dari wujud jurnal digital itu sendiri. Karena, kami berangkat dari pemahaman politik bahwa “whoever control over technology nowadays, they’ll control todays world, and that’s the politics”.
ada begitu banyak alasan yang melatari pandangan politik ini, sebutlah salah satunya masalah yang melingkupi proses alih teknologi yang lebih merupakan sebentuk penghisapan bangsa asing atas sumberdaya ekonomi tanah air.
adapun dimensi politik dari pilihan tema yang kami angkat, yaitu teknologi, dakwah dan pendidikan, karena kami ingin menyampaikan pada publik bahwa perkembangan teknologi, software dan hardwarenya bisa mendayagunakan segenap potensi anak bangsa untuk jadi lebih maju tanpa terlalu banyak tergantung dari luar, dan dakwah, untuk menunjukkan bahwa inilah cara kami menyampaikan pesan politik kami terhadap kecenderungan hari esok, bahwa siapa yang tidak bisa menguasai teknologi minimal untuk dirinya sendiri, ia akan dimanfaatkan oleh orang yang memiliki dan mengendalikan teknologi tersebut, setidaknya dalam bentuk harga yang mahal.
Serta pendidikan, karena kami mendapati bahwa masyarakat dunia saat ini tengah bertransisi dari masyarakat industri ke masyarakat pengetahuan. oleh karena itu, pendidikan menjadi bahan bakar utama untuk menjadikan setiap anak bangsa lebih berpengetahuan, pengetahuan untuk mengoptimalkan dan mendayagunakan segenap sumberdaya yang ada. Karenanya, jurnal digital ini di rancang sebagai basis referensi dalam kerangka pendidikan untuk mengoptimalkan segenap perkembangan teknologi saat ini sebagaimana telah disampaikan sebelumnya.
Adapun mengapa bentuknya CD-ROM dan bukan internet berwujud online website misalnya, karena CD-ROM kami rasa saat ini lebih cocok menjadi teknologi tepat guna yang rendah biayanya, berkapasitas besar (650 Mb itu kira-kira bisa sama dengan seluruh isi perpustakaan sebuah universitas, dan bisa lebih) dan dapat menjembatani kesenjangan digital antar masyarakat di berbagai pulau di Indonesia, lebih-lebih daerah pedalaman.
Yah, Alhamdulillah jika saat ini sudah ada perusahaan telekomunikasi yang melakukan gerakan internet goes to school untuk sekolah-sekolah di berbagai daerah di tanah air. Tapi hal ini tetap tidak bisa mengatasi kesenjangan digital yang terjadi dalam waktu singkat. ibaratnya, anak bangsa ini langsung di ajarin buat pesawat dan bukannya mulai dari membuat sepeda, motor ataupun mobil. Dalam banyak kasus kesenjangan digital di tanah air ini, jangankan bisa menjelajah di internet. bisa menggunakan dan mengoperasikan komputer saja sudah syukur Alhamdulillah.
yah, memang tidak jarang kami mendapat kritik dari teman-teman kami, baik yang dikenal maupun tidak, yang berlatar belakang teknik dan web design terkait performa tampilan isinya maupun dari teman-teman yang berlatar belakang disiplin ilmu lainnya.
yah, buat kami yang memang belum dan tidak begitu paham dunia teknologi, hal demikian justru menjadi ruang-ruang belajar yang lebih luas bagi kami untuk mengaitkan hubungan politik dan teknologi, sampai saat ini.
trus, apa hubungannya cerita politik di atas dengan teknopreneur ? bukannya teknopreneur itu bicara soal bisnis dan ekonomi terkait teknologi? well, again, it depend on which side you look at it.
Bagi penulis pribadi, apa yang sudah kami lakukan itu sendiri merupakan ciri seorang teknopreneur. Bayangkan, kami menggunakan teknologi untuk membuat produk teknologi dengan content dan tujuan sebagaimana telah disampaikan sebelumnya.
lalu, karena ini juga dakwah, berarti ada upaya penyebarluasan, dan pendidikan, dalam artian luas sebagai dasar pencapaian tujuan politiknya. dan karenanya, sebagian CD kami jual dalam sejumlah event dan sebagian lain kami beri gratis untuk menjalin kerjasama dan dukungan (ilmu, modal materi dan kebijakan) dari berbagai pihak di dalam dan luar negeri. bukankah hal ini sudah menunjukkan aplikasi bisnis dasar dari teknopreneur dunia? bukankah sekarang banyak bisnis yang menawarkan free trial sebelum melangkah ke aksi beli atau menjalin kerjasama. well, that’s how business going.
You cannot sell technology until your costumer feel its benefit and help much in doing their activity. bukankah untuk itu teknologi hadir?
sampai tahap tertentu, penulis jadi terpikir sebuah konsep ekonomi-politik teknologi untuk memahami tindakan yang kami lakukan. tapi, biarlah itu jadi bahasan topik yang lain lagi.
Dan, kembali ke bahasan awal kita tentang teknopreneur. jadi, siapa pun sebetulnya bisa menjadi teknopreneur. tanpa harus terjebak apakah teknopreneur itu IT entrepreneur ataukah lainnya.
Dengan kata lain, yang ingin penulis sampaikan adalah bahwa apapun teknologi yang kamu kuasai, kamu bisa mengolahnya menjadi sesuatu yang bernilai untuk diapresiasi orang lain.
dan juga, tergantung pada niatan awal, apakah sebagai teknopreneur, apa yang dijual tersebut mendorong kemajuan dan kemudahan bagi manusia ataukah menjadi sesuatu yang bersifat ‘waste resources just for hedonism pleasure’. well, it’s your choice.
Sumber: http://fathoni.wordpress.com/2007/02/15/teknopreneur-apaan-tuh/
Ditulis dalam Ekonomi

Pengertian RAM

 

A. PENGERTIAN RAM

RAM atau Random Access Memory merupakan merupakan sebuah media penyimpanan data sementara pada komputer. RAM merupakan media penyimpanan yang bersifat volatile, ketika tidak ada pasokan arus listrik ke media tersebut maka data yang tersimpan akan hilang. Oleh karena itu setiap kali komputer akan dimatikan, data yang tersimpan di RAM akan disalin terlebih dahulu ke media penyimpanan permanen seperti harddisk yang tidak membutuhkan listrik untuk mempertahankan data yang tersimpan.
B. SEJARAH RAM
Dari awal mulanya sampai sekarang RAM telah banyak mengalami perubahan, mulai dari bentuk, kapasitas, kecepatan dan teknologi pada RAM yang ada saat ini sudah jauh berbeda dengan RAM generasi awal. Berikut adalah sejarah perkembangan dari awal ditemukannya RAM.
1. RAM
Ditemukan pertama kali oleh Robert Dennard, di produksi besar-besaran pada tahun 1968, dan dari sinilah sejarah ram bermula. RAM membutuhkan tegangan 5.0 volt untuk dapat berjalan pada frekuensi 4,77MHz, dengan waktu akses memori (access time) sekitar 200ns (1ns = 10-9 detik). RAM generasi pertama ini menggunakan slot 30 pin pada motherboard.
2. DRAM
IBM menciptakan sebuah memory yang di namai DRAM pada tahun 1970, DRAM sendiri merupakan singkatan dari Dynamic Random Access Memory, DRAM mempunyai frekuensi kerja yang bervariasi, yaitu antara 4,77MHz hingga 40MHz.
3. FPM  DRAM
Memori jenis ini bekerja layaknya sebuah indeks atau daftar isi. Arti Page itu sendiri merupakan bagian dari memori yang terdapat pada sebuah row address. Ketika sistem membutuhkan isi suatu alamat memori, FPM tinggal mengambil informasi mengenainya berdasarkan indeks yang telah dimiliki. FPM memungkinkan transfer data yang lebih cepat pada baris (row) yang sama dari jenis memori sebelumnya. FPM bekerja pada rentang frekuensi 16MHz hingga 66MHz dengan access time sekitar 50ns. Selain itu FPM mampu mengolah transfer data (bandwidth) sebesar 188,71 Mega Bytes (MB) per detiknya. FP RAM ini ditemukan sekitar tahun 1987. Memory ini digunakan oleh sistem berbasis Intel 286, 386 serta sedikit 486.
4. EDO DRAM
EDO DRAM (extended data output dynamic random access memory) diciptakan pada tahun 1995. Memory ini merupakan penyempurnaan dari FPM, EDO dapat mempersingkat read cycle-nya sehingga dapat meningkatkan kinerjanya sekitar 20 persen. EDO mempunyai access time yang cukup bervariasi, yaitu sekitar 70ns hingga 50ns dan bekerja pada frekuensi 33MHz hingga 75MHz. Walaupun EDO merupakan penyempurnaan dari FPM, namun keduanya tidak dapat dipasang secara bersamaan, karena adanya perbedaan kemampuan. Intel 486 dan kompatibelnya serta Pentium generasi awal adalah sistem basis yang menggunakan EDO DRAM. Slot yang digunakan pada motherboard memiliki 72 pin.
EDO RAM
5. SDRAM
Kingston menicptakan SDRAM pada peralihan tahun 1996-1997, modul ini dapat bekerja pada kecepatan (frekuensi) bus yang sama / sinkron dengan frekuensi yang bekerja pada prosessor. SDRAM ini kemudian lebih dikenal sebagai PC66 karena bekerja pada frekuensi bus 66MHz. Berbeda dengan jenis memori sebelumnya yang membutuhkan tegangan kerja yang lumayan tinggi, SDRAM hanya membutuhkan tegangan sebesar 3,3 volt dan mempunyai access time sebesar 10ns.
Selang kurun waktu setahun setelah PC66 diproduksi dan digunakan secara masal, Intel membuat standar baru jenis memori yang merupakan pengembangan dari memori PC66. Dengan menggunakan tegangan kerja sebesar 3,3 volt, memori PC100 mempunyai access time sebesar 8ns, lebih singkat dari PC66. Selain itu memori PC100 mampu mengalirkan data sebesar 800MB per detiknya.
Selain dikembangkannya memori RDRAM PC800 pada tahun 1999, memori SDRAM belumlah ditinggalkan begitu saja, bahkan oleh Viking, malah semakin ditingkatkan kemampuannya. Sesuai dengan namanya, memori SDRAM PC133 ini bekerja pada bus berfrekuensi 133MHz dengan access time sebesar 7,5ns dan mampu mengalirkan data sebesar 1,06GB per detiknya. Walaupun PC133 dikembangkan untuk bekerja pada frekuensi bus 133MHz, namun memori ini juga mampu berjalan pada frekuensi bus 100MHz walaupun tidak sebaik kemampuan yang dimiliki oleh PC100 pada frekuensi tersebut.
Perkembangan memori SDRAM semakin menjadi – jadi setelah Mushkin, pada tahun 2000 berhasil mengembangkan chip memori yang mampu bekerja pada frekuensi bus 150MHz, walaupun sebenarnya belum ada standar resmi mengenai frekunsi bus sistem atau chipset sebesar ini. Masih dengan tegangan kerja sebesar 3,3 volt, memori PC150 mempunyai access time sebesar 7ns dan mampu mengalirkan data sebesar 1,28GB per detiknya. Memori ini sengaja diciptakan untuk keperluan overclocker, namun pengguna aplikasi game dan grafis 3 dimensi, desktop publishing, serta komputer server dapat mengambil keuntungan dengan adanya memori PC150. Slot yang digunakan pada motherboard memiliki 168 pin.
sdram
6. DR RAM
Pada tahun 1999, Rambus menciptakan sebuah sistem memori dengan arsitektur baru dan revolusioner, berbeda sama sekali dengan arsitektur memori SDRAM.Oleh Rambus, memori ini dinamakan Direct Rambus Dynamic Random Access Memory. Dengan hanya menggunakan tegangan sebesar 2,5 volt, RDRAM yang bekerja pada sistem bus 800MHz melalui sistem bus yang disebut dengan Direct Rambus Channel, mampu mengalirkan data sebesar 1,6GB per detiknya!
Masih dalam tahun yang sama, Rambus juga mengembangkan sebuah jenis memori lainnya dengan kemampuan yang sama dengan DRDRAM. Perbedaannya hanya terletak pada tegangan kerja yang dibutuhkan. Jika DRDRAM membutuhkan tegangan sebesar 2,5 volt, maka RDRAM PC800 bekerja pada tegangan 3,3 volt.
RDRAM
7. DDR SDRAM
Pada tahun 2000, Crucial berhasil mengembangkan kemampuan memory SDRAM menjadi 2 kali lipat. Teknik yang digunakan adalah dengan menggunakan secara penuh satu gelombang frekuensi. Jika pada SDRAM biasa hanya melakukan instruksi pada gelombang positif saja, maka DDR SDRAM menjalankan instruksi baik pada gelombang positif maupun gelombang negatif. Oleh karena dari itu memori ini dinamakan DDR SDRAM yang merupakan kependekan dari Double Data Rate Synchronous Dynamic Random Access Memory. Dengan memori DDR SDRAM, sistem bus dengan frekuensi sebesar 100 – 133 MHz akan bekerja secara efektif pada frekuensi 200 – 266 MHz. DDR SDRAM pertama kali digunakan pada kartu grafis AGP berkecepatan ultra. Sedangkan penggunaan pada prosessor, AMD ThunderBird lah yang pertama kali memanfaatkannya. Slot yang digunakan pada motherboard memiliki 184 pin.
DDR
7. DDR2 SDRAM
Ketika memori jenis DDR (Double Data Rate) dirasakan mulai melambat dengan semakin cepatnya kinerja prosesor dan prosesor grafik, kehadiran memori DDR2 merupakan kemajuan logis dalam teknologi memori mengacu pada penambahan kecepatan serta antisipasi semakin lebarnya jalur akses segitiga prosesor, memori, dan antarmuka grafik (graphic card) yang hadir dengan kecepatan komputasi yang berlipat ganda.
Perbedaan pokok antara DDR dan DDR2 adalah pada kecepatan data serta peningkatan latency mencapai dua kali lipat. Perubahan ini memang dimaksudkan untuk menghasilkan kecepatan secara maksimum dalam sebuah lingkungan komputasi yang semakin cepat, baik di sisi prosesor maupun grafik.
Selain itu, kebutuhan voltase DDR2 juga menurun. Kalau pada DDR kebutuhan voltase tercatat 2,5 Volt, pada DDR2 kebutuhan ini hanya mencapai 1,8 Volt. Artinya, kemajuan teknologi pada DDR2 ini membutuhkan tenaga listrik yang lebih sedikit untuk menulis dan membaca pada memori.
Teknologi DDR2 sendiri lebih dulu  digunakan pada beberapa perangkat antarmuka grafik, dan baru pada akhirnya diperkenalkan penggunaannya pada teknologi RAM. Dan teknologi DDR2 ini tidak kompatibel dengan memori DDR sehingga penggunaannya pun hanya bisa dilakukan pada komputer yang memang mendukung DDR2. Slot yang digunakan pada motherboard memiliki 240 pin.
DDR2
8. DDR3 SDRAM
RAM DDR3 ini memiliki kebutuhan daya yang berkurang sekitar 16% dibandingkan dengan DDR2. Hal tersebut disebabkan karena DDR3 sudah menggunakan teknologi 90 nm sehingga konsusmsi daya yang diperlukan hanya 1.5v, lebih sedikit jika dibandingkan dengan DDR2 1.8v dan DDR 2.5v. Secara teori, kecepatan yang dimiliki oleh RAM ini memang cukup memukau. Ia mampu mentransfer data dengan clock efektif sebesar 800-1600 MHz. DDR3 memiliki clock internal 400-800 MHz, jauh lebih tinggi dibandingkan DDR2 200- 533 dan DDR sebesar 100-300 MHz. Prototipe dari DDR3 yang memiliki 240 pin. Ini sebenarnya sudah diperkenalkan sejak lama pada awal tahun 2005. Namun, produknya sendiri benar-benar muncul pada pertengahan tahun 2007 bersamaan dengan motherboard yang menggunakan chipset Intel P35 Bearlake dan pada motherboard tersebut sudah mendukung slot DDR3. Slot yang digunakan pada motherboard memiliki jumlah pin yang sama dengan slot DDR2 SDRAM, tapi posisi notchnya berbeda sehingga seharusnya tidak bisa memasang modul DDR3 SDRAM pada slot DDR2. Hal ini sengaja dilakukan karena secara elektrikal modul DDR2 dengan DDR2 memiliki tegangan yang berbeda.
DDR3
9. SO-DIMM
Small Outline Dual In-Line Memory Module (SO-DIMM) merupakan jenis memory yang digunakan pada perangkat notebook. Bentuk fisiknya kira-kira setengah dari besar DDR biasa sehingga dapat lebih menghemat ruang yang tentunya  sangat berharga pada perangkat mobile seperti notebook. Perkembangan generasi SO-DIMM biasanya sejalan dengan perkembangan RAM untuk komputer desktop. Ketika DDR3 SDRAM diluncurkan dipasaran, DDR3 SO-DIMM juga ikut diluncurkan. Modul tersebut menggunakan slot yang memiliki 204 pin. Lebih sedikit daripada DDR3 SDRAM.
SODIMM
C. TIMING RAM
Timing pada RAM merupakan ukuran waktu delay yang terjadi ketika prosesor berusaha mengakses data yang ada di RAM. Hal ini terjadi karena prosesor modern saat ini memiliki frekuensi kerja yang jauh lebih cepat dari pada RAM. Timing merupakan salah satu ukuran yang menentukan kecepatan sebuah modul RAM selain bandwidth. Semakin ketat timing RAM dan semakin besar bandwith maksimal yang bisa dicapai, maka semakin cepat kinerja dari RAM tersebut. Namun tentu saja kedua aspek ini biasanya bertolak belakang, jika ingin mendapatkan timing yang ketat, kita harus menurunkan bandwidthnya agar komputer tetap stabil. Begitu pula sebaliknya, untuk mencapai bandwidth yang lebih tinggi, timing harus dibuat lebih longgar.
Pada modul RAM modern saat ini, biasanya sudah disertakan Serial Presence Detect (SPD) yang berisi pengaturan timing RAM secara otomatis yang disarankan oleh produsennya pada frekuensi kerja tertentu. Namun pengguna komputer dapat mengaturnya secara manual melalui pengaturan yang ada di dalam BIOS. Hal ini merupakan hal yang paling sering dilakukan pada saat mengoverclock RAM agar bisa dicapai bandwidth setinggi mungkin dengan timing seketat mungkin. Ada 5 jenis timing RAM yang paling sering diotak-atik oleh para overclocker karena memiliki dampak yang paling besar terhadap kinerja dan kestabilan, yaitu :
1. CAS Latency (CL)
CAS Latency merupakan delay waktu yang terjadi ketika memory controller memerintahkan kepada RAM untuk mengakses suatu data yang terletak pada kolom dan baris tertentu sampai data tersebut mencapai pin yang ada pada modul RAM sehingga dapat langsung ditransfer ke prosesor.
2. tRCD (Row Address to Column Address Delay Time)
tRCD merupakan jumlah siklus clock yang dibutuhkan untuk membuka baris memory dan mengakses kolom yang terdapat di dalamnya.
3. tRP (Row Percharge Time)
tRP merupakan jumlah siklus clock yang dibutuhkan untuk precharge command sampai mengakses baris memory berikutnya.
4. tRAS (Row Access Strobe Time)
tRAS merupakan jumlah siklus clock yang dibutuhkan antara bank active command dan terjadinya precharge command. Biasanya besarnya merupakan jumlah dari CL+tRCD+tRP.
5. Command Rate (CR)
Command Rate merupakan jumlah siklus clock yang dibutuhkan untuk menemukan barisan pertama data yang ingin dicari.
Biasanya pada sebuah modul RAM, timing dituliskan dengan format CL-tRCD-tRP-tRAS CR. Misalnya sebuah modul ram DDR2 dengan kapasitas 2GB yang bekerja pada frekuensi 800MHz membutuhkan tegangan 1,8v dan mempunyai CL 5, tRCD 5, tRP 5, tRAS 15 dan CR 1T, pada spesifikasi modul ram tersebut akan dituliskan :
DDR-2 PC6400 2048MB 5-5-5-15 1T 1,8v
D. DUAL-CHANNEL MEMORY
Teknologi dual-channel membuat jalur data dari RAM ke memory controller. Dual-channel menggunakan dua jalur 64-bit sehingga diabung menjadi 128-bit.
Dual channel memory membutuhkan minimal dua modul SDRAM, DDR SDRAM, DDR2 SDRAM, maupun DDR3 SDRAM atau lebih. Modul memory tersebut dipasang pada slot yang ada di jalur data yang sama, biasanya pada motherboard, slot tersebut diberi warna sama dengan tujuan untuk memudahkan. Untuk menjalankan dual channel sebenarnya tidak diharuskan identik semuanya, namun bandwidth dan kompatibilatas akan maksimal jika modul yang digunakan identik. Identik di sini dimaksudkan bukan dalam hal merk, tapi dari jenis chip yang digunakan, serta kecepatan dan timingnya. Perbedaan kapasitas masih bisa ditoleransi.
Walaupun secara teori, dual-channel membuat jalur data RAM menjadi dua kali lipat, pada performa sebenarnya, biasanya hanya didapat kenaikan kinerja sistem sebesar 5% pada aplikasi yang menggunakan RAM secara intensif. Dual channel memory akan lebih dirasakan pada penggunaan kartu grafis terintegrasi karena mengambil buffer memory dari RAM utama. Kenaikan kinerja yang dirasakan sekitar 15%. Pada motherboard untuk processor intel, posisi slot RAM yang support dual-channel adalah yang selang-seling. Sedangkan pada motherboard untuk processor amd, slot RAM untuk konfigurasi dual-channel posisinya bersebelahan.
dual channel intel
Konfigurasi slot ram untuk dual-channel pada motherboard intel (warna yang sama)
dual channel amd
Konfigurasi slot ram untuk dual-channel pada motherboard AMD (warna yang sama)
E. TRIPLE-CHANNEL MEMORY
Saat Intel memperkenalkan prosesor terbarunya, Intel Core i7, produsen prosesor terbesar di dunia ini memasangkan teknologi triple-channel memory pada prosesor tersebut. Prinsip kerjanya sama mirip dengan dual-channel memory namun modul memory yang digunakan di sini adalah DDR3 SDRAM dan minimal menggunakan 3 buah modul. Jika yang dipasangkan hanya dua buah modul memory, akan otomatis dijalankan dual-channel memory saja. Klaim dari intel, dengan menggunakan DDR3 1066 pada mode triple-channel, secara teoritis dapat mencapai bandwidth 25,6 GB/s. Hal ini merupakan salah satu faktor mengapa prosesor Intel Core i7 sangat bertenaga pada aplikasi yang membutuhkan bandwidth memory yang besar seperti game. Ditambah lagi dimulai sejak Core i7, akses ke RAM langsung dari prosesor karena memory controller sudah ditanamkan langsung ke dalam prosesor, sehingga jalur data yang dilewati menjadi lebih pendek. Teknologi ini diadopsi oleh Intel dari arsitektur sistem dengan prosesor AMD yang sudah lama menerapkannya. Pada prosesor Intel generasi sebelumnya, untuk mengakses RAM, prosesor harus melewati chipset northbridge terlebih dahulu karena memory controller ditanamkan di dalam chipset. Motherboard untuk Core i7 dan mendukung teknologi triple-channel memory yang tersedia saat ini hanya ada yang menggunakan chipset intel x58 dengan socket LGA-1366. Konfigurasinya masih tipikal motherboard intel sebelumnya, yaitu posisi slot selang seling namun kali ini tersedia 6 slot RAM sehingga dapat menampung hingga kapasitas 24GB.
triple channel intel
Konfigurasi slot ram untuk triple-channel pada motherboard intel (warna yang sama)
F. PEMANFAATAN RAM LAINNYA
Pada sebuah komputer modern yang ada saat ini, kinerja sistem sangat terhambat oleh lambatnya kecepatan harddisk konvensional karena belum sepenuhnya menggunakan komponen elektronik. Untuk menyimpan data, harddisk menggunakan pringan magnetik yang diputar oleh motor elektrik. Baru-baru ini, sebuah perusahaan produsen produk-produk IT, Gigabyte, mengenalkan sebuah solusi untuk memperbaiki masalah ini. Produk tersebut diberi nama i-Ram, menggunakan maksimal 4 buah modul memory DDR SDRAM yang dipasangkan pada papan khusus menggunakan interface PCI. Memory ini dapat difungsikan sebagai tempat penyimpanan data secara permanen karena menggunakan baterai. Sehingga ketika komputer dimatikan, data yang masih tetap tersimpan. Biasanya i-Ram ini digunakan untuk menginstal  sistem operasi sehingga dapat menghindari penggunaan harddisk untuk sistem utama yang kecepatannya masih sangat pelan dibanding kecepatan RAM yang digunakan. Sangat disayangkan produk tersebut saat ini sudah tidak diproduksi lagi karena kurang mendapat sambutan dari pasar. Padahal produk ini termasuk salah satu teknologi inovatif. Apalagi sekarang harga modul DDR2 SDRAM sudah sangat murah, dah limitasi bandwidth yang dimilik slot PCI bisa diselesaikan dengan menggunakan slot PCI-Express x1 yang memiliki bandwidth jauh lebih besar. Kemunculan genrasi awal solid state disk sebagai pengganti harddisk juga merupakan satu alasan mengapa produk ini dihentikan pengembangannya.
iram

RAM (Random Access Memory)

RAM (Random Access Memory)

  • Visipro DDR 128Mb PC266 Unbuffered.
  • Visipro DDR2 512MB PC3200 ECC Registered.
  • Visipro DDR2 1GB PC3200 Unbuffered.
  • Visipro DDR SODIMM 256MB PC2700 Unbuffered.

Deretan informasi diatas menerangkan spesifikasi device pada sistem komputer, yang disebut Memory (atau RAM).
Memory biasanya disebut sebagai RAM, singkatan dari Random Access Memory. Memory berfungsi sebagai tempat penyimpanan data sementara. Memory bekerja dengan menyimpan & menyuplai data-data penting yg dibutuhkan Processor dengan cepat untuk diolah menjadi informasi. Karena itulah, fungsi kapasitas merupakan hal terpenting pada memory. Dimana semakin besar kapasitasnya, maka semakin banyak data yang dapat disimpan dan disuplai, yang akhirnya membuat Processor bekerja lebih cepat. Suplai data ke RAM berasal dari Hard Disk, suatu peralatan yang dapat menyimpan data secara permanen.
Ilustrasi Cara Kerja Memory
Cara kerja Processor dalam sistem Kompute


Pada saat kita menyalakan komputer, device yang pertama kali bekerja adalah Processor. Processor berfungsi sebagai pengolah data dan meminta data dari storage, yaitu Hard Disk (HDD). Artinya data tersebut dikirim dari Hard Disk setelah ada permintaan dari Processor.
Tapi prakteknya hal ini sulit dilakukan karena perbedaan teknologi antara Processor & Hard Disk. Processor sendiri adalah komponen digital murni, dan akan memproses data dengan sangat cepat (Bandwidth tertinggi P4 saat ini 6,4 GB/s dengan FSB 800MHz). Sedangkan Hard Disk sebagian besar teknologinya merupakan mekanis yang tentu cukup lambat dibandingkan digital (Bandwidth atau Transfer Rate HDD Serial ATA berkisar 150 MB/s). Secara teoritis kecepatan data Processor berkisar 46x lebih cepat dibanding HDD. Artinya, apabila Processor menunggu pasokan data dari HDD akan terjadi “Bottle-Neck” yang sangat parah.
Untuk mengatasi keadaan itu, diperlukan device Memory Utama (Primary Memory) atau disebut RAM. RAM merupakan singkatan dari Random Access Memory. RAM berfungsi untuk membantu Processor dalam penyediaan data “super cepat” yang dibutuhkan. RAM berfungsi layaknya seperti HDD Digital, karena seluruh komponen RAM sudah menggunakan teknologi digital. Dengan RAM, maka Processor tidak perlu menunggu kiriman data dari HDD. Saat ini RAM DDR2 mempunyai bandwidth 3,2 GB/s (PC400), agar tidak menganggu pasokan maka saat ini Motherboard menggunakan teknologi Dual Channel yang dapat melipatgandakan bandwidth menjadi 2x dengan memperbesar arsitektur menjadi 128-bit. Itu artinya, 2 keping DDR2 dalam mode Dual Channel dapat memasok data dalam jumlah yang pas ke Processor (3,2 GB/s x Dual Channel = 6,4 GB/s).
Faktor-faktor Penting pada RAM
  • Type menerangkan jenis (variasi) RAM berdasarkan teknologi yang digunakannya, seperti SDRAM, DDR atau DDR2. Hal ini kadang juga disebut sebagai “interface”. Contoh : Visipro DDR 256Mb PC266 berarti menggunakan teknologi DDR.
Gambar faktor-faktor Penting pada RAM

  • Capacity menerangkan seberapa besar kapasitas penyimpanan data RAM dalam satuan Gigabyte (GB) atau Megabyte (MB). Kapasitas merupakan faktor terpenting pada sebuah RAM karena fungsiny sebagai penyimpan data. Contoh : Visipro DDR2 512Mb PC4300 berarti memiliki kapasitas 512 Megabyte.
  • FSB (singkatan dari Front Side Bus), yaitu besar jalur data antara Processor dam RAM dalam satuan Megahertz. Satuan FSB Processor dan RAM harusnya memiliki angka yg sama agar data dapat ditransfer secara optimal [Lihat pada tabel Dual Channel RAM]. Contoh : Visipro DDR2 256MB PC3200 berarti memiliki FSB 400MHz (PC3200 dibagi 8 byte).
  • Fungsi, menerangkan fungsi dari RAM, seperti Unbuffered (digunakan pada Desktop), ECC, atau Registered (keduanya digunakan pada Server). [Lihat pada segmen Apa itu Unbuffered, ECC dan Registered ?] Unbuffered merupakan tipe RAM biasa yg digunakan oleh komputer secara umum, ECC (Error Correction Code) biasa dipakai pada komputer Workstation / Low End Server & ECC Registered umum dipakai pada Medium to High End Server. Contoh : Visipro DDR2 1GB PC4300 ECC Registered artinya memiliki fungsi ECC Registered pada modulnya.
  • Bandwith merupakan besarnya data yang dapat ditransfer atau diolah dalam waktu satu detik (satuan MB/s atau Megabyte per-secon). Umumnya saat ini RAM DDR/DDR2 mencantumkan bandwidth pada Module RAM. Bandwidth bisa didapat dari perkalian FSB x Arsitektur. Arsitektur RAM adalah 64-bit (8byte), sehingga jika DDR PC266 memiliki FSB 266 MHz sama dengan 266 MHz x 8 byte = 2100 MB/s. Ini artinya bahwa DDR PC266 (FSB) sama dengan DDR PC2100 (Bandwidth). Contoh : Visipro DDR2 512MB PC4300 artinya memiliki bandwidth 4300MB/s.

Contoh Tabel Bandwidth

  • Jumlah IC menerangkan berapa banyak chip (IC) yg dipasang pada module RAM. Semakin sedikit jumlah IC-nya, semakin tinggi densitas (kapasitas per-IC). Umumnya adalah 4, 8, 16 IC (pada RAM standar). Pada RAM ECC memiliki jumlah IC 9 & 16, dan pada ECC Registered memiliki jumlah IC 9 & 16 ditambah 1 ICC yg berfungsi sebagai Registered. Contoh : Visipro DDR 256MB dapat memiliki 4, 8 atau 16 IC. Apabila menggunakan 4IC artinya densitas IC = 64MB, 8IC = 32MB & 16IC = 16MB.
* IC yang dipasang hanya pada satu sisi keping RAM disebut Single-Side (4, 8, 9 IC), sedangkan yang dipasang pada dua keping RAM disebut Double-Side (16 & 18 IC).
Sebuah tabel konfigurasi jumlah IC

Apa itu SDRAM, DDR dan RDRAM ?
  • SDRAM (Synchronous Dynamic RAM) - Type RAM yg dibuat pada tahun 1996. SDRAM merupakan RAM yg sangat legendaris, dan mampu bertahan lama dalam perkembangan system komputer. Sesuai dengan namanya SDRAM mempunyai term Synchronous Dynamic, yaitu kemampuan RAM untuk menyamai clock dengan clock processor. Jika clock RAM dan processor sama, maka system komputer akan berjalan seimbang karena aliran data diantara keduanya berjalan lancar. Karakteristik teknis SDRAM memiliki 168-pin, 3.3V & FSB 100/133 MHz. Saat ini SDRAM sudah tidak dipakai lagi oleh platform komputer, terakhir digunakan pada Pentium 4 versi generasi pertama. Tipe-tipe SDRAM : SDRAM 32, 64, 128, 256, 512MB PC100/133.
  • DDR (Double Data Rate) - Type RAM yg merupakan pengembangan lanjut dari teknologi SDRAM. DDR dibuat pada tahun 2000. DDR pertamakali dibuat sebagai pesaing utama dari memory RDRAM yg dikembangkan Intel dan Rambus pada awal generasi Pentium 4, dan saat ini menjadi mainstream dari platform komputer. Karakteristik teknis DDR adalah 184-pin, 2.5V & FSB 266/333/400 MHz. Secara teori DDR mempunyai kemampuan pengolahan dua kali lipat dibandingkan SDRAM, karena mampu membawa 2 bit pada satu clock-nya -dibandingkan SDRAM yg hanya 1 bit. DDR masih digunakan pada berbagai platform yang ada, seperti Pentium 4 & Celeron D dan akan segera digantikan dengan teknologi DDR2. Tipe-tipe DDR : DDR 128, 256, 512, 1.024MB PC2100/2700/ 3200.
  • DDR2 (Double Data Rate Generation 2) - DDR2 merupakan generasi lanjutan dari DDR dengan perbaikan berbagai fitur, seperti penggunakan IC BGA (Ball Grid Array) yg tahan panas & memiliki densitas tinggi serta FSB yang lebih tinggi. Karakteristik teknis DDR2 adalah 240-pin, 1.8V & FSB 400/533/667/ 800 MHz. DDR2 memiliki kapasitas yang lebih besar dari DDR, dimana nantinya bisa mencapai 2GB / modul. Dan saat ini DDR2 akan menjadi standar untuk semua platform Intel 2006 dan seterusnya. Tipe-tipe DDR2 : DDR 256, 512, 1.024MB PC3200/4300/ 5300/6400.
  • RDRAM (Rambus Dynamic RAM) - Type RAM yg pertamakali dibuat tahun 1999. RDRAM merupakan RAM yg menggunakan teknologi baru yg dikembangkan oleh perusahaan bernama Rambus. RDRAM mempunyai kemampuan bandwidth yg menyamai kebutuhan bandwidth pada processor Intel Pentium 4. Teknologi Dual Channel pertamakali diperkenalkan oleh RDRAM. Berbeda dengan yg lain RDRAM mempunyai tipe pengolahan Serial, dibanding SDRAM & DDR yg mengolah secara Paralel. Karakteristik teknis dari RDRAM adalah 184-pin, 2.5V & FSB 800, 1.066 dengan aristektur 16-bit (2 byte). Saat ini semua tipe RDRAM tidak digunakan lagi pada komputer karena harganya yg terlalu mahal dan performance- nya sudah dapat disamai oleh DDR/DDR2. Tipe-tipe RDRAM : RDRAM 64, 128, 256, 512MB PC800/1.066 MHz.
Mengapa disebut sebagai RAM ?

Gambar berbagai Variasi Memory

Penyebutan RAM untuk membedakannya dengan variasi memory lain pada komputer, karena ada terdapat beberapa jenis pada sistemnya.
RAM (Random Access Memory), sesuai dengan namanya berarti Memory yg dapat mengakses data secara acak (random). Itu artinya data dapat diakses dengan lebih cepat, karena controller memory dapat langsung menuju tempat bit data disimpan secara langsung –lalu mengaksesnya.
Beberapa variasi Memory pada komputer :
  • Cache Memory, memory yang terletak pada Processor.
  • Cache Buffer, memory yang terletak Hard Disk.
  • Flash Memory, memory non-volatile yang dipakai sebagai eksternal/internal storage pada device tertentu, seperti PDA.
  • CMOS (BIOS), suatu memory pada Motherboard yang berfungsi sebagai pengenal setiap device yg di-install pada MB tsb.

Apa itu Dynamic RAM ?
RAM yang dinamis adalah satu variasi integrated circuit (chip) yang digunakan pada RAM. Dynamic RAM hanya dapat menyimpan data apabila ada tenaga (power) yang diberikan padanya (refresh). Apabila tenaganya hilang, maka data yang dismpan juga akan hilang dengan sendirinya. Untuk itu dibutuhkan suplai tenaga terus-menerus agar RAM bekerja sebagaimana mestinya. Hal inilah yang disebut sebagai istilah Volatile.
Lawan dari Dynamic RAM adalah Static RAM (SRAM). Static RAM biasanya digunakan pada Cache Memory & Cache Buffer. Static RAM berharga mahal karena bekerja super-cepat dalam mentransfer data.


Gambar sebuah Static RAM (Cache Memory pada Processor)
Apa itu Unbuffered, ECC dan Registered ?

Gambar sebuah DDR ECC Registered
  • Unbuffered menerangkan istilah RAM yg biasa digunakan pada platform desktop. Unbuffered merupakan RAM yang ‘jenis biasa’, dan istilah ini jarang digunakan. Umumnya semua tipe RAM biasa (baik DDR maupun DDR2) merupakan tipe Unbuffered.
  • ECC merupakan singkatan dari Error Correction Code, merupakan suatu fungsi yg dapat melakukan pengecekan error dua bit data, dan mengkoreksi satu bit dari data yang error tersebut. ECC dapat di-analogikan sebagai Satuan Pengamanan (Security Officer) yang bertugas melakukan pengecekan setiap pengunjung yang masuk kesuatu gedung. ECC biasa digunakan pada platform komputer workstation atau low-end server.
  • ECC Registered merupakan satu fungsi RAM yang melakukan penanganan data dalam jumlah / kapasitas besar, seperti server. Registered dapat dianalogikan sebagai fungsi “power-steering” pada Mobil, dimana setir mobil terasa ringan walau putaran roda berputar berat.

Apakah ada perbedaan fisik antara Unbuffered, ECC dan Registered ?
  • Unbuffered, ECC dan Registered agak berbeda sedikit secara fisik. Umumnya RAM terdiri dari 4, 8 atau 16 keping IC.
  • ECC terdiri dari keping IC yang jumlahnya dapat dibagi dengan angka 3 atau 5. ECC dapat dilihat dari jumlah IC-nya, yaitu 5 IC (dapat dibagi 5), 9 IC (dapat dibagi 3) atau 18 IC (dapat dibagi 3).
  • Registered biasanya mempunyai satu chips yang dipasang secara horizontal (melintang). Chip ini berfungsi sebagai registerered.
Apa itu Bandwith Memory ?
Bandwitdh adalah nilai yang menunjukkan banyaknya data yang dapat di-transfer dalam waktu satu detik. Satuan Bandwitdh adalah Mb/s. Bandwidth menunjukkan kinerja yang sesungguhnya dari RAM.
Secara teori Bandwith dapat dihitungkan menggunakan rumus sebagai berikut :



Umumnya pada RAM DDR, nilai FSB jarang dituliskan dan diganti dengan nilai bandwidth-nya. Arsitektur RAM (DDR/DDR2) sendiri umumnya adalah 64-bit (atau 8 byte). RAM dengan mode Dual Channel berarti memiliki arsitektur 64-bit x 2 = 128 bit atau 16-byte.
Dual channel membuat bandwidth RAM menjadi dua kali lipat lebih besar.
Contoh :
  • DDR Visipro 256Mb PC266 sering ditulis sebagai PC2100 (Bandwidth dari PC266), hasil perkalian dari 64-bit (8 byte) x 266 MHz = 2.128 MB/s ~ pembulatan jadi 2.100.
  • DDR Visipro 128Mb PC333 sering ditulis sebagai PC2700 (Bandwidth dari PC333), hasil perkalian dari 64-bit (8 byte) x 333 MHz = 2.664 MB/s ~ pembulatan jadi 2.700.
  • DDR Visipro 512Mb PC400 sering ditulis sebagai PC3200 (Bandwidth dari PC400), hasil perkalian dari 64-bit (8 byte) x 400 MHz = 3.200 MB/s.
  • DDR2 Visipro 1GB PC533 sering ditulis sebagai PC4200, hasil perkalian dari 64-bit (8 byte) x 533 MHz = 4.264 MB/s ~ pembulatan jadi 4.200.
  • DDR2 Visipro 1GB PC667 sering ditulis sebagai PC5300, hasil perkalian dari 64-bit (8 byte) x 667 MHz = 5.336 MB/s ~ pembulatan jadi 5.300.
Gambar sebuah perhitungan Bandwidth & Dual Channel

Apa itu Dual Channel RAM ?
Dual Channel RAM adalah satu fitur motherboard yang memungkinkan peningkatan bandwitdh RAM menjadi lebih lebar (wider). Dengan Dual Channel, maka bandwith yang tersedia menjadi dua kali lipat dibandingkan dengan instalasi satu keping RAM (penggandaan nilai arsitektur). Pemakaian Dual Channel memerlukan dua keping RAM yang identik, dan saat ini sudah diterapkan pada platform DDR PC3200, PC4200 & PC5300. Dulunya Dual Channel dikenal pada RDRAM.
Dengan dual channel, maka bandwith yang mampu diberikan oleh DDR PC3200 dapat sebesar 6,4 Gb/s, sedangkan jika menggunakan single channel hanya 3,2 Gb/s saja.
Gambar RAM DDR2 Dual Channel & Slot DIMM pada Motherboard
Dual Channel adalah teknologi pada chipset Motherboard –bukan RAM-nya. Setiap DDR yg digunakan bisa dikonfigurasi pada mode Single mapun Dual Channel. Dulunya konfigurasi Dual Channel memerlukan dua keping RAM yang identik (baik dari sisi tipe, kapasitas, FSB, sampai ke tipe IC). Tapi pada saat ini ada teknologi yang disebut Intel Flex Memory Technology pada platform Motherboard Intel yang mengizinkan dua tipe RAM yg tidak identik (tipe harus tetap identik) untuk dipasang pada konfigurasi Dual Channel.
SODIMM (Small Outline Dual In-line Memory Module)
SODIMM merupakan tipe RAM yang digunakan pada Notebook. SODIMM memiliki interface, teknologi & spesifikasi yang kurang lebih sama dengan RAM biasa, tapi dengan ukuran yang lebih kompak dan kecil. SODIMM merupakan istilah yang mengacu pada nama slot motherboard dimana RAM tersebut dipasang, dimana jika pada Motherboard sebuah PC disebut DIMM biasa.
Saat ini peran SODIMM semakin penting mengikuti perkembangan pesat Notebook yang dipakai oleh pengguna. Teknologi terakhir pada SODIMM adalah DDR & DDR2 sama seperti teknologi PC.


Gambar sebuah DDR DIMM dan DDR SODIMM
Kategorisasi Modul RAM
Didunia dikenal ada beberapa kategorisasi Modul RAM menurut tipe pembuatannya sebegai berikut :


Gambar berbagai Modul RAM
  • Original modules

Original Modules adalah RAM yang diproduksi oleh berbagai vendor terkemuka yg juga memproduksi IC. Biasanya selalu menggunakan IC Major Brand. PCB yang digunakan kadang berkualitas, tapi kadang standar (cost issue).
Contoh : Hynix original, Micron original, Samsung original.
  • Major Brand modules

Major Brand Modules diproduksi dan diassembly oleh manufaktur tertentu berdasarkan pesanan vendor pembuatnya. Biasanya selalu menggunakan IC Major Brand, dan juga menggunakan PCB berkualitas.
Contoh : Visipro, Kingston , Mushkin, Buffalo etc.
  • OEM modules

Tidak menggunakan IC Major Brand (kemungkinan 1st Grade), kadangkala menggunakan PCB yg berkualitas dan kadang standar. OEM hanya memberi merek pada modul mereka, sedangkan RAM tsb dibuat oleh pihak lain. Contoh : TwinMos, Apacer, V-Gen.
Kualitas IC (Integrated Circuit) yang dipergunakan pada RAM

Gambar sebuah IC merek Hynix
  • Major Brand DRAM

IC diproduksi oleh manufaktur terkenal dan membawa nama brand mereka sendiri (seperti Micron, Infineon, Hynix, Samsung, dsb). Dari Wafer sampai menjadi IC dilakukan testing ketat untuk memastikan tidak ada cacat produk.
IC Major Brand merupakan IC dengan kualitas terbaik. Contoh : Visipro, Kingston , Mushkin, Corsair.
  • 1st grade DRAM

Hanya wafer yg diproduksi oleh manufaktur, sedangkan IC dibuat oleh perusahaan OEM yg membawa merek mereka sendiri.
IC jenis ini diragukan kualitasnya, karena wafer belum tentu datang dari manufaktur yg baik. Tapi, kadangkala IC 1st Grade memiliki kualitas & nama yg sama dengan Major Brand, tapi tidak melewati testing 100%. Contoh : Spectech, TwinMos, Apacer.
  • 2nd grade DRAM

IC ini memiliki cacat produk karena ketika ditesting mengalami error pada beberapa bagiannya (seperti kesalahan wafer cut). IC ini masih tetap digunakan pada device low-end seperti perlengkapan rumah tangga, mainan, dsb. Tapi beberapa merek RAM menggunakan IC ini untuk menekan harga.
Karakteristik sebuah Modul RAM
  • Printed Circuit Board (PCB). Umumnya RAM memiliki PCB dengan 6-layers.
  • SMT. SMT adalah komponen elektronik penunjang seperti resistor, kapasitor, dsb.
  • Notch. Merupakan lubang pengunci agar RAM Cuma bisa masuk ke slot yg sesuai.
  • Pin. Kaki-kaki RAM yg berhubungan (contact) dengan slot Motherboard.
  • ICs (Integrated Circuit). Komponen elektronik Memory.
  • Serial Presence Detect (SPD). Sebuah IC kecil penyimpan data konfigurasi dari RAM.
  • Circuit. Jalur-jalur listrik / data yg menghubungkan item komponen pada RAM.


Gambar sebuah Modul dengan karakteristik sebuah RAM.
RAM pada Motherboard
Pada platform Motherboard sebuah RAM diletakkan pada slot khusus yang dinamakan DIMM (PC Desktop) atau SODIMM (Notebook, Laptop). DIMM merupakan singkatan dari Dual In-Line Memory Module, sedangkan SODIMM singkatan dari Small Outline - DIMM.
Pada sistem Motherboard karakteristik sebuah RAM sangat bergantung pada chipset yang digunakan, misalnya chipset Intel 865G mengharuskan motherboard menggunakan DDR PC3200 Dual Channel, maka sistem platform Motherboard akan menyediakan tipe slot DIMM yang sesuai.
Saat ini umumnya sebuah motherboard menyediakan konfigurasi Dual Channel pada slot, dan pada Motherboard ATX/BTX Desktop tersedia 4 slot-channel, Motherboard micro-ATX/BTX tersedia 2 slot-channel, Motherboard Notebook tersedia 1 & 2 slot-channel (umumnya dua) dan beberapa tipe Motherboard Server tersedia lebih dari 4 slot-channel.
Beberapa konfigurasi DIMM :
  • RAM DDR Unbuffered menggunakan slot DIMM 184-pin 2.5V (umumnya pada chipset Intel 845xx, 865xx & 915xx).
  • RAM DDR ECC menggunakan slot DIMM 184-pin 2.5V (umumnya pada chipset Intel 875P, 925X).
  • RAM DDR ECC Registered menggunakan slot DIMM 184-pin 2.5V ECC Registered (umumnya dipakai pada berbagai tipe Motherboard Server).
  • RAM DDR2 Unbuffered menggunakan slot DIMM 200-pin 1.8V (umumnya pada chipset Intel 925X, 945xx)
  • RAM DDR2 ECC menggunakan slot DIMM 200-pin 2.5V (umumnya pada chipset Intel 955X dan 975X)
  • RAM DDR Unbuffered menggunakan slot DIMM 184-pin 2.5V (umumnya pada berbagai tipe Motherboard Server).

Gambar sebuah Motherboard & Konfigurasi RAM

Beberapa istilah Tambahan pada RAM
  • CAS Latency (CL). CAS singkatan dari Column Address Strobe Latency, yaitu waktu tunggu ketika bit data berpindah dari baris (Row) ke Kolom pada matriks penyimpanan Memory. Umumnya DDR memiliki CL 2.5 dan DDR2 CL 4. CL dapat disetting melalui BIOS, dan umumnya dipergunakan sebagai salah satu teknik Overclocking & Tweaking.
  • Serial Presence Detect (SPD). Chip kecil yg berisi informasi mengenai karakteristik RAM. SPD dapat diartikan sebagai BIOS pada RAM yang menyimpan semua data dan konfigurasi RAM tersebut.
  • Double Side RAM. Sebuah modul RAM yg memiliki IC didua sisi PCB. Biasanya RAM dengan jumlah IC 16 dan 18.
  • Internal Trace Layer. Setiap PCB memiliki layer (lapisan) tertentu. Ini untuk mengadaptasi panjangnya sirkuti pada modul RAM sehingga harus ditempatkan pada setiap layer. Layer juga berfungsi agar tidak terjadi interferensi antar sirkuit.


 
By Drlies Calista 09
Sumber : http://geekarch.ngeblogs.com/2009/10/16/random-access-memory-ram/



Perulangan

 
Pernyataan while

while adalah sebuah perintah sebagaimana halnya if dan else. while bukanlah fungsi pustaka, karenanya while tidak menggunakan file header. Seperti if, while adalah pernyataan berganda dan tanda kurung muncul di dekat ekspresi relasional. Ekspresi relasional dapat berisi satu atau beberapa operator relasional. Jika anda menggunakan lebih dari satu operator relasional di dalam ekspresi relasional, gunakanlah operator nalar ( && dan || ) untuk mengkombinasikan pengujian relasional tersebut. Berikut adalah bentuk umum dari pernyataan while :

while ( ekspresi penguji )
{
// satu atau lebih pernyataan C++
}

pengujian relasional muncul di bagian atas blok while. Lokasi dari penguji tersebut penting. Jika ekspresi while bernilai salah saat yang pertama kali, kalang tersebut tidak akan dieksekusi satu kali pun dan program berlanjut ke pernyataan berikutnya di bawah blok while jika masih ada. Blok while akan akan dieksekusi hanya jika pengujian relasional bernilai benar.

Contoh 5.1 :
Program berikut menampilkan kalimat “Belajar pemrograman C++” sebanyak lima kali pada layar.

#include < iostream.h >

void main()
{
int cacah=1;
while ( cacah <= 5 )
{ cout << “Belajar pemrograman C++” << endl;
cacah++; }
}

Keluaran programnya :

Belajar pemrograman C++
Belajar pemrograman C++
Belajar pemrograman C++
Belajar pemrograman C++
Belajar pemrograman C++

Variabel cacah di dalam blok while disebut sebagai variabel pencacah. Setiap kali melalui blok while, program menaikan cacah. Seperti kalau menghitung 1, 2, 3 dan seterusnya, cacah bernilai 1, 2, 3 dan seterusnya, sampai C++ menaikan cacah ke nilai akhir yaitu 5. Pada saat melangkah ke hitungan berikutnya pengujian menjadi salah yaitu pada saat cacah = 6 dan blok while berakhir.

Contoh 5.2 :
Berikut ini contoh program untuk meverifikasi masukan pemakai menggunakan while :

#include

void main()
{
int umur;

cout << "Berapa umur anda : ";
cin >> umur;

while ((umur < 5) || (umur > 80))
{
cout << "Saya tidak yakin umur anda " << umur << " tahun"
<< endl;
cout << "Ulangi kembali dengan benar..." << endl << endl;
cout << "Berapa umur anda : ";
cin >> umur;
}

if (umur < 17)
{
cout << "Anda belum boleh mengendarai mobil" << endl;
cout << "karena umur anda dibawah 17 tahun" << endl;
}
else
{
cout << "Anda boleh mengendarai mobil" << endl;
cout << "Hati-hatilah !!!" << endl;
}
}

Keluaran programnya :

Berapa umur anda : 3
Saya tidak yakin umur anda 3 tahun
Ulangi kembali dengan benar...

Berapa umur anda :

Lainnya :

Berapa umur anda : 10
Anda belum boleh mengendarai mobil
karena umur anda dibawah 17 tahun

lainnya :

Berapa umur anda : 18
Anda boleh mengendarai mobil
Hati-hatilah !!!

Lainnya :

Berapa umur anda : 120
Saya tidak yakin umur anda 120 tahun
Ulangi kembali dengan benar...

Berapa umur anda :


Pernyataan do-while

C++ mempunyai blok while lainnya yaitu do-while, yang pengujian relasionalnya muncul di akhir blok. Berikut adalah format do-while :

do
{
// satu atau lebih pernyataan C++
}
while ( ekspresi relasional );

do-while tidak menguji relasi hingga kalang dieksekusi satu siklus penuh. Setelah blok do-while dieksekusi sekali, pengujian relasional dites untuk melihat perlu tidaknya blok ini dieksekusi lagi atau diakhiri. Hanya setelah pengujian relasional menjadi salah maka program melanjutkan sisa program berikutnya jika masih ada.

Contoh 5.3 :
Berikut ini contoh penggunaan do-while untuk menampilkan “Belajar pemrograman C++” sebanyak 5 kali :

#include

void main()
{
int cacah=1;

do
{
cout << "Belajar pemrograman C++" << endl;
cacah++;
}
while ( cacah <= 5);
}

Keluaran programnya sama dengan contoh 5.1

Contoh 5.4 :

#include

void main()
{
int umur;

do
{
cout << "Berapa umur anda : ";
cin >> umur;

if ((umur < 5) || (umur > 80))
{
cout << "Saya tidak yakin umur anda " << umur << " tahun"
<< endl;
cout << "Ulangi kembali dengan benar..." << endl << endl;
}
}
while ((umur < 5) || (umur > 80));

if (umur < 17)
{
cout << "Anda belum boleh mengendarai mobil" << endl;
cout << "karena umur anda dibawah 17 tahun" << endl;
}
else
{
cout << "Anda boleh mengendarai mobil" << endl;
cout << "Hati-hatilah !!!" << endl;
}
}

Pada contoh program 5.4 penggunaan do-while memerlukan sebuah if tambahan yang tidak diperlukan seperti pada contoh program yang menggunakan while.


Pernyataan for

Pernyataan for tidaklah sulit untuk dipahami. Berikut ini adalah format dari loop for.

for ( ekspresi awal; kondisi; ekspresi pencacah)
{
// satu atau lebih pernyataan C++
}

Pada saat C++ menjumpai pernyataan for, ia akan mengikuti langkah-langkah berikut untuk melaksanakan loop :
1. Melaksanakan ekspresi awal, yang biasanya berupa pernyataan penugasan.
2. Menguji ekspresi kondisi dengan hasil salah atau benar.
3. Melaksanakan blok loop jika kondisi bernilai benar.
4. Melaksanakan ekspresi pencacah, yang biasanya berupa operasi penaikan atau penurunan.
5. Kembali ke langkah 2.

Sewaktu kondisi diuji dan didapatkan bernilai salah, C++ menghentikan loop dan program berlanjut ke pernyataan sesudah loop for jika masih ada.

Contoh 5.5 :
Program berikut akan menampilkan kalimat “Belajar pemrograman C++” sebanyak 5 kali menggunakan pernyataan for.

#include

void main()
{
for (int i=1; i<=5; i++)
{ cout << “Belajar pemrograman C++” << endl; }
}

Keluaran programnya sama dengan contoh 5.1

Loop for bukanlah loop yang bagus untuk melakukan validasi masukan, tetapi loop while baik untuk tujuan ini. Loop for cocok kalau anda tahu terlebih dahulu jumlah yang ingin anda eksekusi terhadap suatu loop. Pada loop for diatas, blok loop dieksekusi secara persis 5 kali dengan ekspresi di dalam pernyataan for mengontrol 5 pengeksekusian.

Jika kondisi bernilai salah di awal, sebagaimana pernyataan for berikut, blok loop tidak pernah dieksekusi :

for ( int i=15; i<=10; i++ )
{ cout << “cout ini tidak pernah dijalankan”; }

Saat loop ini dimulai, C++ menyimpan 15 ke i. Kondisi i<=10, bernilai salah sehingga C++ menghentikan loop dan melanjutkan program tepat sesudah loop tanpa pernah mengeksekusi blok loop.

Contoh 5.6 :

#include

void main()
{
int n;
float data, total=0, rata_rata;

cout << "Berapa banyak datanya : ";
cin >> n;

for ( int i=1; i<=n; i++ )
{
cout << "Data ke-" << i << " : ";
cin >> data;
total += data;
}

rata_rata=total/n;
cout.precision(2);
cout.setf(ios::fixed);
cout.setf(ios::showpoint);
cout << endl << "Nilai rata-rata : " << rata_rata;
}

Satu hal menarik untuk diperhatikan adalah bahwa kurung loop for tidak harus seluruhnya berisi ketiga ungkapan. Sebagai contoh :

for ( bil=2; bil <= 10; bil += 2)

Dapat diubah menjadi :

bil=2;
for ( ; bil <= 10; )
{
// blok loop dimulai dari sini
bil += 2;
}

Menempatkan ekspresi keluar dari pernyataan for kadangkala dibenarkan, terutama kalau pemakai menginisialisasi nilai awal variabel pengontrol dengan cin, bukannya dengan inisialisasi melalui pernyataan. Walaupun demikian untuk kebanyakan pemakai loop for, tempatkan semua ekspresi di dalam kurung for, sehingga semua informasi pengontrol tersedia di dalam satu pernyataan.




Pemrograman jaringan

 
SimpleTcpClient.cs
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
class SimpleTcpClient
{
public static void Main()
{
byte[] data = new byte[1024];
string input, stringData;
IPEndPoint ipep = new IPEndPoint(
IPAddress.Parse(“127.0.0.1″), 9050);
Socket server = new Socket(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp);
try
{
server.Connect(ipep);
} catch (SocketException e)
{
Console.WriteLine(“Unable to connect to server.”);
Console.WriteLine(e.ToString());
return;
}
int recv = server.Receive(data);
stringData = Encoding.ASCII.GetString(data, 0, recv);
Console.WriteLine(stringData);
while (true)
{
try
{
input = Console.ReadLine();
if (input == “exit”)
break;
server.Send(Encoding.ASCII.GetBytes(input));
data = new byte[1024];
recv = server.Receive(data);
stringData = Encoding.ASCII.GetString(data, 0, recv);
Console.WriteLine(stringData);
}
catch (Exception e)
{
}
}
Console.WriteLine(“Disconnecting from server…”);
server.Shutdown(SocketShutdown.Both);
server.Close();
}
}
BadTcpSrvr.cs
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
class BadTcpSrvr
{
public static void Main()
{
int recv1;
string input, stringData;
byte[] data = new byte[1024];
IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 9050);
Socket newsock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
newsock.Bind(ipep);
newsock.Listen(10);
Console.WriteLine(“Waiting for a client…”);
Socket client = newsock.Accept();
string welcome = “Welcome to my test server”;
data = Encoding.ASCII.GetBytes(welcome);
client.Send(data, data.Length, SocketFlags.None);
IPEndPoint newclient = (IPEndPoint)client.RemoteEndPoint;
Console.WriteLine(“Connected with {0} at port {1}”,
newclient.Address, newclient.Port);
int recv = client.Receive(data);
stringData = Encoding.ASCII.GetString(data, 0, recv);
Console.WriteLine(stringData);
while (true)
{
try
{
input = Console.ReadLine();
if (input == “exit”)
break;
client.Send(Encoding.ASCII.GetBytes(input));
data = new byte[1024];
recv = client.Receive(data);
stringData = Encoding.ASCII.GetString(data, 0, recv);
Console.WriteLine(stringData);
}
catch (Exception e)
{
}
}
for (int i = 0; i < 5; i++)
{
recv1 = client.Receive(data);
Console.WriteLine(Encoding.ASCII.GetString(data, 0, recv1));
}
Console.WriteLine(“Disconnecting from {0}”, newclient.Address);
client.Close();
newsock.Close();
}
}

Konsep Bahasa Pemrogaraman (JAVA)

 

A. SEJARAH JAVA
Bahasa Java merupakan karya Sun Microsystem Inc. Bahasa Java secara resmi diperkenalkan oleh Sun pada dunia tanggal 23 Mei 1995 dan Netscape menjadi perusahaan pertama yang memperoleh lisensi bahasa Java dari Sun.
Sedangkan, pembangunan Java itu sendiri sudah dimulai sejak tahun 1991, saat itu “Stealth Project” mengadakan pertemuan brainstorming yang terdiri dari sekelompok insinyur Sun dipimpin oleh Patrick Naughton dan James Gosling ingin merancang bahasa komputer untuk perangkat konsumer. Proyek ini diberi nama “Green”. Karena orang-orang di proyek Green berbasis C++ maka kebanyakan sintaks diambil dari C++, serta mengadopsi orientasi objek bukan prosedural.
Pada tahun 1995, Netscape memutuskan membuat browser yang dilengkapi dengan “Java” diikuti oleh IBM, Symantec, Insprise, bahkan Microsoft. Setelah itu, gaung “Java” mulai terdengar dan dengan strategi terbukanya membuat banyak industri melirik dan menyambutnya. Sebagai bahasa yang menampung hampir seluruh kemampuan terbaik bahasa pemrograman yang pernah dikembangkan umat manusia, maka bahasa ini menjadi tidak mudah, sedikit rumit, dan kompleks. Namun demikian, kita pantas sedikit bersusah agar dapat mampu menguasai salah satu perangkat terampuh yang pernah dibuat umat manusia.
B. EDISI JAVA
  1. 1. Java 2 Standard Edition (J2SE)
J2SE menyediakan lingkungan pengembangan yang kaya fitur, stabil, dan aman. Edisi ini mendukung fitur konektivitas basis data, rancangan antarmuka pemakai, masukan/keluaran (I/O), dan pemrograman jaringan (network programming), dan termasuk sebagai paket-paket dasar bahasa Java.
  1. 2. Java 2 Enterprise Edition (J2EE)
J2EE menyediakan lingkungan untuk membangun dan menjalankan multitier enterprise applications. Edisi ini berisi paket-paket untuk mendukung pengembangan Enterprise JavaBeans (EJB), Java Servlet, Java Server Pages, XML, dan kendali transaksi yang fleksibel.
  1. 3. Java 2 Micro Edition (J2ME)
J2ME untuk beragam consumer electronic product, seperti pager, smart card, cell phone, handheld PDA, dan set-top box. J2ME menggunakan sekumpulan paket lebih kecil, berisi subset dari paket-paket di J2SE ditambah paket spesifik Micro Edition berupa javax.microedition.io.
C. KELEBIHAN
  1. Sederhana (Simple)
Syntax untuk Java seperti syntax pada C++ tetapi syntax Java Jika anda mengenal C++ dengan baik, maka anda dapat berpindah ke syntax Java dengan mudah tetapi jika tidak, anda pasti tidak berpendapat bahwa Java sederhana.
  1. Berorientasi Objek (Object Oriented)
Rancangan berorientasi objek merupakan suatu teknik yang memusatkan rancangan pada data (objek) dan interface. Fasilitas pemrograman berorientasi objek pada Java pada dasarnya adalah sama dengan C++, tetapi Java memiliki cara penyelesaian yang lebih baik.
  1. Terdistribusi (Distributed)
Aplikasi Java dapat membuka dan mengakses objek untuk segala macam NET lewat URL sama mudahnya seperti yang biasa dilakukan seorang programmer ketika mengakses file sistem secara lokal.
  1. Kuat (Robust)
Java dimaksudkan untuk membuat suatu program yang benar-benar dapat dipercaya dalam berbagai hal. Java banyak menekankan pada pengecekan awal untuk kemungkinan terjadinya masalah, pengecekan pada saat run0time dan mengurangi kemungkinan timbulnya kesalahan (error).
  1. Aman (Secure)
Java memungkinkan penyusunan program yang bebas virus, sistem yang bebas dari kerusakan.
  1. Netral Arsitektur (Architecture Neutral)
Kompiler membangkitkan sebuah format file dengan objek arsitektur  syaraf, program yang di kompile dapat dijalankan pada banyak prosesor, disini diberikan sistem run time dari Java. Java dirancang untuk mempermudah penterjemahan pada banyak komputer dengan mudah dan diterjemahkan pada komputer asal pada saat run-time.
  1. Portabel (Portable)
Librari atau pustaka merupakan bagian dari sistem yang mendefinisikan interface yang portabel.
  1. Interpreter
Interpreter Java dapat meng-eksekusi kode byte Java secara langsung pada komputer-komputer yang memiliki interpreter.
  1. Kinerja Yang Tinggi (High Performance)
Meskipun kinerja kode byte yang di interpretasi biasanya lebih dari memadai, tetapi masih terdapat situasi yang memerlukan kinerja yang lebih tinggi.
10.  Multithreaded
Multithreading adalah kemampuan sebuah program untuk melakukan lebih dari satu pekerjaan sekaligus. Keuntungan dari multithreading adalah sifat respons yang interaktif dan real-time.
11.  Dinamis
Java dirancang untuk beradaptasi dengan lingkungan yang terus berkembang. Librari dapat dengan mudah menambah metode dan variabel contoh yang baru tanpa banyak mempengaruhi klien.
DASAR-DASAR JAVA
A. KOMENTAR
Komentar digunakan untuk memberikan penjelasan atau informasi kepada pembaca program.
  1. // … (berlaku untuk satu baris)
  2. /* … */ (berlaku untuk beberapa/banyak baris)
B. KATA KUNCI (KEYWORDS)
Keyword adalah kata kunci spesial dalam Java yang tidak dapat digunakan untuk mengidentifikasi sebuah nama dari class, method, dan variabel.
C. PENGENAL (IDENTIFIER)
Pengenal (identifier) adalah nama yang diciptakan oleh pemrogram dan digunakan di dalam program untuk memberi nama kelas/variabel pada program. Aturan pemberian nama pengenal pada Java adalah sebagai berikut :
  1. Karakter pertama berupa huruf, tanda garis bawah ( _ ), atau tanda dolar ($).
  2. Karakter kedua dan seterusnya dapat berupa sembarang huruf atau angka.
  3. Panjang pengenal bebas (bisa berapa saja).
  4. Case sensitiv (huruf kapital dan huruf kecil dibedakan).
Contoh :  $_99
_nama
D. LITERAL
Besaran konstanta pada Java dihasilkan dengan menggunakan literal yang mewakilinya. Setiap literal merepresentasikan nilai suatu tipe, dimana tipe itu sendiri menjelaskan bagaimana sifat nilai tersebut dan bagaimana penyimpanannya.
E. VARIABEL
Variabel menyatakan suatu lokasi di dalam memori komputer yang digunakan untuk menyimpan suatu nilai dan nilai yang ada di dalamnya bisa diubah.
Mendeklarasikan variabel :
Di dalam pendeklarasian, nama variabel dan tipe yang dikandung disebutkan. Bentuk pendeklarasian variabel :
tipe namaVar;
Contoh : int jumlahBarang;
Memberikan nilai terhadap variabel :
Setelah variabel di deklarasikan, variabel dapat diberi nilai. Caranya adalah dengan menggunakan operator =.
variabel = nilai;
  1. F. KONSTANTA
Java memungkinkan pendefinisian konstanta melalui kata kunci final. Contoh :
final double PI = 3.14;
Menyatakan bahwa PI adalah konstanta bertipe double dengan nilai 3,14. Kata kunci final menyatakan bahwa PI tak dapat diubah setelah didefinisikan.
G. TIPE DATA
  1. 1. Integer
Tipe
Ukuran
Jangkauan (inclusive)
int
4 byte
- 2.147.483.648 sampai 2.147.483.647 (hanya lebih dari 2 miliar)
short
2 byte
- 32.768 sampai 32.767
long
8 byte
- 9.223.372.036.854.775.808L sampai 9.223.372.036.854.775.807L
byte
1 byte
- 128 sampai 12
7
  1. 2. Floating point
Tipe
Ukuran
Jangkauan
float
4 byte
secara kasar 3,40282347E+38F  ( 7 digit desimal signifikan)
double
8 byte
secara kasar ± 1,79769313486231570E+308  (15 digit desimal siignifikan)
  1. 3. Char
Tipe untuk menyatakan sebuah karakter (yang tercakup dalam himpunan kode Unicode).
  1. 4. Boolean
Tipe data boolean digunakan untuk menangani keadaan logika atau keadaan dengan dua kemungkinan nilai. Nilai yang dapat digunakan adalah true (benar) dan false (salah).
H. OPERATOR
Operator adalah simbol/karakter khusus yang digunakan dalam suau ekspresi untuk menghasilkan suatu nilai.
  1. 1. Arithmetic Operator
Operator
Operation
+
Addition
-
Subtraction
*
Multiplication
/
Division
%
Modulo
  1. 2. Bitwise Operator
Operator
Operation
&
AND
|
OR
^
XOR
>> 
Shift Kanan
<< 
Shift Kiri
>>> 
Shift Kanan isi dengan nol
  1. 3. Unary Operator
Operator
Operation
~
Unary NOT
-
Minus
++
Increment
Decrement
  1. 4. Relational Operator
Operator
Operation
==
Equal To
!=
Not Equal To
Greater Than
Less Than
>=
Greater or Equal To
<=
Less or Equal To
  1. 5. Logical Operator
Operator
Operation
!
Short-circuit NOT
&&
Short-circuit AND
||
Short-circuit OR
?:
Operator ternary if-then-else
  1. I. STREAM
Stream berhubungan dengan proses untuk membaca data dari suatu sumber atau mengirimkan data ke suatu tujuam. Pada saat program Java dijalankan, terdapat tiga buah stream standard yang dengan sendirinya disediakan Java, yaitu System.in untuk menangani pembacaan dari keyboard, System.out untuk mengirimkan keluaran ke layar, danSystem.err untuk mengirimkan kesalahan (standard error).
  1. 1. Kelas InputStream
Merupakan kelas abstrak yang menjadi dasar bagi semua kelas yang berhubungan dengan pembacaan data dari suatu sumber. Turunan dari kelas ini antara lain FileInputStream, FilterInputStream,dan StringBufferInputStream. Metode-metode pada kelas InputStream :
Bentuk Metode
Keterangan
int available()
Menghasilkan jumlah data yang telah tersedia untuk dibaca
void close()
Untuk menutup stream
int read()
Untuk membaca sebuah byte data
int read(byte[] buffer
Untuk membaca sejumlah byte data
int read(byte[] buffer, int offset, int jumlah)
Untuk membaca sejumlah byte data dimulai pd posisi tertentu
void reset
Meletakkan posisi yang telah ditandai oleh mark()
long skip(long n)
Melompati sejumlah n byte
  1. 2. Kelas OutputStream
Merupakan kelas abstrak yang menjadi dasar untuk semua stream keluaran. Turunan dari kelas ini yaitu ByteArrayOutputStream, FileOutputStream, FilterOutputStream, dan PipedOutputStream. Metode-metode pada kelas OutputStream :
Bentuk Metode
Keterangan
void clear()
Menutup stream keluaran
void flush()
Memaksa penulisan byte-byte keluaran yang ada dalam penyangga (buffer) ke stream keluaran
void write(int b)
Menuliskan byte b ke stream keluaran
void write(byte[] buffer)
Menuliskan isi buffer ke stream keluaran
void write(byte[] buffer, int offset, int n)
Menuliskan isi buffer sebanyak, n buah dimulai dari posisi offset
  1. 3. Kelas ByteArrayOutputStream
Merupakan kelas yang digunakan untuk mengirimkan keluaran ke suatu array dengan elemen bertipe byte. Metode dari kelas ini :
Bentuk Metode
Keterangan
toString()
memperoleh string yang berkelas String
toByteArray()
mengubah stream ke array byte
size()
menghasilkan jumlah byte yang dapat ditampung dalam penyangga
writeTo()
menuliskan isi penyangga keluaran ke suatu stream keluaran yang menjadi argument metode ini.
  1. 4. Kelas ByteArrayInputStream
Kelas ini menciptakan stream masukan dari suatu penyangga (array byte). Konstruktor yang umum dipakai melibatkan argument array dengan elemen bertipe byte.
  1. 5. Kelas FileOutputStream
Berfungsi untuk menuliskan keluaran ke suatu berkas. Konstruktor kelas ini melibatkan argument yang menyatakan berkas yang akan diciptakan.
FileOutputStream berkasKeluaran = New FileOutputStream(“tes123.txt”);
Akan membuat berkas tes123.txt diciptakan dan dibuka. Dengan menggunakan metode write(), data dapat dituliskan ke berkas. Untuk menutup dengan metode close().
  1. 6. Kelas FileInputStream
Digunakan untuk membaca data dari suatu berkas. Metode yang penting yaitu :
  1. read() untuk membaca data
  2. close() untuk menutup berkas
  3. available() untuk memperoleh jumlah data yang bias dibaca.
  1. J. PAKET DAN IMPORT
Sejumlah kelas yang terkait pada Java biasa  dikelompokkan dalam sebuah unit yang disebut paket (package). Kelebihan dari paket adalah memungkinkan penentu akses bawaan (tanpa penyebutan private, public, atau protected) pada variable dan metode sehingga variable atau metode tersebut dapat diakses oleh semua kelas yang terletak dalam satu paket.
Contoh : package kelasku;
Pernyataan import merupakan mekanisme dalam program untuk mengakses kelas yang terdapat dalam suatu paket.
Import namaPaket.namaBerkas;
Contoh : import java.util.Date;
Contoh diatas memberitahukan bahwa akan menggunakan kelas bernama Date yang berada dalam paket java.util.
CONTROL FLOW
A. PERCABANGAN
  1. 1. Pernyataan If
Pernyataan if merupakan salah satu bentuk pernyataan berkondisi yang berguna untuk pengambilan keputusan terhadap dua buah kemungkinan.
if (kondisi) {
//blok pernyataan yang dijalankan kalau kondisi bernilai benar
} else {
//blok pernyataan yang dijalankan kalau kondisi bernilai salah
}
Suatu pernyataan if bisa berada dalam pernyataan if. Pernyataan if seperti ini disebut if bersarang (nested if).
  1. 2. Pernyataan Switch
Perintah switch memungkinkan untuk melakukan sejumlah tindakan berbeda terhadap sejumlah kemungkinan nilai.
switch (ekspresi) {
case nilai1 :
pernyataan1;
break;
case nilai2 :
pernyataan2;
break;
default: pernyataanN;
}
Pernyataan break digunakan untuk mengakhiri eksekusi switch. Namun adakalanya break justru tidak diberikan pada bagian case tertentu. Tujuannya adalah agar eksekusi dilanjutkan ke pernyataan yang ada di bawahnya.
B. PERULANGAN (LOOPING)
Looping artinya mengulangi eksekusi blok program tertentu sampai tercapai kondisi untuk menghentikannya.
  1. 1. Pernyataan while
Penggunaan pernyataan while akan dijalankan secara terus menerus selama pernyataan bernilai benar.
while (kondisi) {
//blok pernyataan
}
  1. 2. Pernyataan do-while
Penggunaan pernyataan do –while akan dijalankan sekurang-kurangnya 1 kali walaupun pernyataan bernilai salah.
do{
//blok pernyataan
} while(kondisi);
  1. 3. Pernyataan for
Pernyataan for adalah cara praktis untuk menyatakan suatu perulangan.
for(inisialisasi;kondisi;penaikan/penurunan) {
//blok pernyataan
}
Inisialisasi : untuk memberikan nilai pada variabel yang digunakan mengontrol pengulangan.
Kondisi : untuk mengontrol pengulangan dilanjutkan/diakhiri.
Penaikan/penurunan : untuk menaikkan/menurunkan nilai variabel pengontrol pengulangan.
Penyataan continue digunakan untuk menghentikan iterasi yang bersangkutan tetapi program akan menjalankan sisa perulangan sampai dengan selesai.
C. CONTOH PROGRAM
Contoh berikut akan memperjelas pemahaman terhadap pernyataan for.
public class PernyataanFor {
public static void main(String[] args) {
For(int bil=1; bil<13; bil++)
System.out.println(bil);
}
}
Keterangan :
  • Int bil = 1 digunakan untuk mendeklarasikan bil dan memberikan nilai 1 ke variabel tersebut.
  • Bil < 13 digunakan untuk menguji apakah nilai bil < 13. Kalau ya, bagian pernyataan akan dijalankan dan kemudian bagian bil++ akan dieksekusi dan pengujian dilakukan kembali. Kalau tidak, maka for berakhir.
  • Bil++ digunakan untuk menaikkan nilai bil sebesar 1.
OBJECT DAN CLASS
A. OBJECT
Objek dibuat mula-mula membuat variabel yang kelak merujuk ke objek. Variabel seperti ini biasa disebut variabel objek. Selanjutnya objek diciptakan melalui new dan hasilnya ditugaskan ke variabel objek.
Contoh :
Date waktuSekarang;
WaktuSekarang = new Date();
Variabel waktuSekarang merujuk ke objek yang berisi tanggal dan jam saat pernyataan WaktuSekarang = new Date(); dijalankan.
B. CLASS
Kelas pada Java didefinisikan dengan menggunakan kata kunci class.
Contoh :
class Mobil {
String warna;
Int tahunProduksi;
}
Pada contoh di atas kelas yang dibuat bernama Mobil. Dalam hal ini warna dan tahunProduksi disebut variabel instan/field.
Sebuah kelas umumnya tersusun atas variabel instan dan metode untuk objek. Metode adalah fungsi/subprogram yang melekat pada sebuah objek/instan kelas.
Variabel kelas adalah variabel yang berlaku tidak terbatas hanya pada objek tetapi pada seluruh objek. Variabel ini didefinisikan dengan menggunakan kata kunci static.
C. KATA KUNCI THIS
Kata kunci this digunakan pada pembuatan kelas dan digunakan untuk menyatakan objek sekarang. Contoh :
void isiData(String warna, int tahunProduksi) {
this.warna = warnaMobil;
this.tahunProduksi = tahunProduksi;
}
D. PENENTU AKSES : PRIVATE DAN PUBLIC
Pada pemrograman yang berorientasi objek, akses terhadap suatu variabel instan di luar kelas biasanya tidak diperkenankan. Sebagai penggantinya, disediakan metode yang diperlukan untuk mengakses variabel instan.
Berkaitan dengan boleh tidaknya suatu variabel instan diakses dari luar kelas, Java menyediakan penentu akses.
  • Public berarti bahwa pengaksesan suatu variabel instan atau metode dapat dilakukan dari luar kelas.
  • Private berarti bahwa pengaksesan suatu variabel instan atau metode hanya dapat dilakukan di dalam kelas, tidak bisa diakses dari luar kelas.
Perbedaan public, private, dan tanpa penentu akses pada variabel.
Penentu Akses
Keterangan
Tanpa penentu akses
Variabel dapat diakses oleh kelas yang berada dalam paket yang sama.
Public
Variabel dapat diakses pada semua kelas yang menggunakan kelas yang berisi variabel tersebut.
Private
Hanya dapat diakses oleh metode-metode dalam kelas itu sendiri
Perbedaan public, private, dan tanpa penentu akses pada variabel.
Penentu Akses
Keterangan
Tanpa penentu akses
Metode hanya dapat diakses oleh metode dalam kelas itu sendiri ataupun metode pada kelas lain yang terletak pada paket yang sama.
Public
Metode dapat diakses oleh sembarang kelas.
Private
Hanya dapat diakses oleh metode-metode dalam kelas yang sama.
E. KONSTRUKTOR
Konstruktor adalah metode yang dapat digunakan untuk memberikan nilai awal saat objek diciptakan. Metode ini akan dipanggil secara otomatis oleh Java ketika new dipakai untuk menciptakan instan kelas.
Sifat konstruktor :
  1. Namanya sama dengan nama kelas.
  2. Tidak memiliki nilai balik (termasuk tidak boleh ada kata kunci void).
Contoh :
public Mobil(String warna, int tahunProduksi) {
this.warna = warna;
this.tahunProduksi = tahunProduksi;
}
  1. F. OVERLOADING TERHADAP KONSTRUKTOR
Overloading terhadap konstruktor merupakan suatu mekanisme pembuatan konstruktor yang memiliki bentuk lebih dari satu. Dalam hal ini pembeda antara satu konstruktor yang lain berupa jumlah parameter.
Contoh :     new Mobil(“Merah”, 2008)
ARRAY
Array pada Java adalah objek yang dapat digunakan untuk menyimpan sejumlah data. Elemen yang disimpan dapat berupa tipe primitif (misalnya int) ataupun instan kelas (objek). Langkah menciptakan array :
  1. Mendeklarasikan variable untuk menuju ke array (selanjutnya disebut variable array).
  2. Menciptakan objek array dan menugaskannya ke variable yang dideklarasikan pada langkah pertama.
Mendeklarasikan variable array :
Tipe namaVariabelArray[];
atau
namaKelas namaVariabelArray[];
contoh : string[] kota;
int[] nilai;
Penciptaan objek array dan penugasan objek ke variable array dilakukan dengan menggunakan kata kunci new.
namaKelas namaVariabel=new namaKelas[jumlahElemen];
tipe namaVariabel=new tipe[jumlahElemen];
contoh : kota=new String[5];
Objek array dengan elemen berkelas String sebanyak 5 dialokasikan/disiapkan di dalam memori computer dan objek ini dirujuk oleh variable kota.
Elemen array dapat diakses melalui notasi :
namaVariabelArray[subskrip];
Subskrip berupa nomor elemen. Dalam hal ini elemen pertama memiliki subskrip berupa nol, elemen kedua mempunyai subskrip 1 dan seterusnya.
Contoh : kota[0]=”Jakarta”;
Akan membuat elemen pertama (subskrip 0) array yang dirujuk kota diisi dengan string “Jakarta”.
Jumlah elemen array dapat diketahui dengan menggunakan variable instan length miliki objek array.
Java mendukung array multidimensi melalui pendekatan “array dari array”.
Contoh : int[][] piksel=new int [5][3];
Contoh Program :
public class ContohArray {
public static void main(String[] args) {
String[] kota=(“Jakarta”,”Bandung”,”Semarang”,”Medan”,”Jogja”);
//menampilkan elemen array
for(int i=0;i
System.out.println(kota[i]);
}
}
PEWARISAN
Pewarisan merupakan konsep dalam pemrograman berorientasi objek yang memungkinkan untuk membuat suatu kelas dengan didasarkan pada kelas yang sudah ada sehingga mewarisi semua metode dan variabelnya.
Untuk memudahkan pemahaman terhadap cara mewariskan kelas, buatlah kelas seperti berikut :
class Alpha {
private int a=5;
public void info() {
System.out.println(“a= “ + a);
System.out.println(“Dipanggil pada “ + this.getClass().getName());
}
}
Kelas Alpha memiliki sebuah variable instan yaitu a dan sebuah metode yaitu info(). Perlu diketahui, this.getClass().getName() merupakan ekspresi untuk memperoleh nama kelas.
Berdasarkan kelas Alpha bias dibuat kelas baru, katakanlah bernama Bravo. Kelas turunan ini secara prinsip dapat dibuat dengan menggunakan bentuk :
Class KelasTurunan extends KelasDasar {
//tubuh kelas
}
KelasTurunan menyatakan kelas turunan yang akan dibuat berdasarkan sebuah kelas dasar.
KelasDasar yang terletak sesudah kata kunci extends menyatakan superkelas.
Class Bravo extends Alpha {
Private int b=7;
Public static void main(String[] args) {
Bravo obj=new Bravo();
Obj.info();
}
}
Kelas Bravo merupakan kelas turunan dari superkelas Alpha dan memiliki variable instan tambahan berupa b. di dalam main() dideklarasikan variable obj yang merujuk ke objek berkelas Bravo. Mengingat kelas Bravo juga memiliki metode info().
A. PENENTU AKSES PROTECTED DAN FINAL
  1. 1. Protected
Protected berarti untuk mengatur agar suatu variable instan ataupun metode yang terdapat pada sebuah kelas dapat diakses pada kelas itu sendiri dan pada subkelas.
  1. 2. Final
Final dapat diterapkan pada variable instan atau pada metode.
  1. Pada variable instan, final akan membuat variable menjadi suatu konstanta.
Contoh : final public double PI=3.14;
  1. Pada metode, final akan membuat kelas tak dapat ditimpa (di-override) pada subkelas.
Contoh : final void info()
B. ABSTRACT
Metode abstrak adalah metode yang belum mempunyai implementasi. Kita dapat menyatakan suatu metode abstrak dengan membubuhkan kata kunci abstrak pada deklarasi method tersebut.
Contoh :
public abstract class Kendaraan {
protected String nama;
public abstract void jalankan();
}
Kendaraan merupakan kelas abstrak. Di dalam kelas ini dideklarasikan sebuah metode abstrak bernama jalankan(). Metode ini disebut metode abstrak karena dideklarasikan dengan menggunakan kata kunci abstract. Perhatikan pula tak ada tubuh metode pada metode abstrak ini, karena pendefinisian metode tersebut harus dilakukan pada subkelas.
STRING DAN STRINGBUFFER
A. KELAS STRING
String adalah kelas yang menangani deretan karakter.
  1. 1. Ukuran String
String helloJava=”J2SE”;
helloJava.lenght();
  1. 2. Mendapatkan kembali String
String helloJava=”J2SE”;
For(int i=0;i
System.out.print(helloJava.charAt(i));
}
  1. 3. Substring
String msg=”Hello Java2”;
System.out.println(msg.substring(2,8));
System.out.println(msg.substring(3));
  1. 4. Konversi String
    1. toLowerCase() : seluruh huruf berupa huruf kecil.
Contoh : System.out.println(msg.toLowerCase());
  1. toUpperCase() : seluruh huruf berupa huruf capital.
Contoh : System.out.println(msg.toUpperCase());
  1. trim() : menghilangkan seluruh spasi ataupun karakter control yang terletak di awal dan di akhir string ini.
Contoh : System.out.println(msg.trim() + ”for beginner”);
  1. replace(oldChar,newChar) : berisi string dengan semua karakter yang sesuai dengan argumen pertama diganti dengan argumen kedua.
Contoh : System.out.println(msg.replace(‘e’,’a’));
  1. 5. Pencarian Karakter
    1. indexOf(int ch) : menghasilkan nilai bertipe int yang menyatakan posisi pertama untuk karakter yang nilainya ch pada string ini. Jika tidak ditemukan, nilai balik berupa -1.
    2. indexOf(int ch, int fromIndex) : menghasilkan nilai bertipe int yang menyatakan posisi pertama untuk karakter yang nilainya ch pada string ini dimulai dari posisi index. Jika tidak ditemukan, nilai balik berupa -1.
    3. indexOf(String str) : menghasilkan nilai bertipe int yang menyatakan posisi pertama untuk substring str pada string ini. Jika tidak ditemukan, nilai balik berupa -1.
Contoh : System.out.println(msg.indexOf(‘I”));
  1. indexOf(String str, int fromIndex) : menghasilkan nilai bertipe int yang menyatakan posisi pertama untuk substring pada string ini dimulai dari posisi index. Jika tidak ditemukan, nilai balik berupa -1.
Contoh : System.out.println(msg.indexOf(‘a’,5));
B. STRINGBUFFER
StringBuffer adalah kelas yang memungkinkan penambahan atau penyisipan teks. Itulah sebabnya, kelas ini memiliki metode bernama append() yang digunakan untuk menambahkan string di bagian akhir.
Contoh :
StringBuffer buff = new StringBuffer();
buff.append(“Hello”);
buff.append(‘ ‘);
buff.append(“J2SE”);
System.out.println(buff);
  1. 1. Modifikasi StringBuffer
    1. delete()
buff.delete(0,5);
System.out.println(buff);
  1. replace()
buff.replace(0,5,”Welcome”);
System.out.println(buff);
  1. reverse()
buff.reverse();
System.out.println(buff);
  1. 2. Manipulasi StringBuffer
    1. toString() : menghasilkan string yang terdapat pada StringBuffer.
Contoh : System.out.println(buff.toString());
  1. capacity() :menghasilkan kapasitas stringbuffer.
Contoh : System.out.println(buff.capacity());
  1. length(int newLength) : jumlah karakter dalam StringBuffer.
Contoh : System.out.println(buff.length());
  1. setLength(int newLength) : mengubah panjang string menjadi n karakter.
Contoh : buff.setLength(7);
  1. charAt() : menghasilkan karakter pada posisi indeks.
Contoh : System.out.println(buff.charAt(7));
POLYMORPHISM, INTERFACES, DAN EXCEPTION HANDLING
A. POLYMORPHISM
Polymorphism didefinisikan sebagai kemampuan beberapa objek bertipe sama bereaksi secara berbeda terhadap message yang sama. Polymorphism berarti mempunyai banyak bentuk. Dua objek atau lebih dikatakan sebagai polymorphic bila objek-objek itu mempunyai antarmuka identik namun mempunyai perilaku berbeda. Polymorphism merupakan satu nama tunggal (deklarasi fungsi) dan dapat menyatakan objek kelas-kelas berbeda yang terhubung dengan superkelas yang sama diantara kelas-kelas itu.
Contoh :
Animal animal;
animal = new Dog(“Mamalia”);
animal.soundOfAnimal();
animal = new Snake(“Reptil”);
animal.soundOfAnimal();
Animal animal = new Dog(“Mamalia”);
animal.soundOfAnimal();
Disetiap iterasi pada loop diatas, pada dasarnya kita mengirimakan pesan yang sama ke objek-objek yang bertipe sama (animal). Walaupun begitu, ternyata masing-masing bereaksi dengan caranya sendiri-sendiri.
B. INTERFACES
Interface merupakan kumpulan method tanpa implementasi actual. Interface adalah kelas abstrak yang berarti tidak diimplementasikan. Sepenuhnya tidak diimplementasikan berarti tidak ada method di kelas itu yang telah diimplementasikan, juga data anggota interface dapat dipastikan variable final static yang berarti konstanta murni.
Manfaat interface :
  1. Menyediakan sarana untuk mendefinisikan protocol kelas tanpa rincian implementasinya.
  2. Pengembangan kelas dapat dilakukan tanpa khawatir mengenai komunikasi kelas.
Contoh :
interface A {
//secara default, variable berikut adalah public, satatic, & final meski tidak dinyatakan.
String str = “JAVA”;
public void setNama(String nama);
public void setAlamat(String alamat);
public void setTelepon(String telepon);
}
Java hanya memperbolehkan single inheritance (pewarisan tunggal untuk kelas yang diwariskan akan tetapi mengizinkan multiple inheritance (pewarisan jamak) dengan mengimplementasikan lebih dari satu interface.
public class SubClass extends SuperClass
implements InterfaceA, InterfaceB, …, InterfaceN {
}
Sebuah interface dapat mawarisi interface lainnya dengan menggunakan kata kunci extends.
public interface TestInterface extends InterfaceA, InterfaceB, …,
InterfaceN {
}
C. EXCEPTION HANDLING
Kesalahan pada umumnya ditangani sewaktu program dikompilasi. Namun tidak semua kesalahan dapat terdeteksi, kesalahan yang seringkali terjadi sewaktu program dijalankan. Untuk menangani kesalahan sewaktu program dieksekusi, Java menyediakan exception handling/penanganan eksepsi.
Kata kunci exception :
  1. try : program yang hendak dimonitor untuk exceptionnya dimuat di blok try. Jika exception terjadi di dalam blok try, exception tersbut dilemparkan.
try {
//Blok yang akan ditangkap sekiranya terjadi eksepsi.
}
catch (parameter) {
//Blok yang akan dijalankan kalau terjadi eksepsi
}
  1. catch : kode dapat menangkap exception menggunakan catch dan menangani dengan suatu cara yang rasional.
  2. throw : exception yang dibangkitkan system secara otomatis dilempar oleh system Java. Untuk exception yang dilempar secara manual maka menggunakan throw.
throw variabelObjek;
  1. throws : memberitahukan bahwa suatu metode ada kemungkinan menghasilkan suatu eksepsi.
public tipe1 NamaMetode(tipe2 x, tipe3 y) throws JenisEksepsi {
….
}
  1. finally : sembarang kode yang secara absolute harus dieksekusi sebelum metode keluar diletakkan di blok finally.
try {
//Blok yang akan ditangkap sekiranya terjadi eksepsi.
}
finally {
//Blok yang akan dijalankan terakhir kali.
}
Bagian finally akan dijalankan, tak tergantung apakah bagian blok try mengalami eksepsi ataupun tidak.
APPLET DAN SWING
A. APPLET
Applet merupakan program Java yang ditujukan secara khusus agar bias berjalan di lingkungan web browser. Applet adalah subkelas dari panel yang terletak pada paket java.applet. itulah sebabnya hal-hal yang bias diletakkan dalam panel juga bias diletakkan dalam applet. Sebagai program yang ditujukan berjalan pada web browser, applet dilengkapi dengan fitur untuk berkomunikasi dengan host server dan bahkan berkomunikasi antar applet. Nemun, applet dirancang untuk tidak melakukan operasi penulisan ke computer klien karena alas an keamanan.
Metode pada Applet :
Metode
Keterangan
init()
Dijalankan ketika applet mulai dimuat dan hanya berlangsung sekali saja. Hal ini bias dimanfaatkan untuk melakukan tindakan seperti meletakkan komponen ke panel, mengatur warna, atau membuka koneksi database.
start()
Dipanggil setelah kejadian inisialisasi atau setiap kali pemakai berpindah dari suatu aplikasi/halaman web lain menuju ke halaman yang mengandung applet.
paint()
Metode yg dipanggil berkali-kali untuk memperbaharui tampilan.
repaint()
Metode yg digunakan untuk memaksa agar paint() dipanggil.
Daftar atribut pada tag :
Atribut
Keterangan
Align
Menentukan mode penataan applet dalam halaman web. (LEFT, RIGHT, TOP, TEXTTOP, MIDDLE, ABSMIDDLE, BASELINE, BOTTOM, atau ABSBOTTOM)
Hspace
Menentukan jumlah spasi(piksel), antar applet dan teks yang terletak di kiri atau kanan
Vspace
Menentukan jumlah spasi(piksel), antar applet dan teks di atas atau bawah
Code
Menentukan nama berkas .class.
codebase
Menentukan letak direktori dari berkas .class
Alt
Menentukan teks yang akan ditampilkan sekiranya web browser mengenali tag, tetapi tidak mendukung applet/pemrosesan applet dimatikan
Name
Memberikan nama terhadap applet. Nama ini dipakai untuk mendukung komunikasi antar applet
Height
Menentukan tinggi tampilan applet
Width
Menentukan lebar tampilan applet
Kelas Applet :
public class MyFirstApplet extends java.applet.Applet {
public MyFirstApplet() {…} //default konstruktor
public void init() {…}
public void start() {…}
public void stop() {…}
//other method
}
Passing parameter untuk Applet :
B. SWING
Swing merupakan alternative lain untuk mengimplementasikan pemrograman window. Walaupun diimplementasikan berdasarkan kelas AWT, swing tidak menggunakan komponen yang terdapat pada AWT, sehingga tampilan komponen dalam swing tidak bergantung pada system window local.
  1. 1. Color
Using java.awt.color
Syntax : Color color = new Color(r,g,b);
  1. 2. Font
Font font = new Font(name, style, size);
  1. 3. JFrame : sebuah container dimana semua komponen GUI bisa ditempatkan.
public static void main(String[] args) {
JFrame frame = new JFrame(“Test Frame”);
frame.setSize(400,300);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
  1. 4. JPanel : panel bertindak sebagai suatu container kecil untuk mengelompokkan sesuai dengan komponen user interface. Contoh :
JPanel p = new JPanel();
p.add(new JButton(“My Button”);
  1. 5. JLabel : komponen yang biasa digunakan untuk menampilkan teks yang pendek. Komponen ini bisa digunakan untuk menampilkan ikon. Metode pada JLabel :
Metode
Keterangan
getText()
Untuk memperoleh teks pada label
setText()
Untuk mengubah teks pada label
SetIcon(Icon gambar)
Untuk mengubah gambar pada ikon
JLabel label = new JLabel(text);
  1. 6. JButton : membuat objek tombol yang dapat dilengkapi dengan judul tombol maupun ikon.
Contoh kode sederhaan JButton :
content.add(new JButton(“Icon”));
ImageIcon icon = new ImageIcon(“icon.jpg”);
content.add(new JButton(icon));
content.add(new JButton(“Icon”,icon));
JButton lastButton = new JButton(“Icon”,icon);
lastButton.setHorizontalTextPosition(SwingConstants.LEFT);
content.add(lastButton);
  1. 7. JOptionPane
    1. JOptionPane.showMessageDialog
    2. JOptionPane.showConfirmDialog
    3. JOptionPane.showInputDialog
    4. JOptionPane.showOptionDialog
    5. 8. JTextField : kelas yang berguna untuk menciptakan objek yang ditujukan untuk memasukkan data satu baris. Daftar konstruktor pada JTextField :
Konstruktor
Keterangan
JTextField()
Membuat objek JTextField dengan nilai awal sama string kosong
JTextField(String teks)
Membuat objek JTextField dengan nilai awal sama string teks
JTextField(String teks, int kolom)
Membuat objek JTextField dengan nilai awal sama string teks dan jumlah kolom sebanyak kolom
  1. 9. JTextArea : kelas yang memungkinkan menyajikan teks yang terdiri dari beberapa baris.
Konstruktor
Keterangan
TextArea(String teks, int baris, int kolom)
Membuat objek JTextArea dengan nilai awal sama string teks dan jumlah kolom sebanyak kolom serta baris sebanyak baris
TextArea(int baris, int kolom)
Membuat objek JTextArea dengan nilai awal berupa string kosong dan jumlah kolom sebanyak kolom serta baris sebanyak baris
10. JCheckBox : komponen yang biasa digunakan untuk memilih salah satu pilihan di antara dua
Konstruktor
Keterangan
JCheckBox(String teks)
Label berupa teks dan nilai keadaan kotak cek diisi dengan false
JChecjBox(String teks, Boolean keadaan)
Label berupa teks dan nilai keadaan kotak cek diisi dengan nilai pada keadaan
JCheckBox(String teks, Icon ikon, Boolean keadaan)
Label berupa teks, dilengkapi dengan ikon dan nilai keadaan kotak cek diisi dengan nilai pada keadaan.
JCheckBox(String teks, Icon ikon, Boolean keadaan)
Label berupa teks, dilengkapi dengan ikon dan nilai keadaan kotak cek diisi dengan nilai false
11. JList : komponen yang memungkinan pemakai memilih salah satu dari sejumlah pilihan.
JList(object[] daftarData);
Pada bentuk di atas, argument berupa array objek apa saja. Adapun bentuk yang lain melibatkan argument berkelas Vector.
12. JComboBox
JComboBox(Object[] daftarItem)
Dalam hal ini, argumennya berupa array objek apa saja.
13. JMenu & JMenuItem : kelas untuk membuat batang menu yang biasa diletakkan di bagian atas jendela dan bersifat pull-down. Prinsip untuk membuat menu :
  1. Membuat objek JMenuBar.
  2. Mengaitkan objek JMenuBar tersebut ke jendela melalui metode setJMenuBar().
  3. Menciptakan sejumlah objek JMenu yang akan dijadikan sebagai menu dalam menu batang.
  4. Mengaitkan objek JMenu ke objek JMenuBar melalui metode add().
  5. Membuat sejumlah item menu melalui pembuatan objek JMenuItem untuk tiap menu.
  6. Mengaitkan item-item menu ke objek JMenu.
14. JTabel : komponen yang berguna untuk menampilkan data dalam bentuk table (terdiri atas baris dan kolom).
15. Look and Free : mekanisme yang memungkinkan tampilan komponen berbentuk seperti pada tampilan motif.
public static void setNativeLookAndFeel() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch(Exception e) {
System.out.println(e);
}
}
16. ExitListener
EXIT_ON_CLOSE adalah ya tetapi tidak cukup bagus untuk menutup/keluar dari window.
Contoh :
import java.awt.*;
import java.awt.event.*;
public class ExitListener extends WindowAdapter {
public void windowClosing(WindowEvent event) {
System.exit(0);
}
}
KONEKSI KE DATABASE
Koneksi ke database pada Java ditangani oleh JDBC (Java Database Conectivity). JDBC merupakan salah satu API (Application Programming Interface) Java yang secara khusus ditujukan untuk menangani koneksi ke database. Antarmuka ini memungkinkan pemrogram menulis sebuah program yang dapat digunakan untuk mengakses database yang berbeda, misalnya Oracle, Access, atau MySQL.
Koneksi Menggunakan MySQL
Sebelum menggunakan JDBC, maka yang perlu dibuat adalah :
  1. Membuat database dengan nama db_pegawai.
  1. Membuat table pegawai dengan field-field sebagai berikut :
    1. kode varchar(10) Primary not null
    2. nama varchar(50)
    3. alamat varchar(50)
    4. gaji Double
  1. Menambah/mengisi data
  1. Melihat data
  1. Menghapus data
Langkah Menggunakan JDBC :
  1. Meload Driver
try {
Class.forName(“com.mysql.jdbc.Driver”).newInstance();
}   catch (ClassNotFoundException e) {
e.printStackTrace();
}
  1. Mendefinisikan koneksi URL
String dbURL = “jdbc:mysql://localhost/db_pegawai”;
String dbUser = “root”;
String dbPass = “ “;
  1. Menetapkan koneksi
conn = DriverManager.getConnection(dbURL,dbUser,dbPass);
  1. Membuat statement
Statement st = conn.createStatement();
  1. Menjalankan sebuah query
ResultSet rs = st.executeQuery(query);
  1. Memproses hasil
String kode = rs.getString(1);
String nama = rs.getString(2);
String alamat = rs.getString(3);
String gaji = rs.getString(4);
  1. Menutup koneksi
st.close();
conn.close();


Sumber : Internet