di posting oleh chikmonk on 20/10/09

udah malam ko lom tidur ya
More about

10 Keanehan dunia yang belum terjawab

di posting oleh cH1km0nK on 28/05/09

Ringkasan ini tidak tersedia. Harap klik di sini untuk melihat postingan.
More about10 Keanehan dunia yang belum terjawab

arti hacker

di posting oleh cH1km0nK on 21/03/09

setelah lama tidak mengurus blog ini karena punya web sndri skr baru mo bagi-bagi hasil surfing lagi nech...

mungkin untuk sebagian orang banyak yang tahu dengan nama hacker.
tapi apa sech arti hacker sebenarya.
karena nama hacker sekarang banyak disalahgunakan orang untuk melakukan

kejahatan padahal arti hacker sendiri itu bukan orang jahat.
jadi siapakah yang sebenarnya jahat?
orang jahat itu adalah orang yang merusak dan mengaku dirinya adalah hacker.

sebelum kita belajar hacker lebih kita mengenal dulu apa arti hacker

sebenarnya.

1. Hacker

Hacker adalah sebutan untuk mereka yang memberikan sumbangan yang bermanfaat

kepada jaringan komputer, membuat program kecil dan membagikannya dengan

orang-orang di Internet. Sebagai contoh : digigumi (Grup Digital) adalah sebuah

kelompok yang mengkhususkan diri bergerak dalam bidang game dan komputer.

Digigumi ini menggunakan teknik teknik hexadecimal untuk mengubah teks yang

terdapat di dalam game. Contohnya, game Chrono Trigger berbahasa Inggris dapat

diubah menjadi bahasa Indonesia. Oleh karena itu, status Digigumi adalah

hacker, namun bukan sebagai perusak. Hacker disini artinya, mencari,

mempelajari dan mengubah sesuatu untuk keperluan hobi dan pengembangan dengan

mengikuti legalitas yang telah ditentukan oleh developer game. Para hacker

biasanya melakukan penyusupan-penyusupan dengan maksud memuaskan pengetahuan

dan teknik. Rata - rata perusahaan yang bergerak di dunia jaringan global

(internet) juga memiliki hacker. Tugasnya yaitu untuk menjaga jaringan dari

kemungkinan perusakan pihak luar “cracker”, menguji jaringan dari kemungkinan

lobang yang menjadi peluang para cracker mengobrak - abrik jaringannya, sebagai

contoh : perusahaan asuransi dan auditing “Price Waterhouse”. Ia memiliki team

hacker yang disebut dengan Tiger Team. Mereka bekerja untuk menguji sistem

sekuriti client mereka.

2. Cracker

Cracker adalah sebutan untuk mereka yang masuk ke sistem orang lain dan cracker

lebih bersifat destruktif, biasanya di jaringan komputer, mem-bypass password

atau lisensi program komputer, secara sengaja melawan keamanan komputer,

men-deface (merubah halaman muka web) milik orang lain bahkan hingga men-delete

data orang lain, mencuri data dan umumnya melakukan cracking untuk keuntungan

sendiri, maksud jahat, atau karena sebab lainnya karena ada tantangan. Beberapa

proses pembobolan dilakukan untuk menunjukan kelemahan keamanan sistem.

Hirarki / Tingkatan Hacker
1. Elite

Ciri-ciri : mengerti sistem operasi luar dalam, sanggup mengkonfigurasi &

menyambungkan jaringan secara global, melakukan pemrogramman setiap harinya,

effisien & trampil, menggunakan pengetahuannya dengan tepat, tidak

menghancurkan data-data, dan selalu mengikuti peraturan yang ada. Tingkat Elite

ini sering disebut sebagai ‘suhu’.

2. Semi Elite

Ciri-ciri : lebih muda dari golongan elite, mempunyai kemampuan & pengetahuan

luas tentang komputer, mengerti tentang sistem operasi (termasuk lubangnya),

kemampuan programnya cukup untuk mengubah program eksploit.

3. Developed Kiddie

Ciri-ciri : umurnya masih muda (ABG) & masih sekolah, mereka membaca tentang

metoda hacking & caranya di berbagai kesempatan, mencoba berbagai sistem sampai

akhirnya berhasil & memproklamirkan kemenangan ke lainnya, umumnya masih

menggunakan Grafik User Interface (GUI) & baru belajar basic dari UNIX tanpa

mampu menemukan lubang kelemahan baru di sistem operasi.

4. Script Kiddie

Ciri-ciri : seperti developed kiddie dan juga seperti Lamers, mereka hanya

