1.Pendahuluan
Organisasi yang baik haruslah memiliki manajemen kontrol kinerja yang baik baik dari dalam maupun dari luar. Organisasi yang baik juga adalah organisasi yang memilki partisipasi dan kontrol yang baik dari anggota yang dipimpinnya.Pengawasan adalah proses untuk menjamin bahwa tujuan – tujuan organisasi tercapai sesuai dengan maksud organisasi tersebut.
2.Isi
Pengawasan pendahuluan ( feed forward control ) dirancang untuk mengantisipasi masalah – masalah atau penyimpangan – penyimpangan dari standar atau tujuan dan memungkinkan koreksi dibuat sebelum suatu tahap kegiatan tertentu diselesaikan .
Pengawasan yang dilakukan bersamaan dengan pelaksanaan kegiatan ( concurrent control ) merupakan proses dimana aspek tertentu harus dipenuhi dulu sebelum kegiatan – kegiatan bisa dilanjutkan, atau menjadi semacam peralatan “double – check” yang lebih menjamin ketepatan pelaksanaan suatu kegiatan .
Pengawasan umpan balik ( feedback control ) merupakan pengawasan yang biasa disebut dengan past – action controls, mengukur hasil – hasil dari suatu kegiatan yang telah diselesaikan .
Proses pengawasan juga memiliki 5 tahap yaitu :
Penetapan standar
Penetapan standar adalah penetapan suatu satuan pengukuran yang dapat digunakan sebagai “patokan” untuk penilaian hasil – hasil . Standar sendiri memiliki 3 standar umum yaitu :
Standar – standar phisik, mungkin meliputi kuantitas barang atau jasa, jumlah langganan, atau kualitas produk Standar – standar moneter, yang ditunjukkan dalam rupiah dan mencakup biaya tenaga kerja, biaya penjualan, laba kotor, pendapatan penjualan, dan sejenisnya .
Standar – standar waktu, meliputi kecepatan produksi atau batas waktu suatu pekerjaan harus diselesaikan .
Dalam organisasi mahasiswa perlu pula hendaknya dilaksanakan pengawasan dalam oraganisasi tersebut agar oerganisasi tidak melenceng dari tujuan utamanya.
Sementara itu aspek-aspek yang merupakan dimensi eksternal organisasi seperti faktor ekonomi, politik, sosial, perkembangan teknologi, kependudukan dan sebagainya, menjadi kajian dari ilmu manajemen strategik (strategic management). Jadi, meskipun faktor eksternal ini juga memiliki pengaruh yang sangat besar terhadap keberhasilan organisasi dalam mewujudkan visi dan misinya
3.Kesimpulan
Dalam suatu organisasi pemuda atau mahasiswa hendaklah diterapkan pengawasan pada organisasi tersebut , Hal ini dimaksudkan selain untuk kelancaran jalannya organisasi juga dimaksudkan untuk menghindari dari melencengnya tujuan-tujuan utama organisasi tersebut.
Rabu, 24 November 2010
penerapan komunikasi pada organisasi pemuda
Pendahuluan
Komunikasi adalah proses pemindahan pengertian dalam bentuk gagasan atau informasi dari seseorang ke orang lain . Komunikasi juga sebagai suatu proses dimana orang – orang bermaksud memberikan pengertian – melalui pengiringan berita secara simbolis, dapat menghubungkan para anggota berbagai satuan organisasi yang berbeda dan bidang yang berbeda pula, sehingga sering disebut rantai pertukaran informasi .
isi
Gaya komunikasi organisasi
Enam gaya komunikasi menurut Steward L.Tubbs dan Sylvia Moss
[sunting] Gaya komunikasi mengendalikan
Gaya komunikasi mengendalikan (dalam bahasa Inggris: The Controlling Style) ditandai dengan adanya satu kehendak atau maksud untuk membatasi, memaksa dan mengatur perilaku, pikiran dan tanggapan orang lain. Orang-orang yang menggunakan gaya komunikasi ini dikenal dengan nama komunikator satu arah atau one-way communications.
Pihak – pihak yang memakai controlling style of communication ini, lebih memusatkan perhatian kepada pengiriman pesan dibanding upaya mereka untuk berharap pesan. Mereka tidak mempunyai rasa ketertarikan dan perhatian untuk berbagi pesan. Mereka tidak mempunyai rasa ketertarikan dan perhatian pada umpan balik, kecuali jika umpan balik atau feedback tersebut digunakan untuk kepentingan pribadi mereka. Para komunikator satu arah tersebut tidak khawatir dengan pandangan negatif orang lain, tetapi justru berusaha menggunakan kewenangan dan kekuasaan untuk memaksa orang lain mematuhi pandangan-pandangannya.
Pesan-pesan yag berasal dari komunikator satu arah ini, tidak berusaha ‘menjual’ gagasan agar dibicarakan bersama namun lebih pada usaha menjelaskan kepada orang lain apa yang dilakukannya. The controlling style of communication ini sering dipakai untuk mempersuasi orang lain supaya bekerja dan bertindak secara efektif, dan pada umumnya dalam bentuk kritik. Namun demkian, gaya komunikasi yang bersifat mengendalikan ini, tidak jarang bernada negatif sehingga menyebabkan orang lain memberi respons atau tanggapan yang negatif pula.
[sunting] Gaya komunikasi dua arah
The Equalitarian Style Aspek penting gaya komunikasi ini ialah adanya landasan kesamaan. The equalitarian style of communication ini ditandai dengan berlakunya arus penyebaran pesan-pesan verbal secara lisan maupun tertulis yang bersifat dua arah (two-way communication). Dalam gaya komunikasi ini, tindak komunikasi dilakukan secara terbuka. Artinya, setiap anggota organisasi dapat mengungkapkan gagasan ataupun pendapat dalam suasana yang rileks, santai dan informal. Dalam suasana yang demikian, memungkinkan setiap anggota organisasi mencapai kesepakatan dan pengertian bersama.
Orang-orang yang menggunakan gaya komunikasi yang bermakna kesamaan ini, adalah orang-orang yang memiliki sikap kepedulian yang tinggi serta kemampuan membina hubungan yang baik dengan orang lain baik dalam konteks pribadi maupun dalam lingkup hubungan kerja. The equalitarian style ini akan memudahkan tindak komunikasi dalam organisasi, sebab gaya ini efektif dalam memelihara empati dan kerja sama, khususnya dalam situasi untuk mengambil keputusan terhadap suatu permasalahan yang kompleks. Gaya komunikasi ini pula yang menjamin berlangsungnya tindak berbagi informasi di antara para anggota dalam suatu organisasi.
3. The Structuring Style Gaya komunikasi yang berstruktur ini, memanfaatkan pesan-pesan verbal secara tertulis maupun lisan guna memantapkan perintah yang harus dilaksanakan, penjadwalan tugas dan pekerjaan serta struktur organisasi. Pengirim pesan (sender) lebih memberi perhatian kepada keinginan untuk mempengaruhi orang lain dengan jalan berbagi informasi tentang tujuan organisasi, jadwal kerja, aturan dan prosedur yang berlaku dalam organisasi tersebut.
Stogdill dan Coons dari The Bureau of Business Research of Ohio State University, menemukan dimensi dari kepemimpinan yang efektif, yang mereka beri nama Struktur Inisiasi atau Initiating Structure. Stogdill dan Coons menjelaskan mereka bahwa pemrakarsa (initiator) struktur yang efisien adalah orang-orang yang mampu merencanakan pesan-pesan verbal guna lebih memantapkan tujuan organisasi, kerangka penugasan dan memberikan jawaban atas pertanyaan-pertanyaan yang muncul.
4. The Dynamic style Gaya komunikasi yang dinamis ini memiliki kecenderungan agresif, karena pengirim pesan atau sender memahami bahwa lingkungan pekerjaannya berorientasi pada tindakan (action-oriented). The dynamic style of communication ini sering dipakai oleh para juru kampanye ataupun supervisor yang membawa para wiraniaga (salesmen atau saleswomen).
Tujuan utama gaya komunikasi yang agresif ini adalah mestimulasi atau merangsang pekerja/karyawan untuk bekerja dengan lebih cepat dan lebih baik. Gaya komunikasi ini cukup efektif digunakan dalam mengatasi persoalan-persoalan yang bersifat kritis, namun dengan persyaratan bahwa karyawan atau bawahan mempunyai kemampuan yang cukup untuk mengatasi masalah yang kritis tersebut.
5. The Relinguishing Style Gaya komunikasi ini lebih mencerminkan kesediaan untuk menerima saran, pendapat ataupun gagasan orang lain, daripada keinginan untuk memberi perintah, meskipun pengirim pesan (sender) mempunyai hak untuk memberi perintah dan mengontrol orang lain.
Pesan-pesan dalam gaya komunikasi ini akan efektif ketika pengirim pesan atau sender sedang bekerja sama dengan orang-orang yang berpengetahuan luas, berpengalaman, teliti serta bersedia untuk bertanggung jawab atas semua tugas atau pekerjaan yang dibebankannya.
Komunikasi adalah proses pemindahan pengertian dalam bentuk gagasan atau informasi dari seseorang ke orang lain . Komunikasi juga sebagai suatu proses dimana orang – orang bermaksud memberikan pengertian – melalui pengiringan berita secara simbolis, dapat menghubungkan para anggota berbagai satuan organisasi yang berbeda dan bidang yang berbeda pula, sehingga sering disebut rantai pertukaran informasi .
isi
Gaya komunikasi organisasi
Enam gaya komunikasi menurut Steward L.Tubbs dan Sylvia Moss
[sunting] Gaya komunikasi mengendalikan
Gaya komunikasi mengendalikan (dalam bahasa Inggris: The Controlling Style) ditandai dengan adanya satu kehendak atau maksud untuk membatasi, memaksa dan mengatur perilaku, pikiran dan tanggapan orang lain. Orang-orang yang menggunakan gaya komunikasi ini dikenal dengan nama komunikator satu arah atau one-way communications.
Pihak – pihak yang memakai controlling style of communication ini, lebih memusatkan perhatian kepada pengiriman pesan dibanding upaya mereka untuk berharap pesan. Mereka tidak mempunyai rasa ketertarikan dan perhatian untuk berbagi pesan. Mereka tidak mempunyai rasa ketertarikan dan perhatian pada umpan balik, kecuali jika umpan balik atau feedback tersebut digunakan untuk kepentingan pribadi mereka. Para komunikator satu arah tersebut tidak khawatir dengan pandangan negatif orang lain, tetapi justru berusaha menggunakan kewenangan dan kekuasaan untuk memaksa orang lain mematuhi pandangan-pandangannya.
Pesan-pesan yag berasal dari komunikator satu arah ini, tidak berusaha ‘menjual’ gagasan agar dibicarakan bersama namun lebih pada usaha menjelaskan kepada orang lain apa yang dilakukannya. The controlling style of communication ini sering dipakai untuk mempersuasi orang lain supaya bekerja dan bertindak secara efektif, dan pada umumnya dalam bentuk kritik. Namun demkian, gaya komunikasi yang bersifat mengendalikan ini, tidak jarang bernada negatif sehingga menyebabkan orang lain memberi respons atau tanggapan yang negatif pula.
[sunting] Gaya komunikasi dua arah
The Equalitarian Style Aspek penting gaya komunikasi ini ialah adanya landasan kesamaan. The equalitarian style of communication ini ditandai dengan berlakunya arus penyebaran pesan-pesan verbal secara lisan maupun tertulis yang bersifat dua arah (two-way communication). Dalam gaya komunikasi ini, tindak komunikasi dilakukan secara terbuka. Artinya, setiap anggota organisasi dapat mengungkapkan gagasan ataupun pendapat dalam suasana yang rileks, santai dan informal. Dalam suasana yang demikian, memungkinkan setiap anggota organisasi mencapai kesepakatan dan pengertian bersama.
Orang-orang yang menggunakan gaya komunikasi yang bermakna kesamaan ini, adalah orang-orang yang memiliki sikap kepedulian yang tinggi serta kemampuan membina hubungan yang baik dengan orang lain baik dalam konteks pribadi maupun dalam lingkup hubungan kerja. The equalitarian style ini akan memudahkan tindak komunikasi dalam organisasi, sebab gaya ini efektif dalam memelihara empati dan kerja sama, khususnya dalam situasi untuk mengambil keputusan terhadap suatu permasalahan yang kompleks. Gaya komunikasi ini pula yang menjamin berlangsungnya tindak berbagi informasi di antara para anggota dalam suatu organisasi.
3. The Structuring Style Gaya komunikasi yang berstruktur ini, memanfaatkan pesan-pesan verbal secara tertulis maupun lisan guna memantapkan perintah yang harus dilaksanakan, penjadwalan tugas dan pekerjaan serta struktur organisasi. Pengirim pesan (sender) lebih memberi perhatian kepada keinginan untuk mempengaruhi orang lain dengan jalan berbagi informasi tentang tujuan organisasi, jadwal kerja, aturan dan prosedur yang berlaku dalam organisasi tersebut.
Stogdill dan Coons dari The Bureau of Business Research of Ohio State University, menemukan dimensi dari kepemimpinan yang efektif, yang mereka beri nama Struktur Inisiasi atau Initiating Structure. Stogdill dan Coons menjelaskan mereka bahwa pemrakarsa (initiator) struktur yang efisien adalah orang-orang yang mampu merencanakan pesan-pesan verbal guna lebih memantapkan tujuan organisasi, kerangka penugasan dan memberikan jawaban atas pertanyaan-pertanyaan yang muncul.
4. The Dynamic style Gaya komunikasi yang dinamis ini memiliki kecenderungan agresif, karena pengirim pesan atau sender memahami bahwa lingkungan pekerjaannya berorientasi pada tindakan (action-oriented). The dynamic style of communication ini sering dipakai oleh para juru kampanye ataupun supervisor yang membawa para wiraniaga (salesmen atau saleswomen).
Tujuan utama gaya komunikasi yang agresif ini adalah mestimulasi atau merangsang pekerja/karyawan untuk bekerja dengan lebih cepat dan lebih baik. Gaya komunikasi ini cukup efektif digunakan dalam mengatasi persoalan-persoalan yang bersifat kritis, namun dengan persyaratan bahwa karyawan atau bawahan mempunyai kemampuan yang cukup untuk mengatasi masalah yang kritis tersebut.
5. The Relinguishing Style Gaya komunikasi ini lebih mencerminkan kesediaan untuk menerima saran, pendapat ataupun gagasan orang lain, daripada keinginan untuk memberi perintah, meskipun pengirim pesan (sender) mempunyai hak untuk memberi perintah dan mengontrol orang lain.
Pesan-pesan dalam gaya komunikasi ini akan efektif ketika pengirim pesan atau sender sedang bekerja sama dengan orang-orang yang berpengetahuan luas, berpengalaman, teliti serta bersedia untuk bertanggung jawab atas semua tugas atau pekerjaan yang dibebankannya.
Senin, 22 November 2010
Pemrograman Qbasic 10
Modul 10
PENGOLAHAN FILE BINARY
Selain pengolahan data Sequential dan Random, QBasic juga
menyediakan pengolahan yang bersifat Binary. Pada pengolahan yang
bersifat Binary, file dapat dibaca/ditulis secara per-Byte pada
posisi yang diinginkan, sehingga tidak terikat kepada urutan
maupun struktur data.
Pengolahan yang bersifat Binary banyak digunakan untuk keperluan-
keperluan khusus yang membutuhkan akses langsung ke satuan data
di tingkat Byte. Misalnya membuat program Enkripsi dan Dekripsi
file, pada proses Enkripsi, isi suatu file disandikan byte-per-
byte sehingga tidak dapat dikenali lagi secara normal oleh sistem
yang membuatnya. Agar isi file tersebut dapat dikenali kembali,
maka diperlukan proses Dekripsi yang mengembalikannya ke keadaan
semula.
Pengolahan yang bersifat Binary juga banyak digunakan pada
pembuatan program AntiVirus, Crack, Game Cheat yang membutuhkan
akses ke byte level.
1. Perintah membuka file Binary
Seperti pada pengolahan file umumnya, sebelum digunakan file
binary harus dibuka dengan perintah sebagai berikut :
OPEN namafile FOR BINARY AS [#]filenum
Contoh :
OPEN "Sandi.bin" FOR BINARY AS #1
Membuka file "Sandi.bin" untuk diolah secara binary sebagai file
nomor 1.
2. Mendapatkan jumlah byte pada file binary yang telah terbuka.
JlhByte = LOF(1)
Fungsi LOF (Length Of File) akan mengembalikan ukuran file binary
dalam ukuran byte.
Catatan : 1 KB = 1024 Byte, 1 MB = 1024*1024
3. Perintah input/output pada file Binary
Perintah menulis data
PUT [#]filenum[,posisi][,variable]
Contoh :
MyData = 10
PUT #1, 101, MyData
Menulis karakter ASCII 10 (line feed) pada posisi byte ke 101
dalam file nomor 1.
Contoh Lain :
Dim MyChar As String*1
MyChar = Chr$(10)
Put #1, 101, MyChar
Perintah membaca data
GET [#]filenum[,posisi][,variabel]
Contoh :
Dim MyChar As String*1
GET #1, 101, MyChar
Membaca data byte posisi ke dari file nomor 1 ke variabel
MyChar.
4. Perintah menutup file Binary
Setelah selesai digunakan, file Binary perlu ditutup untuk
memastikan semua data ditulis ke media penyimpanan, dan
memberikan indikator EOF.
Nb. Untuk mempercepat proses I/O, sistem operasi menyediakan
memory buffer sebagai tempat pembacaan dan penulisan sementara.
Perintah Close untuk memastikan semua data dari buffer benar-
benar ditulis ke media penyimpanan.
Contoh :
CLOSE #1
Menutup file binary nomor 1.
Contoh :
'Program Enkripsi dan Dekripsi dengan kunci NOT
DIM Source AS STRING
DIM Target AS STRING
DIM FSize AS LONG
DIM MyChar AS STRING * 1
CLS
PRINT "Program Enkripsi/Dekripsi Data"
PRINT "Menggunakan operator NOT"
PRINT "------------------------"
INPUT "Masukkan Source :", Source
INPUT "Masukkan Target :", Target
IF Source = Target THEN
PRINT "Nama file source tidak boleh sama dengan target"
ELSE
OPEN Source FOR BINARY AS #1 'Buka source sebagai 1
OPEN Target FOR BINARY AS #2 'Buka target sebagai 2
FSize = LOF(1) 'Mendapatkan ukuran file 1
FOR I = 1 TO FSize
GET #1, I, MyChar 'Baca byte posisi ke i
'dari source
MyChar = CHR$(255 - ASC(MyChar)) 'Enkripsi dengan NOT
PUT #2, I, MyChar 'Tulis ke posisi ke i
'Pada Target
NEXT I
CLOSE #1
CLOSE #2
PRINT
PRINT "Proses Selesai"
END IF
END
'Program Menghilangkan Password file *.Mdb Microsoft Access 97
Dim nama As String
Dim huruf As String*1
INPUT "Masukkan nama file :",nama
IF Dir$(nama) = "" THEN
PRINT "File ";nama;" tidak ada !"
ELSE
OPEN nama FOR BINARY AS #1
huruf = Chr$(134)
PUT #1, 66, huruf
CLOSE #1
PRINT "Password ";nama;" telah dihilangkan !"
END IF
END
PENGOLAHAN FILE BINARY
Selain pengolahan data Sequential dan Random, QBasic juga
menyediakan pengolahan yang bersifat Binary. Pada pengolahan yang
bersifat Binary, file dapat dibaca/ditulis secara per-Byte pada
posisi yang diinginkan, sehingga tidak terikat kepada urutan
maupun struktur data.
Pengolahan yang bersifat Binary banyak digunakan untuk keperluan-
keperluan khusus yang membutuhkan akses langsung ke satuan data
di tingkat Byte. Misalnya membuat program Enkripsi dan Dekripsi
file, pada proses Enkripsi, isi suatu file disandikan byte-per-
byte sehingga tidak dapat dikenali lagi secara normal oleh sistem
yang membuatnya. Agar isi file tersebut dapat dikenali kembali,
maka diperlukan proses Dekripsi yang mengembalikannya ke keadaan
semula.
Pengolahan yang bersifat Binary juga banyak digunakan pada
pembuatan program AntiVirus, Crack, Game Cheat yang membutuhkan
akses ke byte level.
1. Perintah membuka file Binary
Seperti pada pengolahan file umumnya, sebelum digunakan file
binary harus dibuka dengan perintah sebagai berikut :
OPEN namafile FOR BINARY AS [#]filenum
Contoh :
OPEN "Sandi.bin" FOR BINARY AS #1
Membuka file "Sandi.bin" untuk diolah secara binary sebagai file
nomor 1.
2. Mendapatkan jumlah byte pada file binary yang telah terbuka.
JlhByte = LOF(1)
Fungsi LOF (Length Of File) akan mengembalikan ukuran file binary
dalam ukuran byte.
Catatan : 1 KB = 1024 Byte, 1 MB = 1024*1024
3. Perintah input/output pada file Binary
Perintah menulis data
PUT [#]filenum[,posisi][,variable]
Contoh :
MyData = 10
PUT #1, 101, MyData
Menulis karakter ASCII 10 (line feed) pada posisi byte ke 101
dalam file nomor 1.
Contoh Lain :
Dim MyChar As String*1
MyChar = Chr$(10)
Put #1, 101, MyChar
Perintah membaca data
GET [#]filenum[,posisi][,variabel]
Contoh :
Dim MyChar As String*1
GET #1, 101, MyChar
Membaca data byte posisi ke dari file nomor 1 ke variabel
MyChar.
4. Perintah menutup file Binary
Setelah selesai digunakan, file Binary perlu ditutup untuk
memastikan semua data ditulis ke media penyimpanan, dan
memberikan indikator EOF.
Nb. Untuk mempercepat proses I/O, sistem operasi menyediakan
memory buffer sebagai tempat pembacaan dan penulisan sementara.
Perintah Close untuk memastikan semua data dari buffer benar-
benar ditulis ke media penyimpanan.
Contoh :
CLOSE #1
Menutup file binary nomor 1.
Contoh :
'Program Enkripsi dan Dekripsi dengan kunci NOT
DIM Source AS STRING
DIM Target AS STRING
DIM FSize AS LONG
DIM MyChar AS STRING * 1
CLS
PRINT "Program Enkripsi/Dekripsi Data"
PRINT "Menggunakan operator NOT"
PRINT "------------------------"
INPUT "Masukkan Source :", Source
INPUT "Masukkan Target :", Target
IF Source = Target THEN
PRINT "Nama file source tidak boleh sama dengan target"
ELSE
OPEN Source FOR BINARY AS #1 'Buka source sebagai 1
OPEN Target FOR BINARY AS #2 'Buka target sebagai 2
FSize = LOF(1) 'Mendapatkan ukuran file 1
FOR I = 1 TO FSize
GET #1, I, MyChar 'Baca byte posisi ke i
'dari source
MyChar = CHR$(255 - ASC(MyChar)) 'Enkripsi dengan NOT
PUT #2, I, MyChar 'Tulis ke posisi ke i
'Pada Target
NEXT I
CLOSE #1
CLOSE #2
PRINT "Proses Selesai"
END IF
END
'Program Menghilangkan Password file *.Mdb Microsoft Access 97
Dim nama As String
Dim huruf As String*1
INPUT "Masukkan nama file :",nama
IF Dir$(nama) = "" THEN
PRINT "File ";nama;" tidak ada !"
ELSE
OPEN nama FOR BINARY AS #1
huruf = Chr$(134)
PUT #1, 66, huruf
CLOSE #1
PRINT "Password ";nama;" telah dihilangkan !"
END IF
END
Pemrograman Qbasic 9
MODUL 9
PENGOLAHAN FILE ACAK
Pada file sequential pengolahan datanya bersifat FIFO, tetapi
dalam pengolahan data kadang-kadang diperlukan proses pengolahan
yang sifatnya acak sehingga pengolahannya dapat dilakukan dengan
cepat dan sederhana.
File sequential banyak digunakan pada ekspor/impor data antar
sistem dimana format pada sistem yang satu tidak dikenali oleh
sistem lain, sehingga data dari suatu sistem perlu diekspor dalam
bentuk teks, kemudian diimpor kembali oleh sistem lain. Pada
pengolahan seperti ini tentu saja proses pengolahannya bersifat
FIFO.
Pengolahan data yang membutuhkan pencarian, pengurutan dan
perbaikan data tentu saja sulit menggunakan proses pengolahan
FIFO, karena akan menggunakan sumber daya yang besar dan menjadi
rumit. Pada pengolahan data seperti ini sangat dibutuhkan proses
pemasukan maupun pengambilannya berdasarkan alamat data tersebut.
Agar data dapat diambil dengan cepat, tentu saja dalam
penyimpannannya membutuhkan keteraturan, yaitu setiap data
memiliki ukuran yang sama, sehingga alamat data dapat didapatkan
dengan cepat.
FILE ACAK
File acak didalam pengolahannya data ditempatkan dalam bentuk
record yang memiliki panjang yang tertentu. Dengan sistem
pengolahan yang demikian suatu record data dapat langsung dibaca
ataupun ditulis tanpa harus memproses record sebelumnya. Dalam
hal ini type data record akan berperan.
Contoh :
TYPE SISWA
NOINDUK AS STRING * 10
NAMA AS STRING * 15
TEORI AS SINGLE
PRAKTEK AS SINGLE
RATA AS SINGLE
END TYPE
Dim DAT As SISWA
Perintah pengolahan file ACAK
1. Perintah membuka file ACAK
Sebelum suatu file randon dapat digunakan harus dibuka, jika file
tersebut belum ada, maka akan dibuat yang baru. Adapun perintah
membuka file ACAK adalah sebagai berikut :
OPEN namafile FOR RANDOM AS [#]filenum [LEN=reclen]
Contoh :
OPEN "SISWA.REC" FOR RANDOM AS #1 LEN = LEN(DAT)
Membuka file "siswa.rec" untuk diolah secara acak sebagai file
nomor 1 dan ukuran tiap record adalah sama dengan ukuran variabel
DAT.
2. Mendapatkan jumlah record pada file ACAK yang telah terbuka.
JlhRec = LOF(1)/LEN(DAT)
Jumlah record dalam file ACAK adalah ukuran keseluruhan file ACAK
dibagi dengan ukuran tiap record.
3. Perintah input/output pada file ACAK
Perintah menulis data
PUT [#]filenum[,nomorrecord][,variable]
Contoh :
DAT.NOINDUK = "920403024"
DAT.NAMA = "Hendra"
DAT.TEORI = 70
DAT.PRAKTEK = 80
DAT.RATA = (DAT.TEORI+DAT.PRAKTEK)/2
PUT #1,JlhRec+1,DAT
Menyimpan data dari variabel DAT ke file ACAK nomor 1, sebagai
record baru pada akhir file (JlhRec+1).
Perintah membaca data
GET [#]filenum[,nomorrecord][,variabel]
Contoh :
GET #1,1,DAT
Membaca data record nomor 1 dari file ACAK nomor 1 ke variabel
DAT.
4. Perintah menutup file ACAK
Setelah selesai digunakan, file ACAK perlu ditutup untuk
memastikan semua data ditulis ke media penyimpanan, dan
memberikan indikator EOF.
Contoh :
CLOSE #1
Menutup file acak nomor 1.
Contoh sederhana program pengolahan data dengan file ACAK.
'PROGRAM MENGISI DATA KE FILE SISWA.REC
TYPE SISWA
NOINDUK AS STRING * 10
NAMA AS STRING * 15
TEORI AS SINGLE
PRAKTEK AS SINGLE
RATA AS SINGLE
END TYPE
DIM DAT AS SISWA
DIM NOINDUK AS STRING
OPEN "SISWA.REC" FOR RANDOM AS #1 LEN = LEN(DAT)
RECNO = LOF(1)/LEN(DAT)
DO
PRINT "DATA SISWA KE -";I
INPUT "NO.INDUK :",NOINDUK
IF NOINDUK <> "" THEN
DAT.NOINDUK = NOINDUK
INPUT "NAMA :",DAT.NAMA
INPUT "TEORI :",DAT.TEORI
INPUT "PRAKTEK :",DAT.PRAKTEK
DAT.RATA = (DAT.TEORI+DAT.PRAKTEK)/2
PUT #1,RECNO+1,DAT
RECNO = RECNO + 1
ENDIF
LOOP UNTIL NOINDUK = ""
CLOSE #1
END
'PROGRAM MENGURUT DATA DI FILE SISWA.REC
TYPE SISWA
NOINDUK AS STRING * 10
NAMA AS STRING * 15
TEORI AS SINGLE
PRAKTEK AS SINGLE
RATA AS SINGLE
END TYPE
DIM DAT1 AS SISWA
DIM DAT2 AS SISWA
OPEN "SISWA.REC" FOR RANDOM AS #1 LEN = LEN(DAT)
JD = LOF(1)/LEN(DAT)
FOR I = (JD-1) TO 1 STEP -1
Sempurna = 1
FOR J = 1 TO I STEP 1
GET #1,J,DAT1
GET #1,J+1,DAT2
IF DAT1.NAMA > DAT2.NAMA THEN
PUT #1,J,DAT2
PUT #1,J+1,DAT1
Sempurna = 0
ENDIF
NEXT J
If Sempurna = 1 Then
I = 0
End IF
NEXT I
CLOSE #1
END
'PROGRAM BACA DATA DARI SISWA.REC DAN MENCETAK KE LAYAR
CLS
TYPE SISWA
NOINDUK AS STRING * 10
NAMA AS STRING * 15
TEORI AS SINGLE
PRAKTEK AS SINGLE
RATA AS SINGLE
END TYPE
DIM DAT AS SISWA
OPEN "SISWA.REC" FOR RANDOM AS #1 LEN = LEN(DAT)
JD = LOF(1)/LEN(DAT)
PRINT -------------------------------------------------------------------"
PRINT "NO.INDUK NAMA TEORI PRAKTEK RATA-RATA ULUS "
PRINT "-------------------------------------------------------------------"
POLA$="\ \ \ \ ###.## ###.## ###.## \ \ "
VIEW PRINT 4 TO 23
FOR I = 1 TO JD STEP 1
GET #1,I,DAT
IF DAT.RATA < 60 THEN LULUS$="TIDAK" ELSE LULUS$ = "YA"
PRINT USING POLA$;DAT.NOINDUK;DAT.NAMA$;DAT.TEORI;
DAT.PRAKTEK;DAT.RATA;LULUS$
NEXT I
CLOSE #1
END
LATIHAN
1. Buatlah program untuk mengisi data ke file PEGAWAI.REC.
NAMA GOL JAM KERJA
SURYAJAYA A 50
SUTIMAN C 48
JUSMAN B 60
WIJAYA A 50
YUSNI B 48
TUTI A 45
2. Buatlah program mengurut data pada PEGEWAI.REC berdasarkan
nama.
3. Buatlah program membaca data dari file PEGAWAI.REC dan
menghasilkan laporan dengan ketentuan.
- Gaji Pokok PEGAWAI ditentukan sebagai berikut :
Golongan Gaji Pokok/Bulan
A Rp. 175.000,00
B Rp. 220.000,00
C Rp. 350.000,00
- jika jam kerja > 48 jam diberikan Bonus = (jam kerja - 48) * 5000/jam
- jika jam kerja < 48 jan dikenakan Potongan = (48 - jam kerja) * 1000/jam
- Total Gaji = Gaji Pokok + Bonus - Potongan
Output yang diharapkan :
P.T. JAYA WIJAYA
JL. Kemerdekaan Barat No. 12
============================
LAPORAN GAJI PEGAWAI
========================================================
Nama Gol Jam Gaji Bonus Potongan Total
Pegawai Kerja Pokok (Rp) (Rp) (Rp)
--------------------------------------------------------
Suryajaya C 50 350,000 10,000 - 360,000
Sutiman B 48 200,000 - - 200,000
========================================================
Total : 560,000
========================================================
PENGOLAHAN FILE ACAK
Pada file sequential pengolahan datanya bersifat FIFO, tetapi
dalam pengolahan data kadang-kadang diperlukan proses pengolahan
yang sifatnya acak sehingga pengolahannya dapat dilakukan dengan
cepat dan sederhana.
File sequential banyak digunakan pada ekspor/impor data antar
sistem dimana format pada sistem yang satu tidak dikenali oleh
sistem lain, sehingga data dari suatu sistem perlu diekspor dalam
bentuk teks, kemudian diimpor kembali oleh sistem lain. Pada
pengolahan seperti ini tentu saja proses pengolahannya bersifat
FIFO.
Pengolahan data yang membutuhkan pencarian, pengurutan dan
perbaikan data tentu saja sulit menggunakan proses pengolahan
FIFO, karena akan menggunakan sumber daya yang besar dan menjadi
rumit. Pada pengolahan data seperti ini sangat dibutuhkan proses
pemasukan maupun pengambilannya berdasarkan alamat data tersebut.
Agar data dapat diambil dengan cepat, tentu saja dalam
penyimpannannya membutuhkan keteraturan, yaitu setiap data
memiliki ukuran yang sama, sehingga alamat data dapat didapatkan
dengan cepat.
FILE ACAK
File acak didalam pengolahannya data ditempatkan dalam bentuk
record yang memiliki panjang yang tertentu. Dengan sistem
pengolahan yang demikian suatu record data dapat langsung dibaca
ataupun ditulis tanpa harus memproses record sebelumnya. Dalam
hal ini type data record akan berperan.
Contoh :
TYPE SISWA
NOINDUK AS STRING * 10
NAMA AS STRING * 15
TEORI AS SINGLE
PRAKTEK AS SINGLE
RATA AS SINGLE
END TYPE
Dim DAT As SISWA
Perintah pengolahan file ACAK
1. Perintah membuka file ACAK
Sebelum suatu file randon dapat digunakan harus dibuka, jika file
tersebut belum ada, maka akan dibuat yang baru. Adapun perintah
membuka file ACAK adalah sebagai berikut :
OPEN namafile FOR RANDOM AS [#]filenum [LEN=reclen]
Contoh :
OPEN "SISWA.REC" FOR RANDOM AS #1 LEN = LEN(DAT)
Membuka file "siswa.rec" untuk diolah secara acak sebagai file
nomor 1 dan ukuran tiap record adalah sama dengan ukuran variabel
DAT.
2. Mendapatkan jumlah record pada file ACAK yang telah terbuka.
JlhRec = LOF(1)/LEN(DAT)
Jumlah record dalam file ACAK adalah ukuran keseluruhan file ACAK
dibagi dengan ukuran tiap record.
3. Perintah input/output pada file ACAK
Perintah menulis data
PUT [#]filenum[,nomorrecord][,variable]
Contoh :
DAT.NOINDUK = "920403024"
DAT.NAMA = "Hendra"
DAT.TEORI = 70
DAT.PRAKTEK = 80
DAT.RATA = (DAT.TEORI+DAT.PRAKTEK)/2
PUT #1,JlhRec+1,DAT
Menyimpan data dari variabel DAT ke file ACAK nomor 1, sebagai
record baru pada akhir file (JlhRec+1).
Perintah membaca data
GET [#]filenum[,nomorrecord][,variabel]
Contoh :
GET #1,1,DAT
Membaca data record nomor 1 dari file ACAK nomor 1 ke variabel
DAT.
4. Perintah menutup file ACAK
Setelah selesai digunakan, file ACAK perlu ditutup untuk
memastikan semua data ditulis ke media penyimpanan, dan
memberikan indikator EOF.
Contoh :
CLOSE #1
Menutup file acak nomor 1.
Contoh sederhana program pengolahan data dengan file ACAK.
'PROGRAM MENGISI DATA KE FILE SISWA.REC
TYPE SISWA
NOINDUK AS STRING * 10
NAMA AS STRING * 15
TEORI AS SINGLE
PRAKTEK AS SINGLE
RATA AS SINGLE
END TYPE
DIM DAT AS SISWA
DIM NOINDUK AS STRING
OPEN "SISWA.REC" FOR RANDOM AS #1 LEN = LEN(DAT)
RECNO = LOF(1)/LEN(DAT)
DO
PRINT "DATA SISWA KE -";I
INPUT "NO.INDUK :",NOINDUK
IF NOINDUK <> "" THEN
DAT.NOINDUK = NOINDUK
INPUT "NAMA :",DAT.NAMA
INPUT "TEORI :",DAT.TEORI
INPUT "PRAKTEK :",DAT.PRAKTEK
DAT.RATA = (DAT.TEORI+DAT.PRAKTEK)/2
PUT #1,RECNO+1,DAT
RECNO = RECNO + 1
ENDIF
LOOP UNTIL NOINDUK = ""
CLOSE #1
END
'PROGRAM MENGURUT DATA DI FILE SISWA.REC
TYPE SISWA
NOINDUK AS STRING * 10
NAMA AS STRING * 15
TEORI AS SINGLE
PRAKTEK AS SINGLE
RATA AS SINGLE
END TYPE
DIM DAT1 AS SISWA
DIM DAT2 AS SISWA
OPEN "SISWA.REC" FOR RANDOM AS #1 LEN = LEN(DAT)
JD = LOF(1)/LEN(DAT)
FOR I = (JD-1) TO 1 STEP -1
Sempurna = 1
FOR J = 1 TO I STEP 1
GET #1,J,DAT1
GET #1,J+1,DAT2
IF DAT1.NAMA > DAT2.NAMA THEN
PUT #1,J,DAT2
PUT #1,J+1,DAT1
Sempurna = 0
ENDIF
NEXT J
If Sempurna = 1 Then
I = 0
End IF
NEXT I
CLOSE #1
END
'PROGRAM BACA DATA DARI SISWA.REC DAN MENCETAK KE LAYAR
CLS
TYPE SISWA
NOINDUK AS STRING * 10
NAMA AS STRING * 15
TEORI AS SINGLE
PRAKTEK AS SINGLE
RATA AS SINGLE
END TYPE
DIM DAT AS SISWA
OPEN "SISWA.REC" FOR RANDOM AS #1 LEN = LEN(DAT)
JD = LOF(1)/LEN(DAT)
PRINT -------------------------------------------------------------------"
PRINT "NO.INDUK NAMA TEORI PRAKTEK RATA-RATA ULUS "
PRINT "-------------------------------------------------------------------"
POLA$="\ \ \ \ ###.## ###.## ###.## \ \ "
VIEW PRINT 4 TO 23
FOR I = 1 TO JD STEP 1
GET #1,I,DAT
IF DAT.RATA < 60 THEN LULUS$="TIDAK" ELSE LULUS$ = "YA"
PRINT USING POLA$;DAT.NOINDUK;DAT.NAMA$;DAT.TEORI;
DAT.PRAKTEK;DAT.RATA;LULUS$
NEXT I
CLOSE #1
END
LATIHAN
1. Buatlah program untuk mengisi data ke file PEGAWAI.REC.
NAMA GOL JAM KERJA
SURYAJAYA A 50
SUTIMAN C 48
JUSMAN B 60
WIJAYA A 50
YUSNI B 48
TUTI A 45
2. Buatlah program mengurut data pada PEGEWAI.REC berdasarkan
nama.
3. Buatlah program membaca data dari file PEGAWAI.REC dan
menghasilkan laporan dengan ketentuan.
- Gaji Pokok PEGAWAI ditentukan sebagai berikut :
Golongan Gaji Pokok/Bulan
A Rp. 175.000,00
B Rp. 220.000,00
C Rp. 350.000,00
- jika jam kerja > 48 jam diberikan Bonus = (jam kerja - 48) * 5000/jam
- jika jam kerja < 48 jan dikenakan Potongan = (48 - jam kerja) * 1000/jam
- Total Gaji = Gaji Pokok + Bonus - Potongan
Output yang diharapkan :
P.T. JAYA WIJAYA
JL. Kemerdekaan Barat No. 12
============================
LAPORAN GAJI PEGAWAI
========================================================
Nama Gol Jam Gaji Bonus Potongan Total
Pegawai Kerja Pokok (Rp) (Rp) (Rp)
--------------------------------------------------------
Suryajaya C 50 350,000 10,000 - 360,000
Sutiman B 48 200,000 - - 200,000
========================================================
Total : 560,000
========================================================
Pemrograman Qbasic 8
MODUL 8
PENGOLAHAN SEQUENTIAL FILE
File merupakan fasilitas penyimpanan data pada external storage
yang bersifat permanen, jika dibandingkan dengan penyimpanan ke
RAM yang sifatnya sementara. Dengan pemakaian file kita dapat
menghemat pemakaian RAM komputer yang memiliki jumlah yang
terbatas serta dapat melakukan dokumentasi untuk jangka waktu
yang panjang.
Pada QBasic pengolahan file dapat dibagi atas tiga jenis, yaitu :
1. SEQUENTIAL FILE
2. RANDOM FILE
3. BINARY FILE
Pada Sequential file (file urut) proses pengolahannya dilakukan
secara linier dari awal sampai akhir, tanpa bisa kembali kebagian
sebelumnya, kecuali proses dimulai lagi dari awal. Jadi dalam
pengolahan datanya bersifat first in first out, artinya pembacaan
data dari file ini harus dimulai dari data yang paling awal.
Pada umumnya pengolahan data yang menggunakan file sebagai media
INPUT maupun OUTPUT memiliki tiga tahap, yaitu :
1. Tahap membuka file (OPEN)
2. Tahap memproses (INPUT/OUTPUT)
3. Dan yang terakhir adalah tahap menutup file (CLOSE)
Membuka File SEQUENTIAL
Untuk membuka file sequential yang akan diproses dapat digunakan
penulisan sebagai berikut :
Syntax :
Open filename [FOR mode] AS [#]filenum
dimana mode terdiri dari :
INPUT, membuka file untuk proses INPUT
OUTPUT, membuka file baru untuk proses OUTPUT
APPEND, membuka file untuk untuk proses OUTPUT dimana data baru
ditambahkan pada bagian akhir.
Contoh :
Open "Siswa.Dat" For Append AS #1
Akan membuka Siswa.Dat sebagai OUPUT dimana data baru ditambahkan
pada bagian akhir. Jika file Siswa.Dat belum ada, maka akan
dibuat yang baru.
Proses INPUT/OUTPUT
Perintah proses INPUT/OUTPUT pada sequential file sangat
tergantung kepada bentuk perlakuan terhadap data. Untuk penulisan
yang berorientasi pada baris, anda dapat menggunakan perintah
PRINT, dan pembacaanya dapat menggunakan LINEINPUT. Penulisan
yang berorientasi kepada data, anda dapat menggunakan perintah
WRITE dan INPUT untuk proses pembacaannya.
Syntax :
PRINT #filenumber,[USING stringexpressin;]expression list
WRITE #filenumber[,expressionlist]
INPUT #filenumber, variablelist
LINEINPUT #filenumber, variable-string
Contoh :
Write #1, "920403024","Hendra",80,90
menulis ke file nomor 1, dan data dapat dibaca kembali dengan
perintah :
Input #1,Nim$,Nama$,Teori,Praktek
Catatan :
Anda dapat menggunakan fungsi bantu EOF(filenumber) untuk
memeriksa apakah berada diposisi akhir file.
Proses CLOSE
Untuk menutup file dapat digunakan perintah CLOSE.
Syntax :
CLOSE #filenumber
Contoh :
CLOSE #1
menutup file nomor 1.
Contoh :
'PROGRAM MENGISI DATA KE FILE SISWA.DAT
OPEN "SISWA.DAT" FOR APPEND AS #1
DO
PRINT "DATA SISWA KE -";I
INPUT "NO.INDUK :",NOINDUK$
IF NOINDUK$ <> "" THEN
INPUT "NAMA :",NAMA$
INPUT "TEORI :",TEORI
INPUT "PRAKTEK :",PRAKTEK
WRITE #1,NOINDUK$,NAMA$,TEORI
ENDIF
LOOP UNTIL NOINDUK$ = ""
CLOSE #1
END
'PROGRAM BACA DATA DARI SISWA.DAT DAN MENCETAK KE LAYAR
CLS
OPEN "SISWA.DAT" FOR INPUT AS #1
PRINT "-------------------------------------------------------------------"
PRINT "NO.INDUK NAMA TEORI PRAKTEK RATA-RATA LULUS "
PRINT "-------------------------------------------------------------------"
POLA$="\ \ \ \ ###.## ###.## ###.## \ \ "
VIEW PRINT 4 TO 23
WHILE NOT EOF(1)
INPUT #1, NO_INDUK$,NAMA$,TEORI,PRAKTEK
RATA = (TEORI+PRAKTEK)/2
IF RATA < 60 THEN
LULUS$="TIDAK"
ELSE
LULUS$ = "YA"
ENDIF
PRINT USING POLA$;NO_INDUK$;NAMA$;TEORI;PRAKTEK;RATA;LULUS$
WEND
CLOSE #1
END
PENGOLAHAN SEQUENTIAL FILE
File merupakan fasilitas penyimpanan data pada external storage
yang bersifat permanen, jika dibandingkan dengan penyimpanan ke
RAM yang sifatnya sementara. Dengan pemakaian file kita dapat
menghemat pemakaian RAM komputer yang memiliki jumlah yang
terbatas serta dapat melakukan dokumentasi untuk jangka waktu
yang panjang.
Pada QBasic pengolahan file dapat dibagi atas tiga jenis, yaitu :
1. SEQUENTIAL FILE
2. RANDOM FILE
3. BINARY FILE
Pada Sequential file (file urut) proses pengolahannya dilakukan
secara linier dari awal sampai akhir, tanpa bisa kembali kebagian
sebelumnya, kecuali proses dimulai lagi dari awal. Jadi dalam
pengolahan datanya bersifat first in first out, artinya pembacaan
data dari file ini harus dimulai dari data yang paling awal.
Pada umumnya pengolahan data yang menggunakan file sebagai media
INPUT maupun OUTPUT memiliki tiga tahap, yaitu :
1. Tahap membuka file (OPEN)
2. Tahap memproses (INPUT/OUTPUT)
3. Dan yang terakhir adalah tahap menutup file (CLOSE)
Membuka File SEQUENTIAL
Untuk membuka file sequential yang akan diproses dapat digunakan
penulisan sebagai berikut :
Syntax :
Open filename [FOR mode] AS [#]filenum
dimana mode terdiri dari :
INPUT, membuka file untuk proses INPUT
OUTPUT, membuka file baru untuk proses OUTPUT
APPEND, membuka file untuk untuk proses OUTPUT dimana data baru
ditambahkan pada bagian akhir.
Contoh :
Open "Siswa.Dat" For Append AS #1
Akan membuka Siswa.Dat sebagai OUPUT dimana data baru ditambahkan
pada bagian akhir. Jika file Siswa.Dat belum ada, maka akan
dibuat yang baru.
Proses INPUT/OUTPUT
Perintah proses INPUT/OUTPUT pada sequential file sangat
tergantung kepada bentuk perlakuan terhadap data. Untuk penulisan
yang berorientasi pada baris, anda dapat menggunakan perintah
PRINT, dan pembacaanya dapat menggunakan LINEINPUT. Penulisan
yang berorientasi kepada data, anda dapat menggunakan perintah
WRITE dan INPUT untuk proses pembacaannya.
Syntax :
PRINT #filenumber,[USING stringexpressin;]expression list
WRITE #filenumber[,expressionlist]
INPUT #filenumber, variablelist
LINEINPUT #filenumber, variable-string
Contoh :
Write #1, "920403024","Hendra",80,90
menulis ke file nomor 1, dan data dapat dibaca kembali dengan
perintah :
Input #1,Nim$,Nama$,Teori,Praktek
Catatan :
Anda dapat menggunakan fungsi bantu EOF(filenumber) untuk
memeriksa apakah berada diposisi akhir file.
Proses CLOSE
Untuk menutup file dapat digunakan perintah CLOSE.
Syntax :
CLOSE #filenumber
Contoh :
CLOSE #1
menutup file nomor 1.
Contoh :
'PROGRAM MENGISI DATA KE FILE SISWA.DAT
OPEN "SISWA.DAT" FOR APPEND AS #1
DO
PRINT "DATA SISWA KE -";I
INPUT "NO.INDUK :",NOINDUK$
IF NOINDUK$ <> "" THEN
INPUT "NAMA :",NAMA$
INPUT "TEORI :",TEORI
INPUT "PRAKTEK :",PRAKTEK
WRITE #1,NOINDUK$,NAMA$,TEORI
ENDIF
LOOP UNTIL NOINDUK$ = ""
CLOSE #1
END
'PROGRAM BACA DATA DARI SISWA.DAT DAN MENCETAK KE LAYAR
CLS
OPEN "SISWA.DAT" FOR INPUT AS #1
PRINT "-------------------------------------------------------------------"
PRINT "NO.INDUK NAMA TEORI PRAKTEK RATA-RATA LULUS "
PRINT "-------------------------------------------------------------------"
POLA$="\ \ \ \ ###.## ###.## ###.## \ \ "
VIEW PRINT 4 TO 23
WHILE NOT EOF(1)
INPUT #1, NO_INDUK$,NAMA$,TEORI,PRAKTEK
RATA = (TEORI+PRAKTEK)/2
IF RATA < 60 THEN
LULUS$="TIDAK"
ELSE
LULUS$ = "YA"
ENDIF
PRINT USING POLA$;NO_INDUK$;NAMA$;TEORI;PRAKTEK;RATA;LULUS$
WEND
CLOSE #1
END
Pemrograman Qbasic 7
Modul 7
TYPE DATA RECORD
Record Type merupakan type ciptaan yang dibuat oleh pemakai
sesuai dengan tuntutan program. Record Type merupakan type
variabel yang terdiri dari kumpulan type-type standar Quick
Basic.
Mendeklarasikan suatu Record Type
Pada QBasic Record Type dapat dideklarasikan dengan penulisan
berikut :
Syntax :
Type nama
<nama elemen 1> AS <typedata>
<nama elemen 2> AS <typedata>
...
End Type
Contoh :
Type PESERTA
Nomor AS String*10
Nama AS String*20
Email AS String*30
Umur AS Integer
End Type
Mendeklarasikan type data PESERTA yang merupakan kumpulan dari
data Nomor, Nama, Email, dan Umur.
Mendeklarasikan Variabel Record Type
Untuk mendeklarasikan variabel berdasarkan Record Type tertentu
dengan menggunakan perintah DIM.
Contoh :
Dim DataPeserta As PESERTA
Mendeklarasikan variabel DataPeserta yang memiliki type PESERTA,
sehingga variabel DataPeserta memiliki komponen Nomor, Nama,
Email dan Umur.
Menggunakan Variabel Record Type
Pemakaian variabel Record Type sama saja dengan variabel biasa,
dan kita juga dapat menyatakan masing-masing komponennya.
Contoh :
Dim Peserta1 As PESERTA
Dim Peserta2 As PESERTA
Dim Temp As PESERTA
Peserta1.Nomor = 9224 'komponen Nomor
Peserta1.Nama = "Hendra" 'komponen Nama
Peserta1.Email = "hendra@indoprog.com" 'Komponen Email
Peserta1.Umur = 27 'Komponen Umur
Peserta2.Nomor = 9241 'komponen Nomor
Peserta2.Nama = "Limada" 'komponen Nama
Peserta2.Email = "limada@hsbc.com" 'Komponen Email
Peserta2.Umur = 26 'Komponen Umur
Record Type banyak digunakan dalam pengolahan data, dan random
file karena menawarkan fleksibilitas dan kemudahan dalam
pemakaiannya.
Contoh :
Temp = Peserta1
Peserta1 = Peserta2
Peserta2 = Temp
atau
SWAP Peserta1, Peserta2
Menukar data Peserta1 dengan Peserta2 dan sebaliknya, tanpa perlu
menyebutkan sub komponennya. Dapatkah saudara bayangkan kalau hal
tersebut tidak menggunakan Record Type ?
Contoh :
'Program isi data siswa dan sortir
'DEKLARASI RECORD TYPE SISWA
Type SISWA
NOINDUK AS STRING * 10
NAMA AS STRING * 15
TEORI AS SINGLE
PRAKTEK AS SINGLE
RATA AS SINGLE
End Type
Input "Masukkan jumlah siswa ";JS
Dim DSiswa(JS) AS SISWA 'Deklarasi Array DSiswa
'berdasarkan Record Type SISWA
'MENGISI DATA
For I = 1 TO JS STEP 1
Print "RECORD KE -";I
Input "NO.INDUK :",DSISWA(I).NOINDUK
Input "NAMA :",DSISWA(I).NAMA
Input "TEORI :",DSISWA(I).TEORI
Input "PRAKTEK :",DSISWA(I).PRAKTEK
DSISWA(I).RATA = (DSISWA(I).TEORI+DSISWA(I).PRAKTEK)/2
NEXT I
'MENGURUT DATA BERDASARKAN NILAI RATA-RATA
For I = (JS-1) TO 1 STEP -1
Sempurna = 1
For J = 1 TO I
If DSISWA(J).RATA < DSISWA(J+1).RATA THEN
SWAP DSISWA(J),DSISWA(J+1)
Sempurna = 0
End If
Next J
If Sempurna = 1
I = 0
End If
Next I
CLS
Print " HASIL UJIAN SISWA"
Print " BASIC PROGRAMMING MEI 2001"
Print
Print "-------------------------------------------------------------------"
Print "NO.INDUK NAMA TEORI PRAKTEK RATA-RATA LULUS "
Print "-------------------------------------------------------------------"
POLA$="\ \ \ \ ###.## ###.## ###.## \ \ "
VIEW PRINT 4 TO 23
For I = 1 TO JS
IF DSISWA(I).RATA < 60 THEN LULUS$="TIDAK" ELSE LULUS$ = "YA"
PRINT USING POLA$;DSISWA(I).NOINDUK;DSISWA(I).NAMA;DSISWA(I).TEORI;
DSISWA(I).PRAKTEK;DSISWA(I).RATA;LULUS$
Next I
END
TYPE DATA RECORD
Record Type merupakan type ciptaan yang dibuat oleh pemakai
sesuai dengan tuntutan program. Record Type merupakan type
variabel yang terdiri dari kumpulan type-type standar Quick
Basic.
Mendeklarasikan suatu Record Type
Pada QBasic Record Type dapat dideklarasikan dengan penulisan
berikut :
Syntax :
Type nama
<nama elemen 1> AS <typedata>
<nama elemen 2> AS <typedata>
...
End Type
Contoh :
Type PESERTA
Nomor AS String*10
Nama AS String*20
Email AS String*30
Umur AS Integer
End Type
Mendeklarasikan type data PESERTA yang merupakan kumpulan dari
data Nomor, Nama, Email, dan Umur.
Mendeklarasikan Variabel Record Type
Untuk mendeklarasikan variabel berdasarkan Record Type tertentu
dengan menggunakan perintah DIM.
Contoh :
Dim DataPeserta As PESERTA
Mendeklarasikan variabel DataPeserta yang memiliki type PESERTA,
sehingga variabel DataPeserta memiliki komponen Nomor, Nama,
Email dan Umur.
Menggunakan Variabel Record Type
Pemakaian variabel Record Type sama saja dengan variabel biasa,
dan kita juga dapat menyatakan masing-masing komponennya.
Contoh :
Dim Peserta1 As PESERTA
Dim Peserta2 As PESERTA
Dim Temp As PESERTA
Peserta1.Nomor = 9224 'komponen Nomor
Peserta1.Nama = "Hendra" 'komponen Nama
Peserta1.Email = "hendra@indoprog.com" 'Komponen Email
Peserta1.Umur = 27 'Komponen Umur
Peserta2.Nomor = 9241 'komponen Nomor
Peserta2.Nama = "Limada" 'komponen Nama
Peserta2.Email = "limada@hsbc.com" 'Komponen Email
Peserta2.Umur = 26 'Komponen Umur
Record Type banyak digunakan dalam pengolahan data, dan random
file karena menawarkan fleksibilitas dan kemudahan dalam
pemakaiannya.
Contoh :
Temp = Peserta1
Peserta1 = Peserta2
Peserta2 = Temp
atau
SWAP Peserta1, Peserta2
Menukar data Peserta1 dengan Peserta2 dan sebaliknya, tanpa perlu
menyebutkan sub komponennya. Dapatkah saudara bayangkan kalau hal
tersebut tidak menggunakan Record Type ?
Contoh :
'Program isi data siswa dan sortir
'DEKLARASI RECORD TYPE SISWA
Type SISWA
NOINDUK AS STRING * 10
NAMA AS STRING * 15
TEORI AS SINGLE
PRAKTEK AS SINGLE
RATA AS SINGLE
End Type
Input "Masukkan jumlah siswa ";JS
Dim DSiswa(JS) AS SISWA 'Deklarasi Array DSiswa
'berdasarkan Record Type SISWA
'MENGISI DATA
For I = 1 TO JS STEP 1
Print "RECORD KE -";I
Input "NO.INDUK :",DSISWA(I).NOINDUK
Input "NAMA :",DSISWA(I).NAMA
Input "TEORI :",DSISWA(I).TEORI
Input "PRAKTEK :",DSISWA(I).PRAKTEK
DSISWA(I).RATA = (DSISWA(I).TEORI+DSISWA(I).PRAKTEK)/2
NEXT I
'MENGURUT DATA BERDASARKAN NILAI RATA-RATA
For I = (JS-1) TO 1 STEP -1
Sempurna = 1
For J = 1 TO I
If DSISWA(J).RATA < DSISWA(J+1).RATA THEN
SWAP DSISWA(J),DSISWA(J+1)
Sempurna = 0
End If
Next J
If Sempurna = 1
I = 0
End If
Next I
CLS
Print " HASIL UJIAN SISWA"
Print " BASIC PROGRAMMING MEI 2001"
Print "-------------------------------------------------------------------"
Print "NO.INDUK NAMA TEORI PRAKTEK RATA-RATA LULUS "
Print "-------------------------------------------------------------------"
POLA$="\ \ \ \ ###.## ###.## ###.## \ \ "
VIEW PRINT 4 TO 23
For I = 1 TO JS
IF DSISWA(I).RATA < 60 THEN LULUS$="TIDAK" ELSE LULUS$ = "YA"
PRINT USING POLA$;DSISWA(I).NOINDUK;DSISWA(I).NAMA;DSISWA(I).TEORI;
DSISWA(I).PRAKTEK;DSISWA(I).RATA;LULUS$
Next I
END
Pemrograman Qbasic 6
MODUL 6
FUNGSI CIPTAAN DAN SUB RUTIN
Fungsi Ciptaan
Fungsi-fungsi bawaan yang disediakan oleh QBasic adalah bersifat
umum, sehingga kadang-kadang programmer harus membuat fungsi
sendiri sesuai dengan kebutuhannya.
Misalnya :
Dalam mengembangkan program keuangan, seorang programmer akan
banyak membutuhkan fungsi-fungsi Time Value of Money seperti
Present Value, Future Value, Depresiasi dll.
QBasic menyediakan fasilitas bagi programmer yang ingin
mengembangkan fungsi ciptaannya sendiri. Adapun tata cara
penulisannya adalah sebagai berikut :
FUNCTION namafungsi[(parameterlist)] [STATIC]
[statementblock]
namafungsi = expression
[statementblock]
END FUNCTION
type data yang dikembalikan ditentukan oleh akhiran pada nama
tersebut(%, &, !, #, atau $) yang masing-masing adalah INTEGER,
LONG, SINGLE, DOUBLE dan STRING.
Contoh :
FUNCTION SLN#(cost AS double, salvage AS double, life AS single)
SLN# = (cost-salvage)/life
END FUNCTION
Fungsi diatas adalah fungsi ciptaan untuk menghitung depresiasi
dengan metode garis lulus.
Contoh Lain :
FUNCTION FV#(pv AS double, rate AS single, term AS integer)
Dim npv as double, i as integer
npv = pv
FOR i = 1 TO term STEP 1
npv = npv + npv*rate 'nilai akhir = pokok + bunga
NEXT i
FV# = npv
END FUNCTION
atau dengan rumus pertumbuhan
FUNCTION FV#(pv AS double, rate AS single, term AS integer)
FV# = np*(1+rate)^term
END FUNCTION
Fungsi diatas adalah fungsi ciptaan untuk menghitung Future Value
dari suatu nilai uang, jika diketahui suku bunga per periode dan
jumlah periode yang diinginkan.
Contoh :
Misalnya anda memiliki uang Rp. 1.000.000 (satu juta), anda
menyimpannya ke Bank dengan suku bunga 10% per tahun, berapa uang
anda setelah disimpan 3 tahun ?
Catatan :
Pada Qbasic, fungsi ciptaan disimpan pada lokasi yang berlainnan
dengan program utama, untuk beralih ke program utama maupun
fungsi ciptaan anda dapat menggunakan tombol F2
Anda dapat menggunakan perintah EXIT FUNCTION untuk keluar dari
fungsi.
Contoh :
FUNCTION PRIMA! (bilangan AS LONG)
DIM i AS INTEGER
IF bilangan < 2 THEN
PRIMA! = 0 'semua bilangan < 2 bukan prima
ELSEIF bilangan < 4 THEN
PRIMA! = 1 'bilangan 2 dan 3 adalah prima
ELSE
i = 2 'bagi bilangan tersebut mulai
DO WHILE i <= SQR(bilangan) 'dari 2 s/d Akar dari bilangan
IF (bilangan MOD i) = 0 THEN
PRIMA! = 0 'jika habis dibagi, bukan prima
EXIT FUNCTION
END IF
i = i + 1
LOOP
PRIMA! = 1 'jika tidak habis dibagi, prima
END IF
END FUNCTION
Menggunakan Fungsi Ciptaan
Cara menggunakan fungsi ciptaan sama saja dengan fungsi bawaan,
contoh :
DIM I AS LONG
FOR I = 1 To 30
If PRIMA!(I) = 1 Then
Print I
End If
NEXT I
Akan mencetak bilangan prima antara 1 s/d 30
Sub Rutin
Sub Rutin merupakan sebagian dari program. Adapun keuntungan dari
pembentukan adalah menghindari pengetikan yang berulang-ulang
terhadap bagian program yang sama, dan membuat program lebih
terstruktur.
Pada QBasic tata cara penulisan Sub Rutin adalah sebagai berikut:
SUB namasub [(Parameterlist)] [STATIC]
[statementblock]
END SUB
Contoh :
Sub KOTAK(Y1%,X1%,Y2%,X2%)
posisiX% = POS(0) 'Simpan posisi kursor sekarang
posisiY% = CRSLIN
LOCATE Y1%,X1%
PRINT Chr$(218);String$(X2-X1-2,196);Chr$(191)
FOR I%=Y1% TO Y2% STEP 1
LOCATE I%,X1% : PRINT Chr$(179)
LOCATE I%,X2% : PRINT Chr$(179)
NEXT I%
LOCATE Y2%,X1%
PRINT Chr$(192);String$(X2-X1-2,196);Chr$(217)
LOCATE POSISIY%,POSISIX%
END SUB
Sub diatas akan mengambar suatu kotak ASCII single berdasarkan
koordinat yang diberikan.
Contoh :
CALL KOTAK(5,10,20,70)
pengiriman argumen pada Sub Procedure terdapat dua cara antara
lain :
1. Secara referensi
Argumen yang diberikan dengan cara ini kepada procedure dan
diolah, kemudian hasil akhirnya akan didefinisikan pada variabel
tersebut pada main program.
2. Dengan Value/Nilai
Argumen ini hanya berupa nilai yang dipergunakan oleh procedure
pada saat pengolahan.
Contoh :
SUB contoh(A as INTEGER)
A = 10
END SUB
Pengiriman argumen secara Referensi :
DIM Nilai As INTEGER
Nilai = 1
Call contoh(Nilai) ' Call
Print Nilai ' Akan tercetak 10
Pengiriman argumen secara Value :
DIM Nilai As INTEGER
Nilai = 1
contoh(Nilai) ' Tanpa Call
Print Nilai ' Akan tercetak 1
----------------------------------------------------------------
Jadi anda perlu berhati-hati dalam pemakaian Variabel yang
digunakan sebagai parameter pada saat pemanggilan SUB RUTIN.
----------------------------------------------------------------
static, menyatakan nilai variabel local dalam function tidak
dibuang ketika fungsi atau sub berakhir.
Dalam QBasic anda dapat menentukan tingkatan/sifat variabel yang
mengatur dimana variabel itu digunakan(level of access). Inilah
tingkatan tersebut :
1. Variabel Local, hanya bisa digunakan pada Sub Procedure atau
function tersebut telah selesai dikerjakan, maka variabel lokal
tersebut dibuang dari memory dan tidak lagi dipergunakan oleh
bagian program lain.
2. Variabel Shared, atau variabel global bisa digunakan pada
seluruh bagian program maupun Sub Procedure tertentu. Nilai
variabel ini dapat berubah selama program tersebut berjalan.
3. Variabel Static, adalah variabel local, tetapi variabel ini
nilainya tetap dipertahankan sampai pemanggilan berikutnya.
Latihan :
1. Buatlah fungsi ciptaan terbilang, contoh 1250 akan dibaca
sebagai "Seribu Duaratus limapuluh".
2. Buatlah sub kotak double.
Bilang.Bas
DECLARE FUNCTION angka$ (x AS INTEGER, posisi AS INTEGER)
DECLARE FUNCTION ratus$ (x AS INTEGER, posisi AS INTEGER)
DECLARE FUNCTION terbilang$ (x AS LONG)
PRINT terbilang$(1234567890)
FUNCTION angka$ (x AS INTEGER, posisi AS INTEGER)
SELECT CASE x
CASE 0: angka$ = "Nol"
CASE 1:
IF posisi = 1 THEN
angka$ = "Satu" 'Posisi paling akhir dibaca
ELSE 'Satu
angka$ = "Se"
END IF
CASE 2: angka$ = "Dua"
CASE 3: angka$ = "Tiga"
CASE 4: angka$ = "Empat"
CASE 5: angka$ = "Lima"
CASE 6: angka$ = "Enam"
CASE 7: angka$ = "Tujuh"
CASE 8: angka$ = "Delapan"
CASE 9: angka$ = "Sembilan"
CASE 10: angka$ = "Sepuluh"
CASE 11: angka$ = "Sebelas"
CASE 12: angka$ = "Duabelas"
CASE 13: angka$ = "Tigabelas"
CASE 14: angka$ = "Empatbelas"
CASE 15: angka$ = "Limabelas"
CASE 16: angka$ = "Enambelas"
CASE 17: angka$ = "Tujuhbelas"
CASE 18: angka$ = "Delapanbelas"
CASE 19: angka$ = "Sembilanbelas"
END SELECT
END FUNCTION
FUNCTION ratus$ (x AS INTEGER, posisi AS INTEGER)
DIM a100 AS INTEGER, a10 AS INTEGER, a1 AS INTEGER
DIM baca AS STRING
a100 = x \ 100 'Ambil angka ratusan
a10 = (x MOD 100) \ 10 'Ambil angka puluhan
a1 = x MOD 10 'Ambil angka satuan
IF a100 > 0 THEN
baca = angka$(a100, posisi) + "ratus"
END IF
IF a10 = 1 THEN 'Sepuluh s/d Sembilanbelas
baca = baca + angka$(a10 * 10 + a1, posisi)
ELSE
IF a10 > 0 THEN 'Duapuluh s/d Sembilanpuluh
baca = baca + angka$(a10, posisi) + "puluh"
END IF
IF a1 > 0 THEN 'Satu s/d Sembilan
baca = baca + angka$(a1, posisi)
END IF
END IF
ratus$ = baca
END FUNCTION
FUNCTION terbilang$ (x AS LONG)
DIM milyar AS INTEGER, juta AS INTEGER, ribu AS INTEGER, satu AS
INTEGER
DIM baca AS STRING
IF x = 0 THEN 'Jika x = Nol
baca$ = angka$(0, 1) 'Dibaca Nol
ELSE
milyar = x \ 1E+09 'Ambil bagian ratusan milyar
juta = (x MOD 1E+09) \ 1000000 'Ambil bagian ratusan juta
ribu = (x MOD 1000000) \ 1000 'Ambil bagian ratusan ribu
satu = x MOD 1000 'Ambil bagian ratusan
IF milyar > 0 THEN
baca = ratus$(milyar, 4) + "milyar"
END IF
IF juta > 0 THEN
baca = baca + ratus$(juta, 3) + "juta"
END IF
IF ribu > 0 THEN
baca = baca + ratus$(ribu, 2) + "ribu"
END IF
IF satu > 0 THEN
baca = baca + ratus$(satu, 1)
END IF
END IF
terbilang$ = baca
END FUNCTION
Pemrograman Qbasic 5
Modul 5
FUNGSI BANTU BAWAAN
Fungsi bantu adalah fasilitas yang disediakan untuk membantu
programmer dalam mengembangkan program. Dengan adanya fungsi
bantu bawaan programmer tidak perlu mengembangkan program untuk
melakukan hal yang sama.
Contoh :
Pada Qbasic telah tersedia fungsi bantu Sinus yang dapat
digunakan untuk mendapatkan nilai sinus dari suatu sudut dalam
radian.
Dim B As Double
B = Sin(30 * 3.14/180)
Akan mengisi nilai sinus sudut 30 derajat ke variabel B
Tanpa mengunakan fungsi bantu Sinus, programmer dapat
mengembangkan program sendiri untuk melakukan hal yang sama,
tetapi hal ini tentu saja menuntut pengetahuan yang lebih
mendalam.
Contoh :
Dengan menggunakan Ekspansi Trigonometris, suatu nilai Sinus
dapat diturunkan.
DIM S AS DOUBLE
DIM Sinus AS DOUBLE
S = 30 * 3.14 / 180 ' Sudut 30 derajat dalam radian
F = 1
Tanda = 1
Sinus = S
FOR I = 2 TO 11
F = F * I ' Menghitung nilai faktorial
IF I MOD 2 = 1 THEN ' Suku 3, 5, 7, 9, 11
Tanda = -Tanda ' Tanda -1, 1, -1, 1, dst
Sinus = Sinus + (S ^ I / F * Tanda)
END IF
NEXT I
B = Sinus
Potongan program diatas akan menghasilkan nilai Sinus 30 derajat
ke variabel B.
Dengan menggunakan fungsi bantu bawaan yang telah tersedia
pekerjaan programmer akan lebih terfokus pada program yang akan
dikembangkan.
FUNGSI BANTU STRING
LEFT$ (stringexpression,n)
Mengembalikan sejumlah karakter string dari suatu data string
dari sebelah kiri.
Contoh :
Print Left$("IndoProg",4) ' Akan mencetak Indo
RIGHT$ (stringexpression,n)
Mengembalikan sejumlah karakter string dari suatu data string
dari sebelah kanan.
Contoh :
Print Right$("IndoProg",4) ' Akan mencetak Prog
MID$(stringexpression,start[,length])
Mengembalikan sejumlah karakter string dari suatu string mulai
posisi tertentu.
Contoh :
Print Mid$("1234567890",3,4) ' Akan mencetak 3456
Print Mid$("1234567890",3) ' Akan mencetak 34567890
LTRIM$(stringexpression)
Mengembalikan string dengan menghilangkan spasi sebelah kiri.
Contoh :
A$ = " 100"
B$ = LTRIM$(A$)
Print A$ 'Akan mencetak 100
Print B$ 'Akan mencetak 100
RTRIM$(stringexpression)
Mengembalikan string dengan menghilangkan spasi sebelah kanan.
INSTR([start,]stringexpression1,stringexpression2)
Mencari posisi suatu string pada string lain (0 jika tidak
ditemukan).
Contoh :
Print INSTR("ABCD","B") 'Akan mencetak 2
Print INSTR(4,"ABCDABCD","A") 'Akan mencetak 5
Print INSTR("ABCD","a") 'Akan mencetak 0
LCASE$(stringexpression)
Mengembalikan suatu string yang telah diubah ke huruf kecil.
Contoh :
Print LCase$("IndoProg") 'Akan mencetak indoprog
UCASE$(stringexpression)
Mengembalikan string yang telah dibuat huruf besar.
Contoh :
Print UCase$("IndoProg") 'Akan mencetak INDOPROG
SPACE$(n)
Mengembalikan string yang berisi sejumlah spasi.
Contoh :
Print Space$(30), "IndoProg"
STRING$(m,n) atau STRING$(m,stringexpression)
Mengembalikan string yang mengandung sejumlah character yang
berulang.
Contoh :
Print String$(10,65) ' Akan mencetak AAAAAAAAAA
Print String$(10,"A") ' Akan mencetak AAAAAAAAAA
LEN(stringexpression)
Mengembalikan jumlah huruf suatu data string.
Contoh :
Print Len("Indonesia Programmer") ' Akan mencetak 20
FUNGSI BANTU KONVERSI
STR$(numeric-expression)
Mengembalikan string dari suatu expresi numeric
Contoh :
A = 100
B$ = Str$(A) 'B berisi "100"
VAL(stringexpression)
Mengembalikan numeric dari suatu expresi string
Contoh :
B$ = "100"
A = Val(B) 'A berisi 100
C = "IndoProg"
D = Val(C) 'D berisi 0
ASC(stringexpression)
Mengembalikan nilai ASCII dari suatu character.
Contoh :
Print Asc("A") 'Akan mencetak 65
CHR$(n)
Mengembalikan character ASCII n.
Contoh :
Print Chr$(65) 'Akan mencetak "A"
FUNGSI BANTU ARITMATIKA
SIN(numeric-expression)
COS(numeric-expression)
TAN(numeric-expression)
ATN(numeric-expression)
Mengembalikan nilai trigonometri.
numeric-expression dinyatakan dalam radian (sudut*3.14/180).
Cukup jelas
EXP(numeric-expression)
Mengembalikan nilai exponential.
Cukup jelas
LOG(numeric-expression)
Mengembalikan nilai logaritma natural.
Cukup jelas
SQR(numeric-expression)
Mengembalikan nilai akar pangkat dua.
Contoh :
Print Sqr(9) 'Akan mencetak 3
INT(numeric-expression)
Mengembalikan nilai bulat dari suatu desimal.
Contoh :
Print Int(3.5) 'Akan mencetak 3
FUNGSI BANTU RANDOM
RANDOMIZE [integer-expression]
RANDOMIZE TIMER
Memberikan bibit kepada nilai random.
RND
Mengembalikan nilai pseudo random antara 0 s/d < 1
Contoh :
Randomize Timer
Print Int(RND*100) 'Akan mencetak suatu bilangan
'random 0 s/d 99
FUNGSI BANTU WAKTU
DATE$
Mengembalikan tanggal system dalam string dengan format mm-dd-
yyyy.
TIME$
Mengembalikan waktu komputer dalam string dengan format hh:mm:ss.
TIMER
Mengembalikan jumlah detik sejak pukul 00:00:00
TIMER dapat digunakan pada perintah RANDOMIZE TIMER.
Contoh :
'PROGRAM TEBAK ANGKA
CLS
RANDOMIZE TIMER :HASIL = INT(RND*100)+1
N = 0
DO
N = N + 1
INPUT "MASUKKAN TEBAKAN ANDA (1-100)";TEBAK
IF TEBAK > HASIL THEN PRINT "TERLALU BESAR"
IF TEBAK < HASIL THEN PRINT "TERLALU KECIL"
LOOP UNTIL HASIL=TEBAK
PRINT "TEBAKAN ANDA SEBANYAK ";N;" KALI"
END
Latihan :
1. Bandingkan hasil Sinus dengan fungsi bantu Sin dan Ekspansi
Trigonometris.
2. Buatlah program putar String "Indonesia Programmer" dari kiri
ke kanan.
3. Bagaimana kalau putar dari kanan ke kiri.
4. Cobalah program tebak angka, berapa kali anda mampu
selesai menebaknya?
FUNGSI BANTU BAWAAN
Fungsi bantu adalah fasilitas yang disediakan untuk membantu
programmer dalam mengembangkan program. Dengan adanya fungsi
bantu bawaan programmer tidak perlu mengembangkan program untuk
melakukan hal yang sama.
Contoh :
Pada Qbasic telah tersedia fungsi bantu Sinus yang dapat
digunakan untuk mendapatkan nilai sinus dari suatu sudut dalam
radian.
Dim B As Double
B = Sin(30 * 3.14/180)
Akan mengisi nilai sinus sudut 30 derajat ke variabel B
Tanpa mengunakan fungsi bantu Sinus, programmer dapat
mengembangkan program sendiri untuk melakukan hal yang sama,
tetapi hal ini tentu saja menuntut pengetahuan yang lebih
mendalam.
Contoh :
Dengan menggunakan Ekspansi Trigonometris, suatu nilai Sinus
dapat diturunkan.
DIM S AS DOUBLE
DIM Sinus AS DOUBLE
S = 30 * 3.14 / 180 ' Sudut 30 derajat dalam radian
F = 1
Tanda = 1
Sinus = S
FOR I = 2 TO 11
F = F * I ' Menghitung nilai faktorial
IF I MOD 2 = 1 THEN ' Suku 3, 5, 7, 9, 11
Tanda = -Tanda ' Tanda -1, 1, -1, 1, dst
Sinus = Sinus + (S ^ I / F * Tanda)
END IF
NEXT I
B = Sinus
Potongan program diatas akan menghasilkan nilai Sinus 30 derajat
ke variabel B.
Dengan menggunakan fungsi bantu bawaan yang telah tersedia
pekerjaan programmer akan lebih terfokus pada program yang akan
dikembangkan.
FUNGSI BANTU STRING
LEFT$ (stringexpression,n)
Mengembalikan sejumlah karakter string dari suatu data string
dari sebelah kiri.
Contoh :
Print Left$("IndoProg",4) ' Akan mencetak Indo
RIGHT$ (stringexpression,n)
Mengembalikan sejumlah karakter string dari suatu data string
dari sebelah kanan.
Contoh :
Print Right$("IndoProg",4) ' Akan mencetak Prog
MID$(stringexpression,start[,length])
Mengembalikan sejumlah karakter string dari suatu string mulai
posisi tertentu.
Contoh :
Print Mid$("1234567890",3,4) ' Akan mencetak 3456
Print Mid$("1234567890",3) ' Akan mencetak 34567890
LTRIM$(stringexpression)
Mengembalikan string dengan menghilangkan spasi sebelah kiri.
Contoh :
A$ = " 100"
B$ = LTRIM$(A$)
Print A$ 'Akan mencetak 100
Print B$ 'Akan mencetak 100
RTRIM$(stringexpression)
Mengembalikan string dengan menghilangkan spasi sebelah kanan.
INSTR([start,]stringexpression1,stringexpression2)
Mencari posisi suatu string pada string lain (0 jika tidak
ditemukan).
Contoh :
Print INSTR("ABCD","B") 'Akan mencetak 2
Print INSTR(4,"ABCDABCD","A") 'Akan mencetak 5
Print INSTR("ABCD","a") 'Akan mencetak 0
LCASE$(stringexpression)
Mengembalikan suatu string yang telah diubah ke huruf kecil.
Contoh :
Print LCase$("IndoProg") 'Akan mencetak indoprog
UCASE$(stringexpression)
Mengembalikan string yang telah dibuat huruf besar.
Contoh :
Print UCase$("IndoProg") 'Akan mencetak INDOPROG
SPACE$(n)
Mengembalikan string yang berisi sejumlah spasi.
Contoh :
Print Space$(30), "IndoProg"
STRING$(m,n) atau STRING$(m,stringexpression)
Mengembalikan string yang mengandung sejumlah character yang
berulang.
Contoh :
Print String$(10,65) ' Akan mencetak AAAAAAAAAA
Print String$(10,"A") ' Akan mencetak AAAAAAAAAA
LEN(stringexpression)
Mengembalikan jumlah huruf suatu data string.
Contoh :
Print Len("Indonesia Programmer") ' Akan mencetak 20
FUNGSI BANTU KONVERSI
STR$(numeric-expression)
Mengembalikan string dari suatu expresi numeric
Contoh :
A = 100
B$ = Str$(A) 'B berisi "100"
VAL(stringexpression)
Mengembalikan numeric dari suatu expresi string
Contoh :
B$ = "100"
A = Val(B) 'A berisi 100
C = "IndoProg"
D = Val(C) 'D berisi 0
ASC(stringexpression)
Mengembalikan nilai ASCII dari suatu character.
Contoh :
Print Asc("A") 'Akan mencetak 65
CHR$(n)
Mengembalikan character ASCII n.
Contoh :
Print Chr$(65) 'Akan mencetak "A"
FUNGSI BANTU ARITMATIKA
SIN(numeric-expression)
COS(numeric-expression)
TAN(numeric-expression)
ATN(numeric-expression)
Mengembalikan nilai trigonometri.
numeric-expression dinyatakan dalam radian (sudut*3.14/180).
Cukup jelas
EXP(numeric-expression)
Mengembalikan nilai exponential.
Cukup jelas
LOG(numeric-expression)
Mengembalikan nilai logaritma natural.
Cukup jelas
SQR(numeric-expression)
Mengembalikan nilai akar pangkat dua.
Contoh :
Print Sqr(9) 'Akan mencetak 3
INT(numeric-expression)
Mengembalikan nilai bulat dari suatu desimal.
Contoh :
Print Int(3.5) 'Akan mencetak 3
FUNGSI BANTU RANDOM
RANDOMIZE [integer-expression]
RANDOMIZE TIMER
Memberikan bibit kepada nilai random.
RND
Mengembalikan nilai pseudo random antara 0 s/d < 1
Contoh :
Randomize Timer
Print Int(RND*100) 'Akan mencetak suatu bilangan
'random 0 s/d 99
FUNGSI BANTU WAKTU
DATE$
Mengembalikan tanggal system dalam string dengan format mm-dd-
yyyy.
TIME$
Mengembalikan waktu komputer dalam string dengan format hh:mm:ss.
TIMER
Mengembalikan jumlah detik sejak pukul 00:00:00
TIMER dapat digunakan pada perintah RANDOMIZE TIMER.
Contoh :
'PROGRAM TEBAK ANGKA
CLS
RANDOMIZE TIMER :HASIL = INT(RND*100)+1
N = 0
DO
N = N + 1
INPUT "MASUKKAN TEBAKAN ANDA (1-100)";TEBAK
IF TEBAK > HASIL THEN PRINT "TERLALU BESAR"
IF TEBAK < HASIL THEN PRINT "TERLALU KECIL"
LOOP UNTIL HASIL=TEBAK
PRINT "TEBAKAN ANDA SEBANYAK ";N;" KALI"
END
Latihan :
1. Bandingkan hasil Sinus dengan fungsi bantu Sin dan Ekspansi
Trigonometris.
2. Buatlah program putar String "Indonesia Programmer" dari kiri
ke kanan.
3. Bagaimana kalau putar dari kanan ke kiri.
4. Cobalah program tebak angka, berapa kali anda mampu
selesai menebaknya?
Langganan:
Postingan (Atom)