BAB II LANDASAN TEORI 2.1 Sistem SCADA 2.1.1 Pengertian sistem SCADA SCADA, sebagaimana yang tertulis dalam SPLN S6.001:2008, yang dikutip dari [IEC 870-1-3] merupakan singkatan dari Supervisory Control And Data Acquisition, yang berarti sebuah sistem yang mengawasi dan mengendalikan peralatan proses yang tersebar secara geografis. Sistem SCADA terdiri dari 3 bagian utama yaitu: Master Station, Link Komunikasi Data, dan Remote Station. Master Control mempunyai fungsi memantau (monitoring), mengendalikan (controlling) dan mengukur (metering) data secara terpadu dalam satuan waktu tertentu pada sistem yang luas (baca: jauh atau tele), sedangkan Remote Station adalah stasiun yang dipantau, atau diperintah dan dipantau oleh master station, yang terdiri dari gateway, IED (Intelligent electronic device), lokal HMI, RTU dan meter energi analog. Blok diagram sistem SCADA dapat dilihat pada gambar berikut. Master Kontrol Unit Media Komunikasi Remote Terminal WIRELES S RTU-1 RTU-2 RS485 RJ 45 Radio Link RTU-3 RTU-4 Gambar 2.1. Blok Diagram Sistem SCADA 2.1.2 Elemen-elemen sistem SCADA Elemen penting pada sistem SCADA terdiri dari 3 bagian utama yaitu : Master Control Unit , Remote Terminal Unit (RTU), dan media komunikasi data. Dalam proyek akhir ini penulis mengambil fokus pada bagian Master Stationnya / Master Control Unit sistem SCADA. 6 7 1). Master Control Unit Berupa Main Komputer (Server). Main Komputer biasanya berjumlah 2 buah. Hal ini dimaksudkan untuk membentuk dual sistem (Master/Slave) sehingga sistem tidak bergantung hanya pada 1 main komputer saja. Hal ini dimungkinkan karena jika terjadi gangguan pada komputer Master, aplikasi komputer Master secara otomatis akan stop, dan komputer Slave secara otomatis akan menggantikannya sebagai Master sehingga availibilitas sistem secara keseluruhan lebih terjamin. Master Control Unit terdiri atas : a). Human Machine Interface Human machine interface (HMI) berfungsi sebagai perantara antara dispatcher dengan sistem komputer. HMI memudahkan dispatcher dalam memonitor sistem tenaga listrik yang ada. Peralatan HMI diantaranya adalah: keyboard, Video Display Unit (VDU) , recorder, printer, logger. b). Server Server berfungsi untuk mengolah data yang diterima dari RTU yang dimonitor oleh dispatcher di Control Center melalui Human Machine Interface, SCADA Energy Management System, Dispatcher Training Simulation. c). Front End Processor Setelah data dikirim ke Control Centre melalui media komunikasi, data ini diterima melalui Front End komputer dan selanjutnya didistribusikan ke fungsi pengolahan. Fungsi utama dari Master Control Unit adalah untuk : a). Mengatur komunikasi antara dirinya sendiri dengan RTU b). Mengirim dan menerima data dari RTU kemudian menterjemahkan ke dalam bentuk informasi yang dapat dimengerti oleh user c). Mendistribusikan informasi tersebut ke HMI, Mimic Board dan Printer Logger dan mem-file informasi tersebut d). Memanagement semua peralatan pusat kontrol yg lain. Selain 2 buah main komputer, biasanya Pusat Kontrol juga dilengkapi dengan peripheral lain yang bersama-sama dengan main komputer terhubung dalam 8 suatu jaringan lokal (LAN). Perihperal tersebut adalah : No. 1. Tabel 2.1 Tabel Peripheral Master Control Station Nama Human Machine Interface Jumlah Fungsi 2 Sebagai antar muka antara (HMI) user dengan sistem 2. Mimic Board 1 Menampilkan sistem yang dikontrol dalam bentuk diagram statistik display angka hasil pengukuran 3. Printer 3 Mencetak informasi yg didapat, Mencetak data, gambar & grafik 2). Remote Terminal Unit (RTU) Agar semua kejadian yang terjadi di gardu PLN, baik Gardu Induk (GI), Gardu Hubung (GH) dan Gardu Tengah (CDS) dapat dipantau dan dikontrol dari Pusat Kontrol, maka disetiap gardu tersebut harus dipasang alat yang dapat melaksanakan fungsi TeleSignallings (TS), TeleControlling (TC) dan TeleMetering (TM). Alat tersebut adalah RTU (Remote Terminal Unit). RTU sebenarnya sama saja dengan sebuah komputer, hanya saja tidak dilengkapi dengan monitor. Fungsi utama dari suatu RTU adalah : a). Mendeteksi perubahan posisi saklar (Open/Close/Invalid) b). Mengetahui besaran tegangan, arus dan frekwensi (di Gardu Induk) c). Menerima perintah Remote Control dari Pusat Kontrol untuk membuka atau menutup. d). Mengirim data dan informasi ke Pusat Kontrol yang terdiri atas :Status saklar (Open/Close/Invalid) jika ada, hasil eksekusi Remote Control, nilai besar tegangan, arus dan frekwensi 9 3). Media Komunikasi Media Komunikasi yaitu perangkat/sarana fisik yang menghubungkan antara pusat kontrol dengan RTU di gardu distribusi. Pengiriman data dari pusat kontrol ke RTU atau sebaliknya dari RTU ke pusat kontrol. Sistem komunikasi ini adalah bagaimana dua perangkat komputer di pusat kontrol dan RTU dapat saling dihubungkan dan dapat saling berkomunikasi satu dengan yang lainnya. Pada awalnya, SCADA melakukan komunikasi data melalui radio, modem atau jalur kabel serial khusus. Saat ini data-data SCADA dapat disalurkan melalui jaringan Ethernet atau TCP/IP. Untuk alasan keamanan, jaringan komputer untuk SCADA adalah jaringan komputer lokal (LAN - Local Area Network) tanpa harus mengekspos data-data penting di Internet. Komunikasi SCADA diatur melalui suatu protokol, jika jaman dahulu digunakan protokol khusus yang sesuai dengan produsen SCADA-nya, sekarang sudah ada beberapa standar protokol yang ditetapkan, sehingga tidak perlu khawatir masalah kecocokan komunikasi lagi. Karena kebanyakan sensor dan relai kontrol hanyalah peralatan listrik yang sederhana, alat-alat tersebut tidak bisa menghasilkan atau menerjemahkan protokol komunikasi. Dengan demikian dibutuhkan RTU yang menjembatani antara sensor dan jaringan SCADA. RTU mengubah masukan-masukan sensor ke format protokol yang bersangkutan dan mengirimkan ke master SCADA, selain itu RTU juga menerima perintah dalam format protokol dan memberikan sinyal listrik yang sesuai ke relai kontrol yang bersangkutan. Fungsi Utama media komunikasi di SCADA ini adalah : a). Untuk mengetahui posisi saklar (Terbuka atau Tertutup) b). Remote Control untuk membuka/menutup saklar c). Mengetahui besaran tegangan, arus dan frekwensi di GI d). Mengetahui grafik beban/arus atau tegangan, sehingga memprakirakan beban suatu penyulang beberapa jam mendatang. bisa 10 e). Mengetahui bila beban sudah mendekati maksimum, sehingga dapat melakukan tindakan untuk mencegah terjadinya beban berlebih. f). Mengetahui bila tegangan mendekati minimum atau maksimum sehingga dapat menyesuaikan sadapan trafo. Tele Control - Tele Metereing - Tele Signalling New Event HMI - Tele Signalling Change State RTU(s) - Tele Metereing SERVER - Tele Control - Polling Metering Mimic Board All Event & Status Event Logger Gambar 2.2 Blok Diagram Komunikasi Sistem SCADA 2.1.3 Aplikasi sistem SCADA Biasanya, SCADA digunakan untuk melakukan proses industri yang kompleks secara otomatis, menggantikan tenaga manusia (bisa karena dianggap berbahaya atau tidak praktis - konsekuensi logis adalah PHK), dan biasanya merupakan proses-proses yang melibatkan faktor-faktor kontrol yang lebih banyak, faktor-faktor kontrol gerakan-cepat yang lebih banyak, dan lain sebagainya, dimana pengontrolan oleh manusia menjadi tidak nyaman lagi. Sebagai contoh, SCADA digunakan di seluruh dunia misalnya untuk: 1). Pembangkit, transmisi dan distribusi listrik: SCADA digunakan untuk mendeteksi besarnya arus dan tegangan, pemantauan operasional circuit breaker, dan untuk mematikan/menghidupkan the power grid; 2). Penampungan dan distribusi air, SCADA digunakan untuk pemantauan dan pengaturan laju aliran air, tinggi reservoir, tekanan pipa dan berbagai macam faktor lainnya. 3). Bangunan, fasilitas dan lingkungan, Manajer fasilitas menggunakan SCADA untuk mengontrol unit-unit pendingin, penerangan, dan sistem keamanan. 11 4). Produksi, Sistem SCADA mengatur inventori komponen-komponen, mengatur otomasi alat atau robot, memantau proses dan kontrol kualitas. Tentunya, masih banyak lagi aplikasi-aplikasi potensial untuk sistem SCADA. SCADA saat ini digunakan hampir di seluruh proyek-proyek industri dan infrastruktur umum. Intinya SCADA dapat digunakan dalam aplikasi-aplikasi yang membutuhkan kemudahan dalam pemantauan sekaligus juga pengontrolan, dengan berbagai macam media antarmuka dan komunikasi yang tersedia saat ini (misalnya, Komputer, PDA, Touch Screen, TCP/IP, wireless dan lain sebagainya). 2.1.4 SCADA pada sistem distribusi tenaga listrik Fasilitas SCADA diperlukan untuk melaksanakan pengusahaan tenaga listrik terutama pengendalian operasi secara realtime. Suatu sistem SCADA terdiri dari sejumlah RTU, sebuah Master Station / Region Control Center (RCC), dan jaringan telekomunikasi data antara RTU dan Master Station. RTU dipasang di setiap gardu induk atau pusat pembangkit hendaknya dipantau. RTU ini bertugas untuk mengetahui setiap kondisi peralatan tegangan tinggi melalui pengumpulan besaran listrik, status peralatan, dan sinyal alarm yang kemudian diteruskan ke Master Station melalui jaringan telekomunikasi data. RTU juga dapat menerima dan melaksanakan perintah untuk merubah status peralatan tegangan tinggi melalui sinyal-sinyal perintah yang dikirimkan master station. Operasi pengawasan pada sistem SCADA memakai metode pemindaian (scanning) secara berurutan dari RTU-RTU yang terdapat pada Gardu indukGardu induk. Sistem ini mampu mengontrol beberapa RTU dengan banyak peralatan pada tiap RTU hanya dengan satu Master Station. Lebih lanjut, sistem ini juga mampu mengirim dari jarak jauh data-data hasil pengukuran oleh RTU ke Master Station, seperti data analog frekuensi, tegangan, daya dan besaran lain yang dibutuhkan untuk keseluruhan operasi pengawasan Master Station secara berurutan memindai beberapa RTU dengan mengirimkan pesan pendek pada tiap RTU untuk mengetahui jika RTU mempunyai informasi yang perlu dilaporkan. Jika RTU mempunyai sesuatu yang 12 perlu dilaporakan, RTU akan mengirim pesan balik pada Master Station, dan data akan diterima dan dimasukan ke dalam memori komputer. Jika diperlukan, pesan akan dicetak pada mesin printer di Master Station dan ditampilkan pada layar monitor. RTU/CDS RTU GARDU DISTRIBUSICONCENTRATOR GARDU INDUK MASTER SCADA GARDU DISTRIBUSI RTU/CDS GARDU DISTRIBUSI RTU/CDS GARDU DISTRIBUSI GARDU DISTRIBUSI GARDU DISTRIBUSI GARDU DISTRIBUSI KONSUMEN Gambar 2.3 Alur Informasi Sistem SCADA Distribusi Tenaga Listrik Siklus pindai membutuhkan waktu relatif pendek, sekitar 7 detik (maksimal 10 detik ). Siklus pindai yaitu pemindaian seluruh RTU dalam sistem. Ketika Master Station memberikan perintah kepada sebuah RTU, maka semua RTU akan menerima perintah itu, akan tetapi hanya RTU yang alamatnya sesuai dengan perintah itulah yang akan menjalankannya. Sistem ini dinamakan dengan sistem polling. Pada pelaksanaan terdapat waktu tunda untuk mencegah kesalahan yang berkaitan dengan umur data analog. Selain dengan sistem pemindai, pertukaran data juga dapat terjadi secara segera setelah aksi manuver terjadi (incidental) misalnya terjadi penutupan switch Circuit Breaker oleh operator gardu induk, maka RTU secara otomatis akan segera mengirimkan status CB di gardu induk tersebut ke Master Station. Dispatcher akan segera mengetahui bahwa CB telah tertutup. 13 Ketika operasi dilakukan dari Master Station, pertama yang dilakukan adalah memastikan peralatan yang dipilih adalah tepat, kemudian diikuti dengan pemilihan operasi yang akan dilakukan. Operator pada Master Station melakukan tindakan tersebut erdasarkan prosedur yang disebut metode “select before execute (SBXC)”, seperti dubawah ini: 1). Dispatcher di MTU memilih RTU. 2). Dispatcher memilih peralatan yang akan dioperasikan. 3). Dispatcher mengirim perintah. 4). RTU mengetahui peralatan yang hendak dioperasikan. 5). RTU melakukan operasi dan mengirim sinyal balik pada MTU ditunjukan dengan penerimaan pesan pada layar monitor dan cetakan pesan tersebut pada printer. Jika terjadi gangguan pada RTU, pesan akan dikirim dari RTU yang mengalami gangguan ke Master Station, dan pemindaian yang normal akan mengalami penundaan yang cukup lama karena Master Station mendahulukan pesan gangguan dan menyalakan alarm agar operator dapat mengambil tindakan yang diperlukan cecepatnya. Pada saat lain, pada kebanyakan kasus, status semua peralatan pada RTU dapat dimonitor setiap 2 detik, memberikan informasi kondisi sistem yang terjadi pada operator di pusat kendali. 2.2 Komunikasi Data Komunikasi data adalah merupakan bagian dari telekomunikasi yang secara khusus berkenaan dengan transmisi atau pemindahan data dan informasi diantara komputer-komputer dan piranti-piranti yang lain dalam bentuk digital yang dikirimkan melalui media komunikasi data. Data berarti informasi yang disajikan oleh isyarat digital. Komunikasi data merupakan bagian vital dari suatu masyarakat informasi karena sistem ini menyediakan infrastruktur yang memungkinkan komputer-komputer dapat berkomunikasi satu sama lain. 14 Gambar 2.4 Dasar Komunikasi Data Komunikasi data bisa melakukan transmisi atau proses pengiriman dan penerimaan data dari dua atau lebih device (sumber), melalui beberapa media. Media tersebut dapat berupa kabel koaksial, fiber optic (serat optic), microware dan sebagainya. Komunikasi Data saat ini menjadi bagian dari kehidupan masyarakat, karena telah diterapkan dalam berbagai bentuk aplikasi misal: komunikasi antar komputer yang populer dengan istilah internet, handphone ke komputer, handphone ke handphone, komputer atau handphone ke perangkat lain misalnya printer, fax, telepon, camera video dll. Model Komunikasi data: 1. Komunikasi data Simplex: satu arah Gambar 2.5 Komunikasi data Simplex 2. Komunikasi data Half Duplex: Dua arah bergantian Gambar 2.6 Komunikasi data Half Duplex 15 3. Komunikasi data Full Duplex: Dua arah bersamaan Gambar 2.7 Komunikasi data Full Duplex 2.2.1 Komunikasi data UART Ada 2 macam cara komunikasi data serial yaitu Sinkron dan Asinkron. Pada komunikasi data serial sinkron, clock dikirimkan bersama sama dengan data serial, tetapi clock tersebut dibangkitkan sendiri – sendiri baik pada sisi pengirim maupun penerima. Sedangkan pada komunikasi serial asinkron tidak diperlukan clock karena data dikirimkan dengan kecepatan tertentu yang sama baik pada pengirim / penerima. Pada IBM PC kompatibel port serialnya termasuk jenis asinkron. Komunikasi data serial ini dikerjakan oleh UART (Universal Asynchronous Receiver Transmitter). IC UART dibuat khusus untuk mengubah data parallel menjadi data serial dan menerima data serial yang kemudian dirubah lagi menjadi data parallel.IC UART 8250 merupakan salah satunya. Selain berbentuk IC mandiri berbagai macam mikrokontroller juga ada yang dilengkapi dengan UART, misalnya AT89S51/52/53 atau PIC16F877. Pada UART, kecepatan pengiriman data (atau yang sering disebut dengan Baud Rate) dan fase clock pada sisi transmitter dan sisi receiver harus sinkron. Untuk itu diperlukan sinkronisasi antara Transmitter dan Receiver. Hal ini dilakukan oleh bit “Start” dan bit “Stop”. Ketika saluran transmisi dalam keadaan idle, output UART adalah dalam keadaan logika “1”. Ketika Transmitter ingin mengirimkan data, output UART akan diset dulu ke logika “0” untuk waktu satu bit. Sinyal ini pada receiver akan dikenali sebagai sinyal “Start” yang digunakan untuk menyinkronkan fase clocknya sehingga sinkron dengan fase clock transmitter. Selanjutnya data akan dikirimkan secara 16 serial dari bit yang paling rendah (bit 0) sampai bit tertinggi.Selanjutnya akan dikirimkan sinyal “Stop” sebagai akhir dari pengiriman data serial. Sebagai contoh misalnya akan dikirimkan data huruf “A” dalam format ASCII (atau sama dengan 41 heksa atau 0100 0001). Gambar 2.8 Contoh Pengiriman 1 byte Kecepatan transmisi (baud rate) dapat dipilih bebas dalam rentang tertentu.Baud rate yang umum dipakai adalah 110, 135, 150, 300, 600, 1200, 2400, dan 9600 (bit/perdertik).Dalam komunikasi data serial, baud rate dari kedua alat yang berhubungan harus diatur pada kecepatan yang sama. Selanjutnya harus ditentukan panjang data (6,7 atau 8 bit), paritas (genap, ganjil, atau tanpa paritas), dan jumlah bit “Stop” (1, 1 ½ , atau 2 bit). Untuk dapat menggunakan port serial harus diketahui dahulu alamat dari port serial tersebut. Biasanya tersedia dua port serial pada CPU, yaitu COM1 dan COM2. Base Address COM1 biasanya 1016 (3F8h) dan COM2 biasanya 760 (2F8h). Alamat tersebut adalah alamat yang biasa digunakan, tergantung komputer yang digunakan.Tepatnya kita bisa melihat pada peta memori tempat menyimpan alamat tersebut, yaitu memori 0000.0400h untuk COM1 dan 0000.0402h untuk COM2. Gambar 2.9 Nama Register – Register UART 17 2.2.2 Keterangan Register 1). RX Buffer, digunakan untuk menampung dan menyimpan data. 2). TX Buffer, digunakan untuk menampung dan menyimpan data yang akan dikirim ke port serial. 3). Baud Rate Divisor Latch LSB, digunakan untuk menampung byte bobot rendah untuk pembagi clock pada IC UART agar didapat baud rate yang tepat. 4). Baud Rate Divisor Latch MSB, digunakan untuk menampung byte bobot tinggi untuk pembagi clock pada IC UART sehingga total angka pembagi adalah 4 byte yang dapat dipilih dari 0001h sampai FFFFh. Berikut adalah tabel angka pembagi yang sering digunakan : Gambar 2.10 Komunikasi data Half Duplex Sebagai catatan, register Baud Rate Divisor Latch ini bisa diisi jika bit 7 pada register Line Control Register diisi 1. 2.2.3 Pemrograman Port Serial Komputer Port serial sering digunakan untuk interfacing komputer dan mikrokontroler, karena kemampuan jarak pengiriman data dibandingkan port paralel. Berikut contoh program assembly untuk komunikasi serial antara 2 PC. Untuk komunikasi ini, yang perlu dihubungkan : 1). Pin TxD ke pin RxD computer lain 2). Pin RXD dihubungkan ke pin TxD komputer lain 3). RTS dan CTS dihubung singkat 18 4). DSR dan DTR dihubung singkat 5). GND dihubungkan ke GND komputer lain Komunikasi yang dilakukan secara serial mempunyai keuntungan dari sisi pengkabelan, karena hanya memerlukan tiga buah kabel, TX, RX dan Ground. 2.2.4 Alasan Penggunaan Port Serial Dibandingkan dengan menggunakan port parallel penggunaan port serial terkesan lebih rumit. Berikut adalah keuntungan penggunaan port serial dibandingkan penggunaan port parallel. 1). Pada komunikasi dengan kabel yang panjang, masalah cable loss tidak akan menjadi masalah besar daripada menggunakan kabel parallel. Port serial mentransmisikan “1” pada level tegangan -3 Volt sampai -25 Volt dan “0” pada level tegangan +3 Volt sampai +25 Volt, sedangkan port parallel mentransmisikan “0” pada level tegangan 0 Volt dan “1” pada level tegangan 5 Volt. 2). Dibutuhkan jumlah kabel yang sedikit, bisa hanya menggunakan 3 kabel yaitu saluran Transmit Data, saluran Receive Data, dan saluran Ground (Konfigurasi Null Modem) 3). Saat ini penggunaan mikrokontroller semakin populer. Kebanyakan mikrokontroller sudah dilengkapi dengan SCI (Serial Communication Interface) yang dapat digunakan untuk komunikasi dengan port serial komputer. 2.3 Bahasa Pemograman Basic 2.3.1 Tipe data Tipe data merupakan bagian program yang paling penting karena tipe data mempengaruhi setiap instruksi yang akan dilaksanakan oleh komputer. Pemilihan tipe data yang tepat akan membuat operasi data menjadi lebih efesien dan efektif. Pada tabel 2.2 merupakan tipe-tipe data yang biasa digunakan: 19 Tabel 2.2 Tipe-tipe Data No Tipe Jangkauan 1 Bit 0 atau 1 2 Byte 0 – 255 3 Integer -32,768 – 32,678 4 Word 0 – 65535 5 Long -2147483648 – 2147483648 6 Single 1,5 x 10 -45 – 3,4 x 10 38 7 Double 5,0 x 10 -324 – 1,7 x 10 308 8 String > 254 byte 2.3.2 Konstanta Konstanta merupakan suatu nilai yang tidak dapat diubah selama proses program berlangsung. Konstanta nilainya selalu tetap dan harus didefinisikan terlebih dahulu di awal program. Konstanta dapat bernilai integer, pecahan, karakter, dan string. 2.3.3 Variabel Variabel adalah suatu pengenal (identifier) yang digunakan untuk mewakili suatu nilai tertentu di dalam proses program. Nilai dari suatu variabel bisa diubahubah sesuai dengan kebutuhan. Tetapi programmer tidak bisa terlalu bebas untuk memberi nama pada sebuah variabel. Nama dari suatu variabel dapat ditentukan sendiri oleh programmer dengan aturan sebagai berikut: 1). Terdiri dari gabungan huruf dan angka dengan karakter pertama harus berupa huruf. 2). Panjangnya maksimum 32 karakter dan tidak boleh mengandung spasi. 20 3). Tidak boleh mengandung simbol-simbol khusus kecuali garis bawah. Yang termasuk simbol khusus yang tidak diperbolehkan antara lain: $, ?, %, #, !, &, *, (, ), -, +, =, dan sebagainya. 2.3.4 Deklarasi Deklarasi diperlukan bila kita akan menggunakan pengenal (identifier) dalam program. Identifier dapat berupa variabel, konstanta, dan fungsi. Macam-macam deklarasi antara lain: 1). Deklarasi Variabel Bentuk umum pendeklarasian suatu variable adalah: Dim Nama_variable As Nama_tipe; Contoh: Dim x As Integer „Deklarasi x bertipe integer‟ 2). Deklarasi Konstanta Dalam Bahasa Basic, konstanta dideklarasikan secara langsung. Contoh: S = “Hello world” „Assign string‟ 3). Deklarasi Fungsi Fungsi merupakan bagian yang terpisah dari program dan dapat diaktifkan atau dipanggil dimanapun di dalam program. Fungsi dalam bahasa basic ada yang sudah disediakan sebagai fungsi pustaka seperti print, input, data, dan untuk menggunakannya tidak perlu dideklarasikan. Sedangkan fungsi yang perlu dideklarasikan terlebih dahulu adalah fungsi yang dibuat oleh pemrogram. Bentuk umum deklarasi sebuah fungsi adalah: TEST [( [BYREF/BYVAL] var as type)] As type 2.3.5 Penyeleksian kondisi Penyeleksian kondisi digunakan untuk mengarahkan perjalanan suatu proses. Fungsi penyeleksian kondisi mempunyai arti penting dalam penyusunan bahasa basic terutama untuk program yang kompleks. Penyeleksian kondisi terdiri atas: 21 1). Struktur Kondisi “IF...THEN” Sturktur if…then dibentuk dari pernyataan if dan sering digunakan untuk menyeleksi suatu kondisi tunggal. Bila proses yang diseleksi terpenuhi atau bernilai benar, maka pernyataan yang ada dalam blok if akan diproses dan dikerjakan. Bentuk umum struktur kondisi if adalah: If (kondisi) then (pernyataan); 2). Struktur kondisi “IF…ELSE…” Dalam struktur kondisi if…else… minimal terdapat dua pernyataan. Jika kondisi yang diperiksa bernilai benar atau terpenuhi maka pernyataan pertama yang akan dilaksanakan dan jika kondisi yang diperiksa bernilai salah, maka pernyataan kedua yang dilaksanakan. Bentuk umumya adalah sebagai berikut: If (kondisi) pernyataan-1 else pernyataan-2 3). Struktur kondisi “SWITCH...CASE...” Struktur kondisi switch…case…default dapat digunakan untuk penyeleksian kondisi dengan kemungkinan terjadi cukup banyak. Struktur ini akan melaksanakan salah satu dari beberapa pernyataan „case‟ tergantung nilai kondisi yang ada dalam switch. Selanjutnya proses diteruskan hingga ditemukan pernyataan „break‟. Jika tidak ada nilai pada case yang sesuai dengan nilai kondisi, maka proses akan diteruskan kepada pernyataan yang ada dibawah default. Bentuk umum dari struktur kondisi ini adalah: Select case (kondisi) { case 1 : pernyataan-1; break; case2 : pernyataan-2; break; ……… case n : pernyataan-n; 22 break; default : pernyataan-m } 4). Perulangan Dalam bahasa basic tersedia suatu fasilitas yang digunakan untuk melakukan proses yang berulang-ulang sesuai keinginan kita. Struktur perulangan dalam bahasa basic mempunyai bentuk bermacam-macam, antara lain: a). Struktur perulangan “WHILE” Perulangan while banyak digunakan pada program yang terstruktur. Perulangan ini banyak digunakan bila jumlah perulangannya belum diketahui. Proses perulangan akan terus berlanjut selama kondisinya bernilai benar (true) dan akan berhenti bila kondisinya bernilai salah. b). Struktur perulangan “DO…LOOP” Struktur perulangan do…loop digunakan untuk proses perulangan sekurangkurangnya satu kali perulangan. c). Struktur perulangan “FOR” Struktur perulangan for biasa digunakan utnuk mengulang suatu proses yang telah diketahui jumlah perulangannya. Dari segi penulisan, struktur perulangan for lebih efisien karena susunannya lebih dan sederhana. Bentuk umum perulangan for adalah sebagai berikut: FOR var = start TO end [STEP value] 2.3.6 Microsoft Visual Basic 6.0 Visual Basic merupakan salah satu Development Tool yaitu alat bantu untuk membuat berbagai macam program komputer, khususnya yang menggunakan sistem operasi Windows yang menawarkan Integrated Development Environment (IDE) visual untuk membuat program perangkat lunak berbasis sistem operasi Microsoft Windows dengan menggunakan model pemrograman (COM). Bahasa pemrograman Visual Basic, yang dikembangkan oleh Microsoft sejak tahun 1991, merupakan pengembangan dari pendahulunya yaitu bahasa pemrograman BASIC 23 (Beginner‟s All-purpose Symbolic Instruction Code) yang dikembangkan pada era 1950-an. Ledakan pemakaian Visual Basic ditandai dengan kemampuan Visual untuk dapat berinteraksi dengan aplikasi lain di dalam sistem operasi Basic Windows dengan komponen ActiveX Control. Dengan komponen ini memungkinkan penguna untuk memanggil dan menggunakan semua model data yang ada di dalam sistem operasi windows. Hal ini juga ditunjang dengan teknik pemrograman di dalam Visual Basic yang mengadopsi dua macam jenis pemrograman yaitu Pemrograman Visual dan Object Oriented Programming (OOP). Visual Basic 6.0 sebetulnya perkembangan dari versi sebelumnya dengan beberapa penambahan komponen yang sedang tren saat ini, seperti kemampuan pemrograman internet dengan DHTML (Dynamic HyperText Mark Language), dan beberapa penambahan fitur database dan multimedia yang semakin baik. Hingga akhirnya Visual Basic berkembang menjadi beberapa versi, sampai yang terbaru, yaitu Visual Basic 2010. Namun bagaimanapun juga Visual Basic 6.0 tetap menjadi versi yang paling populer dan merupakan pilihan pertama di dalam membuat program aplikasi yang ada di pasar perangkat lunak nasional karena mudah dalam membuat programnya dan ia tidak menghabiskan banyak memori serta kemudahan dalam melakukan proses development dari aplikasi yang dibuat. Itulah mengapa penulis lebih memilih menggunakan Visual Basic 6.0 dibanding versi terbarunya. Gambar 2.11 Tampilan awal Visual Basic 6.0 Professional 24 Dalam proses programming VB memiliki setidaknya dua buah form utama, satu sebagai form interface yang berbasis grafik, dan yang lain sebagai form source codenya. Gambar 2.12 Tampilan form source code Visual Basic 6.0 Professional Berikut ini adalah source code program sederhana yang menampilkan message box yang bertuliskan “Hello, World!”, tampilnnya sebagai berikut, Private Sub Form_Load() ' Execute a simple message box that will say "Hello, World!" MsgBox "Hello, World!" End Sub Untuk menjalankan program klik ikon Run () pada toolbar atau pilih menu [Run] >> [Start], atau dengan tekan tombol [F5], dan hasilnya bisa dilihat pada gambar 2.38 dibawah. Gambar 2.13 Tampilan Execute program message box yang bertuliskan Hello, World! 25 Kemudian beberapa properti penting yang akan digunakan pada pembahasan bab berikutnya diantaranya adalah. 1). MSComm Gambar 2.14 Icon Properti MSComm Properti ini digunakan untuk menjalin komunikasi antara PC (Personal Computer) dengan menggunakan fasilitas VB6, dengan peralatan diluar baik itu melalui Hub RJ45, BD15, DB25 (di komputer konvensional) ataupun melalui USB. Dengan mengatur nomor port yang ingin disambungkan dan menset dimana divais yang ingin dihubung ke PC dipasang, maka akan terjalin komunikasi setelah Properti MSComm (ke-n). Portopen di program sama dengan True. 2). MSFlexGrid Gambar 2.15 Icon Properti MSFlexGrid Properti ini digunakan sebagai fasilitas record data yang masuk melalui port input MSComm, sehingga data yang masuk akan dikelompokkan setelah melalui beberapa fasilitas properti lain dan menempati grid-grid yang telah diberi label sesuai dengan urutannya. 3). ImageList Gambar 2.16Icon Properti ImageList 26 Properti ini penggunaannya lebih kearah visualisasi, ImageList ini dapat memanggil gambar dalam jumlah yang ditentukan dan menampilkannya secara berurutan. Adapun setting dari interval penampilan gambarnya diatur oleh properti lain. 4). CommandButton Gambar 2.17 Icon Properti CommandButton Properti CommandButton ini adalah salah satu objek yang paling vital dalam melakukan fungsi komunikasi secara interface, cara kerajanya adalah dengan meng-klik CommandButton tersebut pada saat program dalam keadaan running. Adapun follow up dari meng-klik tombol ini bergantung pada source code yang tuliskan ke dalamnya. 5). Timer Gambar 2.18 Icon Properti Timer Properti timer ini sangat penting dalam melaksanakan fungsi timing, terutama untuk kerja program yang ingin dibuat bekerja otomatis. Dengan meletakkan source code kerja dari properti lain, di dalam properti Timer ini, dan mengatur interval kerja Timer, dalam tenggang waktu (interval) yang diatur sebelumnya, maka kerja properti yang disimpan di dalam properti Timer ini akan bekerja dan berulang secara otomatis sesuai setting interval kerja.