Untuk bisa menikmati semua fasilitas, pelayanan serta penghasilan yang DAHSYAT di program DBS dari PT. DFI, maka Anda harus:
1. Membeli Kartu Aktivasi Rp. 200.000,- ( EC ) atau Rp.150.000,- ( Reguler ) pada Card Agency di kota Anda.
2. Kunjungi website kami www.duta4future.com untuk mengaktivasikan kartu Anda dengan memasukkan No. Seri dan No. Pin yang tertera di Kartu Aktivasi Anda.
3. Setelah AKTIVASI maka Anda telah resmi bergabung bersama keluarga besar PT.DUTA FUTURE INTERNASIONAL.
.
BENEFIT MEMILIKI HAK PERSONAL FRANCHISE DFI:
1. Kartu Member berlaku selamanya
2. Kartu Member Anda juga berfungsi sebagai Kartu Diskon (Khusus EDISI EC ) Belanja pada Merchant / Outlet yang bekerjasama dengan DUTA FUTURE INTERNASIONAL.
3. Anda mendapatkan 1 Usaha yang bisa diwariskan.
4. Potensi mendapatkan Penghasilan Rp. 270.000,- / hari / HU dari Bonus Matching.
5. Bonus Pulsa senilai Rp.90.000,- / hari / HU dari Bonus Matching.
6. Potensi penghaslan Milyaran rupiah dari Royalty Keagenan & D20.
7. Mempunyai kesempatan memperoleh Asuransi Kecelakaan, Televisi, Handphone, Komputer, Sepeda motor , Mobil Mewah (Mercedez Benz C240) , hingga RUMAH MEWAH senilai 1,5 Milyar.
6. Bagi Member untuk wilayah bandung dan sekitarnya akan mendapatkan diskon pembelian motor hingga 1 juta rupiah. ( hubungi Customer Care kami untuk informasi lebih lanjut )
PERATURAN MEMBER / PEMEGANG LISENSI:
1. Data member pendaftaran haruslah data yang sesuai dengan data KTP (data yang valid).
2. Data bank harus sama dengan data pendaftaran yang sesuai dengan data KTP.
3. Data pendaftaran yang telah dimasukkan akan diproses dan tidak dapat diedit kembali.
4. Perusahaan tidak bertanggung jawab terhadap jual beli account yang dilakukan oleh member.
5. Apabila ada pelanggaran terhadap ketentuan di atas maka perusahaan berhak memblokir keanggotaan dari member tanpa konpensasi apapun.
PERATURAN PEMINDAHAN DATA / KEPEMILIKAN MEMBER:
Perubahan data bisa dilakukan dengan ketentuan sebagai berikut :
1. Yang bersangkutan meninggal dunia
2. Mengirimkan KTP pihak penghibah dan yang dihibahi serta menyertakan FC Kartu keanggotaan bolak balik serta menyertakan No Keanggotaan DUTA FUTURE INTERNASIONAL.
3. Apabila yang dihibahi belum punya KTP bisa menyertakan FC Kartu Keluarga
4. Persetujuan perubahan akan selesai diproses dengan jangka waktu 2 minggu.
5. Semua berkas di Fax atau di kirimkan ke pihak Perusahaan
LISENSI PERSONAL FRANCHISE DUTA FUTURE INTERNATIONAL:
1. Membership / keanggotaan DUTA FUTURE INTERNASIONAL adalah terbuka bagi masyarakat umum yang merupakan wirausaha mandiri ( Personal Franchise ) dan bukan sebagai karyawan / staff / pegawai dari PT. DUTA FUTURE INTERNASIONAL
2. Pendaftaran DUTA FUTURE INTERNASIONAL hanya dilakukan secara Online ( e-commerce ), Pendaftaran diluar ketentuan ini DUTA FUTURE INTERNASIONAL tidak bertanggungjawab atas segala dampak yang ditimbulkan.
3. Calon member wajib mencantumkan dan mengisi data-data administrasi secara benar. Apabila terjadi kesalahan data-data administrasi oleh member, perusahaan tidak bertanggung jawab atas segala permasalahan yang timbul dikemudian hari.
4. Setiap Member berhak mendapatkan Kartu Membership yang didalamnya tertera Nomor Seri dan Nomor Pin. Member wajib menjaga Nomor Pin dan Nomor Seri, serta Nomor Id dan Password pribadi. Penyalahgunaan terhadap Nomor Pin, Nomor Seri, Nomor Id dan Password menjadi tanggung jawab member yang bersangkutan.
5. Kartu Member tidak dapat diuangkan / dikembalikan kepada Perusahaan (No. Refund).
6. Semua member yang bergabung diwajibkan mempunyai sponsor dan dianggap sudah mengerti / memahami semua aturan / program Marketing Plan serta segala resiko yang menyertainya. Tanpa ada paksaan atau tekanan dari pihak manapun
7. Penghasilan akan diperoleh jika member MENJALANKAN SISTEM SECARA BENAR, sesuai dengan aturan yang telah ditetapkan oleh Duta Internasional. Karena Duta International bukanlah perusahaan Investasi / HYIP atau sejenisnya.
8. Setiap Member diwajibkan menggunakan nomor rekening atas nama sendiri. Setiap satu nama atau satu nomor rekening dibatasi hanya mempunyai 21 ( dua puluh satu ) hak usaha di DUTA FUTURE INTERNASIONAL. Pelanggaran terhadap aturan ini system komputer akan menolak dan perusahaan tidak bertanggung jawab jika terjadi permasalahan dikemudian hari.
9. Jika Perusahaan menemukan kecurangan atau tindakan yang merugikan member lain dan atau merugikan PT Duta Future Internasional baik secara moral maupun material maka Perusahaan PT Duta Future Internasional i berhak menonaktifkan dan atau mencabut keanggotaan member yang bersangkutan.
10. Perusahaan tidak bertanggung jawab terhadap janji-janji lisan maupun tertulis dari member yang tidak sesuai dengan Marketing Plan dan kebijakan Perusahaan. Permasalahan yang timbul akibat Janji ' janji tersebut adalah merupakan tanggung jawab dari Member yang bersangkutan.
11. Setiap Member wajib menjaga nama baik Perusahaan Duta Future Internasional. Tidak mencemarkan nama baik (menjelek-jelekkan) perusahaan lain yang sejenis pada saat melakukan presentasi, dan dilarang mengikuti serta mengembangkan jaringannya.
12. Setiap Member wajib memberikan keterangan-keterangan kepada calon Member khususnya dan masyarakat umumnya dengan sebenar-benarnya. Jika terjadi permasalahan akibat dari penyimpangan penyampaian keterangan-keterangan dari Marketing Plan dan Kebijakan Perusahaan adalah menjadi tanggung jawab Member yang bersangkutan.
13. Setiap member yang dianggap merugikan perusahaan dan juga menyebabkan keresahan member lain yang akan dikenakan sanksi sesuai dengan kebijakan perusahaan.
14. Jika ada laporan secara tertulis dan dapat dibuktikan kebenarannya oleh orang (jaringan) lain yang diresahkan karena menjalankan program International Marketing lain, maka perusahaan berhak menonaktifkan keanggotaannya tanpa kompensasi apapun.
15. Perusahaan tidak bertanggung jawab terhadap kewajiban-kewajiban kepada Member jika di Perusahaan terjadi bencana alam, kerusuhan, huru-hara, perubahan kebijakan hukum atau politik yang mengakibatkan ditutupnya perusahaan.
16. Pelanggaran terhadap salah satu dan atau keseluruhan isi dari peraturan ini akan dikenakan sanksi sesuai dengan ketentuan dan kebijakan perusahaan tanpa konpensasi apapun.
Biaya Pendaftaran Duta Business School ( DBS ) Biaya pendaftaran Rp.200.000,- untuk HU pertama (Kartu EC) & Rp.150.000,- untuk penambahan HU (kartu reguler). Anda akan mendapatkan:
1.Hak Keagenan Pulsa 2.Fasilitas SMS MURAH & SMS SUPER MURAH (GPRS) 3.Kartu Diskon di lebih dari 5000 Merchant Ternama 4.Diskon Pembelian Motor 5.Training & Seminar-seminar Pengembangan Diri 6.Education Pack (Termasuk e-book senilai lebih dari Rp.750.000,-) 7.Program CRP (Customer Refferal Program)
updated on Tuesday, 10 February 2009 by chikmonk gokill
Dengan Anda mereferensikan Program Pulsa Gratis bersama DBS ini kepada rekan Anda, maka Anda akan mendapatkan:
1. Bonus Refferal
Bonus ini didapatkan saat Anda memperkenalkan orang baru untuk direkrut menjadi jaringan Anda. Setiap Anda mendapatkan member / agen baru, Anda akan mendapatkan Rp.20.000. Bonus ini didapatkan hanya oleh 1 orang yang mengajak (mereferensikan) saja. Upline-upline yang tidak mensponsori tidak mendapatkan bonus ini. Semakin banyak orang yang anda sponsori, semakin besar bonus sponsor Anda. Jika Anda mensponsori lebih dari 3 orang, maka anggota yang ke-3 atau selebihnya dapat ditempatkan di bawah anggota 1 atau 2.
Contohnya, jika Anda berhasil mengajak si A dan si B, Anda akan mendapatkan bonus sponsor Rp.20.000 x 2 = Rp.40.000. Jika Anda ingin ingin mengajak lebih dari dua orang, misalnya si C, Anda dapat menaruh si C (melalui virtual office atau handphone Anda) di bawah si A atau si B. Dalam contoh diatas, si C Anda tempatkan dibawah si A. Maka, Anda akan mendapat lagi bonus sponsor sebesar Rp.20.000.-
2. Bonus Matching
Bonus ini adalah bonus perkembangan jaringan Anda. Bonus ini akan Anda dapatkan ketika ada keseimbangan jumlah account anggota di jaringan Anda di kaki sebelah kiri dan kanan, besarnya: Rp.30.000,- ( Rp 22.500 rupiah cash + 7.500 Deposit Pulsa) untuk setiap pasangnya. Jadi bila ada anggota di kaki kiri dan kanan yang bisa dipasangkan Anda akan mendapatkan bonus pasangan. Otomatis program komputer yang akan menghitung ini semua, Anda tidak perlu pusing-pusing untuk menghitung bonus Anda. Bonus ini selain bonus yang terbesar di bisnis ini juga berpotensial sebagai pasif income Anda nantinya jika jaringan Anda sudah berkembang besar.
Khusus untuk bonus ini, agar perusahaan tidak merugi, perusahaan membatasi bonus pasangan setiap harinya. Setiap hari maksimal bonus pasangan yang dapat Anda terima adalah 12 pasang (Flushout). Jadi penghasilan Anda per hari maksimal sebesar: 12 pasang x Rp 22.500 = Rp 270.000 dan 12 pasang x Rp 7.500 = Rp 90.000 Deposit Pulsa.
Jika lebih, disebut flush out . Misalnya jika terdapat 13 anggota baru dikaki kiri dan 15 anggota baru dikaki kanan, maka bonus pasangan Anda yang seharusnya 13 pasang (ada 2 anggota dikaki kanan yang menunggu dipasangkan dikaki kiri) tetap akan dihitung 12 pasang, 1 pasang sisanya akan masuk ke perusahaan. Jika flush out terjadi, Anda berkesempatan memperoleh poin untuk mendapatkan reward.
3. Bonus Development
Anda akan mendapatkan Rp.1000 untuk setiap member yang ada di jaringan Anda sampai kedalaman 20 Generasi. Komisi ini untuk mengantisipasi apabila jaringan Anda berat sebelah (tidak seimbang) atau hanya 1 kaki yang jalan. Apabila keadaan itu terjadi, maka Anda tidak akan mendapatkan komisi pasangan. Maka komisi titik tetap dapat menghidupi Anda. Apabila kedua kaki Anda berupa binary sempurna (seimbang) maka sampai di Generasi ke-20 total anggota di jaringan Anda sebanyak 2.097.150 anggota, berarti komisi titik yang bisa Anda dapatkan Rp. 2.097.150.000.-
Pada kenyataannya, kecil kemungkinan terjadi jaringan Anda betul-betul sempurna, namun jika jumlah anggota Anda 50% dari sempurna saja, berarti Anda akan mendapatkan bonus titik sebesar Rp.1 milliar!! Lebih pahit lagi jika 25% aja dari sempurna, Anda akan mendapatkan sebesar Rp.500juta. Apakah ada Anda akan menolaknya?
4. Bonus Generasi
Bonus Generasi Duplikasi adalah bonus sebesar Rp.2000,-/ member / Generasi yang Anda dapatkan ketika Generasi I, II, ataupun III di jaringan Anda mendapatkan Komisi Pasangan sampai kedalaman tak terbatas (karena dibatasi flush out maka sehari maksimal 12 pasang/anggota di jaringan Anda/Generasi).
Generasi I adalah orang-orang yang Anda sponsori.
Generasi II adalah orang-orang yang disponsori generasi I Anda.
Generasi III adalah orang-orang yang disponsori generasi II Anda.
Bonus ini diberikan sebagai insentif kepada anggota mengingat tidak ada anggota yang memiliki jaringan sempurna (sering kakinya besar sebelah). Jika tadinya Anda tidak mendapatkan komisi yang besar jika membantu kaki 'gajah' Anda (kecuali bonus titik), maka sekarang setiap ada pertambahan di kaki 'gajah' Anda, selama bisa dipasangkan untuk generasi I/II/III, Anda akan mendapatkan komisi yang besar pula.
Dengan asumsi masing-masing anggota mensponsori 5, dan masing masing dari mereka mensponsori 5 orang sampai generasi III maka potensi penghasilan Anda :
Generasi I : 5 X Rp. 2000,- X 12 = Rp. 120.000,- / hari / HU
Generasi II : 25 X Rp. 2000,- X 12 = Rp. 600.000,- / hari / HU
Generasi III : 125 X Rp. 2000,- X 12 = Rp. 3.000.000,- / hari / HU
Dari perhitungan diatas terlihat potensi Bonus Generasi Duplikasi Anda adalah Rp. 3.720.000,-/hari.
5. Royalti Keagenan
A. Royalty Keagenan Pulsa Reguler
Bonus bulanan, yang di dapat dari total pembelian Pulsa Keagenan dari jaringan Anda dari Generasi 1 sampai Generasi 10 sebesar Rp. 10,-/transaksi. Sistem akan mencari secara otomatis Member yang melakukan transaksi sampai 10 Level ke bawah. Member di jaringan Anda yang pada bulan tersebut tidak melakukan transaksi tidak akan masuk perhitungan dan digantikan oleh Level bawahnya (Kompres / Push Up)
updated on Tuesday, 10 February 2009 by chikmonk gokill
karena lom dapat materi buat di posting disini ya udah m0nK coba z post masalah bisnis sedikit mudah-mudahan z ada yang mau bergabung di dalam bisnis ini namanya DBS ( Duta Business School ) mungkin buat teman-teman udah ada yang tau tentang DBS Sistem CRP ( Customer Refferal Program ), suatu sistem pemasaran modern terbaru. Tidak perlu adanya poin pribadi/group, juga tidak perlu menawarkan barang agar dibeli orang. PULSA HP dan UANG saat ini adalah kebutuhan pokok masyarakat. Bergabung dengan DBS, maka keduanya didapat sekaligus. Bisnis nyata luar biasa. Sukses besar ada di tangan anda.
Belum ada sistem dan cara yang lebih canggih dan unggul untuk menarik uang yang banyak dari pada sistem DBS ini karena modal sangat kecil, keuntungannya sangat besar, dalam waktu relatif pendek, dapat banyak kemudahan, juga sangat mudah menjalankannya, sistemnya sangat sederhana, dan sangat fleksibel.
Tidak perlu tempat khusus, juga tidak terikat waktu tertentu. Pakai HP saja sudah cukup. Siapa saja dan di mana saja dapat bergabung. Sukses besar ada di tangan anda.
Sudah Terlambatkah Kita Berbisnis Pulsa ?
Dulu saya berpikir, halaah' bisnis pulsa kan sudah banyak pemainnya, di pinggir jalan dan di mana-mana sudah ada kiosnya, nanti saya kebagian apa kalau baru mulai sekarang ?
Untungnya saya dapat inspirasi, bahwa pemakai pulsa itu tumbuh terus, anak-anak yang sekarang masih SMP sudah banyak yang punya HP, anak-anak SMP itu uang jajannya mungkin sampai 70% lari ke pulsa. Berbagai provider pulsa bemunculan, kuiz di TV, SMS pemilihan bintang, notifikasi pendaftaran bisnis, teknologi 3G yang sudah mulai berjalan, mobile banking terus semakin banyak penggunanya. Itu menunjukkan TREND bahwa pulsa akan semakin banyak dikonsumsi.
Kalau HANYA berjualan konvensional, seperti membuat kios atau berjualan ke orang-orang dekat di sekitar kita, maka mungkin akan menyita banyak waktu dan energi, dengan profit yang mungkin jauh dari yang kita impikan.
Namun di sini, di DBS dengan konsep pemasaran sistem CRP, cepat atau lambat anda akan mempunyai jaringan pemakai pulsa. Ketika jaringan pemakai pulsa di group anda berkembang, dan mereka melakukan transaksi pulsa, maka sama artinya anda telah membantu perusahaan ini menjual pulsa, dan karena itulah anda mendapat komisi, yang bisa meningkat tajam, berlapis-lapis. Saya bukan mengiming-imingi anda, namun konsep CRP DBS yang ini memang bisa demikian, dengan usaha yang konsisten dan serius.
Dulu semua orang beli pulsa menggunakan kartu fisik, jalan ke kios, bayar, penjualnya gosok voucher isi ulang, kita bayar, lalu pulsa dimasukkan secara manual.
Tak berselang lama, pasar diedukasi cara yang lebih modern, isi pulsa elektronik. Bagi penjual dan produsen pulsa, ini penghematan yang luar biasa. Sekarang semua isi ulang elektronik, hampir tak ada lagi isi ulang dengan kartu fisik.
Trend terus berganti, orang mencari suatu cara yang lebih mudah, dengan teknologi yang terus berkembang. Di tengah kesibukan kerja, atau hambatan ketidaktersediaan pulsa di suatu tempat misalnya, atau mungkin cuaca yang tak mengijinkan untuk keluar rumah, dan banyak lagi, maka pelaku bisnis mengedukasi pasar bagaimana caranya mengisi pulsa yang lebih mudah tanpa keluar rumah, kapan saja, di mana saja, ISI PULSA HP ANDA SENDIRI, dari HP anda sendiri.
Prediksi saya, cara orang mendapatkan pulsa tak lama lagi akan bergeser dari cara yang lama menjadi cara yang baru ini. Ketika kita pelaku bisnis ingin telepon atau SMS tetapi pulsa mepet, harus keluar rumah dulu baru dapat pulsa, why not isi langsung dari HP anda sendiri? Orang ingin yang semakin cepat, semakin ringkas. Anda ingat bagaimana kartu ATM menggeser cara transaksi uang? Bagaimana dulu orang merebus air atau membuat teh panas kemudian bergeser ke air minum kemasan? Semua demi kepraktisan, menggunakan sesuatu yang memudahkan hidup.
Isi pulsa dari HP anda sendiri adalah TREND KE DEPAN yang tak terelakkan
Sistem transfer dan deposit online, Mobile Banking dan ATM yang tersebar di seluruh negeri untuk transaksi keuangan, deposit yang bisa ditransfer antar member, bonus yang dapat dijadikan deposit dalam bisnis pulsa satu ini, memungkinkan semakin mudahnya anda mendapatkan pulsa.
Akhir Juli 2008 lalu, dalam NDT di Kopo Bandung, Pak Febrian ( Presiden Direktur PT. DFI) mengatakan dengan data terakhir yang beliau dapat, bahwa pemakai handphone Indonesia sampai dengan Juli 2008 ini sudah mencapai 80 juta orang, dan akan terus meningkat tajam ke depan. Ini pasar yang luar biasa besar. Bila anda memiliki intuisi bisnis yang tajam, maka anda dapat mengolah peluang ini menjadi UANG Jutaan Rupiah, bukan penghasilan biasa, melainkan penghasilan PASIF, artinya tanpa campur tangan anda secara langsung lagi maka kemudian penghasilan anda tetap mengalir. Tentu saja diperlukan usaha yang sangat keras, konsisten, strategi, kesabaran extra bahkan uang untuk mencapai hal ini.
Di acara NDT tersebut disampaikan rencana pengembanan DBS ke depan, DBS akan menjadi GAYA HIDUP sebagian besar orang ke depan. Dimana anda bisa menggunakan e-deposit selayaknya virtual money, bisa untuk membayar promosi bisnis di manapun, bisa untuk membayar proteksi kesehatan ( reward asuransi DBS ) anda dan keluarga. Nonton TV di HP anda dengan teknologi 3G saat ini, bermain games via HP anda, dan banyak lagi yang akan launching tahun depan. Anda tak akan melewatkan revolusi DBS sebagai bagian dari gaya hidup dan kesuksesan anda.
Dari sisi TREND dan GAYA HIDUP, so pasti siapapun tak akan terlambat untuk menikmatinya. Menurut Pak Febrian, pemakai pulsa Indonesia yang 80 juta orang tadi, baru sekitar 70.000 orang yang menikmati layanan DBS, dan 80 juta orang tersebut berpotensi meningkat tajam ke depan. Jadi, dari sisi bisnis apakah anda sudah terlambat ??
Saya tidak akan bosan untuk menjelaskan model bisnis DBS karena sebagian dari member belum punya waktu untuk mendalaminya. Kali ini saya akan memperjelas segi passive income yang diperoleh dari bisnis DBS, khususnya dalam hal kecepatan mencapainya dibandingkan dengan cara memperoleh income metode konvensional.
1. Gaji yang anda terima saat ini dari pekerjaan yang anda jalani (baik di kantor/tempat usaha lainnya) memang jumlahnya lumayan, tapi membutuhkan belasan tahun untuk mencapainya (antara 20 s/d 30 tahun, tergantung pendidikan, skill dan dedikasi anda). 2. Pendapatan dari bisnis DBS sekarang memang kecil karena jumlah downline masih sedikit. 3. Pendapatan anda setelah 3 s/d 4 tahun bergabung dengan DBS sudah bisa menggantikan gaji anda di kantor/tempat anda bekerja karena jumlah downline anda diperkirakan mencapai minimal 50.000 s/d 100.000 orang (tergantung keaktifan dan strategi yang anda jalani untuk mengembangkan jaringan). Resiko kehilangan income sangat kecil karena penghasilan anda yang besarnya puluhan juta rupiah per bulan (besarnya relatif, tergantung dari kemampuan masing-masing) berasal dari transaksi yang dilakukan ribuan orang yang ada di jaringan anda. Kalau seandainya sebanyak 1.000 s/d 5.000 orang keluar dari DBS, tidak akan berpengaruh signifikan pada income anda. Itulah sebabnya, bank lebih senang memiliki 10 juta nasabah yang masing-masing hanya mempunyai tabungan Rp 100 juta (kalau ditotal Rp 1 trilyun) daripada punya 2 nasabah kakap yang masing-masing memiliki uang Rp 500 milyar. Jika bank hanya mengandalkan beberapa gelintir nasabah kakap saja dan salah satu nasabah menarik tabunganya, bank bisa kolaps seketika.
Resiko kehilangan income karena DBS bangkrut tetap ada (misalkan karena perang/chaos), sedangkan resiko karena PHK dan Pensiun tidak dikenal karena hak keanggotaan bisa diwariskan.
Point terakhir inilah yang saya sebut VISION adanya penghasilan besar lagi mengalir dengan derasnya, meskipun baru 3 s/d 4 tahun. untuk mendapatkan inspirasi agar anda semakin bergairah menjalankan bisnis ini. , kemampuan melihat dengan mata pikiranDi sinilah letak rahasianya, penghasilan/income itu diciptakan dalam pikiran kita, melalui ide-ide yang diproduksi oleh pikiran kita. Semakin banyak ide yang anda miliki semakin besar peluang anda untuk menjadi kaya. Kabar gembiranya adalah memproduksi ide/berpikir itu gratis alias tidak bayar. Mengapa kita tidak mau setiap hari memproduksi ide/berpikir ??
Banyak orang tidak mengetahui/menyangka kekuatan bisnis DBS, padahal ini adalah peluang bisnis yang prospek ke depannya cerah. Milikilah gairah yang tinggi agar keinginan anda untuk pensiun kaya, menjadi kenyataan. Lihat kembali cerita Si Pembawa Ember
Setiap hari jaringan anda akan tumbuh, persis seperti sel kanker stadium 3 yang terus membelah diri. Anda tidak mampu menghentikan perkembangbiakannya. Malahan anda bisa mempercepatnya dengan terus-menerus merekrut sel/member baru. Inilah yang menarik, dan di sinilah kehebatan teknik pemasaran jaringan.
Bisnis jaringan ini sangat cocok untuk orang-orang yang belum berpengalaman, memiliki atau menjalankan bisnis pribadi, karena resiko finansialnya sangat kecil. Anda tidak perlu keluar uang untuk sewa tempat usaha, bayar gaji, dll. Anda cukup fokus/konsentrasi pada satu aspek saja yaitu pemasaran/penjualan. Biarkan masalah lain (operasional, kepegawaian, pelayanan komplain pelanggan, pembukuan, perpajakan, dan lain-lain) diurus oleh staff atau manajemen DBS. Kita sebagai pemegang hak berusaha (personal franchise) tinggal fokus untuk jualan dan jualan saja.
Saya harus mengucapkan terima kasih pada orang-orang yang telah memperkenalkan DBS ini melalui BOS di ITB, meskipun awalnya saya ragu, karena saya belum mendapatkan informasi secara lengkap/utuh. Kemudian saya mencari informasi di Internet untuk memperoleh keterangan/penjelasan secara lengkap, barulah saya yakin dengan bisnis ini. Itulah salah satu alasan mengapa saya memilih DBS sebagai 'skoci penyelamat/parasut cadangan' kalau parasut utama saya gagal. Meskipun anda bisa bekerja mencari uang (mengangkat ember), pertanyaannya adalah berapa lama lagi anda bisa bertahan (faktor usia yang akan menghentikan kemampuan anda mencari uang dengan cara tradisional, yaitu menukar tenaga dengan gaji/upah).
Yang penting di bisnis ini, anda tidak menghadapi berbagai resiko bisnis yang umumnya dihadapi oleh para pengusaha. Berikut ini adalah beberapa resiko usaha yang umum dialami para pengusaha :
1) Penumpukan stock yang tidak laku terjual, rusak, atau hilang
2) Tagihan yang tidak dibayar oleh pelanggan yang nakal atau curang
3) Kena palakan dari oknum/pejabat perijinan/preman lapangan (baik yang berseragam atau tidak)
4) Moral karyawan yang turun-naik dan pegawai yang keluar masuk (employee turnover)
5) Ditipu atau dicurangi oleh karyawan sendiri atau oleh pemasok
6) Keluhan/komplain dari pelanggan yang tidak puas dengan produk atau pelayanan anda
7) Biaya operasional yang terus naik serta urusan dengan kantor pajak yang bikin pusing kepala, dll.
Yang paling saya suka dari bisnis ini adalah bahwa kita di sini statusnya bukan sebagai karyawan, tetapi pengusaha (karyawan bekerja untuk orang lain, pengusaha bekerja untuk diri sendiri). Kita adalah pemilik bisnis sendiri, yang mengatur waktunya kita, tidak ada bos, tidak ada yang mengatur/menekan dan besarnya income yang ingin kita peroleh juga ditentukan oleh kita sendiri. Bahkan perkembangan bonus dan jaringan bisa kita pantau setiap hari dari waktu ke waktu melalui internet/HP. Bahkan bisa dijalankan kapan saja, dan di mana saja, karena bisnis ini tidak membutuhkan kantor (bahkan anda bisa nebeng di kantor tempat anda saat ini bekerja). Ini benar-benar suatu kemudahan yang sangat luar biasa dahsyat.
Teka-teki sederhana : Kalau anda ingin punya omset penjualan sebesar Rp 50 juta/bulan, mana yang anda pilih :
1. Melayani 1.000 orang pembeli atau 1.000x yang masing-masing membeli pulsa Rp 50.000/bulan atau
2. Menjual pulsa Rp 50.000/bulan kepada suatu jaringan konsumen yang anggotanya 1.000 orang
Jika anda memilih cara pertama, maka anda berpikir sebagai seorang pengecer (reseller), sedangkan jika anda memilih cara kedua, maka anda berpikir sebagai seorang pemasar berbasis jaringan. Pemasar berbasis jaringan tidak mau melayani 1.000x, tetapi memilih membangun jaringan yang beranggota 1.000 orang, sehingga tidak perlu melayani 1.000x tetapi tetap memperoleh hasil yang sama (omset penjualan tetap Rp 50 juta/bulan). Lebih smart bukan ??
Perbedaan lainnya adalah jika anda menjadi pengecer, anda tidak bisa pensiun karena harus melayani pelanggan terus-menerus agar tetap mempunyai income. Sedangkan dengan model bisnis jaringan, tanpa melayani pelanggan pun anda tetap bisa memperoleh penghasilan. Makanya disebut passive income. Ini perbedaan yang sangat fundamental kalau anda ingin terbebas dari kesulitan finansial. Inilah model penghasilan abad 21 yang bisa diperoleh siapa saja. Zaman dulu hanya para bangsawan dan keluarga raja yang bisa mendapatkan passive income dari aset properti atau tanahnya. Saat ini, siapa saja bisa mendapatkan passive income asal tahu caranya dan berani ambil tindakan. Passive income adalah model pendapatan yang paling ideal.
Robert Kyosaki mendefinisikan bahwa orang disebut kaya apabila passive income-nya sudah melebihi kebutuhan hidupnya sehari-hari, sehingga tidak bekerja pun orang tersebut bisa mempertahankan gaya hidup seperti sedia kala (artinya kalau semula naik BMW, maka setelah tidak bekerja pun tetap naik BMW, bukan naik motor). Setiap orang pasti punya impian atau keinginan untuk mencapai tingkatan tersebut (minimal terbebas dari kesulitan secara finansial), tetapi tidak semua orang bisa mewujudkannya. Lalu apa yang membedakannya? Action atau tindakannya. Karena knowledge is something, but action is everything. Cuma tahu ilmunya atau membaca bukunya, tidak akan membuat anda jadi kaya, tetapi jika anda menjalankan atau mempraktekkan yang diajarkan di buku tersebut, barulah anda bisa mewujudkan impian tadi. Itulah sebabnya, 90% kekayaan di dunia ini hanya dikuasai oleh 5% orang yang action. Sedangkan 95% penduduk dunia, berebut sisa uang beredar yang hanya 10%. Mirip hukum Pareto (pareto law) yang mengatakan bahwa 80% pendapatan perusahaan disumbangkan oleh 20% pelanggan saja.
a. Pola pendapatan dan konsumsi rumah tangga bila hanya mengandalkan dari gaji/upah saja
Pada saat garis putus-putus (kurva konsumsi) berada di atas garis utuh (kurva pendapatan), maka anda sudah menjadi beban orang lain. Itu karena anda tidak cukup punya tabungan/penghasilan untuk menopang biaya hidup sehari-hari, sementara karena faktor usia dan kesehatan, anda tidak bisa menjual tenaga yang anda miliki ke pasar tenaga kerja (tidak laku di pasar). Ditambah kenyataan bahwa sebagian besar orang tidak mendapatkan jaminan dana pensiun yang memadai, maka tidak jarang anda akan menjumpai orang yang baru satu tahun pensiun, langsung menjual harta benda yang dimiliki (mobil, rumah, perhiasan, dll) untuk mempertahankan gaya hidupnya. Dalam ilmu ekonomi, fenomena menguras tabungan ini disebut 'dis-saving' atau menyembelih angsa. Lebih celaka lagi jika tekanan finansial menyebabkan tekanan darah anda ikut meningkat, lalu stroke. Banyak orang mengarungi kehidupan ibarat naik perahu menyusuri sungai Niagara, baru panik setelah perahunya mendekati ujung air terjun (kok dalam sekali terjun bebasnya ya ?? bisa celaka saya). Begitulah kalau hidup hanya mengalir saja.
b. Pola pendapatan dan konsumsi bila anda punya passive income (selain gaji/upah)
Grafik pendapatan anda tidak pernah turun karena pendapatan anda hanya berganti dari pendapatan aktif menjadi pendapatan pasif (dari aset yang anda kumpulkan). Jadi, selagi masih muda, kumpulkan sebanyak mungkin aset produktif (ruko, rumah kost, termasuk bisnis jaringan DBS) agar income anda tidak turun sejalan dengan bertambahnya usia. Hal paling menarik dari penghasilan yang berasal dari aset adalah bersedia bekerja 24 jam sehari, 365 hari setahun tanpa meminta cuti, tidak mengenal mogok, pensiun, sangat loyal dan tidak pernah protes kepada majikannya, bisa diwariskan ke beberapa generasi berikutnya, dan nilainya bisa terus meningkat seiring dengan berjalannya waktu.
updated on Sunday, 8 February 2009 by chikmonk gokill
Beberapa bagian dari tulisan asli telah mengalami modifikasi dan penyesuaian. Beberapa yang kurang tepat juga telah saya hapus dan saya sesuaikan relatif terhadap pendapat saya sendiri. Mohon maaf.
Pada dasarnya, setiap pelaku TI atau praktisi hacking itu sendiri mendefenisikan konsep 'HACKING' yang berbeda. Tidak tertutup kemungkinan untuk terjadi perbedaan pendapat terhadap konsep yang di makhsud, namun cukup jadikan perbedaan pendapat sebagai sebuah kekayaan pemikiran.
Dalam perjalanan menuju pendewasaan, perubahan pola pikir dan kemampuan teknik, setiap manusia yang memasuki wilayah hacking akan melewati beberapa tingkatan.
1. Si Dungu Saya rasa tidak berlebihan untuk menyebut masyarakat pada tingkatan ini dengan istilah dungu. Mereka hanya memiliki kemampuan teknis komputer yang rendah dan mengenal hacking dari surat kabar, bahwa hacker adalah seorang penjahat elektronik. Bahkan beberapa diantara mereka juga menulis di surat kabar dalam hal dan konsep yang sama.
2. Lamer Lamer merupakan sebuah fenomenal awal remaja yang tertarik mempelajari hacking. Mereka mempunyai kemampuan komputer standar dan sedikit lebih banyak mendapat informasi. Mereka mencoba mencari petunjuk serangan praktis. Baik dari e-zine maupun melalui diskusi IRC (Chatting). Serangan dilakukan dengan trojan, sebuah remote administration tool yang memberikan akses terhadap mesin yang telah terinfeksi. Lamer juga melakukan benyak hal-hal tidak berguna, seperti tukar-menukar nomor kartu kredit, dan tukar-menukar password website porno komersial. Hacker yang kompeten, atau remaja yang berhasil lolos dari 'seleksi alam' akan melalui masa ini dengan begitu cepat memasuki wilayah penuh keingintahuan.
3. Wannabe Wannabe hacker menganggap hacking lebih sebagai philosophy, atau seni kehidupan. Mereka mulai membaca teknik-teknik hacking dasar dan melakukan searching (pencarian) dokumen-dokumen hack yang lebih serius. Wannabe telah menunjukkan antusiasnya dalam hacking dan mulai meninggalkan dunia lamer yang penuh kebodohan.
4. Larva Perjalanan penuh perjuangan menjadi kupu-kupu. Larva telah disibukkan dengan berbagai pertanyaan bagaimana benda-benda bekerja ? Bagaimana dunia bekerja. Larva adalah step terpenting dalam pembentukan jati diri hacker. Mereka menemukan cara untuk membuat eksploits sendiri. Mencoba melakukan penetrasi sistem tanpa melakukan pengerusakan, karena mereka tahu, pengerusakan sistem adalah cara termudah bagi mereka (sysadmin dan polisi) untuk menangkap jejak sang larva.
5. Hacker Sebuah keindahan, naluri, karunia tuhan terhadap orang-orang yang berjuang. Akhirnya tingkatan tertinggi dari budaya digital telah dicapai. Sebuah dunia baru menanti. Dunia hacking !!
Sesunguhnya setiap orang tidak akan tau kapan pastinya ia menjadi hacker. Sama halnya dengan anda tidak pernah tau pasti kapan anda tertidur. Hal terpenting adalah terus belajar dan mengembangkan pengetahuan. Saat anda beristirahat sejenak dan mengenang kembali .. anda telah menjadi hacker.
Kemampuan spesial.
Hacker dalam tahap pendewasaannya akan mengalami spesialisasi skil/kemampuan. Mereka akan dikenal sebagai:
1. Wizard Yaitu seseorang yang memiliki pengetahuan yang begitu banyak terhadap subyek tertentu.
2. Guru Seseorang yang tau apapun tehadap subyek tertentu. Mereka mengetahui fitur-fitur tak terdokumentasi. Trik-trik pengembangan, dan teknik-teknik mengalahkan keterbatasan - limit -
Hacker sejati mengenal kebodohannya dan terus mengembangkan diri untuk mengatasi semua kebodohannya. Dan dalam perjalanan itu alam mengadakan seleksi, siapakah yang mampu bertahan ?
sumber : http://www.elfqrin.com/docs/HackerStages.html ( versi inggris ) sumber : http://yogyafree.net/forum2/viewtopic.php?f=76&t=397
updated on Monday, 2 February 2009 by chikmonk gokill
Tahun 1978, Brian W. Kerninghan & Dennis M. Ritchie dari AT & T Laboratories mengembangkan bahasa B menjadi bahasa C. Bahasa B yang diciptakan oleh Ken Thompson sebenarnya merupakan pengembangan dari bahasa BCPL ( Basic Combined Programming Language ) yang diciptakan oleh Martin Richard.
Sejak tahun 1980, bahasa C banyak digunakan pemrogram di Eropa yang sebelumnya menggunakan bahasa B dan BCPL. Dalam perkembangannya, bahasa C menjadi bahasa paling populer diantara bahasa lainnya, seperti PASCAL, BASIC, FORTRAN.
Tahun 1989, dunia pemrograman C mengalami peristiwa penting dengan dikeluarkannya standar bahasa C oleh American National Standards Institute (ANSI). Bahasa C yang diciptakan Kerninghan & Ritchie kemudian dikenal dengan nama ANSI C.
Mulai awal tahun 1980, Bjarne Stroustrup dari AT & T Bell Laboratories mulai mengembangkan bahasa C. Pada tahun 1985, lahirlah secara resmi bahasa baru hasil pengembangan C yang dikenal dengan nama C++. Sebenarnya bahasa C++ mengalami dua tahap evolusi. C++ yang pertama, dirilis oleh AT&T Laboratories, dinamakan cfront. C++ versi kuno ini hanya berupa kompiler yang menterjemahkan C++ menjadi bahasa C.
Pada evolusi selanjutnya, Borland International Inc. mengembangkan kompiler C++ menjadi sebuah kompiler yang mampu mengubah C++ langsung menjadi bahasa mesin (assembly). Sejak evolusi ini, mulai tahun 1990 C++ menjadi bahasa berorientasi obyek yang digunakan oleh sebagian besar pemrogram professional.
Struktur Bahasa C++ Contoh 1 : Hasil :
// my first program in C++ Hello World! #include int main () { cout << "Hello World!";
return 0;
}
Sisi kiri merupakan source code, yang dapat diberi nama hiworld.cpp dan sisi kanan adalah hasilnya setelah di-kompile dan di-eksekusi.
Program diatas merupakan salah satu program paling sederhana dalam C++, tetapi dalam program tersebut mengandung komponen dasar yang selalu ada pada setiap pemrograman C++. Jika dilihat satu persatu :
// my first program in C++
Baris ini adalah komentar. semua baris yang diawali dengan dua garis miring (//) akan dianggap sebagai komentar dan tidak akan berpengaruh terhadap program. Dapat digunakan oleh programmer untuk menyertakan penjelasan singkat atau observasi yang terkait dengan program tersebut.
#include Kalimat yang diawali dengan tanda (#) adalah are preprocessor directive. Bukan merupakan baris kode yang dieksekusi, tetapi indikasi untuk kompiler. Dalam kasus ini kalimat #include memberitahukan preprocessor kompiler untuk menyertakan header file standard iostream. File spesifik ini juga termasuk library deklarasi standard I/O pada C++ dan file ini disertakan karena fungsi-fungsinya akan digunakan nanti dalam program. int main () Baris ini mencocokan pada awal dari deklarasi fungsi main. fungsi main merupakan titik awal dimana seluruh program C++ akan mulai dieksekusi. Diletakan diawal, ditengah atau diakhir program, isi dari fungsi main akan selalu dieksekusi pertama kali. Pada dasarnya, seluruh program C++ memiliki fungsi main. main diikuti oleh sepasang tanda kurung () karena merupakan fungsi. pada C++, semua fungsi diikuti oleh sepasang tanda kurung () dimana, dapat berisi argumen didalamnya. Isi dari fungsi main selanjutnya akan mengikuti,berupa deklarasi formal dan dituliskan diantara kurung kurawal ({}), seperti dalam contoh. cout << "Hello World";
Intruksi ini merupakan hal yang paling penting dalam program contoh. cout merupakan standard output stream dalam C++ (biasanya monitor). cout dideklarasikan dalam header file iostream.h, sehingga agar dapat digunakan maka file ini harus disertakan.
Perhatikan setiap kalimat diakhiri dengan tanda semicolon (;). Karakter ini menandakan akhir dari instruksi dan harus disertakan pada setiap akhir instruksi pada program C++ manapun.
return 0;
Intruksi return menyebabkan fungsi main() berakhir dan mengembalikan kode yang mengikuti instruksi tersebut, dalam kasus ini 0. Ini merupakan cara yang paling sering digunakan untuk mengakhiri program.
Tidak semua baris pada program ini melakukan aksi. Ada baris yang hanya berisi komentar (diawali //), baris yang berisi instruksi untuk preprocessor kompiler (Yang diawali #),kemudian baris yang merupakan inisialisasi sebuah fungsi (dalam kasus ini, fungsi main) dan baris yang berisi instruksi (seperti, cout <<), baris yang terakhir ini disertakan dalam blok yang dibatasi oleh kurung kurawal ({}) dari fungsi main.
Struktur program dapat dituliskan dalam bentuk yang lain agar lebih mudah dibaca, contoh :
int main ()
{
cout << " Hello World ";
return 0;
}
Atau dapat juga dituliskan :
int main () { cout << " Hello World "; return 0; }
Dalam satu baris dan memiliki arti yang sama dengan program-program sebelumnya. pada C++ pembatas antar instruksi ditandai dengan semicolon (;) pada setiap akhir instruksi.
Contoh 2 : Hasil :
// my second program in C++ Hello World! I'm a C++ program
#include
int main () { cout << "Hello World! ";
cout << "I'm a C++ program";
return 0;
}
Komentar
Komentar adalah bagian dari program yang diabaikan oleh kompiler. Tidak melaksanakan aksi apapun. Mereka berguna untuk memungkinkan para programmer untuk memasukan catatan atau deskripsi tambahan mengenai program tersebut. C++ memiliki dua cara untuk menuliskan komentar :
// Komentar baris
/* Komentar Blok */
Komentar baris, akan mengabaikan apapun mulai dari tanda (//) sampai akhir dari baris yang sama. Komentar Blok, akan mengabaikan apapun yang berada diantara tanda /* dan */.
Variabel, tipe data, konstanta
Untuk dapat menulis program yang dapat membantu menjalankan tugas-tugas kita, kita harus mengenal konsep dari variabel. Sebagai ilustrasi, ingat 2 buah angka, angka pertama adalah 5 dan angka kedua adalah 2. Selanjutnya tambahkan 1 pada angka pertama kemudian hasilnya dikurangi angka kedua (dimana hasil akhirnya adalah 4).
Seluruh proses ini dapat diekspresikan dalam C++ dengan serangkaian instruksi sbb :
a = 5;
b = 2;
a = a + 1;
result = a - b;
Jelas ini merupakan satu contoh yang sangat sederhana karena kita hanya menggunakan 2 nilai integer yang kecil, tetapi komputer dapat menyimpan jutaan angka dalam waktu yang bersamaan dan dapat melakukan operasi matematika yang rumit.
Karena itu, kita dapat mendefinisikan variable sebagai bagian dari memory untuk menyimpan nilai yang telah ditentukan. Setiap variable memerlukan identifier yang dapat membedakannya dari variable yang lain, sebagai contoh dari kode diatas identifier variabelnya adalah a, b dan result, tetapi kita dapat membuat nama untuk variabel selama masih merupakan identifier yang benar.
Identifiers
Identifier adalah untaian satu atau lebih huruf, angka, atau garis bawah ( _ ). Panjang dari identifier, tidak terbatas, walaupun untuk beberapa kompiler hanya 32 karakter pertama saja yang dibaca sebagai identifier (sisanya diabaikan). Identifier harus selalu diawali dengan huruf atau garis bawah ( _ ).
Ketentuan lainnya yang harus diperhatikan dalam menentukan identifier adalah tidak boleh menggunakan key word dari bahasa C++. Diawah ini adalah key word dalam C++ :
asm auto bool break case
catch char class const const_cast
continue default delete do double
dynamic_cast else enum explicit extern
false float for friend goto
if inline int long mutable
namespace new operator private protected
public register reinterpret_cast return short
signed sizeof static static_cast struct
switch template this throw true
try typedef typeid typename union
unsigned using virtual void volatile
wchar_t
Sebagai tambahan, represetasi alternatif dari operator, tidak dapat digunakan sebagai identifier. Contoh :
and, and_eq, bitand, bitor, compl, not, not_eq, or, or_eq, xor, xor_eq
catatan: Bahasa C++ adalah bahasa yang "case sensitive", ini berarti identifier yang dituliskan dengan huruf kapital akan dianggap berbeda dengan identifier yang sama tetapi dituliskan dengan huruf kecil, sabagai contoh : variabel RESULT tidak sama dengan variable result ataupun variabel Result.
Tipe Data
Tipe data yang ada pada C++, berikut nilai kisaran yang dapat direpresentasikan :
DATA TYPES Name Bytes* Description Range* char 1 character or integer 8 bits length. signed: -128 to 127 unsigned: 0 to 255 short 2 integer 16 bits length. signed: -32768 to 32767 unsigned: 0 to 65535 long 4 integer 32 bits length. signed:-2147483648 to 2147483647 unsigned: 0 to 4294967295 int * Integer. Its length traditionally depends on the length of the system's Word type, thus in MSDOS it is 16 bits long, whereas in 32 bit systems (like Windows 9x/2000/NT and systems that work under protected mode in x86 systems) it is 32 bits long (4 bytes). See short, long float 4 floating point number. 3.4e + / - 38 (7 digits) double 8 double precision floating point number. 1.7e + / - 308 (15 digits) long double 10 long double precision floating point number. 1.2e + / - 4932 (19 digits) bool 1 Boolean value. It can take one of two values: true or false NOTE: this is a type recently added by the ANSI-C++ standard. Not all compilers support it. Consult section bool type for compatibility information. true or false wchar_t 2 Wide character. It is designed as a type to store international characters of a two-byte character set. NOTE: this is a type recently added by the ANSI-C++ standard. Not all compilers support it. wide characters
Deklarasi variabel Untuk menggunakan variabel pada C++, kita harus mendeklarasikan tipe data yang akan digunakan. Sintaks penulisan deklarasi variabel adalah dengan menuliskan tipe data yang akan digunakan diikuti dengan identifier yang benar, contoh : int a; float mynumber; Jika akan menggunakan tipe data yang sama untuk beberapa identifier maka dapata dituliskan dengan menggunakan tanda koma, contoh : int a, b, c; Tipe data integer (char, short, long dan int) dapat berupa signed atau unsigned tergantung dari kisaran nilai yang akan direpresentasikan. Dilakukan dengan menyertakan keyword signed atau unsigned sebelum tipe data, contoh : unsigned short NumberOfSons; signed int MyAccountBalance; Jika tidak dituliskan, maka akan dianggap sebagai signed.
Contoh 3 : Hasil : // operating with variables #include 4
int main () { // declaring variables: int a, b; int result;
// process: a = 5; b = 2; a = a + 1; result = a - b;
Inisialisasi Variabel Ketika mendeklarasikan variabel local, kita dapat memberikan nilai tertentu. Sintaks penulisan sbb : type identifier = initial_value ;
Misalkan kita akan mendeklarasikan variabel int dengan nama a yang bernilai 0, maka dapat dituliskan : int a = 0; Atau dengan cara lainnya, yaitu menyertakan nilai yang akan diberikan dalam tanda (): type identifier (initial_value) ; Contoh : int a (0); Lingkup Variabel Pada C++, kita dapat mendeklarasikan variable dibagian mana saja dari program, bahkan diantara 2 kalimat perintah. variabel Global dapat digunakan untuk setiap bagian dari program, maupun fungsi, walaupun dideklarasikan diakhir program.
Lingkup dari variable local terbatas. Hanya berlaku dimana variable tersebut dideklarasikan. Jika dideklarasikan diawal fungsi (seperti dalam main) maka lingkup dari variable tersebut adalah untuk seluruh fungsi main. Seperti contoh diatas, jika terdapat fungsi lain yang ditambahkan pada main(), maka variable local yang dideklarasikan dalam main tidak dapat digunakan pada fungsi lainnya dan sebaliknya.
Pada C++, lingkup variable local ditandai dengan blok dimana variable tersebut dideklarasikan ( blok tersebut adalah sekumpulan instruksi dalam kurung kurawal {} ). Jika dideklarasikan dalam fungsi tersebut, maka akan berlaku sebagai variable dalam fungsi tersebut, jika dideklarasikan dalam sebuah perulangan, maka hanya berlaku dalam perulangan tersebut, dan seterusnya.
Konstanta : Literals. Konstanta adalah ekspresi dengan nilai yang tetap. Terbagi dalam Nilai Integer, Nilai Floating-Point, Karakter and String. Nilai Integer Merupakan nilai konstanta numerik yang meng-identifikasikan nilai integer decimal. Karena merupakan nilai numeric, maka tidak memerlukan tanda kutip (") maupun karakter khusus lainnya. Contoh : 1776 707 -273 C++ memungkinkan kita untuk mempergunakan nilai oktal (base 8) dan heksadesimal (base 16). Jika menggunakan octal maka harus diawali dengan karakter 0 (karakter nol), dan untuk heksadesimal diawali dengan karakter 0x (nol, x). Contoh :
75 // decimal 0113 // octal 0x4b // hexadecimal
Dari contoh diatas, seluruhnya merepresentasikan nilai yang sama : 75. Nilai Floating Point Merepresentasikan nilai desimal dan/atau eksponen, termasuk titik desimal dan karakter e (Yang merepresentasikan 'dikali 10 pangkat n' , dimana n merupakan nilai integer) atau keduanya. Contoh :
3.14159 // 3.14159 6.02e23 // 6.02 x 1023 1.6e-19 // 1.6 x 10-19 3.0 // 3.0
Karakter dan String Merupakan konstanta non-numerik, Contoh : 'z' 'p' "Hello world" "How do you do?" Untuk karakter tunggal dituliskan diantara kutip tunggal (') dan untuk untaian beberapa karakter, dituliskan diantara kutip ganda (").
Konstanta karakter dan string memiliki beberapa hal khusus, seperti escape codes.
Contoh : '\n' '\t' "Left \t Right" "one\ntwo\nthree" Sebagai tambahan, kita dapat menuliskan karakter apapun dengan menuliskan yang diikuti dengan kode ASCII, mengekspresikan sebagai octal (contoh, \23 atau \40) maupun heksadesimal (contoh, \x20 atau \x4A).
Konstanta Define (#define) Kita dapat mendefinisikan sendiri nama untuk konstanta yang akan kita pergunakan, dengan menggunakan preprocessor directive #define. Dengan format : #define identifier value Contoh : #define PI 3.14159265 #define NEWLINE '\n' #define WIDTH 100 Setelah didefinisikan seperti diatas, maka kita dapat menggunakannya pada seluruh program yang kita buat, contoh : circle = 2 * PI * r; cout << NEWLINE;
Pada dasarnya, yang dilakukan oleh kompiler ketika membaca #define adalah menggantikan literal yang ada (dalam contoh, PI, NEWLINE atau WIDTH) dengan nilai yang telah ditetapkan (3.14159265, '\n' dan 100). #define bukan merupakan instruksi, oleh sebab itu tidak diakhiri dengan tanda semicolon (;).
Deklarasi Konstanta (const)
Dengan prefix const kita dapat mendeklarasikan konstanta dengan tipe yang spesifik seperti yang kita inginkan. contoh :
const int width = 100;
const char tab = '\t';
const zip = 12440;
Jika tipe data tidak disebutkan, maka kompiler akan meng-asumsikan sebagai int.
Operator
Operator-operator yang disediakan C++ berupa keyword atau karakter khusus. Operator-operator ini cukup penting untuk diketahui karena merupakan salah satu dasar bahasa C++.
Assignation (=).
Operator assignation digunakan untuk memberikan nilai ke suatu variable.
a = 5;
Memberikan nilai integer 5 ke variabel a. Sisi kiri dari operator disebut lvalue (left value) dan sisi kanan disebut rvalue (right value). lvalue harus selalu berupa variabeldan sisi kanan dapat berupa konstanta, variabel, hasil dari suatu operasi atau kombinasi dari semuanya.
Contoh :
int a, b; // a:? b:?
a = 10; // a:10 b:?
b = 4; // a:10 b:4
a = b; // a:4 b:4
b = 7; // a:4 b:7
Hasil dari contoh diatas, a bernilai 4 dan b bernilai 7.
Contoh :
a = 2 + (b = 5);
equivalen dengan :
b = 5;
a = 2 + b;
Arithmetic operators ( +, -, *, /, % )
+ addition
- subtraction
* multiplication
/ division
% module
Compound assignation operators
(+=, -=, *=, /=, %=, >>=, <<=, &=, ^=, |=)
contoh :
value += increase; equivalen dengan value = value + increase;
a -= 5; equivalen dengan a = a - 5;
a /= b; equivalen dengan a = a / b;
price *= units + 1; equivalen dengan price = price * (units + 1);
Increase (++) and decrease (--).
Contoh :
a++;
a+=1;
a=a+1;
Contoh diatas adalah equivalen secara fungsional. Nilai a dikurangi 1.
Operator Increase dan Decrease dapat digunakan sebagai prefix atau suffix. Dengan kata lain dapat dituliskan sebelum identifier variabel (++a) atau sesudahnya (a++). operator increase yang digunakan sebagai prefix (++a), Perbedaannya terlihat pada tabel dibawah ini :
Example 1 Example 2
B=3;
A=++B;
// A is 4, B is 4 B=3;
A=B++;
// A is 3, B is 4
Pada contoh 1, B ditambahkan sebelum nilainya diberikan ke A. Sedangkan contoh 2, Nilai B diberikan terlebih dahulu ke A dan B ditambahkan kemudian.
Relational operators ( ==, !=, >, <, >=, <= )
Untuk mengevaluasi antara 2 ekspresi, dapat digunakan operator Relasional. Hasil dari operator ini adalah nilai bool yaitu hanya berupa true atau false, atau dapat juga dalam nilai int, 0 untuk mereprensentasikan "false" dan 1 untuk merepresentasikan "true". Operator-operator relasional pada C++ :
== Equal
!= Different
> Greater than < Less than
>= Greater or equal than <= Less or equal than
Contoh :
(7 == 5) would return false.
(5 > 4) would return true. (3 != 2) would return true. (6 >= 6) would return true. (5 < 5) would return false.
Contoh, misalkan a=2, b=3 dan c=6 :
(a == 5) would return false.
(a*b >= c) would return true since (2*3 >= 6) is it. (b+4 > a*c) would return false since (3+4 > 2*6) is it. ((b=2) == a) would return true.
Logic operators ( !, &&, || ). Operator ! equivalen dengan operasi boolean NOT, hanya mempunyai 1 operand, berguna untuk membalikkan nilai dari operand yang bersangkutan. Contoh :
!(5 == 5) returns false because the expression at its right (5 == 5) would be true. !(6 <= 4) returns true because (6 <= 4) would be false.
!true returns false.
!false returns true.
operator Logika && dan || digunakan untuk mengevaluasi 2 ekspresi dan menghasilkan 1 nilai akhir. mempunyai arti yang sama dengan operator logika Boolean AND dan OR. Contoh :
First
Operand
a Second
Operand
b result
a && b result
a || b
true true true true
true false false true
false true false true
false false false false
Contoh :
( (5 == 5) && (3 > 6) ) returns false ( true && false ). ( (5 == 5) || (3 > 6)) returns true ( true || false ). Conditional operator ( ? ). operator kondisional mengevaluasi ekspresi dan memberikan hasil tergantung dari hasil evaluasi (true atau false). Sintaks : condition ? result1 : result2 Jika kondisi true maka akan menghasilkan result1, jika tidak akan menghasilkan result2.
7==5 ? 4 : 3 returns 3 since 7 is not equal to 5. 7==5+2 ? 4 : 3 returns 4 since 7 is equal to 5+2. 5>3 ? a : b returns a, since 5 is greater than 3. a>b ? a : b returns the greater one, a or b.
Bitwise Operators ( &, |, ^, ~, <<, >> ). Operator Bitwise memodifikasi variabel menurut bit yang merepresentasikan nilai yang disimpan, atau dengan kata lain dalam representasi binary.
op asm Description & AND Logical AND | OR Logical OR ^ XOR Logical exclusive OR ~ NOT Complement to one (bit inversion) << SHL Shift Left
>> SHR Shift Right
Explicit type casting operators Type casting operators memungkinkan untuk mengkonversikan tipe data yang sudah diberikan ke tipe data yang lain. Ada beberapa cara yang dapat dilakukan dalam C++, yang paling popular yaitu tipe baru dituliskan dalam tanda kurung () contoh: int i; float f = 3.14; i = (int) f;
Contoh diatas, mengkonversikan nilai 3.14 menjadi nilai integer (3). Type casting operator yang digunakan (int). Cara lainnya : i = int ( f );
sizeof() Operator ini menerma 1 parameter, dapat berupa type variabel atau variabel itu sendiri dan mengembalikan ukurannya type atau object tersebut dalam bytes : a = sizeof (char); Contoh diatas akan memberikan nilai 1ke a karena char adalah tipe data dengan panjang 1 byte. Nilai yang diberikan oleh sizeof bersifat konstsn constant.
Prioritas pada operator Contoh : a = 5 + 7 % 2 Jawaban dari contoh diatas adalah 6. Dibawah ini adalah prioritas operator dari tinggi ke rendah :
Priority Operator Description Associativity 1 :: scope Left 2 () [ ] -> . sizeof Left 3 ++ -- increment/decrement Right ~ Complement to one (bitwise) ! unary NOT & * Reference and Dereference (pointers) (type) Type casting + - Unary less sign 4 * / % arithmetical operations Left 5 + - arithmetical operations Left 6 << >> bit shifting (bitwise) Left 7 < <= > >= Relational operators Left 8 == != Relational operators Left 9 & ^ | Bitwise operators Left 10 && || Logic operators Left 11 ?: Conditional Right 12 = += -= *= /= %= >>= <<= &= ^= |= Assignation Right
13 , Comma, Separator Left
Komunikasi melalui console
Console merupakan interface dasar pada computers, biasanya berupa keyboard dan monitor. Keyboard merupakan alat input standar dan monitor adalah alat output standar. Dalam library iostream C++ , standard operasi input dan output untuk pemrograman didukung oleh 2 data streams: cin untuk input dan cout untuk output. Juga, cerr dan clog sebagai tambahan untuk output streams yang di desain khusus untuk menampilkan error messages. Dapat diarahkan langsung ke standard output maupun ke log file.
Biasanya cout (standard output stream) ditujukan untuk monitor dan cin (standard input stream) ditujukan untuk keyboard. Dengan menggunakan dua streams ini, maka kita dapat berinteraksi dengan user dengan menampilkan messages pada monitor dan menerima input dari keyboard.
Output (cout)
Penggunaan cout stream dhubungkan dengan operator overloaded << (Sepasang tanda "less than"). Contoh :
cout << "Output sentence"; // prints Output sentence on screen
cout << 120; // prints number 120 on screen
cout << x; // prints the content of variable x on screen
Operator << dikenal sebagai insertion operator, dimana berfungsi untuk menginput data yang mengikutinya. Jika berupa string, maka harus diapit dengan kutip ganda ("), sehingga membedakannya dari variable. Contoh :
cout << "Hello"; // prints Hello on screen
cout << Hello; // prints the content of Hello variable on screen
Operator insertion (<<) dapat digunakan lebih dari 1 kali dalam kalimat yang sama, Contoh :
cout << "Hello, " << "I am " << "a C++ sentence";
Contoh diatas akan menampilkan Hello, I am a C++ sentence pada layar monitor. Manfaat dari pengulangan penggunaan operator insertion (<<) adalah untuk menampilkan kombinasi dari satu variabel dan konstanta atau lebih, contoh :
cout << "Hello, I am " << age << " years old and my zipcode is " << zipcode;
Misalkan variable age = 24 dan variable zipcode = 90064 maka output yang dihasilkan :
Hello, I am 24 years old and my zipcode is 90064
Contoh :
cout << "First sentence.\n ";
cout << "Second sentence.\nThird sentence.";
Output :
First sentence.
Second sentence.
Third sentence.
Selain dengan karakter new-line, dapat juga menggunakan manipulator endl, contoh :
cout << "First sentence." << endl;
cout << "Second sentence." << endl;
Output :
First sentence.
Second sentence.
Input (cin).
Menangani standard input pada C++ dengan menambahkan overloaded operator extraction (>>) pada cin stream. Harus diikuti bengan variable yang akan menyimpan data. Contoh :
int age; cin >> age;
Contoh diatas mendeklarasikan variabel age dengan tipe int dan menunggu input dari cin (keyborad) untuk disimpan di variabel age.
cin akan memproses input dari keyboard sekali saja dan tombol ENTER harus ditekan.
Contoh : // i/o example #include
int main () { int i; cout << "Please enter an integer value: ";
cin >> i; cout << "The value you entered is " << i;
cout << " and its double is " << i*2 << ".\n";
return 0;
}
Output :
Please enter an integer value: 702
The value you entered is 702 and its double is 1404.
cin juga dapat digunakan untuk lebih dari satu input :
cin >> a >> b;
Equivalen dengan : cin >> a; cin >> b;
Dalam hal ini data yang di input harus 2, satu untuk variabel a dan lainnya untuk variabel b yang penulisannya dipisahkan dengan : spasi, tabular atau newline.
Struktur Kontrol Sebuah program biasanya tidak terbatas hanya pada intruksi yang terurut saja, tetapi juga memungkinkan terjadinya percabangan, perulangan dan pengambilan keputusan. Untuk mengatasi kebutuhan itu C++ menyediakan struktur kontrol yang dapat menangani hal-hal tersebut.
Untuk membahas hal tersebut diatas, akan ditemui istilah block of instructions. Blok instruksi adalah sekumpulan instruksi yang dibatasi dengan tanda semicolon (;) tetapi dikelompokan dalam satu blok yang dibatasi dengan kurung kurawal { }. Struktur Kondisional : if and else Digunakan untuk mengeksekusi sebuah atau satu blok instruksi jika kondisi terpenuhi, sintaks: if (condition) statement condition merupakan ekspresi yang dievaluasi. Jika kondisi bernilai true, maka statement akan dijalankan. Jika false, maka statement akan diabaikan dan program menjalankan instruksi selanjutnya.
Contoh, Akan tercetak x is 100 jika nilai yang disimpan pada variable x adalah 100: if (x == 100) cout << "x is 100";
Jika ada lebih dari satu instruksi yang akan dijalankan maka harus dibuat dalam blok instruksi dengan menggunakan tanda kurung kurawal { }:
if (x == 100)
{
cout << "x is ";
cout << x;
}
Dapat juga menggunakan keyword else, jika kondisi tidak terpenuhi. Penulisannya digabungkan dengan if :
if (condition) statement1 else statement2
Contoh :
if (x == 100)
cout << "x is 100";
else
cout << "x is not 100";
Akan tercetak x is 100 jika nilai x adalah 100, jika tidak akan tercetak x is not 100.
Contoh :
if (x > 0) cout << "x is positive";
else if (x < 0)
cout << "x is negative";
else
cout << "x is 0";
Struktur perulangan (loops)
Loops merupakan perulangan statement dengan jumlah tertentu jika kondisi terpenuhi.
The while loop.
Sintaks :
while (expression) statement
Fungsi dari statement diatas adalah mengulang statement jika expression bernilai true.
Contoh :
// custom countdown using while
#include int main () { int n; cout << "Enter the starting number > "; cin >> n;
while (n>0) { cout << n << ", ";
--n;
}
cout << "FIRE!";
return 0;
}
Output :
Enter the starting number > 8 8, 7, 6, 5, 4, 3, 2, 1, FIRE!
Algoritma program dimulai dari main : 1. User meng-input nilai untuk n. 2. Instrukti while mengevaluasi apakah (n>0). Ada dua kemungkinan : true: meng-eksekusi statement (step 3,) false: melompati statement. lanjut ke step 5.. 3.Mengeksekusi statement : cout << n << ", ";
--n;
(Menampilkan n di layar dan mengurangi n dengan 1).
4. Akhir dari blok. kembali ke step 2.
5. lanjut menuju program setelah blok. Cetak : FIRE! dan program berakhir.
The do-while loop.
Format:
do statement while (condition);
Secara fungsional, hampir sama dengan while loop, hanya saja condition dalam do-while dievaluasi setelah eksekusi statement , dengan kata lain, sedikitnya satu kali eksekusi statement walaupun kondisi tidak terpenuhi. Contoh :
// number echoer
#include int main () { unsigned long n; do { cout << "Enter number (0 to end): ";
cin >> n; cout << "You entered: " << n << "\n";
} while (n != 0);
return 0;
}
Output :
Enter number (0 to end): 12345
You entered: 12345
Enter number (0 to end): 160277
You entered: 160277
Enter number (0 to end): 0
You entered: 0
The for loop.
Format :
for (initialization; condition; increase) statement;
Fungsinya akan mengulang statement jika condition bernilai benar. Sama seperti while loop., hanya saja for memungkinkan untuk memberikan instruksi initialization dan intruksi increase, sehingga dapat menampilkan loop dengan counter.
Algoritma perulangan for :
1. initialization, digunakan untuk memberikan nilai awal untuk variable counter. Dieksekusi hanya sekali.
2. condition, Dievaluasi, jika bernilai true maka loop berlanjut, sebaliknya loop berhenti dan statement diabaikan
3. statement, dieksekusi, bisa berupa instruksi tunggal maupun blok instruksi (dalam tanda { } ).
4. increase, dieksekusi kemudian algoritma kembali ke step 2.
Contoh :
// countdown using a for loop
#include int main () { for (int n=10; n>0; n--) { cout << n << ", ";
}
cout << "FIRE!";
return 0;
}
Output :
10, 9, 8, 7, 6, 5, 4, 3, 2, 1, FIRE!
Initialization dan increase bersifat optional. Sehingga dapat dituliskan : for (;n<10;) untuk for tanpa initialization dan increase; atau for (;n<10;n++) untuk for dengan increase tetapi tanpa initialization. Dengan operator koma (,) kita dapat mendeklarasikan lebih dari satu instruksi pada bagian manapun termasuk dalam loop for, contoh :
for ( n=0, i=100 ; n!=i ; n++, i-- )
{
// whatever here...
}
Loop diatas akan meng-eksekusi sebanyak 50 kali :
nilai awal n = 0 dan i = 100, dengan kondisi (n!=i) (yaitu n tidak sama dengan i). Karena n mengalami penambahan 1 dan i mengalami pengurangan 1, maka kondisi loop akan salah setelah loop yang ke-50, yaitu ketika n dan i bernilai 50.
Kontrol Percabangan (Bifurcation) dan Lompatan (jumps)
Instruksi break
Dengan menggunakan instruksi break, program akan keluar dari loop walaupun kondisi untuk berakhirnya loop belum terpenuhi. Dapat digunakan untuk mengakhiri infinite loop, atau untuk menyebabkan loop selesai sebelum saatnya, contoh :
// break loop example
#include int main () { int n; for (n=10; n>0; n--) { cout << n << ", ";
if (n==3)
{
cout << "countdown aborted!";
break;
}
}
return 0;
}
Output :
10, 9, 8, 7, 6, 5, 4, 3, countdown aborted!
Instruksi continue
Instruksi continue menyebabkan program akan melewati instruksi selanjutnya hingga akhir blok dalam loop. Atau dengan kata lain langsung melompat ke iterasi selanjutny. Contoh berikut akan melewati angka 5 dalam hitungan mundur :
// break loop example
#include int main () { for (int n=10; n>0; n--) { if (n==5) continue; cout << n << ", ";
}
cout << "FIRE!";
return 0;
}
Output :
10, 9, 8, 7, 6, 4, 3, 2, 1, FIRE!
Instruksi goto
Menyebabkan lompatan dalam program. Tujuan dari lompatan diidentifikasikan dengan label, yang berisikan argumen-argumen. penulisan label diikuti dengan tanda colon (:). Contoh :
// goto loop example
#include int main () { int n=10; loop: cout << n << ", ";
n--;
if (n>0) goto loop; cout << "FIRE!";
return 0;
}
Output :
10, 9, 8, 7, 6, 5, 4, 3, 2, 1, FIRE!
Struktur Seleksi : switch.
Instruksi switch digunakan untuk membandingkan beberapa nilai konstan yang mungkin untuk sebuah ekspresi, hampir sama dengan if dan else if. Bentuk umumnya :
switch (expression) {
case constant1:
block of instructions 1
break;
case constant2:
block of instructions 2
break;
.
.
.
default:
default block of instructions
}
switch meng-evaluasi expression dan memeriksa apakah equivalen dengan constant1, jika ya, maka akan meng-eksekusi block of instructions 1 sampai terbaca keyword break, kemudian program akan lompat ke akhir dari stuktur selektif switch.
Jika expression tidak sama dengan constant1, maka akan diperiksa apakah expression equivalen dengan constant2. jika ya, maka akan dieksekusi block of instructions 2 sampai terbaca break. Begitu seterusnya, jika tidak ada satupun konstanta yang sesuai maka akan mengeksekusi default:
contoh :
switch example
switch (x) {
case 1:
cout << "x is 1";
break;
case 2:
cout << "x is 2";
break;
default:
cout << "value of x unknown";
}
if-else equivalent
if (x == 1) {
cout << "x is 1";
}
else if (x == 2) {
cout << "x is 2";
}
else {
cout << "value of x unknown";
}
Function
Function adalah satu blok instruksi yang dieksekusi ketika dipanggil dari bagian lain dalam suatu program. Format dari function :
type name ( argument1, argument2, ...) statement
Dimana :
' type, adalah tipe dari data yang akan dikembalikan/dihasilkan oleh function.
' name, adalah nama yang memungkinkan kita memanggil function.
' arguments (dispesifikasikan sesuai kebutuhan). Setiap argumen terdiri dari tipe data diikuti identifier, seperti deklarasi variable (contoh, int x) dan berfungsi dalam function seperti variable lainnya. Juga dapat melakukan passing parameters ke function itu ketika dipanggil. Parameter yang berbeda dipisahkan dengan koma.
' statement, merupakan bagian badan suatu function. Dapat berupa instruksi tunggal maupun satu blok instruksi yang dituliskan diantara kurung kurawal {}.
Contoh function 1 : Output :
// function example The result is 8
#include
int addition (int a, int b) { int r; r=a+b; return (r); }
int main () { int z; z = addition (5,3); cout << "The result is " << z;
return 0;
}
Program diatas, ketika dieksekusi akan mulai dari fungsi main. main function memulai dengan deklarasi variabel z dengan tipe int. Setelah itu instruksi pemanggilan fungsi addition. Jika diperhatikan, ada kesamaan antara sruktur pemanggilan dengan deklarasi fungsi itu sendiri, perhatikan contoh dibawah ini :
Instruksi pemanggilan dalam fungsi main untuk fungsi addition, memberikan 2 nilai : 5 dan 3 mengacu ke parameter int a dan int b yang dideklarasikan untuk fungsi addition.
Saat fungsi dipanggil dari main, kontrol program beralih dari fungsi main ke fungsi addition. Nilai dari kedua parameter yang diberikan (5 dan 3) di-copy ke variable local ; int a dan int b.
Fungsi addition mendeklarasikan variable baru (int r;), kemudian ekspresi r=a+b;, yang berarti r merupakan hasil penjumlahan dari a dan b, dimana a dan b bernilai 5 dan 3 sehingga hasil akhirnya 8. perintah selanjutnya adalah :
return (r);
Merupakan akhir dari fungsi addition, dan mengembalikan kontrol pada fungsi main. Statement return dikuti dengan variabel r (return (r);), sehingga nilai dari r yaitu 8 akan dikembalikan :
Dengan kata lain pemanggilan fungsi (addition (5,3)) adalah menggantikan dengan nilai yang akan dikembalikan (8).
Contoh function 2 :
// function example
#include
int subtraction (int a, int b) { int r; r=a-b; return (r); }
int main () { int x=5, y=3, z; z = subtraction (7,2); cout << "The first result is " << z << '\n';
cout << "The second result is " << subtraction (7,2) << '\n';
cout << "The third result is " << subtraction (x,y) << '\n';
z= 4 + subtraction (x,y);
cout << "The fourth result is " << z << '\n';
return 0;
}
Output :
The first result is 5
The second result is 5
The third result is 2
The fourth result is 6
Fungsi diatas melakukan pengurangan dan mengembalikan hasilnya. Jika diperhatikan dalam fungsi main, dapat dilihat beberapa cara pemanggilan fungsi yang berbeda.
Perhatikan penulisan pemanggilan function, format penulisan pada dasarnya sama.
Contoh 1 :
z = subtraction (7,2);
cout << "The first result is " << z;
Contoh 2 :
cout << "The second result is " << subtraction (7,2);
Contoh 3 :
cout << "The third result is " << subtraction (x,y);
Hal lain dari contoh diatas, parameter yang digunakan adalah variable, bukan konstanta. Contoh diatas memberikan nilai dari x dan y, yaitu 5 dan 3, hasilnya 2.
contoh 4 :
z = 4 + subtraction (x,y);
Atau dapat dituliskan :
z = subtraction (x,y) + 4;
Akan memberikan hasil akhir yang sama. Perhatikan, pada setiap akhir ekspresi selalu diberi tanda semicolon (;).
Function tanpa tipe (Kegunaan void)
Deklarasi fungsi akan selalu diawali dengan tipe dari fungsi, yang menyatakan tipe data apa yang akan dihasilkan dari fungsi tersebut. Jika tidak ada nilai yang akan dikembalikan, maka dapat digunakan tipe void, contoh :
// void function example Output :
#include I'm a function!
void dummyfunction (void) { cout << "I'm a function!";
}
int main ()
{
dummyfunction ();
return 0;
}
Walaupun pada C++ tidak diperlukan men-spesifikasikan void, hal itu digunakan untuk mengetahui bahwa fungsi tersebut tidak mempunyai argumen, atau parameter dan lainnya. Maka dari itu pemanggilan terhadap fungsinya dituliskan :
dummyfunction ();
Argument passed by value dan by reference.
Parameter yang diberikan ke fungsi masih merupakan passed by value. Berarti, ketika memanggil sebuah fungsi, yang diberikan ke fungsi adalah nilainya, tidak pernah men-spesifikasikan variablenya. Sebagai Contoh, pemanggilan fungsi addition, menggunakan perintah berikut :
int x=5, y=3, z;
z = addition ( x , y );
Yang berarti memanggil fungsi addition dengan memberikan nilai dari x dan y, yaitu 5 dan 3, bukan variabelnya.
Tetapi, dapat juga memanipulasi dari dalam fungsi, nilai dari variable external. Untuk hal itu, digunakan argument passed by reference, Contoh :
// passing parameters by reference
#include
void duplicate (int& a, int& b, int& c) { a*=2; b*=2; c*=2; }
int main () { int x=1, y=3, z=7; duplicate (x, y, z); cout << "x=" << x << ", y=" << y << ", z=" << z;
return 0;
}
Output :
x=2, y=6, z=14
Perhatikan deklarasi duplicate, tipe pada setiap argumen diakhiri dengan tanda ampersand (&), yang menandakan bahwa variable tersebut biasanya akan passed by reference dari pada by value.
Ketika mengirimkan variable by reference, yang dikirimkan adalah variabelnya dan perubahan apapun yang dilakukan dalam fungsi akan berpengaruh pada variable diluarnya.
Atau dengan kata lain, parameter yang telah ditetapkan adalah a, b dan c dan parameter yang digunakan saat pemanggilan adalah x, y dan z, maka perubahan pada a akan mempengaruhi nilai x, begitupun pada b akan mempengaruhi y, dan c mempengaruhi z.
Itu sebabnya mengapa hasil output dari program diatas adalah nilai variable dalam main dikalikan 2. jika deklarasi fungsi tidak diakhiri dengan tanda ampersand (&), maka variable tidak akan passed by reference, sehingga hasilnya akan tetap nilai dari x, y dan z tanpa mengalami perubahan.
Passing by reference merupakan cara efektif yang memungkinkan sebuah fungsi mengembalikan lebih dari satu nilai. Contoh, fungsi ini akan mengembalikan nilai sebelum dan sesudahnya dari nilai awal parameter :
// more than one returning value
#include
int main () { int x=100, y, z; prevnext (x, y, z); cout << "Previous=" << y << ", Next=" << z;
return 0;
}
Output :
Previous=99, Next=101
Nilai Default dalam argument
Ketika mendeklarasikan sebuah fungsi, dapat diberikan nilai default untuk setiap parameter. nilai ini akan digunakan ketika parameter pemanggil dikosongkan. Untuk itu cukup dideklarasikan pada saat deklarasi fungsi, Contoh :
// default values in functions
#include
int divide (int a, int b=2) { int r; r=a/b; return (r); }
int main () { cout << divide (12);
cout << endl;
cout << divide (20,4);
return 0;
}
Output :
6
5
Dapat dilihat dalam fungsi divide. Instruksi 1:
divide (12)
Instruksi 2 :
divide (20,4)
Fungsi Overloaded function
Dua fungsi yang berbeda dapat memiliki nama yang sama jika prototype dari argumen mereka berbeda, baik jumlah argumennya maupun tipe argumennya, Contoh :
// overloaded function
#include
int divide (int a, int b) { return (a/b); }
float divide (float a, float b) { return (a/b); }
int main () { int x=5,y=2; float n=5.0,m=2.0; cout << divide (x,y);
cout << "\n";
cout << divide (n,m);
cout << "\n";
return 0;
}
Output :
2
2.5
Contoh diatas mempunyai nama fungsi yang sama, tetapi argumennya berbeda. Yang pertama bertipe int dan lainnya bertipe float. Kompiler mengetahuinya dengan memperhatikan tipe argumen pada saat pemanggilan fungsi.
inline Function
Directive inline dapat disertakan sebelum deklarasi fungsi, untuk menspesifikasikan bahwa fungsi tersebut harus di-compile sebagai suatu kode saat dipanggil. Sama halnya dengan deklarasi macro. Keuntungannya dapat terlihat pada fungsi sederhana yaitu hasil yang diberikan akan lebih cepat. (jika terjadi stacking of arguments) dapat dihindari. Format deklarasi :
inline type name ( arguments ... ) { instructions ... }
Pemanggilannya, sama dengan pemanggilan fungsi pada umumnya. Tidak diperlukan penulisan keyword inline pada setiap pemanggilan.
Recursivity Function
Rekursif merupakan kemempuan sebuah fungsi untuk memanggil dirinya sendiri. Sangat berguna untuk pengerjaan sorting atau perhitungan factorial. Contoh, format perhitungan factorial :
n! = n * (n-1) * (n-2) * (n-3) ... * 1
Misalkan, 5! ( 5 faktorial), akan menjadi :
5! = 5 * 4 * 3 * 2 * 1 = 120
Contoh :
// factorial calculator
#include
long factorial (long a) { if (a > 1) return (a * factorial (a-1)); else return (1); } int main () { long l; cout << "Type a number: ";
cin >> l; cout << "!" << l << " = " << factorial (l);
return 0;
}
Output :
Type a number: 9
!9 = 362880
Prototyping function.
Format :
type name ( argument_type1, argument_type2, ...);
Hampir sama dengan deklarasi fungsi pada umumnya, kecuali :
' Tidak ada statement fungsi yang biasanya dituliskan dalam kurung kurawal { }.
' Diakhiri dengan tanda semicolon (;).
' Dalam argumen dituliskan tipe argumen, bersifat optional.
Contoh :
// prototyping
#include
void odd (int a); void even (int a);
int main () { int i; do { cout << "Type a number: (0 to exit)";
cin >> i; odd (i); } while (i!=0); return 0; }
void odd (int a) { if ((a%2)!=0) cout << "Number is odd.\n";
else even (a);
}
void even (int a)
{
if ((a%2)==0) cout << "Number is even.\n";
else odd (a);
}
Output :
Type a number (0 to exit): 9
Number is odd.
Type a number (0 to exit): 6
Number is even.
Type a number (0 to exit): 1030
Number is even.
Type a number (0 to exit): 0
Number is even.
Contoh diatas tidak menjelaskan tentang efektivitas program tetapi bagaimana prototyping dilaksanakan. Perhatikan prototype dari fungsi odd dan even:
void odd (int a);
void even (int a);
Memungkinkan fungsi ini dipergunakan sebelum didefinisikan. Hal lainnya mengapa program diatas harus memiliki sedikitnya 1 fungsi prototype, karena fungsi dalam odd terdapat pemanggilan fungsi even dan dalam even terdapat pemanggilan fungsi odd. Jika tidak satupun dari fungsi tersebut dideklarasikan sebelumnya, maka akan terjadi error.
Arrays
Array adalah himpunan elemen (variable) dengan tipe yang sama dan disimpan secara berurutan dalam memory yang ditandai dengan memberikan index pada suatu nama variable. Contohnya, kita dapat menyimpan 5 nilai dengan tipe int tanpa harus mendeklarasikan 5 identifier variabel yang berbeda. Perhatikan contoh dibawah ini :
Bagian kosong diatas merepresentasikan elemen array, dalam kasus ini adalah nilai integer. Angka 0 - 4 merupakan index dan selalu dimulai dari 0. Seperti penggunaan variable pada umumnya, array harus dideklarasikan terlebih dahulu, dengan format sbb :
type name [elements];
Maka contoh array diatas dideklarasikan sbb :
int billy [5];
Inisialisasi array
Ketika mendeklarasikan array lokal (didalam fungsi), jika tidak diberikan nilai maka isi dari array tidak akan ditentukan (undetermined) sampai nilai diberikan. Jika mendeklarasikan array global array (diluar semua fungsi) maka isi dari array akan di-iniisialisasikan sebagai 0 :
int billy [5];
maka setiap elemen array billy akan di-inisialisasikan sebagai 0 :
Atau dideklarasikan dengan memberikan nilai array yang dituliskan dalam kurung kurawal :
int billy [5] = { 16, 2, 77, 40, 12071 };
Maka elemen array billy akan berisi :
Access to the values of an Array.
Nilai array dapat diakses secara individual, dengan format :
name[index]
Maka dari contoh sebelumnya nama yang digunakan untuk mengakses masing-masing elemen:
Misalkan akan disimpan nilai 75 pada elemen ketiga, maka intruksinya :
billy[2] = 75;
Dan jika nilai elemen ketiga tadi akan diberikan ke variable a, maka dapat dituliskan:
a = billy[2];
Contoh : Output :
// arrays example 12206
#include int billy [] = {16, 2, 77, 40, 12071}; int n, result=0;
int main () { for ( n=0 ; n<5 ; n++ )
{
result += billy[n];
}
cout << result;
return 0;
}
Array Multidimensi
Array Multidimensi dapat dikatakan sebagai array dari array. Contoh dibawah ini adalah array berdimensi 2 :
Maka pendeklarasiannya :
int jimmy [3][5];
Contoh :
// multidimensional array
#include #define WIDTH 5 #define HEIGHT 3
int jimmy [HEIGHT][WIDTH]; int n,m; int main () { for (n=0;n #define WIDTH 5 #define HEIGHT 3
int jimmy [HEIGHT * WIDTH]; int n,m; int main () { for (n=0;n void printarray (int arg[], int length) { for (int n=0; n #include
int main () { char szMyName [20]; strcpy (szMyName,"J. Soulie"); cout << szMyName;
return 0;
}
Perhatikan, header harus disertakan agar bisa menggunakan fungsi strcpy. Bisa juga menggunakan fungsi sederhana seperti setstring, dengan operasi yang sama seperti strcpy.
Contoh : Output :
// setting value to string J. Soulie #include
void setstring (char szOut [], char szIn []) { int n=0; do { szOut[n] = szIn[n]; } while (szIn[n++] != '\0'); }
int main () { char szMyName [20]; setstring (szMyName,"J. Soulie"); cout << szMyName;
return 0;
}
Metode lain yang dapat digunakan untuk inisialisasi nilai yaitu input stream (cin). Dalam kasus ini, nilai string ditentukan oleh user saat eksekusi program. Ketika menggunakan cin, biasanya digunakan metode getline, Pemanggilannya sbb :
cin.getline ( char buffer[], int length, char delimiter = ' \n');
dimana, buffer adalah alamat untuk menyimpan input, length adalah maksimum panjang buffer,dan delimiter adalah karakter yang digunakan untuk menentukan input akhir, dengan default ' atau dengan ('\n').
Contoh :
// cin with strings
#include
int main () { char mybuffer [100]; cout << "What's your name? ";
cin.getline (mybuffer,100);
cout << "Hello " << mybuffer << ".\n";
cout << "Which is your favourite team? ";
cin.getline (mybuffer,100);
cout << "I like " << mybuffer << " too.\n";
return 0;
}
Output :
What's your name? Juan
Hello Juan.
Which is your favourite team? Inter Milan
I like Inter Milan too.
Perhatikan kedua pemanggilan cin.getline, menggunakan identifier yang sama (mybuffer). Sama halnya seperti penggunaan operator extraction, sehingga dapat dituliskan :
cin >> mybuffer; Instruksi diatas dapat berjalan, hanya saja mempunyai keterbatasan bila dibandingkan dengan cin.getline, diantaranya : ' Dapat menerima 1 kata saja (bukan kalimat lengkap). ' Tidak diperkenankan untuk memberikan ukuran buffer. Akan menyebabkan program tidak stabil jika user meng-input lebih besar dari kapasitas array yang ada.
Konversi string ke tipe lainnya String dapat berisi data dengan tipe lain seperti angka. Contoh "1977". cstdlib (stdlib.h) library menyediakan 3 fungsi yang dapat menangani hal tersebut : ' atoi: converts string to int type. ' atol: converts string to long type. ' atof: converts string to float type. Fungsi-fungsi ini menerima 1 parameter dan mengembalikan nilainya kedalam tipe yang diminta (int, long or float). Fungsi ini dikombinasikan dengan metode getline pada cin.
Contoh : Output : // cin and ato* functions Enter price: 2.75 #include Enter quantity: 21 #include Total price: 57.75
int main () { char mybuffer [100]; float price; int quantity; cout << "Enter price: ";
cin.getline (mybuffer,100);
price = atof (mybuffer);
cout << "Enter quantity: ";
cin.getline (mybuffer,100);
quantity = atoi (mybuffer);
cout << "Total price: " << price*quantity;
return 0;
}
Fungsi untuk manipulasi string
cstring library (string.h) mendefinisikan banyak fungsi untuk operasi manipulasi, diantaranya:
strcat: char* strcat (char* dest, const char* src);
Appends src string at the end of dest string. Returns dest.
strcmp: int strcmp (const char* string1, const char* string2);
Compares strings string1 and string2. Returns 0 is both strings are equal.
strcpy: char* strcpy (char* dest, const char* src);
Copies the content of src to dest. Returns dest.
strlen: size_t strlen (const char* string);
Returns the length of string.
Cttn : char* sama dengan char[]
Pointer
Variabel merupakan suatu nilai yang disimpan dalam memory yang dapat diakses dengan identifier. Variabel ini sesunggunhnya disimpan pada suatu alamat didalam memory. Dimana setiap alamat memory akan berbeda dengan yang lainnya (unik).
Operator Alamat (Address operator (&))
Pada saat pendeklarasian variable, user tidak diharuskan menentukan lokasi sesungguhnya pada memory, hal ini akan dilakukan secara otomatis oleh kompilerdan operating sysem pada saat run-time. Jika ingin mengetahui dimana suatu variable akan disimpan, dapat dilakukan dengan memberikan tanda ampersand (&) didepan variable , yang berarti "address of". Contoh :
ted = &andy;
Akan memberikan variable ted alamat dari variable andy, karena variable andy diberi awalan karakter ampersand (&), maka yang menjadi pokok disini adalah alamat dalam memory, bukan isi variable. Misalkan andy diletakkan pada alamat 1776 kemudian dituliskan instruksi sbb :
andy = 25;
fred = andy;
ted = &andy;
Maka hasilnya :
Operator Reference (*)
Dengan menggunakan pointer, kita dapat mengakses nilai yang tersimpan secara langsung dengan memberikan awalan operator asterisk (*) pada identifier pointer, yang berarti "value pointed by". Contoh :
beth = *ted;
(dapat dikatakan:"beth sama dengan nilai yang ditunjuk oleh ted") beth = 25, karena ted dialamat 1776, dan nilai yang berada pada alamat 1776 adalah 25.
Ekspresi dibawah ini semuanya benar, perhatikan :
andy == 25
&andy == 1776
ted == 1776
*ted == 25
Ekspresi pertama merupakan assignation bahwa andy=25;. Kedua, menggunakan operator alamat (address/derefence operator (&)), sehingga akan mengembalikan alamat dari variabel andy. Ketiga bernilai benar karena assignation untuk ted adalah ted = &andy;. Keempat menggunakan reference operator (*) yang berarti nilai yang ada pada alamat yang ditunjuk oleh ted, yaitu 25. Maka ekspresi dibawah ini pun akan bernilai benar :
*ted == andy
Deklarasi variable bertipe pointer
Format deklarasi pointer :
type * pointer_name;
Dimana type merupakan tipe dari data yang ditunjuk, bukan tipe dari pointer-nya. Contoh :
int * number;
char * character;
float * greatnumber;
Contoh :
// my first pointer
#include
int main () { int value1 = 5, value2 = 15; int * mypointer;
mypointer = &value1; *mypointer = 10; mypointer = &value2; *mypointer = 20; cout << "value1==" << value1 << "/ value2==" << value2;
return 0;
}
Output :
value1==10 / value2==20
Perhatikan bagaimana nilai dari value1 dan value2 diubah secara tidak langsung. Pertama mypointer diberikan alamat value1 dengan menggunakan tanda ampersand (&). Kemudian memberikan nilai 10 ke nilai yang ditunjuk oleh mypointer, yaitu alamat dari value1, maka secara tidak langsung value1 telah dimodifikasi. Begitu pula untuk value2.
Contoh :
// more pointers
#include
int main () { int value1 = 5, value2 = 15; int *p1, *p2;
p1 = &value1; // p1 = address of value1 p2 = &value2; // p2 = address of value2 *p1 = 10; // value pointed by p1 = 10 *p2 = *p1; // value pointed by p2 = value pointed by p1 p1 = p2; // p1 = p2 (value of pointer copied) *p1 = 20; // value pointed by p1 = 20
cout << "value1==" << value1 << "/ value2==" << value2;
return 0;
}
Output :
value1==10 / value2==20
Array dan Pointer
Identifier suatu array equivalen dengan alamat dari elemen pertama, pointer equivalen dengan alamat elemen pertama yang ditunjuk. Perhatikan deklarasi berikut :
int numbers [20];
int * p;
maka deklarasi dibawah ini juga benar :
p = numbers;
p dan numbers equivalen, dan memiliki sifat (properties) yang sama. Perbedaannya, user dapat menentukan nilai lain untuk pointer p dimana numbers akan selalu menunjuk nilai yang sama seperti yang telah didefinisikan. p, merupakan variable pointer, numbers adalah constant pointer. Karena itu walaupun instruksi diatas benar, tetapi tidak untuk instruksi dibawah ini :
numbers = p;
karena numbers adalah array (constant pointer), dan tidak ada nilai yang dapat diberikan untuk identifier konstant (constant identifiers).
Contoh : Output :
// more pointers 10, 20, 30, 40, 50,
#include
int main () { int numbers[5]; int * p; p = numbers; *p = 10; p++; *p = 20; p = &numbers[2]; *p = 30; p = numbers + 3; *p = 40; p = numbers; *(p+4) = 50; for (int n=0; n<5; n++)
cout << numbers[n] << ", ";
return 0;
}
Inisialisasi Pointer
Contoh :
int number;
int *tommy = &number;
Equivalen dengan :
int number;
int *tommy;
tommy = &number;
Seperti pada array, inisialisasi isi dari pointer dapat dilakukan dengan deklarasi seperti contoh berikut :
char * terry = "hello";
Misalkan "hello" disimpan pada alamat 1702 dan seterusnya, maka deklarasi tadi dapat digambarkan sbb :
terry berisi nilai 1702 dan bukan 'h' atau "hello", walaupun 1702 menunjuk pada karakter tersebut. Sehingga jika akan dilakukan perubahan pada karakter 'o' diganti dengan tanda '!' maka ekspresi yang digunakan ada 2 macam :
terry[4] = '!';
*(terry+4) = '!';
Penulisan terry[4] dan *(terry+4), mempunyai arti yang sama. Jika digambarkan :
Pointer Arithmatika
Contoh, char memerlukan 1 byte, short memerlukan 2 bytes dan long memerlukan 4. Terdapat 3 buah pointer :
char *mychar;
short *myshort;
long *mylong;
ekspresi diatas akan menunjuk pada lokasi dimemory masing-masing 1000, 2000 and 3000, sehingga jika dituliskan :
mychar++;
myshort++;
mylong++;
mychar, akan bernilai 1001, myshort bernilai 2002, dan mylong bernilai 3004. Alasannya adalah ketika terjadi pertambahan maka akan ditambahkan dengan tipe yang sama seperti yang didefinisikan berupa ukuran dalam bytes.
Perhatikan ekspresi dibawah ini :
*p++;
*p++ = *q++;
Ekspresi pertama equivalen dengan *(p++) dan yang dilakukan adalah menambahkan p (yaitu alamat yang ditunjuk, bukan nilai yang dikandungnya).
Ekspresi kedua, yang dilakukan pertama adalah memberikan nilai *q ke *p dan kemudian keduanya ditambahkan 1 atau dengan kata lain :
*p = *q;
p++;
q++;
void pointer
Tipe pointer void merupakan tipe khusus. void pointers dapat menunjuk pada tipe data apapun, nilai integer value atau float, maupun string atau karakter. Keterbatasannya adalah tidak dapat menggunakan operator asterisk (*), karena panjang pointer tidak diketahui, sehingga diperlukan operator type casting atau assignations untuk mengembalikan nilai void pointer ketipe data sebenarnya.
Contoh :
// integer increaser
#include
void increase (void* data, int type) { switch (type) { case sizeof(char) : (*((char*)data))++; break; case sizeof(short): (*((short*)data))++; break; case sizeof(long) : (*((long*)data))++; break; } }
int main () { char a = 5; short b = 9; long c = 12; increase (&a,sizeof(a)); increase (&b,sizeof(b)); increase (&c,sizeof(c)); cout << (int) a << ", " << b << ", " << c;
return 0;
}
Output :
6, 10, 13
Pointer untuk functions
C++ memperbolehkan operasi dengan pointer pada function. Kegunaan yang utama adalah untuk memberikan satu function sebagai parameter untuk function lainnya. Deklarasi pointer untuk function sama seperti prototype function kecuali nama function dituliskan diantara tanda kurung () dan operator asterisk (*) diberikan sebelum nama.
Contoh :
// pointer to functions
#include
int addition (int a, int b) { return (a+b); }
int subtraction (int a, int b) { return (a-b); }
int (*minus)(int,int) = subtraction;
int operation (int x, int y, int (*functocall)(int,int)) { int g; g = (*functocall)(x,y); return (g); }
int main () { int m,n; m = operation (7, 5, addition); n = operation (20, m, minus); cout <Bahasa Pemrograman Java
Sejarah Bahasa Pemrogramanan Java Java adalah satu dari beberapa kemajuan terpenting di bidang software komputer dalam 20 tahun terakhir. Sama pentingnya dengan HyperText Markup Language(HTML) yang sangat sukses dalam penerbitan homepage static di World wide Web (WWW). Java meledakkan internet dengan isi yang lebih menarik dan interaktif.
Ada tiga kombinasi kunci yang membuat Java menjadi teknologi yang secara fundamental berbeda dari yang lain yang ada saat ini. Pertama dan yang paling menarik adalah semua orang dapat menggunakan applet yang kecil, aman, dinamik, lintas platform, aktif dan siap dijalankan di jaringan. Sejak awal, Applet dapat disusun dan didstribusikan secara aman dalam bentuk homepage semudah aspek-aspek HTML.
Kedua, Java adalah bahasa pemrograman yang ampuh dan memiliki kekuatan desain berorientasi objek dengan sintaks yang sederhana dan mudah dikenal disertai dukungan lingkungan yang kokoh serta enak digunakan. Java memungkinkan programmer untuk membuat program dan komponen dan applet baru yang lebih menarik.
Ketiga, Java adalah kumpulan class objek yang ampuh sehingga dapat melayani programmer dengan uraian yang jelas untuk menerangkan berbagai fungsi sistem yang umum seperti pembuatan window, penggunaan jaringan dan input / output. Kunci class-class ini adalah kemampuannya yang dapat melayani aplikasi lintas platform untuk beragam variasi yang umum digunakan sebagai antarmuka sistem.
Sejarah Java Java mulai dirilis pada tahun 1990 sebagai bahasa program yang disebut Oak, Kemudian Sun MycroSystem mendirikan kelompok kerja yang terdiri atas para programmer handal untuk membuat produk baru dan memperluas pasar Sun. Oak didesain pertama kali untuk personal digital assistance yang disebut *7 yang akan dipasarkan Sun dengan fasilitas Graphical User Interface.
Ternyata *7 tidak pernah dipasarkan dan secara kebetulan Sun membentuk suatu perusahaan yang disebut Firstperson untuk mengembangkan *7 dalam bentuk TV set-top boxes untuk televisi interaktif. Karena persaingan yang begitu ketat akhirnya prospek TV interaktif menurun dan akhirnya Oak tidak laku di pasaran. Akan tetapi semenjak FirstPerson dan Oak mengalami kegagalan bermunculanlah para perintis internet khususnya World Wide Web seperti Netscape yang mulai membuat software yang memungkinkan terjadinya koneksi antara Internet dengan WWW. Sun akhirnya menyadari bahwa Oak memiliki kemungkinan besar untuk membuat jalur akses ke dunia Web. Tidak lama kemudian Oak diluncurkan di Internet dengan nama baru, yaitu Java.
Sekarang ini Java masih dalam taraf pengembangan dan sudah mulai mempengaruhi arah pemrogaman komputer dan internet. Bahasa pemrograman Java dirilis secara gratis di internet dan Sun memberikan lisensi penuh terhadap implementasi Java dan segala komponennya untuk digunakan di berbagai vendor software Internet dengan harapan supaya dapat menciptakan standard bagi pemrograman web.
KELEBIHAN-KELEBIHAN JAVA 1 Sederhana dan Ampuh Anda dapat belajar membuat program dengan Java secara cepat jika telah memahami konsep dasar pemrograman berorientasi objek. Anda hanya perlu mengerti beberapa konsep untuk dapat menulis program yang memuaskan. Java tidak memiliki hal-hal yang mengejutkan dan aneh. Tidak seperti bahasa pemrograman lain yang menawarkan puluhan cara untuk melakukan satu pekerjan, tetapi semua itu dibutuhkan ketelitian dan tingkat kerumitan yang tinggi. Kesederhanaan adalah kelebihan utama yang ditawarkan Java. Hal ini dimungkinkan karena Java Scripting Language (bahasa naskah) menghilangkan kemampuan kita untuk berinovasi dengan menganggap bahwa semua yang kita inginkan telah disatukan dalam satu objek yang telah ada dan seringkali perlu di-script-kan. Java memberi anda kemampuan untuk menuangkan semua ide anda dalam cara berorientasi-objek yang mudah dan jelas tanpa harus melihat proses bagian dalam sistem yang seringkali berbahaya.
2 Aman Kebanyakan masalah keamanan terutama aplikasi jaringan internet yang dihasilkan dari sistem lama terjadi karena sistem tidak dirancang dengan konsep keamanan Internet. Salah satu prinsip kunci perancangan Java adalah keselamatan dan keamanan. Java tidak pernah memiliki fasilitas dan keamanan yang tidak aman sampai perlu ditangani secara khusus untuk pengamanannya. Oleh karena itu, program Java tidak dapat memanggil fungsi-fungsi global dan memperoleh akses ke berbagai sumber dalam sistem karena terdapat sejumlah pengawasan yang dilakukan oleh program Java yang tidak dapat dilakukan oleh sistem lain.
3 Berorientasi Objek Java tidak diturunkan bahasa pemrograman manapun, juga sama sekali tidak kompatibel dengan semuanya. Hal ini dikarenakan adanya kebebasan dalam rancangan maka dipilih pendekatan yang jelas berguna, dan pragmatis. Modul objek Java adalah sederhana dan mudah dikembangkan namun sejalan dengan itu, bilangan dan tipe data sederhana lain dianggap sebagai non objek berkinerja tinggi. Kebanyakan sistem berorientasi objek lain memilih hirarki objek yang kaku dan susah diatur atau memilih menggunakan model objek dinamik yang tidak memiliki kinerja tinggi dan kelengkapan . Java sekali lagi memiliki keseimbangan yang menyediakan mekanisme peng-class-an sederhana dengan model antarmuka dinamik yang intuitif hanya jika diperlukan. Memahami gaya pemrograman berorientasi objek sangat penting dan membantu mempelajari bagaimana membuat program dengan Java. Bab selanjutnya akan membahas terperinci tentang objek dan class.
4 Kokoh Java membatasi anda dengan memberi beberapa kunci supaya anda dapat menemukan kesalahan lebih cepat saat mengembangkan program. Dengan demikian, anda tidak perlu mencemaskan banyaknya penyebab kesalahan pemrograman yang banyak terjadi pada bahasa lain. Java langsung memeriksa program saat anda menuliskannya dan sekali lagi program akan dijalankan. Banyaknya kesalahan yang susah dilacak dan situasi jalannya program yang tidak dapat diulangi dapat dibuat secara sederhana dengan Java. Kemampuan untuk memastikan apa yang telah kita tulis akan berjalan semestinya dalam kondisi apapun adalah salah satu kemampuan penting Java.
5 Interaktif Java dirancang memenuhi kebutuhan dunia nyata menciptakan program jaringan yang interaktif. Kebanyakan sistem mengalami kesulitan menangani interaktivitas dan jaringan sekaligus. Java memiliki beberapa kemampuan yang memungkinkan program melakukan beberapa hal pada saat bersamaan tanpa harus kesulitan menangani proses yang akan terjadi selanjutnya permasalahan dalam melakukan beberapa hal sekaligus pada satu waktu adalah dalam menyelaraskan bagian-bagian yang saling mempengaruhi. Ini seringkali sangat memusingkan programmer yang mengerjakannya tanpa alat yang tepat. Jalannya program Java telah dilengkapi dengan pemecahan yang luar biasa untuk sinkronisasi beberapa proses sekaligus dan memungkinkan pembuatan sistem yang interaktif yang berjalan dengan halus. Jalinan program-program java yang mudah digunakan memungkinkan kita untuk memikirkan pembuatan perilaku khusus tanpa harus mengintegrasikan perilaku tersebut dengan model pemrograman global yang mengatur perulangan kejadian.
6 Netral Terhadap Berbagai Arsitektur Hal yang lebih penting daripada perang antara PC dengan Mac adalah masalah pengenalan dan portabilitas program. Jika anda hari ini menulis pengenalan dan portabilitas program. Jika anda hari ini menulis sebuah program tidak ada jaminan program tersebut akan jalan besok, bahkan di mesin yang sama. Sistem operasi berubah, prosessor berubah dan perubahan dalam inti sistem semuanya dapat bersekongkol membuat program tidak dapat berjalan. Para perancang Java telah mengambil beberapa keputusan yang sulit dalam pembuatan bahasa Java dan bagaimana program dijalankan . Jadi anda dapat sepenuhnya percaya "tulis sekali, jalan di mana saja, kapan saja dan selamanya". Anda mungkin cemas ketika menulis sebuah program tetapi java akan meyakinkan bahwa program akan berjalan di Macintosh, PC, UNIX dan apapun platform yang akan muncul di masa yang akan datang.
7 Terinterpretasi dan Berkinerja Tinggi Java melengkapi keajaiban lintas platform yang luar biasa dengan kompilasi ke dalam representasi langsung yang disebut kode-byte Java(Java byte code) yang dapat diterjemahkan oleh sistem apapun yang memiliki program Java di dalamnya. Kebanyakan sistem tersebut menawarkan keajaiban lintas platform ini terseok pada satu hal: kinerja. Sistem lain yang netral terhadap platform juga adalah sistem terinterpretasi misalnya BASIC, Tcl dan Perl. Bahasa-bahasa ini jelas kekurangan kinerja. Java dirancang untuk tetap berkinerja baik pada CPU yang tidak terlalu kuat. Walaupun Java merupakan bahasa terinterpretasi, kode byte Java telah dirancang dengan hati-hati sehingga mudah diterjemahkan ke dalam bahasa asli suatu mesin untuk menghasilkan kinerja yang tinggi. Sistem program Java yang melakukan optimasi tepat waktu tersebut tidak kehilangan keuntungan dari program yang netral terhadap platform.
8 Mudah Dipelajari Semua keuntungan tersebut saling berinteraksi untuk melayani kebutuhan bahasa pemrograman. Meskipun Java lebih rumit daripada bahasa scripting tetapi lebih sederhana untuk dipelajari dan ditulis dalam bahasa lain. Pada setiap tahap proses pemrograman anda akan terdorong oleh berkurangnya cacat-cacat yang mengejutkan dan perilaku yang tidak diharapkan. Kemampuan bahasa ini terasa seperti cara alami untuk melakukan sesuatu dan mendorong terbentuknya gaya pemrograman yang baik. Karena model objek bersifat sederhana, anda akan cepat terbiasa dengan gaya pemrograman berorientasi objek. Anda akan mendapatkan keuntungan dari objek lebih cepat daripada jika dipaksakan menggunakan cara yang tidak alami dan membingungkan.
Visual Basic Microsoft Visual Basic (sering disingkat sebagai VB saja) merupakan sebuah bahasa pemrograman yang bersifat event driven dan menawarkan Integrated Development Environment (IDE) visual untuk membuat program aplikasi berbasis sistem operasi Microsoft Windows dengan menggunakan model pemrograman Common Object Model (COM). Visual Basic merupakan turunan bahasa BASIC dan menawarkan pengembangan aplikasi komputer berbasis grafik dengan cepat, akses ke basis data menggunakan Data Access Objects (DAO), Remote Data Objects (RDO), atau ActiveX Data Object (ADO), serta menawarkan pembuatan kontrol ActiveX dan objek ActiveX. Beberapa bahasa skrip seperti Visual Basic for Applications (VBA) dan Visual Basic Scripting Edition (VBScript), mirip seperti halnya Visual Basic, tetapi cara kerjanya yang berbeda. Para programmer dapat membangun aplikasi dengan menggunakan komponen-komponen yang disediakan oleh Microsoft Visual Basic Program-program yang ditulis dengan Visual Basic juga dapat menggunakan Windows API, tapi membutuhkan deklarasi fungsi eksternal tambahan. Dalam pemrograman untuk bisnis, Visual Basic memiliki pangsa pasar yang sangat luas. Dalam sebuah survey yang dilakukan pada tahun 2005, 62% pengembang perangkat lunak dilaporkan menggunakan berbagai bentuk Visual Basic, yang diikuti oleh C++, JavaScript, C#, dan Java.
Sejarah Bill Gates, pendiri Microsoft, memulai bisnis softwarenya dengan mengembangkan interpreter bahasa Basic untuk Altair 8800, untuk kemudian ia ubah agar dapat berjalan di atas IBM PC dengan sistem operasi DOS. Perkembangan berikutnya ialah diluncurkannya BASICA (basic-advanced) untuk DOS. Setelah BASICA, Microsoft meluncurkan Microsoft QuickBasic dan Microsoft Basic (dikenal juga sebagai Basic Compiler). Sejarah BASIC di tangan Microsoft sebagai bahasa yang diinterpretasi (BASICA) dan juga bahasa yang dikompilasi (BASCOM) membuat Visual Basic diimplementasikan sebagai gabungan keduanya. Programmer yang menggunakan Visual Basic bisa memilih kode terkompilasi atau kode yang harus diinterpretasi sebagai hasil executable dari kode VB. Sayangnya, meskipun sudah terkompilasi jadi bahasa mesin, DLL bernama MSVBVMxx.DLL tetap dibutuhkan. Namun karakteristik bahasa terkompilasi tetap muncul (ia lebih cepat dari kalau kita pakai mode terinterpretasi).
Pemrograman Berorientasi Objek (OOP) Visual Basic merupakan bahasa yang mendukung OOP, namun tidak sepenuhnya. Beberapa karakteristik obyek tidak dapat dilakukan pada Visual Basic, seperti Inheritance tidak dapat dilakukan pada class module. Polymorphism secara terbatas bisa dilakukan dengan mendeklarasikan class module yang memiliki Interface tertentu. Visual Basic (VB) tidak bersifat case sensitif.
Desain Visual dan Komponen Visual Basic menjadi populer karena kemudahan desain form secara visual dan adanya kemampuan untuk menggunakan komponen-komponen ActiveX yang dibuat oleh pihak lain. Namun komponen ActiveX memiliki masalahnya tersendiri yang dikenal sebagai DLL hell. Pada Visual Basic .NET, Microsoft mencoba mengatasi masalah DLL hell dengan mengubah cara penggunaan komponen (menjadi independen terhadap registry).
EVOLUSI VISUAL BASIC Visual Basic yang pertama adalah Visal Basic 1.0 yang dikenalkan pada tahun 1991, pendekatan yg dilakukan untuk menghubungkan bahasa pemrograman dengan GUI berasal dari prototype yg dikembang oleh 'Alan Cooper' yg di sebut TRIPOD,. Kemudian Microsoft mengontrak copper dan asosiasinya utk mengembangkan tripod agar dapat digunakan di windows 3.0 dibawah nama kode Ruby. Perjalanan dari Visual Basic (VB1 to VB 10) 1. Proyek 'Thunder' dirintis 2. Visual Basic 1.0 (May 1991) di rilis untuk windows pada Comdex/Windows Wordltrade yg dipertunjukan di Atlanta , Georgia 3. Visual Basic 1.0 untuk DOS dirilis pada bulan September 1992. Bahasa ini tidak kompatibel dengan Visual Basic For Windows. VB 1.0 for DOS ini pada kenyataaanya merupakan versi kelanjutan dari compiler BASIC, QuickBasic dan BASIC Professional Development System 4. Visual Basic 2.0 dirilis pada November 1992, Cakupan pemrogramannya cukup mudah untuk digunakan dan kecepatannya juga telah di modifikasi. Khususnya pada Form yg menjadikan object dapat dibuat secara seketika, serta konsep dasar dari Class modul yg berikutnya di implementasikan pada VB 4 5. Visual Basic 3.0 , dirilis pada musim panas 1993 dan dibagi menjadi versi standard dan professional. VB 3 memasukan Versi 1.1 dari Microsoft Jet Database Engine yg dapat membaca serta menulis database Jet (atau Access) 1.x 6. Visual Basic 4.0 (Agustus 1995) merupakan versi pertama yg dapat membuat windows program 32 bit sebaik versi 16 bit nya. VB 4 juga memperkenalkan kemampuan untuk menulis non-GUI class pada Visual Basic 7. Visual Basic 5.0 (February 1997), Microsoft merilis secara eksklusif Visual basic untuk versi windows 32 bit . Programmer yg menulis programnya pada versi 16 bit dapat dengan mudah melakukan import porgramnya dari VB4 ke VB5. dan juga sebaliknya, program VB5 dapat diimport menjadi VB4. VB 5 memperkenalakan kemampuan untuk membuat User Control. 8. Visual Basic 6.0 (pertengahan 199..... memperbaiki beberapa cakupan, temasuk kemapuannya untuk membuat Aplikasi Web-based . Visual Basic 6 di jadwalkan akan memasuki Microsoft 'fasa non Supported' dimulai pada maret 2008 9. Visual Basic .NET (VB 7), dirilis pada tahun 2002, Beberapa yang mencoba pada versi pertama .NET ini mengemukakan bahwa bahasa ini sangat powerful tapi bahasa yg digunakan sangat berbeda dengan bahasa sebelumnya, dengan kekurangan diberbagai area, termasuk runtime-nya yang 10 kali lebih besar dari paket runtime VB6 serta peningkatan penggunan memory. 10. Visual Basic .NET 2003 (VB 7.1) , dirilis dengan menggunakan NET framework versi 1.1. 11. Visual Basic 2005 (VB 8.0) , merupakan iterasi selanjutnya dari Visual Basic .NET. dan Microsoft memutuskan untuk menghilangkan kata kata .NET pada judulnya. Pada Rilis ini , Microsoft memasukan bebrapa fitur baru, diantaranya : 1. Edit and Continue , mungkin inilah kekurangan fitur terbesar dari VB .NET . pada VB 2005 ini kita diperbolehkan melakukan perubahan kode pada saat program sedang dijalankan 2. Perbaikan pada Konversi dari VB ke VB NET12Visual Basic .NET 2003 (VB 7.1) , dirilis dengan menggunakan NET framework versi 1.1. 12. IsNot Patent, merupakan salah satu fitur dari Visual Basic 2005 merupakan konversi If Not X Is Y menjadi If X IsNot Y 13. Visual Basic 2005 Express , merupkan bagian dari Product Visual Studio. Microsoft membuat Visual Studio 2005 Express edition untuk pemula dan yg gemar dengan VB, salah satu produknya adalah Visual Basic 2005 Express yg merupakan produk gratis dari Microsoft 14. Visual Basic 'Orcas' (VB 9.0) , dijadwalkan akan dirilis pada tahun 2007 dan dibangung diatas .NET 3.5. Pada rilis ini , Microsoft menambahkan beberapa fitur , diantaranya : ' True Tenary operator , yaitu fungsi If(boolean,value, value) yg digunakan untuk menggantikan fungsi IIF ' LINQ Support ' Ekspresi Lambda ' XML Literals ' Nullable types ' Type Inference 15. Visual Basic 'VBx' (VB 10.0) , Visual Basic 10, yang juga dkenal dengan nama VBx, akan menawarkan dukungan untuk Dynamic Language Runtime. VB 10 direncanakan akan menjadi bagian dari SilverLight 1.1
1. Pengertian Form, Label, Text, CommandButton Form adalah objek yang digunakan untuk menampung semua objek yang akan dibuat pada aplikasi. Adapun beberapa Properti yang sering dipakai dari Form adalah sebagai berikut: Properties Value Description Appearance 0 - Flat 1 - 3D Apakah form akan ditampilkan dengan model 2 dimensi atau 3 dimensi AutoRedraw True/False Menampilkan form dalam modus grafik BackColor Value Menampilkan warna latar belakang BorderStyle 0 - None 1 - Fixed Single 2 - Sizeable 3 - Fixed Dialog 4 - Fixed Tool Window 5 - Sizeable Tool Window Model Penampakan Border Caption Value Judul dari form ControlBox True/False Menampilkan Control box dalam form Enabled True/False Aktif/Deaktif form FillColor Value Warna form Font Value Jenis font dalam form Height Value Ukuran tinggi form Icon Value Bentuk icon yang akan ditampilkan Left Value Ukuran form dari kiri screen MaxButton True/False Menampilkan Tombol Max MDIChild True/False Form sebagai child atau free MinButton True/False Menampilkan tombol Min MouseIcon Value Bentuk mouse pada daerah form MousePointer Value Jenis mouse pada daerah form Moveable True/False Form dapat dipindahkan/geser NegotiateMenus True/False Menu dapat digabung dengan menu dari Form lain Picture Value Gambar yang akan diisi pada form ShowInTaskbar True/False Form akan ditampilkan dalam taskbar StartUpPosition 0 - Manual 1 - CenterOwner 2 - CenterScreen 3 - WindowsDefault(kiri atas) Posisi awal form pada saat dipanggil Top Value Jarak antara form dengan screen atas Visible True/False Menyembunyikan form(False) Width Value Lebar dari suatu form WindowState 0 - Normal 1 - Minimized 2 - Maximized Menampilkan form pada saat pertama kali dipanggil Label adalah objek yang digunakan untuk menampung suatu kalimat. Kalimat ini dapat diisi pada saat Design Time ataupun pada saat Run Time
Report Program Generator RPG adalah bahasa pemrograman yang ditujukan untuk aplikasi bisnis. Pada mulanya RPG merupakan singkatan dari Report Program Generator, sekarang RPG diresmikan bukan merupakan sebuah singkatan. Pembaruan terakhir dari bahasa RPG adalah RPG IV (ILE RPG) pada server System i IBM. Bahasa ini memiliki berbagai fitur pemrograman berbasis objek antara lain: fungsi (function) dan prosedur (procedure), ikatan statis dan dinamis (static and dynamic binding), pengunaan library C, Dynamic Link Library (.DLL), dan lain-lain.
Application Development ToolSet Program dari IBM yang menyediakan sekumpulan Application Development Tools terintegrasi, atau utilities, yang digunakan oleh programer, analis, dan personil pendukung. Utilities yang terdapat dalam paket ini antara lain seperti Programming Development Manager (PDM), Source Entry Utility (SEU), dan Data File Utility (DFU). Authority Hak untuk melakukan atau menyelesaikan sesuatu pada suatu sistem. Dalam sistem AS/400, anda harus memiliki autority terhadap suatu objek dan untuk melakukan suatu pekerjaan terhadap objek tersebut. Backup Recovery and Media Services (BRMS) Sebuah program dari IBM yang memberikan backup yang bisa dimodifikasi oleh user, arsip atau recovery.
COBOL (common business oriented language) Bahasa pemrograman High Level Language, menggunakan bahasa Inggris, yang lebih banyak digunakan dalam dunia bisnis atau digunakan dalam pemrosesan data komersial. Database ' Suatu kumpulan data yang memiliki struktur tertentu untuk penerimaan, penyimpanan dan penyediaan jika data tersebut dibutuhkan. ' Semua data yang tersimpan di dalam sistem. Database Administrator User yang bertanggun jawab dalam hal perancangan, pengembangan, integrity dan memelihara database. Database File Satu dari beberapa tipe dari objek sistem yang bertipe *FILE yang tersimpan di dalam sistem yang mengandung deskripsi tentang bagaimana data inputan dari internal storage digunakan pada sebuah program serta bagaimana data output dari sebuah program digunakan pada internal storage. Data Integrity ' Suatu keadaan dimana tidak terjadi kerusakan, penggantian, atau kehilangan data, baik secara sengaja maupun tidak disengaja. ' Di dalam suatu lingkup unit kerja, walaupun semua perubahan pada sistem database management telah selesai atau tidak selesai, kupulan operasi-operasi yang berubah tersebut disebut sebagai sebuah integral set.
DB2 Universal Database for AS/400 Suatu relational database manager yang terintegrasi di dalam AS/400. DB2 Universal Database for AS/400 ini menyediakan akses dan proteksi terhadap data. Ia juga menyediakan fungsi-fungsi advance seperti referential integrity dan parallel database processing. DBMS (Database Management System) Suatu sistem yang memiliki sekumpulan tabel yang menggambarkan bagaimana data tersimpan. DBMS mengontrol akses terhadap data yang tersimpan di dalamnya. DBMS juga memiliki manajemen transaksi dan fungsi recovery data untuk melindungi integritas data. DDL (data definition language) Suatu bahasa yang digunakan untuk menggambarkan/menjelaskan data dan relasi data tersebut di dalam suatu database file. DFU (Data File Utility) Bagian dari Application Development ToolSet yang digunakan untuk masuk, memelihara, dan menampilkan record-record dalam file database. Distribution List Sebuah daftar entri-entri dari system distribution directory yang memungkinkan user untuk dapat mengirim pesan, catatan, dokumen kepada sebuah group atau kelompok user dalam satu langkah. FTP (File Transfer Protocol) Di dalam TCP/IP, FTP merupakan sebuah protokol aplikasi yang digunakan untuk mentransfer file dari dan menuju host komputer. Function Beberapa instruksi atau sekumpulan instruksi yang saling berhubungan yang digunakan untuk melakukan suatu tugas atau operasi-operasi tertentu. IDDU (Interactive Data Definition Utility) Sebuah fungsi dari sistem operasi yang dapat digunakan untuk dapat mendefinisikan karakteristik dari data dan isi dari file. Integrity Di dalam computer security, integrity merupakan jaminan terhadap data/informasi bahwa data/informasi yang sampai pada lokasi tujuan harus sama dengan informasi/data yang dikirim dari tempat asal, dan tidak terjadi modifikasi data/informasi pada saat data/informasi tersebut dikirimkan. IP (Internet Protocol) Suatu protokol yang mengirimkan data melalui suatu jaringan (network) ataupun menggunakan interconected network. IP bertindak sebagai perantara antara layer protokol yang lebih tinggi dengan jaringan fisik (physical network). Namun protokol ini tidak menyediakan error recovery dan flow control dan juga tidak menjamin keandalan (reliability) jaringan fisik. Journal Sebuah objek sistem yang mengidentifikasikan bahwa objek tersebut sudah dicatat atau dijurnalkan, journal receiver pada saat tertentu, dan semua journal receiver pada sistem untuk jurnal tersebut. Sistem mengenali objek tersebut adalah *JRN. Journal Entry Sebuah record dalam Journal Receiver yang mengadung informasi tentang perubahan perubahan yang dicatat atau aktifitas lain yang tercatat. Journal Receiver Sebuah objek sistem yang mengandung Journal Entry yang dimasukkan pada saat berlangsunya kegiatan-kegiatan yang dicatat pada jurnal seperti perubahan database file, perubahan pada objek-objek jurnal atau hal-hal yang menyangkut kegiatan security. Tipe dari objec tersebut adalah *JRNRCV. Library Suatu objek sistem yang berfungsi seperti directory terhadap objek lain. Sebuah library mengelompokkan objek-objek yang berhubungan, dan memungkinkan user untuk mencari objek dengan menggunakan nama objek tersebut. Sistem mengorganisasikan pengenal objek tersebut dengan tipe * LIB. Log Di dalam Backup Recovery dan Media Services, log adalah catatan atau history dari backup, arsip atau recovery. Sebuah log dapat ditampilkan secara langsung maupun dicetak melalui printer. Logical File Sebuah deskripsi tentang bagaimana data akan ditampilkan atau diterima dari sebauh program. Tipe database file ini tidak mengandung data, tetapi mendefinisikan Record Format dari satu atau lebih Phisical File. Member Sejumlah set data yag berbeda-beda dimana setiap data memiliki format yang sama yang terdapat dalam satu file database. Object (Objek) Suatu tempat atau ruang storage yang memiliki nama yang terdiri dari sejumlah karakter yang mendeskripsikan dirinya sendiri, dan dalam beberapa hal dapat dikatakan sebagai data. Sebuah objek adalah segala macam yang ada dan menempati suatu ruang atau tempat didalam storage dan dimana suatu operasi dapat dijalankan. Beberapa contoh objek antara lain program, file, library, and folder. Object-Oriented Programming Suatu metode untuk menyusun program-program dalam bentuk hiraki yang menjabarkan data serta operasi-operasi pada objek yang dapat berinteraksi dengan objek-objek lain. Operating System Suatu kumpulam program sistem yang mengontrol seluruh operasi pada sebuah sistem komputer. Operating System mengintegrasikan atau menghubungkan antara perangkat keras dan perangkat lunak komputer. OS/400 (Operating System/400) Operating System (Sistem Operasi) yang digunakan pada sistem atau mesin AS/400. PDM (programming development manager) Suatu bagian dari program Application Development ToolSet yang memunginkan user untuk melakukan beberapa macam operasi (seperti copy, delete dan rename) dari daftar libraries, objects dan members. PDM juga mengijinkan user untuk membuat user-defined options untuk melakukan suatu operasi. Privilege Dalam SQL, Privilege merupakan kemampuan yang diberikan kepada user melalui proses GRANT. Query ' Suatu permintaan untuk memilih (select) dan meng-copy dari satu atau beberapa file, satu atau beberapa record, berdasarkan kondisis tertentu pada database relational. ' Suatu pernyataan yang dapat digunakan untuk dapat melakukan select, format dan menganalisa informasi yang diperoleh dari data file untuk menghasilkan suatu report atau file lain. Record Format Sebuah bagian dari file yang diberi nama yang mengidentifikasikan record dari sebuah bentuk record khusus. Recovery Suatu proses untuk mengembalikan database kembali ke keadaan semula setelah terjadi kegagalan sistem (system failure). Replication (Replikasi) Suatu proses peng-copy-an objek-objek dari satu media ke media lain yang membuat objek-objek tersebut identik pada semua sistem. Resource Security Sebuah fungsi keamanan dari sistem operasi yang digunakan untuk memberikan wewenang kepada user terhadap semua bagian dari sistem yang dibutuhkan oleh sebuah tugas atau pekerjaan. RPG (Report Program Generator) Sebuah bahasa pemrograman yang dirancang untuk penulisan program aplikasi untuk kebutuhan pemrosesan data dunia bisnis. Program aplikasinya mencakup mulai dari pembuatan report sampai progam penyelidik untuk aplikasi-aplikasi, sebagai contoh antara lain payroll, order entry dan production planning. Security Administrator Authority Sebuah wewenang khusus yang memungkinkan seorang user untuk dapat membuat atau menambah user baru kedalam system distribution directory, untuk membuat dan mengubah User Profile, untuk menambah dan menghapus kode akses, dan untuk menampilkan Office Task, seperti hapus dokumen, folder, dokumen list, dan mengubah distribution list terhadap user lain. Security Officer Seseorang yang ditugaskan untuk mengontrol semua wewenang keamanan (security authorizations) yang disediakan oleh sistem. Seorang Security Officer mampu untuk menghapus password atau resource security, untuk menambahkan, mengubah atau menghapus informasi security mengenai semua system user. SEU (Source Entry Utility) Sebuah fungsi dari program Application Development ToolSet yang digunakan untuk membuat dan mengunbah source member. Source File Sebuah file yang berisi code program yang belum di compile kedalam bahasa mesin. Sebuah source file dapat berisi statement-statement dari bahasa tingkat tinggi atau deskripsi spesifikasi data. Source Member Sebuah member dari database souce file yang mengandung statement-statemen seperti ILE C, COBOL, RPG atau DDS. SQL (Structured Query Language) Suatu bahasa yang dapat digunakan didalam bahasa pemrograman atau secara interaktif untuk meletakkan informasi di dalam database dan untuk mendapatkan dan mengorganisasikan informasi yang dipilih dari sebuah database.
PYTHON Bahasa pemrograman ini mempunyai filosofi sendiri, atara lain adalah: Coherence. Bahasa pemrograman skrip tidaklah menjadi sulit untuk dibaca, ditulis, dan dimaintain. Power (kekuatan). Bahasa pemrograman ekstensi tidaklah mempunyai fungsi yang terbatas. Scope (jangkauan). Bahasa pemrograman dinamis dapat digunakan untuk berbagai macam tugas. Tidak ada alasan bahwa bahasa pemrograman tidak dapat menyediakan tanggapan yang cepat selama masa pembuatan sistem aplikasi dan juga mempunyai kelebihan yang membuatnya berguna untuk membuat lebih daripada sistem aplikasi tingkat tinggi. Object. Pemrograman berorientasi objek dapat menjadi paradigma yang berguna, karena pemrograman berorientasi objek mempunyai kekuatan dalam strukturnya dan penggunaan kembali kode yang telah ada. Bahasa pemrograman berorientasi objek tidak perlu untuk menjadi kompleks atau sulit untuk digunakan. Integration(integrasi). Tidak ada bahasa pemrograman yang menjadi pulau. Penyediaan dari kekuatan bahasa pemrograman dinamis, dan antarmuka yang terdefenisi dengan baik untuk bahasa pemrograman lainnya, python membantu sistem hibrid yang secara simultan pengungkitan kecepatan perubahan dari python, dan efisiensi dari C. Perlu diketahui pula bahasa pemrograman python cenderung untuk menyerupai bahasa pemrograman tradisional seperti C dan Pascal, daripada bahasa permrograman skrip seperti Perl dan Tcl. Pada kenyataannya, Python adalah suatu dari bahasa pemrograman skrip dalam samaran dari bahasa perograman tradisional. Ada pendapat lain yang menyatakan bahwa Python merupakan jembatan antara bahasa skrip dan C. Kelebihan Python Bahasa pemrograman ini mempunyai kelebihan dari beberapa bahasa pemrograman skrip dan bahasa pemrograman C. Kelebihan Keuntungan Tidak ada tahapan kompilasi dan penyambungan (link). Kecepatan perubahan pada masa pembuatan sistem aplikasi. Tidak ada deklarasi tipe. Program menjadi lebih sederhana, singkat, dan lebih fleksible. Manajemen memori otomatis. Kumpulan sampah memori sehingga dapat menghindari pencatatan kode. Tipe data dan operasi tingkat tinggi. Kecepatan pembuatan sistem aplikasi menggunakan tipe objek yag telah ada. Pemrograman berorientasi objek. Penstrukturan kode dan penggunaan kembali, integrasi C++. Pelekatan dan perluasan dalam C. Integrasi C, sistem bahasa campuran Kelas, Modul, Eksepsi. Dukungan pemrograman skala besar secara modular. Pemuatan dinamis modul C. Ekstensi yang sederhana, serta berkas biner yang lebih kecil. Pemuatan kembali secara dinamis modul Python. Memodifikasi aplikasi tanpa menghentikannya. Model objek universal kelas satu. Fewer restriction dan special-case rules. Konstruksi pada saat aplikasi berjalan. Handle unforeseen need, end-user coding. Interaktif, dinamis alamiah. Incremental development and testing. Akses hingga informasi interpreter. Metaprogramming, introspective object. Portabilitas secara luas. Pemrograman antar platform tanpa ports. Kompilasi untuk portabel kode byte. Kecepatan eksekusi, melindungi kode sumber. Antarmuka terpasang untuk pelayanan keluar. Perangkat bantu sistem, GUI, persistence, database, dan lain sebagainya. Secara jujur, Python merupakan konglomerat dari kelebihan yang dibawa dari bahasa pemrograman lainnya, termasuk element dari C, C++, Modula-3, ABC, Icon, dan lainya. Modul python datang dari modula, dan potongan operasi dari Icon. Apa yang baik bagi Python ? Penggunaan python pada lingkungan yang berbagai macam ragam, sulit untuk menjawab secara resmi terhadap pertanyaan di atas. Pada bagian bawah ini merupakan rangkuman dari beberapa bidang yang menggunakan python pada saat ini: ' Perangkat bantu shell. Tugas-tugas sistem administrator, program baris perintah. ' Kerja bahasa ekstensi. Antarmuka untuk pustaka C/C++, kustomisasi ' Pembuatan prototipe secara cepat/pembuatan sistem aplikasi. Prototipe yang dapat dibuang atau sesuai dengan permintaan. ' Modul berdasarkan bahasa pemrograman. Pengganti dari penulisan parser khusus. ' Antarmuka pengguna grafis. Penggunaan GUI API sederhana dan canggih. ' Pengaksesan basisdata. Penyimpanan objek tetap, antarmuka sistem SQL. ' Pemrograman terdistribusi. Penggunaan API mekanisme client/server terintegrasi. ' Skrip internet. Skrip CGI, antarmuka HTTP, Aplet WWW, dan lainnya. Pada pengertian umum, python memberikan pelayanan terhadap jangkauan bidang: ' Bahasa pemrograman dinamis, untuk situasi dimana salah satu tahap link atau kompilasi tidak memungkinkan (modifikasi di tempat klien), atau tidak nyaman (pembuatan prototipe, pembuatan aplikasi secara cepat, perangkat bantu shell). ' Bahasa pemrograman yang powerful tetapi sederhana, untuk situasi dimana kompleksitas dari bahasa pemrograman yang besar is sometimes a liability (prototipe, pengkodean pada pemakai akhir). ' Generalized language tool, untuk situasi dimana dibutuhkan untuk menanamkan dan implementasi bahasa pemrograman kecil lainnya (antarmuka sistem yag dapat di program, perangkat bantu konfigurasi). Berdasarkan properti umum yang diberikan, python dapat di terapkan pada area mana saja ynag kita ingin kan, dengan meningkatkannya dengan pustaka pada bidangnya, melekatkannya dengan sistem aplikasi, atau menggunakannya secara sendiri. Pada tabel di bawah ini terdapat beberapa ektensi python yang populer. Bidang Ekstensi Pemrograman sistem Soket, thread, signal, pipe, pemanggil RPC, POSIX binding. Antarmuka pengguna grafis X11, Tk, Tix, MFC, STDWIN Antarmuka basisdata Oracle, Sybase, PostGres, mSQL, persistence ("pickling"), dbm Perangkat bantu microsoft windows MFC, OLE Perangkat bantu internet Grail web browser(aplet), parser HTML, antarmuka CGI. Objek terdistribusi ILU (CORBA) Perangkat bantu populer lainnya Expect, ekspresi regula, ekstensi numerik, kriptograpi. Apa yang telah kita lihat, arsitektur python yang terbuka mendukung bentuk pembuatan sistem aplikasi dan produknya secara dinamis. Pada python pula, kita dapat mencampurkan prototipe, pembuatan sistem aplikasi secara cepat, dan engineering perangkat lunak secara tradisional, berdasarkan pada permintaan dalam suatu projek. Penggunaan python sebagai perangkat bantu pembuat skrip, kita dapat membuka sebagian dari sistem untuk modifikasi oleh pemakai akhir.
DASAR-DASAR PEMROGRAMAN PYTHON
Bentuk dasar 'if' Pencabangan menggunakan if disusun sebagai berikut if : # perintah-1 # perintah-2 perintah-1 dan perintah-2 akan dijalankan jika ekspresi menghasilkan nilai True. Perhatikan bahwa di akhir if terdapat tanda : dan bagian di bawah if tersebut ditulis sebagai blok, yakni ditandai dengan indentasi. Apabila hanya satu perintah di dalam blok if, bentuk di atas dapat diringkas sebagai berikut, if : perintah Contoh penggunaan 1 #!/usr/bin/env python 2 3 # 4 # hapus.py 5 # skrip interaktif penghapus berkas berukuran tertentu 6 # 7 # oleh: weling, 08/2006 8 # 9 10 # pemakaian sejumlah modul 11 import os 12 import sys 13 import string 14 from stat import * 15 16 # konstanta batas ukuran berkas 17 bigSize = 10000 18 19 # nama berkas diambil dari parameter skrip 20 filename = sys.argv[1] 21 ret = os.stat(filename) 22 23 if ret[ST_SIZE] >= bigSize: 24 # konfirmasi ke pemakai jika berkas tersebut melewati batas ukuran 25 hapus = raw_input('%s berukuran di atas 10000 byte. Hendak dihapus? [y=ya] ' % filename) 26 27 # periksa masukan dari pemakai 28 if string.lower(hapus) == 'y': 29 # hapus setelah konfirmasi diperiksa 30 os.unlink(filename) Penjelasan contoh Baris 1 berisi pemanggilan ke aplikasi yang akan menjalankan skrip. Teknik ini terutama digunakan di lingkungan UNIX dan dikenal dengan sebutan Sha-Bang. Shell akan memanggil env, sebuah utilitas di UNIX, dan berikutnya akan menjalankan Python. Baris 3 s.d. 8 adalah komentar tentang skrip, biasanya diisi dengan cara pemanggilan, fungsi, pembuat skrip. Modul-modul yang digunakan oleh skrip ditulis dengan kata kunci import di baris 11 s.d. 14. bigSize adalah variabel yang diisi batas ukuran berkas dan diset di baris 17. Angka 10000 merujuk pada satuan byte dan akan digunakan sebagai bahan pemeriksaan di baris 23. Nama berkas yang akan diperiksa diambil dari parameter setelah nama skrip, seperti ditulis pada baris 20, disimpan di variabel filename dari senarai argv. Sedangkan pemeriksaan status berkas dilakukan di baris berikutnya, menggunakan fungsi os.stat() dan disimpan di variabel ret. Barulah pada baris 23 pencabangan menggunakan if muncul. Hasil pemeriksaan stat() dilihat dari sisi ukuran, ST_SIZE, dan jika lebih besar atau sama dengan bigSize maka blok setelahnya (baris 24 dan seterusnya) dijalankan. Baris 25 berisi informasi bagi pemakai dan meminta konfirmasi balik sebelum penghapusan dilakukan. Terakhir di baris 28, masukan dari pemakai diperiksa dan karena tidak dibedakan huruf kapital atau kecil, fungsi string.lower() digunakan untuk pembandingan. Jika memang pemakai akan menghapus berkas -- yaitu memasukkan pilihan y -- berkas dihapus dengan fungsi os.unlink().
Pencabangan Elif Bentuk if dan else yang bersusun hingga beberapa tingkat seperti if : # perintah-1a # perintah-1b else: if : # perintah-2a # perintah-2b dapat diringkas pada bagian else: ... if menggunakan elif, sehingga menghasilkan konstruksi if : # perintah-1a # perintah-1b elif : # perintah-2a # perintah-2b Contoh pemakaian Program penentuan indeks nilai berikut, Toggle line numbers 1 #!/usr/bin/env python 2 3 nilai = int(raw_input('Masukkan nilai yang akan diindeks: ')) 4 5 if 25 >= nilai > 0: 6 print "Indeks: E" 7 elif 45 >= nilai > 25: 8 print "Indeks: D" 9 elif 60 >= nilai > 45: 10 print "Indeks: C" 11 elif 85 >= nilai > 60: 12 print "Indeks: B" 13 else: 14 print "Indeks: A"
Pengulangan dalam python Pengulangan While Bentuk while digunakan untuk pengulangan dalam jumlah iterasi yang belum diketahui. Pengulangan akan terus berjalan selama kondisi yang dijadikan acuan terpenuhi, atau menghasilkan nilai True. Penulisan bentuk while sebagai berikut, Toggle line numbers 1 while : 2 # perintah-1 3 # perintah-2 4 ... 5 else: 6 # perintah-3 Selama masih terpenuhi (menghasilkan nilai True), perintah yang ditulis di blok while -- dicontohkan sebagai perintah-1 dan perintah-2 pada skrip di atas -- akan dijalankan. Apabila tidak terpenuhi (menghasilkan nilai False), yang juga mungkin terjadi pada pertama kali pengulangan, bagian else akan dijalankan -- pada contoh di atas dicontohkan dengan perintah-3. Pernyataan break yang dijalankan di dalam blok pengulangan akan menghentikan pengulangan tanpa menjalankan bagian else. Pernyataan continue di dalam pengulangan akan melewati bagian skrip setelahnya dan kembali ke pemeriksaan . Contents 1. Contoh pemakaian while dalam bentuk umum 1. Penjelasan 2. Contoh pemakaian while dengan bagian else 1. Penjelasan Contoh pemakaian while dalam bentuk umum Toggle line numbers 1 #!/usr/bin/env python 2 3 # 4 # iterasi.py: 5 # penghitungan iterasi numerik 6 # 1/2 + 1/4 + 1/8 + 1/16 + ... 7 # sampai dengan mendekati nilai '1' pada limit tertentu 8 # 9 # oleh: weling, agustus 2006 10 # 11 12 i = 1 # pencacah iterasi 13 n = 2 # pecahan dimulai dari penyebut '2' 14 sigma = 0.0 # hasil penjumlahan 15 epsilon = 1.0e-05 # selisih hasil penjumlahan '1' terhadap sigma 16 17 # tampilkan header 18 print "No. Suku\t\tSigma" 19 20 # pengulangan berlangsung selama selisih absolut '1' dan hasil penjumlahan 21 # (sigma) belum mencapai batas epsilon 22 while abs(1 - sigma) > epsilon: 23 # untuk setiap n, hitung Sn 24 sn = 1.0 / n 25 26 # tampilkan status di sebuah iterasi 27 print "%2d. %.5f\t\t%7f" % (i, sn, sigma) 28 29 # hasil penjumlahan setiap Sn dilakukan 30 sigma = sigma + sn 31 32 # n naik dua kali lipat 33 n *= 2 34 35 # pencacah ditambah 36 i += 1 Penjelasan Baris 1 berisi pemanggilan ke aplikasi yang akan menjalankan skrip. Teknik ini terutama digunakan di lingkungan UNIX dan dikenal dengan sebutan Sha-Bang. Shell akan memanggil env, sebuah utilitas di UNIX, dan berikutnya akan menjalankan Python. Baris 3 s.d. 10 adalah komentar tentang skrip, biasanya diisi dengan cara pemanggilan, fungsi, pembuat skrip. Kumpulan variabel yang digunakan oleh program ditulis pada baris 12 s.d. 15. Penjelasan setiap variabel ditulis pada komentar sesudahnya. Baris 22 merupakan awal pengulangan dengan kondisi pemeriksaan: selama selisih mutlak 1 dan sigma masih lebih besar dari epsilon (yang berarti belum mendekati batas epsilon tersebut), iterasi terus dilanjutkan. Fungsi math.fabs() digunakan untuk memeriksa selisih mutlak. Di dalam blok baris 23 s.d. 36 dilakukan perhitungan sbb.: ' sn mewakili Sn, yakni elemen tiap suku deret, seperti ??, ??, dst. ' sigma merupakan hasil penjumlahan hingga Sn terakhir yang dihitung. Misalkan Sn sampai di ??, maka sigma sudah berisi hasil perhitungan ?? + ??, dst. ' n menjadi bernilai dua kali lipat setiap kali iterasi, ditulis sebagai n *= 2. ' pencacah i dinaikkan untuk iterasi berikutnya. Contoh pemakaian while dengan bagian else Toggle line numbers 1 #! /usr/bin/env python 2 3 # 4 # whelse.py 5 # permainan tebak angka, simulasi dari while-else 6 # 7 # 8 9 import random 10 11 print "*** Tebak angka. ***\n" \ "Isikan bilangan bulat 0 s.d. 9 sampai " \ "cocok dengan simpanan komputer.\n" \ "Isikan '-1' untuk mengakhiri.\n" 12 13 i = 1 14 tebakan = int(raw_input('Tebakan ke-%d: ' % i)) 15 sodoran = random.randint(0,9) 16 17 while (tebakan != -1): 18 if (tebakan == sodoran): 19 print "Selamat. Tebakan Anda benar" 20 break 21 i += 1 22 tebakan = int(raw_input('Tebakan ke-%d: ' % i)) 23 else: 24 print "Permainan berakhir atas permintaan pemain. " \ "Terima kasih"
Pengulangan For Penggunaan for untuk pengulangan di Python cukup unik. Apabila bahasa pemrograman Pascal menggunakan tipe data ordinal -- bilangan bulat (integer) misalnya -- sebagai kendali pengulangan dan bahasa pemrograman C membolehkan iterasi dan kondisi untuk menghentikan pengulangan, Python melakukan iterasi sepanjang sekumpulan item dalam sebuah sekuens 1. Urutan iterasi tersebut mengikuti item tersebut berada pada sekuens tersebut. Sekuens yang dapat digunakan adalah sebuah senarai (list) atau sebuah string. Contoh pemakaian for: Toggle line numbers 1 #!/usr/bin/env python 2 3 # kota.py: pengulangan untuk daftar kota 4 5 kota = ['Banda Aceh', 'Medan', 'Padang', 'Bengkulu'] 6 7 for namakota in kota: 8 print namakota dan menghasilkan luaran: $ python kota.py Banda Aceh Medan Padang Bengkulu Fungsi yang menghasilkan sekuens juga dapat digunakan untuk for. Berikut modifikasi contoh di atas dengan penambahan nama provinsi, Toggle line numbers 1 #!/usr/bin/env python 2 3 # ibukota.py: pengulangan untuk nama provinsi dan ibukota provinsi 4 5 provinsi = { 'Nanggaroe Aceh Darussalam': 'Banda Aceh', 6 'Sumatera Utara': 'Medan', 7 'Sumatera Barat': 'Padang', 8 'Riau': 'Pekanbaru' 9 } 10 11 for namaprovinsi in provinsi.keys(): 12 print '%s: %s.' % (namaprovinsi, provinsi[namaprovinsi]) dan luaran hasilnya, $ python ibukota.py Nanggaroe Aceh Darussalam: Banda Aceh. Riau: Pekanbaru. Sumatera Barat: Padang. Sumatera Utara: Medan. Menirukan pengulangan di Pascal Pengulangan dari sebuah angka ke angka lain seperti yang lazim digunakan pada algoritma dan bahasa pemrograman Pascal dapat disimulasikan di Python dengan fungsi range(). Sebagai contoh, untuk menampilkan angka 1 s.d. 9 dapat digunakan pengulangan berikut, Toggle line numbers 1 for i in range(1,10): 2 print i Hal ini dimungkinkan karena range() menghasilkan senarai dari batas bawah hingga batas atas.
PERINTAH MASUKAN Fungsi yang paling mudah untuk mendapatkan masukan dari pemakai adalah raw_input(). Parameter yang dapat dilewatkan di dalamnya adalan String berisi informasi yang disajikan kepada pemakai tentang masukan. Contoh pemakaian, Toggle line numbers 1 s = raw_input('Masukkan angka di antara 20 dan 50') 2 print 'Angka yang dimasukkan: ', s
Pemrograman Web Pemrograman web dengan Python berisi aspek-aspek pengembangan aplikasi web, di sisi klien atau server. Framework Web Framework web untuk pengembangan aplikasi di sisi server. Beberapa framework web pada Python antara lain: 1. Django http://djangoproject.com 2. web.py http://webpy.org 3. Turbogears http://turbogears.org 4. Pylon 5. Zope Templating Modul-modul untuk mempermudah pembuatan output aplikasi web. Beberapa templating antara lain: 1. Kid 2. Cheetah Server Web Server web yang dibuat dengan Python, antara lain: 1. Cherrypy http://cherrypy.org 2. mod_wsgi 3. web.py
RUBY Ruby adalah bahasa pemrograman scripting yang berorientasi obyek. Tujuan dari ruby adalah menggabungkan kelebihan dari semua bahasa pahasa pemrograman scripting yang ada didunia. Ruby ditulis dengan bahasa pemrograman C dengan kemampuan dasar seperti Perl dan Phyton.
Sejarah Ruby pertama kali dibuat oleh seorang programmer Jepang bernama Yukihiro Matsumoto. Pada tahun 1993 Yukihiro ingin mebuat sebuah bahasa pemrograman scripting yang memiliki kemambuan orientasi obyek. Pada saat itu pemrograman berorientasi obyek sedang berkembang tetapi belum ada bahasa pemrograman scripting yang mendukung pemrograman obyek.
Penulisan Ruby dimulai pada Februari 1993 dan pada Cesember 1994 dirilis versi alpha dari Ruby. Pada awal perkembangan Ruby, Yukihiro menulis Ruby sendiri sampai pada tahun 1996 sudah terbentuk komunitas Ruby yang banyak mengkontribusikan perkembangan Ruby.
Saat ini Ruby telah berkembang pesat diseluruh dunia, tidak hanya di Jepang.
Kelebihan Ruby * Sintaks sederhana * Memiliki Exception Handling yang baik * OOP * Single inheritance
Sistem operasi yang didukung * Linux * Windows * MacOS X * BeOS * OS/2 * Unix
1. Variable Berbeda dengan bahasa pemrograman seperti C dan Java, di dalam Ruby kita dapat langsung mendefinisikan sebuah variable tanpa menentukan tipenya. Anda dapat mencobanya langsung melalui irb2 . $irb> a = 2 $irb> b = 2 $irb> a + b $=> 4 Bukan hanya tipe data numeric, anda juga bisa membuat tipe data string secara langsung. $irb> a = 'hehe' $irb> a.length $=> 4 $irb> a.reverse $=> 'eheh' $irb> a $=> 'hehe' Di dalam Ruby kita mengenal istilah symbol. Symbol ini akan sering sekali anda temui di dalam Rails. Sering digunakan sebagai semacam konstanta pengganti string. $irb> a = :test $irb> a != :test $=> false $irb> a == :test $=> true Symbol ini bisa dibilang lebih hemat memori dibandingkan dengan String. Di dalam Ruby kita akan sering menemukan symbol dalam sebuah pemanggilan method. Selain itu kita juga akan sering Menggunakan symbol sebagai sebuah key dalam hash. Kedua hal ini sering membuat bingung orang-orang yang pertama kali mempelajari Ruby.
2. Array dan Hash Bagi anda yang sudah akrab dengan pemrograman pasti sudah mengenal apa yang dimaksud dengan array dan hash. Di dalam Ruby saya bisa mengatakan bahwa array sangat terkait dengan simbol [] sedangkan hash dengan {}. Mengapa? Karena memang itulah salah satu cara untuk menginisialisasi array dan hash. $irb> a = [] $=> [] $irb> a = Array.new $=> [] $irb> a = [47, 77, 17] $=> [47, 77, 17] $irb> a << 107
$=> [47, 77, 17, 107] $irb> a.length $=> 4 $irb> a.sort $=> [17, 47, 77, 107] Pada contoh diatas terlihat bahwa kita bisa juga melakukan inisialisasi array dengan memanggil method new(). Selanjutnya kita bisa menambahkan elemen pada array dengan menggunakan operator <<. Berbeda dengan array, pada hash kita memiliki pasangan key dan value. Sebagaimana yang telah saya sebutkan sebelumnya, dalam Ruby hash ini seringkali dipakai sebagai parameter dalam pemanggilan sebuah method.
$irb> a = {} $=> {} $irb> a = Hash.new $=> {} $irb> a = {:keren => 'abis'} $=> {:keren => 'abis'} $irb> a[:manthab] = 'jaya' $=> 'jaya' $irb> a[:keren] $=> 'abis' $irb> a[:manthab] $=> 'jaya'
Pada contoh di halaman sebelumnya terlihat bahwa kita bisa menggunakan symbol sebagai key. Namun, ternyata kita juga bisa melakukan hal yang sebaliknya sebaimana yang terlihat pada contoh berikut ini. $irb> a['keren'] = :jaya $=> :jaya $irb> a $=> {:keren=>"abis", "keren"=>:jaya, :manthab=>"jaya"} Sama seperti array kita bisa menggunakan method length() untuk melihat jumlah data yang ada di dalam hash. $irb> a.length $=> 3
3. Control Structure Sekarang kita akan mempelajari control structure di Ruby. Sampai sini kita sebenarnya masih bisa menggunakan irb. Namun agar lebih jelas dan mudah dimengerti kita akan membuat sebuah file Ruby bernama coba1.rb. a = ARGV[0].to_i if a > 7 puts "#{a} lebih besar dari 7" elsif a < 7
puts "#{a} lebih kecil dari 7"
else
puts "#{a} sama dengan 7"
end
Perhatikan bahwa Ruby mengenali elsif bukan else if. Pada kode diatas kita melakukan substitusi nilai a di dalam tanda kutip dengan cara '#{a}'. Sekarang coba jalankan program di atas dan masukkan nilai sembarang sebagai argumen.
$ruby coba1.rb 8
$8 lebih besar dari 7
Kita akan sering menggunakan looping di dalam aplikasi kita. Salah satu caranya adalah dengan menggunakan for. Sekarang mari kita buat file baru coba2.rb yang di dalamnya kita isi dengan code berikut:
for i in 1..10 do
puts "#{i}"
end
Ketika dijalankan, program ini akan mencetak angka 1 sampain dengan 10 ke layar. Selain for kita juga bisa menggunakan while untuk melakukan looping. Berikut ini adalah contoh penggunaannya dalam file coba3.rb
i = 1
while i <= 10
puts i
i = i + 1
end
Ketika dieksekusi program ini akan memberikan output yang sama dengan coba2.rb.
4. Method
Sebuah method dideklarasikan dengan menggunakan keyword def dan diakhiri dengan end. Sebagai contoh buatlah file baru coba4.rb.
def coba_method(name)
puts "coba #{name}"
end
a = "Jaya!"
coba_method(a)
coba_method("Dunks!")
Ketika dieksekusi, program diatas akan mengahasilkan output sebagai berikut:
coba Jaya!
coba Dunks!
Untuk me-return sebuah nilai, kita hanya perlu menuliskan nilai (atau variable) tersebut di dalam method.
def kali_dua(nilai_awal)
kali_dua = nilai_awal * 2
kali_dua
end
kali_dua = kali_dua(4)
puts "kali dua #{kali_dua}"
Hasil eksekusi dari program ini adalah:
kali dua 8
Sebenarnya bisa saja kita menggunakan keyword return untuk mereturn sebuah nilai dari method. Namun, di sini saya hanya ingin menunjukkan alternatif dari cara tersebut.
5. Classes
Deklarasi sebuah kelas dimulai dengan class dan diakhiri dengan end. Sebagai contoh kita akan membuat sebuah kelas Mahasiswa pada file mahasiswa.rb.
class Mahasiswa
def initialize(nama, npm)
@nama = nama
@npm = npm
end
def cetak_info
puts "Nama: #{@nama}"
puts "NPM: #{@npm}"
end
end
Instance variable dari sebuah kelas dideklarasikan dengan '@' yang akan membuatnya bisa diakses oleh semua instance method yang ada di kelas tersebut. Namun instance variable tersebut tidak akan bisa diakses dari luar kelas. Untuk bisa melakukan itu kita perlu membuat accessor method. Tambahkan kedua method ini pada kelas Mahasiswa yang telah kita buat.
def nama=(nama_baru)
@nama = nama_baru
end
def nama
@nama
end
Anda bisa menguji method ini dengan melakukan pemanggilan method seperti dibawah ini.
mhs = Mahasiswa.new("Si Bocung","1203000439")
mhs.cetak_info
mhs.nama = "Si Bocah" # mengubah nama menjadi Si Bocah
mhs.cetak_info
nama = mhs.nama # method ini akan mereturn Si Bocah sebagai nama
puts nama
Namun untuk mendefinisikan method setter dan getter bagi setiap variable adalah pekerjaan yang melelahkan. Oleh karena itu Ruby menyediakan method attr_accessor() untuk memudahkan kita.
class Mahasiswa
attr_accessor :npm
attr_accessor :nama
ASP ' Microsoft?? Active Server Pages (ASP) merupakan server-side scripting yang digunakan untuk membuat situs yang dinamis dan aplikasi web yang interaktif. 'Sesuai prinsip server-side scripting, ASP juga merupakan halaman HTML yang diisikan script-script yang diproses oleh web server sebelum dikirim ke web browser. ' ASP dapat dikombinasikan dengan : ' Extensible Markup Language (XML) ' Component Object Model (COM) ' Hyper Text Markup Language (HTML)
' Saat ASP ver 3.0 diluncurkan, programmer menemukan banyak hal yang mempermudah proses pembuatan program. Ini dikarenakan ASP telah diperkaya berbagai fungsi. ' Namun programmer masih menemukan masalah umum dalam penggunaan ASP, yaitu ASP bersifat 'code-oriented'. Yang artinya segala hal yang ingin 'dibuat' haruslah ditulis dengan kode-kode script. ' Microsoft mengeluarkan framework .NET pada Juli, 2000. ' Dengan adanya framework ini, programmer dapat membuat program lebih ringkas dan cepat. ' Hal ini dikarenakan penggunaan framework yang dapat mengurangi jumlah script yang dibuat oleh progammer.
ASP.NET ASP.NET adalah teknologi baru dalam pemrograman web yang merupakan kelanjutan dari teknologi ASP 3.0. Perbedaan utama disbanding ASP klasik adalah penggunaan .NET Framework sebagai fondasi pemrograman. ASP.NET memiliki beberapa kelebihan dibandingkan teknologi terdahulu, antara lain: 1. Kemudahan mengakses berbagai library .NET Framework secara konsisten dan powerful, yang mempercepat pengembangan aplikasi. 2. Penggunaan berbagai bahasa pemrograman secara penuh, misalnya VB.NET, C#, J#, dan C++. Dalam ASP.NET bahasa-bahasa ini dapat digunakan secara penuh sebagaimana layaknya bekerja di Windows Application. Hal ini jauh berbeda dibandingkan ASP klasik yang mengunakan scripting language. Misalnya VBScript agak berbeda syntaxnya dengan VB, dalam ASP.NET kita dapat menggunakan VB.NET dengan syntax yang 100% sama dengan ketika membangun Windows Application. Demikian juga dengan C#, tidak ada perbedaan syntax antara C# untuk membuat kode ASP.NET dengan Windows Form. Ini sangat memudahkan memprogram aplikasi Windows dan Web secara konsisten. 3. Tersedia berbagai Web Control yang dapat digunakan membangun aplikasi secara cepat Programmer dapat dengan mudah mengkaitkan data ke web control sebagaimana layaknya memprogram windows application. Hal ini sangat mempercepat pembuatan aplikasi dibandingkan harus menyusun kode-kode HTML secara manual. 4. Code Behind, artinya kode-kode pemrograman yang menjadi logic aplikasi di tempatkan terpisah dengan kode user interface yang berbentuk HTML. Ini sangat memudahkan dalam debugging, karena kode untuk presentation layer tidak tercampur dengan kode application logic.
PHP PHP adalah bahasa pemrograman script yang paling banyak dipakai saat ini. PHP banyak dipakai untuk memrogram situs web dinamis, walaupun tidak tertutup kemungkinan digunakan untuk pemakaian lain. Contoh terkenal dari aplikasi PHP adalah phpBB dan MediaWiki (software di belakang Wikipedia). PHP juga dapat dilihat sebagai pilihan lain dari ASP.NET/C#/VB.NET Microsoft, ColdFusion Macromedia, JSP/Java Sun Microsystems, dan CGI/Perl. Contoh aplikasi lain yang lebih kompleks berupa CMS yang dibangun menggunakan PHP adalah Mambo, Joomla!, Postnuke, Xaraya, dan lain-lain. Sejarah PHP - Akhir 1994: Rasmus Lerdorf, programmer Unix dan Perl membuat skrip Makro Perl CGI yang dapat mengetahui siapa saja yang mengakses resumenya yang ditaruh di web. - Awal 1995: PHP 1 (Personal Home Page Tools), Rasmus menulis ulang PHP dalam C dan mengajarkan belasan programmer untuk menggunakannya. Ia juga melengkapinya dengan Form Interpreter(FI) untuk memproses SQL dan data Form. - Sept-Okt 1995: PHP 2. Kode PHP dan FI ditulis ulang dan digabungkan menjadi PHP/FI, akhir 1995 dibagikan gratis bagi publik pertama kalinya - Apr 1996: Rasmus menulis mod_php, modul PHP untuk Apache - Des 1996: PHP/FI pertama kali mendukung MySQL dan telah dipakai di 15 ribu situs di dunia - Pertengahan 1997: Pemakai PHP/FI mencapai 50 ribu situs - Okt 1997: PHP3 dimulai dengan sumbangan parser dari Zeev dan Andi - Jan 1998: Dukungan MySQL untuk Windows dan PHP mendukung lebih dari 7 database, mSQL, MySQL, Sybase, PostgreSQL, SQL Server, Adabas dan Oracle. - 6 Juni 1998: PHP 3 (Professional Home Page) dirilis - Des 1998: PHP disertakan di RedHat Linux (PHP 3 sejak RedHat 6.2 dan PHP 4 sejak 7) - Mei 1999: PHP 4 beta - Okt 1999: PHP melampaui FrontPage sebagai modul Apache terpopuler - Nov 1999: PHP digunakan di 1,1 juta domain dan 357 ribu alamat IP menurut survey Netcraft. Zeev dan ANdi mendirikan Zend Technologies, LTd. - 20-24 Jan 2000: Konferensi Internasional PHP di TelAviv - 2 Maret 2000: Zend diluncurkan sebagai portal PHP - 22 Mei 2000: PHP 4 diluncurkan PHP menjadi populer karena kesederhanaanya dan kemampuannya dalam menghasilkan berbagai aplikasi web. Mulai dari counter, sistem artikel atau content management system, e-commerce/e-store, bulletin board/forum diskusi, dan sebagainya dapat dibuat dengan PHP. PHP adalah salah satu bahasa Server-side yang didesain khusus untuk aplikasi web. PHP dapat disisipkan diantara bahasa HTML dan karena bahasa Server side, maka bahasa PHP akan dieksekusi di server, sehingga yang dikirimkan ke browser adalah 'hasil jadi' dalam bentuk HTML, dan kode PHP anda tidak akan terlihat. PHP termasuk dalam Open Source Product dan saat ini telah mencapai versi 4. Jadi anda dapat merubah source code dan mendistribusikannya secara bebas. PHP juga diedarkan secara gratis. Anda bisa mendapatkannya secara gratis. PHP juga dapat berjalan diberbagai web server semisal IIS, Apache. PWS, dll. Penggabungan PHP dengan HTML Seperti yang telah dituliskan sebelumnya bahwa PHP dapat digabung / mixed dengan HTML, Untuk penulisannya dalam HTML, kode PHP diawali dengan tanda . Contoh kode:
Testing
Kelebihan PHP dari bahasa pemrograman lain ' Bahasa pemrograman PHP adalah sebuah bahasa script yang tidak melakukan sebuah kompilasi dalam penggunaanya. ' Web Server yang mendukung PHP dapat ditemukan dimana - mana dari mulai apache, IIS, Lighttpd, hingga Xitami dengan configurasi yang relatif mudah. ' Dalam sisi pengembangan lebih mudah, karena banyaknya milis - milis dan developer yang siap membantu dalam pengembangan. ' Dalam sisi pemahamanan, PHP adalah bahasa scripting yang paling mudah karena memiliki referensi yang banyak. ' PHP adalah bahasa open source yang dapat digunakan di berbagai mesin (Linux, Unix, Macintosh, Windows) dan dapat dijalankan secara runtime melalui console serta juga dapat menjalankan perintah-perintah system. Hello World Program Hello World yang ditulis menggunakan PHP adalah sebagai berikut: Hello World" ; echo "Halo Dunia" ; ?>
Contoh program yang lebih kompleks Berikut ini adalah contoh program yang relatif lebih kompleks yang ditulis dengan menggunakan PHP. Contoh program ini adalah program untuk menampilkan barisan bilangan Fibonacci.
Kelemahan PHP: - Tidak ideal untuk pengembangan skala besar
- Tidak memiliki sistem pemrograman berorientasi objek yang sesungguhnya (sampai versi 4 ini)
- Tidak bisa memisahkan antara tampilan dengan logik dengan baik (walau penggunaan template dapat memperbaikinya)
- PHP memiliki kelemahan security tertentu apabila programmer tidak jeli dalam melakukan pemrograman dan kurang memperhatikan isu dan konfigurasi PHP
- Kode PHP dapat dibaca semua orang, dan kompilasi hanya dapat dilakukan dengan tool yang mahal dari Zend ($2000).
HTML HyperText Markup Language (HTML) adalah sebuah bahasa markup yang digunakan untuk membuat sebuah halaman web dan menampilkan berbagai informasi di dalam sebuah browser Internet. Bermula dari sebuah bahasa yang sebelumnya banyak digunakan di dunia penerbitan dan percetakan yang disebut dengan SGML (Standard Generalized Markup Language), HTML adalah sebuah standar yang digunakan secara luas untuk menampilkan halaman web. HTML saat ini merupakan standar Internet yang didefinisikan dan dikendalikan penggunaannya oleh World Wide Web Consortium (W3C). Versi terakhir dari HTML adalah HTML 4.01, meskipun saat ini telah berkembang XHTML yang merupakan pengembangan dari HTML. HTML berupa kode-kode tag yang menginstruksikan browser untuk menghasilkan tampilan sesuai dengan yang diinginkan. Sebuah file yang merupakan file HTML dapat dibuka dengan menggunakan browser web seperti Mozilla Firefox atau Microsoft Internet Explorer. HTML juga dapat dikenali oleh aplikasi pembuka email ataupun dari PDA dan program lain yang memiliki kemampuan browser.
HTML dokumen tersebut mirip dengan dokumen teks biasa, hanya dalam dokumen ini sebuah teks bisa memuat instruksi yang ditandai dengan kode atau lebih dikenal dengan TAG tertentu. Sebagai contoh jika ingin membuat teks ditampilkan menjadi tebal seperti: TAMPIL TEBAL, maka penulisannya dilakukan dengan cara: TAMPIL TEBAL. Tanda digunakan untuk mengaktifkan instruksi cetak tebal, diikuti oleh teks yang ingin ditebalkan, dan diakhiri dengan tanda untuk menonaktifkan cetak tebal tersebut. Markup/Tanda Secara garis besar, terdapat 4 jenis elemen dari HTML: ' structural. tanda yang menentukan level atau tingkatan dari sebuah teks (contoh,
Golf
akan memerintahkan browser untuk menampilkan "Golf" sebagai teks tebal besar yang menunjukkan sebagai Heading 1 ' presentational. tanda yang menentukan tampilan dari sebuah teks tidak peduli dengan level dari teks tersebut (contoh, boldface akan menampilkan bold. Tanda presentational saat ini sudah mulai digantikan oleh CSS dan tidak direkomendasikan untuk mengatur tampilan teks, ' hypertext. tanda yang menunjukkan pranala ke bagian dari dokumen tersebut atau pranala ke dokumen lain (contoh, Wikipedia akan menampilkan Wikipedia sebagai sebuah hyperlink ke URL tertentu), ' Elemen widget yang membuat objek-objek lain seperti tombol (
updated on Thursday, 18 December 2008 by chikmonk gokill
sekarang kita belajar redirect situs web friendster ke dalam alamat yang kita berikan, fungsinya buat melihat alamat email dan password friendster caranya dengan fake login friendster. Fake Login dapat diartikan secara kasar sebagai Login Palsu Fake Login merupakan halaman palsu yang di desain berdasarkan source code pada halaman login asli milik FRIENDSTER. Nantinya Fake Login ini akan digunakan untuk menjebak user friendster agar memasukkan username dan password-nya. Data ini yang akan kita ambil dan kita simpan dalam log file. Dengan mengetahui username dan password user lainnya, maka kita dapat leluasa keluar masuk profile korban tersebut. Entah apa yang dilakukan, mulai dari melihat PRIVATE PICTURE, melihat MESSAGE dan lainnya. Terkadang password mereka juga sama dengan password yang digunakan pada email mereka. Hal ini memungkinkan kita untuk membaca isi email dari sang korban. Mari kita mulai aza yahhh. .
Untuk membuat FAKE LOGIN ini, tentunya kita harus mengupload script yang nanti akan kita buat ke webhosting sehingga dapat diakses oleh public. Dalam bahasa yang simpel, nantinya kita harus mempunyai URL yang bisa diakses pada browser. Webhosting yang digunakan terserah kalian. Yang digunakan dalam tutorial ini adalah RIPWAY. Kenapa memilih RIPWAY. .' Pertama, karena saya punya account di RIPWAY. Selain itu, menurut saya, RIPWAY relatif lebih mudah digunakan. OK. Saya anggap kalian sudah mengerti bagaimana penggunaan webhosting. Selanjutnya saya hanya akan menjelaskan tentang script dan penggunaannya saja. Untuk membuat halaman palsu, tentunya kita harus mengetahui script apa yang digunakan oleh FRIENDSTER pada halaman login asli-nya. dari pada nunggu pusing silahkan teman-teman download file di bawah ini silahkan download disini passwordnya lewat email z yach ke chiepoel@gmail.com..
kamu bisa membaca menganai file-filenya itu di "readme" . setelah di UPLOAD semuanya nah tinggal kamu copy link HTMLnya yang "login.html". tentunya kalian harus tau linker testimonialnya... Oughhhhh. . Selanjutnya bagaimana menginjeksikan ke dalam testimonial. .' Tenang. . Sabar.... < orank sabar di sayang yayang >,,,, Untuk menginjeksikan ke dalam testimonial target, kita memerlukan sebuah script linker. . Prinsip linker disini sama dengan linker untuk melakukan kustomisasi atau tweaking profile. . Namun dalam hal ini, file yang kita injeksikan adalah EVIL SCRIPT. . Seandainya EVIL SCRIPT ini kita gantikan dengan Script Tweaking. . Sah sah saja. .
Jangan lama-lama aahhh. . Mana linker yang jalan di testimonial. .
sebelumnya buat dulu new text document kemudian ketik script seperti di bawah ini :
@ECHO OFF Hacker kunci folder if EXIST "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" goto UNLOCK if NOT EXIST locker goto MDLOCKER :CONFIRM echo serius nech mo kunci ?? (Y/N) set/p "cho=>" if %cho%==Y goto LOCK if %cho%==y goto LOCK if %cho%==n goto END if %cho%==N goto END echo Invalid choice. goto CONFIRM :LOCK ren locker "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" attrib +h +s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" echo foldernya dah dikunci goto End :UNLOCK echo aduh sowry masukin passwordnya dulu yach set/p "pass=>" if NOT %pass%== chikmonk goto FAIL attrib -h -s "COntrol Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" ren "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" Locker echo Folder Unlocked successfully goto End :FAIL echo Invalid password goto end :MDLOCKER md locker echo Foldernya berhasil di buat goto end :End
setelah itu save as dengan nama kunci.bat dan finish trus kalo mau kunci klik 2x kunci.bat ntar muncul folder dengan nama locker taruh file2 yang mau di kunci di dalam folder tersebut kemudian kalo udah selesai klik kunci.bat lagi konfirmasi (Y/N) ketik Y dan Enter
kalo mau dibuka lagi tinggal klik kunci.bat lagi truz masukkin password
passwordnya chikmonk bisa diganti sesuka hati,,,
kalo males ngetik bisa langsung download di sini gratis semoga bermanfaat
updated on Tuesday, 4 November 2008 by chikmonk gokill
Motherboard adalah sebuah papan sirkuit dan panel-panel elektronik yang menggerakan system PC secara keseluruhan. Secara prinsip, sebuah motherboard terdiri atas beberapa bagian yakni system CPU (prosesor), sirkuit clock/timing, Ram, Cache, ROM BIOS, I/O port seperti port serial, port pararel, slot ekspansi, prot IDE. Motherboard sebagai komponen circuit board utama yang menghubungkan banyak komponen lain. Mulai dari CPU/processor, RAM, video card, harddisk,dan seterusnya. Pada motherboard terdapat BIOS (Basic Input/Output System), yang akan di-loading kali pertama sistem menyala. BIOS mendefinisikan komponen yang terhubung dengan Motherboard.
Spesifikasi Motherboard ASUS P5KPL-AM : ' Support intel 45 nm multi-core processor ' FSB 1600 (O.C.)/1333/1066/800 MHz ' DDR2 1066(O.C.)/800/667 MHz ' 5000Hrs VRM Solid Capasitors ' Gb Lan ' 2 x Com Port ' Power Stabilizer
P5KPL-AM menggunakan chipset intel G31 yang support dengan Intel Quad-Core CPU dan fitur FSB 1600(OC)/1333/1066/800 MHz, PCI Express x 16, Serial ATA Interface, High Performance Intergrated Graphic Engine, dua channel memory DDR2 1066(OC)/800/677, 6 channel HD Audio CODEC. Chipset @Intel G31 Express yang cocok untuk gamer dan multimedia, Intel Graphic engine yang terpadu dengan media accelerator 3100. suppor 133MHz FSB dan penerobosan terbaru graphic 3D dan 2D. chipset intergrasi sebagai alat untuk memperlihatkan aplikasi Visual dan kaya fitur oleh Intel@ Clear Video Technology yang mana dengan standar baru Video definisi baru,imaging adjustment, dan accurate color control. Dual channel memory DDR2 dengan teknologi badwidth rangkap dalam system memory dan performa system terkini. PCI Express dengan I/O interkoneksi teknologi yang menggantikan PCI biasa saat ini. Dengan kecepatan waktu bandwidth 2 lebih tinggi dengan AGP 8x, PCI Express x16 performa lebih baik dari AGP 8x seperti game 3D. PCI Express dengan kecepatan tinggi menjadikan PC Desktop jadi lebih baik. System suara dalam PC dengan 6 channel HD Audio ( High Definition Audio ). Dengan kualitas tinggi 192KHz/ 24-bit Audio Output, fitur sensitive jack,dll. LAN onboard controller penggabungan yang sangat baik dengan Gigbit LAN controller. Power Stabilizer dengan desain yang special untuk switch power supply.yang mana memonitoring kedua IC untuk mendeteksi tegangan. Dengan penyediaan system power supply yang dapat dipercaya untuk mengatur daerah motherboard bila mana ada korsleting pada kontak power supply atau kelebihan tegangan volt.
2.Memory Harga : U$ 30 / Rp. 286.500
adalah sebuah tipe penyimpanan komputer yang isinya dapat diakses dalam waktu yang tetap tidak memperdulikan letak data tersebut dalam memori. Ini berlawanan dengan alat memori urut, seperti tape magnetik, disk dan drum, di mana gerakan mekanikal dari media penyimpanan memaksa komputer untuk mengakses data secara berurutan. Pertama kali dikenal pada tahun 60'an. Hanya saja saat itu memori semikonduktor belumlah populer karena harganya yang sangat mahal. Saat itu lebih lazim untuk menggunakan memori utama magnetic. Perusahaan semikonduktor seperti Intel memulai debutnya dengan memproduksi RAM , lebih tepatnya jenis DRAM.
Spesifikasi : 'Type : Long DIMM DDR2 'Size : 130 x 30 x 2 mm 'Deskripsi : Kapasitas : 2 GB Kecepatan : 800 MHz Cal : CL 5 Chip Configurasi : 64M x 8 16 Chip, 32M x 8 8 Chip Chipset : V-Gen Major Brand Jenis IC : Tiny BGA Slot : DIMM 240 Pin Tipe : Unbuffered Voltage : 1.8 V ECC : No Register : No
3.VGA Card Harga : U$ 21 / Rp. 200.550
VGA, singkatan dari Video Graphics Adapter, adalah standar tampilan komputer analog yang dipasarkan pertama kali oleh IBM pada tahun 1987. Walaupun standar VGA sudah tidak lagi digunakan karena sudah diganti oleh standar yang lebih baru, VGA masih diimplementasikan pada Pocket PC. VGA merupakan standar grafis terakhir yang diikuti oleh mayoritas pabrik pembuat kartu grafis komputer. Tampilan Windows sampai sekarang masih menggunakan modus VGA karena didukung oleh banyak produsen monitor dan kartu grafis. Istilah VGA juga sering digunakan untuk mengacu kepada resolusi layar berukuran 640??480, apa pun pembuat perangkat keras kartu grafisnya. Kartu VGA berguna untuk menerjemahkan keluaran komputer ke monitor. Untuk proses desain grafis atau bermain permainan video, diperlukan kartu grafis yang berdaya tinggi. Produsen kartu grafis yang terkenal antara lain ATI dan nVidia. Selain itu, VGA juga dapat mengacu kepada konektor VGA 15-pin yang masih digunakan secara luas untuk mengantarkan sinyal video analog ke monitor. Standar VGA secara resmi digantikan oleh standar XGA dari IBM, tetapi nyatanya VGA justru digantikan oleh Super VGA.
Spesifikasi : ' Graphic Engine : GeForce 7200GS ' Video Memory : 128Mb DDR2 ' Engine Clock : 450MHz ' Memory Clock : 666MHz ( 333MHz DDR2 ) ' Memory Interface : 64-bit ' CRT Max Resolution : 2048*1536 ' Bus Standar : PCI Express X16 ' VGA Output : Yes ' HDTV Output (YPbPr) : Yes, Via HDTV-put Cable ' TV Output : yes ' DVI Output : Yes ' Adapte / Cable Bundled : HDTV out Cable ' Software Bundled : ASUS Utilies & Driver
4.Hardisk Harga : U$ 34.8 / Rp. 332.340
Hardisk ( Cakram ) adalah sebuah komponen perangkat keras yang menyimpan data sekunder dan berisi piringan magnetis. Cakram keras diciptakan pertama kali oleh insinyur IBM, Reynold Johnson di tahun 1956. Cakram keras pertama tersebut terdiri dari 50 piringan berukuran 2 kaki (0,6 meter) dengan kecepatan rotasinya mencapai 1.200 rpm (rotation per minute) dengan kapasitas penyimpanan 4,4 MB. Cakram keras zaman sekarang sudah ada yang hanya selebar 0,6 cm dengan kapasitas 750 GB. Data yang disimpan dalam cakram keras tidak akan hilang ketika tidak diberi tegangan listrik. Dalam sebuah cakram keras, biasanya terdapat lebih dari satu piringan untuk memperbesar kapasitas data yang dapat ditampung. Dalam perkembangannya kini cakram keras secara fisik menjadi semakin tipis dan kecil namun memiliki daya tampung data yang sangat besar. Cakram keras kini juga tidak hanya dapat terpasang di dalam perangkat (internal) tetapi juga dapat dipasang di luar perangkat (eksternal) dengan menggunakan kabel USB ataupun FireWire.
Spesifikasi : ' Penyimpanan Kapasitas 80 GB ' Kumparan Kecepatan 7200 RPM ' Serial SATA Interface ' Maksimum dasar data transfer 150 Mbps ' Tenaga 8 MB ' Rata-rata waktu membaca 9.3 ms ' 4.2 ms untuk menulis
Spesifikasi Power ' +5V, 670mA ' +12V, 960mA
5.Processor Harga : U$ 65.7 / Rp. 627.435
CPU, singkatan dari Central Processing Unit, merujuk kepada perangkat keras komputer yang memahami dan melaksanakan instruksi dan data dari perangkat lunak. Istilah lain, prosesor, sering digunakan untuk menyebut CPU. Adapun mikroprosesor adalah CPU yang diproduksi dalam sirkuit terpadu, seringkali dalam sebuah paket chip-tunggal. Sejak pertengahan tahun 1970-an, mikroprosesor chip-tunggal ini telah umum digunakan dan menjadi aspek penting dalam implementasi CPU. Komponen CPU terbagi menjadi beberapa macam, yaitu sebagai berikut. * Unit kontrol yang mampu mengatur jalannya program. Komponen ini sudah pasti terdapat dalam semua CPU. * Unit eksekusi yang mampu melakukan operasi terhadap data dan memiliki beberapa bagian, seperti ALU (Unit Logika dan Aritmatika), FPU (Floating Point Unit), dan lainnya. Komponen ini sudah pasti terdapat dalam semua jenis CPU. * Sekumpulan daftar yang dapat digunakan untuk menampung data maupun hasil perhitungan yang belum selesai dengan sempurna. Komponen ini terkadang terdapat dalam CPU, tetapi tidak semuanya. * Memori internal CPU, yang bentuknya bisa berupa cache. Komponen ini terkadang terdapat dalam CPU. Kebanyakan CPU lama tidak memilikinya.
Spesifikasi : ' Intel Dual Core E2220 @2.40 GHz ' Socket 775 LGA ' Teknologi 65 nm ' FSB 800 MHz ' L2 Cache 1 Mb ' TDP 65 W ' EIST Yes ' Clock speed 2.40 Ghz ' VID Voltage Range 0.85V ' 1.5V
6.LCD Monitor harga : U$ 125 / Rp. 1.193.750
Liquid Crystal Display juga dikenal sebagai LCD adalah suatu jenis media tampilan yang menggunakan kristal cair sebagai penampil utama. LCD sudah digunakan di berbagai bidang misalnya dalam alat-alat elektronik seperti televisi, kalkulator ataupun layar komputer. Pada LCD berwarna semacam monitor terdapat banyak sekali titik cahaya (pixel) yang terdiri dari satu buah kristal cair sebagai sebuah titik cahaya. Walau disebut sebagai titik cahaya, namun kristal cair ini tidak memancarkan cahaya sendiri. Sumber cahaya di dalam sebuah perangkat LCD adalah lampu neon berwarna putih di bagian belakang susunan kristal cair tadi. Titik cahaya yang jumlahnya puluhan ribu bahkan jutaan inilah yang membentuk tampilan citra. Kutub kristal cair yang dilewati arus listrik akan berubah karena pengaruh polarisasi medan magnetik yang timbul dan oleh karenanya akan hanya membiarkan beberapa warna diteruskan sedangkan warna lainnya tersaring.
Spesifikasi : ' Brand : Acer ' Model : AL 1516 ' Cabinet Color : Black ' Display : 15' ' Resolution : 1012 x 768 @ 75Hz ' Viewing angle : 120o (H) / 100o (V) ' Pixel Pitch : 0.297mm ' Display colors : 16.7 juta ' Brightness : 250 cd/m2 ' Contrast Ratio : 450:1 ' Response time : 16ms ' Panel : TFT LCD ' Display Type : SXGA
Connectivity ' Input Video Compatibility : Analog RGB ' Connector : D-Sub ' D-Sub : 1 ' Power supply : 100-240V ' Power Konsumsi : 40W ' Fitur : Kensington Lock, VESA Wall Mount ' Dimensi ( W x H x D ) : 342 x 352 x 162 ' Weight : 2.75 Kg.
updated on Tuesday, 4 November 2008 by chikmonk gokill
Anda lupa akan password dari akun Windows XP yang Anda miliki? Ada virus yang mengubah password dari akun Windows XP yang Anda miliki? Bila Anda sebelumnya telah membuat Password Reset Disk, hal ini tentunya tidak menjadi masalah. Cukup gunakan Password Reset Disk dan Anda bisa mengubah password yang ada sesuai keinginan. Berikut PCplus akan menunjukkan cara membuat Password Reset Disk. Demi alasan keamanan, biasanya satu komputer yang digunakan oleh beberapa pengguna menggunakan setiap password yang berbeda untuk tiap penggunanya. Pemberian password yang berbeda ini bertujuan untuk menyimpan profil dan pengaturan setiap akun, agar nantinya setiap pengguna yang terdaftar pada komputer tersebut memiliki tingkatan yang berbeda serta dapat menggunakan Windows XP sesuai dengan kehendaknya tanpa mengganggu pengaturan pengguna lain. Pada NTFS, folder dokumen juga dapat diatur agar hanya dapat dibuka oleh akun pemilik dokumen. Tanpa password atau salah memasukkan password, pengguna tidak dapat masuk ke komputer tersebut. Oleh karena itu, sangatlah vital untuk selalu ingat akan password dari akun miliknya. Tapi, bisa saja password berubah karena ketidaksengajaan atau ulah virus. Sebagai tindakan pencegahan, sebaiknya Anda membuat Password Reseter dengan utiliti bawaan Windows XP, yaitu Password Reset Disk. Password Reset Disk ini nantinya berfungsi utntuk me-reset password yang telah ada dan menggantinya dengan password baru. Anda tinggal memasukkan password baru tersebut menggunakan akun bersangkutan. Meskipun nantinya Anda mengubah password dari akun Anda beberapa kali, Anda hanya perlu membuat Password Reset Disk sekali. Password Reset Disk tersebut tentunya hanya dapat digunakan untuk akun bersangkutan saja. Password Reset Disk sebuah akun tidak dapat digunakan untuk akun lainnya. Untuk membuat Password Reset Disk ini diperlukan sebuah floopy disk atau USB flash disk, untuk meletakkan file yang diperlukan. Bila yang digunakan USB flash disk, pasang terlebih dahulu USB flash disk tersebut agar dapat dideteksi dan dipilih pada pembuatan Password Reset Disk. Langkah-langkah yang PCplus gunakan untuk membuat Password Reset Disk bisa Anda lihat berikut ini. 1. Pada Windows XP klik [Start] > [Control Panel] > [User Accounts]. 2. Pada jendela [User Accounts] klik akun Anda. Sebelumnya pastikan pilihan [Use the Welcome Screen] sudah diaktifkan pada pilihan [Change the way users log on or off]. 3. Klik pilihan [Prevent a forgotten password] yang ada di sebelah kiri di jendela yang muncul. 4. Berikutnya tekan tombol [Next] pada jendela [Welcome to the Forgotten Password Wizard]. 5. Pada jendela [Create a Password Reset Disk] masukkan floopy disk atau USB flash disk pada PC. Pilih piranti yang ingin digunakan, lalu klik [Next]. 6. Masukkan password dari akun Anda saat ini pada jendela yang muncul, lalu klik [Next]. 7. Tunggulah hingga proses pembuatan Password Reset Disk selesai. Ikuti dengan menekan [Next]. 8. Pada jendela [Completing the Forgotten Password Wizard], klik [Finish]. Keluarkan floopy disk atau cabut USB flash disk dari PC. Tutup juga jendela tersisa yang tidak ingin digunakan lagi. 9. Nantinya ketika diperlukan, pada [Welcome Screen] klik tanda panah berwarna hijau dan klik [use your password reset disk]. 10.Pada jendela [Welcome to the Password Reset Wizard] klik [Next]. 11.Masukkan Password Reset Disk yang telah Anda buat sebelumnya, floopy disk atau USB flash disk. Pilih piranti yang menjadi Password Reset Disk, lalu klik [Next]. 12. Masukkan password baru yang Anda inginkan termasuk konfirmasinya. Setelah selesai klik [Next]. 13. Tutup jendela yang muncul kemudian dengan menekan [Finish]. 14. Masukkan password baru yang telah Anda buat tadi untuk masuk pada Windows XP.
semoga bermanfaat
Sumber : Berdasarkan tulisan yang dimuat di Tabloid PCplus edisi Tahun VII/09 - 22 Januari 2007/PCplus 274 - Halaman 34 - 35, Rubrik Tutorial. http://annisk.blogspot.com/2007/02/jika-lupa-password-windows-xp.html
updated on Tuesday, 4 November 2008 by chikmonk gokill
Jika anda ingin belajar system operasi linux, tanpa harus menginstall di komputer , ada tips sederhana yang harus anda pelajari disini, jika anda memang sudah expert tentang dunia perlinuxan ya..? artikel ini sekedar wawasan yang ringan untuk dipelajari bagi para pemula kayak aku
diatas adalah tampilan menu login
Tutorial kali ini adalah membuat linux berada di flashdisk kita, syarat utamanya anda harus : 1. Mempunyai flashdisk yang kapasitasnya minimal 1 gb ( ato lebih tinggi ) 2. SoftwareAIOPendrivelinux08.zip 3. Operating system windows ( untuk numpang install ) 4. PC anda harus bisa booting menggunakan USB ( meski tidak wajib ) sebab anda jika tidak booting menggunakan flash disk, linux ini juga bisa dipakai didalam windows Caranya Install Pendrivelinux 2008 dari windows? Download AIOPendrivelinux08.zip Jika selesai downloadnya extract file tersebut kedalam flasdisk yang kosong ( lebih baik ) yang formatnya fat32, jika sudah selesai, klik saja makeboot.bat itu jika anda masih didalam operating system windows, jika anda booting melalui dos yang mainboardnya support di boot via usb, tinggal anda jalankan saja. Aku sudah coba hasilnya lumayan bagus untuk pemula. berikut ini tampilan linux didalam flash disk Tidak perlu panjang dan lebar semuanya bisa anda download dan coba sendiri tampilannya atau baca di sini namun sayang filenya gedhe'!! Selamat mencoba