SlideShare ist ein Scribd-Unternehmen logo
1 von 50
Downloaden Sie, um offline zu lesen
Dasar Pemrograman                                                        Oleh : Hendra, ST.


                                  KATA PENGANTAR
Selamat datang di dunia pemrograman komputer.

       Dewasa ini, jurusan komputer telah menjadi salah satu jurusan favorit bagi lulusan SMU
untuk melanjutkan pendidikannya di perguruan tinggi. Sebagai salah satu mahasiswa jurusan
komputer, tentu saja topik algoritma dan pemrograman merupakan mata kuliah wajib, karena
kesuksesan sebagai seorang mahasiswa jurusan komputer adalah kemampuan pemanfaatan
komputer dan kemampuan menghasilkan berbagai aplikasi yang dapat bermanfaat bagi perusahaan
maupun masyarakat.

       Sesuatu yang harus disadari para mahasiswa adalah dalam mempelajari pemrograman
komputer bukanlah sesuatu yang mudah, karena sangat membutuhkan minat dan bakat, dan buku
ini memcoba membimbing anda secara step-by-step menuju ke dunia pemrograman komputer.

       Akhirnya, selamat belajar dan berlatih.

                                                           Medan, 17 Agustus 2003



                                                           Hendra, ST.




Indoprog                                                                                    1
Dasar Pemrograman                                                          Oleh : Hendra, ST.



Modul 1, PROGRAM KOMPUTER dan ALGORITMA
PROGRAM KOMPUTER
Program komputer adalah suatu himpunan dari instruksi yang memberitahukan kepada komputer
apa yang harus dilakukan. Instruksi tersebut mungkin memberitahukan kepada komputer untuk
menambah, membandingkan, dan membuat keputusan berdasarkan hasilnya.

BAHASA KOMPUTER
Agar suatu komputer dapat mengenali instruksi yang anda berikan, instruksi tersebut perlu ditulis
dalam bahasa yang dimengerti oleh komputer.

HIGH-LEVEL dan LOW-LEVEL
Pada dasarnya orang mengolongkan Bahasa komputer menjadi dua golongan besar yaitu High-
Level dan Low-Level.

Bahasa pemrograman seperti BASIC, PASCAL, FORTRAN dan C, memungkinkan programmer
untuk menulis program yang tidak begitu tergantung pada jenis komputer. Berdasarkan hal inilah
bahasa-bahasa ini dapat dikategorikan sebagai high-level karena lebih dekat kepada manusia.

Sebaliknya, bahasa assembly dikategorikan sebagai low-level karena mereka sangat dekat kepada
hardware.

Keuntungan utama dari bahwa high-level dibandingkan dengan low level adalah lebih mudah
dibaca, ditulis, dan ditangani. Selanjutnya program yang ditulis dengan bahasa high-level harus
diterjemahkan menjadi bahasa mesin melalui suatu compiler atau interpreter.




INTERPRETER dan COMPILER
Ketika anda menggunakan suatu interpreter, ia akan membaca perintah source code baris perbaris,
kemudian menterjemahkannya menjadi perintah mesin yang bersesuaian (kode mesin) dan
menjalankannya seketika. Kode mesin ini tidak disimpan; sehingga ketika anda mencoba
menjalankan program yang sama pada kesempatan berikutnya, anda membutuhkan source code dan
interpreter untuk menjalankannya.


Indoprog                                                                                            2
Dasar Pemrograman                                                         Oleh : Hendra, ST.

Ketika anda menggunakan suatu compiler, ia akan membaca perintah source code ... dan menulis
kode mesin. Setelah selesai keseluruhan kode mesin akan disimpan untuk pemakaian selanjutnya.
Ketika anda ingin menjalankan program tersebut, system operasi akan menjalankan kode mesin
yang telah disimpan – dalam hal ini source code tidak diperlukan lagi. Eksekusi menjadi lebih
cepat, dan dapat dijalankan dikomputer lain (dalam hal ini pada komputer dan system operasi yang
sama)

KOMPUTER dan ALGORITMA
Untuk membuat komputer melakukan sesuatu, anda perlu untuk menulis program komputer. Dalam
menulis suatu program komputer, kita perlu memberitahukan kepada komputer, langkah-langkah
persis apa yang harus ia lakukan. Ketika komputer menjalankan program tersebut, ia akan
melakukan setiap langkah secara mesin untuk mencapai tujuan akhir.

Ketika anda memberitahu kepada komputer apa yang harus dilakukan, anda perlu memilih
bagaimana hal tersebut dilakukan. Dari sinilah Algoritma Komputer muncul. Algoritma adalah
teknik dasar untuk menyelesaikan suatu pekerjaan. Perhatikan contoh berikut untuk membantu
pengertian anda tentang konsep dari algoritma.

Katakanlah misalnya anda mempunyai teman yang baru tiba di airport, dan teman anda ingin
berangkat dari airport ke rumah anda. Berikut ini adalah empat algoritma yang berbeda yang
mungkin dilakukan teman anda:

Algoritma taxi:
Pergi ke pemberhentian taxi.
Masuk ke taxi.
Berikan alamat rumah anda.

Algoritma Telepon untuk dijemput:
Ketempat pemberhentian, telepon ke handphone anda.
Menunggu saja ditempat pengambilan bagasi.

Algoritma Bus:
Keluar dari tempat pengambilan bagasi, naik bus nomor 70.
Turun dan naik bus nomor 14 pada jalan utama.
Turun di jalan pada jalan AB.
Jalan kaki dua blok arah utara ke rumah anda.

Ketiga algoritma diatas memiliki tujuan yang sama, tetapi masing-masing melakukannya dengan
cara yang berbeda. Masing-masing algoritma diatas juga menghabiskan waktu dan biaya yang
berbeda. Naik taxi, adalah contoh yang paling cepat, tetapi paling mahal. Naik bus mungkin adalah
paling hemat, tetapi lambat. Tentu saja anda perlu memilih algortima sesuai dengan situasi dan
kondisi.

Dalam pemrograman komputer, juga terdapat banyak cara – algoritma -- yang berbeda. Masing-
masing algoritma memiliki keuntungan dan kerugian untuk situasi yang berbeda




Indoprog                                                                                        3
Dasar Pemrograman                                                     Oleh : Hendra, ST.


PSEUDOCODE
PSEUDOCODE adalah cara sederhana untuk menggambarkan algoritma tanpa salah satu bahasa
pemrograman. Pseudocode sering digunakan pada buku-buku Computer science dalam contoh
mereka sehingga dapat dimengerti oleh para programmer dengan bahasa komputer yang berbeda.

Contoh notasi pseudocode:
<variable> = <expression>

Berhubungan dengan kondisi:
if <condition>
  lakukan sesuatu
else
  lakukan hal yang lain

Berhubungan dengan looping:
while <condition>
 lakukan sesuatu

for <variable> from <nilai awal> to <nilai akhir> by <step>
 lakukan sesuatu

Pemanggilan fungsi:
<function>(<arguments>)

Deklarasi fungsi:
function <function name>(<arguments>)
 lakukan sesuatu dengan arguments
 return sesuatu (optional)

Deklarasi variabel:
declare <variable-name> as <type>

Deklarasi array:
declare <array-name>[<lower-bound> to <upper-bound>] of <type>

Struktur data:
struct <name_of_new_type>
 <declaration(s) of internal variables>

Mengakses field yang terdapat pada struktur:
<structure variable name>.<field name>

FLOWCHART
FLOWCHART adalah salah satu cara menggambarkan algoritma dengan menggunakan simbol.

Start dan End


Indoprog                                                                                     4
Dasar Pemrograman                                           Oleh : Hendra, ST.




Input dan Output



Proses



Kondisi




Konektor



Aliran


Tugas :

   1. Tuliskan pengertian anda tentang Program Komputer, Bahasa Komputer, dan
      Algoritma !
   2. Tuliskan algoritma yang anda lakukan dari rumah menuju ke tempat kuliah !
   3. Apa perbedaan menurut anda antara Program Komputer dan Pseudocode ?
   4. Apa persamaan dan perbedaan antara pseudocode dengan flowchart ?

Tugas rumah :
Carilah nama-nama bahasa komputer dan pembuatnya, minimal 10.




Indoprog                                                                          5
Dasar Pemrograman                                                       Oleh : Hendra, ST.



