Selasa, 24 Mei 2011

WIRA USAHA

LATAR BELAKANG USAHA
Dengan usaha yang ada sekarang ini sudah terbilang banyak dan beraneka ragam usaha yang berkembang, jumlah penduduk yang terus bertambah, perekonomian yang semakin sulit dan lapangan kerja yang peluangnya semakin sedikit, membuat penduduk semakin banyak penggangguran.
Buat saya masalah yang cenderung sekarang ini tidak jadi persoalan selama ada kemauan dari kita memamfaatkan kemampuan dari skiel yang ada pada kita bisa mengurangi permasalahan permerintah soal penggangguran dan masalah krisis ekonomi sekarang ini menyalurkan bakat dengan membuka usaha seperti berdagang menjual barang lansung kepada konsumen, apalagi untuk sekarang jumlah penduduk dengan terus bertambah peradapan manusia semakin berkembang dan kemajuan teknologi yang sangat canggih maka selera masyarakat untuk menjaga kesehatan tubuhnya, dengan makanan sereal atau minuman yang menyehatkan dan juga mencegah penyakit datang ke tubuh kita. denga demikian didasari dengan begitu saya meminati untuk membuat susu kacang kedelai kecil kecilan.

RINGKASAN EKSEKUTIF
Susu kedelai yang telah diproduksi akan dipasarkan dengan dibungkus plastik ukuran ½ kg. Pada plastik akan disablon dengan label: Susu Kedelai “NATURA SOYA”. Sasaran pasar poduk susu kedelai ini utamanya adalah mahasiswa kampus universitas Trunojoyo dan Masyarakat sekitar Kamal-Bangkalan. Tempat penjualannya di kampus, bisa dititip di etalase Fakultas Pertanian atau di Kopma, di toko atau warung-warung di sekitar perumahan Telang-Kamal-Bangkalan, atau bahkan di supermarket- supermarket terdekat. Adapun harga jual dari produk susu kedelai ini adalah Rp. 3.000 @ ukuran plastik ½ kg.
Promosi akan dilakukan dengan menempel pamflet-pamflet di pinggir jalan dan tempat-tempat strategis lainnya. Selain itu juga akan memanfaatkan buletin yang terbit di kampus dan media internet sebagai sarana e-business.
Peluang pasar untuk produk yang berbahan dasar kedelai ini sangatlah besar melihat budaya masyarakat yang konsumtif dan peluang pasar yang menjanjikan. Selain itu daya beli komsumen terhadap produk ini cukup bervariasi dari konsumen elite hingga konsumen menegah bawah. Produk ini dapat dikonsumsi oleh semua golongan karena harganya yang relatif terjangkau serta memiliki nilai kepuasan yang tinggi.
Total biaya usaha ini adalah Rp. 15.298.625 perbulan dan penerimaan per bulan Rp. 18.300.000 , sehingga pendapatan perbulannya adalah Rp. 3.001.375. Dengan R/Cratio sebesar 1,197 dapat dilihat bahwa bisnis yang dipilih layak untuk dilakukan karena pelaku usaha dapat meraup keuntungan dari usaha yang dilakukan (R/C ratio > 1).










I.DESKRIPSI USAHA

 A. Data perusahaan
 Nama : Perusahaan Susu Kedelai “NATURA SOYA”
 Tempat : Perumahan Golden Park blok G no 2
 Basis operasi : Bogor-Cibinong
 Bentuk usaha : Perdagangan dengan pengembangan Usaha Mandiri Kecil & Menengah (UMKM)


B. Data Pengusaha
Nama : Jaenal Andayat
Tempat,Tanggal Lahir : Bogor, 12 Juni 1985
Pendidikan :Sedang menempuh S1 Pogram Study Agribisnis Fakultas Pertanian Universitas IPB Bogor

C. Struktur Organisasi & Job Discription
Job Dscriptions
Pimpinan (Manager)
- pemilik sekaligus pimpinan
- bertanggung jawab teradap jalannya usaha
- koordinasi, pengawas, dan mengarahkan seluruh kegiatan
- pengambil keputusan
-sebagai quality control
2. Bagian Produksi
- kepala bagian produksi mengkondisikan pekerja di bawahnya untuk bekerja
sesuai jobdis
- bertanggung jawab terhadap persiapan dan proses produksi
- bertanggung jawab terhadap makanan yang dipesan konsumen
- menjaga kebersihan produk dalam proses produksi
- cekatan dalam menjaga mutu produk, baik cita rasa, aroma, ataupun tekstur
- mengemas hasil produksi
3. Bagian Pengadaan Bahan Baku
- kepala bagian pengadaan bahan baku mengkondisikan pekerja di bawahnya untuk bekerja sesuai jobdis
- mencari informasi keberadaan bahan baku
- melakukan pembelian bahan baku
- menjaga mutu bahan sebelum diolah (ketika masih dalam penyimpanan)
4.Bagian Keuangan
-kepala bagian keuangan mengkondisikan pekerja di bawahnya untuk bekerja sesuai jobdis
- melaksanakan kegiatan keuangan dan administrasi
- mencatat/pembukuan keuangan perusahaan
- mengadakan dana untuk proses pembelian bahan dan proses
- membuat laporan keuangan harian, mingguan, bulanan, triwulan, tahunan
- bertanggung jawab terhadap sistem keuangan
5.Bagian Pemasaran
-kepala bagian pemasaran mengkondisikan pekerja di bawahnya untuk bekerja sesuai jobdis
-mempromosikan dan memasarkan produk
-mendistribuskan produk ke tempat pemasaran, misalnya; toko, warung, atau bahkan super market terdekat
-melayani dengan ramah, menanggapi komplain konsumen dengan ramah dan senyum
D. Alasan Pemilihan Bisnis
Usaha pembuatan susu kedelai ini dipilih karena susu kedelai dikenal sebagai minuman fungsional, sebagai minuman yang bergizi tinggi, minuman yang merupakan hasil ekstraksi dari kedelai ini terutama sekali karena kandungan proteinnya, disamping mengandung lemak, karbohidrat, kalsium, phosphor, zat besi, provitamin A, Vitamin B kompleks (kecuali B12), dan air. Susunan asam amino hampir sama dengan susu sapi. Untuk itu produk ini tampaknya perlu diperhitungkan dalam menyusun pola menu sehari-hari bagi insan yang memperhatikan kesehatan.
Oleh karena itu prospek usaha pengolahan kedelai menjadi susu kedelai sekarang ini cukup menjanjikan, kandungan gizi yang terkandung didalamnya memiliki kandungan gizi yang dibutuhkan manusia. Kadar protein kedelai mencapai 35,6 % (berat kering), dan pada varitas unggul kadar proteinnya dapat mencapai 40 % – 43 %. Kebutuhan protein yang bersumber dari protein hewani sebesar 55 gram per hari dapat dipenuhi dengan 157,14 gram.
Selain itu tingginya harga susu sapi menjadi peluang/prospek usaha dengan menjadikan susu kedelai menjadi barang substitusi (pengganti) susu sapi, karena harga susu kedelai lebih murah daripada susu produk hewani sementara kandungan gizinya hamper sama. Faktor lain yang menjadikan usaha susu kedelai prospektif adalah mudah dalam pembuatanya. Dengan teknologi dan peralatan yang sederhana, serta tidak diperlukannya keterampilan khusus, siapapun dapat melakukan pengolahan kedelai menjadi susu kedelai.

II. ANALISIS PEMASARAN
 1. Product (produk)
Produk yang direncanakan untuk diproduksi adalah susu kedelai. Susu kedelai yang telah diproduksi akan dipasarkan dengan dikemas dalam plastik ukuran ½ kg. Pada plastik akan disablon dengan label: Susu Kedelai “NATURA SOYA”. Produk yang dihasilkan memiliki manfaat dan kualitas yang tinggi. Sudah diketahui bahwa produk yang terbuat dari ekstrak kedelai ini memiliki kandungan gizi yang bermanfaat untuk proses metabolisme tubuh.
 2. Place (lokasi/distribusi)
Usaha ini berlokasi di Perumahan Golden Park Blok G no. 2. Adapun sasaran pasar poduk susu kedelai ini adalah mahasiswa di kampus universitas IPB Bogor dan Masyarakat sekitar Bogor-cibinong Tempat penjualannya di kampus, bisa dititip di etalase Fakultas Pertanian atau di Kopma, di toko atau warung-warung di sekitar perumahan Golden Park, atau bahkan di supermarket- supermarket terdekat.

 3. Price (harga)
Penentuan harga jual dilakukan dengan cara menghitung biaya produksi ditambah biaya lain-lain dan tren yang berlaku. Jika produk yang menjadi idola (tren) harganya pun bisa dinaikan dari standar harga normal (misal pada saat cuaca panas atau ketika bulan puasa besar kemungkinan produk ini akan dibanjiri konsumen).
Adapun rencana harga jual dari produk susu kedelai ini adalah Rp. 3.000 @ ukuran plastik ½ kg.
 4. Promotion (promosi)
Promosi akan dilakukan untuk mengenalkan produk ini kepada konsumen. Promosi akan dilakukan dengan menempel pamflet-pamflet di pinggir jalan dan tempat-tempat strategis lainnya. Selain itu juga akan memanfaatkan buletin yang terbit di kampus dan media internet sebagai sarana e-business. Untuk promosi melalui internet akan dipromosikan lewat facebook dan situs-situs e-business lainnya seperti: berniaga.com dll. serta melalui blog pemilik usaha yaitu ;

III. ANALISIS OPERASIONAL
1. Desain Produk
Susu kedelai yang telah diproduksi akan dipasarkan dengan dikemas. Pengemasan di sisni dilakukan karena memiliki peranan yang sangat penting dalam dunia usaha, karena pengemasan tidak sekedar memberi wadah dari dari produk yang dihasilkan tapi lebih pada pengembanan muatan misi dalam rangka persaingan pasar dan juga peningkatan penjualan. Di mana onsumen akan cenderung tertarik dengan produk yang dikemas dengan rapi dan menarik.

kemasan tidak sebatas digunakan sebagai pelindung produk melainkan juga sangat mendukung terjaganya kualitas produk serta adanya peningkatan kelas (penampilan) imej yang baik. Jenis bahan kemasan yang digunakan adalah plastik ukuran ½ kg.
Selain itu, pada kemesan juga akan diberi label. Pemberian label di sini tidak hanya sekedar tulisan, tapi di dalamnya terkandung pesan-pesan tertentu yang disampaikan pada konsumen. Dengan harapan produknya dapat dikenal olFungsi eh konsumen luas, sehingga mudah dicari ketika dibutuhkan. Selain itu label juga berfungsi sebagai jaminan atas kualitas produk, sarana untuk merk dagang, logo perusahaan, nama dan alamat perusahaan, dan berat atau volume produk. Informasi yang ingin disampaikan kepada konsumen tersebut terangkum dalam tulisan yang dicetak pada kemasan produk. Maka pada kemasan plastik akan disablon dengan label: Susu Kedelai “NATURA SOYA” dan juga logo perusahaan, nama dan alamat perusahaan, dan berat atau volume produk.