mempunyai pengetahuan teknis networking yang sangat minimal, tidak lepas dari

GUI, hacking dilakukan menggunakan trojan untuk menakuti & menyusahkan hidup

sebagian pengguna Internet.

5. Lamer

Ciri-ciri : tidak mempunyai pengalaman & pengetahuan tapi ingin menjadi hacker

sehingga lamer sering disebut sebagai ‘wanna-be’ hacker, penggunaan komputer

mereka terutama untuk main game, IRC, tukar menukar software prirate, mencuri

kartu kredit, melakukan hacking dengan menggunakan software trojan, nuke & DoS,

suka menyombongkan diri melalui IRC channel, dan sebagainya. Karena banyak

kekurangannya untuk mencapai elite, dalam perkembangannya mereka hanya akan

sampai level developed kiddie atau script kiddie saja.

Cracker tidak mempunyai hirarki khusus karena sifatnya hanya membongkar dan

merusak.

Kode Etik Hacker

1. Mampu mengakses komputer tak terbatas dan totalitas.

2. Semua informasi haruslah FREE.

3. Tidak percaya pada otoritas, artinya memperluas desentralisasi.

4. Tidak memakai identitas palsu, seperti nama samaran yang konyol, umur,

posisi, dll.

5. Mampu membuat seni keindahan dalam komputer.

6. Komputer dapat mengubah hidup menjadi lebih baik.

7. Pekerjaan yang di lakukan semata-mata demi kebenaran informasi yang harus

disebar luaskan.

8. Memegang teguh komitmen tidak membela dominasi ekonomi industri software

tertentu.

9. Hacking adalah senjata mayoritas dalam perang melawan pelanggaran batas

teknologi komputer.

10. Baik Hacking maupun Phreaking adalah satu-satunya jalan lain untuk

menyebarkan informasi pada massa agar tak gagap dalam komputer.
Cracker tidak memiliki kode etik apapun.

Aturan Main Hacker

Gambaran umum aturan main yang perlu di ikuti seorang hacker seperti di

jelaskan oleh Scorpio, yaitu:

· Di atas segalanya, hormati pengetahuan & kebebasan informasi.

· Memberitahukan sistem administrator akan adanya pelanggaran keamanan / lubang

di keamanan yang anda lihat.

· Jangan mengambil keuntungan yang tidak fair dari hack.

· Tidak mendistribusikan & mengumpulkan software bajakan.

· Tidak pernah mengambil resiko yang bodoh – selalu mengetahui kemampuan

sendiri.

· Selalu bersedia untuk secara terbuka / bebas / gratis memberitahukan &

mengajarkan berbagai informasi & metoda yang diperoleh.

· Tidak pernah meng-hack sebuah sistem untuk mencuri uang.

· Tidak pernah memberikan akses ke seseorang yang akan membuat kerusakan.

· Tidak pernah secara sengaja menghapus & merusak file di komputer yang dihack.

· Hormati mesin yang di hack, dan memperlakukan dia seperti mesin sendiri.

Hacker sejati akan selalu bertindak berlandaskan kode etik dan aturan main

sedang cracker tidak mempunyai kode etik ataupun aturan main karena cracker

sifatnya merusak.

Perbedaan Hacker dan Cracker

a. Hacker

1.Mempunyai kemampuan menganalisa kelemahan suatu sistem atau situs. Sebagai

contoh : jika seorang hacker mencoba menguji situs Yahoo! dipastikan isi situs

tersebut tak akan berantakan dan mengganggu yang lain. Biasanya hacker

melaporkan kejadian ini untuk diperbaiki menjadi sempurna.

2.Hacker mempunyai etika serta kreatif dalam merancang suatu program yang

berguna bagi siapa saja.

3. Seorang Hacker tidak pelit membagi ilmunya kepada orang-orang yang serius

atas nama ilmu pengetahuan dan kebaikan.

b. Cracker

1. Mampu membuat suatu program bagi kepentingan dirinya sendiri dan bersifat

destruktif atau merusak dan menjadikannya suatu keuntungan. Sebagia contoh :

Virus, Pencurian Kartu Kredit, Kode Warez, Pembobolan Rekening Bank, Pencurian

Password E-mail/Web Server.

2. Bisa berdiri sendiri atau berkelompok dalam bertindak.

3. Mempunyai situs atau cenel dalam IRC yang tersembunyi, hanya orang-orang

tertentu yang bisa mengaksesnya.

4. Mempunyai IP yang tidak bisa dilacak.