Modul 2, BAHASA PEMROGRAMAN BASIC
SEJARAH BAHASA BASIC
Bahasa BASIC (standing for Beginner's All Purpose Symbolic Instruction Code) dibuat oleh John
G.Kemmeny dan Thomas E.Kurtz di Dartmouth College pada tahun 1964 merupakan bahasa
tingkat tinggi yang relatif mudah dipelajari dan dimengerti.

Adapun tokoh yang berperan penting dalam kepopularan bahasa BASIC adalah Bill Gates dan Paul
Allen (Microsoft Corporation), dimana mereka membuat intepreter BASIC untuk Altair PC
(dengan menggunakan memori sebesar 4KB meliputi programd dan source code). Dalam
perkembangan selanjutnya, mereka juga membuat intepreter BASIC untuk Apple, Commodore,
dan Atari PC.

Pada IBM-PC, Bahasa BASIC dikembangkan dalam dua jenis, yaitu Interpreter dan compiler.
Interpreter seperti GW-BASIC pada sistem operasi MS-DOS, maupun BASICA pada system
operasi PC-DOS, sedangkan salah satu compilernya yang terkenal adalah BASIC yang dilengkapi
dengan sistem pemrograman yang terstruktur, Library, on-line help yang terpadu, editor yang
efisien (bisa merapikan teks serta memberitahukan kesalahan syntax penulisan suatu perintah).

Dalam perkembangan bahasa BASIC, juga dikembangkan Turbo Basic oleh Robert S. Zale
(Borland International), dan untuk versi Power Basic oleh dirinya sendiri.

Pada dasarnya bahasa BASIC dirancang untuk :
   1. Be easy for beginners to use
   2. Be a general-purpose language
   3. Allow advanced features to be added for experts (while keeping the language simple for
       beginners)
   4. Be interactive
   5. Provide clear and friendly error messages
   6. Respond fast for small programs
   7. Not require an understanding of computer hardware
   8. Shield the user from the operating system

Unstructured original BASIC

 10 INPUT "What is your name: "; A$
 20 PRINT "Hello "; A$
 30 INPUT "How many stars do you want: "; S
 35 S$ = ""
 40 FOR I = 1 TO S
 50 S$ = S$ + "*"
 55 NEXT I
 60 PRINT S$
 70 INPUT "Do you want more stars? "; Q$
 80 IF LEN(Q$) = 0 GOTO 70
 90 Q$ = LEFT$(Q$, 1)
 100 IF (Q$ = "Y") OR (Q$ = "y") THEN GOTO 30



Indoprog                                                                                        6
Dasar Pemrograman                                                         Oleh : Hendra, ST.

 110    PRINT "Goodbye ";
 120    FOR I = 1 TO 200
 130    PRINT A$; " ";
 140    NEXT I
 150    PRINT

Modern Structured BASIC
 INPUT "What is your name"; UserName$
 PRINT "Hello "; UserName$
 DO
    INPUT "How many stars do you want"; NumStars
    Stars$ = ""
    Stars$ = REPEAT$("*", NumStars) '<-ANSI BASIC
    'Stars$ = STRING$(NumStars, "*") '<-MS BASIC
    PRINT Stars$
    DO
       INPUT "Do you want more stars"; Answer$
    LOOP UNTIL Answer$ <> ""
 LOOP WHILE UCASE$(LEFT$(Answer$, 1)) = "Y"
 PRINT "Goodbye ";
 FOR A = 1 TO 200
    PRINT UserName$; " ";
 NEXT A
 PRINT

LIMA LANGKAH DASAR PEMBUATAN PROGRAM

   1.    Recognizing the need for a program to solve a problem.
   2.    Planning the program and selecting the tools to solve the problem.
   3.    Writing the program in the programming language of choice.
   4.    Compiling: translating the human-readable source code into machine-readable executable
         code, which is done by compilers and other tools.
   5. Testing the program to make sure it works; if not, return to step 3 (see
      code and fix).

TYPE DATA

         Data Type           Suffix    Maximum                   Minimum                    Size
         Strings             $         32,767 chars              0 chars
         Integers            %         32,767                    -32,767                    2
         Long Integers       &         2,147,483,647             -2,147,483,648             4
         Single              !         +-3.402823 E+38           +-1.401298 E-45            4
         Double              #         +-1.7976931 D+308         +-4.940656 D-324           8
         User defined

OPERATOR
Arithmetic operators : melakukan tugas perhitungan

         Operator    Kegunaan                        Operator     Kegunaan



Indoprog                                                                                           7
Dasar Pemrograman                                                         Oleh : Hendra, ST.

        ^           Pangkat                                      Pembagian Integer
        -           Negatif                           Mod         Sisa bagi
        *           Perkalian                         +           Penjumlahan
        /           Pembagian                         -           Pengurangan

Relational operators : membandingkan strings dan nilai numerik

        Operator    Kegunaan
        =           Sama dengan
        <>          Tidak sama dengan
        <           Lebih kecil
        >           Lebih besar
        <=          Lebih kecil atau sama dengan
        >=          Lebih besar atau sama dengan

Logical operators : test kondisi dan manipulasi bits
        Expresi1 Expresi2 Not            And            Or        Xor        Eqv         Imp
        T         T            F         T              T         F          T           T
        T         F            F         F              T         T          F           F
        F         T            T         F              T         T          F           T
        F         F            T         F              F         F          T           T

String operators: mengabung (+), dan membandingkan String

LABEL dan VARIABEL
Penulisan label pada Basic harus memenuhi ketentuan :

Maksimum 40 character, dimulai dengan huruf A..Z
huruf besar/kecil sama, tidak sama dengan reserved word, dan tidak pakai spasi

Nama variabel juga memiliki ketentuan antara lain :

Maksimum 40 character, diawali dengan huruf A..Z, diakhiri dengan $, %, &, !, # untuk
menunjukan type
Tidak boleh sama dengan reserved word, tidak boleh pakai spasi dan spesial character.


PERINTAH DASAR INPUT OUTPUT
Komputer hanya melaksanakan apa yang diperintahkan pemrogram. Jadi, dalam membuat program
untuk menyelesaikan suatu masalah, kita harus tahu cara penyelesaiannya. Untuk itu diperlukan
tahap-tahap dalam menyelesaikan masalah tersebut.

INPUT dan OUTPUT merupakan awal dan akhir pengolahan suatu data. Tanpa proses INPUT,
kita tidak dapat memperoleh data untukdiolah dan data-data yang telah selesai diolah tidak akan
berarti tanpa proses OUTPUT.



Indoprog                                                                                          8
Dasar Pemrograman                                                  Oleh : Hendra, ST.

Contoh 1 :
  REM Program mencari Isi Bujursangkar
  INPUT "MASUKKAN SISI BUJURSANGKAR    :",S
  ISI = S * S
  PRINT "ISI DARI BUJURSANGKAR ADALAH :",ISI
  END

Contoh 2 :
  REM Program Isi Data
  INPUT "MASUKKAN NAMA ANDA            ";NM$
  INPUT "MASUKKAN UMUR ANDA            ";UR%
  INPUT "MASUKKAN TGL,BLN,THN HARI INI ";TG%,BL%,TH%
  PRINT "NAMA    : ";NM$
  PRINT "UMUR    : ";UR%
  PRINT "TANGGAL : ";TG%
  PRINT "BULAN   : ";BL%
  PRINT "TAHUN   : ";TH%
  END

Catatan :
Untuk memberi keterangan pada program dapat digunakan REM atau '
LATIHAN

   1. Tuliskan hasil evaluasi ekspresi berikut

          Ekspresi :       Hasilnya ?

          1 + 2            _____    Penjumlahan
          2 - 1            _____    Pengurangan
          2 * 3            _____    Perkalian
          5 / 2            _____    Pembagian
          5  2            _____    mengapa ? ____________ Pembagian bulat
          5 Mod 2          _____    mengapa ? ____________ Sisa bagi
          3^2              _____    Pangkat
          1+2*6^2/4-1      _____    Urutan operasi
          (1+2)*6^2/4-1    _____    Prioritas operasi

          Tuliskan kesimpulan anda tentang :
          1. Pembagian bulat ____________________________________________
          2. Sisa bagi __________________________________________________
          3. Urutan operasi _____________________________________________
          4. Prioritas operasi __________________________________________

          1   > 2          _____    lebih besar
          1   < 1          _____    lebih kecil
          2   = 2          _____    sama dengan
          2   >= 2         _____    lebih besar atau sama
          1   <= 2         _____    lebih kecil atau sama
          3   <> 3         _____    tidak sama dengan

          Mengapa True (-1) dan False (0) ?

          (1 > 2)    and (2 = 2)   _____ Operasi And
          (1 > 2)    and (1 < 2)   _____ Operasi And
          (1 < 2)    and (2 = 2)   _____ Operasi And



Indoprog                                                                            9
Dasar Pemrograman                                                        Oleh : Hendra, ST.

        (3 <> 2) and (1 > 2)               _____ Operasi And

        (1   > 2)     and   (2   =   2)    _____   Operasi   Or
        (1   > 2)     and   (1   <   2)    _____   Operasi   Or
        (1   < 2)     and   (2   =   2)    _____   Operasi   Or
        (3   <> 2)    and   (1   >   2)    _____   Operasi   Or

        (1   > 2)     Xor   (2   =   2)    _____   Operasi   Xor
        (1   > 2)     Xor   (1   <   2)    _____   Operasi   Xor
        (1   < 2)     Xor   (2   =   2)    _____   Operasi   Xor
        (3   <> 2)    Xor   (1   >   2)    _____   Operasi   Xor

        (1   > 2)     Eqv   (2   =   2)    _____   Operasi   Eqv
        (1   > 2)     Eqv   (1   <   2)    _____   Operasi   Eqv
        (1   < 2)     Eqv   (2   =   2)    _____   Operasi   Eqv
        (3   <> 2)    Eqv   (1   >   2)    _____   Operasi   Eqv

        (1   > 2)     Imp   (2   =   2)    _____   Operasi   Imp
        (1   > 2)     Imp   (1   <   2)    _____   Operasi   Imp
        (1   < 2)     Imp   (2   =   2)    _____   Operasi   Imp
        (3   <> 2)    Imp   (1   >   2)    _____   Operasi   Imp

        Not (1 > 2)                        _____ Operasi Imp
        Not (2 > 2)                        _____ Operasi Imp

        Not (1 > 2) Or (2 = 2) And (3 < 2) ______ Urutan operasi

        Tuliskan kesimpulan anda tentang urutan operasi pada operator
        logika.

2. Ketiklah ekspresi berikut pada jendela immedietly :

        A   = 123
        B   = 1234567890
        C% = 32767
        D% = 100000                       Overflow, mengapa ?
        D& = 100000
        E$ = "Indoprog"
        F$ = 123                          Type mismatch, mengapa ?
        G   = "hendra"                    Type mismatch, mengapa ?
        H_1 = 123                         expected : end-of-statement, mengapa ?
        nilai ujian = 90                  Syntax error, mengapa ?
        next = 5                          expected : variable or end-of-statement ?
        cls = 6                           expected : variable or end-of-statement ?

        A%    = 1.2                       Berapa nilai A% ?
        A%    = 1.5                       Berapa nilai A% ?

        Tuliskan kesimpulan anda tentang variabel dan nama variabel

        1 + 1                             ______
        1 + "100"                         Type mismatch, mengapa ?
        "A" + "B"                         ______

        Tuliskan kesimpulan anda operator pada type data.

        Print "Untuk kemajuan Indonesia"


Indoprog                                                                                 10
Dasar Pemrograman                                         Oleh : Hendra, ST.


      Hasilnya : __________________________________


      Print "Untuk","kemajuan","Indonesia"

      Hasilnya : __________________________________


      Print "Untuk";"kemajuan";Indonesia"

      Hasilnya : __________________________________


      Print "Untuk"
      Print "Kemajuan"
      Print "Indonesia"
      Hasilnya : _____________
                 _____________
                 _____________

      Print "Untuk";
      Print "Kemajuan";
      Print "Indonesia"

      Hasilnya : __________________________________


      Print 1,2,3

      Hasilnya : __________________________________, mengapa ?


      Print 1;2;3

      Hasilnya : __________________________________, mengapa ?


      Print tab(10),"Hendra";tab(30);"Soewarno"

      Hasilnya : __________________________________, mengapa ?



      Input nama$
      print nama$

      Hasilnya :? Hendra
                __________________________________


      Input "Masukkan nama :", nama$
      print nama$

      Hasilnya :Masukkan nama : Hendra
                __________________________________




Indoprog                                                                  11
Dasar Pemrograman                                                     Oleh : Hendra, ST.


          Input "Masukkan nama "; nama$
          print nama$

          Hasilnya :Masukkan nama ? Hendra

                       __________________________________


          Input "Masukkan nama "; nama
          print nama

          Hasilnya : Masukkan nama ? Hendra
                     Redo from start, mengapa ?

   2. Program anda yang pertama

          Aktifkan ke jendela Editor
          Ketiklah CODE berikut :

          REM Program saya yang pertama
          CLS
          PRINT "Hello semua"
          END

          Simpan CODE diatas ke file Bab1F.Bas (gunakan menu File Save)

          Jalankan program diatas (gunakan menu Run Start atau tekan F5)

   3. Program dengan proses input/output

          Gunakan menu File New untuk memulai program baru
          Ketiklah CODE berikut :

          REM Program menghitung luas persegi panjang
          CLS
          INPUT "Masukkan sisi panjang :", panjang
          INPUT "Masukkan sisi lebar   :", lebar
          LUAS = panjang * lebar
          PRINT "Luas persegi panjang :", LUAS
          END

          Simpan CODE diatas ke file Bab1G.Bas

Tugas

   4. Buatlah program menghitung luas lingkaran.
   5. Buatlah program konversi suhu Celcius ke Farenheit, Kelvin, Reamur.

        Jawaban :

        REM   Program Konversi Celcius ke Reamur, Kelvin dan Fahrenheit
        DIM   c AS SINGLE
        DIM   r AS SINGLE
        DIM   k AS SINGLE
        DIM   f AS SINGLE
        CLS




Indoprog                                                                              12
Dasar Pemrograman                            Oleh : Hendra, ST.

    INPUT "Masukkan Derajat Celcius ? ", c
    r = 4 / 5 * c
    k = 273 + c
    f = 9 / 5 * c + 32
    PRINT "Derajat Reamur : ", r
    PRINT "Derajat Kelvin : ", k
    PRINT "Derajat Fahrenheit : ", f
    END




Indoprog                                                     13
Dasar Pemrograman                                                           Oleh : Hendra, ST.


Modul 3, STRUKTUR KENDALI IF
Struktur Kendali memegang peranan yang sangat penting dalam pembuatan program dengan
komputer, tanpa adanya struktur kendali kita hanya dapat membuat program yang sederhana
dimana prosesnya hanya dijalankan dari baris pertama sampai selesai. Pada kasus-kasus tertentu,
ada kalanya baris tertentu tidak boleh dilaksanakan apabila kondisi tidak dipenuhi, ataupun baris-
baris tertentu harus diulang sampai suatu kondisi terpenuhi.

PILIH TAMBAHAN
If ekspresi logika Then
   Statement
   ...
End If

Contoh :
PTKP = 240000
If Nikah$ = "Y" Then
   PTKP = PTKP + 120000
End If

Keterangan : Jika status nikah adalah "Y" (Ya), maka PTKP (Penghasilan Tidak Kena Pajak)
ditambah 120000

PILIH ANTARA DUA
IF ekspresi logika Then
   Statement1
   ...
Else
   Statement2
   ...
End If

Contoh :
If JlhAnak > 3 Then
   PTKP = PTKP + (3 * 120000)
Else
   PTKP = PTKP + (JlhAnak * 120000)
End If

Keterangan : Jika Jumlah Anak diatas 3 Orang, maka PTKP ditambah 360000, sebaliknya adalah
JlhAnak dikali 120000.


PILIH ANTARA BANYAK
IF ekspresi logika 1 Then
   Statement1
   ...


Indoprog                                                                                             14
Dasar Pemrograman                                                    Oleh : Hendra, ST.

ElseIF ekspresi logika 2 Then
   Statement2
   ...
Else
Endif

Berfungsi menentukan Block statement yang mana akan dijalankan oleh komputer sesuai dengan
ekspresi logika yang menghasilkan nilai benar.

Contoh :
PKP = Penghasilan - PTKP         ' Penghasilan Kena Pajak 1 Bulan
PKPT = PKP * 12                  ' Penghasilan Kena Pajak 1 Tahun

If PKPT <= Then
   PPH = 0
ElseIF PKPT <= 25000000 Then
   PPH = PKP * 0.05
ElseIF PKPT <= 50000000 Then
   PPH = 1250000 + (PKPT-25000000)* 0.1
ElseIF PKPT <= 100000000 Then
   PPH = 1250000 + 2500000 + (PKPT-50000000)*0.25
ElseIF PTKP <= 200000000 Then
   PPH = 1250000 + 2500000 + 7500000 + (PKPT-100000000)*0.25
Else
   PPH = 1250000 + 2500000 + 7500000 + 25000000 + (PKPT-100000000)*0.35
End If

PPHB = PPH / 12                  ' Pajak Penghasilan Bulan Tersebut

Keterangan : PPH dihitung berdasarkan PKPT

atau
Select Case Variabel
  Case ekspresi 1
       Statement1
       ...
  Case ekspresi 2
       Statement2
       ...
  ...
  Case Else
       ...
End Select

Contoh :
Select Case PKPT
  Case <= 0
       PPH = 0
  Case <= 25000000
       PPH = PKP * 0.05
  Case <= 50000000
       PPH = 1250000 + (PKPT-25000000)* 0.1



Indoprog                                                                                 15
Dasar Pemrograman                                                      Oleh : Hendra, ST.

  Case <= 100000000
       PPH = 1250000 + 2500000 + (PKPT-50000000)*0.15
  Case <= 200000000
       PPH = 1250000 + 2500000 + 7500000 + (PKPT-100000000)*0.25
  Case ELSE
       PPH = 1250000 + 2500000 + 7500000 + 25000000 + (PKPT- 100000000)*0.35
End Select


Latihan

Buatlah program perhitungan Pajak Penghasilan Perorangan untuk penghasilan bulanan !

Tugas
   1. Buatlah program untuk mencetak kata sesuai dengan bilangan yang dimasukan oleh
      pemakai ( 1 s/d 9 )

       Contoh :
       Input : 1
       Output : Satu

   2. Buatlah program untuk menentukan bilangan yang dimasukan pemakai genap atau ganjil.

       Jawaban :

       REM Program memeriksa bilangan Genap atau Ganjil
       DIM bil AS INTEGER
       INPUT "Masukkan Bilangan ?", bil
       IF bil MOD 2 = 0 THEN
           PRINT "Genap"
       ELSE
           PRINT "Ganjil"
       END IF
       END



   3. Buatlah program untuk menentukan tahun yang dimasukan pemakai kabisat atau bukan.




Indoprog                                                                                    16
Dasar Pemrograman                                                        Oleh : Hendra, ST.



Modul 5, STRUKTUR KENDALI PERULANGAN
Salah satu kelebihan komputer daripada manusia adalah ia tidak pernah bosan terhadap tugas-tugas
rutin. Inilah yang menyebabkan komputerisasi selalu diterapkan terhadap tugas-tugas yang rutin.

LOOPING COUNTER
Digunakan untuk proses berulang yang jumlah perulangannya ditentukan berdasarkan perhitungan
(sistem counter).

FOR counter = mulai TO selesai [STEP selisih]
  Statement
  ...
NEXT [counter]

Contoh :

Mencetak bilangan 0123456789
For I = 0 To 9 Step 1
    Print I
Next I

LOOPING TRAPPING
Perulangan jenis ini ditentukan berdasarkan kondisi tertentu.

Pemeriksaan diawal
DO [{WHILE | UNTIL} ekspresi logika]
   Statement
   ...
LOOP

Contoh :

Mencari KPK dari dua bilangan

Input "Bilangan pertama :", pertama
Input "Bilangan kedua :", kedua

If pertama   > kedua Then            'Jika bilangan pertama lebih besar
   Lipat =   pertama
   Bagi =    kedua
Else
   Lipat =   kedua
   Bagi =    pertama
End IF

N = 1

Do While ((Lipat*N) Mod Bagi) <> 0                'Kelipatan dinaikan jika



Indoprog                                                                                      17
Dasar Pemrograman                                                    Oleh : Hendra, ST.

   N = N + 1                                  'sisa bagi belum nol
Loop

Print "KPK kedua bilangan adalah :", (Lipat*N)
END

NB : operator matematika MOD adalah untuk sisa bagi

Pemeriksaan diakhir
DO
   [statementblock]
LOOP [{WHILE | UNTIL} ekspresi logika]

Contoh :

Program password, program akan terus menanyakan password sampai jawabannya benar.
password$ = "INDOPROG"
DO
    Color 7,0
    Print "Password";
    Color 0,0
    Input pass$
LOOP until pass$ = password$
Print "Selamat bergabung !"
END

Perintah EXIT DO dapat digunakan untuk meninggalkan proses DO - LOOP

Contoh :
N = 1
password$ = "INDOPROG"
DO
    Color 7,0
    If N > 3 Then
       EXIT DO
    End IF
    Print "Password";
    Color 0,0
    Input pass$
    N = N + 1
LOOP until pass$ = password$
If N > 3 Then
    Print "Akses ditolak !"
Else
    Print "Selamat bergabung !"
End IF
END

Latihan :

1. Buatlah program mencetak




Indoprog                                                                             18
Dasar Pemrograman                                           Oleh : Hendra, ST.

11111                 12345
22222                 12345
33333                 12345
44444                 12345
55555                 12345

12345                 12345
1234                  2345
123                   345
12                    45
1                     5

Jawaban A:

REM Jawaban soal A
DIM i AS INTEGER
DIM j AS INTEGER
FOR i = 1 TO 5 STEP 1
    FOR j = 1 TO 5 STEP 1
        PRINT j;
    NEXT j
    PRINT
NEXT i

Jawaban B:

REM Jawaban Soal B
DIM i AS INTEGER
DIM j AS INTEGER
FOR i = 5 TO 1 STEP -1
    FOR j = 1 TO i STEP 1
        PRINT j;
    NEXT j
    PRINT
NEXT i


2. Buatlah program mencetak barisan fibonacci : 1 1 2 3 5 8 13 …

Jawaban :

REM   Program Cetak barisan Fibonacci
DIM   i AS INTEGER
DIM   n AS INTEGER
DIM   f1 AS LONG
DIM   f2 AS LONG
DIM   fi AS LONG

INPUT "Jumlah Suku ?", i
f1 = 1
f2 = 1
FOR n = 1 TO i STEP 1
    IF n = 1 THEN
       PRINT f1;
    ELSEIF n = 2 THEN
       PRINT f2;
    ELSE
       fi = f1 + f2
       PRINT fi;
       f1 = f2
       f2 = fi



Indoprog                                                                    19
Dasar Pemrograman                                             Oleh : Hendra, ST.

    END IF
NEXT n
END

Tugas

   1. Buatlah program menentukan bilangan yang dimasukkan merupakan bilangan
      PRIMA atau tidak.

        Jawaban :

        REM Menentukan bilangan prima atau bukan
        DIM bil AS LONG
        DIM bagi AS INTEGER
        DIM akar AS SINGLE
        INPUT "Bilangan yang akan diperiksa ?", bil
        IF bil < 2 THEN
            PRINT "Bukan Prima"
        ELSEIF bil < 4 THEN
            PRINT "Prima"
        ELSE
            akar = sqrt(bil)
            bagi = 2
            WHILE bagi <= akar AND bil MOD bagi <> 0
                   bagi = bagi + 1
            WEND
            IF bagi <= akar THEN
               PRINT "Bukan Prima"
            ELSE
               PRINT "Prima"
            END IF
        END IF
        END


   2. Buatlah program mencetak tabel pertumbuhan simpanan anda di bank.

             Jumlah simpanan ?
             Suku bunga bank/tahun ?
             Lama simpanan   ?

             Tabel pertumbuhan
             ------------------------------------------------------------
             Tahun Awal Tahun    Bunga/tahun   Pajak        Akhir Tahun
             ------------------------------------------------------------
               1
               2
               .
               .
               .
             Awal Tahun 1 = Jumlah simpanan
             Bunga/tahun = Awal Tahun * Suku bunga bank/100
             Pajak dihitung berdasarkan :
             Jika Awal Tahun + Bunga/tahun > 7500000
                  Pajak = 20% dari Bunga/tahun
             Jika tidak
                  Pajak = 0
             Akhir Tahun = Awal Tahun + Bunga/tahun - Pajak
             Awal Tahun ke n = Akhir Tahun n - 1



Indoprog                                                                       20
Dasar Pemrograman                                                         Oleh : Hendra, ST.



Modul 6, VARIABEL ARRAY
Array adalah sekumpulan data yang menggunakan nama variabel yang sama. Tiap-tiap nilai dari
array disebut sebagai elemen dan memiliki index. Setiap elemen array adalah sebuah variabel juga.

MENCIPTAKAN VARIABEL ARRAY

Untuk menciptakan variabel array dapat menggunakan perintah :
DIM variable[(subscripts)] [AS type]

Contoh :
DIM A(20) As Integer

Akan menciptakan variabel array yang bernama A yang memiliki 20 elemen (mulai dari index 0 s/d
19), yang masing-masing dapat menampung data integer, dan memiliki nilai awal 0 (nol).

MENGGUNAKAN VARIABEL ARRAY

Penggunakan Variabel Array sama saja dengan variabel biasa, Cuma kita perlu menyebutkan
nomor index elemen yang diinginkan.

Contoh :
A(0) = 100
A(1) = 200
A(2) = 300

Akan mengisi nilai 100 ke elemen pertama, 200 ke elemen kedua,dan 300 ke elemen ketiga.

Catatan : Elemen pertama dari array dimulai dengan nomor index 0

Contoh lain :
For I = 0 To 19 Step 1
    Input "Masukkan Nilai :",A(I)
Next I

Akan menanyakan kepada pemakai untuk mengisi elemen pertama s/d elemen keduapuluh.

Contoh lain :
Total = 0
For I = 0 To 19 Step 1
    Total = Total + A(I)           'A(0), A(1), ..., A(19)
Next I
Print "Total :",Total




Indoprog                                                                                       21
Dasar Pemrograman                                                            Oleh : Hendra, ST.

Akan menjumlahkan nilai elemen pertama s/d elemen keduapuluh ke variabel total.
Dalam Basic, kita mengenal dua jenis variabel array, yakni dynamic array dan static array. Static
array dapat kita bentuk tanpa perintah khusus, tetapi terbatas sampai nomor index ke 10 saja tanpa
dipengaruhi jumlah dimensi.

Contoh :
For I = 0 To 10 Step 1
    Input "Masukkan Nilai :",B(I)
Next I
Total = 0
For I = 0 To 10 Step 1
    Total = Total + B(I)
Next I
Print "Total :",Total

Program diatas dapat dijalankan tanpa kesalahan walaupun variabel array B tidak dideklarasikan
sebagai variabel array. Hal ini karena kita menggunakan Static array yang otomatis disediakan oleh
Basic, tetapi hanya terbatas sampai nomor index ke 10 saja.

Pada defaultnya index awal dari variabel array adalah dimulai dari 0, tetapi hal ini bisa diubah
dengan perintah OPTION BASE 1.
Contoh :

OPTION BASE 1
DIM A(30)

For I = 1 To 30
    Input "Masukkan Nilai :",A(I)
Next I

Index awal dari variabel array dapat juga ditentukan pada saat deklarasi.

Contoh :
DIM C(5 To 15)

For I = 5 To 15 Step 1
    Input "Masukkan Nilai :",A(I)
Next I

Akan menghasilkan variabel array C, dengan elemen pertama memiliki nomor index 5, dan elemen
terakhir memiliki nomor index 15.

Anda dapat juga menggunakan fungsi LBound dan UBound untuk mendapatkan index awal dan
index akhir dari suatu array.

Contoh :
DIM C(5 To 15)




Indoprog                                                                                           22
Dasar Pemrograman                                           Oleh : Hendra, ST.

For I = LBound(C) To UBound(C) Step 1
    Input "Masukkan Nilai :",A(I)
Next I


Latihan

1. Susun sebuah program dengan ketentuan berikut :
   - program menanyakan jumlah data
   - program menerima data sesuai dengan jumlah data satu persatu
   - program mengurut data tersebut secara ascending
   - program menghitung :
     1. data terbesar
     2. data terkecil
     3. rata-rata
     4. median

      REM Pengolahan Data
      DIM jd AS INTEGER
      DIM i AS INTEGER
      DIM j AS INTEGER
      INPUT "Masukkan Jumlah Data ?", jd
      DIM dat(jd) AS INTEGER
      'Baca Data
      FOR i = 1 TO jd STEP 1
          PRINT "Masukan data ke-"; i;
          INPUT dat(i)
      NEXT i
      'Urut Data
      FOR i = jd - 1 TO 1 STEP -1
          FOR j = 1 TO i STEP 1
              IF dat(j) > dat(j + 1) THEN
                 temp = dat(j)
                 dat(j) = dat(j + 1)
                 dat(j + 1) = temp
              END IF
          NEXT j
      NEXT i
      'Menghitung Total
      DIM Total AS LONG
      Total = 0
      FOR i = 1 TO jd STEP 1

           Total = Total + dat(i)
      NEXT i
      DIM rata AS SINGLE
      rata = Total / jd
      DIM median AS INTEGER
      IF jd MOD 2 = 0 THEN
          median = (dat(jd  2) + dat(jd  2 + 1)) / 2
      ELSE
          median = dat(jd  2 + 1)
      END IF
      PRINT "Data Terbesar :", dat(i)
      PRINT "Data Terkecil :", dat(jd)
      PRINT "Ratat-rata :", rata
      PRINT "Median :", median
      END




Indoprog                                                                    23
Dasar Pemrograman                                            Oleh : Hendra, ST.


Tugas
1. Buatlah program faktur sederhana dengan ketentuan :
   - program menanyakan Tanggal dan Penjual
   - program menanyakan
      1. Jumlah
      2. Satuan
      3. Nama barang
         secara berulang sampai jumlah yang dimasukkan 0 (nol)
   - hasil menghasilkan tampilan faktur berikut :

                               FAKTUR PENJUALAN

           Tanggal : 01-Jan-1995
           Penjual : Hendra Soewarno
           --------------------------------------------------------
           No. Jlh Satuan Nama Barang         Harga @      Jumlah
           ========================================================
            1.   30 Kotak    Diskette 3M    15,000.00   450,000.00
            2.   10 Buah     Pita printer    7,000.00    70,000.00
           ========================================================
                                               Total : 520,000.00
           --------------------------------------------------------




Indoprog                                                                     24
Dasar Pemrograman                                                          Oleh : Hendra, ST.



Modul 7, 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 Basic 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




Indoprog                                                                                      25
Dasar Pemrograman                                                          Oleh : Hendra, ST.


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 :


Indoprog                                                                                   26
Dasar Pemrograman                                                    Oleh : Hendra, ST.

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)