2. Proses Produksi

Bahan:
 Kedelai
 Vanili
 Gula pasir
 Garam
 Maizena
 Air mineral (galonan)

Cara membuat:

1. Kedelai dicuci dan dibersihkan dari kotoran-kotoran seperti pasir, tangkai, dan kulit kedelai, kemudian direndam kurang lebih 2 jam.
2. Rebus kedelai yang telah bersih selama kira-kira 15 menit, lalu rendam dalam air bersih selama kira-kira 12 jam.
3. Cuci sampai kulit arinya terkelupas Lalu giling kedelai tersebut menggunakan mesin giling.
4. Saring campuran dengan kain saring, sehingga diperoleh larutan/sari untuk susu kedelai.
5. Tambakan gula pasir, vanili, coklat, dan garam ke dalam larutan susu, lalu aduk sampai rata dan panaskan hingga mendidih
6. Setelah dingin susu kedelai yang sudah mengalami beberapa proses atau langkah-langkah di atas maka dikemas dan kini siap untuk di pasarkan.



IV. ANALISIS PELUANG PASAR & PESAING

1. Analisis Peluang Pasar
Peluang pasar untuk produk yang berbahan dasar kedelai ini sangatlah besar melihat budaya masyarakat yang konsumtif dan peluang pasar yang menjanjikan. Selain itu daya beli komsumen terhadap produk ini cukup bervariasi dari konsumen elite hingga konsumen menegah bawah. Produk ini dapat dikonsumsi oleh semua golongan karena harganya yang relatif terjangkau serta memiliki nilai kepuasan yang tinggi.
Metode pemasaran Susu Kedelai “NATURA SOYA” ini adalah dengan menyebarkan brosur-brosur pada masyarakat pada permulaan usaha serta metode getok tular, dengan membuat para konsumen merasa puas terhadap sajian produk dan pelayanan prima yang disuguhkan perusahaan akan mampu membuat mereka menyebarkannya pada orang sekampungnya (dari mulut kemulut).

Sasaran pasar poduk susu kedelai ini utamanya adalah mahasiswa kampus universitas IPB Bogor dan Masyarakat sekitar Bogor-Cibinong. Tempat penjualannya di kampus, bisa dititip di etalase Fakultas Pertanian atau di Kopma, di toko atau warung-warung di sekitar perumahan ramai penduduk, atau bahkan di supermarket- supermarket terdekat.
Untuk menembus tingkat pasar yang optimal, maka diperlukan sekali untuk memikirkan strategi yang akan ditempuh untuk membangun usaha agar mendapatkan respon yang bagus dari konsumen di pasar bersaing. dengan menganaliasa lingkungan internal dan eksternal yang ada di pasar domestik akan mempermudah bagi perusahaan dalam menyusun strategi yang baik dan efisien.






2. Tingkat Persaingan

Melihat situasi di tempat yang akan dimasuki produk, sepertinya produk susu kedelai ini akan laku di pasaran. Hal ini dikarenakan harganya yang terjangkau dan sangat pas untuk ukuran dompet mahasiswa.
Selain itu pesaing yang akan menyaingi produk ini tampaknya belum ada khususnya di kampus Universitas IPB Bogor.



V. ANALISIS KEUANGAN


1. Analisa Biaya Usaha


a. Biaya tetap

No Uraian Jumlah (unit) Harga (Rp) Jumlah harga (Rp) Masa pakai (Th) Penyusutan (Th) Penyusutan (Bln)
1 Rumah produksi 1 10.000.000 10.000.000 10 1.000.000 83.333,33
2 Diesel giling 1 2.750.000 2.750.000 10 275.000 22.916,67
3 Kain 1 meter 2 Rp. 5000 10.000 1 5.000 416,67
3 Gunting 5 5.000 25.000 2 12.500 1.041,67
4 Bak 6 17.000 102.000 2 51.000 4.250,00
5 Keranjang 4 25.000 100.000 2 50.000 4.166,67
6 Kompor 4 150.000 600.000 6 100.000 8.333,33
7 Panci 4 75.000 300.000 6 50.000 4.166,67
Total 13.887.000 128.625,00



b. Biaya variabel
No Uraian Jumlah(unit) Harga( Rp) Jumlah harga (Rp)
1 Bahan baku
Kedelai 10 kg 6000 60.000
Gula pasir 4 kg 8.000 24.000
Vanili 2 bungkus 2000 4.000
Coklat 2 kaleng 15.000 30.000
2 Bahan pendukung
Gas LPG 8 tabung 17.500 140.000
Plastik ukuran ½ kg 1 bendel 5.000 5.000
Solar 4 liter 4.500 18.000
Sablon label plastik 1 bendel 3.000 3.000
3 Tenaga kerja
Pencuci kedelai 2 orang 20.000 40.000
Perebus + Penyaring + Pengemas 2 orang 20.000 40.000
Penggiling 1 orang 30.000 30.000
Pengantar utk dipasarkan 1 orang 20.000 20.000
Administrasi keuangan 1 orang 25.000 25.000
Pengadaan bahan 2 orang 25.000 50.000
Total 489.000
Biaya variabel perbulan adalah Rp. 489.000 x 30 = Rp. 14.670.000
c. Biaya lain – lain (perbulan)
no Uraian Volume Harga per unit Jumlah harga
Jumlah Unit
1 Transportasi 1 Bln 200.000 200.000
2 Promosi 1 Bln 100.000 100.000
3 Listrik 1 Bln 200.000 200.000
Total 500.000
Jumlah biaya usaha
No Jenis biaya Jumlah biaya (Rp/bln)
1 Biaya tetap 128.625
2 Biaya variabel 14.670.000
3 Lain – lain 500.000
Total 15.298.625
2). Penerimaan, pendapatan dan R/C ratio usaha
No Jumlah produksi Harga perunit (Rp) Penerimaan per hari (Rp) Penerimaan per bulan (Rp)
200 kemasanAmpas 2 kg 3.0005.000 600.00010.000 18.000.000300.000
Total 18.300.000
Pendapatan (laba) perbulan = total revenue – total cost
= 18.300.000 – 15.298.625
= 3.001.375
R/C ratio = total revenue : total cost
= 18.300.000 : 15.298.625,01= 1,197
Berdasarkan hasil dari Tabel Analisis Biaya dan penghitungan diatas dapat dilihat bahwa bisnis yang dipilih layak untuk dilakukan karena pelaku usaha dapat meraup keuntungan dari usaha yang dilakukan (R/C ratio > 1).
VI. ANALISIS SWOT
1.Strengths (Kekuatan)
a) Proses pembuatannya mudah dan sederhana
b) Kualitas rasa dan tekstur produk yang khas (beda dengan yang lain).
c) Harga jual murah meriah
d) Tempat penjualan dan konsumen telah tersedia
e) Memanfaatkan e-Business untuk mempromosikan produk melalui internet.
f) Tempat produksi ada di wilayah perumahan yang rata-rata kost mahasiswa
g) Kemasan menarik dan berlabel
h) Kualitas produk terjamin
2.Weaknesses (Kelemahan)
a) Harga bahan baku (kedelai) yang relatif tidak menentu (stabil) bahkan beberapa waktu yang lalu sempat menglami kelangkaan.
b) Manejemen perusahaan masih sederhana
c) Terdapat endapan pada susu kedelai.
d) Jika tidak tepat prosesnya terdapat tahu di lapisan atas susu
e) Kuarang cukup modal mengingat kita sebagai mahasiswa
f) Proses produksi bentrok dengan jadwal kuliah
g) Ketidak tahuan masyarakat terhadap kandungan gizi yang diliki susu kedelai
3.Opportunities (Peluang )
a) Pertumbuhan pasar dimungkinkan meningkat
b) Peluang pasar untuk mendapatkan konsumen yang menjanjikan
c) Belum ada pesaing khususnya untuk pemasaran di kampus
d) Keterbukaan untuk menggunakan teknologi baru ke depannya untuk membuat kemajuan besar dibidang produksi khususnya.
e) Cuaca Madura khususnya Bangkalan yang panas membuat orang ingin mengkonsumsi minuman yang segar
4. Threats (Ancaman)
a) Selera konsumen yang selalu berubah – ubah mempunyai pengaruh yang besar terhadap pembelian produk
b) Susu kedelai tidak bisa disimpan lama dan akan merugikan jika tidak laku dalam sehari
c) Munculnya pesaing baru
d) Banyaknya variasi minuman ringan

SISTEM ORGANISASI
Read more »

Rabu, 10 November 2010

CARA GAMPANG BELAJAR PHP

