Professional Documents
Culture Documents
Program
Bahasa Pemrograman
Algoritma
Algoritma memberikan langkah-langkah yang dilakukan untuk menyelesaikan suatu masalah, struktur
data mengatur data-data yang dibutuhkan dalam memori, bahasa pemrograman menterjemahkan
algoritma yang sebelumnya telah disusun dalam bahasa tersebut. Hasilnya adalah sebuah program.
Struktur data statis dan dinamis memiliki kelebihan dan kekurangan masing-masing.
Struktur data statis membutuhkan alokasi memori yang tetap sehingga memori harus dipesan terlebih
dahulu sebelum digunakan. Akibatnya akan terjadi pemborosan memori jika ternyata memori yang
dipesan tidak digunakan seluruhnya. Kelebihan struktur data statis adalah letak datanya secara
berurutan dalam memori sehingga mudah untuk mengakses data tertentu yang dibutuhkan.
Struktur data dinamis membutuhkan alokasi memori sesuai banyaknya data yang didefinisikan.
Tentunya akan menghemat memori. Akan tetapi data tersimpan secara acak dalam memori, sehingga
untuk mengakses data tertenu dalam sebuah struktur data dinamis memerlukan waktu yang agak lama
karena harus dicari mulai dari data pertama dalam struktur data tersebut.
Struktur data statis baik digunakan untuk data yang ukurannya tidak besar. Struktur data dinamis baik
digunakan untuk data yang ukurannya sangat besar.
Linked list adalah suatu cara untuk menyimpan data dengan struktur sehingga dapat secara otomatis
menciptakan suatu tempat baru untuk menyimpan data yang diperlukan. Program akan berisi suatu
struct atau definisi kelas yang berisi variabel yang memegang informasi yang ada didalamnya, dan
mempunyai suatu pointer yang menunjuk ke suatu struct sesuai dengan tipe datanya.
Struktur dinamis ini mempunyai beberapa keuntungan dibanding struktur array yang bersifat statis.
Struktur ini lebih dinamis, karena banyaknya elemen dengan mudah ditambah atau dikurangi, berbeda
dengan array yang ukurannya bersifat tetap.
Manipulasi setiap elemen seperti menyisipkan, menghapus, maupun menambah dapat dilakukan
dengan lebih mudah.
kita mencari node terakhir kemudian mencetaknya setelah itu node tersebut di dispose dan di nil kan
setelah itu ulangi penelusuran lagi dari depan sampai node terakhir, cetak node tersebut kemudian di
dispose dan di nil kan demikian seterusnya.
procedure cetakterbalik(p : llist);
var k, r : llist;
begin
k := p;
r := p;
while k^.next<> nil do
begin
r := k;
while r^.next^.next <> nil do r := r^.next;
writeln(r^.next^.data);
dispose(r^.next);
r^.next := nil;
end;
writeln(k^.data);
end;
atau pindahkan isi stack ke variabel lain kemudian dicetak. Secara otomatis stack pada variable yang
baru tersebut telah tersusun terbalik.
Procedure cetak_data(l:link);
var r, p : link;
begin
while l <> nil do
begin
r := l;
if p = nil then begin p^.data = r^.data; p^.next := nil else
begin
r^.next := p;
p := r;
end;
r := l^.next;
dispose(l);
l := r;
end;
while p^.next <> nil then
begin
writeln(p^.data);
p := p^.next;
end;
end;
Preorder adalah proses yang terdiri dari urutan prosedur baca sebagai berikut :
procedure baca(x);
begin
cetak;
baca(kiri);
baca(kanan);
end;
InOrder adalah proses yang terdiri dari urutan prosedur baca sebagai berikut :
procedure baca(x);
begin
baca(kiri);
cetak;
baca(kanan);
end;
PostOrder adalah proses yang terdiri dari urutan prosedur baca sebagai berikut :
procedure baca(x);
begin
baca(kiri);
baca(kanan);
cetak;
end;
jika diberikan sebuah data dengan urutan :
Pre-Order
30
10
17
20
13
15
12
In-Order
10
17
13
20
30
12
15
10
5
15
17
20
13
12
Hasil kunjungan postorder adalah : 5, 3, 2, 13, 20, 17, 10, 12, 7, 15, 30.