12910335-pemrograman-komputer (1)

58
Kuliah Umum : Komputerisasi Program Hisab dan Rukyat PEMROGRAMAN KOMPUTER DALAM HISAB DAN RUKYAT PENDAHULUAN SEKILAS TENTANG HISAB DAN RUKYAT PENGERTIAN DASAR TENTANG KOMPUTER ALGORITHME DAN BAHASA PEMROGRAMAN PEMROGRAMAN MACRO DALAM WINWORD DAN EXCEL PEMBUATAN PROGRAM KOMPUTER UNTUK HISAB DAN RUKYAT Surabaya, 11 – 12 Oktober 2002 1

Upload: rizky-rahman

Post on 01-Jul-2015

120 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

PEMROGRAMAN KOMPUTERDALAM HISAB DAN RUKYAT

PENDAHULUAN SEKILAS TENTANG HISAB DAN RUKYAT PENGERTIAN DASAR TENTANG KOMPUTER ALGORITHME DAN BAHASA PEMROGRAMAN PEMROGRAMAN MACRO DALAM WINWORD DAN EXCEL PEMBUATAN PROGRAM KOMPUTER UNTUK HISAB DAN

RUKYAT

Surabaya, 11 – 12 Oktober 20021

Page 2: 12910335-Pemrograman-Komputer (1)

MesirIndonesia

Satelit

Hilal

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

1. Pendahuluan

A. Umum

Teknologi komputer merupakan bagian dari kehidupan manusia dan masyarakat, bahkan pada dasarnya teknologi secara umum dan komputer secara khusus adalah salah satu sarana utama bagi manusia untuk meningkatkan kualitas hidupnya. Perkembangan teknologi akhir-akhir ini berjalan sedemikian pesatnya, dan teknologi komputer termasuk yang sangat cepat merambah sampai di hampir seluruh aspek kehidupan sehingga era saat-saat ini para pakar menyebutnya sebagai era komputerisasi.

Gambar 1. Hilal yang dilihat di Mesir bisa segera diinformasikan lewat telpon ke Indonesia

Globalisasi yang demikian populer saat ini tidak terlepas dari pengaruh dorongan percepatan perkembangan teknologi komputer, tidak luput pula tentunya pengaruhnya

terhadap aspek kehidupan sosial masyarakat termasuk didalamnya umat Islam, yang secara khusus dalam buku ini dibahas perihal komputerisasi di Bidang Hisab dan Rukyat.

Berkat kemajuan teknologi yang didukung perangkat komputer modern, hasil hisab/rukyat yang dilakukan umat Islam di belahan bumi lain, dapat diketahui dengan cepat atau bahkan dalam hitungan milidetik oleh umat Islam di belahan bumi yang lainnya. Gambar 1. memperlihatkan arus informsai hilal yang terlihat di Mesir dapat diberitakan lewat jalur telpon ke Indonesia melalui satelit. Di satu sisi perkembangan teknologi ini mampu mempercepat arus informasi, disisi lain membawa dampak yang cukup pelik karena umat Islam sekarang ini terkotak-kotak dalam negara yang berbeda-beda sehingga tidak ada satu keputusan yang mengikat untuk seluruh umat.

Sisi positif lain, perkembangan komputer yang pesat diharapkan dapat mendukung pelaksanaan hisab dan rukyat hilal, sedemikian rupa sehingga perbedaan-perbedaan yang terjadi di masyarakat berkisar hasil hisab dan rukyat dapat diminimalkan. Dalam hal ini, komputer ataupun teknologi bukan satu-satunya faktor yang dapat memecahkan permasalahan perbedaan dalam kalender Islam. Teknologi komputer hanya merupakan sarana bantu untuk memperkecil kesalahan-kesalahan manusiawi yang biasa terjadi.

B. Maksud Dan Tujuan

Surabaya, 11 – 12 Oktober 20022

Page 3: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

Maksud penulisan buku ini adalah untuk memberikan introduksi tentang ilmu komputer yang dapat dimanfaatkan untuk program hisab dan rukyat. Tujuan penulisan buku ini adalah sebagai gagasan bagi pemutakhiran teknologi hisab dan rukyat dengan memaksukkan komponen teknologi komputer didalamnya.

C. Konsep Komputerisasi Program Hisab dan Rukyat

Apa yang dimaksud dengan komputerisasi Program Hisab dan Rukyat? Apakah dengan komputer permasalahan hisab dan rukyat dapat dipecahkan? Apakah program komputer sesuai dengan Fiqh? Dan masih banyak pertanyaan-pertanyaan lain muncul tatkala kita bicara masalah komputerisasi hisab dan rukyat.

Gambar 2. Konsep Komputerisasi Hisab dan Rukyat

Ketika kita bicara masalah komputerisasi dalam program hisab, maka kita bicara bagaimana menghitung dengan cepat dan akurat yang mempertimbangkan berbagai parameter baik itu dari astronomi, matematik, statistik dan lain-lain dengan memanfaatkan komputer sedemikian rupa sehingga kesalahan manusia dapat diminimalkan. Dengan komputer juga dimungkinkan untuk memasukkan semua parameter-parameter perhitungan. Di lain hal, ketika kita bicara kompterisasi program hilal, maka kita bicara bagaimana mengoptimalkan pengamatan hilal sedemikian rupa hasil yang diperoleh lebih akurat. Dalam hal ini memperhitungkan unsur-unsur pengamat, lokasi, peralatan dan prediksi serta paramater-parameter lain yang mendukung keakuratan hasil pengamatan dengan memasukkan pemanfaatan komputer sebagai sarana bantu untuk keberhasilan rukyat.

Gambar 2. menunjukkan konsep komputerisasi hisab dan rukyat yang diharapkan untuk memunculkan hasil yang lebih akurat dibanding hisab dan rukyat tanpa pemanfaatan teknologi komputer.

Selanjutnya dalam tulisan ini lebih menekankan bahasannya pada topik komputerisasi, bukan pada hisab dan rukyat dengan segala macam pengertiannya.

Surabaya, 11 – 12 Oktober 20023

Hasil yang lebih akurat

Komputer

Hardware Software Brainware

Astronomi Matematik Statistik dll

Pengamat Peralatan Lokasi Prediksi dll

Hisab

Rukyat

Page 4: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

2. SEKILAS MENGENAI HISAB DAN RUKYAT

Sebenarnya masalahnya obyektif. Sunnatullah (hukum alam) itu satu. Kalau hisab (hitungan) dikerjakan teliti, dan rukyah (observasi) dilakukan dengan betul, maka mustahil hisab dan rukyah bertentangan, sama mustahilnya matahari di Indonesia terbit pukul 03:00 WIB, sekalipun ada orang yang mengaku telah melihatnya, dan berani disumpah. Rukyah 1 Ramadhan harus dikerjakan pada tgl 29 Sya'ban. Namun karena periode rembulan memutari bumi itu 'nanggung', yakni 29,5 hari lebih, maka bisa jadi dia baru akan kelihatan pada 30 Sya'ban-nya. Maka tak heran Rasulullah bersabda:"Bila rembulan tidak kelihatan, genapkan Sya'ban jadi 30 hari". Praktis sebenarnya.

Masalahnya, soal kelihatan apa tidak, terkadang tergantung oleh faktor non astronomis, seperti cuaca, medan (topografi), maupun oleh pengalaman si pengamat. Jaman sekarang ini, sudah jarang orang yang 'kenal langit', maklum sudah ada jam, kompas atau radio. Makanya banyak yang tidak tahu sifat-sifat hilal, di mana letaknya, mengamatinya jam berapa. Akibatnya ada yang keliru melihat pesawat atau awan dan dikira hilal. Akibatnya rukyat bisa salah. Pada zaman Nabi, hampir setiap orang tahu sifat-sifat hilal, karena mereka sehari-hari harus bernavigasi dengan melihat langit, sehingga bila ada seorang Badui bersaksi telah melihatnya pun, Rasulullah mempercayainya, dan menyatakan besok Ramadhan dimulai. Pada zaman sekarang ini, di beberapa negeri muslim, saksi hilal diberi honor, akibatnya mereka berlomba-lomba adu cepat. Dan tak jarang, mereka mengaku menyaksikan hilal, padahal rembulan belum ijtima' atau irtifa' masih negatif. Ini ibarat mengatakan matahari di Indonesia terbit pukul 03:00 WIB. Lebih dari itu, kapan 29 Sya'ban, ternyata sudah ditabulasi dalam suatu kalender, yang tentunya dihitung dengan hisab jauh-jauh hari. Nah di sini ternyata bisa timbul kalender yang berbeda-beda, karena terdapat berbagai definisi pergantian bulan. Kapan bulanRojab berganti ke bulan Sya'ban? Apakah bila rembulan mengalami ijtima' (conjunction), atau bila irtifa'-nya (altitude) sudah lebih dari 2 derajat. Mungkin ada kalender lain yang mensyaratkanirtifa' 5 derajat, atau 7 derajat; atau tidak cuma irtifa' tapi juga tingkat kilau (illuminasi) dll. Dan andaipun definisi astronomis ini diseragamkan, kalendernya masih juga lain-lain, tergantungdari posisi geografis mana ia dihitung. Irtifa' rembulan dari daerah tropis berbeda dengan dari daerah sedang. Rembulan dengan irtifa' negatif adalah mustahil untuk dilihat, karena ia masihdi bawah cakrawala. Jadi perbedaan ini bisa mencapai satu hari! Dan karena di dunia ini ada 24 daerah waktu, maka total jenderal perbedaan kalender ini bisa mencapai 2 hari !

Pertanyaan selanjutnya, terus bagaimana agar seluruh dunia bersatu dalam 1 Ramadhan dan satu dalam 1 Syawal? Mungkinkah muslim di seluruh dunia bisa serentak memulai 1 Ramadhan pada hari Jum'at 10 Januari 1997? Berita rukyatul hilal di suatu tempat bisa disebarkan ke seluruh duniapada saat yang sama melalui radio.

Taruhlah di Samoa (179 W), Kamis ini kalender menunjukkan 29 Sya'ban, namun hilal bisa dilihat. Maka segera diumumkan agar "besok", yakni hari Jum'at mulai puasa. Berita ini dengan cepat akan mencapai Tuvalu (179 E) yang cuma satu "loncatan" saja dari Samoa. Baik di Samoa maupun Tuvalu sama-sama senja. Tapi apa makna "besok" di Tuvalu?

Ketika "besok" bagi Samoa adalah hari Jum'at, pada saat yang sama di Tuvalu sudah Jum'at, dan "besok" adalah Sabtu. Antara Samoa dan Tuvalu terletak garis batas tanggal internasional. Untuk mengatasi hal ini jelaslah, bahwa dalam pembuatan kalender Islam pun perlu diperhatikan adanya suatu konvensi global. Suatu konvensi global itu misalnya: "bila ijtima' terjadi sebelum pukul 12:00 GMT, maka hari besok adalah permulaan bulan baru". Hal ini karena pada pukul 12:00 GMT, hari di seluruh dunia masih sama. Namun sepertinya persatuan ini belum mungkin tanpa adanya infrastrukturyang mempersatukan ummat Islam di seluruh dunia, karena hanya suatu khilafah yang

Surabaya, 11 – 12 Oktober 20024

Page 5: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

berhak dan mampu memberlakukan satu definisi kalender Islam yang bisa berlaku global dan mengikat, dan setelah itu rukyah dibangun di atas landasan kalender itu, dan dikerjakan secara merata di seluruh dunia oleh ahlinya.

Surabaya, 11 – 12 Oktober 20025

Page 6: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

2. PENGERTIAN DASAR TENTANG KOMPUTER

A. Pengertian Komputer

Komputer adalah serangkaian ataupun sekelompok mesin elektronik yang terdiri dari ribuan bahkan jutaan komponen yang dapat saling bekerja sama, serta membentuk sebuah sistem kerja yang rapi dan teliti. Sistem ini kemudian dapat digunakan untuk melaksanakan serangkaian pekerjaan secara otomatis, berdasar urutan instruksi ataupun program yang diberikan kepadanya.

Definisi yang ada memberi makna bahwa komputer memiliki lebih dari satu bagian yang saling bekerja sama, dan bagian-bagain itu baru bisa bekerja kalau ada aliran listrik yang mengalir didalamnya. Istilah mengenai sekelompok mesin, ataupun istilah mengenai jutaan komponen kemudian dikenal sebagai hardware komputer atau perangkat keras komputer.

Hardware komputer juga dapat diartikan sebagai peralatan fisik dari komputer itu sendiri. Peralatan yang secara fisik dapat dilihat, dipegang, ataupun dipindahkan.

Dalam hal ini, komputer tidak mungkin bisa bekerja tanpa adanya program yang telah dimasukkan kedalamnya. Program ini bisa berupa suatu prosedur peng-operasian dari komputer itu sendiri ataupun pelbagai prosedur dalam hal pemrosesan data yang telah ditetapkan sebelumnya. Dan program-program inilah yang kemudian disebut sebagai software komputer atau perangkat lunak komputer.

Dalam arti yang paling luas, software komputer bisa diartikan sebagai suatu prosedur pengoperasian. Suatu acara yang ditayangkan oleh TVRI misalnya, dapat dianggap sebagai

Surabaya, 11 – 12 Oktober 20026

Page 7: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

software dari suatu peralatan televisi. Demikian pula halnya dengan musik yang telah direkam diatas kaset, data diatas kertas, serta cerita ataupun uraian yang ada didalam sebuah buku.

Secara prinsip, komputer hanyalah merupakan sebuah alat; Alat yang bisa digunakan untuk membantu manusia dalam menyelesaikan pekerjaannya. Untuk bisa bekerja, alat tersebut memerlukan adanya program dan manusia. Pengertian manusia kemudian dikenal dengan istilah brainware (perangkat manusia).

Konsep hardware - software - brainware adalah merupakan konsep tri-tunggal yang tidak bisa dipisahkan satu dengan lainnya. Untuk tahap pertama, manusia harus memasukkan program terlebih dahulu kedalam komputer. Setelah Setelah program tersimpan didalam komputer, maka komputer baru bisa bekerja untuk membantu manusia dalam menyelesaikan persoalan ataupun pekerjaannya.

Surabaya, 11 – 12 Oktober 20027

Page 8: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

B. Dari Generasi Ke-Generasi Generasi pertama dari komputer, ditandai dengan diketemukannya tabung hampa udara sebagai alat penguat sinyal. Generasi ini kemudian diganti dengan generasi transistor, dan akhirnya timbul generasi ketiga dengan munculnya IC-Chip. Kini banyak diperdebatkan, apakah Microprocessor yang merupakan pengembangan dan peningkatan kemampuan dari IC-Chip bisa dikatakan sebagai pelopor generasi ke-empat, ataukah masih tetap pada generasi ketiga.

Alasan yang mendukung adalah, kemampuan dari Microprocessor jauh diatas IC-Chip, sedang alasan yang menolak pendapat tersebut mengatakan, bahwa konsep dasar Microprocessor masih sama dan itu hanya merupakan peningkatan dari kemampuan dari IC-Chip belaka. Dengan demikian, pada saat ini ada yang berpendapat bahwa kita sudah memasuki komputer generasi ke-empat dan bahkan kelima, tetapi ada juga yang masih berpendapat bahwa kita belum beranjak dari generasi ketiga.

a. Generasi Pertama.

Tabung hampa udara sebagai penguat sinyal, merupakan ciri khas komputer generasi pertama. Pada awalnya, tabung hampa udara (vacum-tube) digunakan sebagai komponen penguat sinyal. Bahan bakunya terdiri dari kaca, sehingga banyak memiliki kelemahan, seperti: mudah pecah, dan mudah menyalurkan panas. Panas ini perlu dinetralisir oleh komponen lain yang berfungsi sebagai pendingin.

Dan dengan adanya komponen tambahan, akhirnya komputer yang ada menjadi besar, berat dan mahal. Pada tahun 1946, komputer elektronik didunia yang pertama yakni ENIAC selesai dibuat. Pada komputer tersebut terdapat 18.800 tabung hampa udara dan berbobot 30 ton. begitu besar ukurannya, sampai-sampai memerlukan suatu ruangan kelas tersendiri.