Indoprog                                                                             27
Dasar Pemrograman                                                  Oleh : Hendra, ST.

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



Indoprog                                                                           28
Dasar Pemrograman                                                     Oleh : Hendra, ST.

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.

      REM Tulisan Putar
      DIM tulisan AS STRING
      CLS
      INPUT "Tulisan anda :", tulisan
      DO

       LOCATE 13, (80 - LEN(tulisan))  2
       PRINT tulisan
       tulisan = RIGHT$(tulisan, 1) + LEFT$(tulisan, LEN(tulisan) - 1)
      LOOP UNTIL INKEY$ <> ""
      END


   3. Bagaimana kalau putar dari kanan ke kiri.
   4. Cobalah program tebak angka, berapa kali anda mampu selesai menebaknya?




Indoprog                                                                              29
Dasar Pemrograman                                                          Oleh : Hendra, ST.



Modul 8, FUNGSI CIPTAAN DAN SUB RUTIN
FUNGSI CIPTAAN
Fungsi-fungsi bawaan yang disediakan oleh Basic 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.

Basic 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.



Indoprog                                                                                          30
Dasar Pemrograman                                                       Oleh : Hendra, ST.

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 Basic, 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-ulangterhadap bagian program yang sama, dan membuat
program lebih terstruktur.

Pada Basic tata cara penulisan Sub Rutin adalah sebagai berikut:
SUB namasub [(Parameterlist)] [STATIC]
    [statementblock]


Indoprog                                                                                      31
Dasar Pemrograman                                                           Oleh : Hendra, ST.

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 :
Secara referensi, Argumen yang diberikan dengan cara ini kepada procedure dan diolah, kemudian
hasil akhirnya akan didefinisikan pada variabel tersebut pada main program.
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.



Indoprog                                                                                          32
Dasar Pemrograman                                                          Oleh : Hendra, ST.

Dalam Basic anda dapat menentukan tingkatan/sifat variabel yang mengatur dimana variabel itu
digunakan(level of access). Inilah tingkatan tersebut :

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.
Variabel Shared, atau variabel global bisa digunakan pada seluruh bagian program maupun Sub
Procedure tertentu. Nilai variabel ini dapat berubah selama program tersebut berjalan.
Variabel Static, adalah variabel local, tetapi variabel ini nilainya tetap dipertahankan sampai
pemanggilan berikutnya.
Latihan :

   1. Buatlah sub kotak double dan contoh pemakaiannya.
   2. Buatlah fungsi ciptaan angka yang akan mencetak nama dari suatu angka yang
      diberikan. (0 = nol, 1 = satu, 2 = dua, …, 9 = sembilan).
   3. Kembangkan fungsi yang dapat menghasilkan terbilang sampai angka ribuan.
      (1250 = Seribu duaratus limapuluh rupiah).

Tugas
   1. Kembangkan fungsi yang dapat menghasilkan terbilang sampai triliunan
      rupiah, serta kemampuan SEN.




Indoprog                                                                                          33
Dasar Pemrograman                                                        Oleh : Hendra, ST.



MODUL 9, 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 Basic.

MENDEKLARASIKAN SUATU RECORD TYPE

Pada Basic 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


Indoprog                                                                                      34
Dasar Pemrograman                                                    Oleh : Hendra, ST.

Dim Temp          As PESERTA

Peserta1.Nomor      =   9224                    'komponen   Nomor
Peserta1.Nama       =   "Hendra Soewarno"       '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




Indoprog                                                                                 35
Dasar Pemrograman                                              Oleh : Hendra, ST.

'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

LATIHAN

1. Buatlah program untuk mengisi data berikut.

      NAMA         GOL   JAM KERJA
      SURYAJAYA    A            50
      SUTIMAN      C            48
      JUSMAN       B            60
      WIJAYA       A            50
      YUSNI        B            48
      TUTI         A            45

      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 (berurut berdasarkan nama):




Indoprog                                                                           36
Dasar Pemrograman                                           Oleh : Hendra, ST.

                           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
           ========================================================




Indoprog                                                                    37
Dasar Pemrograman                                                             Oleh : Hendra, ST.



Modul 10, 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 Basic 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


Indoprog                                                                                             38
Dasar Pemrograman                                                          Oleh : Hendra, ST.

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 Soewarno",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



Indoprog                                                                                   39
Dasar Pemrograman                                                     Oleh : Hendra, ST.

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

Latihan

Buatlah program yang dapat menyimpan data latihan Modul 10 ke Siswa.dat.




Indoprog                                                                              40
Dasar Pemrograman                                                         Oleh : Hendra, ST.


Modul 11, PENGOLAHAN FILE ACAK
Pada file sequential pengolahan datanya bersifat FIFO, tetapi dalam pengolahan data kadang-
kadang diperlukan proses pengolahan yng 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 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.


Indoprog                                                                                          41
Dasar Pemrograman                                                       Oleh : Hendra, ST.



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.

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.

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



Indoprog                                                                                      42
Dasar Pemrograman                                  Oleh : Hendra, ST.

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




Indoprog                                                           43
Dasar Pemrograman                                           Oleh : Hendra, ST.

‘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

Buatlah program yang dapat menyimpan data latihan Modul 10 ke Siswa.rec.




Indoprog                                                                      44
Dasar Pemrograman                                                            Oleh : Hendra, ST.


Modul 12, PENGOLAHAN FILE BINARY
Selain pengolahan data Sequential dan Random, Basic 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.

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.

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

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 :


Indoprog                                                                                           45
Dasar Pemrograman                                                         Oleh : Hendra, ST.


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.

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




Indoprog                                                                                       46
Dasar Pemrograman                                           Oleh : Hendra, ST.

   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




Indoprog                                                                    47
Dasar Pemrograman                                                        Oleh : Hendra, ST.



Modul 13, PENANGANAN ERROR
Sebagai manusia normal tidak akan terlepas dari berbagai kesilapan, demikian juga seorang
programmer dalam pengembangan program dapat saja berbuat berbagai kesalahan maupun
kesilapan.

Berdasarkan jenisnya kesalahan dalam pemrograman terbagi menjadi tiga yaitu :
   1. Syntax Error, adalah kesalahan yang disebabkan oleh kesalahan tata cara penulisan tanda
       baca, kesalahan pemakaian operator dan nilai. Kesalahan jenis ini akan dengan mudah
       dideteksi oleh kompiler maupun interpreter.
   2. Logical Error, adalah kesalahan yang disebabkan oleh kesalahan logika maupun model atau
       metode yang digunakan untuk pemrosesan data, sehingga menyebabkan informasi yang
       dihasilkan menjadi salah. Kesalahan ini tidak dapat dideteksi oleh kompiler maupun
       interpreter, kesalahan ini disadari setelah melihat penyimpanan pada saat proses maupun
       hasil proses.

       Contoh :
       N = 1
       Do
          Print N
          N = N + 2
       Loop Until N = 10

       Program diatas tidak pernah berhenti. karena nilai N tidak pernah sama dengan 10.
       Kesalahan Logika dapat juga terjadi karena kesalahan pengetikan nama variabel, dan ini
       merupakan salah satu kelemahan bahasa pemrograman Basic, jika dibandingan dengan
       Pascal muapun C Language dimana variabel harus dideklarasikan terlebih dahulu.

       Contoh :

       GajiPokok = 1000000
       Bonus      = 10000
       GajiBersih = GajiPokol + Bonus
       Print GajiBersih                          'Hasilnya 10000, bukan 1010000

   3. Runtime Error, adalah kesalahan yang disebabkan oleh tidak tersedianya sumber daya atau
      kondisi yang normal bagi program untuk berjalan dengan baik, misalnya kekurangan
      memori komputer, disk full, atau pintu drive tidak terkunci, dll.

Sebagai programmer yang baik, tentu saja harus mampu menghasilkan program dengan tingkat
kesalahan yang minimal, dan usaha untuk meminimalisasi tingkat kesalahan program disebut
proses debug.

Pada Basic tersedia berbagai fasilitas untuk menangani kesalahan yang mungkin dilakukan oleh
programmer, misalnya :




Indoprog                                                                                        48
Dasar Pemrograman                                                        Oleh : Hendra, ST.

  4. Fasilitas Syntax Checking pada menu Option yang sangat berguna untuk mendeteksi
     kesalahan jenis "Syntax Error".
  5. Menu Debug, yang memiliki fasilitas yang sangat bermanfaat untuk melacak Logical Error,
     tetapi keberhasilannya sangat tergantung kepada pemahaman programmer akan masalah
     yang terjadi. Adapun fasilitas pada menu Debug adalah sebagai berikut :
         • Step atau F8, digunakan untuk menjalankan program baris per baris, sehingga
             programmer dapat mengamati alur program secara baris perbaris sambil
             mengevaluasi hasil output yang dihasilkan.
         • Procedure Step atau F10, digunakan untuk menjalankan program baris per baris
             tanpa masuk ke bagian sub rutin, artinya sub rutin dianggap sebagai satu baris dari
             program. Fasilitas ini digunakan jika programmer telah yakin pada kebenaran sub
             rutin yang dibuat, sehingga proses pencarian lebih terfokus pada bagian tertentu.
         • Trace On, digunakan untuk memberikan sorotan pada baris yang sedang dijalankan.
         • Toggle BreakPoint, digunakan untuk menandai baris dimana proses eksekusi Pause
             dan masuk ke modus Step, fasilitas ini dapat digunakan programmer untuk
             memperkecil jangkauan pencarian kesalahan dengan modus Step karena tidak perlu
             melakukan Step dari awal, tetapi Step dilakukan mulai pada baris dimana sumber
             kesalahan dicurigai.
         • Clear Breakpoint, digunakan untuk menghapus semua Breakpoint.
         • On Error Goto label, digunakan untuk error handling, dimana jika terjadi kesalahan,
             maka proses program dialihkan ke label tertentu, dan jenis kesalahan dapat ditelusuri
             dari fungsi ERR yang akan mengembalikan nomor kesalahan, dan proses dapat
             diulangi dengan RESUME atau RESUME NEXT , dan anda dapat juga
             menggunakan On Error Resume Next untuk mengabaikan kesalahan. Fasilitas ini
             cocok untuk mengatasi Run Time Error,

     Contoh :
         ON ERROR GOTO Salah
         OPEN "A:Sumber.Dat" FOR INPUT AS #1
         DO WHILE NOT EOF(1)
             LINE INPUT #1, Baris$
             PRINT Baris$
         LOOP
         END
         Salah:
         SELECT CASE ERR
             CASE 53

                 PRINT "File Sumber.Dat tidak ada"
                 END
             CASE 71

                  PRINT "Drive tidak siap, [U]lang, [B]atal";
                  INPUT tanya$
                  IF tanya$ = "U" OR tanya$ = "u" THEN
                     RESUME
                  ELSE
                     END
                  END IF



