Entri Populer

Sabtu, 19 Februari 2011

RECORD DAN ARRAY

ARRAY

Pengertian
           Suatu array adalah sebuah struktur data yang terdiri atas banyak variabel dengan tipe data sama, dimana masing-masing elemen variabel mempunyai nilai indeks. Setiap elemen array mampu untuk menyimpan satu jenis data (yaitu: variabel).
 
Cara Pendefinisian
            • contoh type
                                A = array [1..6] of integer;
            • Secara logika pendefinisian array di atas merupakan sekumpulan kotak , dimana tiap kotak mempunyai nilai indeks integer 1, 2, 3, ...,6 tiap elemen array ditandai dengan: A[1], A[2], A[3], A[4], A[5], A[6] untuk mengisi elemen array misal A[1]:=4;. 6 5 4 3 2 1

Sifat Array
          Array merupakan struktur data yang statis, yaitujumlah elemen yang ada harus ditentukanterlebih dahulu dan tak bisa di ubah saat program berjalan. Untuk menyatakan array dalam PASCAL kita harus terlebih dahulu: Mendefinisikan jumlah elemen array
Contoh. const N=10;
              type
              A= array [1..N] of integer;


Array Satu Dimensi
           Pendefinisian array secara umum adalah sebagai berikut: jika kita ingin membuat beberapa array dengan tipe/jenis yang sama, kita lebih baik jika mendeklarasikan dengan type selanjutnya dengan deklarasi var.

                   Sintax array 1 dimensi
                   • Type nama_array = ARRAY[bawah..atas]
                     of tipe_data;
                     var variabel_array : nama_array; atau

                  • var variabel_array : ARRAY[bawah..atas]
                    of tipe_data;

Contoh Program Array 1 dimensi
                  program INT_ARRAY;
                  uses wincrt;
                  const N=10;
                  type int_array = ARRAY [1..N] of integer;
                  var bil : int_array;
                  indeks : integer;
                  BEGIN
                  writeln('masukkan sepuluh bilangan integer.');
                  for indeks := 1 to 10 do
                  begin
                  readln(bil[indeks]); { loop untuk memasukkan elemen
                  array }
                  end;
                   writeln('Isi dari array ini adalah'); { tampilkan setiap
                  elemen }
                  for indeks := 1 to 10 do
                  begin
                  writeln('bil[', indeks:2,'] adalah ',bil[indeks] );
                  end
                  END.

Array Multidimensi
          • Dalam array multidimensi terdiri atas baris (row) dan kolom (column). Index pertama adalah baris dan yang  kedua adalah kolom

   Syntax
   • Type nama_array =ARRAY[bawah..atas, bawah..atas] of tipe_data; var variabel_array : nama_array;atau
   • SYNTAX var variabel_array : ARRAY[bawah..atas, bawah..atas] of tipe_data;
   • Pernyataan berikut membentuk suatu array integer dengan nama bilangan , 10 x 10 elemen (100). type
     matriks = ARRAY [1..10, 1..10] of integer; var AKU: matriks;


Contoh Program
                 Procedure ISI_MATRIK(AKU:matriks; m,n:integer);
                 var i,j: integer; {faktor pengulang}
                 begin
                 for i:=1 to m do
                 begin
                 for j:=1 to n do
                 begin
                 gotoxy(x+2i.y+2y);
                read(A[i,j]);
                end;
                readln ;{ini memungkinkan kita menulis tiap baris elemen}
                end;

Record

• Sebuah record rekaman disusun oleh beberapa field. Tiap field berisi data dari tipe dasar / bentukan tertentu. Record mempunyai kelebihan untuk menyimpan suatu sekumpulan elemen data yang berbeda-beda tipenya (di banding array). Contoh , sebuah record dengan empat buah field

Cara Pendefinisian
        • Cara pendeklarasian dari record adalah sbb:
        • Mendefinisikan tipe dari record (jumlah field, jenis tipe data yang dipakai),
        • Mendefinisikan variabel untuk dilakukan operasi. field4 field3 field2 field1

 Sintax
       type
       nama_record = record
       identifier_1 : tipe_data_1;
       :
       :
       identifier_n : tipe_data_n;
       end;
       var variabel : nama_record;