Surabaya, 11 – 12 Oktober 20028

Page 9: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

Pada gambar nampak komputer ENIAC, yang merupakan komputer elektronik pertama didunia yang mempunyai bobot seberat 30 ton, panjang 30 M dan tinggi 2.4 M

b. Generasi Kedua.

Transistor merupakan ciri khas komputer generasi kedua. Bahan bakunya terdiri atas tiga lapis, yaitu: "basic", "collector" dan "emmiter". Transistor merupakan singkatan dari Transfer Resistor, yang berarti dengan mempengaruhi daya tahan antara dua dari tiga lapisan, maka daya (resistor) yang ada pada lapisan berikutnya dapat pula dipengaruhi. Dengan demikian, fungsi transistor adalah sebagai penguat sinyal. Sebagai komponen padat, tansistor mempunyai banyak keunggulan seperti misalnya: tidak mudah pecah, tidak menyalurkan panas. dan dengan demikian, komputer yang ada menjadi lebih kecil dan lebih murah.

Beberapa contoh komputer generasi kedua adalah: IBM Serie 1400, NCR Serie 304, MARK IV dan Honeywell Model 800. Pada gambar nampak sebuah papan rangkaian yang menggunakan transistor dan digunakan oleh Komputer MARK IV ditahun 1957 yang merupakan komputer pertama yang diproduksi di- Jepang.

Pada tahun 1960-an, komputer komersial yang memanfaatkan transistor dan digunakan secara luas mulai beredar dipasaran. Komputer IBM- 7090 buatan Amerika Serikat merupakan salah satu komputer komersial yang memanfaatkan transistor.

Surabaya, 11 – 12 Oktober 20029

Page 10: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

c. Generasi Ketiga

Konsep semakin kecil dan semakin murah dari transistor, akhirnya memacu orang untuk terus melakukan pelbagai penelitian. Ribuan transistor akhirnya berhasil digabung dalam satu bentuk yang sangat kecil. Secuil silicium yag mempunyai ukuran beberapa milimeter berhasil diciptakan, dan inilah yang disebut sebagai Integrated Circuit atau IC-Chip yang merupakan ciri khas komputer generasi ketiga. Contoh komputer generasi ini adalah: Apple Computer dan TRS Model 80 dan IBM S/360.

Pada gambar disebelah nampak, komputer IBM S/360 yang menggunakan komponen IC. Dinamakan IBM S/360 karena mampu melakukan operasi satu lingkaran penuh (360 derajat) yang maksudnya mampu melakukan proses yang dibutuhkan oleh aplikasi bisnis maupun teknik.

d. Generasi Keempat

Pada generasi ini ditandai dengan munculnya: LSI (Large Scale Integration) yang merupakan pemadatan ribuan IC kedalam sebuah Chip. Istilah chip digunakan untuk menunjukkan suatu lempengan persegi empat yang memuat rangkaian-rangkaian terpadu (integreted circuits). LSI kemudian dikembangakan dalam VLSI (Very Large Scale Integration).

Perkembangan berikutnya juga ditandai dengan munculnya microprocessor dan semi conductor. Perusahaan-perusahaan yang membuat micro-processor diantaranya adalah: Intel Corporation, Motorola, Zilog dan lainnya lagi. Dipasaran bisa kita lihat adanya microprocessor dari Intel dengan model 4004, 8088, 80286, 80386, 80486, 80586 yang lebih dikenal dengan nama: Pentium dan lainnya lagi. Sedang pabrik Motorola mengeluarkan model 6502, 6800 dan lainnya.

C. Pengertian Komputer Berdasar Golongan

Surabaya, 11 – 12 Oktober 200210

Page 11: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

a. General Purpose Computer

Komputer yang umum digunakan pada setiap hari, juga bisa disebut sebagai general-purpose computer, dimana bisa digunakan untuk menyelesaikan pelbagai variasi pekerjaaan. Komputer jenis ini dapat menggunakan pelbagai software, bermacam-macam langkah yang saling menyempurnakan, termasuk didalamnya penulisan dan perbaikan (word-processing), manipulasi fakta-fata didalam database, menyelesaikan pelbagai perhitungan ilmiah, ataupun mengontrol sistem keamanan organisasi, pembagian daya listrik serta temperatur.

Walaupun general purpose computer dapat diprogram untuk digunakan dalam beberapa fungsi, tetap mempunyai batasan-batasan dalam hal kemampuan, ukuran ataupun persyaratan. Sebagai contoh, general purpose computer tidak bisa digunakan untuk memproses perhitungan seluruh data statistik yang dibutuhkan untuk peramalan cuaca ataupun pengetesan pesawat terbang.

b. Special-purpose Computer

Special-purpose computer digunakan untuk menyelesaikan pekerjaan ataupun aplikasi khusus. Special purpose pada awalnya merupakan general-purpose, yang digunakan secara khusus dan disesuaiakan dengan konfigurasi ataupun peralatan didalamnya yang sudah dimodifikasi sedemikian rupa.

Sebagai contoh konfigurasi dari special purpose computer yang digunakan pada sistem komputer berskala besar adalah front-end processor; yang digunakan untuk mengontrol fungsi input dan output dari komputer utama. Contoh lain dari special purpose computer adalah adalah back-end processor, yang mengambil data dari storage serta meletakkan dan mengaturnya kembali kedalam storage.

Surabaya, 11 – 12 Oktober 200211

Page 12: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

Dedicated processor juga merupakan special purpose computer yang bagian dalamnya telah dirubah sedemikian rupa agar memiliki fungsi khusus. Dedicated processor dirancang sedemikian rupa agar bisa digunakan untuk menyelesaikan langkah dan proses khusus, dimana hal ini bisa ditemui pada: pelbagai robot yang digunakan pada pabrik, mesin-mesin kesehatan dipelbagai rumah sakit serta aneka video game.

D. Pengertian Komputer Menurut Kapasitasnya a. Komputer Mikro (Personal Computer)

Pada awalnya, komputer jenis ini diciptakan untuk memenuhi kebutuhan per-orangan (personal). Kebutuhan per-orangan dalam hal menyimpan ataupun memproses data, tentunya tidak sebanyak kebutuhan sebuah perusahaan. Dikarenakan hal tersebut, kemampuan dan teknologi yang dimiliki oleh Personal Komputer pada awalnya memang sangat terbatas.

Pada awalnya, memory yang dimiliki oleh sebuah personal komputer hanya berkisar antara 32 hingga 64 KB (Kilo Byte). Tetapi dalam perkembangannya, banyak personal komputer yang kini memiliki memory hingga 8 ataupun 32 MB (Mega Byte). Komputer personal model Apple II merupakan pelopor dari kelahiran personal komputer yang ada pada saat sekarang.

Karena harganya relatif murah, bentuknya kecil dan teknologi yang dimiliki diangap sudah memadai, maka personal komputer menjadi begitu cepat populer. Personal komputer kini tidak hanya digunakan oleh perorangan tetapi pada akhirnya banyak digunakan oleh perusahaan untuk menyelesaikan pelbagai masalah yang ada diperusahaan.

Surabaya, 11 – 12 Oktober 200212

Page 13: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

Pada umumnya personal komputer hanya mampu bekerja untuk melayani satu orang pemakai (single-user), tetapi dalam perkem bangannya dengan menggunakan konsep LAN (Local Area Network) personal komputer juga dapat digunakan untuk melayani banyak pemakai dalam saat yang bersamaan (konsep multi user).

Pada konsep LAN yang merupakan sebuah jaringan, terdapat sebuah otak/pengendali yang disebut sebagai server dan beberapa anggota yang disebut sebagai terminal. Secara pisik bentuk server ataupun terminal tidak berbeda dengan bentuk sebuah PC. Hubungan server dan terminal, dilakukan melalui sebuah kabel. Data yang berasal dari pelbagai terminal, akan disimpan secara terpusat oleh server.

Personal komputer pada saat ini juga mampu melakukan komunikasi data dengan personal komputer lainnya ditempat yang saling berjauhan. Dengan menggunakan sebuah modem, maka data yang berasal dari komputer akan dirubah menjadi gelombang suara, dan suara inilah yang kemudian dikirim melalui kabel telpon. Modem yang ada ditempat lain, akan menangkap gelombang suara ini dan merubah bentuknya menjadi gelombang yang bisa diproses oleh komputer.

Perbedaan konsep antara LAN dan Modem adalah, LAN hanya bisa digunakan untuk tempat yang tidak terlalu jauh (saat ini diartikan sebagai: tidak lebih dari 2.000 meter), dan biasanya masih terbatas dalam satu gedung. Selebihnya diperlukan modem. Kabel yang digunakan pada LAN adalah kabel digital, sehingga data bisa langsung dikirim tanpa perlu merubah bentuk seperti halnya yang dilakukan oleh modem.

Surabaya, 11 – 12 Oktober 200213

Page 14: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

Jenis PC lainnya yang tengah populer pada saat ini adalah: note-book. Note-book menggunakan silikon chip yang sangat tipis yang merupakan lambang kemajuan teknologi. Komputer jenis ini mempunyai bentuk yang sangat kecil apabila dibanding dengan jenis komputer lainnya. Note-book biasanya dilengkapi dengan portable battery-power, sehingga tanpa adanya listrik-pun note-book masih bisa dioperasikan. Dengan demikian, komputer jenis ini sangat cocok digunakan bagi para pemakai yang sering berpergian.

Karena menggunakan monitor jenis LCD (Liquid Cristal Display), note-book mempunyai bentuk yang sangat tipis. Disamping itu, note-book juga memiliki fasilitas disket ataupun hard-disk seperti hal-nya komputer PC pada umumnya. Internal memory yang dimiliki juga sangat besar, dimulai dari 4 MB yang kemudian bisa dikembangkan hingga 64 MB.

Note-book juga mampu melakukan komunikasi data dengan sesama note-book ataupun dengan komputer lainnya dilokasi yang saling berjauhan.

.

b. Komputer Mini

Komputer mini mempunyai kemampuan berapa kali lebih besar jika dibanding dengan personal komputer. Hal ini disebabkan karena micro-pocessor yang digunakan untuk memproses data memang mempunyai kemampuan jauh lebih unggul jika dibanding dengan micropocessor yang digunakan pada personal komputer. Ukuran pisiknya dapat sebesar almari kecil.

Komputer mini pada umumnya dapat digunakan untuk melayani lebih dari satu pemakai (multi user). Dalam sistem multi user ini, pada akhirnya personal komputer banyak digunakan sebagai terminal yang berfungsi untuk memasukkan data. Contoh Komputer mini: IBM AS-400

c. Komputer Mainframe

Surabaya, 11 – 12 Oktober 200214

Page 15: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

Ciri utama yang membedakan pengertian antara mini komputer dengan mainframe adalah, mainframe memiliki processor lebih dari satu. Dengan demikian, dari segi kecepatan proses mainframe jauh lebih cepat jika dibanding dengan mini komputer.

Kecepatan kerja mainframe mencapai 1 milyar operasi perdetik (1 giga operations per-seconds = 1 GOPS). Kecepatan semacam ini sangatlah diperlukan, karena mainframe biasanya digunakan untuk memproses data-data yang mempunyai kapasitas sangat besar, dan disamping itu, mainframe biasanya juga digunakan oleh puluhan hingga ratusan pemakai yang bekerja secara bersama-sama.

Suatu teknik atau cara yang memungkinkan banyak orang pada pelbagai terminal dapat meng-access pada satu komputer pada saat yang bersamaan, dikenal dengan time-sharing. Didalam pengertian time sharing sendiri, CPU dalam memberikan perhatiannya sebenarnya hanya kepada satu pemakai pada satu saat, dan kemudian dilanjutkan dengan pemakai berikutnya. Tetapi karena memiliki kecepatan yang sangat tinggi, maka jarak pemakaian waktu antara satu pemakai dan lainnya tidaklah nampak secara jelas.

Mainframe secara umum membutuhkan ruangan khusus dimana faktor lingkungan yang terdiri dari temperatur, kelembaban udara ataupun gangguan asap dapatlah dimonitor. Hal ini disebabkan karena nilai komputer serta nilai dari informasi yang tersimpan didalamnya sangatlah mahal. Ruangan yang ada biasanya juga dilengkapi dengan pelbagai sistem pengamanan elektronik.

Surabaya, 11 – 12 Oktober 200215

Page 16: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

d. Super-komputer

Sesuai dengan namanya, super komputer memiliki ciri khas, yaitu kecepatan proses yang tinggi serta memiliki kemampuan menyimpan data yang jauh lebih besar apabila dibanding dengan main-frame. Harga super komputer sangatlah besar dan mahal. Salah satau contoh super komputer adalah Cray-2. Pengguna super komputer biasanya negara-negara yang sudah maju ataupun perusahaan-perusahaan yang sangat besar, seperti misalnya industri pesawat terbang Nurtanio.

Dikarenakan kemampuannya yang sangat luar biasa dan diantaranya memiliki kemampuan untuk membaca/menyadap pelbagai data dari satelit, maka untuk pembelian sebuah super komputer harus mendapat persetujuan secara langsung dari presiden. Permintaan Indonesia pernah ditolak oleh presiden Amerika ketika Nurtantio menginginkan untuk membeli sebuah super komputer dari Amerika.

E. Pengertian Komputer Menurut Data Yang Diolah Data yang diolah oleh komputer jenisnya sangatlah banyak. Ada data yang berujut gambar, suara, huruf, angka, keadaan, simbol ataupun yang lainnya lagi. Dalam hal ini, tidak setiap komputer bisa mengolah seluruh data yang ada. Ada komputer yang hanya bisa mengolah suara, ataupun hanya bisa mengolah gambar ataupun hanya mengolah huruf dan angka saja. Walaupun demikian, ada pula komputer yang bisa mengolah beberapa data secara bersama-sama.

a. Digital Komputer

Merupakan suatu jenis komputer yang bisa digunakan untuk mengolah data yang bersifat kwantitatif (sangat banyak jumlahnya). Data dari digital komputer biasanya berupa simbol yang memiliki arti tertentu, misalnya: simbol aphabetis yang digambarkan dengan huruf A s/d Z ataupun a s/d z, simbol numerik yang digambarkan dengan angka 0 s/d 9 ataupun simbol-simbol khusus, seperti halnya: ? / + * & !.

Surabaya, 11 – 12 Oktober 200216

Page 17: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

b. Komputer Analog.

Merupakan suatu jenis komputer yang bisa digunakan untuk mengolah data kualitatif. Data yang ada bukan merupakan simbol, tetapi masih merupakan suatu keadaan. Seperti misalnya: keadaan suhu ataupun kelembaban udara, ketinggian ataupun kecepatan adalah merupakan suatu keadaan yang oleh komputer kemudian ditetapkan sehingga menjadi suatu ukuran.

Analog banyak dipakai dipabrik-pabrik yang tujuannnya untuk mengontrol ataupun menghasilkan suatu produk. Pengertian komputer analog lebih mendekati dengan robotic ataupun mesin otomatis.

c. Hibrid Komputer

Merupakan jenis komputer yang bisa digunakan untuk mengolah data yang bersifat kuantitatif ataupun kualitatif. Hibrid komputer juga bisa dikatakan sebagai gabungan dari analog dan digital komputer. Komputer jenis ini banyak digunakan oleh pelbagai rumah sakit yang digunakan untuk memeriksa keadaan tubuh dari pasien, yang pada akhirnya, komputer bisa mengeluarkan pelbagai analisa yang disajikan dalam bentuk gambar, grafik ataupun tulisan.

F. Konsep Dasar Komputer

Dari apa yang telah diuraikan dapatlah dilihat, bahwa pengertian komputer bisa ditinjau dari bermacam-macam sudut, seperti misalnya: tinjauan komputer dari generasi ke-generasi, tinjauan komputer dari sudut kapasitasnya, dan disamping itu, komputer juga dapat ditinjau dari jenis data yang diolahnya.

Surabaya, 11 – 12 Oktober 200217

Page 18: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

Walaupun demikian, secara prinsip sebuah komputer selalu memiliki sebuah konsep dasar seperti yang nampak pada gambar. Komputer apapun jenisnya, selalu memiliki suatu peralatan yang disebut sebagai: Input device, Central Processing Unit, Output Device dan External memory.

