Pages

Subscribe:

Wednesday, August 05, 2009

Deret Fibonacci / Fibonacci Squence

Deret fibonacci mempunyai suku bilangan bulat dimana masing-masing nilai suku bilangan tersebut merupakan hasil penjumlahan dari 2 nilai suku sebelumnya.

 

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ……..

Deret fibonacci mempunyai definisi rekursif sebagai berikut :

  • Jika n < 2, maka fibo(n) = n
  • Jika n >= 2, maka fibo(n) = fibo ( n-2 ) + fibo ( n-1)

 

Deret fibonacci tersebut dapat diimplementasikan kedalam program dibawah ini :

 

Uses Wincrt;

Function fibo ( n : integer ) ; longint ;

Begin

            If ( n = 0 ) or ( n = 1 ) then

                        Fibo := n

                 Else

                        Fibo := fibo (n -2) + Fibo ( n-1) ;

End;

begin

Writeln( fibo (5) );

End.

 

Program diatas merupakan contoh apabila kita ingin menghitung nilai fibonacci 5.

Apabila kita buktikan dengan perhitungan, maka proses penghitungannya adalah sbb :

 Fibo 5 =  fibo (3) + fibo (4)

            =  fibo (1) + fibo(2) + fibo (4)

            =  1 + fibo (0) + fibo (1) Fibo (4)

            =  1 + 0 + 1 + fibo (2) fibo (3)

            =  2 + fibo (0) + fibo (1) + fibo (3)

            =  2 + 0 + 1 + fibo (1) + fibo (2)

            =  3+ 1 + fibo (0) fibo (1)

            =  4 + 0 + 1

            =  5

           

Deret fibonacci termasuk kedalam algoritma rekursif. Rekursif  merupakan proses dari sub program yang dapat berupa procedure atau fungsi yang dapat memanggil dirinya sendiri.

Namun rekusif mempunyai kelemahan yaitu suatu proses yang sudah selesai di proses akan diproses ulang kembali sehingga akan membuat program menjadi lama, karena setiap kali subprogram dipanggail maka diperluakan sejumlah tambahan memori.

 

Untuk membuktikan kelemahan tersebut kita bisa mencoba dengan program untuk menghitung nilai fibonacci dengan 2 digit angka atau lebih besar dari itu, maka ketika program tersebut di running proses akan lama.

 

 

 

 

 

 

S : Logika Dan Algoritma/ Arif B.P

Jaringan Komputer

Yang dimaksud dengan network atau jaringan dalam bidang komputer adalah dua atau lebih komputer yang dihubungkan sehingga dapat berhubungan dan dapat berkomunikasi, sehingga dapat menimbulkan suatu efisiensi, sentralisasi dan optimasi kerja.

 

Dilihat dari cara pemrosesan data dan pengaksesannya ada beberapa jenis jaringan komputer :

 

  • Host-Terminal. Yaitu dimana terdapat dua atau lebih server yang dihubungkan dalam suatu dumb terminal. Karena dumb terminal hanyalah sebuah monitor yang dihubungkan dengan menggunakan kabel RS-232, maka pemrosesan data dilakukan didalam server.

 

  • Client-server. Yaitu dimana  sebuah server atau lebih yang dihubungkan dengan beberapa Client. Server bertugas menyediakan layanan, misalnya pengaksesan berkas, peripheral, database dan lain-lain. Sedangakan Client adalah sebuah terminal yang menggunakan layanan tersebut. Perbedaan terminal client dengan terminal sever adalah terminal client malakukan pemrosesan data diterminalnya sendiri dan hal itu menyebabkan spesifikasi  dari server tidaklah harus memiliki performansi yang tinggi, dan kapasitas penyimpanan data yang besar karena semua perosesan data yang merupakan permintaan dari client dilakukan di terminal Client.

 

  • Peer to peer. Yaitu dimana terdapat beberapa terminal komputer yang dihubungakan dengan media kabel. Secara prinsip hubungan peer to peer ini ialah bahwa setiap komputer dapat berfungsi sebagai server atau penyedia layanan dan Client dan juga keduanya dapat difungsikan dalam waktu yang bersamaan.

 

Sedangkan apabila dilihat dari jangkauan atau sisi lingkupnya, jaringan dapat dibagi menjadi beberapa jenis :

·       LAN ( Local Area Network). Yaitu dimana terdapat satu atau dua server dan ruang lingkupnya hanya terdapat dalam satu lokasi atau gedung.

 