Salah satu produk termutakhir saat ini adalah komputer. Apabila kita berbicara mengenai komputer, kita tidak bisa terlepas dari peranan perangkat lunak (software) yang menjadi jantung dan jembatan penghubung antara pengguna (user) dan perangkat keras komputer itu sendiri. Tanpa perangkat lunak, komputer hanyalah sebuah barang elektronik yang tidak berguna. Jika kita telusuri lebih dalam lagi, ternyata sebuah perangkat lunak itu terdiri dari ratusan, ribuan, bahkan jutaan digit biner. Namun berkat kemajuan pemikiran manusia sendiri, kode-kode tersebut diterjemahkan ke dalam bahasa-bahasa pemrograman yang mudah dimengerti dan mudah diingat.
Mempelajari teknik pemrograman tidaklah sesulit seperti yang kita bayangkan. Anggapan para calon programmer yang saat ini menganggap belajar pemrograman merupakan sesuatu yang sangat sulit adalah salah besar dan harus dihindari sejak dini, karena hal ini akan menyurutkan semangat dan menimbulkan sugesti yag kurang baik dalam proses pembelajarannya di kemudian hari. Dalam mempelajari teknik pemrograman diperlukan semangat dan motivasi yang tinggi, tetapi tidak cukup hanya itu, diperlukan juga suatu ketekunan, kesabaran serta semangat pantang menyerah, karena kita ketahui bersama di dunia ini tidak ada sesuatu yang instant, semuanya membutuhkan proses dan kerja keras, ibarat pepatah mengatakan “berakit-rakit ke hulu, berenang-renang ketepian, bersakit-sakit dahulu bersenang-senang kemudian”. Pepatah tersebut berlaku juga dalam proses pembelajaran teknik pemrograman, karena untuk menguasi suatu bahasa pemrograman dibutuhkan kerja keras yang sangat tinggi, namun jika kita telah menguasai suatu bahasa pemrogaman, kita akan merasa mudah untuk berpindah dari satu bahasa ke bahasa pemrogaman lainnya.
Selaku manusia yang dikaruniai akal dan kecerdasan, maka dalam mempelajari teknik pemrograman diperlukan suatu strategi yang jitu, sehingga proses pembelajaran akan semakin efektif.
Belajar memprogram sebenarnya adalah belajar berkomunikasi dengan sebuah perangkat, dalam hal ini adalah komputer. Untuk bisa berkomunikasi dengan perangkat tersebut, kita dituntut mempelajari bahasa komunikasi yang dimengerti perangkat tersebut, dalam hal ini adalah bahasa pemrograman. Jadi intinya, mempelajari teknik pemrograman adalah mempelajari bahasa pemrograman, meskipun para programmer professional mengatakan ” jangan mempelajari bahasa pemrograman, namun pelajarilah teknik pemrograman”, tetapi hal itu tidak berlaku di sini, seperti halnya dalam kehidupan manusia, jika sudah dapat berkomunikasi dengan menggunakan salah satu bahasa, maka teknik-teknik berkomunikasi tersebut akan dengan sendirinya mengikuti, dalam artian, sedikit-demi sedikit tujuan pembelajaran teknik pemrograman akan tercapai dengan mempelajari bahasa pemrograman.
Banyak pilihan bahasa pemrograman mana yang akan dipelajari, diantaranya C, C++, Pascal, Java, Basic, dan lain-lain. Setiap bahasa pemrograman memiliki prospek yang cerah dan memiliki reliabelitas yang tinggi. Namun disarankan untuk memilih bahasa pemrograman yang cenderung populer di masa kini, karena akan memudahkan dalam mencari referensinya di kemudian hari. Dalam hal ini disarankan menggunakan bahasa C, karena disamping banyak digunakan, referensinya pun banyak ditemukan di situs-situs internet.
Efesiensi proses pembelajaran akan tercapai jika pembelajaran dilakukan dengan melihat atau mempelajari contoh-contoh yang sudah ada, seperti apa yang dikatakan oleh Albert Einstein, yaitu : “proses pembelajaran hanya dapat dilakukan melalui contoh”. Pada tahap awal, hilangkan rasa malu untuk membuat progam “Hello World”, karena program ini merupakan modal dasar untuk terciptanya system perangkat lunak yang super kompleks. Intinya proses pembelajaran dimulai dari topik manajemen output, kemudian berlanjut ke manajemen input. Dalam hal ini dipelajari cara meminta dan membaca data masukan kemudian menampilkan data masukan tersebut sebagai output dari progam.
Berikutnya topik yang harus dikuasai setelah menguasai manajemen Input/Output adalah struktur penulisan program dalam suatu bahasa pemrograman secara umum. Kenali cara mendelarasikan variable, konstanta, dan struktur kode program secara umum. Walaupun dalam setiap bahasa pemrograman memiliki cara pendeklarasian program yang berbeda, namun pada dasarnya memiliki struktur yang sama. Sampai di sini, para calon programmer biasanya sudah memiliki kemampuan berkomunikasi dengan komputer, kalau dianalogikan manusia, bagaikan seorang anak yang sudah dapat berbicara namun belum mengenyam pendidikan TK. Untuk lebih memperdalam kemampuan, materi selanjutnya yang harus dikuasai adalah struktur pemilihan (selection). biasanya struktur ini terdiri dari dua jenis, yaitu “IF…Then..Else…” dan “Case…Of”. Struktur ini mutlak harus dikuasai oleh para calon programmer, karena setiap aplikasi yang akan dibuat tidak terlepas dari struktur pemilihan dan logika.
Dalam memprogram komputer, terdapat beberapa perintah yang diulang dengan tujuan tertentu. Missal untuk mendapatkan bilangan dari satu sampai dengan seribu, maka digunakan struktur perulangan. Pada pembelajaran struktur perulangan, seharusnya para programmer menikmati setiap contoh yang ada sekaligus mempelajarinya secara mendetail, karena struktu rini sangat menentukan efektifitas dan kecepatan program yang dibuat. Namun pada kenyataannya, para calon programmer mengalami kesulitan dalam mempelajari logika berpikir struktur perulangan itu sendiri, sehingga menimbulkan rasa malas. Hal ini seharusnya dapat diatasi dengan mempelajari contoh-contoh sederhana terlebih dahulu, kemudian dilanjutkan ke contoh yang lebih kompleks lagi. Berbagai sumber referensi telah banyak tersedia di situs-situs internet.
Sebagai modal dasar untuk memprogram, sebenarnya pemahaman sampai dengan struktur perulangan sudah cukup memadai untuk bisa mengkomunikasikan maksud atau pemikiran kita kepada komputer. Namun untuk meningkatkan efisiensi program yang dibuat, sebaiknya dipelajari juga struktur sub program tau sering disebut sebagai prosedur dan fungsi.
Dengan melakukan pembelajaran seperti di atas, sebenarnya para calon programmer telah menguasai teknik dasar pemprograman, karena latihan-latihan yang dilakukan dalam mempelajari sintaks (cara penulisan) dan struktur dari suatu bahasa pemrograman, telah memaksa mereka untuk berpikir secara teknik.
Jika para calon programmer telah mengusai salah satu bahasa pemprograman komputer, baru pepatah “pelajarilah teknik pemrograman dan jangan mempelajari bahasa pemrograman” sepenuhnya berlaku. Sebenarnya pepatah itu agar tidak bersyarat harus diperbaiki menjadi “pelajarilah teknik pemrograman sambil mempelajari bahsa pemrograman”. Jika dianalogikan teknik pemrogrman dengan peluru, maka bahasa pemrograman itu adalah senapan. Senapan tanpa peluru bisa digunakan walaupun fungsinya tidak terlalu dominan muncul, karena masih dapat digunakan untuk membela diri. Tapi jika peluru tanpa senapan adalah sia-sia. Karena tidak ada yang dapat dilakukan dengan menggunakan peluru tanpa senapan. Teknik pemrogrman pada awalnya adalah pelengkap bahasa pemrograman, namun karena teknik pemrograman utnuk setiap bahasa pemrograman adalah sama, maka semakin ke sini paradigma tersebut berubah menjadi ” bahasa pemrograman adalah pelengkap teknik pe
mrograman”. Terkadang para calon programmer sering terjebak dengan paradigm baru tersebut. Mereka hanya berkutat dengan buku-buku textbook yang terfokus pada teknik pemrograman, tanpa menghiraukan bahasa pemrograman itu sendiri. Jadi bagaikan “menegakan benang basah”, sampai kapanpun mereka akan mengalami kesulitan untuk memulai berkomunikasi dengan komputer. Inti dari pembelajaran suatu bahasa, baik itu bahasa manusia maupun bahasa komputer adalah praktek. Jadi intinya adalah membiasakan diri dengan menggunakan bahasa tersebut
Reaksi:
Read more »

Belajar Bahasa pemrograman Visual Basic

Belajar bahasa pemograman visual basic atau belajar pemrograman dengan bahasa pemrograman lain seperti delphi taupun pascal merupakan hal yang sangat menyenangkan, namun tentunya harus ada sang guru yang membimbingnya namun bagaimana dengan para newbie yang ingin belajar tanpa guru, tentunya memerlukan suatu hal yang dapat mensuport dalam tahap pembelajaran itu , bukan hanya dalam belajar visual basic atau belajar Delphi yang membutuhkan pendukung melainkan dalam semua hal yang ingin kita pelajari tentunya kita harus memiliki pendukung untuk bisa mahir dalam pemrograman.
banyak sekali tips trik mahir dalam pemrograman visual basic ataupun delphi yang tentunya usaha dalam belajar yang maksimal dan ketekunan

disini saya akan mencoba sedikit membagi beberapa pensuport dalam belajar visual basic yang tentunya dapat para pembaca semua download, dalam buku panduan visual basic ini anda akan di perkenalkan banyak hal tentang visual basic dan selengkapnya dapat anda baca di dalam buku panduan visual basic 6.0
semoga buku panduan ini bermanfaat dan semoga cepat mahir visual basic
Download Panduan Belajar Pemrograman Visual Basic
Read more »

PENGERTIAN BAHASA C

Bahasa C adalah salah satu bahasa pemrograman yang populer di dunia dan mempunyai kemampuan lebih dari bahasa pemrograman yang lain. Banyak sekali aplikasi-aplikasi yang ditulis dalam bahasa C, atau paling tidak inti utama programnya ditulis dalam bahasa C.

Bahkan, Software Development Kit untuk Windows ditulis dalam bahasa C. Bahasa C merupakan bahasa pemrograman yang sifatnya portable, yaitu dengan sedikit atau tanpa perubahan, suatu program yang ditulis dengan bahasa C pada suatu komputer dapat dijalankan pada komputer lain.
Bahasa C merupakan general-purpose language, yaitu bahasa pemrograman yang dapat digunakan untuk tujuan apa saja. C merupakan industrial-strenght language. Dengan bahasa C, kita dapat membangun beragam aplikasi, mulai dari pemrograman sistem, aplikasi cerdas (artificial intelligence), sistem pakar, utility, driver, database, browser, network programming, sistem operasi, game, virus, dan lainnya.

Bahasa C diciptakan oleh Dennis Ritchie. Sebenarnya, bahasa C merupakan pengembangan dari bahasa BCPL yang lebih dahulu ada. Sebagai bahasa yang digolongkan dalam middle level language, bahasa C mempunyai kemudahan didalam mengakses perangkat keras, juga kecepatan prosesnya yang mendekati low level language seperti Assembly, tetapi memberikan kemudahan yang tidak ditawarkan Assembly.

Disamping itu, bahasa C jauh lebih mudah untuk dipelajari jika dibandingkan dengan bahasa low level karena mendekati frase-frase dalam bahasa manusia, yaitu bahasa Inggris.

Bahasa C mempunyai banyak keuntungan dibandingkan dengan bahasa pemrograman lainnya. Bahasa C merupakan bahasa yang kokoh dan memberikan keleluasaan kepada penggunanya. Pada tahun 80-an, penggunaan bahasa C di dunia industri semakin luas, sehingga kemudian distandarisasi oleh ANSI dan kemudian diadopsi oleh ISO, lalu diadopsi ulang oleh ANSI. Official name bahasa C adalah ISO/IEC 9899-1990.

Jika kita ingin membuat sesuatu dengan bahasa C, hendaknya mengacu pada standar Bahasa C yaitu ISO C.

Bahasa C merupakan bahasa yang menyenangkan. Kita dapat menemukan berbagai pengalaman menarik dan kita dapat mengenal lebih baik tentang prinsip kerja komputer dengan bahasa C. Kita bahkan bisa menciptakan bahasa kita sendiri dengan bahasa C. Anda tidak percaya?