a. Input Device

Input device bisa diartikan sebagai peralatan yang berfungsi untuk memasukkan data ke-dalam komputer. Jenis input device yang dimiliki oleh komputer cukup banyak.

Dalam kehidupan sehari-hari, mata manusia juga bisa diartikan sebagai salah satu input device yang berfungsi untuk memasukkan data kedalam otak manusia. Membaca bisa diartikan sebagai memasukkan data (kedalam otak manusia) melalui mata.

b. Central Processing Unit (CPU)

Bagian ini berfungsi sebagai pemegang kendali dari jalannya kegiatan komputer, dan dikarenakan itu, CPU juga disebut sebagai otak dari komputer. Selain dari pada itu, CPU juga berfungsi sebagai tempat untuk melakukan pelbagai pengolahan data. Pekerjaan pengolahan data diantaranya: mencatat, melihat, membaca, membandingkan, menghitung, mengingat, mengurutkan maupun membandingkan.

Dalam bekerja, fungsi dari CPU terbagi menjadi :

• Internal Memory/Main Memory, berfungsi untuk me-nyimpan data dan program.

• ALU (Arithmatic Logical Unit), untuk melaksanakan perbagai

Surabaya, 11 – 12 Oktober 200218

Page 19: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

macam perhitungan. • Control Unit, bertugas untuk

mengatur seluruh operasi komputer

CPU juga disebut sebagai microprocessor. Dimana untuk bekerja microprocessor dipengaruhi oleh kapasitas pemrosesan Bit-nya dan juga frekwensi kerjanya. Kapasitas bit untuk Microprocessor ada 8 bit, 16 bit, 32 bit dan 64 bit. Kemampuan CPU dilihat dari bit-nya, bila suatu processor berkapasitas pemrosesan 8 bit, dapat diartikan bahwa pemrosesan tersebut memiliki 8 pintu masuk untuk menerima bit-bit instruksi. Dengan demikian, processor 16 bit, dapat memproses kira-kira 2 kali lebih cepat dari yang 8 bit.

Faktor lain yang mempengaruhi kecepatan kerja microprocessor adalah frekwensi kerja komputer. Ada CPU yang mempunyai frekwensi 4.77 Mhz (mega hertz = juta hertz), 8 Mhz, 16 Mhz, 40 Mhz, 50 Mhz dan lain sebagainya. Semakin tinggi frekwensi yang dimilikinya, semakin tinggi pula kecepatan memprosesnya.

Microprocesor 8 bit adalah 8088, biasa digunakan untuk komputer PC-XT dengan frekwensi 4.77 Mhz. Microprocessor 16 bit adalah 80286, dipasang untuk type PC-AT dengan frekwensi antara 8 Mhz hingga 20 Mhz. Microprocessor 32 bit adalah 80386 dan 80486, kedua jenis microprocessor ini dipasang pada jenis PC-ATgan frekwensi antara 20 Mhz hingga 40 MHZ. Kini beredar microprocessor jenis 80586 (pentium) dan 80686

Microprocessor 586 dikenal dengan nama pentium, telah dirilis sejak bulan Maret 1993. Banyak perubahan dan peningkatan pada processor ini. Kecepatan yang dimiliki adalah 112 MIPS (Million Instruction PerSecond) atau meningkat 5 kali lebih cepat dari generasi 486.

Surabaya, 11 – 12 Oktober 200219

Page 20: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

c. Output Device

Output device bisa diartikan sebagai peralatan yang berfungsi untuk mengeluarkan hasil pemrosesan ataupun pengolahan data yang berasal dari CPU kedalam suatu media yang dapat dibaca oleh manusia ataupun dapat digunakan untuk penyimpanan data hasil proses. Jenis output device yang dimiliki oleh komputer cukup banyak.

Dalam kehidupan sehari-hari, menulis, juga bisa dikatakan sebagai suatu cara untuk mengeluarkan hasil pemikiran kedalam suatu media sehingga bisa dibaca oleh manusia. Media yang dipergunakan untuk menulis bisa berupa kertas ataupun bentuk lainnya.

d. External Memory

External memory bisa diartikan sebagai memory yang berada diluar CPU. Juga disebut sebagai Secondary Storage ataupun Backing Storage ataupun Memory Cadangan yang berfungsi untuk menyimpan data dan program. Data dan program yang tersimpan didalam external memory, agar bisa berfungsi data dan program tersebut harus dipindahkan terlebih dahulu kedalam internal memory. Jenis external memory cukup banyak.

Dalam kehidupan sehari-hari, buku, kertas, gambar foto, ataupun rekaman suara, juga bisa dikatakan sebagai external memory dari manusia. Dikatakan external memory karena berfungsi sebagai tempat untuk menyimpan data yang terletak diluar otak manusia. Agar data-data yang ada didalam external memory tersebut bisa berfungsi bagi manusia, maka data-data tersebut, juga harus dipindahkan terlebih dahulu kedalam internal memory, misalnya dengan cara membaca.

G. Pengertian Data dan Informasi

Surabaya, 11 – 12 Oktober 200220

Page 21: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

Data adalah sesuatu yang belum mempunyai arti bagi penerimanya dan masih memerlukan adanya suatu pengolahan. Data bisa berujut suatu keadaan, gambar, suara, huruf, angka, matematika, bahasa ataupun simbol-simbol lainnya yang bisa kita gunakan sebagai bahan untuk melihat lingkungan, obyek, kejadian ataupun suatu konsep.

Informasi merupakan hasil pengolahan dari sebuah model, formasi, organisasi, ataupun suatu perubahan bentuk dari data yang memiliki nilai tertentu, dan bisa digunakan untuk menambah pengetahuan bagi yang menerimanya. Dalam hal ini, data bisa dianggap sebagai obyek dan informasi adalah suatu subyek yang bermanfaat bagi penerimanya. Informasi juga bisa disebut sebagai hasil pengolahan ataupun pemrosesan data.

Data bisa merupakan jam kerja bagi karyawan perusahaan. Data ini kemudian perlu diproses dan diubah menjadi informasi.

Jika jam kerja setiap karyawan kemudian dikalikan dengan nilai per-jam, maka akan dihasilkan suatu nilai tertentu. Jika gambaran penghasilan setiap karyawan kemudian dijumlahkan, akan menghasilkan rekapitulasi gaji yang harus dibayar oleh perusahaan. Penggajian merupakan informasi bagi pemilik perusahaan. Informasi merupakan hasil proses dari data yang ada, atau bisa diartikan sebagai data yang mempunyai arti. Informasi akan membuka segala sesuatu yang belum diketahui

Surabaya, 11 – 12 Oktober 200221

Page 22: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

H. Hirarchi Penyajian Data

Pengertian data yang diolah oleh komputer, cara penyajiannya dapat dibagi dalam beberapa tingkatan / hirarchi, yaitu :

a. Byte/Karacter

Merupakan satuan data paling kecil. Karakter bisa berbentuk huruf (A s/d Z, atau a s/d z), berbentuk angka (0 s/d 9), ataupun berbentuk tanda baca lainnya lagi.

b. Field

Merupakan kumpulan dari karakter-karakter yang membentuk suatu arti tertentu; Misalnya, Field untuk Nomor Mahasiswa, Field untuk Nama Mahasiswa, Field untuk Mata Pelajaran dan lainnya.

c. Record

Merupakan kumpulan dari field-field yang membentuk sebuah arti. Misalkan kumpulan field NIRM, NAMA MATERI PENDIDIKAN pada akhirnya membentuk sebuah record.

d. File

File merupakan kumpulan dari record-record . Dengan demikian, hirarchi penyajian data dengan urutan dari kecil kebesar adalah sebagai berikut :

Byte/Character -> Field --> Record --> File

I. Sistem Bilangan

Surabaya, 11 – 12 Oktober 200222

Page 23: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

Pada dasarnya, komputer baru bisa bekerja kalau ada aliran listrik yang mengalir didalamnya. Dalam hal ini, aliran listrik yang mengalir ternyata memiliki dua kondisi, yaitu kondisi ON yang berarti ada arus listrik, dan kondisi OFF yang berarti tidak ada arus listrik. Berdasar hal tersebut kemudian dibuat perjanjian, bahwa kondisi ON diberi lambang 1 (angka satu), dan kondisi OFF diberi lambang 0 (angka nol).

Seluruh data yang berupa angka, abjad ataupun special character kemudian ditulis dalam rangkaian kombinasi 0 dan 1, misal angka 5 ditulis dalam bentuk 000101 dan huruf D ditulis dalam 110100. Pabrik komputer membuat seluruh terjemahan ini dalam bentuk rangkaian elektronik yang tersimpan didalamnya.

Dengan demikian, seandainya kita kemudian memasukkan tulisan yang berbunyi: I LOVE YOU melalui keyboard, tulisan ini secara otomatis akan diterjemahakan kedalam bentuk 1 dan 0 oleh komputer.

Agar bisa dibaca oleh manusia, hasil terjemahan ini kemudian diterjemahkan kembali kedalam bentuk dan huruf ataupun angka seperti asalnya, dan kemudian dikeluarkan melalui layar monitor.

Karena hanya memiliki 2 angka dasar, yaitu 0 dan 1, maka sistem bilangan semacam ini kemudian dikenal sebagai sistem bilangan biner (binary number). Untuk perbandingan, sistem bilangan yang telah kita kenal disebut sebagai sistem bilangan desimal; Disebut desimal karena memiliki angka dasar yang berjumlah 10, yaitu 0, 1, 2, 3, 4, 5, 6, 7, 8, dan 9.

a. Sistem Bilangan Desimal

Sistem bilangan yang selama ini kita kenal adalah sistem bilangan desimal, dimana sistem bilangan desimal ini memiliki angka dari 0 hingga 9, dengan jumlah bilangan mencapai 10 buah. Dalam contoh terlihat, bahwa angka 3675 bisa diartikan sebagai (5X101) + (7X101)

Surabaya, 11 – 12 Oktober 200223

Page 24: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

+ (6X102) + (3X103). Angka 10 merupakan jumlah angka dasar yang dimiliki oleh bilangan desimal.

b. Sistem Bilangan Binary

Karena sistem bilangan binary hanya memiliki angka 0 dan 1 saja, maka nilai 11010 dalam bilangan biner dapat diartikan sebagai: (0X20) + (1X21) + (0X22) + (1X23) + (1X24) = 26. Angka 2 merupakan jumlah angka dasar yang dimiliki oleh bilangan biner

Untuk mengkonversikan bilangan desimal ke-binary, maka langkah yang bisa dilakukan adalah : a. Apabila bilangan tersebut bisa dibagi dengan 2, maka hasilnya ditulis 0 pada sisi sebelah kanan (lihat gambar disebelah).Tetapi apabila tidak, maka angka 1 yang ditulis.

Untuk melakukan penambahan pada bilangan binary, langkah yang dilakukan adalah sama dengan langkah penambahan pada bilangan desimal. Karena angka tertinggi yang dimiliki hanyalah angka 1, maka seandainya pada penjumlahan tersebut mehasilkan angka 2, maka akan ditulis 0 dengan catatan masih menyimpan 1. Seandainya pada penjumlahan menghasilkan angka 3, maka akan ditulis 1 dan masih menyimpan 1 (lihat contoh).

Apabila dalam melakukan pengurangan ternyata angka yang dimiliki masih kurang nilainya, maka bisa diambil langkah dengan cara meminjam angka yang berada disebelah kiri. 1 angka apabila dipinjam/dipindah keposisi kanan, akan mempunyai nilai 2 (lihat contoh).

Langkah yang dilakukan pada saat perkalian pada bilangan binary juga sama dengan langkah yang dilakukan pada bilangan desimal. Hal ini bisa dilihat pada contoh yang ada.

Surabaya, 11 – 12 Oktober 200224

Page 25: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

Prinsip pembagian pada bilangan binary juga tidak berbeda dengan prinsip pembagian pada bilangan desimal. Hal ni bisa terlihat pada contoh yang ada.

c. Sistem Bilangan Octal dan Hexadesimal

Selain menggunakan sistem binary, komputer juga menggunakan sistem bilangan octal, dimana mempunyai jumlah bilangan dasar sebanyak 8 dan sistem bilangan hexa-desimal yang mempunyai bilangan dasar sejumlah 16. Susunan angka yang dimiliki kedua bilangan, seperti yang nampak pada gambar.

Walaupun demikian, komputer tetap bekerja dengan menggunakan sistem binary. Angka dasar 8 dan 16 hanya dibutuhkan saat mengubah dari atau menjadi binary, dan dengan cara ini memungkin penulisan menjadi lebih ringkas dari nilai sebenarnya yang ada didalam memory komputer. Octal senantiasa ditulis dalam tiga angka dan hexa desimal dalam empat angka.

Sistem bilangan Octal memiliki angka sebanyak 8 buah, yaitu dari angka 0 hingga 7. Untuk membuat konversi bilangan dari Oktal ke-desimal, digunakan angka dasar 8, karena sesuai dengan jumlah angka yang dimilikinya.

Karena jumlah angka yang dimiliki oleh bilangan ini jumlahnya 16, maka angka 16 inilah yang dijadikan dasar untuk konversi ataupun perhitungan-perhitungan lainnya.

d. System BCD

Pada awalnya, system BCD (Binary Coded Decimal), menggunakan 4-bit guna menyajikan bilangan desimal. Setiap digit didalam bilangan desimal, akan dirubah kedalam bentuk 4-bit binary. sebagai contoh, bilangan 3752 didalam bilangan desimal, akan diubah menjadi 0011 0111 0101 0010.

Surabaya, 11 – 12 Oktober 200225

Page 26: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

Karena dianggap tidak efisien, yaitu hanya sanggup menampung data sebanyak 24 atau 16 karakter yang berbeda, maka sistem BCD ini kemudian disempurnakan dengan menggunakan 6-bit guna menyajikan data yang ada. Dengan demikian, data yang disajikan akan menjadi lebih banyak lagi, yaitu 26

atau sejumlah 64 karakter yang berbeda-beda.

f. System EBCDIC

EBCDIC (Extended Binary Coded Decimal Interchange Code) menggunakan 8-bit guna menyajikan data yang ada. Dengan adanya 8-bit ini, tentu saja jumlah data yang disajikan menjadi lebih besar, yaitu sebanyak 28 atau 256 kombinasi. 4 karakter yang berada disebelah kiri disebut sebagai zone-bits, dan 4 karakter sisanya disebut sebagai numerik bits. Kode-kode ini banyak digunakan oleh komputer IBM ataupun peralatan yang menggunakan standart IBM.

g. System ASCII

ASCII (American Standart Code for Informa tion Interchange), menggunakan 7-bit guna menyajikan beberapa data. Sistem ini digunakan oleh beberapa pabrik komputer secara bersama-sama sehingga menghasilkan suatu standart yang baku untuk semua jenis komputer. Walaupun ASCII menggunakan kode 7-bit , tetapi dalam pelaksanaannya tetaplah 8-bit yang digunakan. Sebab masih menggunakan extra bit yang digunakan untuk mendeteksi pelbagai kesalahan yang timbul.

Pertanyaan Ulangan :

1.Bagaimana definisi/pengertian saudara mengenai komputer ? 2.Kenapa komputer memerlukan adanya program dan apakah yang dimaksud dengan program itu sendiri ? 3.Apa fungsi brianware pada pengertian komputer ?

Surabaya, 11 – 12 Oktober 200226

Page 27: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