Indoprog                                                                                       49
Dasar Pemrograman                                                   Oleh : Hendra, ST.

       END SELECT
       END

    Catatan : Nomor Error dapat dilihat pada bagian Help Basic "Runtime Error Code"




Indoprog                                                                              50

Weitere ähnliche Inhalte

Was ist angesagt?

Penggunaan sifat aksioma supremum
Penggunaan sifat aksioma supremumPenggunaan sifat aksioma supremum
Penggunaan sifat aksioma supremumliya luthfatun
 
Pembahasan soal kalkulus pada buku karangan edwin j. purcell dan dale varberg...
Pembahasan soal kalkulus pada buku karangan edwin j. purcell dan dale varberg...Pembahasan soal kalkulus pada buku karangan edwin j. purcell dan dale varberg...
Pembahasan soal kalkulus pada buku karangan edwin j. purcell dan dale varberg...Faris Audah
 
Konsep pemrograman prosedur dalam pascal
Konsep pemrograman prosedur dalam pascalKonsep pemrograman prosedur dalam pascal
Konsep pemrograman prosedur dalam pascalSimon Patabang
 
Semigrup dan monoid
Semigrup dan monoidSemigrup dan monoid
Semigrup dan monoidJhoko Jhoko
 
Teori Peluang | Pengantar Statistik Matematis
Teori Peluang | Pengantar Statistik MatematisTeori Peluang | Pengantar Statistik Matematis
Teori Peluang | Pengantar Statistik MatematisJujun Muhamad Jubaerudin
 
Contoh Soal Grafik Fungsi Trigonometri Berserta Jawabannya
Contoh Soal Grafik Fungsi Trigonometri Berserta JawabannyaContoh Soal Grafik Fungsi Trigonometri Berserta Jawabannya
Contoh Soal Grafik Fungsi Trigonometri Berserta JawabannyaFajar Sahrudin
 
Persamaan Diferensial Biasa ( Kalkulus 2 )
Persamaan Diferensial Biasa ( Kalkulus 2 )Persamaan Diferensial Biasa ( Kalkulus 2 )
Persamaan Diferensial Biasa ( Kalkulus 2 )Kelinci Coklat
 
Matematika Diskrit - 07 teori bilangan - 02
Matematika Diskrit - 07 teori bilangan - 02Matematika Diskrit - 07 teori bilangan - 02
Matematika Diskrit - 07 teori bilangan - 02KuliahKita
 
Bahan ajar alin 2 rev 2014 pdf
Bahan ajar alin 2 rev 2014 pdfBahan ajar alin 2 rev 2014 pdf
Bahan ajar alin 2 rev 2014 pdfPawit Ngafani
 
Persamaan Diferensial [orde-2]
Persamaan Diferensial [orde-2]Persamaan Diferensial [orde-2]
Persamaan Diferensial [orde-2]Bogor
 
Supremum dan infimum
Supremum dan infimum  Supremum dan infimum
Supremum dan infimum Rossi Fauzi
 
Teori bahasa otomata pertemuan 6
Teori bahasa otomata pertemuan 6Teori bahasa otomata pertemuan 6
Teori bahasa otomata pertemuan 6nhiyabelle
 
Makalah Metode Numerik : Sistem Persamaan Linear
Makalah Metode Numerik : Sistem Persamaan Linear Makalah Metode Numerik : Sistem Persamaan Linear
Makalah Metode Numerik : Sistem Persamaan Linear Kannal Bakti Pakinde
 
Matematika Diskrit - 09 graf - 05
Matematika Diskrit - 09 graf - 05Matematika Diskrit - 09 graf - 05
Matematika Diskrit - 09 graf - 05KuliahKita
 
Sistem Persamaan Linear (SPL) Aljabar Linear Elementer
Sistem Persamaan Linear (SPL) Aljabar Linear ElementerSistem Persamaan Linear (SPL) Aljabar Linear Elementer
Sistem Persamaan Linear (SPL) Aljabar Linear ElementerKelinci Coklat
 
Relasi dan fungsi - matematika diskrit
Relasi dan fungsi - matematika diskritRelasi dan fungsi - matematika diskrit
Relasi dan fungsi - matematika diskrithaqiemisme
 

Was ist angesagt? (20)

Kalkulus modul vii fungsi trigonometri
Kalkulus modul vii fungsi trigonometriKalkulus modul vii fungsi trigonometri
Kalkulus modul vii fungsi trigonometri
 
Penggunaan sifat aksioma supremum
Penggunaan sifat aksioma supremumPenggunaan sifat aksioma supremum
Penggunaan sifat aksioma supremum
 
Modul 7 basis dan dimensi
Modul 7 basis dan dimensiModul 7 basis dan dimensi
Modul 7 basis dan dimensi
 
Pembahasan soal kalkulus pada buku karangan edwin j. purcell dan dale varberg...
Pembahasan soal kalkulus pada buku karangan edwin j. purcell dan dale varberg...Pembahasan soal kalkulus pada buku karangan edwin j. purcell dan dale varberg...
Pembahasan soal kalkulus pada buku karangan edwin j. purcell dan dale varberg...
 
Konsep pemrograman prosedur dalam pascal
Konsep pemrograman prosedur dalam pascalKonsep pemrograman prosedur dalam pascal
Konsep pemrograman prosedur dalam pascal
 
Semigrup dan monoid
Semigrup dan monoidSemigrup dan monoid
Semigrup dan monoid
 
Teori Peluang | Pengantar Statistik Matematis
Teori Peluang | Pengantar Statistik MatematisTeori Peluang | Pengantar Statistik Matematis
Teori Peluang | Pengantar Statistik Matematis
 
Contoh Soal Grafik Fungsi Trigonometri Berserta Jawabannya
Contoh Soal Grafik Fungsi Trigonometri Berserta JawabannyaContoh Soal Grafik Fungsi Trigonometri Berserta Jawabannya
Contoh Soal Grafik Fungsi Trigonometri Berserta Jawabannya
 
Persamaan Diferensial Biasa ( Kalkulus 2 )
Persamaan Diferensial Biasa ( Kalkulus 2 )Persamaan Diferensial Biasa ( Kalkulus 2 )
Persamaan Diferensial Biasa ( Kalkulus 2 )
 
Matematika Diskrit - 07 teori bilangan - 02
Matematika Diskrit - 07 teori bilangan - 02Matematika Diskrit - 07 teori bilangan - 02
Matematika Diskrit - 07 teori bilangan - 02
 
Bahan ajar alin 2 rev 2014 pdf
Bahan ajar alin 2 rev 2014 pdfBahan ajar alin 2 rev 2014 pdf
Bahan ajar alin 2 rev 2014 pdf
 
Persamaan Diferensial [orde-2]
Persamaan Diferensial [orde-2]Persamaan Diferensial [orde-2]
Persamaan Diferensial [orde-2]
 
Algoritma flowchart
Algoritma flowchartAlgoritma flowchart
Algoritma flowchart
 
Supremum dan infimum
Supremum dan infimum  Supremum dan infimum
Supremum dan infimum
 
Teori bahasa otomata pertemuan 6
Teori bahasa otomata pertemuan 6Teori bahasa otomata pertemuan 6
Teori bahasa otomata pertemuan 6
 
Makalah Metode Numerik : Sistem Persamaan Linear
Makalah Metode Numerik : Sistem Persamaan Linear Makalah Metode Numerik : Sistem Persamaan Linear
Makalah Metode Numerik : Sistem Persamaan Linear
 
Kalkulus 1
Kalkulus 1Kalkulus 1
Kalkulus 1
 
Matematika Diskrit - 09 graf - 05
Matematika Diskrit - 09 graf - 05Matematika Diskrit - 09 graf - 05
Matematika Diskrit - 09 graf - 05
 
Sistem Persamaan Linear (SPL) Aljabar Linear Elementer
Sistem Persamaan Linear (SPL) Aljabar Linear ElementerSistem Persamaan Linear (SPL) Aljabar Linear Elementer
Sistem Persamaan Linear (SPL) Aljabar Linear Elementer
 
Relasi dan fungsi - matematika diskrit
Relasi dan fungsi - matematika diskritRelasi dan fungsi - matematika diskrit
Relasi dan fungsi - matematika diskrit
 

Andere mochten auch

Algo temu 6 & 7 - PENGULANGAN
Algo temu 6 & 7 - PENGULANGANAlgo temu 6 & 7 - PENGULANGAN
Algo temu 6 & 7 - PENGULANGANSenna Hendrian
 
Materi algoritma dan pemrograman insan unggul new
Materi algoritma dan pemrograman insan unggul newMateri algoritma dan pemrograman insan unggul new
Materi algoritma dan pemrograman insan unggul newasdammantap
 
Mi1274 alpro lanjut 6 - perulangan - 2 - for, do-while
Mi1274 alpro lanjut   6 - perulangan - 2 - for, do-whileMi1274 alpro lanjut   6 - perulangan - 2 - for, do-while
Mi1274 alpro lanjut 6 - perulangan - 2 - for, do-whileDefina Iskandar
 
PHP & MySQL Basic
PHP & MySQL BasicPHP & MySQL Basic
PHP & MySQL Basichakimbks
 
Laporan Praktikum Algoritma
Laporan Praktikum AlgoritmaLaporan Praktikum Algoritma
Laporan Praktikum AlgoritmaEnvaPya
 
Kisi kisi ujian praktik
Kisi kisi ujian praktikKisi kisi ujian praktik
Kisi kisi ujian praktikRevaNku TeeNa
 
Penyelesaian Akar-akar Persamaan Kuadrat Menggunakan Program QBasic
Penyelesaian Akar-akar Persamaan Kuadrat Menggunakan Program QBasicPenyelesaian Akar-akar Persamaan Kuadrat Menggunakan Program QBasic
Penyelesaian Akar-akar Persamaan Kuadrat Menggunakan Program QBasicPutri Arini
 
Diktat kuliah Algoritma dan Pemograman
Diktat kuliah Algoritma dan PemogramanDiktat kuliah Algoritma dan Pemograman
Diktat kuliah Algoritma dan PemogramanPisca Prasetyo
 

Andere mochten auch (17)

Algo temu 6 & 7 - PENGULANGAN
Algo temu 6 & 7 - PENGULANGANAlgo temu 6 & 7 - PENGULANGAN
Algo temu 6 & 7 - PENGULANGAN
 
MODUL_PHP_TIK_XII
MODUL_PHP_TIK_XIIMODUL_PHP_TIK_XII
MODUL_PHP_TIK_XII
 
6. subrutin
6. subrutin6. subrutin
6. subrutin
 
Tutorial dreamweaver
Tutorial dreamweaverTutorial dreamweaver
Tutorial dreamweaver
 
Materi algoritma dan pemrograman insan unggul new
Materi algoritma dan pemrograman insan unggul newMateri algoritma dan pemrograman insan unggul new
Materi algoritma dan pemrograman insan unggul new
 
MODUL_DREAMWEAVER_TIK_XII
MODUL_DREAMWEAVER_TIK_XIIMODUL_DREAMWEAVER_TIK_XII
MODUL_DREAMWEAVER_TIK_XII
 
Mi1274 alpro lanjut 6 - perulangan - 2 - for, do-while
Mi1274 alpro lanjut   6 - perulangan - 2 - for, do-whileMi1274 alpro lanjut   6 - perulangan - 2 - for, do-while
Mi1274 alpro lanjut 6 - perulangan - 2 - for, do-while
 
MODUL_HTML_TIK_XII
MODUL_HTML_TIK_XIIMODUL_HTML_TIK_XII
MODUL_HTML_TIK_XII
 
PHP & MySQL Basic
PHP & MySQL BasicPHP & MySQL Basic
PHP & MySQL Basic
 
Laporan Praktikum Algoritma
Laporan Praktikum AlgoritmaLaporan Praktikum Algoritma
Laporan Praktikum Algoritma
 
MODUL_FLASH_TIK_XI
MODUL_FLASH_TIK_XIMODUL_FLASH_TIK_XI
MODUL_FLASH_TIK_XI
 
MATERI_DELPHI_XI
MATERI_DELPHI_XIMATERI_DELPHI_XI
MATERI_DELPHI_XI
 
MATERI_ULEAD_XI
MATERI_ULEAD_XIMATERI_ULEAD_XI
MATERI_ULEAD_XI
 
Kisi kisi ujian praktik
Kisi kisi ujian praktikKisi kisi ujian praktik
Kisi kisi ujian praktik
 
Eksponen dan Logaritma
Eksponen dan LogaritmaEksponen dan Logaritma
Eksponen dan Logaritma
 
Penyelesaian Akar-akar Persamaan Kuadrat Menggunakan Program QBasic
Penyelesaian Akar-akar Persamaan Kuadrat Menggunakan Program QBasicPenyelesaian Akar-akar Persamaan Kuadrat Menggunakan Program QBasic
Penyelesaian Akar-akar Persamaan Kuadrat Menggunakan Program QBasic
 
Diktat kuliah Algoritma dan Pemograman
Diktat kuliah Algoritma dan PemogramanDiktat kuliah Algoritma dan Pemograman
Diktat kuliah Algoritma dan Pemograman
 

Ähnlich wie Dasar pemrograman

Pengantar algoritma & pemrograman komputer
Pengantar algoritma & pemrograman komputerPengantar algoritma & pemrograman komputer
Pengantar algoritma & pemrograman komputerMateri Kuliah Online
 
Module algoritma
Module algoritma Module algoritma
Module algoritma Rony BolaNk
 
technik kompilasi
technik kompilasitechnik kompilasi
technik kompilasimastnie
 
Bab 2 Definisi Algoritma
Bab 2 Definisi AlgoritmaBab 2 Definisi Algoritma
Bab 2 Definisi Algoritmapakdemamo
 
Kegiatan belajar 1 flowchart
Kegiatan belajar 1 flowchartKegiatan belajar 1 flowchart
Kegiatan belajar 1 flowchartSyaiful Ahdan
 
Jeni slides intro1-bab01-pengenalan
Jeni slides intro1-bab01-pengenalanJeni slides intro1-bab01-pengenalan
Jeni slides intro1-bab01-pengenalanAli Basyah
 
Pendahuluan teknik kompilasi session 1
Pendahuluan teknik kompilasi session 1Pendahuluan teknik kompilasi session 1
Pendahuluan teknik kompilasi session 1adhifatra agussalim
 
listiati univ bung hata (1110013211051) Algoritma dan flowchart
listiati univ bung hata (1110013211051) Algoritma dan flowchartlistiati univ bung hata (1110013211051) Algoritma dan flowchart
listiati univ bung hata (1110013211051) Algoritma dan flowchartMaryanto Sumringah SMA 9 Tebo
 
Chapter 3 konsep dasar algoritma - cont
Chapter 3   konsep dasar algoritma - contChapter 3   konsep dasar algoritma - cont
Chapter 3 konsep dasar algoritma - contMuhammad Najib
 
Diktat penuntun praktikum fortran
Diktat penuntun praktikum fortranDiktat penuntun praktikum fortran
Diktat penuntun praktikum fortranradikaljakas
 
Bab 1 Asas Pengaturcaraan (MALAYSIA) G-Vecom
Bab 1 Asas Pengaturcaraan (MALAYSIA) G-VecomBab 1 Asas Pengaturcaraan (MALAYSIA) G-Vecom
Bab 1 Asas Pengaturcaraan (MALAYSIA) G-VecomYouTuber,G-Vecom
 
1.adp dasar-dasar algoritma
1.adp dasar-dasar algoritma1.adp dasar-dasar algoritma
1.adp dasar-dasar algoritmaHardini_HD
 
1 adp dasar-dasar algoritma
1   adp dasar-dasar algoritma1   adp dasar-dasar algoritma
1 adp dasar-dasar algoritmaAvenzz Venzz
 
1 adp dasar-dasar algoritma
1   adp dasar-dasar algoritma1   adp dasar-dasar algoritma
1 adp dasar-dasar algoritmaChabil_Juniar
 
1 adp dasar-dasar algoritma
1   adp dasar-dasar algoritma1   adp dasar-dasar algoritma
1 adp dasar-dasar algoritmaFisma Ananda
 
1 adp dasar-dasar pemrograman
1   adp dasar-dasar pemrograman1   adp dasar-dasar pemrograman
1 adp dasar-dasar pemrogramanMuhammad Salihin
 

Ähnlich wie Dasar pemrograman (20)

