Senin, 17 Januari 2011

MK_STRUKTUR_DATA

DATA TUMPUKAN (STACK)
Tumpukan adalah suatu metode atau teknik menyimpan data atau mengambil data ke dan dari memori. Secara sederhana, tumpukan bisa diartikan sebagai suatu kumpulan data yang seolah-olah ada data yang diletakkan di atas data yang lain. Satu hal yang perlu diingat adalah bahwa kita bisa menambah (menyisipkan) data, dan mengambil (menghapus) data lewat ujung yang sama, yang disebut sebagai ujung atas tumpukan (top of stack). Sehingga data yang akan dikeluarkan pertama kali adalah data yang terakhir kali dimasukkan (First In Last Out atau Last In First Out).
Queue
Bersifat FIFO (First In First Out)
Elemen yang pertama masuk ke antrian akan keluar pertama kalinya
DEQUEUE adalah mengeluarkan satu elemen dari suatu Antrian
Antrian dapat dibuat dengan menggunakan: Liniear Array dan Circular Array


SENARAI BERANTAI (Linked List)

I.1 Pengantar
Ketika kita akan mengadakan pesta, sering kita membuat sebuah daftar (List) siapa saja yang akan kita undang. Siapa saja yang kita ingat, kita tuliskan terlebih dahulu sambil terus kita tambahkan daftar tersebut dengan nama-nama yang perlu kita undang dan bagi mereka yang telah diundang, kita hapus dalam daftar.
Itulah sedikit gambaran bagaimana cara kerja Linked List. Penambahan data dalam suatu daftar dapat dilakukan diposisi mana saja, begitu juga dengan penghapusan datanya. Linked List disebut juga dengan one-way list, adalah bentuk linear dari kumpulan nilai data (disebut nodes) yang saling berkait. Kaitan itu dilakukan oleh pengait (Pointer). Setiap node dibagi menjadi dua bagian, yaitu (1) nilai data (info), dan (2) pengait (link), yang disebut juga dengan link field atau next pointer field yang berisi alamat berikutnya dalam daftar.


REKURSI

Pengertian Rekursi

Rekursi (recursion) adalah proses dari suatu subprogram (dapat berupa fungsi atau prosedur) yang memanggil dirinya sendiri, sehingga dapat terjadi perulangan (looping). Rekursi merupakan teknik pemrograman yang penting, dan beberapa bahasa pemrograman modern mendukung keberadaan proses rekursi ini, termasuk bahasa pemrograman pascal.


QUEUE ( ANTRIAN )

- Kumpulan data dimana data masuk dan keluar pada ujung yang berbeda.
- Konsep utama FIFO ( Fisrt In First Out ).







{ Program Fibonacci menghitung suku ke N
Dari deret Fibonacci secara iterasi }

Uses crt;
Function Fibonacci (N : word) : word;
Var BatasBawah, BatasAtas, x, I : word;
Begin
If N<2 then
Fibonacci := N
Else
Begin
BatasBawah := 0;
BatasAtas := 1;
For I := 2 to N do
Begin
X := BatasBawah;
BatasBawah := BatasAtas;
BatasAtas := x + BatasBawah
End;
Fibonacci := BatasAtas;
End;
End;
{Program Utama}
Var N : word;
Begin
Clrscr;
Write(‘Suku ke berapa ? ‘);readln(N);
Writeln(‘Nilai suku ke ‘, N ,’ adalah ‘, Fibonacci(N));
Readln;
End.

{ Program Fibonacci menghitung suku ke N
Dari deret Fibonacci secara rekursi }

Uses crt;
Function Fibonacci (N : word) : word;
Begin
If N<2 then
Fibonacci := N
Else
Fibonacci := Fibonacci(N-2) + Fibonacci(N-1);
End;
{Program Utama}
Var N : word;
Begin
Clrscr;
Write(‘Suku ke berapa ? ‘);readln(N);
Writeln(‘Nilai suku ke ‘, N ,’ adalah ‘, Fibonacci(N));
Readln;
End.


{Program perkalian 2 bilangan bulat positip
dengan fungsi secara rekursi}

uses crt;
var a,b:word;
function kali(a,b:word):word;
begin
if b=1 then
kali := a
else
kali := a + kali(a,b-1);
end;
{Program Utama}
begin
clrscr;
write('nilai pertama : ');readln(a);
write('nilai kedua : ');readln(b);
writeln;
write(a ,' X ', b ,' = ');
write(kali(a,b));
readln;
end.


{Program factorial
menghitung N! dengan fungsi secara rekursi}

uses crt;
Function faktorial(N:integer):longint;
begin
if N <= 1 then
Faktorial := 1
else
Faktorial := N * Faktorial (N-1);
end;
{Program Utama}
var N : integer;
begin
clrscr;
write('Berapa Faktorial : ');readln(N);
writeln(N ,' Faktorial = ', Faktorial(N));
readln;
end.


{Program factorial
menghitung N! dengan prosedur secara rekursi}

uses crt;
procedure faktorial(N:integer; var hasil:longint);
begin
if N <= 1 then
hasil:=1
else
begin
faktorial(N-1,hasil);
hasil := hasil * N;
end;
end;
{Program Utama}
var n:integer;
f:longint;
begin
clrscr;
write('inputkan : ');readln(n);
faktorial(n,f);
writeln(n ,' faktorial = ', f);
readln;
end.

Tidak ada komentar:

Posting Komentar