LAN merupakan salah satu arsitektur jaringan yang paling sederhana dan dapat dikembangkan menjadi arsitektur jaringan yang lebih luas cakupannya.

 

Biasanya LAN mengunakan satu server untuk melayani kebutuhan clientnya, tetapi tidak menutup kemungkinan untuk menggunakan lebih dari satu server, tergantung dari kebutuhan dari client itu sendiri.

 

Penamaan terminal dalam suatu jaringan menggunakan IP Addres               ( Internet Protocol Addres ) IP addres adalah sekelompok bilangan binner 32 bit yag di bagi manjadi 4 bagian yang masin-masing itu terdiri dari 8 bit ( IPV4) contoh :

 

11000000.10101000.00001010.00000001

     192     .      168    .     10       .       1  

 

·       MAN( Metropolitan Area Network). Merupakan Versi dari LAN yang berukuran lebih besar dan memakai teknologi yang sama dengan LAN dengan range sekitar 10-45 km.

·       WAN( Wide Area Netwok ). Merupakan gabungan dari LAN yang mencakup daerah geografis yang luas dan tersebar di beberapa lokasi di seluruh dunia. Jaringan jenis ini membutuhkan minimal satu server untuk setiap LAN, dan membutuhkan minimal dua server yang mempunyai lokasi yang berbeda untuk membentuknya.

·       Internet. Adalah sekumpulan jaringan yang berlokasi tersebar diseluruh dunia yang saling terhubung membentuk suatu jaringan besar komputer.

·       Intranet. Yaitu jaringan komputer dalam sebuah perusahaan/organisasi yang menggunakan teknologi internet sehingga terbentuk lingkungan seperti internet tetapi bersifat pribadi/private bagi perusahaan atau organisasi yang bersangkutan.

·       Extranet. Yaitu jaringan komputer yang menggunakan teknologi internet dan sistem telekomunikasi publik untuk membentuk hubungan yang aman antara mitra kerja, supplier, customer dan sebagainya.

 

 

 

 

S : Pengenalan Jaringan Komputer/ Ahmad .J

Sunday, August 02, 2009

Algoritma; Procedure Fibonaci

PROSEDURE FIBONACCI :


PROGRAM PROSEDUR_FIBO;

USES WINCRT;

PROCEDURE FIBO ( KEY : STRING ; K : INTEGER );

VAR

X,Y,Z,I,N : LONGINT ;

BARIS : INTEGER ;

BEGIN

X:= 1;

Y:= 1;

WRITELN(' * ',KEY,' *');

FOR BARIS :=1 TO K DO

BEGIN

WRITELN;

END;

WRITE(' MASUKAN BANYAK BILANGAN FIBONACI : ');

READLN(N);

WRITE(X, ' ');

WRITE(Y, ' ');

FOR I:= 1 TO N-2 DO

BEGIN

Z := X + Y ;

X := Y ;

Y := Z ;

WRITE(Z, ' ' );

END;

END;

{MODUL UTAMA}

BEGIN

FIBO(' DERET FIBONACI',2);

END.

Algoritma; Passing by Value & Passing by Referece

CONTOH PROSEDURE PASSING BY VALUE :


PROGRAM PROSEDUR_009;

USES WINCRT;

PROCEDURE HITUNG ( A,B,C : INTEGER );

BEGIN

C := A + B;

WRITELN;

WRITELN('A = ',A,' B = ',B ,' C = ',C);

END;


{MODUL UTAMA}

VAR X,Y,Z : INTEGER ;

BEGIN

X:= 20 ;

Y:= 30 ;

Z:= 0 ;

HITUNG (X,Y,Z);

WRITELN('X = ',X ,' Y = ',Y,' Z = ',Z);

END.



CONTOH PROSEDURE PASSING BY REFERENCE :


PROGRAM PROSEDUR_009;

USES WINCRT;

PROCEDURE HITUNG ( VAR A,B,C : INTEGER );

BEGIN

C := A + B;

WRITELN;

WRITELN('A= ',A,' B= ',B ,' C= ',C);

END;


{MODUL UTAMA}

VAR X,Y,Z : INTEGER ;

BEGIN

X:= 20 ;

Y:= 30 ;

Z:= 0 ;

HITUNG (X,Y,Z);

WRITELN('X= ',X ,' Y=',Y ,' Z= ',Z);

END.

Algoritma ; Procedure Rata-rata Bilangan