Pengantar algoritma & pemrograman komputer
Pengantar algoritma & pemrograman komputerPengantar algoritma & pemrograman komputer
Pengantar algoritma & pemrograman komputer
 
Modul Pemrograman Dasar.pdf
Modul Pemrograman Dasar.pdfModul Pemrograman Dasar.pdf
Modul Pemrograman Dasar.pdf
 
Modul algoritma pemrograman-dasar x rpl
Modul algoritma pemrograman-dasar x rplModul algoritma pemrograman-dasar x rpl
Modul algoritma pemrograman-dasar x rpl
 
Pemrograman dasar
Pemrograman dasarPemrograman dasar
Pemrograman dasar
 
Module algoritma
Module algoritma Module algoritma
Module algoritma
 
technik kompilasi
technik kompilasitechnik kompilasi
technik kompilasi
 
Chapter 2 - Konsep Dasar Algoritma.pptx
Chapter 2 - Konsep Dasar Algoritma.pptxChapter 2 - Konsep Dasar Algoritma.pptx
Chapter 2 - Konsep Dasar Algoritma.pptx
 
Bab 2 Definisi Algoritma
Bab 2 Definisi AlgoritmaBab 2 Definisi Algoritma
Bab 2 Definisi Algoritma
 
Kegiatan belajar 1 flowchart
Kegiatan belajar 1 flowchartKegiatan belajar 1 flowchart
Kegiatan belajar 1 flowchart
 
Jeni slides intro1-bab01-pengenalan
Jeni slides intro1-bab01-pengenalanJeni slides intro1-bab01-pengenalan
Jeni slides intro1-bab01-pengenalan
 
Pendahuluan teknik kompilasi session 1
Pendahuluan teknik kompilasi session 1Pendahuluan teknik kompilasi session 1
Pendahuluan teknik kompilasi session 1
 
listiati univ bung hata (1110013211051) Algoritma dan flowchart
listiati univ bung hata (1110013211051) Algoritma dan flowchartlistiati univ bung hata (1110013211051) Algoritma dan flowchart
listiati univ bung hata (1110013211051) Algoritma dan flowchart
 
Chapter 3 konsep dasar algoritma - cont
Chapter 3   konsep dasar algoritma - contChapter 3   konsep dasar algoritma - cont
Chapter 3 konsep dasar algoritma - cont
 
Diktat penuntun praktikum fortran
Diktat penuntun praktikum fortranDiktat penuntun praktikum fortran
Diktat penuntun praktikum fortran
 
Bab 1 Asas Pengaturcaraan (MALAYSIA) G-Vecom
Bab 1 Asas Pengaturcaraan (MALAYSIA) G-VecomBab 1 Asas Pengaturcaraan (MALAYSIA) G-Vecom
Bab 1 Asas Pengaturcaraan (MALAYSIA) G-Vecom
 
1.adp dasar-dasar algoritma
1.adp dasar-dasar algoritma1.adp dasar-dasar algoritma
1.adp dasar-dasar algoritma
 
1 adp dasar-dasar algoritma
1   adp dasar-dasar algoritma1   adp dasar-dasar algoritma
1 adp dasar-dasar algoritma
 
1 adp dasar-dasar algoritma
1   adp dasar-dasar algoritma1   adp dasar-dasar algoritma
1 adp dasar-dasar algoritma
 
1 adp dasar-dasar algoritma
1   adp dasar-dasar algoritma1   adp dasar-dasar algoritma
1 adp dasar-dasar algoritma
 
1 adp dasar-dasar pemrograman
1   adp dasar-dasar pemrograman1   adp dasar-dasar pemrograman
1 adp dasar-dasar pemrograman
 

Mehr von Materi Kuliah Online

Pengenalan Rekayasa Perangkat Lunak
Pengenalan Rekayasa Perangkat LunakPengenalan Rekayasa Perangkat Lunak
Pengenalan Rekayasa Perangkat LunakMateri Kuliah Online
 
Melangkah dengan Microsoft Windows Server 2003
Melangkah dengan Microsoft Windows Server 2003Melangkah dengan Microsoft Windows Server 2003
Melangkah dengan Microsoft Windows Server 2003Materi Kuliah Online
 
Studi Mengenai Aspek Privasi pada Sistem RFID
Studi Mengenai Aspek Privasi pada Sistem RFIDStudi Mengenai Aspek Privasi pada Sistem RFID
Studi Mengenai Aspek Privasi pada Sistem RFIDMateri Kuliah Online
 
Internet dan Layanan Aplikasi Terdistribusi
Internet dan Layanan Aplikasi TerdistribusiInternet dan Layanan Aplikasi Terdistribusi
Internet dan Layanan Aplikasi TerdistribusiMateri Kuliah Online
 
Aspek Security pada Penerapan m-Commerce di Indonesia
Aspek Security pada Penerapan m-Commerce di IndonesiaAspek Security pada Penerapan m-Commerce di Indonesia
Aspek Security pada Penerapan m-Commerce di IndonesiaMateri Kuliah Online
 
A Comparison of Proximity Authentication Approaches
A Comparison of Proximity Authentication ApproachesA Comparison of Proximity Authentication Approaches
A Comparison of Proximity Authentication ApproachesMateri Kuliah Online
 
Kajian Perkembangan Teknologi Smart Card dari Segi Keamanan
Kajian Perkembangan Teknologi Smart Card dari Segi KeamananKajian Perkembangan Teknologi Smart Card dari Segi Keamanan
Kajian Perkembangan Teknologi Smart Card dari Segi KeamananMateri Kuliah Online
 
Catu Daya dan Rangkaian Penyearah Gelombang
Catu Daya dan Rangkaian Penyearah GelombangCatu Daya dan Rangkaian Penyearah Gelombang
Catu Daya dan Rangkaian Penyearah GelombangMateri Kuliah Online
 
Simulasi Anti Integral Windup dengan Clamp Integrator
Simulasi Anti Integral Windup dengan Clamp IntegratorSimulasi Anti Integral Windup dengan Clamp Integrator
Simulasi Anti Integral Windup dengan Clamp IntegratorMateri Kuliah Online
 
Prinsip-prinsip Asas E-Construction, K-Constructions dan Groupware Technology
Prinsip-prinsip Asas E-Construction, K-Constructions dan Groupware TechnologyPrinsip-prinsip Asas E-Construction, K-Constructions dan Groupware Technology
Prinsip-prinsip Asas E-Construction, K-Constructions dan Groupware TechnologyMateri Kuliah Online
 
Penggunaan DT-51 Untuk Komunikasi Mikrokontroler Melalui Jaringan Telepon
Penggunaan DT-51 Untuk Komunikasi Mikrokontroler Melalui Jaringan TeleponPenggunaan DT-51 Untuk Komunikasi Mikrokontroler Melalui Jaringan Telepon
Penggunaan DT-51 Untuk Komunikasi Mikrokontroler Melalui Jaringan TeleponMateri Kuliah Online
 
Penggunaan DT-Basic Untuk Membaca Nomor Identitas Secara Wireless
Penggunaan DT-Basic Untuk Membaca Nomor Identitas Secara WirelessPenggunaan DT-Basic Untuk Membaca Nomor Identitas Secara Wireless
Penggunaan DT-Basic Untuk Membaca Nomor Identitas Secara WirelessMateri Kuliah Online
 

Mehr von Materi Kuliah Online (20)

Sekilas tentang HaKI
Sekilas tentang HaKISekilas tentang HaKI
Sekilas tentang HaKI
 
Pengenalan Rekayasa Perangkat Lunak
Pengenalan Rekayasa Perangkat LunakPengenalan Rekayasa Perangkat Lunak
Pengenalan Rekayasa Perangkat Lunak
 
Pemodelan Basis Data Lainnya
Pemodelan Basis Data LainnyaPemodelan Basis Data Lainnya
Pemodelan Basis Data Lainnya
 
Arsitektur Sistem Basis Data
Arsitektur Sistem Basis DataArsitektur Sistem Basis Data
Arsitektur Sistem Basis Data
 
Access control-systems
Access control-systemsAccess control-systems
Access control-systems
 
Melangkah dengan Microsoft Windows Server 2003
Melangkah dengan Microsoft Windows Server 2003Melangkah dengan Microsoft Windows Server 2003
Melangkah dengan Microsoft Windows Server 2003
 
Studi Mengenai Aspek Privasi pada Sistem RFID
Studi Mengenai Aspek Privasi pada Sistem RFIDStudi Mengenai Aspek Privasi pada Sistem RFID
Studi Mengenai Aspek Privasi pada Sistem RFID
 
Remote control alarm sepeda motor
Remote control alarm sepeda motorRemote control alarm sepeda motor
Remote control alarm sepeda motor
 
Internet dan Layanan Aplikasi Terdistribusi
Internet dan Layanan Aplikasi TerdistribusiInternet dan Layanan Aplikasi Terdistribusi
Internet dan Layanan Aplikasi Terdistribusi
 
Aspek Security pada Penerapan m-Commerce di Indonesia
Aspek Security pada Penerapan m-Commerce di IndonesiaAspek Security pada Penerapan m-Commerce di Indonesia
Aspek Security pada Penerapan m-Commerce di Indonesia
 
A Comparison of Proximity Authentication Approaches
A Comparison of Proximity Authentication ApproachesA Comparison of Proximity Authentication Approaches
A Comparison of Proximity Authentication Approaches
 
Kajian Perkembangan Teknologi Smart Card dari Segi Keamanan
Kajian Perkembangan Teknologi Smart Card dari Segi KeamananKajian Perkembangan Teknologi Smart Card dari Segi Keamanan
Kajian Perkembangan Teknologi Smart Card dari Segi Keamanan
 
Catu Daya dan Rangkaian Penyearah Gelombang
Catu Daya dan Rangkaian Penyearah GelombangCatu Daya dan Rangkaian Penyearah Gelombang
Catu Daya dan Rangkaian Penyearah Gelombang
 
Dioda dan Catu Daya
Dioda dan Catu DayaDioda dan Catu Daya
Dioda dan Catu Daya
 
Simulasi Anti Integral Windup dengan Clamp Integrator
Simulasi Anti Integral Windup dengan Clamp IntegratorSimulasi Anti Integral Windup dengan Clamp Integrator
Simulasi Anti Integral Windup dengan Clamp Integrator
 
Radio Frequency Identification
Radio Frequency IdentificationRadio Frequency Identification
Radio Frequency Identification
 
Prinsip-prinsip Asas E-Construction, K-Constructions dan Groupware Technology
Prinsip-prinsip Asas E-Construction, K-Constructions dan Groupware TechnologyPrinsip-prinsip Asas E-Construction, K-Constructions dan Groupware Technology
Prinsip-prinsip Asas E-Construction, K-Constructions dan Groupware Technology
 
Penggunaan DT-51 Untuk Komunikasi Mikrokontroler Melalui Jaringan Telepon
Penggunaan DT-51 Untuk Komunikasi Mikrokontroler Melalui Jaringan TeleponPenggunaan DT-51 Untuk Komunikasi Mikrokontroler Melalui Jaringan Telepon
Penggunaan DT-51 Untuk Komunikasi Mikrokontroler Melalui Jaringan Telepon
 
Penggunaan DT-Basic Untuk Membaca Nomor Identitas Secara Wireless
Penggunaan DT-Basic Untuk Membaca Nomor Identitas Secara WirelessPenggunaan DT-Basic Untuk Membaca Nomor Identitas Secara Wireless
Penggunaan DT-Basic Untuk Membaca Nomor Identitas Secara Wireless
 
Interfacing Number Display
Interfacing Number DisplayInterfacing Number Display
Interfacing Number Display
 

Kürzlich hochgeladen

Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdfContoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdfCandraMegawati
 
Dinamika Hidrosfer geografi kelas X genap
Dinamika Hidrosfer geografi kelas X genapDinamika Hidrosfer geografi kelas X genap
Dinamika Hidrosfer geografi kelas X genapsefrida3
 
Modul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase BModul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase BAbdiera
 
Prakarsa Perubahan ATAP (Awal - Tantangan - Aksi - Perubahan)
Prakarsa Perubahan ATAP (Awal - Tantangan - Aksi - Perubahan)Prakarsa Perubahan ATAP (Awal - Tantangan - Aksi - Perubahan)
Prakarsa Perubahan ATAP (Awal - Tantangan - Aksi - Perubahan)MustahalMustahal
 
LK.01._LK_Peta_Pikir modul 1.3_Kel1_NURYANTI_101.docx
LK.01._LK_Peta_Pikir modul 1.3_Kel1_NURYANTI_101.docxLK.01._LK_Peta_Pikir modul 1.3_Kel1_NURYANTI_101.docx
LK.01._LK_Peta_Pikir modul 1.3_Kel1_NURYANTI_101.docxPurmiasih
 
bab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ika
bab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ikabab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ika
bab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ikaAtiAnggiSupriyati
 
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMMLaporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMMmulyadia43
 
Modul 1.2.a.8 Koneksi antar materi 1.2.pdf
Modul 1.2.a.8 Koneksi antar materi 1.2.pdfModul 1.2.a.8 Koneksi antar materi 1.2.pdf
Modul 1.2.a.8 Koneksi antar materi 1.2.pdfSitiJulaeha820399
 
Aksi nyata disiplin positif Hj. Hasnani (1).pdf
Aksi nyata disiplin positif Hj. Hasnani (1).pdfAksi nyata disiplin positif Hj. Hasnani (1).pdf
Aksi nyata disiplin positif Hj. Hasnani (1).pdfDimanWr1
 
Aksi nyata Malaikat Kebaikan [Guru].pptx
Aksi nyata Malaikat Kebaikan [Guru].pptxAksi nyata Malaikat Kebaikan [Guru].pptx
Aksi nyata Malaikat Kebaikan [Guru].pptxsdn3jatiblora
 
Latihan Soal bahasa Indonesia untuk anak sekolah sekelas SMP atau pun sederajat
Latihan Soal bahasa Indonesia untuk anak sekolah sekelas SMP atau pun sederajatLatihan Soal bahasa Indonesia untuk anak sekolah sekelas SMP atau pun sederajat
Latihan Soal bahasa Indonesia untuk anak sekolah sekelas SMP atau pun sederajatArfiGraphy
 
Aksi Nyata Modul 1.1 Calon Guru Penggerak
Aksi Nyata Modul 1.1 Calon Guru PenggerakAksi Nyata Modul 1.1 Calon Guru Penggerak
Aksi Nyata Modul 1.1 Calon Guru Penggeraksupriadi611
 
ppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 pptppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 pptArkhaRega1
 
Materi Pertemuan Materi Pertemuan 7.pptx
Materi Pertemuan Materi Pertemuan 7.pptxMateri Pertemuan Materi Pertemuan 7.pptx
Materi Pertemuan Materi Pertemuan 7.pptxRezaWahyuni6
 
CAPACITY BUILDING Materi Saat di Lokakarya 7
CAPACITY BUILDING Materi Saat di Lokakarya 7CAPACITY BUILDING Materi Saat di Lokakarya 7
CAPACITY BUILDING Materi Saat di Lokakarya 7IwanSumantri7
 
contoh penulisan nomor skl pada surat kelulusan .pptx
contoh penulisan nomor skl pada surat kelulusan  .pptxcontoh penulisan nomor skl pada surat kelulusan  .pptx
contoh penulisan nomor skl pada surat kelulusan .pptxHR MUSLIM
 
tugas karya ilmiah 1 universitas terbuka pembelajaran
tugas karya ilmiah 1 universitas terbuka pembelajarantugas karya ilmiah 1 universitas terbuka pembelajaran
tugas karya ilmiah 1 universitas terbuka pembelajarankeicapmaniez
 
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdf
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdfREFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdf
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdfirwanabidin08
 
Dampak Pendudukan Jepang.pptx indonesia1
Dampak Pendudukan Jepang.pptx indonesia1Dampak Pendudukan Jepang.pptx indonesia1
Dampak Pendudukan Jepang.pptx indonesia1udin100
 
Modul Ajar Pendidikan Pancasila Kelas 5 Fase C
Modul Ajar Pendidikan Pancasila Kelas 5 Fase CModul Ajar Pendidikan Pancasila Kelas 5 Fase C
Modul Ajar Pendidikan Pancasila Kelas 5 Fase CAbdiera
 

Kürzlich hochgeladen (20)

Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdfContoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
 
Dinamika Hidrosfer geografi kelas X genap
Dinamika Hidrosfer geografi kelas X genapDinamika Hidrosfer geografi kelas X genap
Dinamika Hidrosfer geografi kelas X genap
 
Modul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase BModul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase B
 