Read more »

Selasa, 09 November 2010

Teknik Pemrograman Lanjut

Teknik Pemrograman Lanjut
Modul ini mengenalkan suatu teknik pemrograman yang lebih tinggi. Dalam bagian ini
Anda akan mempelajari rekursif dan tipe data abstrak.
Setelah menyelesaikan pelajaran ini, diharapkan Anda dapat:
1. Memahami dan menggunakan rekursif
2. Mengetahui perbedaan antara stacks dan queues
2. Mengimplementasikan suatu implementasi sequensial dari stacks dan queues
3. Mengimplementasikan suatu implementasi linked dari stacks and queues
4. Menggunakan Collection classes yang ada
3.2 Rekursif
3.2.1 Apa yang dimaksud dengan Rekursif?
Rekursif adalah teknik pemecahan masalah yang powerful dan dapat digunakan ketika
inti dari masalah terjadi berulang kali. Tentu saja, tipe dari masalah ini dapat dipecahkan
mengunakan perkataan berulang-ulang (i.e., menggunakan konstruksi looping seperti
for, while dan do-while).
Sesungguhnya, iterasi atau perkataan berulang-ulang merupakan peralatan yang lebih
efisien jika dibandingkan dengan recursif tetapi recursion menyediakan solusi yang lebih
baik untuk suatu masalah. Pada rekursif, method dapat memanggil dirinya sendiri. Data
yang berada dalam method tersebut seperti argument disimpan sementara kedalam
stack sampai method pemanggilnya diselesaikan.
3.2.2 Rekursif Vs. Iterasi
Untuk pengertian yang lebih baik dari rekursif, mari kita lihat pada bagaimana macam-
macam dari teknik iterasi. Dalam teknik-teknik tersebut dapat juga kita lihat
penyelesaian sebuah loop yang lebih baik menggunakan rekursif dari pada iterasi.
Menyelesaikan masalah dengan perulangan menggunakan iterasi secara tegas juga
digunakan pada struktur kontrol pengulangan. Sementara itu, untuk rekursif, task
diulangi dengan memanggil sebuah method pengulangan. Maksud dari hal tersebut
adalah untuk menggambarkan sebuah masalah kedalam lingkup yang lebih kecil dari
pengulangan itu sendiri. Pertimbangan suatu perhitungan yang faktorial dalam
penentuan bilangan bulat. Definisi rekursif dari hal tersebut dapat diuraikan sebagai
berikut:  factorial(n) = factorial(n-1) * n; factorial(1) = 1. Sebagai contohnya, nilai
faktorial dari 2 sama dengan fatorial (1)*2, dimana hasilnya adalah 2. Faktorial dari 3
adalah 6, dimana sama dengan faktorial dari (2)*3.
Pengenalan Pemrograman  2  1J.E.N.I.
Gambar 1: Contoh Factorial
Dengan iterasi, proses diakhiri ketika kondisi loop gagal atau salah. Dalam kasus dari
penggunaan rekursif, proses yang berakhir dengan kondisi tertentu disebut
permasalahan dasar yang telah tercukupi oleh suatu pembatasan kondisi. Permasalahan
yang mendasar merupakan kejadian yang paling kecil dari sebuah masalah. Sebagai
contohnya, dapat dilihat pada kondisi rekursif pada  faktorial, kasus yang mudah adalah
ketika inputnya adalah 1. 1 dalam kasus ini merupakan inti dari masalah.
Penggunaan dari iterasi dan rekursif dapat bersama-sama memandu loops jika hal ini
tidak digunakan dengan benar.
Keuntungan iterasi dibandingkan recursion adalah performance yang lebih baik. Hal
tersebut lebih cepat untuk recursion sejak terbentuknya sebuah parameter pada sebuah
method yang disebabkan oleh suatu CPU time. Bagaimanapun juga, rekursif mendorong
practice software engineering yang lebih baik, sebab teknik ini biasanya  dihasilkan pada
kode yang singkat yang lebih mudah untuk dimengerti dan juga mempromosikan
reuseability pada suatu solusi yang telah diterapkan.
Memilih antara iterasi dan rekursif merupakan masalah dari menjaga keseimbangan
antara baiknya sebuah performance dan baiknya software engineering.
3.2.3 Factorials: Contoh
Listing program berikut ini menunjukkan bagaimana menghitung faktorial menggunakan
teknik iterasi.
class FactorialIter {
   static int factorial(int n) {
      int result = 1;
      for (int i = n; i > 1; i--) {
         result *= i;
      }
Pengenalan Pemrograman  2  2J.E.N.I.
      return result;
   }
   public static void main(String args[]) {
      int n = Integer.parseInt(args[0]);
System.out.println(factorial(n));
   }
}
Dibawah ini merupakan listing program yang sama tetapi menggunakan rekursif.
class FactorialRecur {
   static int factorial(int n) {
      if (n == 1) {             /* The base case */
         return 1;
      }
      /* Recursive definition; Self-invocation */
      return factorial(n-1)*n; 
   }
   public static void main(String args[]) {
      int n = Integer.parseInt(args[0]);
      System.out.println(factorial(n));
   }
}
3.2.4 Print n in any Base: Contoh yang lain
Sekarang, pertimbangan dari masalah dalam pencetakkan suatu angka desimal yang
nilai basenya telah ditetapkan oleh pengguna. Ingat bahwa solusi dalam hal ini untuk
menggunakan repetitive division dan untuk menulis sisa perhitungannya. Proses akan
berakhir ketika sisa hasil pembagian kurang dari base yang ditetapkan. Dapat
diasumsikan jika nilai input desimal adalah 10 dan kita akan mengkonversinya menjadi
base 8. Inilah solusinya dengan perhitungan menggunakan pensil dan kertas.
Dari solusi diatas, 10 adalah sama dengan 12 base 8.
Contoh berikutnya. Nilai input desimalnya adalah 165 dan akan dikonversi ke base 16.
Pengenalan Pemrograman  2  3J.E.N.I.
165 adalah sama dengan A5 base 16. Catatan: A=10.
Berikut ini merupakan solusi iterative untuk masalah diatas.
class DecToOthers {
   public static void main(String args[]) {
      int num = Integer.parseInt(args[0]);
      int base = Integer.parseInt(args[1]);
      printBase(num, base);
   }
   static void printBase(int num, int base) {
      int rem = 1;
      String digits = "0123456789abcdef";
      String result = "";
      /* the iterative step */
      while (num!=0) {
         rem = num%base;
         num = num/base;
         result = result.concat(digits.charAt(rem)+"");
      }
      /* printing the reverse of the result */
      for(int i = result.length()-1; i >= 0; i--) {
         System.out.print(result.charAt(i));
      }
   }
}
Berikut ini merupakan recursion untuk masalah yang sama dengan solusi sebelumnya.
class DecToOthersRecur {
   static void printBase(int num, int base) {
      String digits = "0123456789abcdef";
      /* Recursive step*/
      if (num >= base) {
         printBase(num/base, base);
      }
      /* Base case: num < base */
      System.out.print(digits.charAt(num%base));
   }
   public static void main(String args[]) {
      int num = Integer.parseInt(args[0]);
      int base = Integer.parseInt(args[1]);
      printBase(num, base);
   }
}
Pengenalan Pemrograman  2  4J.E.N.I.
3.3 Abstract Data Type
3.3.1 Apa yang Dimaksud dengan Abstract Data Type?
Abstract Data Type (ADT) adalah kumpulan dari elemen-elemen data yang disajikan
dengan satu set operasi yang digambarkan pada elemen-elemen data tersebut. Stacks,
queues dan binary trees adalah tiga contoh dari ADT. Dalam bab ini, Anda akan
mempelajari tentang stacks dan queues.
3.3.2 Stacks
Stack adalah satu set atau urutan elemen data dimana manipulasi data dari elemen-
elemen hanya diperbolehkan pada tumpukan teratas dari stack. Hal ini merupakan
perintah pengumpulan data secara linier yang disebut “last in, first out” (LIFO). Stacks
berguna untuk bermacam-macam aplikasi seperti pattern recognition dan
pengkonversian antar notasi infix, postfix dan prefix .
Dua operasi yang dihubungkan dengan stacks adalah operasi push dan pop. Push berarti
memasukkan data kedalam stacks yang paling atas dimana pop sebagai
penunjuk/pointer untuk memindahkan elemen ke atas stacks. Untuk memahami
bagaimana cara kerja stacks, pikirkan bagaimana Anda dapat menambah atau
memindakan sebuah data dari tumpukan data. Pikiran Anda akan memberitahu Anda
untuk menambah atau memindahkan data hanya pada stack yang paling atas karena
jika menggunakan cara lain, dapat menyebabkan tumpukan stack akan terjatuh.
Dibawah ini merupakan ilustrasi bagaimana tampilan dari stacks.
n-1
...
6
5 Jayz top
4 KC
3 Jojo
2 Toto
1 Kyla
0 DMX bottom
Tabel 1.2.2: Ilustrasi Stack
Stack akan berarti penuh jika jangkauan cell teratas disimbolkan dengan n-1. Jika nilai
teratas / top sama dengan -1, stack berarti kosong.
Pengenalan Pemrograman  2  5J.E.N.I.
3.3.3 Queues
Queues adalah contoh lain dari ADT. Hal ini merupakan perintah pengumpulan data yang
disebut “first-in, first-out”. Aplikasi ini meliputi jadwal pekerjaan dalam operating
system, topological sorting dan graph traversal.
Enqueue dan dequeue merupakan operasi yang dihubungkan dengan queues. Enqueu
menunjuk pada memasukkan data pada akhir queue dimana dequeue berarti
memindahkan elemen dari queue tersebut. Untuk mengingat bagaimana queue bekerja,
ingatlah arti khusus dari queue yaitu baris. Berikut ini bagaimana cara kerja queue.
Siapa yang akan mendapatkan kesempatan pertama untuk bertemu bintang idolanya
dari mereka yang sedang menunggu dalam sebuah barisan? Seharusnya orang pertama
yang berada pada barisan tersebut. Orang ini mendapat kesempatan pertama untuk
meninggalkan barisan. Hubungkan hal tersebut dengan bagaimana queue bekerja.
Berikut ini merupakan ilustrasi dari bagaimana tampilan dari queue.
0 1 2 3 4 5 6 7 8 9 ... n-1
Eve Jayz KC Jojo Toto Kyla DMX
fron
t
end  Insert
 Delete
