Anda di halaman 1dari 13

Tugas Dasar Pemrograman Kelas C ARRAY and RECORD

Dosen pengampu: Ika Atsari Dewi

Oleh kelompok 3:
Hardi Susanto Arika Hasanah Cleverina Yulie P Atik Malikhatin Amalia Haris K M Samsul Hadi Lindah Rahayu W Diana Candra M (115100300111037) (115100301111009) (115100301111023) (115100301111025) (115100301111027) (115100301111035) (115100301111039) (115100301111041)

Jurusan Teknologi Industri Pertanian Fakultas Teknologi Industri Pertanian Universitas Brawijaya Malang 2012

Hardi Susanto (115100300111037)

M Samsul Hadi (115100301111035)

Atik Malikhatin (115100301111025)

Arika Hasanah (115100301111009)

Amalia Haris K (115100301111027)

Cleverina Yulie P (115100301111023)

Diana Candra M (115100301111041)

Lindah Rahayu W (115100301111039)

BAB I PENDAHULUAN
1.1. Latar Belakang Program merupakan sekumpulan instruksi yang merupakan penyelesaian masalah. Program dimasukkan ke dalam komputer, kpomputer mngerjakan instruksi-instruksi didalam program tersebut lalu memberikan hasil atau keluaran yang diinginkan. Agar program dapat dilaksanakan oleh komputer, program tersebut harus ditulis dalam suatu bahasa yang dimengerti oleh komputer karena komputer adalah mesin maka program harus ditulis dalam bahasa yang khusus dibuat untuk berkomunikasi dengan komputer. Bahasa komputer yang digunakan dalam menulis program dinamakan bahasa pemrograman. Jadi bahasa pemrograman yaitu kumpulan perintah-perintah bermakna, berstruktur tertentu (syntax) yang dapat dimengerti komputer yang berguna didalam penyelesaian masalah. Pascal merupakan salah satu bahasa pemrograman tingkat tinggi. Pemrograman tingkat tinggi menandakan bahwa Pascal banyak menggunakan bahasa manusia dalam penulisan sintaksnya. Dalam bahasa Pascal, secara garis besar dikenal dua macam tipe data yaitu tipe data sederhana (primitive type) dan tipe data kompleks (complex type). Contoh tipe data sederhana adalah tipe numerik (integer dan real), tipe data karakter, tipe data boolean dan tipe data enumerasi. Contoh tipe data kompleks adalah string, array (larik), record dan object. Tipe data sederhana adalah tipe data yang hanya mampu menyimpan satu nilai tiap satu variabelnya. Sebaliknya tipe data kompleks adalah tipe data yang mampu menyimpan lebih dari satu nilai dalam tiap satu variabelnya. Dalam makalah ini akan dibahas mengenai Array dan Record. Array merupakan koleksi (kumpulan) sejumlah objek (variabel) yang memiliki indeks dan memiliki tipe data yang sama. Sedangkan record adalah Record merupakan salah satu tipe data terstruktur yang terdiri atas sekumpulan variabel data. Record memungkinkan untuk memanipulasi sekumpulan elemen data dengan tipe yang tidak sama, yang seolah-olah merupakan satu obyek. 1.2. Tujuan Penulisan makalah mengenai Array and Record bertujuan untuk: - Memperdalam pengetahuan tentang array dan record - Mengetahui kegunaan array dan record

BAB II PEMBAHASAN
2.1 Array Definisi Array Array adalah variable yang dapat menyimpan sejumlah nilai skala. Array adalah suatu tipe data terstuktur yang berupa sejumlah data sejenis (bertipe data sama) yang jumlahnya tetap dan diberi suatu nama tertentu. Elemen-elemen array tersusun secara sekuensial di dalam memori sehingga memiliki alamat yang berdekatan. Array dapat berupa array 1 dimensi, 2 dimensi, bahkan n-dimensi. Elemenelemen array bertipe data sama tapi bisa bernilai sama atau berbedabeda.