BILANGAN BULAT :


PROGRAM MENGHITUNG_NILAI_RATA_RATA;

USES WINCRT;

TYPE LARIK = ARRAY [1..100] OF INTEGER;


PROCEDURE INPUT_BILANGAN ( N : INTEGER; VAR BILANGAN : LARIK );

VAR

I : INTEGER;

BEGIN

FOR I:= 1 TO N DO

BEGIN

WRITE ('BILANGAN KE-',I,' = ');

READLN(BILANGAN[I]) ;

END;

END;


PROCEDURE HITUNG_RATA_RATA (N : INTEGER; BILANGAN : LARIK);

VAR

I, JUMLAH : INTEGER ;

RATA_RATA : REAL ;

BEGIN

JUMLAH := 0;

FOR I:= 1 TO N DO

JUMLAH := JUMLAH + BILANGAN[I];

RATA_RATA := JUMLAH/ N;

WRITELN;

WRITELN (' BANYAK BILANGAN : ',N:5);

WRITELN ('JUMLAH BILANGAN : ',JUMLAH:5);

WRITELN ('RATA-RATA BILANGAN : ',RATA_RATA:5:1);

END;

{MODUL UTAMA}

VAR

NILAI : LARIK ;

BANYAK : INTEGER ;

RATA_RATA : REAL;

BEGIN

WRITE (' BANYAKNYA BILANGAN : ');

READLN(BANYAK);

WRITELN;

INPUT_BILANGAN (BANYAK, NILAI);

HITUNG_RATA_RATA (BANYAK, NILAI);

END.


BILANGAN NEGATIF :


PROGRAM HITUNG_RATA_NEGATIF ;

USES WINCRT;

TYPE LARIK = ARRAY [1..100] OF INTEGER;

PROCEDURE INPUT_BILANGAN ( N : INTEGER; VAR BILANGAN : LARIK );

VAR

I : INTEGER;

BEGIN

FOR I:= 1 TO N DO

BEGIN

WRITE ('BILANGAN KE-',I,' = ');

READLN(BILANGAN[I]) ;

END;

END;


PROCEDURE HITUNG_RATA_RATA (N : INTEGER; BILANGAN : LARIK);

VAR

I, JUMLAH, CACAH : INTEGER ;

RATA_RATA : REAL ;

BEGIN

JUMLAH := 0;

CACAH := 0;

FOR I:= 1 TO N DO BEGIN

IF BILANGAN[I] < 0 THEN BEGIN

JUMLAH := JUMLAH + BILANGAN[I];

INC(CACAH);

END;

END;


RATA_RATA := JUMLAH/ CACAH ;

WRITELN;

WRITELN (' BANYAK BILANGAN : ',N:5);

WRITELN(' BANYAK BIL NEGATIF : ',CACAH);

WRITELN ('JUMLAH BILANGAN NEGATIF : ',JUMLAH:5);

WRITELN ('RATA-RATA BILANGAN : ',RATA_RATA:5:2);

END;

{MODUL UTAMA}

VAR

NILAI : LARIK ;

BANYAK : INTEGER ;

RATA_RATA : REAL;

BEGIN

WRITE (' BANYAKNYA BILANGAN : ');

READLN(BANYAK);

WRITELN;

INPUT_BILANGAN (BANYAK, NILAI);

HITUNG_RATA_RATA (BANYAK, NILAI);

END.


BILANGAN POSITIF :


PROGRAM MENGHITUNG_NILAI_RATA_RATA;

USES WINCRT;

TYPE LARIK = ARRAY [1..100] OF INTEGER;


PROCEDURE INPUT_BILANGAN ( N : INTEGER; VAR BILANGAN : LARIK );

VAR

I : INTEGER;

BEGIN

FOR I:= 1 TO N DO

BEGIN

WRITE ('BILANGAN KE-',I,' = ');

READLN(BILANGAN[I]) ;

END;

END;


PROCEDURE HITUNG_RATA_RATA (N : INTEGER; BILANGAN : LARIK);

VAR

I, JUMLAH, CACAH : INTEGER ;

RATA_RATA : REAL ;

BEGIN

JUMLAH := 0;

CACAH := 0;

FOR I:= 1 TO N DO BEGIN

IF BILANGAN[I] >= 1 THEN BEGIN

JUMLAH := JUMLAH + BILANGAN[I];

INC(CACAH);

END;

END;


