BAHASA PEMROGRAMAN BASIC dengan QBasic
        Oleh : Hendra, ST.

        Modul 11
        PENGOLAHAN FILE KOMUNIKASI

        Pada QBasic tersedia fasilitas untuk melakukan komunikasi data
        melalui interface RS232 pada Serial Port COM1 dan COM2 yang
        diperlakukan seperti pengolahan file.

        Pada fasilitas perkantoran peralatan seperti PABX dapat
        dihubungkan dengan PC melalui interface RS232 pada Serial Port
        COM1 maupun COM2 untuk mendapatkan CMDR log dari pemakaian
        telepon.

        Dengan menggunakan fasilitas pada QBasic, anda dapat membuat
        program untuk membaca data CMDR dari Serial Port COM1 maupun COM2
        untuk disimpan maupun diolah menjadi informasi yang lebih baik,
        misalnya perhitungan tarif pemakaian telepon tiap individu.


        1. Perintah membuka dan menginisialisasi saluran komunikasi

        Perintah OPEN COM harus dilakukan sebelum peralatan dapat
        digunakan untuk komunikasi melalui interface RS232.

        OPEN "COMn: list1 list2" FOR RANDOM AS [#]nomor]

        dimana :
        n adalah nomor port komunikasi yang ingin dibuka
          (1 = COM1, 2 = COM2).

        list1 adalah parameter komunikasi yang sering digunakan :
          [baud] [,[parity] [,[data] [,[stop]]]]

          baud adalah baud rate dari peralatan yang dibuka :
               75, 110, 150, 300, 600, 1200, 2400, 4800, 9600

          parity adalah metode dari pemeriksaan pariti :
               N (none)     E (even)    O (odd)
               S (space)    M (mark)    PE (enable error checking)

          data adalah jumlah data bit setiap byte :
               5, 6, 7, 8

          stop adalah jumlah stop bit :
               1, 1.5, 2

          Defaultnya: 300 baud, even parity, 7 data bits, 1 stop bit.

        list2 adalah parameter komunikasi yang jarang digunakan yang
        dipisahkan dengan koma.

          Option    Description

          ASC       Opens the device in ASCII mode.
          BIN       Opens the device in binary mode.
          CD[m]     Sets the timeout period (in milliseconds) on the
                    Data Carrier Detect (DCD) line.
          CS[m]     Sets the timeout period (in milliseconds) on the
                    Clear to Send (CTS) line.
          DS[m]     Sets the timeout period (in milliseconds) on the
                    Data Set Ready (DS) line.
          LF        Sends a line-feed character after a carriage
                    return.
          OP[m]     Specifies how long (in milliseconds) OPEN COM
                    waits for all communications lines to become open.
          RB[n]     Sets the size (in bytes) of the receive buffer.
          RS        Suppresses detection of Request to Send (RTS).
          TB[n]     Sets the size (in bytes) of the transmit buffer.

        Contoh :

        OPEN "COM1:300,N,8,1,CD0,CS0,DS0,OP0,RS,TB2048,RB2048" FOR RANDOM AS #1

        Akan membuka Serial Port COM1 sebagai file nomor 1, mengenai
        parameter komunikasi sangat bergantung kepada setting pabrik
        peralatan tersebut.


        Membaca dari peralatan yang terbuka

        INPUT$(n,nomor)

        dimana
        n adalah jumlah karakter yang dibaca.
        nomor adalah nomor file yang terbuka.

        Contoh :

        A$ = Input$(1,1)

        Dimana akan menbaca 1 huruf dari file nomor 1


        Mengirim data ke peralatan yang terbuka

        Anda dapat menggunakan perintah print untuk mengirim data ke
        peralatan yang terbuka.

        Print #nomor, ekspresi

        Contoh :

        Print #1, "A"

        Akan mengirim huruf "A" ke file nomor 1


        Memeriksa keberadaan data pada Receive Buffer file komunikasi.

        Anda dapat menggunakan fungsi LOC(nomorfile) untuk mengetahui
        apakah input buffer dalam keadaan kosong atau berisi data.


        Contoh :

        OPEN "COM1:300,N,8,1,CD0,CS0,DS0,OP0,RS,TB2048,RB2048" FOR RANDOM AS #1

        DO

          tekan$ = INKEY$
          IF tekan$ <> "" THEN
             PRINT #1, tekan$;        'Kirim apa yang ditekan
          END IF
          IF LOC(1) <> 0 THEN         'Jika ada data pada Recieve Buffer
             baca$ = INPUT$(1, 1)     'Baca satu huruf
             PRINT baca$;
          END IF

        LOOP

        CLOSE #1


        Program diatas adalah contoh Chatting sederhana melalui kabel
        LapLink antara dua komputer yang dihubungkan melalui COM1.


        Menutup file

        Untuk menutup file, anda dapat menggunakan perintah close.

        Close #nomor

        Contoh :

        Close #1


        Contoh program komunikasi RS232 antara Pabx Rolm vscbx dengan PC
        melalui COM1, untuk maintenance :

        OPEN "COM1:300,E,7,1,CD0,CS0,DS0,OP0,RS,TB2048,RB2048" FOR RANDOM AS #1

        DO

          tekan$ = INKEY$

          IF tekan$ <> "" THEN
             PRINT #1, tekan$;        'Kirim apa yang ditekan
          END IF

          IF LOC(1) <> 0 THEN         'Jika ada data pada Recieve Buffer
             baca$ = INPUT$(1, 1)     'Baca satu huruf
             PRINT baca$;
          END IF

        LOOP

        CLOSE #1


        Contoh program komunikasi RS232 antara Pabx Rolm vscbx dengan PC
        melalui COM2, untuk CMDR Log :

        OPEN "COM2:1200,E,7,1,CD0,CS0,DS0,OP0,RS,TB2048,RB2048" FOR RANDOM AS #1
        OPEN "CMDR.LOG" FOR BINARY AS #2

        JlhByte = LOF(2)

        DO

          tekan$ = INKEY$

          IF LOC(1) <> 0 THEN         'Jika ada data pada Recieve Buffer
             baca$ = INPUT$(1, 1)     'Baca satu huruf
             JlhByte = JlhByte + 1
             PUT #2, JlhByte, Baca$
             PRINT baca$;
          END IF

        LOOP UNTIL tekan$ <> ""

        CLOSE #1

        CLOSE #2

    Source: geocities.com/indoprog/tutorial/vb

               ( geocities.com/indoprog/tutorial)                   ( geocities.com/indoprog)