Tabel 1.2.3: Ilustrasi Queue
Queue akan kosong jika nilai end kurang dari front. Sementara itu, akan penuh jika end
sama dengan n-1.
3.3.4 Sequential and Linked Representation
ADTs biasanya dapat diwakilkan menggunakan sequential dan linked representation. Hal
ini memudahkan untuk membuat sequential representation dengan menggunakan array.
Bagaimanapun juga, masalah dengan menggunakan array adalah pembatasan size,
yang membuatnya tidak fleksibel. Dengan menggunakan array, sering terjadi
kekurangan atau kelebihan space memory. Mempertimbangkan hal tersebut, Anda harus
membuat sebuah array dan mendeklarasikannya agar mampu menyimpan 50 elemen.
Jika user hanya memasukkan 5 elemen, maka 45 space pada memory akan sia-sia.
Disisi lain, jika user ingin memasukkan 51 elemen, space yang telah disediakan didalam
array tidak akan cukup.
Dibandingkan dengan sequential representation, linked representation lebih sedikit rumit
tetapi lebih fleksibel. Linked representation menyesuaikan memory yang dibutuhkan oleh
user. Penjelasan lebih lanjut pada linked representation akan didiskusikan pada bab
berikutnya.
3.3.5 Sequential Representation dari Integer Stack
class SeqStack {
   int top = -1;     /* initially, the stack is empty */
   int memSpace[];   /* storage for integers */
   int limit;        /* size of memSpace */
Pengenalan Pemrograman  2  6J.E.N.I.
   SeqStack() {
      memSpace = new int[10];
      limit = 10;
   }
   SeqStack(int size) {
      memSpace = new int[size];
      limit = size;
   }
   boolean push(int value) {
      top++;
      /* check if the stack is full */
      if (top < limit) {
         memSpace[top] = value;
      } else {
         top--;
         return false;
      }
      return true;
   }
   int pop() {
      int temp = -1;
      /* check if the stack is empty */
      if (top >= 0) {
         temp = memSpace[top];
         top--;
      } else {
         return -1;
      }
      return temp;
   }
   public static void main(String args[]) {
      SeqStack myStack = new SeqStack(3);
      myStack.push(1);
      myStack.push(2);
      myStack.push(3);
      myStack.push(4);
      System.out.println(myStack.pop());
      System.out.println(myStack.pop());
      System.out.println(myStack.pop());
      System.out.println(myStack.pop());
   }
}
3.3.6 Linked Lists
Sebelum mengimplementasikan linked representation dari stacks, pertama mari kita
pelejari bagaimana membuat linked representation. Dalam hal ini, kita akan
menggunakan linked lists.
Linked list merupakan struktur dinamis yang berlawanan dengan array, yang merupakan
struktur statis. Hal ini berarti linked list dapat tumbuh dan berkurang dalam size yang
bergantung pada kebutuhan user. Linked list digambarkan sebagai kumpulan dari nodes,
Yang masing-masing berisi data dan link atau pointer ke node berikutnya didalam list.
Gambar dibawah ini menunjukkan tampilan dari node.
Pengenalan Pemrograman  2  7J.E.N.I.
Gambar 2.6a: Sebuah node
Berikut ini merupakan contoh dari  non-empty linked list dengan 3 node.
Gambar 3.6b: Non-empty linked list dengan tiga node
Berikut ini bagaimana class node diimplementasikan. Class ini dapat digunakan untuk
membuat linked list.
class Node {
   int data;        /* integer data contained in the node */
   Node nextNode;   /* the next node in the list */
}
class TestNode {
   public static void main(String args[]) {
      Node emptyList = null;    /* create an empty list */
      /* head points to 1st node in the list */
      Node head = new Node();  
      /* initialize 1st node in the list */
      head.data = 5;
      head.nextNode = new Node();
      head.nextNode.data = 10;
      /* null marks the end of the list */
      head.nextNode.nextNode = null; 
      /* print elements of the list */
      Node currNode = head;
      while (currNode != null) {
         System.out.println(currNode.data);
         currNode = currNode.nextNode;
      }
   }
}
Pengenalan Pemrograman  2  8J.E.N.I.
3.3.7 Linked Representation dari Integer Stack
Sekarang Anda telah mempelajari tentang linked list. Maka Anda telah siap untuk
menerapkan apa yang telah Anda pelajari untuk implementasi linked representation dari
stack.
class DynamicIntStack{
   private IntStackNode top;     /* head or top of the stack */
   class IntStackNode {          /* node class */
      int data;
      IntStackNode next;
      IntStackNode(int n) {
         data = n;
         next = null;
      }
   }
   void push(int n){            
      /* no need to check for overflow */
      IntStackNode node = new IntStackNode(n);
      node.next = top;
      top = node;
   }
   int pop() {
      if (isEmpty()) {
         return -1;
         /* may throw a user-defined exception */
      } else {
         int n = top.data;
         top = top.next;
         return n;
      }
   }
   boolean isEmpty(){
      return top == null;
   }
   public static void main(String args[]) {
      DynamicIntStack myStack = new DynamicIntStack();
      myStack.push(5);
      myStack.push(10);
      /* print elements of the stack */
      IntStackNode currNode = myStack.top;
      while (currNode!=null) {
         System.out.println(currNode.data);
         currNode = currNode.next;
      }
      System.out.println(myStack.pop());
      System.out.println(myStack.pop());
   }
}
Pengenalan Pemrograman  2  9J.E.N.I.
Gambar 1.2.7: Implementasi linked dari stack
3.3.8 Java Collections
Saat ini Anda telah diperkenalkan kepada dasar abstract data types. Pada intinya, Anda
telah mempelajari tentang dasar dari linked lists, stacks dan queue. Berita baik bahwa
abstract  data  types  telah siap untuk diimplementasikan dan dimasukkan dalam Java.
Class Stack dan LinkedList diperbolehkan digunakan tanpa pengertian yang lengkap dari
konsep   ini.   Bagaimanapun   juga,   sebagai   ilmuwan   komputer,   sangat   penting   untuk
mengerti konsep dari abstract data types. Oleh karena itu, penjelasan terperinci masih
disampaikan dalam bagian  yang  terdahulu.  Dengan  peluncuran dari   J2SE5.0,   queue
interface  telah  tersedia.  Untuk detail  pada class dan  interface  ini,  dapat  dilihat  pada
dokumentasi Java API.
Kepada kita,  Java  telah menyajikan  Collection  classes dan  interfaces yang  lain,  yang
semuanya dapat ditemukan di java.util package. Contoh dari Collection classes termasuk
LinkedList,  ArrayList,  HashSet  dan  TreeSet.  Class  tersebut  benar-benar   implementasi
dari  collection  interfaces yang berbeda.   Induk hirarki  dari  collection  interfaces adalah
collection interfaces itu sendiri. Sebuah collection hanya sebuah grup dari object yang
diketahui sebagai elemennya sendiri. Collection memperbolehkan penggandaan/salinan
dan tidak membutuhkan pemesanan elemen secara spesifik.
SDK   tidak   menyediakan   implementasi   built-in   yang   lain   dari   interface   ini   tetapi
mengarahkan subinterfaces, Set interfaces dan List interfaces diperbolehkan. Sekarang,
apa   perbedaan   dari   kedua   interface   tersebut.   Set  merupakan   collection   yang   tidak
dipesan   dan   tidak   ada   penggandaan   didalamnya.   Sementara   itu,   list   merupakan
collection   yang   dipesan   dari   elemen-elemen   dimana   juga   diperbolehkannya
penggandaan.  HashSet, LinkedHashSet  dan TreeSet  suatu  implementasi class dari  Set
interfaces. ArrayList, LinkedList dan Vector  suatu implementasi class dari List interfaces.
<root interface>
Collection
<interface>
Set
<interface>
List
<implementing classes> <implementing classes>
HashSet LinkedHashSet TreeSet ArrayList LinkedList Vector
Tabel 1.2.8a: Java collections
Berikut ini adalah daftar dari beberapa Collections methods yang disediakan dalam
Collection API dari Java 2 Platform SE v1.4.1. Pada Java 2 Platform SE v.1.5.0, methods
ini telah dimodifikasi untuk menampung generic types. Sejak generic types masih belum
selesai dibahas, sebaiknya mempertimbangkan method ini terlebih dahulu. Disarankan
bahwa Anda mengacu pada Collection methods yang terbaru dimana Anda lebih mudah
Pengenalan Pemrograman  2  10J.E.N.I.
mengerti generic types, yang akan didiskusikan pada chapter berikutnya.
Collection Methods
public boolean add(Object o)
Memasukkan  Object o  kedalam collection  ini.  Mengembalikan nilai  true  jika  o  telah
sukse ditambahkan kedalam collection.
public void clear()
Menghapus semua element dari collection ini.
public boolean remove(Object o)
Menghapus single  instance dari  Object o  pada collection  ini,   jika hal   tersebut  telah
diinputkan.   Mengembalikan   nilai  true  jika  o  telah   ditemukan   dan   dihapus   dari
collection.
public boolean contains(Object o)
Mengembalikan nilai true jika collection ini berisi Object o.
public boolean isEmpty()
Mengembalikan nilai true jika collection ini tidak berisi object atau element apapun.
public int size()
Mengembalikan nomor dari elements pada collection ini.
public Iterator iterator()
Mengembalikan sebuah iterator yang menunjukkan kita pada isi collection ini.
public boolean equals(Object o)
Mengembalikan nilai jika Object o sama dengan yang ada pada collection.
public int hashCode()
Mengembalikan   nilai   hash   code   (i.e.,   the   ID)   untuk   collection   ini.   Objects   atau
collections yang sama memiliki nilai hash code atau ID yang sama.
Tabel 1.2.8b: Methods dari class Collection
Anda diharapkan mengacu pada dokumentasi API untuk mengetahui daftar lengkap dari
methods dalam Collection, List dan Set interface.
Saat ini kita akan melihat beberapa collection classes. Harap mengacu pada API untuk
daftar dari methods yang dimasukkan kedalam class ini.
Pada bagian sebelumnya, Anda telah melihat bagaimana mengimplementasikan linked
list dengan cara Anda sendiri. Java SDK juga telah menyediakan built-implementation
dari linked list untuk kita. LinkedList class berisi methods yang memperbolehkan linked
list digunakan seperti stacks, queue atau ADT yang lain. Listing program berikut ini
menunjukan bagaimana menggunakan class LinkedList.
Pengenalan Pemrograman  2  11J.E.N.I.
import java.util.*;
class LinkedListDemo {
   public static void main(String args[]) {
      LinkedList list = new LinkedList();
      list.add(new Integer(1));
      list.add(new Integer(2));
      list.add(new Integer(3));
      list.add(new Integer(1));
      System.out.println(list + ", size = " + list.size());
      list.addFirst(new Integer(0));
      list.addLast(new Integer(4));
      System.out.println(list);
      System.out.println(list.getFirst() + ", " +
                                           list.getLast());
      System.out.println(list.get(2) + ", " + list.get(3));
      list.removeFirst();
      list.removeLast();
      System.out.println(list);
      list.remove(new Integer(1));
      System.out.println(list);
      list.remove(3);
      System.out.println(list);
      list.set(2, "one");
      System.out.println(list);
   }
}
ArrayList merupakan versi fleksibel dari array biasa. Yang mengimplementasikan List
interface. Telitilah kode berikut ini.
import java.util.*;
class ArrayListDemo {
   public static void main(String args[]) {
      ArrayList al = new ArrayList(2);
      System.out.println(al + ", size = " + al.size());
      al.add("R");
      al.add("U");
      al.add("O");
      System.out.println(al + ", size = " + al.size());
      al.remove("U");
      System.out.println(al + ", size = " + al.size());
      ListIterator li = al.listIterator();
      while (li.hasNext())
         System.out.println(li.next());
      Object a[] = al.toArray();
      for (int i=0; i<a.length; i++)
         System.out.println(a[i]);
   }
}
Pengenalan Pemrograman  2  12J.E.N.I.
HashSet merupakan sebuah implementasi dari Set interface yang berguna pada hash
table. Penggunaan suatu hash table lebih mudah dan cepat untuk melihat lebih detail
elemen-elemen yang ada. Table menggunakan suatu rumusan untuk menentukan
dimana suatu objek disimpan. Teliti program ini, yang menggunakan class HashSet.
import java.util.*;
class HashSetDemo {
   public static void main(String args[]) {
      HashSet hs = new HashSet(5, 0.5f);
      System.out.println(hs.add("one"));
      System.out.println(hs.add("two"));
      System.out.println(hs.add("one"));
      System.out.println(hs.add("three"));
      System.out.println(hs.add("four"));
      System.out.println(hs.add("five"));
      System.out.println(hs);
   }
}
TreeSet merupakan sebuah implementasi dari Set interface yang menggunakan tree.
Class ini memastikan bahwa yang disortir akan diurutkan secara ascending.
Pertimbangkan, bagaimana class TreeSet telah digunakan dalam listing program berikut
ini.
import java.util.*;
class TreeSetDemo {
   public static void main(String args[]) {
      TreeSet ts = new TreeSet();
      ts.add("one");
      ts.add("two");
      ts.add("three");
      ts.add("four");
      System.out.println(ts);
   }
}
Gambar 1.2.8: Contoh TreeSet
Pengenalan Pemrograman  2  13J.E.N.I.
3.4 Latihan
3.4.1 Faktor Persekutuan Terbesar
Faktor persekutuan terbesar (FPB) dari dua angka adalah angka yang terbesar selalu
dibagi oleh angka yang satunya, kemudian modulus atau sisa pembagian membagi
angka kedua dan seterusnya hingga sisa pembagian dari kedua angka tersebut sama
dengan nol. Menggunakan Euclid's method, buatlah dua kode untuk penghitungan dua
angka. Gunakan iterasi untuk kode program yang pertama dan rekursif untuk kode
program berikutnya.
Catatan pada algoritma Euclid :
1. Sebagai masukkan integers x dan y.
2. Ulangi step dibawah ini while y != 0
a. y = x % y;
b. x = Nilai lama y;
3. Return x.
Contoh, x = 14 dan y = 6.
y = x % y = 14 % 6 = 2
x = 6
y = x % y = 6 % 2 = 0
x = 2 (FPB)
3.4.2 Sequential Representation dari Integer Queue
Dengan menggunakan array, implementasikan sebuah integer queue seperti contoh
pada sequential stack.
3.4.3 Linked Representation dari Integer Queue
Dengan menggunakan ide dari linked list, implementasikan sebuah integer queue
dinamis seperti integer stack dinamis yang diperkenalkan seperti contoh berikut.
3.4.4 Address Book
Dengan menggunakan Java collection, buatlah sebuah program yang memperbolehkan
user untuk insert, delete dan view address. Setiap address berisi nama , alamat dan
nomor telepon dari orang yang mengisinya. Pengisian data dimasukkan dengan cara
queue tetapi penghapusan dilakukan dengan cara stack.
Dalam contoh ini, kita akan menggunakan text editor untuk mengedit program Java.
Juga membuka terminal window untuk meng-compile dan meng-execute program Java
anda.
Read more »

