Selasa, 15 September 2015
Tugas 1: Artikel Type Data, Struktur Data, Operator dalam Pemrograman Pascal
- Artikel tentang TYPE data sederhana dan majemuk
Secara garis besar type data dapat di kelompokkan menjadi:
Type data sederhana.
Type data sederhana.
- Type data sederhana tunggal, misalnya Integer, real, boolean dan karakter.
- Type data sederhana majemuk, misalnya String.
- Type data sederhana tunggal adalah tipe data yang sudah ada dan dijadikan standar dalam bahasa pemrograman tertentu. Isi dari type sederhana ini adalah data-data tunggal.
• Tipe Integer adalah tipe data yang nilainya tidak mempunyai titik desimal (bilangan bulat)
Macamnya dari besar jangkauan nilai yaitu :
Shortint(1byte) ,Integer(2byte), Longint(4byte), Byte(1byte), Word(2byte).
Untuk memberi nilai basis decimal maupun heksadesimal ditandai dengan tanda $.
Contoh pendeklarasian :
Var x, y : integer;
begin x := 16; { dengan decimal }
y := $0A; { dengan hexadecimal }
• Tipe Real : untuk menyimpan bilangan real.
Macamnya dari ketelitiannya yaitu : Real,Single, Double, Extended, comp.
Contoh pendeklarasian :
Var x, y : real; begin
x := 123.45; {menuliskan nilai dengan tanda titik}
y := 1.2345E+2 { menuliskan E+banyak decimal)
• Tipe Boolean : hanya dapat bernilai true/benar dan false/salah(1 byte).
Macamnya dari penjagaan kompatibilitas yaitu :
Boolean(byte),Wordbool(word),LongBool(long),ByteBool(byte).
Contoh pendeklarasian :
Var
B1 : boolean;
begin
b1 := true;
b1 := false;
• Tipe char/karakter digunakan untuk mendefinisikan tipe data yang nilainya merupakan himpunan karakter yang dikenal komputer seperti yang tersaji dalam tabel ASCII. Dalam program, konstanta bertipe char ditulis diantara ‘tanda petik’, misalnya ‘A’ . Perlu diingat bahwa data bertipe char hanya terdiri dari 1 karakter.
• Atau Tipe Karakter: untuk menyimpan data alfanumeris seperti ‘A’, ‘Z’, ‘@’, dsb(1 byte).
• Contoh pendeklarasian :
• Var ch : char; begin
• ch := ‘A’; ch := #65 { sama artinya dengan ch := ‘A’} ch := chr(65); { sama artinya dengan ch := ‘A’}
- TYPE DATA SEDERHANA MAJEMUK, misalnya String
Tipe String : menyimpan data yang berisi suatu teks (rangkaiankarakter/huruf) dan bisa juga berisi angka.
Contoh pendeklarasian :
Var kalimat : string
Begin kalimat := ‘Jl.Bima Sakti no.3 Pendok’;
- Struktur data sederhana dan majemuk
- Struktur data sederhana, misalnya array dan record
1) Tipe Array (larik) yaitu sekumpulan elemen bertipe sama secara berurutan (sequential).Masing-masing elemen dapat diakses tersendiri, melalui indeks array bertipe ordinal (mempunyai urutan tertentu).
Bentuk Umum :
Type
NamaArray = Array[tipeindeks] of TipeData;
Ciri-ciri Array :
• setiap elemen data array diacu melalui indeksnya
• indek array suatu tipe yang mempunyai keterurutan (ada suksesor dan predecessor).
Ada 2 cara mendeklarasikan larik yaitu :
1) Sebagai tipe data baru
Bentuk Umum :
Type larik=Array[1..n] of datatype ;
Var x : larik ;
2) Langsung sebagai variabel
Bentuk Umum :
Var x : Array[1..n] of datatype ;
Keuntungan :
- Efisien memori ( bila semua elemen terisi,akses elemen waktunya sama).
- Pengaksesan acak (sembarang elemen bisa diacu langsung).
- Mudah menelusuri elemen pendahulu (predecessor) atau penerus(successor).
Kelemahan :
- Bertipe homogen
- Penyisipan dan penghapusan elemen tidak efisien.
- Boros memori ( bila elemen tidak terisi).
- Pada suatu aplikasi,representasi statis tidak dimungkinkan
Macam-macam Array :
a. Array Dimensi Satu : larik tersusun dalam satu baris/1 index elemen bertipe data yang sama, tetapi isi dari elemen tersebut boleh berbeda.
Bentuk Umum :
namaArray : array[index1] of tipedata
b. Array Dimensi Dua : larik terdiri dari beberapa baris dan beberapa kolom/2 index elemen yang bertipe sama.
Contohnya matrik.
Bentuk Umum :
namaArray : array[index1,index2] of tipedata
c. Array Dimensi Tiga atau lebih : larik yang mempunyai 3 index/lebih elemen.
Bentuk Umum :
namaArray : array[index1,index2,...,indexn] of tipedata
2) Tipe Record/rekaman adalah kumpulan data yang terdiri dari beberapa field(isian) dengan berbagai macam tipe data.
Bentuk Umum :
Type
Namarecord = record
Field1: tipedata1 ;
Field2: tipedata2 ;
…………………
…………………
Fieldx: tipedatax ;
End ;
*Record didalam record yaitu record berisi record.
Pendeklarasian :
Nama_variabel.TglLahir.Tanggal
Nama_variabel.TglLahir.Bulan
Nama_variabel.TglLahir.Tahun
Record ini dapat disederhanaan menggunakan with
Pendeklarasian : WITH namarecord DO
pernyataan
Array Record yaitu suatu array(larik) yang memuat/berisi record/kumpulan data.
Cara mengakses field(isian) yaitu :
Pengenal[Indeks].NamaField
Pembanding
|
Array/Larik
|
Record/Rekaman
|
Elemen
|
Semua Bertipe Sama
|
Dapat mempunyai tipe data yang berbeda satu sama lainnya
|
Tipe Set/Himpunan : koleksi dari sejumlah elemen(anggota) bertipe sama dan sifatnya tidak ada yang kembar. Sebuah set memuat maksimal 255 anggota.
Bentuk Umum :
Type namatipe = set of tipedata;
Macam konstanta Set :
a. Konstanta enumerasi : elemennya dinyatakan satu persatu [Mon,Sun,Tue]
b. Konstanta rentang: elemennya dinyatakan secara rentang berdasarkan tipe dasar set tersebut. Misal bertipe digit [1…20],atau bertipe char [‘A’..’F’].
- Struktur Data Majemuk
1) Linier
kumpulan komponen-komponen yang tersusun membentuk satu garis linear.
Misalnya : Stack, Queue dan Linear Linked List.
Linier :
a) Stack : kasus khusus struktur fleksibel elemen dengan penyisipan dan penghapusan di satu ujung.
b) Queue : struktur fleksibel elemen dengan penyisipan(rear/tail) di satu ujung,penghapusan(front/head) di ujung lain.
c) List : struktur fleksibel elemen dapat diakses/disisipkan/dihapus disembarang posisinya
d) Multilist : gabungan beberapa list.
2) Non Linier adalah sistem yang tidak linier yakni sistem yang tidak memenuhi prinsip superposisi.
dapat berupa array (tipe data sama) atau record (tipe data berbeda).
Misalnya;
- Pohon (Tree),
- Pohon Biner (Binary Tree),
- Pohon Cari Biner (Binary Search Tree),
- General Tree serta Graph.
• Pohon Biner : data pohon terstruktur setiap simpul memiliki paling banyak 2 anak.
• Graph : model struktur datanya bersifat interkoneksi n ke-n.
Tree
>> Pengertian
Salah satu bentuk struktur data tidak linier yang menggambarkan hubungan yang hirarki.
>> Ketentuan Tree
q Root (akar) adalah node yang memiliki derajat keluar >=0 dan derajat masuk = 0.
q Subtree/child adalah bagian salah satu node dibawah root sampai ke bawah.
q Leaf (daun) adalah semua node yang derajat masuknya 1 dan derajat keluarnya 0.
q Height (ketinggian) adalah level tertinggi dari tree ditambah 1.
q Weight (bobot) adalah jumlah leaf(daun) pada tree.
>> Contoh Tree
Contoh tree dengan 2 level.
Root : node A
Subtree : 2 yaitu node B dan C
Leaf : 4 yaitu node D, E, F, G
Level : ada 2
Height : level + 1 = 2 + 1 = 3
Size : 7 node yaitu A, B, C, D, E, F, G
Contoh tree dengan 2 level.
Root : node A
Subtree : 2 yaitu node B dan C
Leaf : 4 yaitu node D, E, F, G
Level : ada 2
Height : level + 1 = 2 + 1 = 3
Size : 7 node yaitu A, B, C, D, E, F, G
Ø Binary tree
sebuah binary search tree (bst) adalah sebuah pohon biner yang boleh kosong, dan setiap nodenya harus memiliki identifier/value. value pada semua node subpohon sebelah kiri adalah selalu lebih kecil dari value dari root, sedangkan value subpohon di sebelah kanan adalah sama atau lebih besar dari value pada root, masing – masing subpohon tersebut (kiri&kanan) itu sendiri adalah juga bst.sebuah bst, pada dasarnya adalah sebuah pohon biner (binary tree), oleh karena itu, kita dapat melakukan traversal pada setiap node dengan metode inorder, preorder maupun postorder. dan jika kita melakukan traversal dengan metode inorder, pada dasarnya kita telah melakukan traversal valuenya secara terurut dari kecil ke besar, jadilah ini sebagai sorting algoritma.
sebuah binary search tree (bst) adalah sebuah pohon biner yang boleh kosong, dan setiap nodenya harus memiliki identifier/value. value pada semua node subpohon sebelah kiri adalah selalu lebih kecil dari value dari root, sedangkan value subpohon di sebelah kanan adalah sama atau lebih besar dari value pada root, masing – masing subpohon tersebut (kiri&kanan) itu sendiri adalah juga bst.sebuah bst, pada dasarnya adalah sebuah pohon biner (binary tree), oleh karena itu, kita dapat melakukan traversal pada setiap node dengan metode inorder, preorder maupun postorder. dan jika kita melakukan traversal dengan metode inorder, pada dasarnya kita telah melakukan traversal valuenya secara terurut dari kecil ke besar, jadilah ini sebagai sorting algoritma.
Ø Graph
Graf adalah kumpulan noktah (simpul) di dalam bidang dua dimensi yang dihubungkan dengan sekumpulan garis (sisi). Graph dapat digunakan untuk merepresentasikan objek-objek diskrit dan hubungan antara objek-objek tersebut. Representasi visual dari graphadalah dengan menyatakan objek sebagai noktah, bulatan atau titik (Vertex), sedangkan hubungan antara objek dinyatakan dengan garis (Edge).
G = (V, E)
Dimana:
G = Graph
V = Simpul atau Vertex, atau Node, atau Titik
E = Busur atau Edge, atau arc
Graf merupakan suatu cabang ilmu yang memiliki banyak terapan. Banyak sekali struktur yang bisa direpresentasikan dengan graf, dan banyak masalah yang bisa diselesaikan dengan bantuan graf. Seringkali graf digunakan untuk merepresentasikan suaru jaringan. Misalkan jaringan jalan raya dimodelkan graf dengan kota sebagai simpul (vertex/node) dan jalan yang menghubungkan setiap kotanya sebagai sisi (edge) yang bobotnya (weight) adalah panjang dari jalan tersebut.
Ada beberapa cara untuk menyimpan graph di dalam sitem komputer. Struktur data bergantung pada struktur graph dan algoritma yang digunakan untuk memanipulasi graph. Secara teori salah satu dari keduanya dapat dibedakan antara struktur list dan matriks, tetapi dalam penggunaannya struktur terbaik yang sering digunakan adalah kombinasi keduanya.
q Graph tak berarah (undirected graph atau non-directed graph) :
• Urutan simpul dalam sebuah busur tidak dipentingkan. Misal busur e1 dapat disebut busur AB atau BA
q Graph berarah (directed graph) :
• Urutan simpul mempunyai arti. Misal busur AB adalah e1 sedangkan busur BA adalah e8.
q Graph Berbobot (Weighted Graph)
• Jika setiap busur mempunyai nilai yang menyatakan hubungan antara 2 buah simpul, maka busur tersebut dinyatakan memiliki bobot.
• Bobot sebuah busur dapat menyatakan panjang sebuah jalan dari 2 buah titik, jumlah rata-rata kendaraan perhari yang melalui sebuah jalan, dll.
Tabel Perbandingan
Perbandingan
|
Struktur Data Sederhan
|
Struktur Data Terstruktur
|
Jumlah tipe data
|
Melibatkan satu tipe data
|
Menampung beberapa tipe data
|
Ukuran memory
|
Terkecil
|
Kumpulan dari beberapa macam struktur data sederhana
|
Jenis tipe data
|
Tipe dasar
|
Tipe berstruktur
|
- Jenis-jenis Operator dalam Bahasa Pemrograman Pascal
OPERATOR DALAM PASCAL
Dalam menulis program kita tidak mungkin terlepas dari penggunaan operator. Operator sendiri didefinisikan sebagai sesuatu yang digunakan untuk melakukan operasi-operasi tertentu, misalnya operasi aritmatika, penggabungan string dan banyak lagi yang lainnya.
Nilai yang dioperasikan oleh operator bersama operand membentuk suatu ekspresi.
Contoh :
1 + 2 – 3, yang disebut ekspresi. Tanda + dan – merupakan tanda operator sedangkan nilai 1,2 dan 3 disebut operand.
- Operator Assignment
Operator assignment digunakan untuk melakukan pemberian nilai terhadap suatu variabel sehingga operator ini juga sering dikenal dengan operator penugasan. Dalam bahasa Pascal operator yang digunakan untuk melakukan hal ini adalah operator :=. Berikut ini bentuk umum untuk melakukan pemberian nilai terhadap suatu variabel.
NamaVariabel := nilai_yang_akan_dimasukkan;
Contoh:
Var
x: integer;
y: real;
str: string;
Begin
x := 123;
y := 56.04;
str := ‘Mencoba memasukkan nilai ke dalam variabel’;
....
End.
- Operator Aritmatika
Bahasa Pascal menyediakan beberapa operator yang dapat digunakan dalam operasi aritmatika, seperti penjumlahan, pengurangan, perkalian, pembagian dan penentuan sisa bagi.
Operator
|
Jenis Operasi
|
Tipe Operand
|
Tipe Hasil
|
Contoh
|
+
|
Penjumlahan
|
Integer, real
|
Integer, real
|
a+b
|
-
|
Pengurangan
|
Integer, real
|
Integer, real
|
x-1
|
*
|
Perkalian
|
Integer, real
|
Integer, real
|
a*b
|
/
|
Pembagian utk Bilangan riil
|
Integer, real
|
Real
|
5/3
|
Div
|
Pembagian utk bilangan bulat
|
Integerl
|
Integer
|
10 div 4
|
Mod
|
Sisa bagi
|
Integer
|
Integer
|
10 mod 3
|
- Operator Logika
Operator logika digunakan untuk melakukan operasi-operasi yang menghasilkan nilai logik (true dan false). Bahasa pascal menyediakan 4 buah operator logika, yaitu:
Operator
|
Jenis Operator
|
Tipe Operand
|
Tipe Hasil
|
Not
|
Negasi
|
Boolean
|
Boolean
|
And
|
Conjuction
|
Boolean
|
Boolean
|
Or
|
Disjuction
|
Boolean
|
Boolean
|
xor
|
Exlusive disjunction
|
Boolean
|
Boolean
|
- OPERATOR NOT
Operator ini digunakan untuk menentukan negasi atau pengingkaran dari nilai logik lain. Jika nilai yang dihasilkan adalah true maka negasi-nya adalah false. Begitu juga sebaliknya. Berikut ini table yang menunjukkan hubungan operator not.
A
|
Not A
|
True
|
False
|
False
|
True
|
- OPERATOR and
Untuk memudahkan penggunaan operator and, ingatlah bahwa operand and hanya akan bernilai true jika semua operandnya bernilai true. Selain itu operasi akan menghasilkan nilai false.
A
|
B
|
A dan B
|
True
|
True
|
True
|
True
|
False
|
False
|
False
|
True
|
False
|
False
|
False
|
False
|
- OPERATOR or
Operator or akan menghasilkan nilai true apabila satu atau semua operand-nya bernilai true. Untuk memudahkan ingatlah bahwa operator or akan menghasilkan nilai false apabila semua operandnya bernilai false. Selain itu, operator ini akan menghasilkan nilai true.
A
|
B
|
A or B
|
True
|
True
|
True
|
True
|
False
|
True
|
False
|
True
|
True
|
False
|
False
|
False
|
- OPERATOR xor
Operator exclusive or (xor) ini akan menghasilkan nilai true apabila hanya terdapat satu operand yang bernilai true. Apabila kedua operandnya bernilai true maka operasi ini akan menghasilkan nilai false, begitu juga apabila keduanya bernilai false.
A
|
B
|
A xor B
|
True
|
True
|
False
|
True
|
False
|
True
|
False
|
True
|
True
|
False
|
False
|
False
|
- OPERATOR RELASIONAL
Operator relasional adalah operator yang digunakan untuk menentukan relasi atau hubungan dari dua buah nilai atau operand. Operator ini terdapat dalam sebuah ekspresi yang selanjutnya akan menentukan benar atau tidaknya ekspresi tersebut. Operator relasional biasanya digunakan untuk melakukan pengecekan kondisi dalam blok pemilihan.
Adapun yang termasuk kedalam operasional didalam bahasa Pascal adalah sebagai berikut:
Operator
|
Jenis Operasi
|
Tipe Operand
|
Tipe Hasil
|
Contoh
|
=
|
samadengan
|
Tipe dasar, string,Pchar,set
|
boolean
|
A=3
|
<>
|
Tidak samadengan
|
Tipe dasar, string,Pchar,set
|
Boolean
|
A<>3
|
<
|
Lebih Kecil
|
Tipe dasar, string,Pchar
|
boolean
|
A<1
|
>
|
Lebih Besar
|
Tipe dasar, string,Pchar
|
Boolean
|
A>5
|
<=
|
Lebih kecil atau samadengan
|
Tipe dasar, string,Pchar,set
|
Boolean
|
A<=B
|
>=
|
Lebih besar atau samadengan
|
Tipe dasar, string,Pchar,set
|