4.Komputer generasi keberapakah yang ada pada saat ini, dan berikan alasan kenapa saudara memberikan jawaban tersebut. 5.Sebutkan contoh komputer generasi kedua berikut teknologi yang digunakan. 6.Dibanding dengan tabung hampa udara, maka transistor memiliki banyak keunggulan, sebutkan keunggulan-keunggulan tersebut. 7.Sebuah komputer bisa disebut sebagai PC, MINI ataupun MAINFRAME karena faktor apa ? 8.Apa yang dimaksud dengan single user dan multi user ? 9.Komputer PC yang ada dilaboratorium dan digunakan untuk praktikum para mahasiswa, bisa dikatagorikan sebagai single ataukah multi user ?, berikan alasan saudara. 10.Dibanding dengan Mini ataupun Mainframe, komputer PC ternyata mempunyai banyak keunggulan, sebutkan tiga keunggulan tersebut. 11.Apa kelemahan PC yang paling mendasar jika dibanding dengan Mini ataupun Mainframe ? 12.Data didalam kehidupan sehari-hari sebenarnya sangat banyak dan beragam, bisakah saudara menceritakan pengertian data tersebut ? 13.Jenis data yang bagaimana yang bisa diolah oleh komputer, dan sebutkan pula jenis komputer yang harus digunakan untuk mengolah data-data tersebut. 14.Konsep robot itu merupakan perkembangan dari komputer jenis apa dan biasanya digunakan untuk apa ? 15.Sebutkan bagian-bagian yang paling mendasar dari sebuh komputer. 16.Sebutkan pula bagian-bagian dari Central Processing Unit. 17.Arithmatic Logical Unit itu berfungsi untuk apa ? 18.Media disket yang biasa kita gunakan, termasuk input, output ataukah input/output device ?, berikan alasan saudara. 19.Kenapa disket diperlukan oleh sistem komputer ? 20.Dapatkah saudara menerangkan tentang perbedaan pengertian antara Field dan File, Bit dan Byte ? 21.Terangkan, kenapa konsep binary, oktal dan hexa desimal digunakan dalam sistem komputer. 22.Dapatkah saudara mengkonversikan bilangan 125 (desimal) kedalam binary ? 23.Kenapa 4-bit BCD dikatakan tidak efisien ? 24.Dapatkah saudara menceritakan tentang pengertian dari ASCII dan EBCDIC ? 25.Dimana letak perbedaan antara ASCII dan EBCDIC ?

Surabaya, 11 – 12 Oktober 200227

Page 28: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

3. ALGORITHME DAN PEMROGRAMAN

Surabaya, 11 – 12 Oktober 200228

Page 29: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

A. SISTEM KOMPUTERKomputer adalah suatu alat elektronika yang mempunyai kemampuan untuk melakukan perhitungan dan membuat keputusan logika dengan waktu yang jauh lebih cepat dari yang dapat dilakukan oleh manusia. Menurut data, pada saat ini sebuah komputer pribadi dapat melakukan sekitar sepuluh juta penjumlahan dalam waktu satu detik.Komputer memproses data dengan menggunakan kendali dari sekumpulan instruksi yang disebut dengan program komputer. Program komputer ini memandu kerja dari komputer yang secara berstruktur disusun oleh orang yang disebut denganprogrammer. Berbagai peralatan terdapat di dalam suatu sistem komputer yang disebut dengan perangkat keras (hardware, atau sering disingkat dengan h/w), di antaranya adalah papan ketik (keyboard), layar (monitor), disk, memori, dan unit pemroses (CPU=Central ProcessingUnit). Sedangkan program untuk menjalankan suatu komputer disebut dengan perangkat lunak (software, atau sering disingkat dengan s/w). Dengan demikian, sistem komputer terdiri dari perangkat keras dan perangkat lunak, serta manusia yang mengoperasikan maupun memrogram (brainware, atau sering disingkat dengan b/w).

Perangkat keras komputer terdiri dari enam unit (logika) yang saling terpadu membentuk suatu organisasi komputer, yaitu:

• Unit input , yang bertugas untuk menerima masukan informasi (data dan/atau program komputer) dari berbagai alat masukan (input devices) dan menempatkannya ke unit lain sedemikian rupa sehingga dapat diproses.

• Unit output , yang mengambil informasi yang telah diproses oleh komputer dan menempatkannya pada berbagai alat output (output devices) sehingga dapat digunakan oleh pengguna.

• Unit memori , yang menampung masukan dari unit input, sehingga informasi tersebut selalu tersedia untuk diproses pada saat dibutuhkan. Unit ini juga menampung hasil proses komputer sampai diperlukan oleh unit output. Unit memori ini sering disebut dengan memori utama.

• ALU=Arithmetic and Logic Unit , yang bertanggung jawab untuk melakukan perhitungan seperti penjumlahan, pengurangan, perkalian, dan pembagian. Unit ini juga berisi mekanisme untuk mengambil keputusan yang harus dilakukan oleh komputer, misalnya membandingkan dua item (nilai), dan sebagainya.

• CPU=Central Processing Unit , yang merupakan koordinator dan penanggung jawab bagi operasi unit-unit lainnya. CPU menyampaikan pada unit input, kapan informasi harus dibaca ke dalam unit memori, dan pada unit output, kapan harus mengirim informasi dari memori ke alat-alat output.

• Secondary storage unit, yaitu unit dengan kapasitas yang sangat luas untuk menyimpan program dan/atau data (misalnya disk).

B. ALGORITME DAN PEMROGRAMAN KOMPUTER

Pemrograman komputer sangatlah sulit dilakukan, terutama bagi orang yang baru pertama kali melakukannya. Oleh karena itu, pemrograman komputer dilakukan secara sistematis, yang dimulai dengan merancang atau mendisain langkah-langkah yang tepat yang menjelaskan jawaban dari suatu masalah yang diberikan. Langkah-langkah yang disusun secara berstruktur dan terurut untuk menjawab suatu persoalan dengan menggunakan bahasa manusia inilah yang sering disebut dengan algoritme. Karena langkah-langkah atau instruksi dalam bentuk algoritme ini akan diberikan kepada komputer untuk diproses, maka harus dibuat dengan menggunakan bahasa pemrograman komputer tertentu, yang hasilnya disebut dengan program komputer.

Sebuah algoritme dicatat dalam bentuk narasi (narrative description) atau diagram alir (flowchart). Metode narasi sangat sederhana dimana setiap langkah-langkah penyelesaian masalah dalam suatu algoritme ditulis dengan menggunakan kalimat-kalimat yang mudah dipahami. Berikut adalah contoh algoritme untuk menjumlahkan dua buah bilangan bulat yang dituliskan dalam bentuk narasi:

ALGORITME 1a. MENJUMLAHKAN DUA BILANGAN BULAT

Surabaya, 11 – 12 Oktober 200229

Page 30: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

C. BAHASA PEMROGRAMAN KOMPUTER- PEMROGRAMAN C

SEJARAH C

Bahasa pemrograman C disusun berdasarkan dua bahasa terdahulu, yaitu BCPL dan B. BCPL dikembangkan pada tahun 1967 oleh Martin Richards sebagai bahasa untuk menulis perangkat lunak sistem operasi dan kompilator (compiler). Ken Thompson memodelkan beberapa fitur di dalam bahasa B bersama-sama dengan rekan-rekannya yang menggunakan bahasa BCPL untuk membuat sistem operasi UNIX yang pertama di Bell Laboratories pada tahun 1970 dengan menggunakan komputer DEC PDP-7.

Bahasa C dikembangkan lebih lanjut dari bahasa B oleh Dennis Ritchi di Bell Laboratories dan pertama kali diimplementasikan dalam komputer DEC PDP-11 pada tahun 1972 yang menggunakan sistem operasi UNIX. Pada perkembangannya saat ini, hampir semua sistem operasi baru ditulis dalam C atau C++, dan telah menjadi bahasa pemrograman yang populer. C yang pertama kali muncul ini saat ini dikenal dengan nama "C tradisional" yang dipublikasikan oleh Kernighan dan Ritchi pada tahun 1978. Dalam perkembangannya telah muncul C dalam berbagai versi, antara lain ANSI C, Borland C, Turbo C, dan sebagainya.

TAHAPAN PEMROGRAMAN C

Pemrosesan program C umumnya melalui lima tahapan, yaitu edit, preprocess/compile,link, load, dan execute. Setiap tahap dilakukan satu per satu (bila menggunakan UNIX), atau ada beberapa tahap yang dapat digabungkan (misalnya menggunakan Turbo C dimana empat tahap terakhir dapat dilakukan dalam satu waktu sekaligus). Berikut adalah penjelasan dari setiap tahapan:

1. Tahap edit adalah proses penulisan program dengan menggunakan program editor dan kemudian disimpan ke dalam penyimpanan sekunder, misalnya disk. File program C diberi nama dengan menambahkan ekstensi .c. Dua program editor tersedia di dalam UNIX, yaitu vi dan emacs; sedangkan jika menggunakan Borland, Turbo, atau yang sejenis, program editor telah tersedia di dalamnya dalam satu paket.

2. Tahap selanjutnya adalah mengkompilasi program, dimana kompilator akan menerjemahkan program C yang telah ditulis ke dalam kode bahasa mesin (sering disebutobject code = .obj). Di dalam sistem C, bagian program yang disebut preprocessor (dipanggil melalui preprocessor directives) secara otomatis diproses sebelum tahap penerjemahan dimulai.

3. Proses link dilakukan untuk mengkombinasikan kode obyek (obj) dengan pustaka C yang tersedia agar menghasilkan file program lengkap yang dapat dieksekusi oleh komputer. Di dalam UNIX, proses kompilasi dan link dilakukan bersamaan dengan menggunakan program yang bernama cc dan menghasilna file dengan ekstensi .out. Pada IBM PC, file yang dihasilkan mempunyai ekstensi .exe.

4. Tahap selanjutnya adalah memanggil file program hasil langkah (3) ke dalam memori untuk dapat dijalankan oleh komputer.

5. Tahap terakhir adalah mengeksekusi program tersebut.

STRUKTUR PROGRAM C

Perhatikan contoh program C di bawah ini.

/* PROGRAM MENCARI BILANGAN TERBESAR DARI 2 BILANGAN BULAT */

Surabaya, 11 – 12 Oktober 200230

Page 31: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

#include <stdio.h> /* preprocessor directives */int maksimum(int, int); /* prototype functions */void tulis(int);

main() { /* main function */ int Nilai1, Nilai2, NilaiMaks; /* symbolic variables */ printf("\nKetikkan dua bilangan bulat : "); scanf("%d %d", &Nilai1, &Nilai2);

NilaiMaks = maksimum(Nilai1, Nilai2); /* function call */

tulis (NilaiMaks); return 0;}

int maksimum(int x1, int x2) { /* user defined function */ if (x1>x2) return x1; else return x2;}

void tulis (int x) { /* user defined function */ printf("\nHasilnya adalah : %d", x); }

Di dalam program C, suatu aksi dilakukan dengan suatu ekspresi (expression), misalnya 'hasil = 9'. Ekspresi yang diakhiri dengan titik-koma (;) membentuk pernyataan (statement) seperti contoh berikut:

int Nilai; /* declaration statement */Nilai = 4 + 5; /* assignment statement */

Pernyataan-pernyataan dapat dikelompokkan secara logika menjadi suatu fungsi (function). Setiap program C harus mengandung sedikitnya sebuah fungsi, yang disebut dengan main(). Pernyataan pertama yang dieksekusi oleh program adalah main().Sebuah fungsi terdiri dari empat bagian, yaitu tipe kembali (return type), nama fungsi (function name), daftar argumen (argument list), dan tubuh fungsi (function body). Tiga bagian pertama membentuk apa yang disebut dengan fungsi prototipe (prototype function). Daftar argumen dibatasi oleh sepasang kurung biasa ( … ), yang dapat terdiri dari nol atau lebih argumen yang masing-masing dipisahkan oleh tanda koma (,). Sedangkan tubuh fungsi dibatasi oleh sepasang kurung kurawal { … } dan terdiri dari baris-baris pernyataan.

PREPROCESSOR DIRECTIVES

Pada contoh program C sebelumnya, terdapat baris perintah sebagai berikut:#include <stdio.h>

File stdio.h disebut file header yang mengandung informasi berupa variabel-variabel dan fungsi-fungsi yang diperlukan untuk penggunaan librari standard (standard library). Untuk mengakses variabel atau fungsi yang ada di dalam librari standard, kita harus menyertakan file header yang sesuai ke dalam program, yaitu dengan menggunakan apa yang disebut dengan include directive. Sedangkan program yang memproses directive tersebut disebut dengan preprocessor directives.Perhatikan contoh-contoh berikut: #include <stdio.h> /* file header tersimpan di default directory */ #include <stdlib.h> #include "a:myfile.h" /* file header tersimpan di drive a: */

KATA KUNCIKata kunci (keywords) adalah kata di dalam pemrograman yang tidak dapat digunakan untuk kepentingan lain kecuali yang telah ditetapkan oleh kompilator. Dengan demikian

Surabaya, 11 – 12 Oktober 200231

Page 32: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

kita tidak dapat membuat variabel dengan nama seperti yang tercantum pada kata kunci, atau kepentingan-kepentingan lainnya. Ada 32 kata kunci di dalam C, yaitu:

auto, double, int, struct, break, else, long, switch, case, enum, register, typedef, char, extern, return, union, const, float, short, insigned, continue, for, signed, void, default, goto, sizeof, volatile, do, if, static, while

TIPE DATASetiap program umumnya mempunyai data, dan setiap data memiliki tipe tertentu. Di dalam program C terdapat dua kelompok besar tipe data, yaitu integral types (terdiri dari char, short, int, dan long) dan non-integral types (yaitu float dan double ). Penjelasan masing-masing tipe ini seperti yang diuraikan pada tabel berikut:

No. Tipe Keterangan

1.char

berisi sebuah karakter atau kode ASCII : -128 hingga +127

2.int

bilangan bulat : -32768 hingga 32767

3.short

sama dengan int

4.float

bilangan riil dengan ketelitian 10-38 hingga 10+38

5.double

bilangan riil dengan ketelitian 10-308 hingga 10+308

6.long

untuk meningkatkan kapasitas, misalnya:long int → -2147483648 hingga +2147483647

Tipe data short dan int dapat berbentuk signed maupun unsigned.

LITERAL CONSTANTSuatu nilai data dalam program kadang-kadang berbentuk literal (hanya berupa nilai, misalnya 3, 4.15, dan sebagainya) dan bersifat constant (tidak dapat diubah). Setiap literal mempunyai tipe, misalnya: 3 bertipe int, 4.15 bertipe float, dan sebagainya. Nilai literal juga bersifat nonaddressable karena alamatnya tidak dapat diakses.Ada empat tipe literal constant ini, yaitu:

1. literal integer constants , untuk menuliskan konstanta bilangan bulat. Konstanta ini dapat dituliskan dalam notasi desimal (misalnya 20, -5), oktal yang dimulai dengan karakter '0' (misalnya 024), dan heksadesimal yang dimulai dengan karakter '0X' (misalnya 0X14). Jika tidak menggunakan deklarasi tipe apapun, otomatis konstanta yang dituliskan bertipe integer bertanda (signed int). Tipe long dan unsigned dapat ditambahkan di belakang konstanta, misalnya 123U, 325UL, 2L, dan sebagainya.

2. literal floating point constants , yaitu nilai konstanta jenis bilangan riil yang dapat dituliskan dalam notasi ilmiah (misalnya 1.0E-3 yang berarti 1.0 x 10-3), dan notasi desimal (misalnya 3.14F, 0.0).

3. literal character constants , yaitu konstanta karakter yang ditulis di dalam tanda kutip ('..'), misalnya 'a', '2', ',', '' (empty character), dan sebagainya. Disamping itu, terdapat karakter yang bersifat nonprintable character (tidak dapat dicetak, melainkan hanya sebagai kode operasi tertentu), yang ditulis dengan escape sequences, seperti yang diuraikan pada tabel berikut.

Surabaya, 11 – 12 Oktober 200232

Page 33: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

No. Karakter Penjelasan

1. \n new line

2. \t horizontal tab

3. \r carriage return

4. \a alert, sound bell system

5. \\ backslash

6. \" double quote

1. string literal constants , yang terdiri dari nol atau lebih karakter, dan ditulis di dalam tanda kutip dobel (double quotes), yaitu "…..", misalnya "" (null string='\0'), "a" (sama dengan 'a','\0') , "komputer" (sama dengan 'k','o','m','p','u','t','e','r','\0'), dan sebagainya.