RATA_RATA := JUMLAH/ CACAH ;

WRITELN;

WRITELN (' BANYAK BILANGAN : ',N:5);

WRITELN(' BANYAK BIL POSITIF : ',CACAH);

WRITELN ('JUMLAH BILANGAN POSITIF : ',JUMLAH:5);

WRITELN ('RATA-RATA BILANGAN : ',RATA_RATA:5:2);

END;

{MODUL UTAMA}

VAR

NILAI : LARIK ;

BANYAK : INTEGER ;

RATA_RATA : REAL;

BEGIN

WRITE (' BANYAKNYA BILANGAN : ');

READLN(BANYAK);

WRITELN;

INPUT_BILANGAN (BANYAK, NILAI);

HITUNG_RATA_RATA (BANYAK, NILAI);

END.

BILANGAN GENAP :


PROGRAM MENGHITUNG_NILAI_RATA_RATA;

USES WINCRT;

TYPE LARIK = ARRAY [1..100] OF INTEGER;


PROCEDURE INPUT_BILANGAN ( N : INTEGER; VAR BILANGAN : LARIK );

VAR

I : INTEGER;

BEGIN

FOR I:= 1 TO N DO

BEGIN

WRITE ('BILANGAN KE-',I,' = ');

READLN(BILANGAN[I]) ;

END;

END;


PROCEDURE HITUNG_RATA_RATA (N : INTEGER; BILANGAN : LARIK);

VAR

I, JUMLAH, CACAH : INTEGER ;

RATA_RATA : REAL ;

BEGIN

JUMLAH := 0;

CACAH := 0;

FOR I:= 1 TO N DO BEGIN

IF BILANGAN[I] MOD 2 = 0 THEN BEGIN

JUMLAH := JUMLAH + BILANGAN[I];

INC(CACAH);

END;

END;

RATA_RATA := JUMLAH/ CACAH ;

WRITELN;

WRITELN (' BANYAK BILANGAN : ',N:5);

WRITELN(' BANYAK BIL GENAP : ',CACAH);

WRITELN ('JUMLAH BILANGAN GENAP : ',JUMLAH:5);

WRITELN ('RATA-RATA BILANGAN : ',RATA_RATA:5:2);

END;

{MODUL UTAMA}

VAR

NILAI : LARIK ;

BANYAK : INTEGER ;

RATA_RATA : REAL;

BEGIN

WRITE (' BANYAKNYA BILANGAN : ');

READLN(BANYAK);

WRITELN;

INPUT_BILANGAN (BANYAK, NILAI);

HITUNG_RATA_RATA (BANYAK, NILAI);

END.


BILANGAN GANJIL :


PROGRAM MENGHITUNG_NILAI_RATA_RATA;

USES WINCRT;

TYPE LARIK = ARRAY [1..100] OF INTEGER;


PROCEDURE INPUT_BILANGAN ( N : INTEGER; VAR BILANGAN : LARIK );

VAR

I : INTEGER;

BEGIN

FOR I:= 1 TO N DO

BEGIN

WRITE ('BILANGAN KE-',I,' = ');

READLN(BILANGAN[I]) ;

END;

END;


PROCEDURE HITUNG_RATA_RATA (N : INTEGER; BILANGAN : LARIK);

VAR

I, JUMLAH, CACAH : INTEGER ;

RATA_RATA : REAL ;

BEGIN

JUMLAH := 0;

CACAH := 0;

FOR I:= 1 TO N DO BEGIN

IF BILANGAN[I] MOD 2 = 1 THEN BEGIN

JUMLAH := JUMLAH + BILANGAN[I];

INC(CACAH);

END;

END;

RATA_RATA := JUMLAH/ CACAH ;

WRITELN;

WRITELN (' BANYAK BILANGAN : ',N:5);

WRITELN(' BANYAK BIL GANJIL : ',CACAH);

WRITELN ('JUMLAH BILANGAN GANJIL : ',JUMLAH:5);

WRITELN ('RATA-RATA BILANGAN : ',RATA_RATA:5:2);

END;

{MODUL UTAMA}

VAR

NILAI : LARIK ;

BANYAK : INTEGER ;

RATA_RATA : REAL;

BEGIN

WRITE (' BANYAKNYA BILANGAN : ');

READLN(BANYAK);

WRITELN;

INPUT_BILANGAN (BANYAK, NILAI);

HITUNG_RATA_RATA (BANYAK, NILAI);

END.