Thursday, October 18, 2012

Tipe, Nama, dan Nilai


Pada umumnya, program komputer bekerja dengan memanipulasi obyek (data) di dalam memori. Obyek yang akan diprogram bermacam-macam jenis atau tipenya, misalnya nilai numerik, karakter, string, dan rekaman (record). Suatu tipe menyatakan pola penyajian data dalam komputer. Tipe data dapat dikelompokkan menjadi atas dua macam : tipe dasar dan tipe bentukan. Tipe dasar adalah tipe yang dapat langsung dipakai, sedangkan tipe bentukan dibentuk dari tipe dasar atau dati tipe bentukan lain yang sudah dudefinisikan.
            Suatu tipe diacu dari namanya. Nilai-nilai yang dicakup oleh tipe tersebut dinyatakan di dalam ranah (domain) nilai. Operasi-operasi (beserta operatot) yang dapat dilakukan terhadap tipe tersebut juga didefinisikan.

3.1 Tipe Dasar
            Tipe dasar sudah dikenal dalam kehidupan sehari-hari. Kita hampir setiap hari berbicara tentang angka-angka dan karakter. Dalam dunia pemrograman, yang termasuk ke dalam tipe dasar adalah: bilangan logik, bilangan bulat, bilangan riil, dan karakter.

3.1.1 Bilangan Logika
Nama Tipe
Nama tipe bilangan logik adalah boolean (dari nama seorang matematikawan Inggris, George Boole).

Ranah Nilai
Bilangan logik hanya mengenal dua buah nilai: benar (true) atau salah (false). Istilah “bilangan” pada “bilangan logik” muncul karena kita dapat menyatakan “benar” dengan angka 1 dan “salah” dengan angka 0 (atau sebaliknya).

Tetapan
Karena ranah nilai tipe boolean hanya beranggotakan dua buah nilai, maka tetapan (constant) yang terdapar pada tipe ini adalah true dan false.
Operasi
Operasi-operasi yang dilakukan terhadap tipe boolean dikenal dengan operasi logika. Operasi logika menghasilkan nilai dalam ranah nilai tipe boolean (yaitu true atau false). Operator logika yang dapat digunakan untuk operasi logika adalah: not, and, or, dan xor.
Jika a dan b adalah peubah (variable) yang bertipe boolean, maka hasil operasi a dan b dengan operator boolean tersebut diberikan oleh tabel kebenaran berikut:

a
not a
true
false
false
true

A
B
a and b
a or b
a xor b
True
true
true
false
false
True
false
false
true
true
False
true
false
true
true
False
false
false
true
false
3.1.2 Bilangan Bulat
Tipe sudah dikenal dalam kehidupan sehari-hari. Bilangan bulat adalah bilangan yang tidak mengandung pecahan desimal, misalnya 34, 8, 1203, 0, -17, dan sebagainya.
Nama Tipe
Nama tipe bilangan bulat adalah integer.
Ranah Nilai
Dalam implementasi, tipe integer mempunyai rentang nilai yang terbatas. Pada kompilator Turbo Pascal misalnya, tipe integer dapat direpresentasikan ke dalam empat macam tipe, yaitu byte, shortint, word, integer, dan longint. Rentang nilai untuk kelima tipe tersebut adalah:
Tipe
Rentang nilai
Format
Byte
shortint
word
integer
longint
0 .. 255
-128 .. 127
0 .. 65535
-32768 .. 32767
-2147483648 .. 2147483647
Unsigned 8-bit
Signed 8-bit
Unsigned 16-bit
Signed 16-bit
Signed 32-bit

Tipe bilangan bulat adalah tipe yang memiliki keterurutan. Ini artinya, bila sebuah nilai bilangan bulat diketahui, nilai sebelumnya (predecessor) dan nilai sesudahnya (successor) dapat ditentukan. Contohnya, predecessor dari 8 adalah 7, sedangkan successor-nya adalah 9. Secara formal keterurutan itu didefinisikan sebagai berikut: jika a adalah peubah bertipe bilangan bulat, maka predecessor(a) = a-1, dan successor(a) = a+1.

Tetapan
Tetapan untuk nilai bertipe bilangan bulat harus ditulis tanpa mengandung titik desimal. Contoh tetapan bertipe bilangan bulat adalah:
            78        -14       7654    0          5          99991