SYMBOLIC VARIABLESetiap program umumnya mengandung satu atau lebih variabel untuk menyimpan suatu nilai, misalnya 'Nilai1', 'Nilai2', 'NilaiMaks', 'x1', dan 'x2' contoh program C sebelumnya. Identifikasi variabel ini dibuat oleh pengguna sendiri dan bersifat addressablekarena alamatnya dapat diakses melalui program.Ada dua nilai yang berkaitan dengan sebuah variabel, yaitu Rvalue dan Lvalue. Rvalue adalah nilai data yang disimpan pada lokasi memori, sedangkan Lvalue adalah alamat dari lokasi memori dimana nilai data itu disimpan. Perhatikan contoh berikut: x = a; x = x + 1;maka x sebelah kiri disebut Lvalue, dan a serta x di sebelah kanan disebut Rvalue. Di dalam sebuah program, setiap variabel yang dibuat harus dideklarasikan dengan menentukan tipe variabel yang bersangkutan. Berikut adalah contoh deklarasi variabel: int hari, bulan, tahun; unsigned long jarak; int nilai = 0; double harga = 15.9, potongan = 0.2; float gaji; unsigned x = abs(-108);

MENULIS DAN MEMBACAFungsi standard yang sering digunakan di dalam program C untuk menuliskan nilai ke layar dan membaca nilai dari papan ketik adalah printf dan scanf. Kedua fungsi ini dapat dilihat penggunaannya pada contoh program C sebelumnya, yaitu:

printf("\nKetikkan dua bilangan bulat : ");printf("\nHasilnya adalah : %d", x);scanf("%d %d", &Nilai1, &Nilai2);

Fungsi printf yang pertama mempunyai satu argumen, yang bertujuan untuk menuliskan suatu string kalimat 'Ketikkan dua bilangan bulat :' di layar. Kalimat ini diawali dengan dengan karakter '\n' yang berarti bahwa kursor terlebih dahulu dipindahkan ke baris baru sebelum menuliskan kalimat tersebut. Sedangkan fungsi printf yang kedua mempunyai dua argumen, dimana argumen pertama adalah string kalimat yang akan ditulis ke layar, dan argumen kedua adalah nilai suatu variabel yang akan ditulis (x). Nilai x ini ditulis dengan menggunakan notasi desimal (karakter '%d' pada argumen pertama). Fungsi kedua adalah scanf yang digunakan untuk membaca nilai suatu variabel yang diketikkan dari papan ketik saat program diproses. Pada contoh ini, nilai yang dibaca

Surabaya, 11 – 12 Oktober 200233

Page 34: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

terdiri dari dua buah dan masing-masing akan dimasukkan ke dalam variabel Nilai1 dan Nilai2. Karakter '%d' menunjukkan bahwa nilai yang diketik harus dalam notasi desimal, sedangkan karakter '&' menunjukkan bahwa argumen fungsi scanf berupa reference variable (akan dibahas pada bab selanjutnya).

OPERATOR ARITMATIKAProgram komputer banyak melakukan perhitungan aritmatika, yang terdiri dari operator (+, -, *, /, dan %) dan operand . Misalnya ekspresi 3 + 7 terdiri dari operator + dan dua buah operand (disebut binary), yaitu 3 dan 7. Disamping itu, ada pula operator yang hanya diterapkan pada sebuah operand (disebut unary), misalnya -5, +12.7, dan sebagainya. Operator aritmatika beserta notasinya seperti tercantum pada tabel berikut:

Operasi Operator Ekspresi Aljabar Ekspresi C

Penjumlahan + f + 7 f + 7

Pengurangan - p - c p - c

Perkalian * bm b * m

Pembagian / x : y x / y

Modulo % r mod s r % s

Tanda kurung '( …)' digunakan untuk memberi peringkat lebih tinggi dari proses pengolahannya, misalnya a*(b+c)+c*(d-e). Untuk suatu ekspresi yang mempunyai banyak operator, maka operator yang mana yang akan diproses terlebih dahulu tergantung pada dua hal, yaitu precedence dan associativity . Precendence menentukan urutan operasi dari operator-operator dalam ekspresi majemuk. Operator dengan tingkat precedence lebih tinggi akan dievaluasi terlebih dahulu. Sedangkan associativity menentukan arah evaluasi dari operator bila mempunyai precedence yang sama, apakah dari kiri ke kanan (disimbolkan LR), atau sebaliknya (disimbolkan RL). Tabel lengkap yang memuat precedence dan associativity dari semua operator yang dikenal di dalam program C akan dicantumkan pada bagian akhir dari bab ini.

OPERATOR LOGIKA, RELASIONAL, DAN KESAMAANDisamping operator aritmatika, juga dikenal operator logika, relasional, dan kesamaan, dimana ekspresi yang dibentuk menghasilkan dua nilai khas, yaitu salah (false, dalam C diberi nilai 0) dan benar (true, dalam C bernilai 0). Operator yang dimaksud seperti terlihat pada tabel berikut:

Surabaya, 11 – 12 Oktober 200234

Page 35: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

Aljabar Operator C Contoh Arti

KESAMAAN

= = = x = = y x sama dengan y ?

!= x != y x tidak sama dengan y ?

LOGIKA

> > x > y x lebih besar dari y ?

< < x < y x lebih kecil dari y ?

>= x >= y x lebih besar atau sama dengan y ?

<= x <= y x lebih kecil atau sama dengan y ?

RELATIONAL

&& (x>0) && (x<3)

x > 0 dan x < 3

|| (x<0) | (x>3) x < 0 atau x > 3

~ ! ! (x < 0) x tidak lebih kecil dari 0

OPERATOR PENUGASAN (ASSIGNMENT OPERATOR)Pemberian suatu nilai konstanta dan/atau ekspresi ke dalam suatu variabel dibuat dengan menggunakan operator penugasan, yaitu sama dengan ('='). Operand sebelah kiri dari operator penugasan ini haruslah suatu Lvalue, dan tipe dari hasil adalah tipe dari operand sebelah kirinya. Contoh untuk hal ini adalah:

a = 5;b = a = 10;c = c + 5;

COMPOUND ASSIGNMENT OPERATORPernyataan 'c = c + 5' di atas di dalam program C dapat disederhanakan menjadi c += 5. Operator '+=' yang digunakan untuk menyederhanakan tersebut disebut dengan compound assignment operator. Semua operator aritmatika dapat digunakan untuk model seperti ini, yaitu +, -, *, /, dan %. Disamping itu juga operator lainnya seperti <<, >>, &, dan ^ dapat digunakan dengan cara yang sama. Perhatikan contoh berikut:

c += 5; /* artinya c = c + 5 */x /= 2; /* artinya x = x / 2 */jumlah %= 2; /* artinya jumlah = jumlah % 2 */

OPERATOR INCREMENT DAN DECREMENTProgram C memberikan kemudahan notasi untuk menambah atau mengurangi satu nilai pada suatu variabel bilangan bulat (int). Bentuk operator yang dapat digunakan ada dua, yaitu bentuk prefix (++var atau --var) yang berarti bahwa nilai ekspresinya sama dengan nilai variabel setelah diubah; dan bentuk postfix (var++ atau var--) yang berarti

Surabaya, 11 – 12 Oktober 200235

Page 36: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

bahwa nilai ekspresinya sama dengan nilai variabel sebelum diubah. Perhatikan penjelasan pada contoh berikut:

c = 5; /* c bernilai 5 */

c++; /* c++ tetap bernilai 5, sedangkan c selanjutnya bernilai 6 */

++c; /* ++c dan c itu sendiri bernilai 7 */

Untuk lebih jelasnya, proses program berikut dan perhatikan keluarannya.

#include <stdio.h>main() { int a = 10; printf("\n%d", a += 3); printf("\n%d", a -= 3); printf("\n%d", a *= 3); printf("\n%d", a /= 3); printf("\n%d", a %= 3); printf("\n%d", a); printf("\n%d", ++a); printf("\n%d", a); printf("\n%d", a++); printf("\n%d", a); printf("\n%d", --a); printf("\n%d", a); printf("\n%d", a--); printf("\n%d", a); return 0;

Pemrograman Macro dalam Winword dan Excel

Apa itu macro?

Jika anda melakukan pekerjaan yang berulang-ulang dengan winword, maka anda dapat mengotomatisasinya dengan MACRO. Sebuah macro adalah serangkaian komando dalam Word dan intruksi-intruksi yang anda dapat mengelompokkannya dalam satu group sebagai satu intruksi baru. Cara ini untuk memudahkan anda untuk melakukan serangkaian kerja dengan cukup sekali klik, untuk menghemat waktu.

Macro biasanya digunakan untuk merekam urutan keyboard atau aksi lainnya yang diperlu dilakukan secara berulang oleh pemakai dalam tugas sehari-hari. Misal, jika profesi anda adalah peneliti, anda akan mendapatkan bahwa sejumlah publikasi harus ditulis mengikuti aturan-aturan tertentu. Maka jika anda sangat sering menulis dalam format yang sama, maka cara yang paling elegan yang perlu anda lakukan adalah dengan mengotomatisasinya menggunakan macro.

Keuntungan menggunakan Macro adalah : Mempercepat pekerjaan rutin untuk mengedit dan memformat ulang dokumen. Mengkombinasikan sejumlah komando dalam satu group. Misal: untuk membuat

tabel dengan format-format garis tertentu, jenis huruf dan sebagainya, anda dapat mengunpulkan sejumlah perintah menjadi satu perintah.

Untuk mengotomatisasi sejumlah pekerjaan yang kompleks dan untuk menghindarka kesalahan manusiawi.

Surabaya, 11 – 12 Oktober 200236

Page 37: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

Mengoptimalkan boks dialog untuk bekerja secara interaktif.

Bagaimana membuat macro?

Cara yang paling mudah untuk membuat macro dalam winword adalah dengan fasilitas “macro recorder” untuk merekam sejumlah perintah atau aksi-aksi yang kita susun. Jika anda sedang merekam macro, maka anda dapat menggunakan mouse dan menklik command dan opsi-opsi yang ada. Sebagai catatan, bahwasannya “macro recorder” tidak merekam gerakan mouse dalam jendela dokumen.

Beberapa catatan dalam merekam macro• Sebelum anda merekam macro, rencanakan langkah-langkah apa saja yang akan

anda rekam dalam macro. Mengapa demikian? Karena ketika anda melakukan langkah yang salah dan kemudian mengkoreksinya, maka langkah-langkah yang salahpun akan ikut terekam, demikian juga dengan koreksi yang anda lakukan juga ikut terekam.

• Antisipasi kemungkinan-kemungkinan message yang akan muncul. Sebagai contoh, jika dalam macro anda berisikan perintah menutup dokumen maka word akan bertanya: apakah dokumen akan disimpan atau tidak?

• Jika macro berisikan perintah dalam menu Edit menu, maka antisipasi dengan search ke seluruh dokumen.

• Jika anda menginginkan bahwa macro tersebut berlaku juga untuk dokumen lain, perhitungkan bahwa macro tidak boleh bergantung hanya pada dokumen yang anda sedang pakai untuk merekamnya.

Merekam Macro dalam Winword

Klik pada menu Tools, kemudian arahkan kursor ke Macro kemudian kik record new Macro. 1. Di bagian boks Macro name, ketikkan nama macro yang anda inginkan. 2. Dalam Boks Store macro in, klik template atau dokumen yang anda akan pakai

untuk menyimpan macro.3. Di boks Description, ketikkan uraian secukupnya tentang macro tersebut.4. Jika anda tidak menginginkan macro ini tampil dalam toolbar, menu atau

shortcut maka klik OK untuk memulai merekam macro.Untuk menempatkan macro dalam toolbar atau menu, maka klik Toolbars. Di boks Commands, klik macro yang sedang anda rekam, dan tempatkan ke toolbar atau menu yang anda inginkan. Klik Close untuk memulai perekaman.

5. Lakukan langkah-langkah yang sudah anda rencanakan untuk direkam dalam macro.Anda dapat menggunakan mouse untuk mengklik perintah dan opsi-opsi yanga ada, tetapi macro tidak merekam gerakan mouse dalam jendela dokumen.

6. Untuk menyudahi perekaman, klik Stop Recording

Catatan Jika anda memberi nama macro baru dengan nama macro yang sudah ada dalam winword, maka macro baru tersebut akan menggantikan macro winword yang asli. Contoh: Dalam menu File terdapat perintah Close yang mengacu pada macro FileClose. Jika anda membuat macro baru dengan nama sama dengan macro tersebut, maka macro anda akan menggantikan macro winword yang asli.

Dimana macro disimpan?

Anda dapat menyimpan macro dalam templates (*.dot) atau dalam dokumen (*.doc). Jika anda tidak memilih secara spesifik, maka macro akan disimpan dalam Normal template (normal.dot) sedemikian rupa sehingga dapat dimanfaatkan oleh setiap dokumen word. Jika anda menginginkan menggunakan macro hanya untuk dokumen tertentu, maka simpan macro tersebut dalam dokumen bersangkutan.

Surabaya, 11 – 12 Oktober 200237

Page 38: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

Virus Macro

Fasilitas longgar yang diberikan oleh winword untuk penggunanya melalui macro, ternyata dimanfaatkan dengan tujuan tidak baik oleh oknum-oknum yang tidak bertanggung-jawab.

Sebuah virus macro adalah tipe virus komputer yang disimpan dalam macro yang tersimpan dalam dokumen atau template. Jika anda membuka sebuah dokumen maka yang terkena virus, maka virus macro tersebut dengan sendirinya ikut aktif dan disebarkan dalam komputer anda melalui penyimpanan virus macro tersut ke Normal template. Sekali normal template berisikan virus, maka semua dokumen yang dibuka akan terinfeksi oleh virus tersebut.

Word tidak dapat menscan floppy disk, hard disk, or network drive untuk menemukan atau membuang virus macro. Untuk melakukan hal tersebut, anda memerlukan software anti virus. Yang dapat dilakukan oleh Word adalah sekedar memberikaan peringatan kemungkinan-kemungkinan macro yang mengandung virus. Selanjutnya anda dapat membuka sebua dokumen dengan atau tanpa macro.

Surabaya, 11 – 12 Oktober 200238

Page 39: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

Visual Basic For Applications

Visual Bsic Applications (VBA) merupakan bahasa terbaru dalam deretan panjang bahasa pemrograman. Peralihan mendasar sedang terjadi dalam cara orang menggunakan komputer sekarang ini. Beberapa teknologi terkait yang muncul dari Mcrosot dan perusahaan lain membuat komputer dapat dipakai dengan efisien dan lebih mudah.

Teknologi ini – dengan nama seperti Dynamic Dta Exchange (DDE), Object Linking and Embedding (OLE) dan Visual Basic For Applications (VBA) – bekerja bersama-sama untuk membantu pemakai menyelesaikan tugas komputasi yang umum, seperti customizing aplikasi dan manipulasi informasi dengan cara yang lebih efektif.

Gambar 1. Contoh MengEdit aplikasi Visual Basic dalam Winword

Untuk memahami VBA, pertama kita harus menengok pendahulunya, bahasa BASIC (Beginners All Purposes Symbolic Instruction Code) elakangan ini, bahasa macro telah dibangun untuk membantu pemakai mengcustomize aplikasi agar sesuai dengan kebutuhan khusus mereka.

Dengan Visual Basic, bahasa BASIC, memiliki kemampuan menayangkan dan mengelola grafik, dan menghasilkan program Windows yang tidak bisa dibedakan dari aplikasi profesional. Dengan window dialog VBA, tugas embuatan program menjadi jauh lebih mudah. Apa itu Visual? Kata Visual menunjukkan cara yang digunakan untuk membuat graphical user interface (GUI). Dengan cara ini, anda tidak lagi perlu menuliskan sederet instrtuksi pemrograman dalam kode-kode baris yang rumit dan susah dihafal, tetapi secara mudah anda dapat melakukan drag anda drop obyek-obyek yang akan anda gunakan.

Surabaya, 11 – 12 Oktober 200239

Page 40: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

C/C++

Layaknya dalam bahasa percakapan sehari-hari, pada prinsipnya semua bahasa berfungsi untuk mengungkapkan buah pikiran, isi hati kepada lawan bicara. Satu bahasa kelihatannya lebih kompleks dari bahasa yang lainnya. Untuk hal-hal tertentu mungkin kita lebih cepat dan lebih mudah menggunakan bahasa X daripada Y. Demikian juga dengan bahasa pemrograman komputer, dalam perkembangannya banyak bermunculan dari yang sederhan samapi pada yang kompleks.