BELAJAR PEMOGRAMAN PASCAL

Pascal adalah sebuah bahasa pemograman tempo dulu. Mungkin itu saja yang dapat saya definiskan, karena saya yakin pembaca  lebih tahu mengenai definisi lengkap dari
Pascal. Saya ingin berbagi ilmu walaupun cuma sedikit tentang pemograman dengan
Pascal. 

Melalui tulisan ini, saya mencoba untuk mengulas program, prosedur dan fungsi
menarik yang bisa Anda coba dan terapkan dalam pemograman Pascal.
Beberapa yang dapat saya sampaikan, diantaranya: 
1.  Fungsi-fungsi String
2.  Fungsi-fungsi Date
3.  Fungsi-fungsi Konversi
4.  Program Permainan
Semoga bahasan ini menjadi menarik dan bermanfaat untuk Anda semua.

Lisensi Dokumen:
Copyright © 2003-2006 IlmuKomputer.Com
Seluruh dokumen di  IlmuKomputer.Com dapat digunakan, dimodifikasi dan
disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat
tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang
disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang,
kecuali mendapatkan ijin terlebih dahulu dari IlmuKomputer.Com. Artikel Populer IlmuKomputer.Com
Copyright ©2003- 2006 IlmuKomputer.Com


Berikut ini adalah fungsi-fungsi untuk memanipulasi data String. Jalankan aplikasi
Pascal Anda, ketikkan kode berikut:

PROGRAM MANIPULASISTRING;
USES CRT;

a. Lower Case 

Fungsi ini akan mengubah string yang diinputkan menjadi Lower Case (huruf kecil).
Ketikkan fungsi berikut ini:

b. Upper Case 

Fungsi ini akan mengubah string yang diinputkan menjadi Upper Case (huruf besar).
Ketikkan fungsi berikut ini:

c. Proper Case 

Fungsi ini akan mengubah string yang diinputkan menjadi Proper Case (huruf besar
untuk huruf awal setiap kata). Ketikkan fungsi berikut ini:

FUNCTION LCASE(S:STRING):STRING;
VAR I:INTEGER;
BEGIN
    FOR I:= 1 TO LENGTH(S) DO
        IF (S[I] >= 'A') AND (S[I] <= 'Z') THEN
             INC(S[I], 32);
             LCASE := S;
END;
FUNCTION UCASE(S:STRING):STRING;
VAR I:INTEGER;
BEGIN
    FOR I:= 1 TO LENGTH(S) DO
        IF (S[I] >= 'a') AND (S[I] <= 'z') THEN
             DEC(S[I], 32);
             UCASE := S;
END; Artikel Populer IlmuKomputer.Com
Copyright ©2003- 2006 IlmuKomputer.Com

3

Untuk mencoba fungsi-fungsi di atas, ketikkan program utama sebagai berikut:

{program utama}
BEGIN
    CLRSCR;
    WRITE(LCASE('Created By vian sastra '));
    WRITE(UCASE('Created By vian sastra '));
    WRITE(PCASE('Created By vian sastra '));
    READLN;
END.

Lihatlah tampilan pada layar monitor Anda!



Baris pertama, tiap kata ditulis dengan huruf kecil, baris ke-2 tiap kata ditulis dengan
huruf besar, dan baris ke-3, tiap kata hanya huruf awal saja yang ditulis dengan huruf
besar.

FUNCTION PCASE(S:STRING):STRING;
VAR I, J:INTEGER;
BEGIN
    IF (S[1] >= 'a') AND
    (S[1] <= 'z') THEN
        DEC(S[1], 32);
    FOR I:= 2 TO LENGTH(S) DO
        IF (S[I] >= 'A') AND
        (S[I] <= 'Z') THEN
            INC(S[I], 32);
    FOR I:= 2 TO (LENGTH(S)-1) DO
        IF (S[I] = ' ') THEN
            BEGIN
            J := I;
            IF (S[J + 1] >= 'a') AND
            (S[J + 1] <= 'z') THEN
                DEC(S[J + 1], 32);
            END;
    PCASE := S;
END; Artikel Populer IlmuKomputer.Com
Copyright ©2003- 2006 IlmuKomputer.Com

4
B BA AB B   3 3  
F FU UN NG GS SI I- -F FU UN NG GS SI I   D DA AT TE E  


Berikut ini adalah fungsi-fungsi untuk memanfaat sistem  date dari unit Dos, untuk
menampilkan tanggal atau hari sesuai data  pada sistem komputer. Jalankan aplikasi
Pascal Anda, ketikkan kode berikut:

PROGRAM TAMPILTANGGAL;
USES CRT, DOS;

(* FUNGSI UNTUK MENGKONVERSI
NILAI INTEGER MENJADI STRING *)

FUNCTION INTTOSTR(I: LONGINT): STRING;
VAR
    S: STRING[12];
BEGIN
    STR(I, S);
    INTTOSTR := S;
END;


a. Menampilkan Tanggal Sistem

Fungsi ini akan menampilkan tanggal dari sistem komputer Anda.

b. Menampilkan Nama Hari

Fungsi ini akan menampilkan tanggal dari sistem komputer Anda.

FUNCTION TANGGAL:STRING;
VAR
    Y, M, D, DOW : Word;
BEGIN
    GETDATE(Y,M,D,DOW);
    TANGGAL := INTTOSTR(D) +  '-'
    + INTTOSTR(M) + '-' + INTTOSTR(Y);
END;
FUNCTION HARI_INI:STRING;
CONST
  DAYS : ARRAY [0..6] OF STRING[9] =
    ('MINGGU','SENIN','SELASA',
     'RABU','KAMIS','JUMAT',
     'SABTU');
VAR
    Y, M, D, DOW : Word;
BEGIN
  GETDATE(Y,M,D,DOW);
   HARI_INI := 'HARI INI : ' + DAYS[DOW] + ', ';
END; Artikel Populer IlmuKomputer.Com
Copyright ©2003- 2006 IlmuKomputer.Com

5
Untuk mencoba fungsi-fungsi di atas, ketikkan program utama sebagai berikut:
(* program utama *)
BEGIN
    CLRSCR;
    WRITELN(HARI_INI, TANGGAL);
    READLN;
END.

Lihatlah tampilan pada layar monitor Anda!


 Artikel Populer IlmuKomputer.Com
Copyright ©2003- 2006 IlmuKomputer.Com

6
B BA AB B   4 4  
F FU UN NG GS SI I- -F FU UN NG GS SI I   K KO ON NV VE ER RS SI I  
  

Berikut ini adalah fungsi-fungsi untuk mengkonversi suatu nilai ke nilai lain. Jalankan
aplikasi Pascal Anda, ketikkan kode berikut:

PROGRAM KONVERSI;
USES CRT, STRINGS;
VAR MASUKAN : INTEGER;

(* FUNGSI UNTUK MENGKONVERSI
NILAI {INTEGER} MENJADI STRING *)

FUNCTION INTTOSTR(I: LONGINT): STRING;
VAR
        S: STRING;
BEGIN
        STR(I, S);
        INTTOSTR := S;
END;

a. Konversi Desimal ke Angka Romawi

Fungsi ini akan mengkonversi suatu nilai bilangan (decimal) ke angka Romawi. Contoh:
1234 menjadi: MCCXXXIV.

(* FUNGSI UNTUK MENGKONVERSI
BILANGAN DESIMAL MENJADI ANGKA ROMAWI*)

FUNCTION CONVROMAN(INTANGKA : INTEGER): STRING;
VAR
 I: INTEGER;
  INTSERIBU, INTLIMARATUS : INTEGER;
  INTSERATUS, INTLIMAPULUH : INTEGER;
  INTSEPULUH, INTLIMA, INTSATU : INTEGER;
  STRSERIBU, STRLIMARATUS :STRING;
  STRSERATUS, STRLIMAPULUH : STRING;
  STRSEPULUH, STRLIMA, STRSATU : STRING;
    STRROMAWI : STRING;
BEGIN
    I := 0;
    STRROMAWI    :='';INTSERIBU    := 0;
    INTLIMARATUS := 0;INTSERATUS   := 0;
    INTLIMAPULUH := 0;INTSEPULUH   := 0;
    INTLIMA      := 0;INTSATU      := 0;
  STRSERIBU    :='';STRLIMARATUS :='';
  STRSERATUS   :='';STRLIMAPULUH :='';
  STRSEPULUH   :='';STRLIMA      :='';
    STRSATU      :='';
    (*===============================*)
  INTSATU      := INTANGKA;
  INTSERIBU    := INTANGKA DIV 1000; Artikel Populer IlmuKomputer.Com
Copyright ©2003- 2006 IlmuKomputer.Com

7
  INTSATU      := INTSATU - (INTSERIBU * 1000);
    INTLIMARATUS := INTSATU DIV 500;
  INTSATU      := INTSATU - (INTLIMARATUS * 500);
  INTSERATUS   := INTSATU DIV 100;
  INTSATU      := INTSATU - (INTSERATUS * 100);
  INTLIMAPULUH := INTSATU DIV 50;
  INTSATU      := INTSATU - (INTLIMAPULUH * 50);
  INTSEPULUH   := INTSATU DIV 10;
  INTSATU      := INTSATU - (INTSEPULUH * 10);
  INTLIMA      := INTSATU DIV 5;
  INTSATU      := INTSATU - (INTLIMA * 5);
              (*=================================*)
  FOR I := 0 TO INTSERIBU-1 DO
      STRSERIBU := STRSERIBU + 'M';
  IF INTSERATUS <> 4 THEN
        FOR I := 0 TO INTLIMARATUS-1 DO
       STRLIMARATUS := STRLIMARATUS + 'D';
      FOR I := 0 TO INTSERATUS-1 DO
          STRSERATUS := STRSERATUS + 'C';
              IF INTSERATUS = 4 THEN
                  IF INTLIMARATUS = 1 THEN
                    STRSERATUS := STRROMAWI + 'CM'
            ELSE
              STRSERATUS := STRROMAWI + 'CD';
        IF INTSEPULUH <> 4 THEN
                  FOR I := 0 TO INTLIMAPULUH-1 DO
          STRLIMAPULUH := STRLIMAPULUH + 'L';
      FOR I := 0 TO INTSEPULUH-1 DO
          STRSEPULUH := STRSEPULUH + 'X' ;
              IF INTSEPULUH = 4 THEN
            IF INTLIMAPULUH = 1 THEN
               STRSEPULUH := STRROMAWI + 'XC'
            ELSE
               STRSEPULUH := STRROMAWI +'XL';
     IF INTSATU <> 4 THEN
                  FOR I := 0 TO INTLIMA-1 DO
          STRLIMA := STRLIMA + 'V';

      FOR I := 0 TO INTSATU-1 DO
          STRSATU := STRSATU + 'I' ;
              IF INTSATU = 4 THEN
            IF INTLIMA = 1 THEN
                    STRSATU := STRROMAWI + 'IX'
            ELSE
                    STRSATU := STRROMAWI +'IV';
    STRROMAWI := STRSERIBU + STRLIMARATUS
                          + STRSERATUS + STRLIMAPULUH
                          + STRSEPULUH + STRLIMA + STRSATU;
        CONVROMAN := STRROMAWI;
END;

b. Konversi Desimal ke Binear

Fungsi ini akan mengkonversi suatu nilai bilangan (decimal) ke basis Binear. Contoh:
123 menjadi: 1111011.

FUNCTION BINEAR(INTANGKA : INTEGER): STRING; Artikel Populer IlmuKomputer.Com
Copyright ©2003- 2006 IlmuKomputer.Com

8
VAR
    INTNILAI :LONGINT;
    INTLEN   :INTEGER;
    J        :INTEGER;
    STRHASIL :STRING;
    STREND   :STRING[1];
    STRSUB   : STRING;
BEGIN
    STRHASIL := '';
    STREND   := '';
    STRSUB   := '';
    REPEAT
        INTNILAI := INTANGKA MOD 2;
        INTANGKA := INTANGKA DIV 2;
        STRHASIL := STRHASIL + IntToStr(INTNILAI);
    UNTIL INTANGKA = 1;
    INTLEN   := LENGTH(STRHASIL);
    STREND   := IntToStr(INTANGKA);
    FOR J := INTLEN DOWNTO 1 DO
         STRSUB := STRSUB + COPY(STRHASIL, J, 1);
     BINEAR := STREND + STRSUB;
END;

c. Konversi Desimal ke Hexadecimal

Fungsi ini akan mengkonversi suatu nilai bilangan (decimal) ke basis Hexadecimal.
Contoh: 123 menjadi: 7B.

FUNCTION HEXADEC(INTANGKA : INTEGER): STRING;
VAR
    INTNILAI :LONGINT;
    INTLEN   :INTEGER;
    J        :INTEGER;
    STRHASIL :STRING;
    STRHEXA  :STRING;
    STREND   :STRING[1];
    STRSUB   :STRING;
BEGIN
    STRHASIL := '';
    STRHEXA := '';
    STRSUB := '';
    STREND := '';
    REPEAT
        INTNILAI := INTANGKA MOD 16;
        INTANGKA := INTANGKA DIV 16;
        CASE INTNILAI OF
        10: STRHEXA := 'A';
        11: STRHEXA := 'B';
        12: STRHEXA := 'C';
        13: STRHEXA := 'D';
        14: STRHEXA := 'E';
        15: STRHEXA := 'F';
        ELSE
            STRHEXA := IntToStr(INTNILAI);
        END;
            STRHASIL := STRHASIL + STRHEXA;
    UNTIL INTANGKA < 16; Artikel Populer IlmuKomputer.Com
Copyright ©2003- 2006 IlmuKomputer.Com

9
    INTLEN   := LENGTH(STRHASIL);
    STREND   := IntToStr(INTANGKA);
    FOR J := INTLEN DOWNTO 1 DO
        STRSUB := STRSUB + COPY(STRHASIL, J, 1);
    HEXADEC := STREND + STRSUB;
END;

d. Konversi Desimal ke Nominal

Fungsi ini akan mengkonversi suatu nilai bilangan (decimal) ke huruf nominal. Contoh:
123 menjadi: Seratus duapuluh tiga.

Function DlmHuruf(Var nHuruf:String):String;
Begin
     If nHuruf ='1' Then DlmHuruf:='satu' Else
     If nHuruf ='2' Then DlmHuruf:='dua' Else
     If nHuruf ='3' Then DlmHuruf:='tiga' Else
     If nHuruf ='4' Then DlmHuruf:='empat' Else
     If nHuruf ='5' Then DlmHuruf:='lima' Else
     If nHuruf ='6' Then DlmHuruf:='enam' Else
     If nHuruf ='7' Then DlmHuruf:='tujuh' Else
     If nHuruf ='8' Then DlmHuruf:='delapan' Else
     If nHuruf ='9' Then DlmHuruf:='sembilan' Else
     DlmHuruf:=' ';
End;
{-------------------------------------------}
Function Terbilang(Angka:LongInt):String;
    var
    ChrS : Array[1..10] of String;
    StrT : Array[1..10] of String;
    Huruf:String;Indeks,Panjang:Integer;
Begin
    Huruf:=''; Panjang:=0;
    For Indeks := 1 to 10 do begin
        ChrS[Indeks]:='';
        StrT[Indeks]:='';End;
        Panjang:=Length(IntToStr(Angka));

    For Indeks := 1 to Panjang do
        ChrS[Indeks] :=
        Copy(IntToStr(Angka),
        (Panjang-(Indeks-1)),1);
        If ChrS[8] ='0' Then
        Begin
            StrT[8] :='';
            StrT[7]:=DlmHuruf(ChrS[7]) + 'juta ';
        End
        Else If ChrS[8] ='1' Then
        Begin
             StrT[8]:='';
                If ChrS[7] = '0' Then
                   StrT[7]:='Sepuluh juta ' Else
                If ChrS[7] = '1' Then
                   StrT[7]:='Sebelas juta ' Else
                   StrT[7]:= DlmHuruf(ChrS[7]) +
                           'belas juta';
        End Artikel Populer IlmuKomputer.Com
Copyright ©2003- 2006 IlmuKomputer.Com

10
        Else If ChrS[8] >'1' Then
            Begin
              StrT[7]:=DlmHuruf(ChrS[7]) + 'juta ';
              StrT[8]:=DlmHuruf(ChrS[8]) + 'puluh ';
           End;
        Begin

        End;
        If ChrS[6] = '0' Then
            StrT[6]:=''
        Else
        Begin
            If ChrS[6] <> '1' Then
                StrT[6]:=DlmHuruf(ChrS[6]) + 'ratus '
            Else
                StrT[6]:='Seratus ';
        End;
        If ChrS[5] = '0' Then
        Begin
           StrT[5]:='';
           If ChrS[4] = '1' Then
               StrT[4]:= 'Seribu '
           Else
               StrT[4] := DlmHuruf(ChrS[4]) + 'ribu ';
        End
        Else If ChrS[5] = '1' Then
           Begin
                StrT[5]:='';
                If ChrS[4] = '0' Then
                   StrT[4]:='Sepuluh ribu ' Else
                If ChrS[4] = '1' Then
                   StrT[4]:='Sebelas ribu ' Else
                   StrT[4]:= DlmHuruf(ChrS[4]) +
                           'belas ribu ';
           End
        Else
           Begin
              StrT[4]:=DlmHuruf(ChrS[4]) + 'ribu ';
              StrT[5]:=DlmHuruf(ChrS[5]) + 'puluh ';
           End;
        If ChrS[3] = '0' Then
            StrT[3]:=''
        Else If ChrS[3] ='1' Then
            StrT[3]:='Seratus '
        Else If ChrS[3] > '1' Then
            StrT[3]:=DlmHuruf(ChrS[3]) + 'ratus ';
      {========================================}
        If ChrS[2] = '0' Then
        Begin
            StrT[2]:='';
            StrT[1]:=DlmHuruf(ChrS[1]);
        End
        Else If ChrS[2] ='1' Then
        Begin
           StrT[2]:='';
           If ChrS[1] = '0' Then
              StrT[1]:='Sepuluh' Else
           If ChrS[1] = '1' Then
              StrT[1]:='Sebelas' Else Artikel Populer IlmuKomputer.Com