5. Kasus yang paling sering ialah Carding yaitu Pencurian Kartu Kredit,

kemudian pembobolan situs dan mengubah segala isinya menjadi berantakan.

Sebagai contoh : Yahoo! pernah mengalami kejadian seperti ini sehingga tidak

bisa diakses dalam waktu yang lama, kasus clickBCA.com yang paling hangat

dibicarakan tahun 2001 lalu.

sudah jelas yang sebenarnya orang jahat itu adalah cracker bukan hacker seperti kebanyakan pendapat orang.

jadi kesimpulannya

Para hacker menggunakan keahliannya dalam hal komputer untuk melihat, menemukan dan memperbaiki kelemahan sistem keamanan dalam sebuah sistem komputer ataupun dalam sebuah software. Oleh karena itu, berkat para hacker-lah Internet ada dan dapat kita nikmati seperti sekarang ini, bahkan terus di perbaiki untuk menjadi sistem yang lebih baik lagi. Maka hacker dapat disebut sebagai pahlawan jaringan sedang cracker dapat disebut sebagai penjahat jaringan karena melakukan melakukan penyusupan dengan maksud menguntungkan dirinya secara personallity dengan maksud merugikan orang lain. Hacker sering disebut hacker putih (yang merupakan hacker sejati yang sifatnya membangun) dan hacker hitam (cracker yang sifatnya membongkar dan merusak)

dan sekarang tergantung anda semua apakah ingin menjadi hacker atau menjadi cracker karena banyak orang menjadi cracker sebelum dia bisa menjadi hacker……

sumber : chikmonk.co.cc



Image and video hosting by TinyPic
More aboutarti hacker

akhirnya PR aku bisa naik

di posting oleh cH1km0nK on 15/02/09

terima kasih untuk semua pengunjung karena udah mau meluangkan waktunya berkunjung ke blog aku

akhirnya PR aku bisa naik lagi

mudah2an aza ga turun lagi yach

dan apa yang sudah ada disini bisa bermanfaat untuk semuanya







Image and video hosting by TinyPic
More aboutakhirnya PR aku bisa naik

SEMINAR HACKING

di posting oleh cH1km0nK

Seminar Yogyafree dan Coder.web.id
Materi : Wireless & Local Hacking

Acara tanggal Hari Sabtu, 7 Maret 2009 di STIMIK AMIKBANDUNG

Pembicara :
- Founder Coder.web.id
- Adi (Fo YF 2)
- Zaenab (Staff YF 2)
- Kurniawan (Fo YF 1)

STIMIK AMIKBANDUNG Jalan Jakarta No.28, Bandung, Telepon : 022-76153456

Pendaftarannya
Rp.30.000 untuk pelajar dan Mahasiswa
Rp.50.000,00 untuk umum

Bisa lewat telepon xfree phone 022-76153456 atau hany 085659793321
Batas akhir pendaftaran tanggal 4 maret 2009

email : event@securehacklink.org
ym : xfreecode

untuk info lebih lanjut bisa di lihat di sini

Free Image Hosting at www.ImageShack.us

QuickPost





Image and video hosting by TinyPic
More aboutSEMINAR HACKING

Ebook indonesia dari situs berbayar

di posting oleh cH1km0nK on 11/02/09

abizz buka-buka forum eh malah da yang baru juga nech
sekarang banyak orang jualan ebook di internet niatnya buat orang lain sukses tapi malah akhir-akhirnya menipu juga
klo mo beli ebook tolong jangan asal percaya z
di bawah da beberapa ebook gratisan jadi silahkan di download sepuasnya
Jadi Jangan Salah Beli Ebook

go-kerja.com
http://www.go-kerja.com
http://rapidshare.com/files/119321791/go-kerja.rar

ebook-bisnis.com
http://www.ebook-bisnis.com
http://rapidshare.com/files/119321845/ebook-bisnis.com.rar

duniausaha.com
http://www.duniausaha.com
http://rapidshare.com/files/119321865/duniausaha.rar

carabisnis.com
http://www.carabisnis.com
http://rapidshare.com/files/119321903/carabisnis.rar

bikinduit.com
http://www.bikinduit.com
http://rapidshare.com/files/119321904/bikinduit.rar

bayicerdas.com
http://www.bayicerdas.com
http://rapidshare.com/files/119321910/bayicerdas.rar

arisanmotor.com
http://www.arisanmotor.com
http://rapidshare.com/files/119321924/arisanmotor.rar

bisniswanita.com
http://www.bisniswanita.com
http://rapidshare.com/files/119321937/bisniswanita.rar