Cara Pengaksesan Elemen Array Elemen-elemen array dapat diakses oleh program menggunakan suatu indeks tertentu. Pengaksesan elemen array dapat dilakukan berurutan atau random berdasarkan indeks tertentu secara langsung. Pengisian dan pengambilan nilai pada indeks tertentu dapat dilakukan dengan mengeset nilai atau menampilkan nilai pada indeks yang dimaksud. Dalam C, tidak terdapat error handling terhadap batasan nilai indeks, apakah indeks tersebut berada di dalam indeks array yang sudah didefinisikan atau belum. Hal ini merupakan tanggung jawab programmer. Sehingga jika programmer mengakses indeks yang salah, maka nilai yang dihasilkan akan berbeda atau rusak karena mengakses alamat memori yang tidak sesuai. Array merupakan struktur data yang statis, yaitu jumlah elemen yang ada harus ditentukan terlebih dahulu dan tak bisa di ubah saat program berjalan. Untuk menyatakan array dalam PASCAL kita harus terlebih dahulu: Mendefinisikan jumlah elemen array (Hartono, 2003) Contoh. const N=10; Type A= array [1..N] of integer; Deklarasi Array 1 Dimensi tipe_data nama_var_array[ukuran];

tipe_data : menyatakan jenis tipe data elemen larik (int, char, float, dll) nama_var_array : menyatakan nama variabel yang dipakai. ukuran : menunjukkan jumlah maksimal elemen larik.

char huruf[9]: berarti akan memesan tempat di memori komputer sebanyak 9 tempat dengan indeks dari 0-8, dimana semua elemennya bertipe data karakter semuanya. Kalau satu karakter berukuran 1 byte, berarti membutuhkan memori sebesar 9 byte. int umur[10]: berarti akan memesan tempat di memori komputer sebanyak 10 tempat dengan indeks dari 0-9, dimana semua elemennya bertipe data integer semuanya. Kalau satu integer berukuran 4 bytes, berarti membutuhkan memori sebesar 4 x 10 = 20 bytes. int kondisi[2]: berarti akan memesan tempat di memori komputer sebanyak 2 tempat dengan indeks 0-1, dimana semua elemennya bertipe data integer semuanya. Dan pada contoh di atas isi elemen-elemennya yang sebanyak 2 buah diisi sekaligus (diinisialisasi) yaitu pada elemen kondisi[0] bernilai 0, dan elemen kondisi[1] bernilai 1. int arr_dinamis[]:berarti mendeklarasikan array dengan ukuran maksimum array tidak diketahui, namun ukuran tersebut diketahui berdasarkan inisialisasi yaitu sebanyak 3 elemen, yang isinya 1,2, dan 3. Kita tidak dapat mendeklarasikan array dinamis tanpa inisialisasi. Penjelasan Array 1 Dimensi Tanda [] disebut juga elemen yang ke- . Misalnya kondisi[0] berarti elemen yang ke nol. Array yang sudah dipesan, misalnya 10 tempat tidak harus diisi semuanya, bisa saja hanya diisi 5 elemen saja, baik secara berurutan maupun tidak. Namun pada kondisi yang tidak sepenuhnya terisi tersebut, tempat pemesanan di memori tetap sebanyak 10 tempat, jadi tempat yang tidak terisi tetap akan terpesan dan dibiarkan kosong. Contoh 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.

2.2 Record Record merupakan koleksi satuan data yang heterogen, yakni terdiri dari berbagai type. Satuan data tersebut sering disebut sebagai field dari record. Sebuah record rekaman disusun oleh beberapa field. Tiap field berisi data dari tipe dasar atau bentukan tertentu. Record mempunyai kelebihan untuk menyimpan suatu sekumpulan elemen data yang berbeda-beda tipenya (di banding array). Seperti telah paparkan terdahulu, array berbeda dengan record, yakni array bersifat homogen (terdiri dari tipe data yang sama), dan komponen array tidak memiliki nama sendiri, dan hanya diberi identifikasi oleh posisi mereka di dalam array. Penggunaan keduanya di dalam program juga berbeda, jika penggunaan array pada umumnya akan disimpan di memori utama komputer (bersifat sementara), sedangkan record biasanya digunakan dalam filing yang akan disimpan di memori sekunder komputer, seperti hard disk, disket, dan lainnya. Sebuah record memberi informasi tentang berbagai kondisi dari obyek pada permasalahan yang nyata sehari-hari. Setiap field memberi uraian tentang satu atribut dari obyeknya. Sebuah record biasanya diberi identifikasi oleh key-nya. Key atau kunci adalah salah satu atau lebih field yang dipilih untuk tujuan penyampaian informasi yang terjadi di dalam record yang bersangkutan. Contoh , sebuah record dengan empat buah field:

Field 1

Field 2

Field 3

Field 4

Cara Mendeklarasikan Record Bentuk umum deklarasi suatu variabel berjenis record adalah sebagai berikut : TYPE identifier = RECORD Nama_field_1 : jenis; Nama_field_2 : jenis; .. .. nama_field_n : jenis; END; Contoh : 1. VAR nilai : RECORD Nilai_1 : integer; Nilai_2 : integer; END; 2. TYPE date = RECORD Tanggal : 1..31; Bulan : 112; Tahun : 1900..2000; END; VAR event1,event2 : ARRAY [1..10] OF date; 3. TYPE account = RECORD cust_no : integer; cust_type : char; cust_balance : real; END; VAR customer : account; Memproses Variabel Berjenis Record Perhatikan deklarasi variabel berikut : TYPE nilai : RECORD Nilai1 : real; Nilai2 : real; END; VAR x,y : nilai;

Untuk memproses variabel x dan / atau y dilakukan dengan cara menyebutkan field designatornya, yg terdiri dari atas : Nama_record.nama_field Pada deklarasi diatas yang dimaksud dengan field designator-nya adalah : x.nilai1 x.nilai2 y.nilai1 y.nilai2 Jadi jika ingin membaca variabel x atau y atau keduanya, maka bentuk statement-nya adalah : READ (x.nilai1, x.nilai2, y.nilai1, y.nilai2);
STATEMENT WITH Selain cara yang telah disebutkan diatas, untuk memproses suatu record dapat digunakan statement WITH. Dengan statement ini penulisannya akan lebih sederhana. Bentuk Umum penulisan statement WITH ini adalah : WITH nama_record DO statement Perhatikan deklarasi dibawah ini : TYPE x = RECORD No : integer; Kode : char; Juml : integer; Harga : real; END; VAR p,q : x; Untuk membaca variabel p dan q di atas dengan memanfaatkan statement WITH bentuknya menjadi : WITH p,q DO read (no, kode, juml, harga); Bandingkan jika digunakan cara sebelumnya : Read(p.no, p.kode, p.juml,p.harga,q.no,q.kode,q.juml,q.harga); CONTOH : Pernyataan seperti : Data.npm :=22297566 Data.Nama:=Abdul Kadir Data.Fakultas:=Teknik Dapat diganti dengan : WITH Data Do Begin npm :=22297566 Nama:=Abdul Kadir

Fakultas:=Teknik end; Apabila di dalam pernyataan WITH terdapat lebih dari satu record, haruslah pada kedua record tersebut tidak ada field dengan nama yang sama. Sebagai contoh : Type BarangX=RECORD Batu:integer; Kayu:real; END; BarangY=RECORD Batu:string[10]; Kayu:char; END; Var brg_X:barangX; brg_Y:barangY; Karena kedua variabel record brg_X dan brg_Y memiliki nama field yang sama, Jika misalnya kemudian dikenakan pernyataan : WITH brg_X, brg_Y Do Begin writeln(batu); writeln(kayu); End; dapat menyebabkan hasil tidak seperti yang diharapkan. Record Yang Bervariasi Yaitu suatu record dengan field yang bisa berubah pada saat program berjalan. Hal yang perlu diperhatikan adalah bahwa beberapa field yang berada dalam record tidak pernah muncul dalam serempak, hanya akan ada satu field yang terpakai dalam satu saat. Record varian akan memberikan fasilitas untuk menentukan field yang diperlukan pada saat program berjalan (RUN-TIME), berdasarkan keperluannya. Bentuk umum Record Varian : TYPE namarecord = RECORD Nama_field_1 : jenis; Nama_field_2 : jenis; .. nama_field_n : jenis; Case Tagfield:jenis Of nama_tagfield : (Nama_field:jenis);

