Anda di halaman 1dari 18

KULIAH PEMROGRAMAN

KOMPUTER
TM II

JURUSAN TEKNIK
ELEKTRO FTI-ITS
2008
Struktur Data

• Komputasi yang efektif dan efisien


sering kali ditunjang oleh struktur data
yang dirancang dengan baik
• terdapat beberapa jenis struktur data
dasar yang dibutuhkan dalam
komputasi
Pengertian Data Dalam
Pemrograman
• Informasi yang akan diolah menjadi informasi
lain atau sebagai acuan untuk melakukan
aksi tertentu
• Besaran/harga yang bisa berupa angka
ataupun kumpulan simbol-simbol yang akan
menyatakan kondisi/ukuran dari suatu entitas
• Hanya besaran yang akan diolah saja yang
dipandang sebagai data
Pengertian Data Dalam
Pemrograman (lanjutan)
• Besaran yang paling umum adalah
angka/numerik yang terdiri dari jenis
real dan integer, karakter/tulisan dan
logika/kondisi
• Untuk data dengan struktur yang lebih
rumit, disediakan cara pendefinisian
data jenis baru beserta perangkat
pengolahnya
Struktur Data Yang Telah
Terdefinisi Dalam Bahasa
Pemrograman

• Numeris
• Karakter
• Logika
• Tabel data (array)
Struktur Data Yang Telah
Terdefinisi Dalam Bahasa
Pemrograman (lanj)

Untuk jenis-jenis data yang sudah didefinisikan


maka bahasa pemrograman telah mengerti :
• Representasi data tersebut dalam sistem biner
sehingga dapat disimpan dalam memori.
• Cara pengolahan data tersebut
Data jenis baru yang didefinisikan harus
disertai definisi operasi-operasi yang dapat
dilakukan terhadapnya.
Struktur Data Yang Telah
Terdefinisi Dalam Bahasa
Pemrograman (lanj)

• Operasi-operasi khusus terhadap suatu


data disebut sebagai operasi primitif
terhadap data ybs.
• Operasi bisa berupa prosedur ataupun
fungsi
Struktur Data Yang Telah
Terdefinisi Dalam Bahasa
Pemrograman (lanj)
Contoh:
• Data numerik dari jenis integer akan
berbeda cara representasinya terhadap
data numerik dari jenis real, demikian pula
cara operasi yang dapat dilakukan
terhadap masing-masing jenis data.
• Operasi penjumlahan integer akan
dilakukan berbeda terhadap operasi
penjumlahan real
Tabel Jenis Data Terdifinisi Dalam Bahasa Pemrograman Pascal dan C
Representasi Pascal Representasi C
Jenis
data Sub Jenis Ukuran Jangkauan Sub Jenis Ukuran Jangkauan

Byte 8 bit 0..255 char 8 bit -128..127


Shortint 8 bit -128..127 unsigned char 8 bit 0..255
Integer 16 bit -32768..32767 int 16 bit -32767..32768
Integer Word 16 bit 0..65535 unsigned int 16 bit 0..65,535
short int -32,768..32,767
Longint 32 bit -2147483648..2147483647 long -2,147,483,648..2,147,483,647
unsigned long 0..4,294,967,295
Real 48 bit 2.9e-39..1.7e38
Single 32 bit 1.5e-45..3.4e38 float 32 bit 3.4 * (10**-38) to 3.4 * (10**+38)
Real Double 64 bit 5.0e-324..1.7e308 double 64 bit 1.7 * (10**-308) to 1.7 * (10**+308)
Extended 80 bit 3.4e-4932..1.1e4932 long double 80 bit 3.4 * (10**-4932) to 1.1 * (10**+4932)
Comp 64 bit -9.2e18..9.2e18
Karakter Char 8 bit #0..#255 unsigned char 8 bit 0..255
Logika Boolean 8 bit False..True int 16 bit 0..1
Tulisan String Max.255 byte char * Teoritis tidak terbatas
Tabel Array Max. 65535 byte Data berindex Teoritis tidak terbatas
Struktur Data Yang
Didefinisikan Sendiri
1. Pendefinisian harga besaran diskrit (sebagai
suatu himpunan simbol/nama)enumerasi.

Definisi ini dimaksudkan untuk memberikan


acuan terhadap harga-harga data yang tidak
dapat direpresentasikan dengan jenis-jenis
data lain yang sudah terdefi­nisi.
Struktur Data Yang
Didefinisikan Sendiri (lanj)
2. Pendefinisian kandungan besaran
(sebagai record / struktur)

Struktur atau record mendefinisikan jenis data


yang berisi lebih dari satu macam informasi
yang dapat direpresentasikan oleh jenis-jenis
data lainnya yang sudah lebih dahulu
terdefinisi
Dengan definisi ini :

Data yang berisi informasi yang kompleks


akan dapat diolah dengan menggunakan
primitif-primitif yang juga harus
didefinisikan sendiri.
Notasi pendefinisian
data sendiri

Notasi algoritma Implementasi Pascal Implementasi C

Type merek = Type merek = typedef enum merek