Operasi
Operasi yang dilakukan terhadap bilangan bulat ada dua macam, yaitu operasi aritmatik dan operasi perbandingan. Operator yang digunakan pada masing-masing operasi disebut operator aritmetika dan operator perbandingan (atau operator relasional).
  1. Operasi Aritmetika
Operator aritmetika yang berlaku pada bilangan bulat adalah:
            +                      (tambah)
-                                              (kurang)
*                      (kali)
div                   (bagi)
mod                 (sisa hasil bagi)

            Contoh-contoh operasi aritmetika bilangan bulat:
                        3 + 10              (hasil: 13)
                        87 – 31            (hasil: 56)
                        5 * 10              (hasil: 50)
                        10 div 3           (hasil: 3)
                        10 mod 3         (hasil: 1)
                        20 div 5           (hasil: 4)
                        20 mod 5         (hasil: 0)
  1. Operasi Perbandingan
Operasi perbandingan terhadap bilangan bulat dengan salah satu operator relasional menghasilkan nilai boolean (true atau false). Operator perbandingan untuk bilangan bulat adalah:
            <                      (lebih kecil)
                                  (lebih kecil atau sama dengan)
            >                      (lebih besar)
                                  (lebih besar atau sama dengan)
            =                      (sama dengan)
                                  (tidak sama dengan)

Contoh operasi perbandingan:
                        3 < 8                (true)
                        74 > 101          (false)
                        9 ≤ 9                (true)
                        9 < 9                (false)
                        17 = 17            (true)
                        (24 div 3) ≠ 8  (false)

           
3.1.3 Bilangan Riil
Bilangan riil adalah bilangan yang mengandung pecahan desimal, misalnya 3.65, 0.0003, 29.0, 2.60240000E-6, .24, dan lain-lain. Ingatlah bahwa semua bilangan riil harus mengandung “.” (titik). Bilangan riil dapat juga dituliskan dengan notasi E yang artinya perpangkatan sepuluh. Misalnya pada contoh tetapan diatas, 2.60240000 x 10-6
Nama Tipe
Nama tipe bilangan bulat adalah real.
Ranah Nilai
Dalam implementasinya, tipe real mempunyai rentang nilai yang terbatas. Pada kompilator Turbo Pascal misalnya, tipe real dapat direpresentasikan ke dalam empat macam tipe, yaitu real, single, double, dan extended. Rentang nilai positif untuk keempat tipe tersebut adalah:

Tipe
Rentang nilai
Format
Real
single
double
extended
2.9 x 10-39     ..  1.7 x 1038
1.5 x 10-45     ..  3.4 x 1038
5.0 x 10-324   ..  1.7 x 10308
3.4 x 10-4932  ..  1.1 x 104932
6 byte
4 byte
8 byte
10 byte
           
Tetapan
Tetapan untuk nilai bertipe bilangan riil harus ditulis dengan tanda titik desimal. Contoh tetapan bertipe bilangan riil adalah:
            0.78     -14.2376          7.654000+E8              0.0       -5         99.0

Operasi
Operasi yang dilakukan terhadap bilangan riil ada dua macam, yaitu operasi aritmetika dan operasi perbandingan. Operator yang digunakan pada masing-masing operasi tersebut operator aritmetika dan operator perbandingan.

  1. Operasi Aritmetika
Operator aritmetika yang berlaku pada bilangan riil adalah:
            +                      (tambah)
-                                              (kurang)
*                      (kali)
/                       (bagi)

Contoh-contoh operasi aritmetika bilangan riil:
            6.4 + 5.7          (hasil: 12.1)
            8.0 – 2.8          (hasil: 5.2)
            10/3                 (hasil: 3.333…)
            10/2.5              (hasil: 4.0 → operasi bilangan campuran)
            7.2 * 0.5          (hasil: 3.6)

  1. Operasi Perbandingan
Operasi perbandingan terhadap bilangan riil dengan salah satu operator relasional menghasilkan nilai boolean (true atau false). Operator perbandingan untuk bilangan riil adalah:
            <                      (lebih kecil)
                                  (lebih kecil atau sama dengan)
            >                      (lebih besar)
                                  (lebih besar atau sama dengan)
                                  (tidak sama dengan)

Contoh operasi perbandingan:
                        0.003 < 0.3      (false)
                        8.0 ≥ 5             (true)
                        3.0 ≠ 3.5          (true)
           