nama_tagfield : (Nama_field_1, Nama_field_2:jenis); .. nama_tagfield : (Nama_field_n:jenis); END; Contoh : Type status=(T,P,J); gaji=RECORD napeg :string[25]; nopeg :string[10]; bagian :string[15]; T:(gaji:integer); P:(gajiperjam,jmlmax:integer); J:(upahperjam,lembur:integer); end; Array tipe record type barang=RECORD namabrg:string[20]; jmlbrg:byte; hargabrg:real; total:real; end; var jual:array [1..10] of barang i,j:integer; tot1:real; Begin I:=1; write(Nama barang :);readln(jual[i].nmbrg); Repeat write(Jumlah barang :);readln(jual[i].jmlbrg); write(Harga barang :);readln(jual[i].hrgbrg); jual[i].total:=jual[i].jmlbrg* jual[i]. jual[i].hrg.brg; inc (I); write(Nama barang :);readln(jual[i].nmbrg); until (jual[i].nmbrg=0) or (I=11); dec(i); clrscr; writeln (------------------------------------------------------------); writeln (No nama barang jumlah harga total); writeln (------------------------------------------------------------); for j:=1 to I do begin

gotoxy(1,j+3);write (j); gotoxy(5,j+3);write(jual[i].nmbrg); gotoxy(26,j+3);write(jual[i].jmlbrg:10); gotoxy(37,j+3);write(jual[i].hrgbrg:10:2); gotoxy(48,j+3);write(jual[i].total:10:2); tot1:=tot1 + jual[j].total ; end; writeln (------------------------------------------------------------); writeln( Total :,tot1:10:2); writeln (------------------------------------------------------------); end. Array dalam record Type barang= RECORD nmbrg:string[20]; jmlbrg:array[1..3]of byte; hrgbrg:real; total:real; end; var jual:barang; tbarang, i:integer; Begin clrscr; write(Nama Barang :);readln(jual.nmbrg); for i:=1to 3 do begin write(Jumlah barang ,I, : );readln(jual.jmlbrg[i]); tbarang:=tbarang+jual.jmlbrg[i]; end; write(Harga barang :);readln(jual.hrgbrg); jual.total:=tbarang*jual.hrgbrg; writeln(Total Harga Barang = , jual.total:10:2); end.

BAB III KESIMPULAN


Array adalah suatu tipe data terstuktur yang berupa sejumlah data sejenis (bertipe data sama) yang jumlahnya tetap dan diberi suatu nama tertentu. Elemen-elemen array tersusun secara sekuensial di dalam memori sehingga memiliki alamat yang berdekatan. Sedangkan record merupakan merupakan koleksi satuan data yang heterogen, yakni terdiri dari berbagai type. Satuan data tersebut sering disebut sebagai field dari record. Sebuah record rekaman disusun oleh beberapa field. Tiap field berisi data dari tipe dasar atau bentukan tertentu. Array berbeda dengan Record, yakni array bersifat homogen (terdiri dari tipe data yang sama), dan komponen array tidak memiliki nama sendiri, dan hanya diberi identifikasi oleh posisi mereka di dalam array. Penggunaan keduanya di dalam program juga berbeda, jika penggunaan array pada umumnya akan disimpan di memori utama komputer (bersifat sementara), sedangkan record biasanya digunakan dalam filing yang akan disimpan di memori sekunder komputer.

REFERENSI
http://bayoe.staff.uns.ac.id http://lecturer.ukdw.ac.id/anton/download/strukdat5.pdf http://marliza.staff.gunadarma.ac.id http://staffsite.gunadarma.ac.id http://www.stmik-budidarma.ac.id Hartono, Joiyanto.2002.Konsep Dasar Pemrograman. Yogyakarta: Andi Press.

Anda mungkin juga menyukai