[honda,suzuki,yamaha,vespa] (honda,suzuki,yamaha,vespa); {honda,suzuki,yamaha,vespa};

Type biodata = < Nama : string, Type biodata = record typedef struct { char * Nama;
Umur : integer, Nama : string; int Umur;
Status : Boolean > Umur : Integer; int status;} biodata;
Status : Boolean;
End;
Notasi Algoritma Yang digunakan
1. Judul program Program <nama_program>
2. Deskripsi program Deskripsi :keterangan tentang apa yang dilakukan program
3. Kamus / daftar nama Kamus
variabel, konstanta, <namavar> : <tipe_data>
jenis data, nama Constanta <namakonstanta> = <harga>
prosedur dan fungsi yang Type <namatipe> = <tipedata>
akan digunakan Function <namafungsi>  <tipedata>
Deskripsi : ...
Procedure <namaprosedure>
Deskripsi : ...
4. Algoritma Algoritma
...
Contoh
Program DesimalKeBiner
Deskripsi : Menuliskan bilangan biner dari suatu bilangan desimal yang diinputkan
Kamus
Desimal,pembagi : integer
Algoritma
Input(desimal)
Pembagi  1 {cari bilangan pembagi kepangkatan 2 terbesar}
While(desimal ≽ (pembagi*2))do
Pembagi  pembagi *2
End-While {(desimal<(pembagi*2))}
Repeat
Output(desimal div pembagi)
Desimal  desimal mod pembagi
Pembagi  pembagi div 2
Until(pembagi=0)

Perhatikan bahwa pada contoh program tersebut tidak memerlukan acuan


terhadap fungsi ataupun prosedur luar, maka bagian definisi acuan inipun tidak
dicantumkan.

Bila dibutuhkan acuan nama fungsi ataupun prosedur, maka pada bagian ini
hanya diberikan bagian judul dan deskripsinya saja. Sedangkan definisi fungsi
ataupun prosedur secara lengkap harus ditulis di bagian lain seperti halnya
penulisan sebuah program.
Kata kunci teks notasi algoritma
Kata kunci Arti
1. Program, Procedure, Function Judul program, prosedur atau fungsi
2. Deskripsi Keterangan algoritma
3. Kamus Daftar definisi nama variabel,konstanta,tipe data
4. Algoritma Permulaan teks algoritma
5. Input,Output Perintah masukan dan keluaran data, pendefinisian
parameter formal pada judul prosedur
6. If(<kondisi>)Then Kontrol percabangan dengan dua pilihan berdasarkan kondisi
Else logika
End-if
7. Depend-On(<var>) Kontrol percabangan dengan banyak pilihan berdasarkan
<kondisi1> : ... harga suatu data (variabel)
<kondisiN> : ...
Else ...
End-Depend
8. While(<kondisi>)Do Kontrol perulangan berdasarkan kondisi logika di awal
... proses
End-While
9. Repeat Kontrol perulangan berdasarkan kondisi logika di akhir
... proses
Until(<kondisi>)
10. Traversal <var> from <b> to/downto <e> Kontrol perulangan berdasarkan hitungan
...
End-Traversal
11. Iterate Kontrol perulangan berdasarkan kondisi di tengah proses
...
Stop(<kondisi>)
...
End-Iterate
12. Integer,Real, Tipe data terdefinisi
String,Boolean, Character
13. Table,pointer to Pemodifikasi tipe terdefinisi sebagai array atau tempat
penyimpanan dinamis (dynamic storage)
14. And,Or,Xor,Not,Div,Mod Operator logika & Bitwise, pembagian integer dan sisa
pembagian integer
Simbol-simbol operasi
Symbol Fungsi
+ - * / Operator numerik tambah, kurang, kali, bagi(real)
=  < > ≼ ≽ Operator perbandingan
 Pemberian harga kepada suatu nama variabel (asignment)
 Pengembalian harga dari suatu fungsi (return value)
 Pointer data dinamis
( ) Pengelompokan operasi, Pengapit definisi parameter subprogram
. Penghubung variabel record dengan nama fieldnya
SubScript Index tabel. Contoh ( Ab ) A adalah tabel dengan index b yang
ditulis lebih kecil dan lebih di bawah
.. Jangkauan harga
{ } Pengapit komentar
, Pemisah nama variabel
: Definisi nama variabel, pemisah kondisi dan aksi pada kontrol
depend-on
; Pemisah perintah yang ditulis pada satu baris yang sama
< > Pengapit definisi data record
[ ] Pengapit definisi data enumerasi, pengapit batasan jangkauan harga
Notasi lainnya : Flow Chart

Start / End Terminator


Biasanya digunakan pada
Arah aliran urutan
algoritma sederhana dengan
Preparasi
menganggap semua nama
B1
data dan pengolahannya
tidak perlu didefinisikan.
Ab+2 Proses
Semua data bertipe
numerik, dengan operasi
Ya Syarat numerik sederhana.
A=3
percabangan
Tidak

Pengambilan /
Input / output
penyajian data

Anda mungkin juga menyukai