Prakarsa Perubahan ATAP (Awal - Tantangan - Aksi - Perubahan)
Prakarsa Perubahan ATAP (Awal - Tantangan - Aksi - Perubahan)Prakarsa Perubahan ATAP (Awal - Tantangan - Aksi - Perubahan)
Prakarsa Perubahan ATAP (Awal - Tantangan - Aksi - Perubahan)
 
LK.01._LK_Peta_Pikir modul 1.3_Kel1_NURYANTI_101.docx
LK.01._LK_Peta_Pikir modul 1.3_Kel1_NURYANTI_101.docxLK.01._LK_Peta_Pikir modul 1.3_Kel1_NURYANTI_101.docx
LK.01._LK_Peta_Pikir modul 1.3_Kel1_NURYANTI_101.docx
 
bab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ika
bab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ikabab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ika
bab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ika
 
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMMLaporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
 
Modul 1.2.a.8 Koneksi antar materi 1.2.pdf
Modul 1.2.a.8 Koneksi antar materi 1.2.pdfModul 1.2.a.8 Koneksi antar materi 1.2.pdf
Modul 1.2.a.8 Koneksi antar materi 1.2.pdf
 
Aksi nyata disiplin positif Hj. Hasnani (1).pdf
Aksi nyata disiplin positif Hj. Hasnani (1).pdfAksi nyata disiplin positif Hj. Hasnani (1).pdf
Aksi nyata disiplin positif Hj. Hasnani (1).pdf
 
Aksi nyata Malaikat Kebaikan [Guru].pptx
Aksi nyata Malaikat Kebaikan [Guru].pptxAksi nyata Malaikat Kebaikan [Guru].pptx
Aksi nyata Malaikat Kebaikan [Guru].pptx
 
Latihan Soal bahasa Indonesia untuk anak sekolah sekelas SMP atau pun sederajat
Latihan Soal bahasa Indonesia untuk anak sekolah sekelas SMP atau pun sederajatLatihan Soal bahasa Indonesia untuk anak sekolah sekelas SMP atau pun sederajat
Latihan Soal bahasa Indonesia untuk anak sekolah sekelas SMP atau pun sederajat
 
Aksi Nyata Modul 1.1 Calon Guru Penggerak
Aksi Nyata Modul 1.1 Calon Guru PenggerakAksi Nyata Modul 1.1 Calon Guru Penggerak
Aksi Nyata Modul 1.1 Calon Guru Penggerak
 
ppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 pptppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 ppt
 
Materi Pertemuan Materi Pertemuan 7.pptx
Materi Pertemuan Materi Pertemuan 7.pptxMateri Pertemuan Materi Pertemuan 7.pptx
Materi Pertemuan Materi Pertemuan 7.pptx
 
CAPACITY BUILDING Materi Saat di Lokakarya 7
CAPACITY BUILDING Materi Saat di Lokakarya 7CAPACITY BUILDING Materi Saat di Lokakarya 7
CAPACITY BUILDING Materi Saat di Lokakarya 7
 
contoh penulisan nomor skl pada surat kelulusan .pptx
contoh penulisan nomor skl pada surat kelulusan  .pptxcontoh penulisan nomor skl pada surat kelulusan  .pptx
contoh penulisan nomor skl pada surat kelulusan .pptx
 
tugas karya ilmiah 1 universitas terbuka pembelajaran
tugas karya ilmiah 1 universitas terbuka pembelajarantugas karya ilmiah 1 universitas terbuka pembelajaran
tugas karya ilmiah 1 universitas terbuka pembelajaran
 
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdf
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdfREFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdf
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdf
 
Dampak Pendudukan Jepang.pptx indonesia1
Dampak Pendudukan Jepang.pptx indonesia1Dampak Pendudukan Jepang.pptx indonesia1
Dampak Pendudukan Jepang.pptx indonesia1
 
Modul Ajar Pendidikan Pancasila Kelas 5 Fase C
Modul Ajar Pendidikan Pancasila Kelas 5 Fase CModul Ajar Pendidikan Pancasila Kelas 5 Fase C
Modul Ajar Pendidikan Pancasila Kelas 5 Fase C
 