Pada hakikatnya yang terpenting dalam hal memprogram komputer adalah algorithm dan struktur diagram cara berfikir kita untuk mengungkapkan dalam deretan atuaran syntax yang sudah ditentukan. Memprogram dengan Visual Basic, Visual C, Borland C, Fortran dsbnya adalah sama. Hal ini dapat diidentikkan ketika kita menuliskan makalah dalam bahasa Indonesia, Inggris, Jerman ataupun yang lainnya adalah sama. Pembedanya adalah aturan main dalam penggunaan bahasa tersebut. Kompleks tidaknya suatu bahasa pemrograman seringkali tergantung dari kebiasaan kita memrogram.

Gambar 2. Pembuatan Aplikasi dengan Borland C/C++

Sebagai contoh, dari pengalaman penulis, bahasa pemrograman Borland C/C++ adalah sangat kompleks. Anda membutuhkan waktu panjang untuk mampu menguasainya dengan baik. Kerumitan ini akan segera hilang begitu anda sudah fasih untuk mengklik dan mengetahui seluruh seluk beluk dalam bahasa pemrograman ini.

Catatan: Pada prinsipnya setiap bahasa pemrograman dapat dipakai untuk membantu proses otomatisasi dengan Winword dan excel. Keuntungan utama, jika anda menggunakan Visual Basic adalah terintegrasinya fasilitas-fasilitas ini secara langsung dalam Winword dan Excel.

Contoh: Mawaqit 2000 for Word

Surabaya, 11 – 12 Oktober 200240

Page 41: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

Pada tahun 1999/2000 dilaksanakan kegiatan Penelitian dan Pengembangan Metode Astro-Geodesi Modern Untuk Perhitungan dan Pemetaan Kalender Islam. Salah satu produk dari kegiatan ini adalah diterbitkannya buku garis tanggal kalender Islam setebal kira-kira 300 halaman. Buku ini direalisasikan dengan program Mawaaqit 2000 for Word.

Tujuan dari otomatisasi dengan Mawaaqit for Word adalah: Terciptanya standard format buku-buku kalender Islam yang akan diterbitkan di

tahun-tahun mendatang. Mempercepat proses pembuatan dan editing. Menghindari kesalahan ketik dan semcamnya yang bersifat manusiawi.

Gambar 5. Contoh Mawaaqit 2000 for Word

Software ditulis dengan bahasa pemrograman, C/C++, Visual Basic dengan kombinasi dengan macro winword. Komponen-komponen dalam program ini adalah:Mwqt4word.doc : dokumen yang berisikan macro program Mawaaqit 2000 untuk

winword.MwqtInputs.frm : frame atau boks dialog untuk memasukkan input secara

interaktif.

Surabaya, 11 – 12 Oktober 200241

Page 42: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

MMwqt2000.bas : module atau bagian program inti yang ditulis dengan Visual Basic.

Mwqt4word.exe : program yang ditulis dengan C/C++ untuk membuat input-input yang akan dimasukkan dalam tabel atau untuk membuat peta dengan kontur-kontur yang diinginkan.

Berikut ini adalah source code dari pengembangan software tersebut. Source Code ini pada umumnya dibuat dengan fasilitas “macro recorder” di winword.

MwqtInputs.frm

VERSION 5.00

Begin {C62A69F0-16DC-11CE-9E98-00AA00574A4F} MwqtInputs Caption = "Inputs" ClientHeight = 2880 ClientLeft = 4050 ClientTop = 4395 ClientWidth = 4710 OleObjectBlob = "MwqtInputs.frx":0000 StartUpPosition = 0 'ManualEndAttribute VB_Name = "MwqtInputs"Attribute VB_Creatable = FalseAttribute VB_PredeclaredId = TrueAttribute VB_Exposed = FalseDim TableFile, JudulText, StrCode, MapsFileName, MyStringTgl, MapsFrame, DirectoryDataDim DirectoryHasilPeta, DirectoryHasilTabel, DirectoryHasilJudulDim DirectoryIjtima, DirectoryProgram

Sub SettingDirectory() DirectoryData = "c:\mwqt4word\data\" DirectoryHasilPeta = "c:\mwqt4word\Results\Maps\" DirectoryHasilTabel = "c:\mwqt4word\Results\Tables\" DirectoryHasilJudul = "c:\mwqt4word\Results\Titles\" DirectoryIjtima = "c:\mwqt4word\Results\IjtimaTime\" DirectoryProgram = "c:\mwqt4word\"End Sub

Private Sub ComputeBtn_Click() SettingDirectory MyFile = Dir(DirectoryHasilTabel & "TableCompleted") If (MyFile <> "") Then Kill DirectoryHasilTabel & "TableCompleted" End If Create2NewBlankPage BoxOn InsertMonthName ComputeIjtimaTime Goto2NextPage

' Inserting Tables' Dim TextTemp, StrBulan, NyFile, StrTahun

MyFile = Dir(DirectoryHasilTabel & "TableCompleted") If (MyFile <> "") Then Kill DirectoryHasilTabel & "TableCompleted" End If StrBulan = Format(MwqtInputs.BulanHijriyah.ListIndex + 1) StrTahun = Format(MwqtInputs.TahunHijriyah.ListIndex + 1300) If (MwqtInputs.BulanHijriyah.ListIndex < 9) Then StrBulan = "0" & StrBulan End If TextTemp = StrBulan & StrTahun If (MwqtInputs.TahunHijriyah.SelText = "") Then TextTemp = StrBulan & "1420" End If ComputeTableData TableFile = DirectoryHasilTabel & "Global" & TextTemp & "a.tbl" JudulText = DirectoryHasilJudul & "Global" & TextTemp & "a.ttl"

Surabaya, 11 – 12 Oktober 200242

Page 43: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

InsertTable InsertTableData MyFile = Dir(TableFile) If (MyFile <> "") Then Kill TableFile End If MyFile = Dir(JudulText) If (MyFile <> "") Then Kill JudulText End If TableFile = DirectoryHasilTabel & "Ina" & TextTemp & "a.tbl" JudulText = DirectoryHasilJudul & "Ina" & TextTemp & "a.ttl" InsertTable InsertTableData MyFile = Dir(TableFile) If (MyFile <> "") Then Kill TableFile End If MyFile = Dir(JudulText) If (MyFile <> "") Then Kill JudulText End If TableFile = DirectoryHasilTabel & "Global" & TextTemp & "b.tbl" JudulText = DirectoryHasilJudul & "Global" & TextTemp & "b.ttl" InsertTable InsertTableData MyFile = Dir(TableFile) If (MyFile <> "") Then Kill TableFile End If MyFile = Dir(JudulText) If (MyFile <> "") Then Kill JudulText End If TableFile = DirectoryHasilTabel & "Ina" & TextTemp & "b.tbl" JudulText = DirectoryHasilJudul & "Ina" & TextTemp & "b.ttl" InsertTable InsertTableData MyFile = Dir(TableFile) If (MyFile <> "") Then Kill TableFile End If MyFile = Dir(JudulText) If (MyFile <> "") Then Kill JudulText End If MyFile = Dir(DirectoryHasilTabel & "TableCompleted") If (MyFile <> "") Then Kill DirectoryHasilTabel & "TableCompleted" End If Selection.InsertBreak Type:=wdPageBreakEnd Sub

Sub Create2NewBlankPage() Selection.InsertBreak Type:=wdPageBreak Selection.InsertBreak Type:=wdPageBreak Selection.MoveLeft Unit:=wdCharacter, Count:=2End Sub