Contoh
       type
       Data_mahasiswa = record
       Nama : string;
       Usia : integer;
       Kota : String;
       Kodepos : integer;
       end;
       Var
       x: Data_mahasiswa;

Pengaksesan Elemen Record
      x.Nama
      x.Usia
      x.Kota
      x.Kodepos

Contoh Program
    program RECORD_INTRO;
    type tanggal = record
    bulan, hari, tahun : integer;
    end;
    var waktu : tanggal;
    begin
    waktu.hari :=25;
    waktu.bulan:=09;
    waktu.tahun:= 1983;
    writeln('hari ini adalah
    ',waktu.hari,':',waktu.bulan,':', waktu.tahun)
    end.

Pengunaan With … do

          Pernyataan with untuk lebih menyederhanakan pengaksesan field-field pada record. Pemrograman dapat mengakses field cukup dengan menyebutkan nama field-nya saja.
• x.Nama
  x.Usia
  x.Kota
  x.Kodepos diganti
• with x do
  Begin
  Nama
  Usia
  Kota
  Kodepos
  end

Contoh
          program RECORD_INTRO;
          type tanggal = record
          bulan, hari, tahun : integer;
          end;
          var waktu : tanggal;
          begin {program utama}
          with waktu do {mulai with}
          begin
          hari :=25;
          bulan:=09;
          tahun:=1983;
          writeln('hari ini adalah ',hari,':',bulan,':', tahun)
          end {akhir with}
          end.

Array dari Record
           

           type tanggal = record
           bulan, hari, tahun : integer;
           end;
           var birthdays : array[1..10] of tanggal;

Selasa, 15 Februari 2011

STRUKTUR & ORGANISASI DATA 2*

       TYPE DATA    


                 Program Bahasa C tidak mengenal aturan penulisan di kolom tertentu, jadi bisa dimulai dari
kolom manapun. Namun demikian, untuk mempermudah pembacaan program dan untuk
keperluan dokumentasi, sebaiknya penulisan bahasa C diatur sedemikian rupa sehingga mudah
dan enak dibaca.

Tampilan dari editor bahasa C dengan menggunakan Turbo C
Tipe Data
Tipe data merupakan bagian program yang paling penting karena tipe data mempengaruhi
setiap instruksi yang akan dilaksanakan oleh computer. Misalnya saja 5 dibagi 2 bisa saja
menghasilkan hasil yang berbeda tergantung tipe datanya.
Jika 5 dan 2 bertipe integer maka akan menghasilkan nilai 2, namun jika keduanya bertipe float maka akan menghasilkan nilai 2.5000000. Pemilihan tipe data yang tepat akan membuat proses operasi data menjadi lebih efisien dan efektif.
Dalam bahasa C terdapat lima tipe data dasar, yaitu :
No
Tipe Data
Ukuran
Range (Jangkauan)
Format
Keterangan
1
char
1 byte
128 s/d 127
%c
Karakter/string
2
int
2 byte
32768 s/d 32767
%i , %d
Integer/bilangan bulat
3
float
4 byte
3.4E-38 s/d 3.4E+38
%f
Float/pecahan
4
double
8 byte
1.7E-308 s/d 1.7+308
%lf
Pecahan presisi ganda
5
void
0 byte
-
-
Tidak bertipe


Konstanta
Konstanta merupakan suatu nilai yang tidak dapat diubah selama proses program berlangsung.
Konstanta nilainya selalu tetap. Konstanta harus didefinisikan terlebih dahulu di awal program.
Konstanta dapat bernilai integer, pecahan, karakter dan string. Contoh konstanta : 50; 13; 3.14;
4.50005; ‘A’; ‘Bahasa C’. Selain itu, bahasa C juga menyediakan beberapa karakter khusus yang
disebut karakter escape, antara lain :
\a : untuk bunyi bell (alert)
\b : mundur satu spasi (backspace)
\f : ganti halaman (form feed)
\n : ganti baris baru (new line)
\r : ke kolom pertama, baris yang sama (carriage return)
\v : tabulasi vertical
\0 : nilai kosong (null)
\’ : karakter petik tunggal
\” : karakter petik ganda
\\ : karakter garis miring
Variable
Variabel adalah suatu pengenal (identifier) yang digunakan untuk mewakili suatu nilai tertentu
di dalam proses program. Berbeda dengan konstanta yang nilainya selalu tetap, nilai dari suatu
variable bisa diubah-ubah sesuai kebutuhan. Nama dari suatu variable dapat ditentukan sendiri
oleh pemrogram dengan aturan sebagai berikut :
1. Terdiri dari gabungan huruf dan angka dengan karakter pertama harus berupa huruf.
2. Bahasa C bersifat case-sensitive artinya huruf besar dan kecil dianggap berbeda. Jadi antara Metal, dengan metal itu berbeda.
3. Tidak boleh mengandung spasi.
4. Tidak boleh mengandung symbol-simbol khusus, kecuali garis bawah (underscore), seperti : $, ?, %, #, !, &, *, (, ), -, +, dsb.
5. Panjangnya bebas, tetapi hanya 32 karakter pertama yang terpakai.
Contoh penamaan yang salah : NIM, a, x, nama_mhs, f3098, f4, nilai, budi, dsb.
Contoh penamaan variable yang salah : nilai_mahasiswa, 80%mahasiswa, rata-rata, ada spasi, penting!, dsb.
Deklarasi Variable
Deklarasi diperlukan bila kita akan menggunakan pengenal (identifier) dalam program.
Identifier dapat berupa variable, konstanta dan fungsi.
Bentuk umum pendeklarasian suatu variable adalah :
Nama_tipe nama_variabel;
Contoh :
int x;
char y, huruf, nim[10];
float nilai;
double beta;
int array[5][4];

Tipe data yang dikenal dalam bahasa pascal antara lain :

·      Tipe data sederhana / Jenis data yang standar (Dasar)
1.         Integer
2.         Real
3.         Karakter
4.         Boolean

·         Tipe data non standar (user defined)
1.      Enumerated
2.      Sub-range

·         Tipe data berstuktur
1.            Array
2.            Record
3.            Set
4.            File

·         Jenis data Pointer

INTEGER


Jenis data ini merupakan nilai bilangan bulat, yang  terdiri atas integer positif, integer negatif dan nol. Pada TURBO PASCAL jenis data ini di bagi atas beberapa bagian.  (lihat tabel 1)

Tabel 1. Jenis data integer
Tipe
Ukuran memori
(dalam byte)
Jangkauan nilai
BYTE
1
0..255
SHORTINT
1
-128..127
INTEGER
2
-32768..32767
WORD
2
0..65535
LONGINT
4
-2147483648..2147483647

Operator Integer terdiri atas :  + , - , * , DIV dan MOD

Var
                 Jumlah : byte;
Begin
               Jumlah := 200;
                WriteLn(‘Nilai JUMLAH = ‘,Jumlah);
End.
Hasilnya bila dijalankan :

          Nilai JUMLAH = 200


REAL


Penulisan untuk jenis data ini selalu menggunakan titik desimal. Nilai konstanta numerik real berkisar dari 1E-38 sampai dengan 1E+38 dengan mantissa yang signifikan sampai dengan 11 digit. E menunjukkan nilai 10 pangkat. Nilai konstanta numerik real menempati memori sebesar 6 byte.

Contoh :
123.45
12345.  ® salah, titik desimal tidak boleh dibelakang
12E5
12E+5
-12.34
.1234  ® salah, titik desimal tidak boleh dimuka

 Pada TURBO PASCAL, jenis data ini dibedakan ( lihat tabel 2.)


Tabel 2. Jenis data Real

Tipe
Ukuran memori
(dalam byte)
Jangkauan nilai
Digit signifikan
SINGLE
4
1.5x10E-45 .. 3.4x10E38
7-8
DOUBLE
8
5.0x10E-324 .. 1.7x10E308
15-16
EXTENDED
10
1.9x10E-4951 .. 1.1x10E4932
19-20
COMP
8
-2E+63+1 .. 2E+63-1
19-20

Operator untuk jenis data ini terdiri atas : + , - , * dan /

KARAKTER


Yang dimaksud dengan jenis data ini adalah karakter tunggal atau sebuah karakter yang ditulis diantara tanda petik tunggal, seperti misalnya ‘A’, ’a’, ’!’, ’5’ dsb.

Dasarnya adalah ASCII CHARACTER SET.

Misalnya : 032 pada tabel ASCII CHARACTER SET menunjukkan karakter.

                   Blank.
          033                        !
          048                         0
076                         L
          dst

STRING


Nilai data string merupakan urut-urutan dari karakter yang terletak di antara tanda petik tunggal. Nilai data string akan menenpati memori sebesar banyaknya karakter stringnya ditambah dengan 1 byte. Bila panjang dari suatu string di dalam deklarasi variabel tidak disebutkan, maka dianggap panjangnya adalah 255 karakter.

Contoh :
Var
          Kampus : string[10];
Begin
          Kampus := ‘Gunadarma’;
Write(Kampus);
End.


 

BOOLEAN


Jenis data ini mempunyai nilai TRUE atau FALSE.

Operator untuk jenis data ini adalah :
1.      Logical Operator, yaitu : NOT, AND dan OR
2.      Relational Operator, yaitu : >, <, >=, <=, <> dan =


JENIS DATA NON-STANDARD (USER DEFINED)

ENUMERATED.
Jenis data ini terdiri atas barisan identifier yang terurut dimana setiap identifier tersebut dianggap sebagai suatu individual data item (elemen data yang berdiri sendiri).

Pada saat mendeklarasikan jenis data ini kita harus menuliskan semua elemen-elemennya.

Bentuk umum deklarasinya adalah :

TYPE nama = (data_item_1, data_item_2, ……., data_item_n);

Contoh :

TYPE hari = (sen,sel,rab,kam,jum,sab,ming);

TYPE warna = (red,blue,green,yellow,black,white);

Setelah jenis data ini dideklarasikan, maka selanjutnya kita dapat mendeklarasikan suatu variabel yang berjenis data sama dengan jenis data ini.

Misalnya :
              TYPE nama_hari = (sen,sel,rab,kam,jum,sab,ming);
              VAR libur : nama_hari;

Fungsi standar yang dapat digunakan pada jenis data ini adalah :

PRED, SUCC dan ORD

Misalnya :

     PRED (sel) = sen
     SUCC (sen) = sel
     ORD (sen) = 0
     ORD (sel) = 1

      dsb

SUB-RANGE.

Jenis data ini berupa range dari suatu kumpulan data yang mempunyai urutan..

Bentuk umum deklarasinya adalah :

     TYPE nama = data_item_pertama .. data_item_terakhir;

Contoh :
           
          TYPE jam_kuliah = 1 .. 10;
tanggal = 1 .. 31;
abjad = ‘A’ .. ‘Z’;

          TYPE bulan = (jan,feb,mar,apr,mei,jun,jul,agt,sep,okt,nov,des);
hari = (sen,sel,rab,kam,jum,sab,ming);
ata = agt .. jan;
pta = feb .. jun;
hari_kerja = sen .. jum;

 

TANDA OPERASI



Tanda operasi (operator) di dalam bahasa Pascal dikelompokkan ke dalam 9 kategori,

1.      Assignment operator.
2.      Binary operator.
3.      Unary operator.
4.      Bitwise operator.
5.      Relational operator.
6.      Logical operator.
7.      Address operator.
8.      Set operator.
9.      String operator.

Assignment operator
Assignment operator (operator pengerjaan) menggunakan simbol titik dua diikuti oleh tanda sama dengan (:=).

Contoh :
                   A:=B;

Binary operator
          Digunakan untuk mengoperasikan dua buah operand. Operand dapat berbentuk konstanta ataupun variabel. Operator ini digunakan untuk operasi aritmatika yang berhubungan dengan nilai tipe data integer dan real.

Operator

Operasi
Tipe operand
Tipe hasil
*
Perkalian
real,real
integer,integer
real,integer
real
integer
real
DIV
Pembagian bulat
integer,integer
integer
/
Pembagian real
real,real
integer,integer
real,integer
real
real
real
MOD
Sisa pembagian
integer,integer
integer
+
Pertambahan
real,real
integer,integer
real,integer
real
integer
real
-
pengurangan
real,real
integer,integer
real,real
real
integer
real

Contoh :
                   15*5             hasilnya         75
                   20/3             hasilnya         6.6666666667E+00
                   20 div 3         hasilnya         6
                   20 mod 3      hasilnya         2

Unary operator

Operator ini hanya menggunakan sebuah operand saja. Dapat berupa unary minus dan unary plus. Unary minus digunakan untuk menunjukkan nilai negatif, baik pada operang numerik real maupun integer. Unaru plus adalah operator untuk memberai tanda plus.

Contoh :
                   -5       +7
                   -2.5    +2.5

Bitwise operator

Digunakan untuk operasi bit per bit pada nilai integer. Terdiri dari operator NOT, AND, OR, XOR, Shl, Shr.

Relational operator

          Relational operator digunakan untuk  membandingkan hubungan antara dua buah operand dan akan didapatkan hasil tipe boolean, yaitu True atau False. Terdiri dari operator : =, <, >, <=, >=, <>


Logical operator

          Terdapat 4 buah logical operator yaitu : NOT, AND, OR dan XOR. Operator ini bekerja dengan nilai-nilai logika, yaitu True dan False.

Set operator

          Digunakan untuk operasi himpunan.

String operator

          Digunakan untuk operasi string. Hanya ada sebuah operator string saja, yaitu operator + yang digunakan untuk menggabungkan dua buah nilai string.

Contoh : 
                   Nama1 := ‘Arief ‘;
                   Nama2 := ‘Kurniawan’;
                   Nama3 := Nama1 + Nama2;




 STRUKTUR DATA

Dalam istilah ilmu komputer, sebuah struktur data adalah cara penyimpanan, penyusunan dan pengaturan data di dalam media penyimpanan komputer sehingga data tersebut dapat digunakan secara efisien.
Dalam teknik pemrograman, struktur data berarti tata letak data yang berisi kolom-kolom data, baik itu kolom yang tampak oleh pengguna (user) atau pun kolom yang hanya digunakan untuk keperluan pemrograman yang tidak tampak oleh pengguna. Setiap baris dari kumpulan kolom-kolom tersebut dinamakan catatan (record). Lebar kolom untuk data dapat berubah dan bervariasi. Ada kolom yang lebarnya berubah secara dinamis sesuai masukan dari pengguna, dan juga ada kolom yang lebarnya tetap. Dengan sifatnya ini, sebuah struktur data dapat diterapkan untuk pengolahan database (misalnya untuk keperluan data keuangan) atau untuk pengolah kata (word processor) yang kolomnya berubah secara dinamis. Contoh struktur data dapat dilihat pada berkas-berkas lembar-sebar (spreadsheet), pangkal-data (database), pengolahan kata, citra yang dipampat (dikompres), juga pemampatan berkas dengan teknik tertentu yang memanfaatkan struktur data.
RECORD
Record (basis data) merupakan kumpulan dari elemen-elemen data yang terkait dalam sebuah basis data. Secara ringkas, database dapat dikatakan sebagai sebuah tabe yang memiliki baris alias record dan kolom atau field. Setiap baris menyatakan elemen-elemen data yang saling berkaitan. Sebagai contoh dalam suatu tabel memiliki kolom nama, alamat, tanggal lahir, pekerjaan. Maka satu record adalah data sau orang yang terdiri atas nama, alamat, tanggal lahir dan pekerjaan.
LARIK
Larik (Bahasa Inggris: array), dalam ilmu komputer, adalah suatu tipe data terstruktur yang dapat menyimpan banyak data dengan suatu nama yang sama dan menempati tempat di memori yang berurutan (kontigu) serta bertipe data sama pula.
Larik dapat diakses berdasarkan indeksnya. Indeks larik umumnya dimulai dari 0 dan ada pula yang dimulai dari angka bukan 0. Pengaksesan larik biasanya dibuat dengan menggunakan perulangan (looping).
            * LARIK SATU DIMENSI
            Larik satu dimensi merupakan jenis larik dasar dan jenis larik yang paling sering digunakan, pemakaian larik satu dimensi terutama dipakai dalam tipe data string (terutama dalam bahasa Bahasa pemrograman C).


·         LARIK DUA DIMENSI
Larik dua dimensi merupakan tipe larik yang lain. Larik dua dimensi sering
dipakai untuk merepresentasikan tabel dan matriks dalam pemrograman.

·        Larik dalam beberapa bahasa pemrograman

Bahasa Pascal

Larik dalam bahasa Pascal dapat didefinisikan dengan indeks awal dan indeks akhirnya.
Contoh:
program larik;
var arr: array[1..10] of integer;  //larik dengan indeks awal 1 dan indeks akhir 10
begin
  arr[1] := 5; //memasukkan nilai ke indeks 1
  writeln(arr[i]); //mencetak angka 5
end.
Larik dalam bahasa C selalu dimulai dari indeks 0. Larik dapat didefinisikan secara statik atau dinamik. Jika didefinisikan statik, ukuran larik akan tetap dari awal program hingga akhir program. Jika didefinisikan dinamik, ukuran larik dapat berubah selama program berjalan karena memesan tempat pada memori heap. Proses pemesanan tempat pada memori disebut dengan alokasi. Sedangkan proses pembebasan memori yang sudah dipesan disebut dengan dealokasi.
Contoh larik statik:
#include <stdio.h>
int main(){
  int arr[10]; //indeks awal 0 dan indeks akhir 9
  arr[0] = 5;
  printf("%d\n", arr[0]);
}
Contoh larik dinamik:
#include <malloc.h>
int main(){
  int * arr;
  arr = (int *) malloc(10 * sizeof(int)); //memesan 10 tempat pada memori
  arr[0] = 5;
  free(arr);                              //menghancurkan larik. Memori pada heap dibebaskan
  arr = (int *) malloc(5 * sizeof(int));  //memesan 5 tempat baru pada memori
  free(arr);                              //di akhir program jangan lupa untuk menghancurkan larik dinamik
}
Dalam bahasa Java tipe data larik direpresentasikan sebagai sebuah objek khusus. Karena itu pada bahasa Java larik yang dibuat selalu bersifat dinamik. Namun walaupun bersifat dinamik, larik pada bahasa Java tidak perlu dihancurkan karena proes penghancuran dilakukan secara otomatis melalui suatu prosedur yang disebut dengan Pengumpulan sampah (Inggris: Garbage Collecting).
Sama seperti bahasa C, indeks larik selalu dimulai dari 0.
Contoh:
public class larik {  
  public static void main(String args[]) {
    int[] arr = new arr[10];
    arr[0] = 5;
    System.out.println(arr[0]); 
  }  
  }
Sama seperti di JAVA larik di PHP juga merupakan sebuah object lebih tepatnya lagi map terorder. Ada dua tipe larik di PHP, indexed array (simple array) dan associated array (key=>value array). Di PHP, element larik bisa berupa string, Bilangan, boolean, dan semua tipe data primitive lainnya, termasuk larik juga bisa menjadi element larik lainnya.
Cara medefinisikan larik:
#mendefinisikan array kosong 
$larik = array();
Contoh indexed array (simple array):
$jam = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);
$hari = array('senin', 'selasa', 'selasa', 'rabu', 'kamis', 'jumat', 'sabtu');
Contoh associated array:
$bulan = array('1'=>'January', '2'=>'February', '3'=>'Maret', '4'=>'April');
 
$komponenKalender = array(
  'bulan'=> array(1, 2, 3, 4, 5, 6, 7, 8, 9 ,10 , 11, 12),
  'hari' => array('senin', 'selasa', 'selasa', 'rabu', 'kamis', 'jumat', 'sabtu')
);