anakjenius.com
http://www.anakjenius.com
http://rapidshare.com/files/119321989/anakjenius.rar

aksesgratis.com
http://www.aksesgratis.com
http://rapidshare.com/files/119322002/aksesgratis.rar

serba-serbi.com
http://serba-serbi.com/
http://rapidshare.com/files/119322125/serba-serbi.zip

rahasiapria
http://rapidshare.com/files/119322443/rahasiapria.rar

rahasia-internet-gratis.com

http://rahasia-internet-gratis.com/
http://rapidshare.com/files/119322483/rahasia-internet-gratis.rar

rahasiapenis.com
http://rahasiapenis.com/
http://rapidshare.com/files/119322485/rahasiapenis.rar

planetbisnis.com
http://planetbisnis.com/
http://rapidshare.com/files/119322494/planetbisnis.rar

penulissukses.com
http://penulissukses.com/
http://rapidshare.com/files/119322508/penulissukses.rar

rahasia-webmaster.com
http://rahasia-webmaster.com/
http://rapidshare.com/files/119322515/rahasia-webmaster.rar

ps2ku.com
http://ps2ku.com/
http://rapidshare.com/files/119322536/ps2ku.rar

belajarbisnisinternet.com
http://rapidshare.com/files/148706357/BBI-1.zip.html
http://rapidshare.com/files/148707929/BBI-2.zip.html
http://rapidshare.com/files/148709075/BBI-3.zip.html

premaninternet.com
http://www.mediafire.com/?jwe2gzmjmmy

kerjakaya.cn
http://kerjakaya.cn/Afiliasi/KerjaKaya%20Produk%20Utama.zip
pw : kerjakayacn

lainnya :
http://kerjakaya.cn/Afiliasi/

30hari.com
http://rapidshare.com/files/152538647/30HARI.com.pdf.html

1. peluang bisnis di Internet
2. pemasang iklan baris otomatis
3. script membuat portal
4. keutamaan ilmu
5. click magnet software
6. bagaimana memperoleh pulsa gratis
7. pemasang url ke search engine
8. script buat iklan baris
9. affiliate, cara gratis mendapat penghasilan

download urutan 1-9
http://www.geocities.com/siapbisnis10/peluang_bisnis.zip
http://www.geocities.com/siapbisnis10/iklanbaris.zip
http://www.geocities.com/siapbisnis10/portal.zip
http://www.geocities.com/siapbisnis9/ilmu.zip
http://www.geocities.com/siapbisnis9/klikmagnet.zip
http://www.geocities.com/siapbisnis9/pulsagratis.zip
http://www.geocities.com/siapbisnis9/engine.zip
http://www.geocities.com/siapbisnis10/iklan.zip
http://www.geocities.com/siapbisnis9/affiliate.zip

Script SMUO Versi 7 + Ebook Panduan (GRATIS)
http://gempar.com/produk.php?cat=2
http://www.ziddu.com/download/2451695/SMUOASLI.rar.html

Rahasia Mendapatkan Pinjaman
http://www.modalbisnis.com
http://www.mediafire.com/?mjjxvwt1rxg

sumber : http://kaskus.us/showthread.php?t=1055692


Image and video hosting by TinyPic
More aboutEbook indonesia dari situs berbayar

Syarat dan cara pendaftaran DBS

di posting oleh cH1km0nK on 09/02/09

SYARAT-SYARAT DAN PERATURAN



PT DUTA FUTURE INTERNATIONAL

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)



Image and video hosting by TinyPic
More aboutSyarat dan cara pendaftaran DBS

Sistem Marketing Duta Business School ( DBS )

di posting oleh cH1km0nK

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)





Image and video hosting by TinyPic
More aboutSistem Marketing Duta Business School ( DBS )

Duta Business School

di posting oleh cH1km0nK

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.


Image and video hosting by TinyPic
More aboutDuta Business School

Tingkatan dalam masyarakat hacker

di posting oleh cH1km0nK on 08/02/09

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


Image and video hosting by TinyPic
More aboutTingkatan dalam masyarakat hacker

tugas pengertian pemrograman

di posting oleh cH1km0nK on 02/02/09

Sejarah C++

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.

\n newline
\r carriage return
\t tabulation
\v vertical tabulation
\b backspace
\f page feed
\a alert (beep)
\' single quotes (')
\" double quotes (")
\? question (?)
\\ inverted slash (\)

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

void prevnext (int x, int& prev, int& next)
{
prev = x-1;
next = x+1;
}

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 (
More abouttugas pengertian pemrograman