Senin, 22 November 2010

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