Sub InsertMonthName() Dim Hgh Hgh = Array(3, 3, 3, 3, 3, 3, 3.82, 3.82, 3, 3.82, 3, 3.82) If (MwqtInputs.BulanHijriyah.SelText = "") Then ActiveDocument.Shapes.AddTextEffect(msoTextEffect16, "Muharram", _ "Arial Black", 60#, msoFalse, msoFalse, 255.8, 196.5).Select Else ActiveDocument.Shapes.AddTextEffect(msoTextEffect16, MwqtInputs.BulanHijriyah.SelText, _ "Arial Black", 60#, msoFalse, msoFalse, 255.8, 196.5).Select End If Selection.ShapeRange.RelativeHorizontalPosition = _ wdRelativeHorizontalPositionMargin Selection.ShapeRange.RelativeVerticalPosition = _ wdRelativeVerticalPositionMargin Selection.ShapeRange.Height = CentimetersToPoints(Hgh(MwqtInputs.BulanHijriyah.ListIndex))

Surabaya, 11 – 12 Oktober 200243

Page 44: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

Selection.ShapeRange.Left = (CentimetersToPoints(25.5) - Selection.ShapeRange.Width) * 0.5 Selection.ShapeRange.Top = CentimetersToPoints(5)End Sub

Sub ComputeIjtimaTime() Dim MyFile, MyString, RetVal, MyProgram, ResFile, FileName, StrBulan, StrTahun StrBulan = Format(MwqtInputs.BulanHijriyah.ListIndex + 1) StrTahun = Format(MwqtInputs.TahunHijriyah.ListIndex + 1300) If (MwqtInputs.BulanHijriyah.ListIndex < 9) Then StrBulan = "0" & StrBulan End If MyProgram = DirectoryProgram & "Mwqt4Word.exe 1 " & _ Str(MwqtInputs.BulanHijriyah.ListIndex + 1) & " " & MwqtInputs.TahunHijriyah.SelText ResFile = DirectoryIjtima & StrBulan & StrTahun & ".out" FileName = StrBulan & StrTahun & ".out" If (MwqtInputs.TahunHijriyah.SelText = "") Then ResFile = DirectoryIjtima & StrBulan & "1420.out" MyProgram = MyProgram & " 1420" FileName = StrBulan & "1420.out" End If RetVal = Shell(MyProgram, 1) Do While MyFile <> FileName MyFile = Dir(ResFile) Loop

Open ResFile For Input As #1 Input #1, MyString Close #1 MyFile = Dir(ResFile) If (MyFile <> "") Then Kill ResFile End If Dim IjtimaText As String ActiveDocument.Shapes.AddTextEffect(msoTextEffect1, MyString, _ "Arial Black", 32#, msoFalse, msoFalse, 255.8, 196.5).Select Selection.ShapeRange.RelativeHorizontalPosition = wdRelativeHorizontalPositionPage Selection.ShapeRange.RelativeVerticalPosition = wdRelativeVerticalPositionPage Selection.ShapeRange.Width = CentimetersToPoints(23.5) Selection.ShapeRange.Left = CentimetersToPoints(3.55) Selection.ShapeRange.Top = CentimetersToPoints(12) Selection.ShapeRange.LockAnchor = True

End Sub

Sub ComputeTableData() Dim MyFile, MyString, RetVal, MyProgram MyProgram = DirectoryProgram & "Mwqt4Word.exe 2 " & _ Str(MwqtInputs.BulanHijriyah.ListIndex + 1) & " " & MwqtInputs.TahunHijriyah.SelText If (MwqtInputs.TahunHijriyah.SelText = "") Then MyProgram = MyProgram & " 1420" End If RetVal = Shell(MyProgram, 1) Do While MyFile <> "TableCompleted" MyFile = Dir(DirectoryHasilTabel & "TableCompleted") LoopEnd Sub

Sub BoxOn() ActiveDocument.Shapes.AddShape(msoShapeRectangle, 70.75, 57.1, 721.25, 480.4).Select Selection.ShapeRange.Fill.Visible = msoFalse Selection.ShapeRange.Line.ForeColor.RGB = RGB(0, 0, 0) Selection.ShapeRange.Line.Visible = msoTrue Selection.ShapeRange.Line.Weight = 1.5 Selection.ShapeRange.Line.Visible = msoTrue Selection.ShapeRange.Line.Style = msoLineSingle Selection.ShapeRange.Shadow.Type = msoShadow6End Sub

Sub Goto2NextPage() Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Count:=1, Name:="" Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Count:=1, Name:="" Selection.Find.ClearFormatting With Selection.Find .Text = ""

Surabaya, 11 – 12 Oktober 200244

Page 45: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

.Replacement.Text = "" .Forward = True .Wrap = wdFindAsk .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End WithEnd Sub Sub InsertTable() Selection.InsertFile FileName:=DirectoryData & "table.doc", Range:="", ConfirmConversions _ :=False, Link:=False, Attachment:=False ActiveWindow.ActivePane.SmallScroll Down:=-15 ActiveWindow.ActivePane.SmallScroll Down:=3End Sub

Sub InsertTableData() Selection.InsertFile FileName:=TableFile, Range:="", _ ConfirmConversions:=False, Link:=False, Attachment:=False Selection.MoveUp Unit:=wdLine, Count:=28, Extend:=wdExtend Selection.ConvertToTable Separator:=wdSeparateByCommas, NumColumns:=13, _ NumRows:=28, Format:=wdTableFormatNone, ApplyBorders:=True, ApplyShading _ :=True, ApplyFont:=True, ApplyColor:=True, ApplyHeadingRows:=True, _ ApplyLastRow:=False, ApplyFirstColumn:=True, ApplyLastColumn:=False, _ AutoFit:=False Selection.Cut Selection.MoveLeft Unit:=wdCharacter, Count:=1 Selection.MoveUp Unit:=wdLine, Count:=2 Selection.MoveRight Unit:=wdCharacter, Count:=12 Selection.MoveLeft Unit:=wdCharacter, Count:=12, Extend:=wdExtend Selection.MoveUp Unit:=wdLine, Count:=27, Extend:=wdExtend Selection.Paste Selection.MoveDown Unit:=wdLine, Count:=27, Extend:=wdExtend Selection.MoveRight Unit:=wdCharacter, Count:=12, Extend:=wdExtend Selection.Font.Name = "Courier New" Selection.Font.Size = 9 Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter With Selection.ParagraphFormat .SpaceBefore = 1 .SpaceAfter = 2 End With Selection.MoveLeft Unit:=wdCharacter, Count:=10, Extend:=wdExtend Selection.ParagraphFormat.Alignment = wdAlignParagraphRight Selection.MoveLeft Unit:=wdCharacter, Count:=2, Extend:=wdExtend Selection.ParagraphFormat.FirstLineIndent = CentimetersToPoints(0.25) Selection.ParagraphFormat.Alignment = wdAlignParagraphLeft Selection.MoveUp Unit:=wdLine, Count:=3 Selection.EndKey Unit:=wdLine, Extend:=wdExtend Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend Selection.InsertFile FileName:=JudulText, Range:="", _ ConfirmConversions:=False, Link:=False, Attachment:=False Selection.MoveUp Unit:=wdLine, Count:=1, Extend:=wdExtend Selection.HomeKey Unit:=wdLine, Extend:=wdExtend Selection.Font.Name = "Arial" Selection.Font.Size = 14 Selection.Font.Bold = wdToggle Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter With Selection.ParagraphFormat .LeftIndent = CentimetersToPoints(0) .RightIndent = CentimetersToPoints(0) .SpaceBefore = 0 .SpaceAfter = 0 .LineSpacingRule = wdLineSpace1pt5 .Alignment = wdAlignParagraphCenter .WidowControl = True .KeepWithNext = False .KeepTogether = False .PageBreakBefore = False .NoLineNumber = False .Hyphenation = True .FirstLineIndent = CentimetersToPoints(0) .OutlineLevel = wdOutlineLevelBodyText End With

Surabaya, 11 – 12 Oktober 200245

Page 46: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

Selection.MoveDown Unit:=wdLine, Count:=1 Selection.Delete Unit:=wdCharacter, Count:=1 Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Count:=1, Name:="" Selection.Find.ClearFormatting With Selection.Find .Text = "" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End WithEnd Sub

Private Sub CreateMaps_Click() SettingDirectory MyFile = Dir(DirectoryHasilPeta & "MapsCompleted") If (MyFile <> "") Then Kill DirectoryHasilPeta & "MapsCompleted" End If 'CreateGlobalMaps Dim StrBulan, StrTahun, TextTemp StrBulan = Format(MwqtInputs.BulanHijriyah.ListIndex + 1) StrTahun = Format(MwqtInputs.TahunHijriyah.ListIndex + 1300) If (MwqtInputs.BulanHijriyah.ListIndex < 9) Then StrBulan = "0" & StrBulan End If TextTemp = StrBulan & StrTahun If (MwqtInputs.TahunHijriyah.SelText = "") Then TextTemp = StrBulan & "1420" End If ' ---------------------------- StrCode = "a" MapsFrame = DirectoryData & "GlobalAltitude.doc" MapsFileName = DirectoryHasilPeta & "AltitudeGlobal" & TextTemp & "a" & ".gif" InsertGlobalMaps StrCode = "a" MapsFrame = DirectoryData & "InaAltitude.doc" MapsFileName = DirectoryHasilPeta & "AltitudeIna" & TextTemp & "a" & ".gif" InsertInaMaps ' ---------------------------- ' ---------------------------- StrCode = "b" MapsFrame = DirectoryData & "GlobalAltitude.doc" MapsFileName = DirectoryHasilPeta & "AltitudeGlobal" & TextTemp & "b" & ".gif" InsertGlobalMaps StrCode = "b" MapsFrame = DirectoryData & "InaAltitude.doc" MapsFileName = DirectoryHasilPeta & "AltitudeIna" & TextTemp & "b" & ".gif" InsertInaMaps' ---------------------------- ' ---------------------------- StrCode = "a" MapsFrame = DirectoryData & "GlobalMoonsAge.doc" MapsFileName = DirectoryHasilPeta & "MoonsAgeGlobal" & TextTemp & "a" & ".gif" InsertGlobalMaps StrCode = "a" MapsFrame = DirectoryData & "InaMoonsAge.doc" MapsFileName = DirectoryHasilPeta & "MoonsAgeIna" & TextTemp & "a" & ".gif" InsertInaMaps' ---------------------------- ' ---------------------------- StrCode = "b" MapsFrame = DirectoryData & "GlobalMoonsAge.doc"

Surabaya, 11 – 12 Oktober 200246

Page 47: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

MapsFileName = DirectoryHasilPeta & "MoonsAgeGlobal" & TextTemp & "b" & ".gif" InsertGlobalMaps StrCode = "b" MapsFrame = DirectoryData & "InaMoonsAge.doc" MapsFileName = DirectoryHasilPeta & "MoonsAgeIna" & TextTemp & "b" & ".gif" InsertInaMaps' ---------------------------- ' ---------------------------- StrCode = "a" MapsFrame = DirectoryData & "GlobalIllumination.doc" MapsFileName = DirectoryHasilPeta & "IlluminationGlobal" & TextTemp & "a" & ".gif" InsertGlobalMaps StrCode = "a" MapsFrame = DirectoryData & "InaIllumination.doc" MapsFileName = DirectoryHasilPeta & "IlluminationIna" & TextTemp & "a" & ".gif" InsertInaMaps' ---------------------------- ' ---------------------------- StrCode = "b" MapsFrame = DirectoryData & "GlobalIllumination.doc" MapsFileName = DirectoryHasilPeta & "IlluminationGlobal" & TextTemp & "b" & ".gif" InsertGlobalMaps StrCode = "b" MapsFrame = DirectoryData & "InaIllumination.doc" MapsFileName = DirectoryHasilPeta & "IlluminationIna" & TextTemp & "b" & ".gif" InsertInaMaps' ---------------------------- ' ---------------------------- StrCode = "a" MapsFrame = DirectoryData & "GlobalSMDiffer.doc" MapsFileName = DirectoryHasilPeta & "SMDifferGlobal" & TextTemp & "a" & ".gif" InsertGlobalMaps

StrCode = "a" MapsFrame = DirectoryData & "InaSMDiffer.doc" MapsFileName = DirectoryHasilPeta & "SMDifferIna" & TextTemp & "a" & ".gif" InsertInaMaps' ---------------------------- ' ---------------------------- StrCode = "b" MapsFrame = DirectoryData & "GlobalSMDiffer.doc" MapsFileName = DirectoryHasilPeta & "SMDifferGlobal" & TextTemp & "b" & ".gif" InsertGlobalMaps StrCode = "b" MapsFrame = DirectoryData & "InaSMDiffer.doc" MapsFileName = DirectoryHasilPeta & "SMDifferIna" & TextTemp & "b" & ".gif" InsertInaMaps' ---------------------------- MyFile = Dir(DirectoryHasilPeta & "MapsCompleted") If (MyFile <> "") Then Kill DirectoryHasilPeta & "MapsCompleted" End IfEnd Sub Sub InsertInaMaps() Selection.InsertFile FileName:=MapsFrame, Range:="", _ ConfirmConversions:=False, Link:=False, Attachment:=False Selection.GoTo What:=wdGoToPage, Which:=wdGoToPrevious, Count:=1, Name:="" Selection.Find.ClearFormatting With Selection.Find .Text = "_$$$_" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False

Surabaya, 11 – 12 Oktober 200247

Page 48: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

.MatchSoundsLike = False .MatchAllWordForms = False End With Selection.MoveDown Unit:=wdLine, Count:=3 Selection.InlineShapes.AddPicture FileName:= _ MapsFileName, LinkToFile:=False, _ SaveWithDocument:=True Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend With Selection.InlineShapes(1) With .Borders(wdBorderLeft) .LineStyle = wdLineStyleThinThickSmallGap .LineWidth = wdLineWidth150pt .ColorIndex = wdAuto End With With .Borders(wdBorderRight) .LineStyle = wdLineStyleThickThinSmallGap .LineWidth = wdLineWidth150pt .ColorIndex = wdAuto End With With .Borders(wdBorderTop) .LineStyle = wdLineStyleThinThickSmallGap .LineWidth = wdLineWidth150pt .ColorIndex = wdAuto End With With .Borders(wdBorderBottom) .LineStyle = wdLineStyleThickThinSmallGap .LineWidth = wdLineWidth150pt .ColorIndex = wdAuto End With .Borders.Shadow = False End With With Options .DefaultBorderLineStyle = wdLineStyleThinThickSmallGap .DefaultBorderLineWidth = wdLineWidth150pt .DefaultBorderColorIndex = wdAuto End With ActiveWindow.ActivePane.View.Zoom.PageFit = wdPageFitBestFit ActiveWindow.ActivePane.SmallScroll Down:=11 ReplaceTanggalEnd Sub

Sub InsertGlobalMaps() Selection.InsertBreak Type:=wdPageBreak Selection.GoTo What:=wdGoToPage, Which:=wdGoToPrevious, Count:=1, Name:="" Selection.Find.ClearFormatting With Selection.Find .Text = "" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.InsertFile FileName:=MapsFrame, Range:="", _ ConfirmConversions:=False, Link:=False, Attachment:=False Selection.MoveUp Unit:=wdLine, Count:=2 Selection.InlineShapes.AddPicture FileName:= _ MapsFileName, LinkToFile:=False, _ SaveWithDocument:=True Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend With Selection.InlineShapes(1) With .Borders(wdBorderLeft) .LineStyle = wdLineStyleThinThickSmallGap .LineWidth = wdLineWidth150pt .ColorIndex = wdAuto End With With .Borders(wdBorderRight) .LineStyle = wdLineStyleThickThinSmallGap .LineWidth = wdLineWidth150pt .ColorIndex = wdAuto End With With .Borders(wdBorderTop) .LineStyle = wdLineStyleThinThickSmallGap

Surabaya, 11 – 12 Oktober 200248

Page 49: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

.LineWidth = wdLineWidth150pt .ColorIndex = wdAuto End With With .Borders(wdBorderBottom) .LineStyle = wdLineStyleThickThinSmallGap .LineWidth = wdLineWidth150pt .ColorIndex = wdAuto End With .Borders.Shadow = False End With With Options .DefaultBorderLineStyle = wdLineStyleThinThickSmallGap .DefaultBorderLineWidth = wdLineWidth150pt .DefaultBorderColorIndex = wdAuto End With Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Count:=1, Name:="" Selection.Find.ClearFormatting With Selection.Find .Text = "" .Replacement.Text = "" .Forward = True .Wrap = wdFindAsk .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With ReplaceTanggalEnd Sub

Sub CreateGlobalMaps() Dim MyFile, MyString, RetVal, MyProgram MyProgram = DirectoryProgram & "Mwqt4Word.exe 3 " & _ Str(MwqtInputs.BulanHijriyah.ListIndex + 1) & " " & MwqtInputs.TahunHijriyah.SelText If (MwqtInputs.TahunHijriyah.SelText = "") Then MyProgram = MyProgram & " 1420" End If RetVal = Shell(MyProgram, 1) Do While MyFile <> "MapsCompleted" MyFile = Dir(DirectoryHasilPeta & "MapsCompleted") LoopEnd Sub

Private Sub Image7_Click() SettingDirectory Selection.HomeKey Unit:=wdStory With Selection.Sections(1).Headers(1).PageNumbers .NumberStyle = wdPageNumberStyleArabic .HeadingLevelForChapter = 0 .IncludeChapterNumber = False .ChapterPageSeparator = wdSeparatorHyphen .RestartNumberingAtSection = True .StartingNumber = 22 * MwqtInputs.BulanHijriyah.ListIndex + 33 End With Selection.Sections(1).Footers(1).PageNumbers.Add PageNumberAlignment:= _ wdAlignPageNumberOutside, FirstPage:=True Dim ResFile, StrTahun, StrBulan, TxtBulan StrTahun = Format(MwqtInputs.TahunHijriyah.ListIndex + 1300) If (MwqtInputs.TahunHijriyah.SelText = "") Then StrTahun = "1420" End If StrBulan = Format(MwqtInputs.BulanHijriyah.ListIndex + 1) If (MwqtInputs.BulanHijriyah.ListIndex < 9) Then StrBulan = "0" & StrBulan End If TxtBulan = MwqtInputs.BulanHijriyah.SelText If (MwqtInputs.BulanHijriyah.SelText = "") Then TxtBulan = "Muharram" End If ResFile = "f:\" & StrTahun & "H\" & StrBulan & "_" & TxtBulan & ".doc" ActiveDocument.SaveAs FileName:=ResFile, FileFormat:= _ wdFormatDocument, LockComments:=False, Password:="", AddToRecentFiles:= _

Surabaya, 11 – 12 Oktober 200249

Page 50: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:= _ False, SaveNativePictureFormat:=False, SaveFormsData:=False, _ SaveAsAOCELetter:=FalseEnd Sub

Private Sub PutArticle_Click() Dim TitleText SettingDirectory TitleText = "Kalender Islam " & MwqtInputs.TahunHijriyah.SelText & " H" If (MwqtInputs.TahunHijriyah.SelText = "") Then TitleText = "Kalender Islam 1420 H" End If Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Name:="1" Selection.Find.ClearFormatting Selection.InsertFile FileName:=DirectoryData & "Article.doc", Range:="", _ ConfirmConversions:=False, Link:=False, Attachment:=False Selection.InsertBreak Type:=wdPageBreak Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Name:="1" Selection.Find.ClearFormatting ActiveDocument.Shapes.AddTextEffect(msoTextEffect13, _ TitleText, "Impact", 52#, msoFalse, msoFalse, 154.25, 324.55).Select Selection.ShapeRange.Line.Visible = msoFalse Selection.ShapeRange.Height = 73.4 Selection.ShapeRange.Width = 500# Selection.ShapeRange.Rotation = 0# Selection.ShapeRange.Fill.Visible = msoTrue Selection.ShapeRange.Fill.ForeColor.RGB = RGB(255, 255, 0) Selection.ShapeRange.Fill.BackColor.RGB = RGB(0, 128, 0) Selection.ShapeRange.Fill.Transparency = 0# Selection.ShapeRange.Fill.TwoColorGradient msoGradientFromCenter, 1 Selection.ShapeRange.RelativeHorizontalPosition = wdRelativeHorizontalPositionPage Selection.ShapeRange.RelativeVerticalPosition = wdRelativeVerticalPositionPage Selection.ShapeRange.Left = CentimetersToPoints(10) Selection.ShapeRange.Top = CentimetersToPoints(3.5) Selection.ShapeRange.LockAnchor = True ActiveDocument.Shapes.AddTextbox(msoTextOrientationHorizontal, 69.35, _ 505.8, 72#, 72#).Select Selection.ShapeRange.TextFrame.TextRange.Select Selection.Collapse Dim TextTemp, StrBulan, NyFile, StrTahun

Dim MyFile, MyString, RetVal, MyProgram, ResFile, FileName StrTahun = Format(MwqtInputs.TahunHijriyah.ListIndex + 1300) MyProgram = DirectoryProgram & "Mwqt4Word.exe 0 1 " & MwqtInputs.TahunHijriyah.SelText ResFile = DirectoryHasilJudul & "calyear" & StrTahun & ".out" FileName = "calyear" & StrTahun & ".out" If (MwqtInputs.TahunHijriyah.SelText = "") Then ResFile = DirectoryHasilJudul & "calyear" & "1420.out" MyProgram = MyProgram & " 1420" FileName = "calyear1420.out" End If RetVal = Shell(MyProgram, 1) Do While MyFile <> FileName MyFile = Dir(ResFile) Loop

Selection.InsertFile FileName:=ResFile, Range:="", _ ConfirmConversions:=False, Link:=False, Attachment:=False Selection.WholeStory With Selection.Font .Name = "Technical" .Size = 28 .Bold = True .Italic = False .Underline = wdUnderlineNone .StrikeThrough = False .DoubleStrikeThrough = False .Outline = False .Emboss = False .Shadow = False .Hidden = False .SmallCaps = False .AllCaps = False .ColorIndex = wdWhite

Surabaya, 11 – 12 Oktober 200250

Page 51: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

.Engrave = False .Superscript = False .Subscript = False .Spacing = 0 .Scaling = 100 .Position = 0 .Kerning = 0 .Animation = wdAnimationNone End With Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter Selection.ShapeRange.Fill.Visible = msoFalse Selection.ShapeRange.Line.Visible = msoFalse Selection.ShapeRange.Height = 72# Selection.ShapeRange.Width = 255.1 Selection.ShapeRange.TextFrame.MarginLeft = 7.09 Selection.ShapeRange.TextFrame.MarginRight = 7.09 Selection.ShapeRange.TextFrame.MarginTop = 3.69 Selection.ShapeRange.TextFrame.MarginBottom = 3.69 Selection.ShapeRange.RelativeHorizontalPosition = wdRelativeHorizontalPositionPage Selection.ShapeRange.RelativeVerticalPosition = wdRelativeVerticalPositionPage Selection.ShapeRange.Left = CentimetersToPoints(0) Selection.ShapeRange.Top = CentimetersToPoints(16.5) Selection.ShapeRange.LockAnchor = True Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter UpdateYear InsertDataIjtimaTahunA InsertDataIjtimaTahunB ShadowedCellB ShadowedCellAEnd Sub

Sub UpdateYear() Dim StrTahun, ResFile StrTahun = Format(MwqtInputs.TahunHijriyah.ListIndex + 1300) ResFile = DirectoryHasilJudul & "calyear" & StrTahun If (MwqtInputs.TahunHijriyah.SelText = "") Then ResFile = DirectoryHasilJudul & "calyear" & "1420" StrTahun = "1420" End If Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Name:="31" Selection.Find.ClearFormatting With Selection.Find .Text = "%#$" .Replacement.Text = StrTahun & " H" .Forward = True .Wrap = wdFindAsk .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Selection.MoveLeft Unit:=wdCharacter, Count:=1 Selection.Find.Execute Replace:=wdReplaceOne Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Name:="31" Selection.Find.ClearFormatting With Selection.Find .Text = "YEAR_A" End With Selection.Find.Execute Selection.InsertFile FileName:=ResFile & "a.out", Range:="", _ ConfirmConversions:=False, Link:=False, Attachment:=False Selection.TypeBackspace Selection.HomeKey Unit:=wdLine, Extend:=wdExtend Selection.TypeBackspace Selection.HomeKey Unit:=wdLine, Extend:=wdExtend Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter Selection.Font.Size = 14 Selection.Font.Name = "Arial" Selection.Font.Bold = wdToggle With Selection.ParagraphFormat .LeftIndent = CentimetersToPoints(0)

Surabaya, 11 – 12 Oktober 200251

Page 52: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

.RightIndent = CentimetersToPoints(0) .SpaceBefore = 2 .SpaceAfter = 2 .LineSpacingRule = wdLineSpaceSingle .Alignment = wdAlignParagraphCenter .WidowControl = True .KeepWithNext = False .KeepTogether = False .PageBreakBefore = False .NoLineNumber = False .Hyphenation = True .FirstLineIndent = CentimetersToPoints(0) .OutlineLevel = wdOutlineLevelBodyText End With Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Name:="31" Selection.Find.ClearFormatting With Selection.Find .Text = "YEAR_B" End With Selection.Find.Execute Selection.InsertFile FileName:=ResFile & "b.out", Range:="", _ ConfirmConversions:=False, Link:=False, Attachment:=False Selection.TypeBackspace Selection.HomeKey Unit:=wdLine, Extend:=wdExtend Selection.TypeBackspace Selection.HomeKey Unit:=wdLine, Extend:=wdExtend Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter Selection.Font.Size = 14 Selection.Font.Name = "Arial" Selection.Font.Bold = wdToggle With Selection.ParagraphFormat .LeftIndent = CentimetersToPoints(0) .RightIndent = CentimetersToPoints(0) .SpaceBefore = 2 .SpaceAfter = 2 .LineSpacingRule = wdLineSpaceSingle .Alignment = wdAlignParagraphCenter .WidowControl = True .KeepWithNext = False .KeepTogether = False .PageBreakBefore = False .NoLineNumber = False .Hyphenation = True .FirstLineIndent = CentimetersToPoints(0) .OutlineLevel = wdOutlineLevelBodyText End WithEnd Sub

Sub GetDateFile() Dim StrBulan, StrTahun, TextTemp StrBulan = Format(MwqtInputs.BulanHijriyah.ListIndex + 1) StrTahun = Format(MwqtInputs.TahunHijriyah.ListIndex + 1300) If (MwqtInputs.BulanHijriyah.ListIndex < 9) Then StrBulan = "0" & StrBulan End If TextTemp = StrBulan & StrTahun If (MwqtInputs.TahunHijriyah.SelText = "") Then TextTemp = StrBulan & "1420" End If MyStringTgl = DirectoryHasilPeta & TextTemp & StrCode & ".tgl" End Sub

Sub ReplaceTanggal() GetDateFile Selection.Find.ClearFormatting With Selection.Find .Text = "_$$$_" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False

Surabaya, 11 – 12 Oktober 200252

Page 53: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

.MatchAllWordForms = False End With Selection.Find.Execute Selection.InsertFile FileName:=MyStringTgl, Range:="", _ ConfirmConversions:=False, Link:=False, Attachment:=False Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend Selection.Delete Unit:=wdCharacter, Count:=1 Selection.HomeKey Unit:=wdLine, Extend:=wdExtend With Selection.Font .Name = "Arial" .Size = 14 .Bold = True .Italic = False .Underline = wdUnderlineNone .StrikeThrough = False .DoubleStrikeThrough = False .Outline = False .Emboss = False .Shadow = False .Hidden = False .SmallCaps = False .AllCaps = False .ColorIndex = wdAuto .Engrave = False .Superscript = False .Subscript = False .Spacing = 0 .Scaling = 100 .Position = 0 .Kerning = 0 .Animation = wdAnimationNone End With Selection.Range.Case = wdUpperCase Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter With Selection.ParagraphFormat .LeftIndent = CentimetersToPoints(0) .RightIndent = CentimetersToPoints(0) .SpaceBefore = 0 .SpaceAfter = 0 .LineSpacingRule = wdLineSpaceMultiple .LineSpacing = LinesToPoints(1.4) .Alignment = wdAlignParagraphCenter .WidowControl = True .KeepWithNext = False .KeepTogether = False .PageBreakBefore = False .NoLineNumber = False .Hyphenation = True .FirstLineIndent = CentimetersToPoints(0) .OutlineLevel = wdOutlineLevelBodyText End With Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Count:=1, Name:="" Selection.Find.ClearFormatting With Selection.Find .Text = "_$$$_" .Replacement.Text = "" .Forward = True .Wrap = wdFindAsk .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End WithEnd Sub

Sub InsertDataIjtimaTahunA() Dim ResFile, StrTahun StrTahun = Format(MwqtInputs.TahunHijriyah.ListIndex + 1300) ResFile = DirectoryHasilTabel & "calyear" & StrTahun & "a.tbl" If (MwqtInputs.TahunHijriyah.SelText = "") Then ResFile = DirectoryHasilTabel & "calyear" & "1420a.tbl" End If Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Name:="32"

Surabaya, 11 – 12 Oktober 200253

Page 54: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

Selection.Find.ClearFormatting With Selection.Find .Text = "YEAR_B" .Replacement.Text = "1420 H" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.InsertFile FileName:=ResFile, Range:="", _ ConfirmConversions:=False, Link:=False, Attachment:=False Selection.MoveUp Unit:=wdLine, Count:=13, Extend:=wdExtend Selection.HomeKey Unit:=wdLine, Extend:=wdExtend Selection.ConvertToTable Separator:=wdSeparateByCommas, NumColumns:=5, _ NumRows:=13, Format:=wdTableFormatNone, ApplyBorders:=True, ApplyShading _ :=True, ApplyFont:=True, ApplyColor:=True, ApplyHeadingRows:=True, _ ApplyLastRow:=False, ApplyFirstColumn:=True, ApplyLastColumn:=False, _ AutoFit:=False Selection.Font.Name = "Arial" Selection.Font.Size = 11 Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter With Selection.ParagraphFormat .SpaceBefore = 1 .SpaceAfter = 1 End With Selection.Cut Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Name:="31" Selection.Find.ClearFormatting With Selection.Find .Text = "YEAR_B" .Replacement.Text = "1420 H" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.MoveDown Unit:=wdLine, Count:=4 Selection.MoveLeft Unit:=wdCharacter, Count:=3 Selection.MoveDown Unit:=wdLine, Count:=12, Extend:=wdExtend Selection.MoveRight Unit:=wdCharacter, Count:=4, Extend:=wdExtend Selection.Paste Selection.MoveRight Unit:=wdCell Selection.MoveDown Unit:=wdLine, Count:=12, Extend:=wdExtend Selection.ParagraphFormat.Alignment = wdAlignParagraphLeft Selection.ParagraphFormat.FirstLineIndent = CentimetersToPoints(0.31) Selection.MoveRight Unit:=wdCell Selection.MoveRight Unit:=wdCell Selection.MoveRight Unit:=wdCell Selection.MoveRight Unit:=wdCell Selection.MoveDown Unit:=wdLine, Count:=12, Extend:=wdExtend Selection.Font.Italic = wdToggleEnd Sub

Sub InsertDataIjtimaTahunB() Dim ResFile, StrTahun StrTahun = Format(MwqtInputs.TahunHijriyah.ListIndex + 1300) ResFile = DirectoryHasilTabel & "calyear" & StrTahun & "b.tbl" If (MwqtInputs.TahunHijriyah.SelText = "") Then ResFile = DirectoryHasilTabel & "calyear" & "1420b.tbl" End If Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Name:="32" Selection.Find.ClearFormatting With Selection.Find .Text = "" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue

Surabaya, 11 – 12 Oktober 200254

Page 55: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

.Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.InsertFile FileName:=ResFile, Range:="", _ ConfirmConversions:=False, Link:=False, Attachment:=False Selection.MoveUp Unit:=wdLine, Count:=13, Extend:=wdExtend Selection.HomeKey Unit:=wdLine, Extend:=wdExtend Selection.ConvertToTable Separator:=wdSeparateByCommas, NumColumns:=5, _ NumRows:=13, Format:=wdTableFormatNone, ApplyBorders:=True, ApplyShading _ :=True, ApplyFont:=True, ApplyColor:=True, ApplyHeadingRows:=True, _ ApplyLastRow:=False, ApplyFirstColumn:=True, ApplyLastColumn:=False, _ AutoFit:=False Selection.Font.Name = "Arial" Selection.Font.Size = 11 Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter With Selection.ParagraphFormat .SpaceBefore = 1 .SpaceAfter = 1 End With Selection.Cut Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Name:="31" Selection.Find.ClearFormatting With Selection.Find .Text = "YEAR_B" .Replacement.Text = "1420 H" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.MoveDown Unit:=wdLine, Count:=3 Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.MoveRight Unit:=wdCell Selection.MoveRight Unit:=wdCell Selection.MoveDown Unit:=wdLine, Count:=1 Selection.MoveDown Unit:=wdLine, Count:=12, Extend:=wdExtend Selection.MoveRight Unit:=wdCharacter, Count:=4, Extend:=wdExtend Selection.Paste Selection.MoveRight Unit:=wdCell Selection.MoveRight Unit:=wdCell Selection.MoveRight Unit:=wdCell Selection.MoveRight Unit:=wdCell Selection.MoveRight Unit:=wdCell Selection.MoveRight Unit:=wdCell Selection.MoveDown Unit:=wdLine, Count:=12, Extend:=wdExtend Selection.ParagraphFormat.Alignment = wdAlignParagraphLeft Selection.ParagraphFormat.FirstLineIndent = CentimetersToPoints(0.31) Selection.MoveRight Unit:=wdCell Selection.MoveRight Unit:=wdCell Selection.MoveRight Unit:=wdCell Selection.MoveRight Unit:=wdCell Selection.MoveDown Unit:=wdLine, Count:=12, Extend:=wdExtend Selection.Font.Italic = wdToggleEnd Sub

Sub ShadowedCellB()Dim MyFile, MyString, ResFile, FileName, StrTahun, StrTahunN StrTahunN = Format(MwqtInputs.TahunHijriyah.ListIndex + 1301) StrTahun = Format(MwqtInputs.TahunHijriyah.ListIndex + 1300) ResFile = DirectoryHasilTabel & "shift" & StrTahun & "b.out" FileName = "shift" & StrTahun & "b.out" If (MwqtInputs.TahunHijriyah.SelText = "") Then ResFile = DirectoryHasilTabel & "shift" & "1420b.out" FileName = "shift" & "1420b.out" End If Open ResFile For Input As #1 Input #1, MyString Close #1

Surabaya, 11 – 12 Oktober 200255

Page 56: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

MyFile = Dir(ResFile) If (MyFile <> "") Then Kill ResFile End If Selection.MoveUp Unit:=wdLine, Count:=1 Selection.MoveDown Unit:=wdLine, Count:=Val(MyString) Selection.MoveDown Unit:=wdLine, Count:=13 - Val(MyString), Extend:=wdExtend Selection.Cut Selection.MoveDown Unit:=wdLine, Count:=13 - Val(MyString), Extend:=wdExtend Selection.Cells.Merge Selection.Font.Italic = wdToggle Selection.Font.Size = 16 Selection.TypeText Text:=StrTahunN Selection.HomeKey Unit:=wdLine, Extend:=wdExtend Selection.Font.Bold = wdToggle Selection.Cells.VerticalAlignment = wdCellAlignVerticalCenter Selection.MoveRight Unit:=wdCharacter, Count:=1

End Sub

Sub ShadowedCellA()Dim MyFile, MyString, ResFile, FileName, StrTahun, StrTahunP StrTahun = Format(MwqtInputs.TahunHijriyah.ListIndex + 1300) StrTahunP = Format(MwqtInputs.TahunHijriyah.ListIndex + 1299) ResFile = DirectoryHasilTabel & "shift" & StrTahun & "a.out" FileName = "shift" & StrTahun & "a.out" If (MwqtInputs.TahunHijriyah.SelText = "") Then ResFile = DirectoryHasilTabel & "shift" & "1420a.out" FileName = "shift" & "1420a.out" End If Open ResFile For Input As #1 Input #1, MyString Close #1 MyFile = Dir(ResFile) If (MyFile <> "") Then Kill ResFile End If Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Name:="31" Selection.Find.ClearFormatting With Selection.Find .Text = "YEAR_B" .Replacement.Text = "1420 H" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.MoveDown Unit:=wdLine, Count:=3 Selection.MoveRight Unit:=wdCell Selection.MoveDown Unit:=wdLine, Count:=1 Selection.MoveDown Unit:=wdLine, Count:=Val(MyString) - 2, Extend:=wdExtend Selection.Cut Selection.MoveDown Unit:=wdLine, Count:=Val(MyString) - 2, Extend:=wdExtend Selection.Cells.Merge Selection.TypeText Text:=StrTahunP Selection.HomeKey Unit:=wdLine, Extend:=wdExtend Selection.Font.Italic = wdToggle Selection.Font.Bold = wdToggle Selection.Font.Size = 16 Selection.Cells.VerticalAlignment = wdCellAlignVerticalCenter Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.MoveUp Unit:=wdLine, Count:=1 Selection.HomeKey Unit:=wdLine Selection.MoveLeft Unit:=wdCharacter, Count:=1 Selection.HomeKey Unit:=wdLine Selection.MoveLeft Unit:=wdCharacter, Count:=1 Selection.HomeKey Unit:=wdLine Selection.MoveLeft Unit:=wdCharacter, Count:=1 Selection.HomeKey Unit:=wdLine

Surabaya, 11 – 12 Oktober 200256

Page 57: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

Selection.MoveLeft Unit:=wdCharacter, Count:=1 Selection.HomeKey Unit:=wdLine Selection.MoveLeft Unit:=wdCharacter, Count:=1 Selection.HomeKey Unit:=wdLine Selection.MoveDown Unit:=wdLine, Count:=1 Selection.MoveDown Unit:=wdLine, Count:=12, Extend:=wdExtend Selection.MoveRight Unit:=wdCharacter, Count:=9, Extend:=wdExtend With Selection.ParagraphFormat .SpaceBefore = 2 .SpaceAfter = 2 End With Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Count:=1, Name:="" Selection.Find.ClearFormatting With Selection.Find .Text = "YEAR_B" .Replacement.Text = "" .Forward = True .Wrap = wdFindAsk .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End WithEnd Sub

MMwqt2000.bas

Attribute VB_Name = "MMwqt2000"Sub Mwqt2000()Dim TahunH, BulanHDim NamaBulanNamaBulan = Array("Muharram", "Safar", "Rabi ul-Awal", _ "Rabi ul-Akhir", "Jumadil-Awal", "Jumadil-Akhir", _ "Rajab", "Syaban", "Ramadhan", _ "Syawal", "Dzul Qidah", "Dzul Hijjah")PageSetupFor BulanH = 0 To 11 MwqtInputs.BulanHijriyah.AddItem (NamaBulan(BulanH))Next BulanHMwqtInputs.BulanHijriyah.ListIndex = 0

For TahunH = 1300 To 1500 MwqtInputs.TahunHijriyah.AddItem (Str(TahunH))Next TahunHMwqtInputs.TahunHijriyah.ListIndex = 120MwqtInputs.ShowEnd Sub

Sub PageSetup() With ActiveDocument.PageSetup .LineNumbering.Active = False .Orientation = wdOrientLandscape .TopMargin = CentimetersToPoints(2) .BottomMargin = CentimetersToPoints(2) .LeftMargin = CentimetersToPoints(2.5) .RightMargin = CentimetersToPoints(1.7) .Gutter = CentimetersToPoints(0) .HeaderDistance = CentimetersToPoints(1.27) .FooterDistance = CentimetersToPoints(1.27) .PageWidth = CentimetersToPoints(29.7) .PageHeight = CentimetersToPoints(21) .FirstPageTray = wdPrinterDefaultBin .OtherPagesTray = wdPrinterDefaultBin .SectionStart = wdSectionNewPage .OddAndEvenPagesHeaderFooter = False .DifferentFirstPageHeaderFooter = False .VerticalAlignment = wdAlignVerticalTop .SuppressEndnotes = False .MirrorMargins = True End WithEnd Sub

Surabaya, 11 – 12 Oktober 200257

Page 58: 12910335-Pemrograman-Komputer (1)

Kuliah Umum : Komputerisasi Program Hisab dan Rukyat

Surabaya, 11 – 12 Oktober 200258