Copyright ©2003- 2006 IlmuKomputer.Com

11
              StrT[1]:= DlmHuruf(ChrS[1]) +'belas';
        End
        Else If ChrS[2] > '1' Then
           Begin
              StrT[1]:=DlmHuruf(ChrS[1]);
              StrT[2]:=DlmHuruf(ChrS[2])+'puluh ';
        End;
    For Indeks := 1 to 8 Do
        If Panjang <= Indeks Then
        StrT[Indeks + 1] :='';
        For Indeks := 8 DownTo 1 Do
            Huruf:=Huruf + StrT[Indeks];
    Terbilang := Huruf;

Untuk mencoba fungsi-fungsi di atas, ketikkan program utama sebagai berikut:

(* program utama *)
BEGIN
    CLRSCR;
    WRITE ('MASUKAN ANGKA : ');
    READLN(MASUKAN);
    WRITELN('ROMAWI = ', CONVROMAN(MASUKAN));
    WRITELN('BINEAR = ', BINEAR(MASUKAN));
    WRITELN('HEXA   = ','&H', HEXADEC(MASUKAN));
    WRITELN('TERBILANG = ', TERBILANG(MASUKAN));
    READLN
END.

Tampilan akhir program seperti gambar di bawah ini:


 Artikel Populer IlmuKomputer.Com
Copyright ©2003- 2006 IlmuKomputer.Com

12
B BA AB B   5 5  
P PR RO OG GR RA AM M   P PE ER RM MA AI IN NA AN N  


Berikut ini adalah contoh pembuatan sebuah program permainan, sulap angka. Program
ini akan menebak sebuah angka yang dipilih oleh seorang pemain, setelah menempuh
beberapa wizard. Jalankan Pascal dan ketikkan kode yang banyak ini:

PROGRAM SULAPANGKA;
USES CRT;
VAR I, J, K, L: INTEGER;
    YT: CHAR;
    NILAI:INTEGER;

FUNCTION CSTR(I: INTEGER): STRING;
VAR
     S: STRING[11];
BEGIN
     STR(I, S);
     CSTR := S;
END;

PROCEDURE TULIS(POSISI:INTEGER; TEKS:STRING);
VAR A, B, C: INTEGER;
BEGIN
    A := POSISI;
    B := POSISI MOD 10;
    C := 1;
    IF B = 0 THEN
    BEGIN B := 10;C := 0; END;
    GOTOXY(B * 8 - 5,
    (A DIV 10 + C) * 3 + 1);
    WRITE(TEKS);
END;
(* Untuk symbol-symbol seperti : ÉÍÍ, 
dapat Anda ganti dengan symbol: # atau lainnya *)

PROCEDURE BIKIN_KOTAK(KOLOM, BARIS: INTEGER);
BEGIN
   CLRSCR;
   FOR I:= 1 TO KOLOM DO
        BEGIN
             FOR J := 1 TO BARIS DO
                 BEGIN
                     GOTOXY (J * 8 - 7, (I * 3));
                     WRITE('ÉÍÍÍÍ»');
                     GOTOXY (J * 8 - 7, (I * 3 + 1));
                     WRITE('º    º');
                     GOTOXY (J * 8 - 7, (I * 3 + 2));
                     WRITE('ÈÍÍÍͼ');
                 END;
        END;
END;

PROCEDURE WIZARD7; Artikel Populer IlmuKomputer.Com
Copyright ©2003- 2006 IlmuKomputer.Com

13
BEGIN
   CLRSCR;
   WRITELN('ANGKA YANG ANDA PILIH = ', NILAI);
   WRITELN;
   WRITE('INGIN MENGULANG (Y/ESC.)? ');READKEY;
   YT := READKEY;
END;

PROCEDURE WIZARD6;
BEGIN
    BIKIN_KOTAK(2, 10);
    FOR I := 1 TO 19 DO
        TULIS(I, CSTR(I + 31));
    GOTOXY (5, 15);
    WRITE('APAKAH ANGKA YANG ANDA PILIH',
    ' ADA PADA DERETAN ANGKA DI ATAS (Y/T) ');
    REPEAT
    YT := READKEY;
    UNTIL YT IN ['y', 'Y', 't', 'T', #27];
    IF UPCASE(YT) = 'Y' THEN
        NILAI := NILAI + 32;
    WIZARD7;
    {===============================}
END;

PROCEDURE WIZARD5;
BEGIN
    BIKIN_KOTAK(2, 10);
    FOR I := 1 TO 16 DO
        TULIS(I, CSTR(I + 15));
    FOR J := 17 TO 19 DO
        TULIS (J, CSTR(J + 31));
    GOTOXY (5, 15);
    WRITE('APAKAH ANGKA YANG ANDA PILIH',
    ' ADA PADA DERETAN ANGKA DI ATAS (Y/T) ');
    REPEAT
    YT := READKEY;
    UNTIL YT IN ['y', 'Y', 't', 'T', #27];
    {===============================}
    IF UPCASE(YT) = 'Y' THEN
        NILAI := NILAI +  16;
    WIZARD6;
END;

PROCEDURE WIZARD4;
BEGIN
    BIKIN_KOTAK(3, 10);
    FOR J := 0 TO 2 DO
        FOR I := 1 TO 8 DO
        TULIS(J * 8 + I, CSTR(J * 16 + I + 7));
        GOTOXY (5, 15);
    WRITE('APAKAH ANGKA YANG ANDA PILIH',
    ' ADA PADA DERETAN ANGKA DI ATAS (Y/T) ');
    REPEAT
    YT := READKEY;
    UNTIL YT IN ['y', 'Y', 't', 'T', #27];
    IF UPCASE(YT) = 'Y' THEN
        NILAI := NILAI +  8;
    WIZARD5; Artikel Populer IlmuKomputer.Com
Copyright ©2003- 2006 IlmuKomputer.Com

14
    {===============================}
END;

PROCEDURE WIZARD3;
BEGIN
    BIKIN_KOTAK(3, 10);
    FOR J := 0 TO 5 DO
        FOR I := 1 TO 4 DO
        TULIS(J * 4 + I, CSTR(J * 8 + I + 3));
    GOTOXY (5, 15);
    WRITE('APAKAH ANGKA YANG ANDA PILIH',
    ' ADA PADA DERETAN ANGKA DI ATAS (Y/T) ');
    REPEAT
    YT := READKEY;
    UNTIL YT IN ['y', 'Y', 't', 'T'];
    IF UPCASE(YT) = 'Y' THEN
        NILAI := NILAI +  4;
    WIZARD4;
    {===============================}
END;

PROCEDURE WIZARD2;
BEGIN
    BIKIN_KOTAK(3, 10);
    J:=0;
    FOR J := 0 TO 12 DO
        FOR I := 1 TO 2 DO
        TULIS(J * 2 + I, CSTR(J * 4 + I + 1));

        GOTOXY (5, 15);
    WRITE('APAKAH ANGKA YANG ANDA PILIH',
    ' ADA PADA DERETAN ANGKA DI ATAS (Y/T) ');
    REPEAT
    YT := READKEY;
    UNTIL YT IN ['y', 'Y', 't', 'T', #27];
    IF UPCASE(YT) = 'Y' THEN
        NILAI := NILAI +  2;
    WIZARD3;
    {===============================}
END;

PROCEDURE WIZARD1;
BEGIN
    BIKIN_KOTAK(3, 10);
    L:= 1;
    REPEAT
        TULIS ((L + 1) DIV 2,CSTR(L));
        L:= L + 2;
    UNTIL L > 50;
    GOTOXY (5, 15);
    WRITE('APAKAH ANGKA YANG ANDA PILIH',
    ' ADA PADA DERETAN ANGKA DI ATAS (Y/T) ');
    REPEAT
    YT := READKEY;
    UNTIL YT IN ['y', 'Y', 't', 'T', #27];
    IF UPCASE(YT) = 'Y' THEN
        NILAI := 1;
    WIZARD2;
    {===============================} Artikel Populer IlmuKomputer.Com
Copyright ©2003- 2006 IlmuKomputer.Com

15
END;

PROCEDURE TULIS_NOMOR;
BEGIN
    BIKIN_KOTAK(5, 10);
    FOR K:= 1 TO 50 DO
        TULIS(K, CSTR(K));
    GOTOXY(1, 20);
    WRITE ('PILIH SEBUAH ANGKA, ',
    'TEKAN: Y, KALO MAU TERUS! ');
    WRITE ('TEKAN ESC UNTUK KELUAR ');
    REPEAT
    YT := READKEY;
    IF UPCASE(YT) = 'Y' THEN
    BEGIN
        NILAI := 0;
        WIZARD1;
    END;
    UNTIL YT IN ['y', 'Y', 't', 'T', #27];
    {===============================}
END;
(* Program Utama *)
BEGIN
    CLRSCR;
    TEXTATTR := $1F;
    REPEAT
       TULIS_NOMOR;
    UNTIL YT = #27;
END.

Tampilan program adalah sebagai berikut:

Tampilan
pertama:

Pada wizard
ini pemain
diminta
memilih
sebuah angka,
tanpa perlu
ditunjuk atau
disebutkan,
kemudian
tekan tombol
Y pada keyboard.






 Artikel Populer IlmuKomputer.Com
Copyright ©2003- 2006 IlmuKomputer.Com

16
Pada wizard ini, pemain mengamati angka-angka yang ditampilkan, jika angka yang
dipilih (pada wizard sebelumnya) ada pada deretan, tekan tombol Y, jika tidak ada tekan
tombol T

Tampilan dan penggunaan wizard-wizard selanjutnya sama seperti wizard di samping.


Setelah melalui
semua wizard,
maka akan
ditampilkan
hasil seperti
pada gambar di
samping ini.
Read more »

animasi

picture widgets

comment

Entri Populer