Dasar pemrograman

  • 1. Dasar Pemrograman Oleh : Hendra, ST. KATA PENGANTAR Selamat datang di dunia pemrograman komputer. Dewasa ini, jurusan komputer telah menjadi salah satu jurusan favorit bagi lulusan SMU untuk melanjutkan pendidikannya di perguruan tinggi. Sebagai salah satu mahasiswa jurusan komputer, tentu saja topik algoritma dan pemrograman merupakan mata kuliah wajib, karena kesuksesan sebagai seorang mahasiswa jurusan komputer adalah kemampuan pemanfaatan komputer dan kemampuan menghasilkan berbagai aplikasi yang dapat bermanfaat bagi perusahaan maupun masyarakat. Sesuatu yang harus disadari para mahasiswa adalah dalam mempelajari pemrograman komputer bukanlah sesuatu yang mudah, karena sangat membutuhkan minat dan bakat, dan buku ini memcoba membimbing anda secara step-by-step menuju ke dunia pemrograman komputer. Akhirnya, selamat belajar dan berlatih. Medan, 17 Agustus 2003 Hendra, ST. Indoprog 1
  • 2. Dasar Pemrograman Oleh : Hendra, ST. Modul 1, PROGRAM KOMPUTER dan ALGORITMA PROGRAM KOMPUTER Program komputer adalah suatu himpunan dari instruksi yang memberitahukan kepada komputer apa yang harus dilakukan. Instruksi tersebut mungkin memberitahukan kepada komputer untuk menambah, membandingkan, dan membuat keputusan berdasarkan hasilnya. BAHASA KOMPUTER Agar suatu komputer dapat mengenali instruksi yang anda berikan, instruksi tersebut perlu ditulis dalam bahasa yang dimengerti oleh komputer. HIGH-LEVEL dan LOW-LEVEL Pada dasarnya orang mengolongkan Bahasa komputer menjadi dua golongan besar yaitu High- Level dan Low-Level. Bahasa pemrograman seperti BASIC, PASCAL, FORTRAN dan C, memungkinkan programmer untuk menulis program yang tidak begitu tergantung pada jenis komputer. Berdasarkan hal inilah bahasa-bahasa ini dapat dikategorikan sebagai high-level karena lebih dekat kepada manusia. Sebaliknya, bahasa assembly dikategorikan sebagai low-level karena mereka sangat dekat kepada hardware. Keuntungan utama dari bahwa high-level dibandingkan dengan low level adalah lebih mudah dibaca, ditulis, dan ditangani. Selanjutnya program yang ditulis dengan bahasa high-level harus diterjemahkan menjadi bahasa mesin melalui suatu compiler atau interpreter. INTERPRETER dan COMPILER Ketika anda menggunakan suatu interpreter, ia akan membaca perintah source code baris perbaris, kemudian menterjemahkannya menjadi perintah mesin yang bersesuaian (kode mesin) dan menjalankannya seketika. Kode mesin ini tidak disimpan; sehingga ketika anda mencoba menjalankan program yang sama pada kesempatan berikutnya, anda membutuhkan source code dan interpreter untuk menjalankannya. Indoprog 2
  • 3. Dasar Pemrograman Oleh : Hendra, ST. Ketika anda menggunakan suatu compiler, ia akan membaca perintah source code ... dan menulis kode mesin. Setelah selesai keseluruhan kode mesin akan disimpan untuk pemakaian selanjutnya. Ketika anda ingin menjalankan program tersebut, system operasi akan menjalankan kode mesin yang telah disimpan – dalam hal ini source code tidak diperlukan lagi. Eksekusi menjadi lebih cepat, dan dapat dijalankan dikomputer lain (dalam hal ini pada komputer dan system operasi yang sama) KOMPUTER dan ALGORITMA Untuk membuat komputer melakukan sesuatu, anda perlu untuk menulis program komputer. Dalam menulis suatu program komputer, kita perlu memberitahukan kepada komputer, langkah-langkah persis apa yang harus ia lakukan. Ketika komputer menjalankan program tersebut, ia akan melakukan setiap langkah secara mesin untuk mencapai tujuan akhir. Ketika anda memberitahu kepada komputer apa yang harus dilakukan, anda perlu memilih bagaimana hal tersebut dilakukan. Dari sinilah Algoritma Komputer muncul. Algoritma adalah teknik dasar untuk menyelesaikan suatu pekerjaan. Perhatikan contoh berikut untuk membantu pengertian anda tentang konsep dari algoritma. Katakanlah misalnya anda mempunyai teman yang baru tiba di airport, dan teman anda ingin berangkat dari airport ke rumah anda. Berikut ini adalah empat algoritma yang berbeda yang mungkin dilakukan teman anda: Algoritma taxi: Pergi ke pemberhentian taxi. Masuk ke taxi. Berikan alamat rumah anda. Algoritma Telepon untuk dijemput: Ketempat pemberhentian, telepon ke handphone anda. Menunggu saja ditempat pengambilan bagasi. Algoritma Bus: Keluar dari tempat pengambilan bagasi, naik bus nomor 70. Turun dan naik bus nomor 14 pada jalan utama. Turun di jalan pada jalan AB. Jalan kaki dua blok arah utara ke rumah anda. Ketiga algoritma diatas memiliki tujuan yang sama, tetapi masing-masing melakukannya dengan cara yang berbeda. Masing-masing algoritma diatas juga menghabiskan waktu dan biaya yang berbeda. Naik taxi, adalah contoh yang paling cepat, tetapi paling mahal. Naik bus mungkin adalah paling hemat, tetapi lambat. Tentu saja anda perlu memilih algortima sesuai dengan situasi dan kondisi. Dalam pemrograman komputer, juga terdapat banyak cara – algoritma -- yang berbeda. Masing- masing algoritma memiliki keuntungan dan kerugian untuk situasi yang berbeda Indoprog 3
  • 4. Dasar Pemrograman Oleh : Hendra, ST. PSEUDOCODE PSEUDOCODE adalah cara sederhana untuk menggambarkan algoritma tanpa salah satu bahasa pemrograman. Pseudocode sering digunakan pada buku-buku Computer science dalam contoh mereka sehingga dapat dimengerti oleh para programmer dengan bahasa komputer yang berbeda. Contoh notasi pseudocode: <variable> = <expression> Berhubungan dengan kondisi: if <condition> lakukan sesuatu else lakukan hal yang lain Berhubungan dengan looping: while <condition> lakukan sesuatu for <variable> from <nilai awal> to <nilai akhir> by <step> lakukan sesuatu Pemanggilan fungsi: <function>(<arguments>) Deklarasi fungsi: function <function name>(<arguments>) lakukan sesuatu dengan arguments return sesuatu (optional) Deklarasi variabel: declare <variable-name> as <type> Deklarasi array: declare <array-name>[<lower-bound> to <upper-bound>] of <type> Struktur data: struct <name_of_new_type> <declaration(s) of internal variables> Mengakses field yang terdapat pada struktur: <structure variable name>.<field name> FLOWCHART FLOWCHART adalah salah satu cara menggambarkan algoritma dengan menggunakan simbol. Start dan End Indoprog 4
  • 5. Dasar Pemrograman Oleh : Hendra, ST. Input dan Output Proses Kondisi Konektor Aliran Tugas : 1. Tuliskan pengertian anda tentang Program Komputer, Bahasa Komputer, dan Algoritma ! 2. Tuliskan algoritma yang anda lakukan dari rumah menuju ke tempat kuliah ! 3. Apa perbedaan menurut anda antara Program Komputer dan Pseudocode ? 4. Apa persamaan dan perbedaan antara pseudocode dengan flowchart ? Tugas rumah : Carilah nama-nama bahasa komputer dan pembuatnya, minimal 10. Indoprog 5
  • 6. Dasar Pemrograman Oleh : Hendra, ST. Modul 2, BAHASA PEMROGRAMAN BASIC SEJARAH BAHASA BASIC Bahasa BASIC (standing for Beginner's All Purpose Symbolic Instruction Code) dibuat oleh John G.Kemmeny dan Thomas E.Kurtz di Dartmouth College pada tahun 1964 merupakan bahasa tingkat tinggi yang relatif mudah dipelajari dan dimengerti. Adapun tokoh yang berperan penting dalam kepopularan bahasa BASIC adalah Bill Gates dan Paul Allen (Microsoft Corporation), dimana mereka membuat intepreter BASIC untuk Altair PC (dengan menggunakan memori sebesar 4KB meliputi programd dan source code). Dalam perkembangan selanjutnya, mereka juga membuat intepreter BASIC untuk Apple, Commodore, dan Atari PC. Pada IBM-PC, Bahasa BASIC dikembangkan dalam dua jenis, yaitu Interpreter dan compiler. Interpreter seperti GW-BASIC pada sistem operasi MS-DOS, maupun BASICA pada system operasi PC-DOS, sedangkan salah satu compilernya yang terkenal adalah BASIC yang dilengkapi dengan sistem pemrograman yang terstruktur, Library, on-line help yang terpadu, editor yang efisien (bisa merapikan teks serta memberitahukan kesalahan syntax penulisan suatu perintah). Dalam perkembangan bahasa BASIC, juga dikembangkan Turbo Basic oleh Robert S. Zale (Borland International), dan untuk versi Power Basic oleh dirinya sendiri. Pada dasarnya bahasa BASIC dirancang untuk : 1. Be easy for beginners to use 2. Be a general-purpose language 3. Allow advanced features to be added for experts (while keeping the language simple for beginners) 4. Be interactive 5. Provide clear and friendly error messages 6. Respond fast for small programs 7. Not require an understanding of computer hardware 8. Shield the user from the operating system Unstructured original BASIC 10 INPUT "What is your name: "; A$ 20 PRINT "Hello "; A$ 30 INPUT "How many stars do you want: "; S 35 S$ = "" 40 FOR I = 1 TO S 50 S$ = S$ + "*" 55 NEXT I 60 PRINT S$ 70 INPUT "Do you want more stars? "; Q$ 80 IF LEN(Q$) = 0 GOTO 70 90 Q$ = LEFT$(Q$, 1) 100 IF (Q$ = "Y") OR (Q$ = "y") THEN GOTO 30 Indoprog 6
  • 7. Dasar Pemrograman Oleh : Hendra, ST. 110 PRINT "Goodbye "; 120 FOR I = 1 TO 200 130 PRINT A$; " "; 140 NEXT I 150 PRINT Modern Structured BASIC INPUT "What is your name"; UserName$ PRINT "Hello "; UserName$ DO INPUT "How many stars do you want"; NumStars Stars$ = "" Stars$ = REPEAT$("*", NumStars) '<-ANSI BASIC 'Stars$ = STRING$(NumStars, "*") '<-MS BASIC PRINT Stars$ DO INPUT "Do you want more stars"; Answer$ LOOP UNTIL Answer$ <> "" LOOP WHILE UCASE$(LEFT$(Answer$, 1)) = "Y" PRINT "Goodbye "; FOR A = 1 TO 200 PRINT UserName$; " "; NEXT A PRINT LIMA LANGKAH DASAR PEMBUATAN PROGRAM 1. Recognizing the need for a program to solve a problem. 2. Planning the program and selecting the tools to solve the problem. 3. Writing the program in the programming language of choice. 4. Compiling: translating the human-readable source code into machine-readable executable code, which is done by compilers and other tools. 5. Testing the program to make sure it works; if not, return to step 3 (see code and fix). TYPE DATA Data Type Suffix Maximum Minimum Size Strings $ 32,767 chars 0 chars Integers % 32,767 -32,767 2 Long Integers & 2,147,483,647 -2,147,483,648 4 Single ! +-3.402823 E+38 +-1.401298 E-45 4 Double # +-1.7976931 D+308 +-4.940656 D-324 8 User defined OPERATOR Arithmetic operators : melakukan tugas perhitungan Operator Kegunaan Operator Kegunaan Indoprog 7
  • 8. Dasar Pemrograman Oleh : Hendra, ST. ^ Pangkat Pembagian Integer - Negatif Mod Sisa bagi * Perkalian + Penjumlahan / Pembagian - Pengurangan Relational operators : membandingkan strings dan nilai numerik Operator Kegunaan = Sama dengan <> Tidak sama dengan < Lebih kecil > Lebih besar <= Lebih kecil atau sama dengan >= Lebih besar atau sama dengan Logical operators : test kondisi dan manipulasi bits Expresi1 Expresi2 Not And Or Xor Eqv Imp T T F T T F T T T F F F T T F F F T T F T T F T F F T F F F T T String operators: mengabung (+), dan membandingkan String LABEL dan VARIABEL Penulisan label pada Basic harus memenuhi ketentuan : Maksimum 40 character, dimulai dengan huruf A..Z huruf besar/kecil sama, tidak sama dengan reserved word, dan tidak pakai spasi Nama variabel juga memiliki ketentuan antara lain : Maksimum 40 character, diawali dengan huruf A..Z, diakhiri dengan $, %, &, !, # untuk menunjukan type Tidak boleh sama dengan reserved word, tidak boleh pakai spasi dan spesial character. PERINTAH DASAR INPUT OUTPUT Komputer hanya melaksanakan apa yang diperintahkan pemrogram. Jadi, dalam membuat program untuk menyelesaikan suatu masalah, kita harus tahu cara penyelesaiannya. Untuk itu diperlukan tahap-tahap dalam menyelesaikan masalah tersebut. INPUT dan OUTPUT merupakan awal dan akhir pengolahan suatu data. Tanpa proses INPUT, kita tidak dapat memperoleh data untukdiolah dan data-data yang telah selesai diolah tidak akan berarti tanpa proses OUTPUT. Indoprog 8
  • 9. Dasar Pemrograman Oleh : Hendra, ST. Contoh 1 : REM Program mencari Isi Bujursangkar INPUT "MASUKKAN SISI BUJURSANGKAR :",S ISI = S * S PRINT "ISI DARI BUJURSANGKAR ADALAH :",ISI END Contoh 2 : REM Program Isi Data INPUT "MASUKKAN NAMA ANDA ";NM$ INPUT "MASUKKAN UMUR ANDA ";UR% INPUT "MASUKKAN TGL,BLN,THN HARI INI ";TG%,BL%,TH% PRINT "NAMA : ";NM$ PRINT "UMUR : ";UR% PRINT "TANGGAL : ";TG% PRINT "BULAN : ";BL% PRINT "TAHUN : ";TH% END Catatan : Untuk memberi keterangan pada program dapat digunakan REM atau ' LATIHAN 1. Tuliskan hasil evaluasi ekspresi berikut Ekspresi : Hasilnya ? 1 + 2 _____ Penjumlahan 2 - 1 _____ Pengurangan 2 * 3 _____ Perkalian 5 / 2 _____ Pembagian 5 2 _____ mengapa ? ____________ Pembagian bulat 5 Mod 2 _____ mengapa ? ____________ Sisa bagi 3^2 _____ Pangkat 1+2*6^2/4-1 _____ Urutan operasi (1+2)*6^2/4-1 _____ Prioritas operasi Tuliskan kesimpulan anda tentang : 1. Pembagian bulat ____________________________________________ 2. Sisa bagi __________________________________________________ 3. Urutan operasi _____________________________________________ 4. Prioritas operasi __________________________________________ 1 > 2 _____ lebih besar 1 < 1 _____ lebih kecil 2 = 2 _____ sama dengan 2 >= 2 _____ lebih besar atau sama 1 <= 2 _____ lebih kecil atau sama 3 <> 3 _____ tidak sama dengan Mengapa True (-1) dan False (0) ? (1 > 2) and (2 = 2) _____ Operasi And (1 > 2) and (1 < 2) _____ Operasi And (1 < 2) and (2 = 2) _____ Operasi And Indoprog 9
  • 10. Dasar Pemrograman Oleh : Hendra, ST. (3 <> 2) and (1 > 2) _____ Operasi And (1 > 2) and (2 = 2) _____ Operasi Or (1 > 2) and (1 < 2) _____ Operasi Or (1 < 2) and (2 = 2) _____ Operasi Or (3 <> 2) and (1 > 2) _____ Operasi Or (1 > 2) Xor (2 = 2) _____ Operasi Xor (1 > 2) Xor (1 < 2) _____ Operasi Xor (1 < 2) Xor (2 = 2) _____ Operasi Xor (3 <> 2) Xor (1 > 2) _____ Operasi Xor (1 > 2) Eqv (2 = 2) _____ Operasi Eqv (1 > 2) Eqv (1 < 2) _____ Operasi Eqv (1 < 2) Eqv (2 = 2) _____ Operasi Eqv (3 <> 2) Eqv (1 > 2) _____ Operasi Eqv (1 > 2) Imp (2 = 2) _____ Operasi Imp (1 > 2) Imp (1 < 2) _____ Operasi Imp (1 < 2) Imp (2 = 2) _____ Operasi Imp (3 <> 2) Imp (1 > 2) _____ Operasi Imp Not (1 > 2) _____ Operasi Imp Not (2 > 2) _____ Operasi Imp Not (1 > 2) Or (2 = 2) And (3 < 2) ______ Urutan operasi Tuliskan kesimpulan anda tentang urutan operasi pada operator logika. 2. Ketiklah ekspresi berikut pada jendela immedietly : A = 123 B = 1234567890 C% = 32767 D% = 100000 Overflow, mengapa ? D& = 100000 E$ = "Indoprog" F$ = 123 Type mismatch, mengapa ? G = "hendra" Type mismatch, mengapa ? H_1 = 123 expected : end-of-statement, mengapa ? nilai ujian = 90 Syntax error, mengapa ? next = 5 expected : variable or end-of-statement ? cls = 6 expected : variable or end-of-statement ? A% = 1.2 Berapa nilai A% ? A% = 1.5 Berapa nilai A% ? Tuliskan kesimpulan anda tentang variabel dan nama variabel 1 + 1 ______ 1 + "100" Type mismatch, mengapa ? "A" + "B" ______ Tuliskan kesimpulan anda operator pada type data. Print "Untuk kemajuan Indonesia" Indoprog 10
  • 11. Dasar Pemrograman Oleh : Hendra, ST. Hasilnya : __________________________________ Print "Untuk","kemajuan","Indonesia" Hasilnya : __________________________________ Print "Untuk";"kemajuan";Indonesia" Hasilnya : __________________________________ Print "Untuk" Print "Kemajuan" Print "Indonesia" Hasilnya : _____________ _____________ _____________ Print "Untuk"; Print "Kemajuan"; Print "Indonesia" Hasilnya : __________________________________ Print 1,2,3 Hasilnya : __________________________________, mengapa ? Print 1;2;3 Hasilnya : __________________________________, mengapa ? Print tab(10),"Hendra";tab(30);"Soewarno" Hasilnya : __________________________________, mengapa ? Input nama$ print nama$ Hasilnya :? Hendra __________________________________ Input "Masukkan nama :", nama$ print nama$ Hasilnya :Masukkan nama : Hendra __________________________________ Indoprog 11
  • 12. Dasar Pemrograman Oleh : Hendra, ST. Input "Masukkan nama "; nama$ print nama$ Hasilnya :Masukkan nama ? Hendra __________________________________ Input "Masukkan nama "; nama print nama Hasilnya : Masukkan nama ? Hendra Redo from start, mengapa ? 2. Program anda yang pertama Aktifkan ke jendela Editor Ketiklah CODE berikut : REM Program saya yang pertama CLS PRINT "Hello semua" END Simpan CODE diatas ke file Bab1F.Bas (gunakan menu File Save) Jalankan program diatas (gunakan menu Run Start atau tekan F5) 3. Program dengan proses input/output Gunakan menu File New untuk memulai program baru Ketiklah CODE berikut : REM Program menghitung luas persegi panjang CLS INPUT "Masukkan sisi panjang :", panjang INPUT "Masukkan sisi lebar :", lebar LUAS = panjang * lebar PRINT "Luas persegi panjang :", LUAS END Simpan CODE diatas ke file Bab1G.Bas Tugas 4. Buatlah program menghitung luas lingkaran. 5. Buatlah program konversi suhu Celcius ke Farenheit, Kelvin, Reamur. Jawaban : REM Program Konversi Celcius ke Reamur, Kelvin dan Fahrenheit DIM c AS SINGLE DIM r AS SINGLE DIM k AS SINGLE DIM f AS SINGLE CLS Indoprog 12
  • 13. Dasar Pemrograman Oleh : Hendra, ST. INPUT "Masukkan Derajat Celcius ? ", c r = 4 / 5 * c k = 273 + c f = 9 / 5 * c + 32 PRINT "Derajat Reamur : ", r PRINT "Derajat Kelvin : ", k PRINT "Derajat Fahrenheit : ", f END Indoprog 13
  • 14. Dasar Pemrograman Oleh : Hendra, ST. Modul 3, STRUKTUR KENDALI IF Struktur Kendali memegang peranan yang sangat penting dalam pembuatan program dengan komputer, tanpa adanya struktur kendali kita hanya dapat membuat program yang sederhana dimana prosesnya hanya dijalankan dari baris pertama sampai selesai. Pada kasus-kasus tertentu, ada kalanya baris tertentu tidak boleh dilaksanakan apabila kondisi tidak dipenuhi, ataupun baris- baris tertentu harus diulang sampai suatu kondisi terpenuhi. PILIH TAMBAHAN If ekspresi logika Then Statement ... End If Contoh : PTKP = 240000 If Nikah$ = "Y" Then PTKP = PTKP + 120000 End If Keterangan : Jika status nikah adalah "Y" (Ya), maka PTKP (Penghasilan Tidak Kena Pajak) ditambah 120000 PILIH ANTARA DUA IF ekspresi logika Then Statement1 ... Else Statement2 ... End If Contoh : If JlhAnak > 3 Then PTKP = PTKP + (3 * 120000) Else PTKP = PTKP + (JlhAnak * 120000) End If Keterangan : Jika Jumlah Anak diatas 3 Orang, maka PTKP ditambah 360000, sebaliknya adalah JlhAnak dikali 120000. PILIH ANTARA BANYAK IF ekspresi logika 1 Then Statement1 ... Indoprog 14
  • 15. Dasar Pemrograman Oleh : Hendra, ST. ElseIF ekspresi logika 2 Then Statement2 ... Else Endif Berfungsi menentukan Block statement yang mana akan dijalankan oleh komputer sesuai dengan ekspresi logika yang menghasilkan nilai benar. Contoh : PKP = Penghasilan - PTKP ' Penghasilan Kena Pajak 1 Bulan PKPT = PKP * 12 ' Penghasilan Kena Pajak 1 Tahun If PKPT <= Then PPH = 0 ElseIF PKPT <= 25000000 Then PPH = PKP * 0.05 ElseIF PKPT <= 50000000 Then PPH = 1250000 + (PKPT-25000000)* 0.1 ElseIF PKPT <= 100000000 Then PPH = 1250000 + 2500000 + (PKPT-50000000)*0.25 ElseIF PTKP <= 200000000 Then PPH = 1250000 + 2500000 + 7500000 + (PKPT-100000000)*0.25 Else PPH = 1250000 + 2500000 + 7500000 + 25000000 + (PKPT-100000000)*0.35 End If PPHB = PPH / 12 ' Pajak Penghasilan Bulan Tersebut Keterangan : PPH dihitung berdasarkan PKPT atau Select Case Variabel Case ekspresi 1 Statement1 ... Case ekspresi 2 Statement2 ... ... Case Else ... End Select Contoh : Select Case PKPT Case <= 0 PPH = 0 Case <= 25000000 PPH = PKP * 0.05 Case <= 50000000 PPH = 1250000 + (PKPT-25000000)* 0.1 Indoprog 15
  • 16. Dasar Pemrograman Oleh : Hendra, ST. Case <= 100000000 PPH = 1250000 + 2500000 + (PKPT-50000000)*0.15 Case <= 200000000 PPH = 1250000 + 2500000 + 7500000 + (PKPT-100000000)*0.25 Case ELSE PPH = 1250000 + 2500000 + 7500000 + 25000000 + (PKPT- 100000000)*0.35 End Select Latihan Buatlah program perhitungan Pajak Penghasilan Perorangan untuk penghasilan bulanan ! Tugas 1. Buatlah program untuk mencetak kata sesuai dengan bilangan yang dimasukan oleh pemakai ( 1 s/d 9 ) Contoh : Input : 1 Output : Satu 2. Buatlah program untuk menentukan bilangan yang dimasukan pemakai genap atau ganjil. Jawaban : REM Program memeriksa bilangan Genap atau Ganjil DIM bil AS INTEGER INPUT "Masukkan Bilangan ?", bil IF bil MOD 2 = 0 THEN PRINT "Genap" ELSE PRINT "Ganjil" END IF END 3. Buatlah program untuk menentukan tahun yang dimasukan pemakai kabisat atau bukan. Indoprog 16
  • 17. Dasar Pemrograman Oleh : Hendra, ST. Modul 5, STRUKTUR KENDALI PERULANGAN Salah satu kelebihan komputer daripada manusia adalah ia tidak pernah bosan terhadap tugas-tugas rutin. Inilah yang menyebabkan komputerisasi selalu diterapkan terhadap tugas-tugas yang rutin. LOOPING COUNTER Digunakan untuk proses berulang yang jumlah perulangannya ditentukan berdasarkan perhitungan (sistem counter). FOR counter = mulai TO selesai [STEP selisih] Statement ... NEXT [counter] Contoh : Mencetak bilangan 0123456789 For I = 0 To 9 Step 1 Print I Next I LOOPING TRAPPING Perulangan jenis ini ditentukan berdasarkan kondisi tertentu. Pemeriksaan diawal DO [{WHILE | UNTIL} ekspresi logika] Statement ... LOOP Contoh : Mencari KPK dari dua bilangan Input "Bilangan pertama :", pertama Input "Bilangan kedua :", kedua If pertama > kedua Then 'Jika bilangan pertama lebih besar Lipat = pertama Bagi = kedua Else Lipat = kedua Bagi = pertama End IF N = 1 Do While ((Lipat*N) Mod Bagi) <> 0 'Kelipatan dinaikan jika Indoprog 17
  • 18. Dasar Pemrograman Oleh : Hendra, ST. N = N + 1 'sisa bagi belum nol Loop Print "KPK kedua bilangan adalah :", (Lipat*N) END NB : operator matematika MOD adalah untuk sisa bagi Pemeriksaan diakhir DO [statementblock] LOOP [{WHILE | UNTIL} ekspresi logika] Contoh : Program password, program akan terus menanyakan password sampai jawabannya benar. password$ = "INDOPROG" DO Color 7,0 Print "Password"; Color 0,0 Input pass$ LOOP until pass$ = password$ Print "Selamat bergabung !" END Perintah EXIT DO dapat digunakan untuk meninggalkan proses DO - LOOP Contoh : N = 1 password$ = "INDOPROG" DO Color 7,0 If N > 3 Then EXIT DO End IF Print "Password"; Color 0,0 Input pass$ N = N + 1 LOOP until pass$ = password$ If N > 3 Then Print "Akses ditolak !" Else Print "Selamat bergabung !" End IF END Latihan : 1. Buatlah program mencetak Indoprog 18
  • 19. Dasar Pemrograman Oleh : Hendra, ST. 11111 12345 22222 12345 33333 12345 44444 12345 55555 12345 12345 12345 1234 2345 123 345 12 45 1 5 Jawaban A: REM Jawaban soal A DIM i AS INTEGER DIM j AS INTEGER FOR i = 1 TO 5 STEP 1 FOR j = 1 TO 5 STEP 1 PRINT j; NEXT j PRINT NEXT i Jawaban B: REM Jawaban Soal B DIM i AS INTEGER DIM j AS INTEGER FOR i = 5 TO 1 STEP -1 FOR j = 1 TO i STEP 1 PRINT j; NEXT j PRINT NEXT i 2. Buatlah program mencetak barisan fibonacci : 1 1 2 3 5 8 13 … Jawaban : REM Program Cetak barisan Fibonacci DIM i AS INTEGER DIM n AS INTEGER DIM f1 AS LONG DIM f2 AS LONG DIM fi AS LONG INPUT "Jumlah Suku ?", i f1 = 1 f2 = 1 FOR n = 1 TO i STEP 1 IF n = 1 THEN PRINT f1; ELSEIF n = 2 THEN PRINT f2; ELSE fi = f1 + f2 PRINT fi; f1 = f2 f2 = fi Indoprog 19
  • 20. Dasar Pemrograman Oleh : Hendra, ST. END IF NEXT n END Tugas 1. Buatlah program menentukan bilangan yang dimasukkan merupakan bilangan PRIMA atau tidak. Jawaban : REM Menentukan bilangan prima atau bukan DIM bil AS LONG DIM bagi AS INTEGER DIM akar AS SINGLE INPUT "Bilangan yang akan diperiksa ?", bil IF bil < 2 THEN PRINT "Bukan Prima" ELSEIF bil < 4 THEN PRINT "Prima" ELSE akar = sqrt(bil) bagi = 2 WHILE bagi <= akar AND bil MOD bagi <> 0 bagi = bagi + 1 WEND IF bagi <= akar THEN PRINT "Bukan Prima" ELSE PRINT "Prima" END IF END IF END 2. Buatlah program mencetak tabel pertumbuhan simpanan anda di bank. Jumlah simpanan ? Suku bunga bank/tahun ? Lama simpanan ? Tabel pertumbuhan ------------------------------------------------------------ Tahun Awal Tahun Bunga/tahun Pajak Akhir Tahun ------------------------------------------------------------ 1 2 . . . Awal Tahun 1 = Jumlah simpanan Bunga/tahun = Awal Tahun * Suku bunga bank/100 Pajak dihitung berdasarkan : Jika Awal Tahun + Bunga/tahun > 7500000 Pajak = 20% dari Bunga/tahun Jika tidak Pajak = 0 Akhir Tahun = Awal Tahun + Bunga/tahun - Pajak Awal Tahun ke n = Akhir Tahun n - 1 Indoprog 20
  • 21. Dasar Pemrograman Oleh : Hendra, ST. Modul 6, VARIABEL ARRAY Array adalah sekumpulan data yang menggunakan nama variabel yang sama. Tiap-tiap nilai dari array disebut sebagai elemen dan memiliki index. Setiap elemen array adalah sebuah variabel juga. MENCIPTAKAN VARIABEL ARRAY Untuk menciptakan variabel array dapat menggunakan perintah : DIM variable[(subscripts)] [AS type] Contoh : DIM A(20) As Integer Akan menciptakan variabel array yang bernama A yang memiliki 20 elemen (mulai dari index 0 s/d 19), yang masing-masing dapat menampung data integer, dan memiliki nilai awal 0 (nol). MENGGUNAKAN VARIABEL ARRAY Penggunakan Variabel Array sama saja dengan variabel biasa, Cuma kita perlu menyebutkan nomor index elemen yang diinginkan. Contoh : A(0) = 100 A(1) = 200 A(2) = 300 Akan mengisi nilai 100 ke elemen pertama, 200 ke elemen kedua,dan 300 ke elemen ketiga. Catatan : Elemen pertama dari array dimulai dengan nomor index 0 Contoh lain : For I = 0 To 19 Step 1 Input "Masukkan Nilai :",A(I) Next I Akan menanyakan kepada pemakai untuk mengisi elemen pertama s/d elemen keduapuluh. Contoh lain : Total = 0 For I = 0 To 19 Step 1 Total = Total + A(I) 'A(0), A(1), ..., A(19) Next I Print "Total :",Total Indoprog 21
  • 22. Dasar Pemrograman Oleh : Hendra, ST. Akan menjumlahkan nilai elemen pertama s/d elemen keduapuluh ke variabel total. Dalam Basic, kita mengenal dua jenis variabel array, yakni dynamic array dan static array. Static array dapat kita bentuk tanpa perintah khusus, tetapi terbatas sampai nomor index ke 10 saja tanpa dipengaruhi jumlah dimensi. Contoh : For I = 0 To 10 Step 1 Input "Masukkan Nilai :",B(I) Next I Total = 0 For I = 0 To 10 Step 1 Total = Total + B(I) Next I Print "Total :",Total Program diatas dapat dijalankan tanpa kesalahan walaupun variabel array B tidak dideklarasikan sebagai variabel array. Hal ini karena kita menggunakan Static array yang otomatis disediakan oleh Basic, tetapi hanya terbatas sampai nomor index ke 10 saja. Pada defaultnya index awal dari variabel array adalah dimulai dari 0, tetapi hal ini bisa diubah dengan perintah OPTION BASE 1. Contoh : OPTION BASE 1 DIM A(30) For I = 1 To 30 Input "Masukkan Nilai :",A(I) Next I Index awal dari variabel array dapat juga ditentukan pada saat deklarasi. Contoh : DIM C(5 To 15) For I = 5 To 15 Step 1 Input "Masukkan Nilai :",A(I) Next I Akan menghasilkan variabel array C, dengan elemen pertama memiliki nomor index 5, dan elemen terakhir memiliki nomor index 15. Anda dapat juga menggunakan fungsi LBound dan UBound untuk mendapatkan index awal dan index akhir dari suatu array. Contoh : DIM C(5 To 15) Indoprog 22
  • 23. Dasar Pemrograman Oleh : Hendra, ST. For I = LBound(C) To UBound(C) Step 1 Input "Masukkan Nilai :",A(I) Next I Latihan 1. Susun sebuah program dengan ketentuan berikut : - program menanyakan jumlah data - program menerima data sesuai dengan jumlah data satu persatu - program mengurut data tersebut secara ascending - program menghitung : 1. data terbesar 2. data terkecil 3. rata-rata 4. median REM Pengolahan Data DIM jd AS INTEGER DIM i AS INTEGER DIM j AS INTEGER INPUT "Masukkan Jumlah Data ?", jd DIM dat(jd) AS INTEGER 'Baca Data FOR i = 1 TO jd STEP 1 PRINT "Masukan data ke-"; i; INPUT dat(i) NEXT i 'Urut Data FOR i = jd - 1 TO 1 STEP -1 FOR j = 1 TO i STEP 1 IF dat(j) > dat(j + 1) THEN temp = dat(j) dat(j) = dat(j + 1) dat(j + 1) = temp END IF NEXT j NEXT i 'Menghitung Total DIM Total AS LONG Total = 0 FOR i = 1 TO jd STEP 1 Total = Total + dat(i) NEXT i DIM rata AS SINGLE rata = Total / jd DIM median AS INTEGER IF jd MOD 2 = 0 THEN median = (dat(jd 2) + dat(jd 2 + 1)) / 2 ELSE median = dat(jd 2 + 1) END IF PRINT "Data Terbesar :", dat(i) PRINT "Data Terkecil :", dat(jd) PRINT "Ratat-rata :", rata PRINT "Median :", median END Indoprog 23
  • 24. Dasar Pemrograman Oleh : Hendra, ST. Tugas 1. Buatlah program faktur sederhana dengan ketentuan : - program menanyakan Tanggal dan Penjual - program menanyakan 1. Jumlah 2. Satuan 3. Nama barang secara berulang sampai jumlah yang dimasukkan 0 (nol) - hasil menghasilkan tampilan faktur berikut : FAKTUR PENJUALAN Tanggal : 01-Jan-1995 Penjual : Hendra Soewarno -------------------------------------------------------- No. Jlh Satuan Nama Barang Harga @ Jumlah ======================================================== 1. 30 Kotak Diskette 3M 15,000.00 450,000.00 2. 10 Buah Pita printer 7,000.00 70,000.00 ======================================================== Total : 520,000.00 -------------------------------------------------------- Indoprog 24
  • 25. Dasar Pemrograman Oleh : Hendra, ST. Modul 7, 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 Basic 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 Indoprog 25
  • 26. Dasar Pemrograman Oleh : Hendra, ST. 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 : Indoprog 26
  • 27. Dasar Pemrograman Oleh : Hendra, ST. 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) Indoprog 27
  • 28. Dasar Pemrograman Oleh : Hendra, ST. 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 Indoprog 28
  • 29. Dasar Pemrograman Oleh : Hendra, ST. 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. REM Tulisan Putar DIM tulisan AS STRING CLS INPUT "Tulisan anda :", tulisan DO LOCATE 13, (80 - LEN(tulisan)) 2 PRINT tulisan tulisan = RIGHT$(tulisan, 1) + LEFT$(tulisan, LEN(tulisan) - 1) LOOP UNTIL INKEY$ <> "" END 3. Bagaimana kalau putar dari kanan ke kiri. 4. Cobalah program tebak angka, berapa kali anda mampu selesai menebaknya? Indoprog 29
  • 30. Dasar Pemrograman Oleh : Hendra, ST. Modul 8, FUNGSI CIPTAAN DAN SUB RUTIN FUNGSI CIPTAAN Fungsi-fungsi bawaan yang disediakan oleh Basic 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. Basic 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. Indoprog 30
  • 31. Dasar Pemrograman Oleh : Hendra, ST. 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 Basic, 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-ulangterhadap bagian program yang sama, dan membuat program lebih terstruktur. Pada Basic tata cara penulisan Sub Rutin adalah sebagai berikut: SUB namasub [(Parameterlist)] [STATIC] [statementblock] Indoprog 31
  • 32. Dasar Pemrograman Oleh : Hendra, ST. 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 : Secara referensi, Argumen yang diberikan dengan cara ini kepada procedure dan diolah, kemudian hasil akhirnya akan didefinisikan pada variabel tersebut pada main program. 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. Indoprog 32
  • 33. Dasar Pemrograman Oleh : Hendra, ST. Dalam Basic anda dapat menentukan tingkatan/sifat variabel yang mengatur dimana variabel itu digunakan(level of access). Inilah tingkatan tersebut : 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. Variabel Shared, atau variabel global bisa digunakan pada seluruh bagian program maupun Sub Procedure tertentu. Nilai variabel ini dapat berubah selama program tersebut berjalan. Variabel Static, adalah variabel local, tetapi variabel ini nilainya tetap dipertahankan sampai pemanggilan berikutnya. Latihan : 1. Buatlah sub kotak double dan contoh pemakaiannya. 2. Buatlah fungsi ciptaan angka yang akan mencetak nama dari suatu angka yang diberikan. (0 = nol, 1 = satu, 2 = dua, …, 9 = sembilan). 3. Kembangkan fungsi yang dapat menghasilkan terbilang sampai angka ribuan. (1250 = Seribu duaratus limapuluh rupiah). Tugas 1. Kembangkan fungsi yang dapat menghasilkan terbilang sampai triliunan rupiah, serta kemampuan SEN. Indoprog 33
  • 34. Dasar Pemrograman Oleh : Hendra, ST. MODUL 9, 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 Basic. MENDEKLARASIKAN SUATU RECORD TYPE Pada Basic 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 Indoprog 34
  • 35. Dasar Pemrograman Oleh : Hendra, ST. Dim Temp As PESERTA Peserta1.Nomor = 9224 'komponen Nomor Peserta1.Nama = "Hendra Soewarno" '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 Indoprog 35
  • 36. Dasar Pemrograman Oleh : Hendra, ST. '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 LATIHAN 1. Buatlah program untuk mengisi data berikut. NAMA GOL JAM KERJA SURYAJAYA A 50 SUTIMAN C 48 JUSMAN B 60 WIJAYA A 50 YUSNI B 48 TUTI A 45 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 (berurut berdasarkan nama): Indoprog 36
  • 37. Dasar Pemrograman Oleh : Hendra, ST. 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 ======================================================== Indoprog 37
  • 38. Dasar Pemrograman Oleh : Hendra, ST. Modul 10, 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 Basic 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 Indoprog 38
  • 39. Dasar Pemrograman Oleh : Hendra, ST. 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 Soewarno",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 Indoprog 39
  • 40. Dasar Pemrograman Oleh : Hendra, ST. 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 Latihan Buatlah program yang dapat menyimpan data latihan Modul 10 ke Siswa.dat. Indoprog 40
  • 41. Dasar Pemrograman Oleh : Hendra, ST. Modul 11, PENGOLAHAN FILE ACAK Pada file sequential pengolahan datanya bersifat FIFO, tetapi dalam pengolahan data kadang- kadang diperlukan proses pengolahan yng 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 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. Indoprog 41
  • 42. Dasar Pemrograman Oleh : Hendra, ST. 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. 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. 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 Indoprog 42
  • 43. Dasar Pemrograman Oleh : Hendra, ST. 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 Indoprog 43
  • 44. Dasar Pemrograman Oleh : Hendra, ST. ‘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 Buatlah program yang dapat menyimpan data latihan Modul 10 ke Siswa.rec. Indoprog 44
  • 45. Dasar Pemrograman Oleh : Hendra, ST. Modul 12, PENGOLAHAN FILE BINARY Selain pengolahan data Sequential dan Random, Basic 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. 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. 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 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 : Indoprog 45
  • 46. Dasar Pemrograman Oleh : Hendra, ST. 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. 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 Indoprog 46
  • 47. Dasar Pemrograman Oleh : Hendra, ST. 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 Indoprog 47
  • 48. Dasar Pemrograman Oleh : Hendra, ST. Modul 13, PENANGANAN ERROR Sebagai manusia normal tidak akan terlepas dari berbagai kesilapan, demikian juga seorang programmer dalam pengembangan program dapat saja berbuat berbagai kesalahan maupun kesilapan. Berdasarkan jenisnya kesalahan dalam pemrograman terbagi menjadi tiga yaitu : 1. Syntax Error, adalah kesalahan yang disebabkan oleh kesalahan tata cara penulisan tanda baca, kesalahan pemakaian operator dan nilai. Kesalahan jenis ini akan dengan mudah dideteksi oleh kompiler maupun interpreter. 2. Logical Error, adalah kesalahan yang disebabkan oleh kesalahan logika maupun model atau metode yang digunakan untuk pemrosesan data, sehingga menyebabkan informasi yang dihasilkan menjadi salah. Kesalahan ini tidak dapat dideteksi oleh kompiler maupun interpreter, kesalahan ini disadari setelah melihat penyimpanan pada saat proses maupun hasil proses. Contoh : N = 1 Do Print N N = N + 2 Loop Until N = 10 Program diatas tidak pernah berhenti. karena nilai N tidak pernah sama dengan 10. Kesalahan Logika dapat juga terjadi karena kesalahan pengetikan nama variabel, dan ini merupakan salah satu kelemahan bahasa pemrograman Basic, jika dibandingan dengan Pascal muapun C Language dimana variabel harus dideklarasikan terlebih dahulu. Contoh : GajiPokok = 1000000 Bonus = 10000 GajiBersih = GajiPokol + Bonus Print GajiBersih 'Hasilnya 10000, bukan 1010000 3. Runtime Error, adalah kesalahan yang disebabkan oleh tidak tersedianya sumber daya atau kondisi yang normal bagi program untuk berjalan dengan baik, misalnya kekurangan memori komputer, disk full, atau pintu drive tidak terkunci, dll. Sebagai programmer yang baik, tentu saja harus mampu menghasilkan program dengan tingkat kesalahan yang minimal, dan usaha untuk meminimalisasi tingkat kesalahan program disebut proses debug. Pada Basic tersedia berbagai fasilitas untuk menangani kesalahan yang mungkin dilakukan oleh programmer, misalnya : Indoprog 48
  • 49. Dasar Pemrograman Oleh : Hendra, ST. 4. Fasilitas Syntax Checking pada menu Option yang sangat berguna untuk mendeteksi kesalahan jenis "Syntax Error". 5. Menu Debug, yang memiliki fasilitas yang sangat bermanfaat untuk melacak Logical Error, tetapi keberhasilannya sangat tergantung kepada pemahaman programmer akan masalah yang terjadi. Adapun fasilitas pada menu Debug adalah sebagai berikut : • Step atau F8, digunakan untuk menjalankan program baris per baris, sehingga programmer dapat mengamati alur program secara baris perbaris sambil mengevaluasi hasil output yang dihasilkan. • Procedure Step atau F10, digunakan untuk menjalankan program baris per baris tanpa masuk ke bagian sub rutin, artinya sub rutin dianggap sebagai satu baris dari program. Fasilitas ini digunakan jika programmer telah yakin pada kebenaran sub rutin yang dibuat, sehingga proses pencarian lebih terfokus pada bagian tertentu. • Trace On, digunakan untuk memberikan sorotan pada baris yang sedang dijalankan. • Toggle BreakPoint, digunakan untuk menandai baris dimana proses eksekusi Pause dan masuk ke modus Step, fasilitas ini dapat digunakan programmer untuk memperkecil jangkauan pencarian kesalahan dengan modus Step karena tidak perlu melakukan Step dari awal, tetapi Step dilakukan mulai pada baris dimana sumber kesalahan dicurigai. • Clear Breakpoint, digunakan untuk menghapus semua Breakpoint. • On Error Goto label, digunakan untuk error handling, dimana jika terjadi kesalahan, maka proses program dialihkan ke label tertentu, dan jenis kesalahan dapat ditelusuri dari fungsi ERR yang akan mengembalikan nomor kesalahan, dan proses dapat diulangi dengan RESUME atau RESUME NEXT , dan anda dapat juga menggunakan On Error Resume Next untuk mengabaikan kesalahan. Fasilitas ini cocok untuk mengatasi Run Time Error, Contoh : ON ERROR GOTO Salah OPEN "A:Sumber.Dat" FOR INPUT AS #1 DO WHILE NOT EOF(1) LINE INPUT #1, Baris$ PRINT Baris$ LOOP END Salah: SELECT CASE ERR CASE 53 PRINT "File Sumber.Dat tidak ada" END CASE 71 PRINT "Drive tidak siap, [U]lang, [B]atal"; INPUT tanya$ IF tanya$ = "U" OR tanya$ = "u" THEN RESUME ELSE END END IF Indoprog 49
  • 50. Dasar Pemrograman Oleh : Hendra, ST. END SELECT END Catatan : Nomor Error dapat dilihat pada bagian Help Basic "Runtime Error Code" Indoprog 50