3.1.4 Karakter
Yang termasuk ke dalam karakter adalah huruf-huruf alfabet, tanda baca, angka ‘0’, ‘1’,.., ‘9’, dan karakter khusus seperti ‘&’, ‘^’, ‘%’, ‘#’, ‘@’, dan sebagainya.

Nama Tipe
Nama tipe untuk karakter adalah char.

Ranah Nilai
Ranah karakter adalah semua huruf di dalam alfabet (‘a’ .. ‘z’, ‘A’ .. ‘Z’), angka desimal (0..9), tanda baca (‘.’, ‘:’, ‘!’, ‘?’, ‘,’, dan lain-lain), operator arimetik (‘+’, ‘-‘, ‘*’, ‘/’), dan karakter-karakter khusus seperti (‘$’, ‘#’, ‘@’, ‘^’, ‘~’, dan lain-lain). Daftar karakter baku yang lengkap dapat dilihat di dalam tabel ASCII.

Tetapan
Tetapan untuk data bertipe karakter harus diapit oleh tanda petik tunggal.
Contoh tetapan karakter:
            ‘h’        ‘Y’       ‘.’                   ‘p’        ‘+’       ‘9’        ‘0’        ‘$’
Ingatlah bahwa ‘9’ adalah karakter, tetapi 9 adalah integer!


Operasi
Satu-satunya operasi yang dilakukan terhadap tipe karakter adalah operasi perbandingan. Operator perbandingan yang berlaku untuk tipe karakter adalah:
                                  (tidak sama dengan)
            =                      (sama dengan)
            <                      (lebih kecil)
            >                      (lebih besar)
                                  (lebih besar atau sama dengan)
Contoh:
            ‘a’ = ‘a’                       {true)
            ‘T’ = ‘t’                       (false)
            ‘y’ ≠ ‘Y’                      (true)
            ‘m’ < ‘z’                      (true)
            ‘Q’ > ‘Z’                     (false

3.2 Tipe Bentukan
Tipe bentukan adalah tipe yang didefinisikan sendiri oleh pemrogram. Tipe bentukan disusun oleh satu atau lebih tipe dasar. Ada tiga macam tipe bentukan:
  1. string
  2. tipe dasar yang diberi nama dengan nama tipe baru,
  3. rekaman (record)


3.2.1 String
String adalah deretan karakter dengan panjang tertentu. Contoh-contoh string misalnya ‘Halo-halo Bandung’, ‘Halo, dunia’, ‘D12345B’, dan sebagainya. Karakter adalah string dengan panjang 1.

Nama Tipe
Nama tipe string adalah string.

Ranah Nilai
Ranah nilai untuk tipe string adalah deretan karakter yang telah didefinisikan pada ranah karakter.

Tetapan
Semua tetapan string harus diapit oleh tanda petik tunggal.
Contoh-contoh tetapan string:
            ‘BANDUNG’
            ‘ganesha’
            ‘ABCD765’
            ‘……………………………’
            ‘K7685302’






Operasi
Operasi terhadap data bertipe string ada dua macam:
a. Operasi Penyambungan (Concatenation)
Operator : +
Operator “+” di sini bukanlah operator penjumlahan seperti pada tipe numerik (integer atau real). Operator “+” berarti penyambungan. Bila a dan b adalah peubah bertipe string, maka a + b sama dengan ab.
Contoh:
            ‘Teknik’ + ‘INFORMATIKA’ = ‘TeknikINFORMATIKA’
            ‘Teknik’ + ‘ INFORMATIKA’ = ‘Teknik INFORMATIKA’
            ‘aaa’ + ‘    bbb’ + ‘cc’ = ‘aaa   bbbcc’
            ‘1’ + ‘2’ = ‘12’            (namun 1 + 2 = 3, mengapa?)

b. Operasi Perbandingan
Operator :
                      (tidak sama dengan)
=                      (sama dengan)
<                      (lebih kecil)
>                      (lebih besar)
                      (lebih besar atau sama dengan)
                                  (lebih kecil atau sama dengan)

Contoh:
            ‘abcd’ = ‘abc’              (false)
            ‘aku     < ‘AKU’         (true)

String yang disusun oleh gabungan numerik dan karakter sering dinamakan alfanumerik. Misalnya ‘K7685302’, ‘D5432AB’, dan sebagainya. Karena tipe string banyak dipakai dalam pemrograman, maka string dapat diperlakukan sebagai tipe dasar.

3.2.2 Tipe Dasar yang Diberi Nama Tipe Baru
Kita dapat memberi nama baru untuk tipe dasar dengan kata kunci type. Ranah nilai, cara menulis tetapan, dan operasi terhadap tipe baru tersebut tidak berubah, tetap sama dengan tipe dasar aslinya.
Contoh:
            type BilBulat   : integer

3.2.3 Rekaman
Rekaman disusun oleh satu atau lebih field (Gambar 4.1). Tiap field menyimpan data dari tipe dasar tertentu atau dari tipe bentukan lain yang sudah didefinisikan sebelumnya. Nama rekaman ditentukan oleh pemrogram. Karena strukturnya yang disusun oleh field-field, maka rekaman dinamakan juga tipe terstruktur (structured type).

field1
field2
field3
fieldN

Gambar 3.1 Gambaran Logik Rekaman dengan N Buah Field

Contoh-contoh yang ditunjukkan di bawah ini memperlihatkan bagaimana mendefinisikan tipe bentukan untuk rekaman.

Contoh 3.1
Didefinisikan tipe terstruktur yang mewakili tanggal dalam kalender Masehi. Hari dinyatakan sebagai tanggal (dd), bulan (mm), dan tahun (yy), misalnya 10-8:1999.
Misalkan tipe bentukan tersebut diberi nama TGL.

Dd
mm
yy

Cara menuliskan tipe Tanggal:
            type Tanggal   : record
                                               
    
: integer,          {1..31}
                                                   mm   : integer,          {1..12}
                                                   yy     : integer           { > 0 }
                                                >
            var D : Tanggal

Jika D adalah peubah bertipe Tanggal, maka cara mengacu tiap field.
            D.dd
            D.mm
            D.yy
Tipe Tanggal didefinisikan sebagai berikut:
            Nama tipe        : Tanggal
            Ranah nilai      : sesuai ranah masing-masing field
            Contoh tetapan: <12 1997="1997" 7="7">, <31 12="12" 1980="1980">, <29 1980="1980" 2="2">
            Operasi            : operasi aritmetik bilangan bulat terhadap tiap field
                                      operasi perbandingan terhadap masing-masing field
Contoh 3.2
Didefinisikan tipe terstruktur yang mewakili jam. Jam dinyatakan sebagai jam (hh), menit (mm), dan detik (ss), contohnya 12:45:10 (jam 12 lewat 45 menit lewat 10 detik). Misalkan tipe bentukan tersebut diberi nama JAM.

Hh
mm
ss

Cara menuliskan tipe JAM.
            type JAM        : record
                                                      : integer,          {0 .. 23}
                                                   mm   : integer,          {0 .. 59}
                                                   ss      : integer           {0 .. 59}
                                                >
            var J : JAM

Jika J adalah peubah bertipe JAM, maka cara mengacu tiap field.
            J.hh
            J.mm
            J.ss

Tipe JAM didefinisikan sebagai berikut:
            Nama tipe        : JAM
            Ranah nilai      : sesuai ranah masing-masing field
            Contoh tetapan: <12 10="10" 45="45">, <23 12="12" 19="19">, <9 17="17" 8="8">
            Operasi            : operasi aritmetik bilangan bulat terhadap tiap field
                                      operasi perbandingan terhadap masing-masing field

Contoh 3.3
NilMhs adalah nama tipe terstruktur yang menyatakan nilai ujian seorang mahasiswa untuk suatu mata kuliah (MK) yang ia ambil. Data setiap mahasiswa adalah NIM (Nomor Induk Mahasiswa), nama mahasiswa, mata kuliah yang di ambil, dan nilai mata kuliah tersebut.

NIM
NamaMhs
KodeMK
Nilai

Cara menuliskan tipe NilMhs:
            type NilMhs    : record
                                                < NIM             : integer,     {Nomor Induk Mahasiswa}
                                                NamaMhs        : integer,     {Nama Mahasiswa}
                                                KodeMK         : integer      {Kode Mata Kuliah}
                                                Nilai                : char      {indeks nilai MK (A/B/C/D/E)}
                                    >
            var M : NilMhs
Jika M adalah peubah bertipe NilMhs, maka cara mengacu tiap field.
            M.NIM
            M.NamaMhs
            M.KodeMK
            M.Nilai

Tipe NilMhs didefinisikan sebagai berikut:
            Nama tipe        : NilMhs
            Ranah nilai      : sesuai ranah masing-masing field
            Contoh tetapan: <13596001 ali="ali" mir="mir">
  <13596010 atna="atna">
            Operasi            : - operasi aritmetik bilangan bulat terhadap NIM
                                      - operasi string terhadap NamaMhs, KodeMK, Nilai

Contoh 3.4
Tipe terstruktur untuk jadwal kereta api. Jadwal keberangkatan kereta api terdiri atas informasi nomor kereta api (NoKA), kota asal (KotaAsal), kota tujuan (KotaTujuan), jam berangkat (JamBerangkat), dan jam tiba (JamTiba).

NoKA
KotaAsal
KotaTujuan
JamBerangkat
JamTiba

Cara menuliskan tipe JADWAL_KA:
            type JADWAL_KA   : record
                                                            < NoKA                      : string,                                                                                       KotaAsal                  : string,                                                                                       JamBerangkat          : JAM,
                                                               KotaTujuan              : string,
                                                               JamTiba                    : JAM    
                                                            >
            var JKA : JADWAL_KA

Jika JKA adalah peubah bertipe JADWAL_KA, maka cara mengacu tiap field.
            JKA.NoKA
            JKA.KotaAsal
            JKA.JamBerangkat.hh
            JKA.JamBerangkat.mm
            JKA.JamBerangkat.ss
JKA.KotaTujuan
            JKA.JamTiba.hh
            JKA.JamTiba.mm
            JKA.JamTiba.ss

Tipe JADWAL_KA didefinisikan sebagai berikut:
            Nama tipe        : JADWAL_KA
            Ranah nilai      : sesuai ranah masing-masing field
            Contoh tetapan: <‘KA01’, ‘Jakarta’, <17 0="0" 2="2">, ‘Semarang’, <05 0="0" 54="54">
                                      <‘KA24’, ‘Bandung’, <9 40="40">, ‘Solo’, <14 10="10" 50="50"> >
            Operasi            : sesuai untuk masing-masing tipe field.

Contoh 3.5
Contoh berikut menyajikan struktur bentukan yang cukup kompleks. Misalkan kita ingin menyimpan data nilai-nilai mata kuliah yang diambil setiap mahasiswa. Data yang disimpan di dalam struktur rekaman adalah sebagai berikut:
  1. NIM (Nomor Induk Mahasiswa)
  2. NamaMhs (nama mahasiswa)
  3. Mata kuliah yang diambil mahasiswa tersebut, yang terdiri atas:
Kode mata kuliah
Nama mata kuliah
Nilai mata kuliah

Cara menuliskan tipe MataKuliah:
            type MataKuliah         : record
                                                            < KodeMK                 : string,                                                                                       NamaMK                 : string,                        `                                                              Nilai                         : char
                                                            >

            type NilMhs    : record
                                                < NIM             : integer,                                                                                                 NamaMhs        : string,                        `                                                                          MK               : MataKuliah
                                                >

            var MKuliah : MataKuliah
                  Nil   : NilMhs

Jika MKuliah adalah peubah bertipe MataKuliah, Nil adalah peubah bertipe NilMhs, maka cara mengacu tiap field.
            MKuliah.KodeMK
            MKuliah.NamaMK
            MKuliah.Nilai
            Nil.NIM
            Nil.NamaMhs
Nil.MKuliah.MK









































1.      Runtunan
Algoritma merupakan runtunan (sequence) satu atau lebih instruksi, yang berarti bahwa :
  1. Tiap instruksi dikerjakan satu per satu;
  2. Tiap instruksi dilaksanakan tepat sekali; tidak ada instruksi yang diulang;
  3. Urutan instruksi yang dilaksanakan pemroses sama dengan urutan aksi sebagaimana yang tertulis di dalam teks algoritmanya;
  4. Akhir dari instruksi terakhir merupakan akhir algoritma.

Bila runtunan instruksi dalam algoritma berturut-turut dilambangkan dengan A1, A2, A3, A4, dan A5, maka urutan pelaksanaan instruksi tersebuta adalah seperti diagram di bawah ini :

A1
¯
A2
¯
A3
¯
A4
¯
A5
http://goo.gl/BGVrJP

MY Motto

My photo
giving amenity to all visitor.

Total Pageviews