Rabu, 11 Mei 2011

Tugas pascal tentang 1.Pencarian(searching), 2.Pengurutan(Sorting), 3.Penjumlahan Dua Buah Matriks, dan 4. Perkalian Dua Buah Matriks

1. PENCARIAN (Searching)

1. Pendahuluan
Pencarian (searching) merupakan proses fundamental dalam pengolahan data. Proses pencarian adalah menemukan nilai (data) tertentu di dalam sekumpulan data yang bertipe sama (baik bertupe dasar atau bertipe bentukan. Modul ini membicarakan algoritma pencarian datadi dalam larik. Algoritma pencarian yang akan dibicarakan dimulai dengan algoritma pencarian yang paling sederhana (yaitu pencarian beruntun atau sequential search) hingga algoritma pencarian yang lebih maju yaitu pencarian bagidua (binary search).

2. Kegiatan Praktikum
a). Kegiatan Praktikum 1
 Uraian dan contoh
4.1.1 Larik
Larik adalah struktur data yang menyimpan sekumpulan elemen yang bertipe dama, setiap elemen diakses langsung melalui indeksnya (harus bertipe data yang menyatakan keterurutan, misalnya integer atau karakter). Berikut contoh-contoh mendeklarasikan larik di dalam bagian deklarasi :
a. Sebagai peubah
DEKLARASI
A : array [1..100] of integer
NamaMHS : array [1..12] of string
NilUjian : array [0..74] of real
b. Sebagai tipe bentukan
DEKLARASI
Type LarikInt : array [1..100] of integer {nama tipe baru}
A : LarikInt {A adalah sebuah peubah larik integr dengan 100 elemen}

c. Mendefinisikan ukuran larik sebagai konstanta
DEKLARASI
Const Nmaks =100 {ukuran maksimum elemen larik}
Type LarikInt : array [1..Nmaks] of integer
A : LarikInt { A adalah sebuah peubah larik integr dengan 100 elemen }

Gambar larik :
a) D


b) Kar

c) Siswa






Ket : (a) larik bertipe integer,
(b) larik bertipe karakter,
(c) larik bertipe struktur.
Angka 1,2,3,.. menyatakan indeks larik

Contoh larik pada gambar, kita mendefinisikan nama dan tipenya dibagian algoritma sebagai berikut:
DEKLARASI
D : array [1..11] of integer {larik pada gambar (a)}
Kar : array [1..8] of character {larik pada gambar (b)}

Const n = 5 {jumlah data siswa}
Type Data = record

Contoh cara mengacu elemen larik pada gambar :
D [2]
D [k] {mengacu elemen ke-k, dengan syarat k sudah terdefinisi nilainya}
Kar [5]
Siswa [1].Nama
Siswa [1].Usia
Siswa [ j ]. Nama {mengacu elemen ke-j, dengan syarat j sudah terdefinisi nilainya}





4.1.2 Algoritma Pencarian Beruntun (sequential search)
Pencarian beruntun adalah proses membandingkan setiap elemen larik satu persatu secara beruntun, mulai dari elemen elemen pertama sampai elemen yang dicari ditemukan, atau seluruh elemen sudah diperiksa. Contoh : perhatikan larik L dibawah ini dengan n= 6 elemen :
13 16 14 21 76 15
1 2 3 4 5 6

Nilai yang dicari (x) Elemen yang dibandingkan (berturut-turut) Indeks larik yang dikembalikan
21 13, 16, 14, 21 (ditemukan!) 4
13 13 (ditemukan!) 1
12 13,16,14,21,76,15 (tidak ditemukan!) -1

Notasi algoritmik Notasi bahasa pascal
Procedure seq_search
DEKLARASI
L : array[1..20] of integer
x,i : integer

ALGORITMA:
Read (x)
L[1] 13
L[2] 16
L[3] 14
L[4] 21
L[5] 76
L[6] 15
i 1
while (i < 5) and (L[i] ≠ x) i i+1 if (L[i] = x) then writeln (‘ditemukan pada elemen larik ke- ’,i) else writeln (tidak ditemukan!) endif endwhile program pencarian; procedure seq_search; var L: array[1..20] of integer; x,i: integer; begin write('Angka yang dicari= '); readln(x); L[1]:=13; L[2]:=16; L[3]:=14; L[4]:=21; L[5]:= 76; L[6]:=15; i:=1; while (i<5) and (L[i] <> x) do
begin
i:=i+1;
end;
if (L[i]=x) then
writeln('Ditemukan pada elemen larik ke-',i)
else
writeln('Tidak ditemukan!');
end;
begin

seq_search;

end.

Program pencarian
DEKLARASI
Procedure seq_search
ALGORITMA:
Seq_search









b). Kegiatan Praktikum 2
Uraian dan contoh

Algoritma pencarian bagidua
Algoritma pencarian bagidua atau pencarian biner (binary search) digunakan untuk kebutuhan pencarian dengan waktu yang cepat. Prinsip dengan membagi uda data atas dua bagian mengilhami algoritma pencarian bagidua. Data yang disimpan di dalam larik harus sudah terurut. Misalkan dalam larik sudah terurut menurun. Dalam proses pencarian, kita memerlukan dua buah indeks larik, yaitu indeks terkecil dan indeks terbesar. Indeks terkecil sebagai indeks ujung kiri larik dan indeks terbesar sebagai ujung kanan larik. Istilah “kiri” dan “kanan” dinyatakan dengan membayangkan elemen larik tentang horizontal. Misalkan indeks kiri adalah i dan indeks kanan adalah j . pada mulanya kita inisialisasikan i dengan 1 dan j dengan n.
Langkah 1 : Bagidua elemen larik pada elemen tengah. Elemen tengah adalah elem indeks k=(i+j) div 2.
(elemen tengah, L[k], membagi larik menjadi dua bagian, yaitu bagian kiri L [i..j] dan bagian kanan L[k+1..j])
Langkah 2 : Periksa apakah L[k] = x. Jika L [k], pencarian selesai sebab x sudah ditemukan. Tetapi, jika L [k] ≠ x, harus ditentukan apakah pencarian akan dilakukan di larik bagian kiri atau di kanan. Jika L [k] < x. Maka pencarian dilakukan lagi pada larik bagian kanan Langkah 3 : Ulangi langkah 1 hingga x ditemukan atau i > j (yaitu, ukuran larik sudah nol!)
Contoh : ilustrasi pencarian bagidua: misalkan diberikan larik L dengan 8 buah elemen ynag sudah terurut menurun seperti di bawah ini:
81 76 21 18 16 13 10 7
1 2 3 4 5 6 7 8

 Misalkan elemen yang dicari adalah x = 18
Langkah 1 : i =1 dan j=8
Indeks elemen tengah k = (1+8) div 2 = 4 (elemen yang diarsir)

81 76 21 18 16 13 10 7
1 2 3 4 5 6 7 8



Langkah 2:
Pembandingan : L [4] = 18? Ya! (x ditemukan, proses pencarian selesai)
 Misalkan elemen yang dicari adalah x = 100
Langkah 1 : i =1 dan j=8
Indeks elemen tengah k = (1+8) div 2 = 4 (elemen yang diarsir)

81 76 21 18 16 13 10 7
1 2 3 4 5 6 7 8


Langkah 2:
Pembandingan: L [4] = 100? Tidak! Harus diputuskan apakah pencarian akan dilakukan di bagian kiri atau bagian kanan dengan pemeriksaan sebagai berikut :
Pembandingan: L [4] > 100? Tidak! Lakukan pencarian pada larik bagian kiri dengan i =1 (tetap) dan j =k-1=3

81 76 21
i=1 2 3=j

Langkah 1’ : i =1 dan j=3
Indeks elemen tengah k = (1+3) div 2 = 2 (elemen yang diarsir)

81 76 21
1 2 3



Langkah 2’ :
Pembandingan: L [2] = 100? Tidak! Harus diputuskan apakah pencarian akan dilakukan di bagian kiri atau bagian kanan dengan pemeriksaan sebagai berikut :
Pembandingan: L [2] > 100? Tidak! Lakukan pencarian pada larik bagian kiri dengan i =1 (tetap) dan j =k-1=1

81
1

Langkah 1”: i =1 dan j=1
Indeks elemen tengah k = (1+1) div 2 = 1 (elemen yang diarsir)

81
1

Langkah 2” :
Pembandingan: L [1] = 100? Tidak! Harus diputuskan apakah pencarian akan dilakukan di bagian kiri atau bagian kanan dengan pemeriksaan sebagai berikut :
Pembandingan: L [1] > 100? Tidak! Lakukan pencarian pada larik bagian kiri dengan i =1 (tetap) dan j =k-1=0
Karena i >j, maka tidak ada lagi bagian larik yang tersisa. Dengan demikian, x tidak ditemukan di dalam larik. Proses pencarian dihentikan.

Contoh algoritma pencarian bagidua : misalkan diberikan larik L dengan 8 buah elemen ynag sudah terurut menurun seperti di bawah ini:
81 76 21 18 16 13 10 7
1 2 3 4 5 6 7 8

Notasi Algoritmik Notasi bahasa pascal
Procedure binary_search
DEKLARASI
L: array[1..10] of integer
x,i,j,k: integer
ketemu: boolean
ALGORITMA:
readln(x)
L[1] 81
L[2] 76
L[3] 21
L[4] 18
L[5] 16
L[6] 13
L[7] 10
L[8] 7
Ketemu FALSE;
i 1
j 10
while (i<=j) and (not ketemu) do begin k (i+j) div 2 if (L[k]=x) then ketemu TRUE else if (L[k]>x) then
j k-1
else
i k+1
endif
endif
endwhile
if ketemu then
writeln('Ditemukan!')
else
writeln('Tidak ditemukan!');
endif
program pencarian;

procedure binary_search;
var
L: array[1..10] of integer;
x,i,j,k: integer;
ketemu: boolean;

begin
write('Angka yang dicari= '); readln(x);
L[1]:=81; L[2]:=76; L[3]:=21; L[4]:=18; L[5]:= 16;
L[6]:=13; L[7]:=10; L[8]:=7;
ketemu:=FALSE;
i:=1;
j:=10;
while (i<=j) and (not ketemu) do begin k:=(i+j) div 2; if (L[k]=x) then ketemu:=TRUE else if (L[k]>x) then
j:=k-1
else
i:=k+1;
end;
if ketemu then
writeln('Ditemukan!')
else
writeln('Tidak ditemukan!');
end;

begin

binary_search;

end.
Program pencarian

DEKLARASI
Procedure seq_search
ALGORITMA:
binary_search






2. PENGURUTAN (Shorting)

1. Pendahuluan
Pengurutan (sorting) adalah proses mengatur sekumpulan objek menurut urutan dan susunan tertentu. Masalah pengurutan dapat ditulis sebagai berikut:
Diberikan larik L dengan n elemen yang sudah terdefinisi elemen-elemennya. Urutan larik tersebut sehingga tersusun secara menaik (ascending):
L[1] ≤ L[2] ≤ L[3] ≤....≤ L[n]

Atau secara menurun (descending):
L[1] ≥ L[2] ≥ L[3] ≥ ....≥ L[n]

Data yang diurut dapat berupa data bertipe dasar atau tipe terstruktur (record). Jika data bertipe terstruktur, maka harus dispesifikasikan berdasarkan field apa data tersebut diurutkan. Field yang dijadikan dasar pengurutan dikenal sebagai field kunci.
Algoritma yang sering ditemukan dalam literatur-literatur komputer antara lain: Bubble Sort, Selection Sort (Maximum Sort dan Minimum Sort), Insertion Sort, Heap Sort, Shell Sort, Quick Sort, Merge Shorte, Radix Sort, tree sort. Dalam modul ini tidak akan membahas semua algoritma pengurutan tersebut, tetapi hanya tiga buah algoritma pengurutan yang sederhana saja, yaitu:
 Metode Pengurutan Apung (Bubble Sort),
 Metode Pengurutan Seleksi (Selection Sort),
 Metode Pengurutan Sisip (Shell Sort)

2. Kegiatan Praktikum
.4.1. Kegiatan Praktikum 1
i. Uraian dan contoh

4.1.1 Algoritma Pengurutan Apung (Bubble Sort)
Prinsip pengapungan digunakan pada pengurutan apung. Apabila kita menginginkan larik terurut menaik, maka elemen larik yang berharga paling kecil ” diapungkan”, artinya diangkat ke ”atas” (atau ke ujung kiri larik) melalui proses pertukaran. Pengapungan ini dilakukan sebanyak n-1 langkah (satu langkah tersebut juga satu kali pass) dengan n adalah ukuran larik. Pada akhir setiap langkah ke-i, larik [1..n] akan terdiri atas dua bagian yaitu bagian yang sudah terurut, yaitu L[1..i], dan bagian yang belum terurut, L[i+1..n]. Setelah langkah terakhir, diperoleh larik L[1..n] yang terurut menaik. Lihat gambar.1:
1 i i+1 n
Sudah terurut Belum terurut
Gambar.1 Bagian larik yang terurut pada metode pengurutan apung

Prosedur pengurutan apung (Bubble Sort) agar larik L terurut menaik adalah sebagai berikut:
Procedure bubblesort(var L:larikint; n:integer);

Var
i : integer ;
k : integer ;
temp : integer ;

begin
for i := 1 to n-1 do
for k := n downto i+1 do
if L[ k ] < L [ k-1 ] then temp := L[ k ]; L[ k ]:= L[ k-1]; L[ k-1]:= temp; End; Prosedur pengurutan apung (Bubble Sort) dengan memanfaatkan prosedur Tukar, sebagai berikut : Procedure bubblesort_naik(var L : larikint ; n : integer); Var i : integer ; k : integer ; procedure tukar (var a : integer ; b : integer); var temp : integer ; begin temp := a ; a := b ; b := temp ; end ; begin for i := 1 to n-1 do for k := n downto i+1 do if L[ k ] < L [ k-1 ] then Tukar (L [k], L[k-1]); End; Prosedur pengurutan apung (Bubble Sort) agar larik L terurut menurun adalah sebagai berikut: Procedure bubblesort_turun(var L : larikint ; n : integer); Var i : integer ; k : integer ; procedure tukar (var a : integer ; b : integer); var temp : integer ; begin temp := a ; a := b ; b := temp ; end ; begin for i := 1 to n-1 do for k := n downto 1 do if L[ k ] < L [ k-1 ] then Tukar (L [k], L[k-1]); End; Contoh 4.1: program pengurutan bublesort dengan larik terurut menaik! program urut; uses wincrt; var L: array [1..100] of integer; i,k,n,temp : integer; procedure input; begin writeln ('Data sebelum diurutkan'); write('masukkan data= '); readln(n); for i:=1 to N do begin write('L[' ,i, ']= ');readln (L[i]) ; end; end; procedure bublesort; begin for i:=1 to N-1 do begin for k :=N downto i+1 do begin if L[k] < L[k-1] then begin temp :=L[k]; L[k] := L[k-1]; L[k-1] :=temp; end; end; end; end; begin input; writeln; bublesort; writeln ('Data setelah diurutkan '); for i:=1 to N do begin writeln ('L[' ,i, '] = ',L[i]); end; writeln; end. .4.2. Kegiatan Praktikum  Uraian dan contoh Algoritma Pengurutan Seleksi (Selection Sort) Pengurutan Seleksi (Selection Sort) adalah memilih elemen maksimum/minimum dari larik, lalu menempatkan elemen maksimum/minimum itu pada awal atau akhir larik (elemen terujung) (Lihat gambar 2). Selanjutkan elemen terujung tersebut “diisolasi” dan tidak disertakan pada proses selanjutnya. Proses yang sama diulang untuk elemen larik yang tersisa, yaitu memilih elemen maksimum/minimum berikutnya dan mempertukarkannya dengan elemen terujung larik sisa. Proses memilih nilai maksimum/minimum dilakukan pada setiap pass. Jika larik berukuran n, maka jumlah pass adalah n-1. Sebelum : 1 n Belum terurut Sesudah : 1 N Belum terurut terurut Ada dua varian algoritma pengurutan seleksi ditinjau dari pemilihan elemen maksimum/minimum, yaitu : 1) Algoritma pengurutan seleksi-maksimum, yaitu memilih elemen maksimum sebagai basis pengurutan. Prosedur pengurutan seleksi – maksimum untuk pengurutan menaik, sebagai berikut: Procedure selectionsortmax_naik(var L : larikint ; n : integer ); Var i : integer ; j : integer ; imaks: integer ; maks : integer ; temp : integer ; begin for i := n downto 2 do imaks := 1; maks := L[1]; for j := 2 to i do if L[ j ] > maks then
imaks := j ;
maks := L[ j ] ;
begin
temp := L[ i ] ;
L[ i ] := maks ;
L[imaks] := temp ;
End;
End;

Prosedur pengurutan seleksi – maksimum untuk pengurutan menaik tanpa peubah maks, sebagai berikut:

Procedure selectionsortmax_naik(var L : larikint ; n : integer );
Var
i : integer ;
j : integer ;
imaks: integer ;
temp : integer ;
begin
for i := n down to 2 do
imaks := 1;
for j := 2 to i do
if L[ j ] > L[imaks] then
imaks := j ;
begin
temp := L[ i ] ;
L[ i ] := L[imaks] ;
L[imaks] := temp ;
End;
End;

Prosedur pengurutan seleksi – maksimum dengan memanfaatkan prosedur Tukar, sebagai berikut :
Procedure selectionsortmax_naik(var L : larikint ; n : integer );
Var
i : integer ;
j : integer ;
imaks: integer ;
procedure tukar (var a : integer ; b : integer);
var
temp : integer ;
begin
temp := a ;
a := b ;
b := temp ;
end ;
begin
for i := n down to 2 do
imaks := 1;
for j := 2 to i do
if L[ j ] > L[imaks] then
imaks := j ;
tukar (L[imaks], L[i]);
End;

Prosedur pengurutan seleksi – maksimum agar larik L terurut menurun adalah sebagai berikut:
Procedure selectionsortmax_turun(var L : larikint ; n : integer );
Var
i : integer ;
j : integer ;
imaks: integer ;

procedure tukar (var a : integer ; b : integer);
var
temp : integer ;
begin
temp := a ;
a := b ;
b := temp ;
end ;

begin
for i := 1 to n-1 do
imaks := i;
for j := i+1 to n do
if L[ j ] > L[imaks] then
imaks := j ;
tukar (L[imaks], L[i]);
End;


Contoh 4.2 program pengurutan seleksi maksimum dengan terurut menaik;
program urut;
uses wincrt;
var
L: array [1..100] of integer;
i,j,imaks,n,temp : integer;

procedure input;
begin
writeln ('Data sebelum diurutkan');
write('masukkan banyaknya data= '); readln(n);
for i:=1 to N do
begin
write('L[' ,i, ']= ');readln (L[i]) ;
end;
end;

Procedure selectionsortmax_naik;

begin
for i := n downto 2 do
begin
imaks := 1;
for j := 2 to i do
begin
if L[ j ] > L[imaks] then
imaks := j ;
begin
temp := L[ i ] ;
L[ i ] := L[imaks] ;
L[imaks] := temp ;
end;
end;
end;
end;

begin
input;
writeln;
selectionsortmax_naik;
writeln ('Data setelah diurutkan ');
for i:=1 to N do
begin
writeln ('L[' ,i, '] = ',L[i]);
end;
writeln;
end.


2) Algoritma pengurutan seleksi-minimum, yaitu memilih elemen minimum sebagai basis pengurutan.

Prosedur pengurutan seleksi – minimum dengan agar larik Lterurut menaik, sebagai berikut :
Procedure selectionsortmin_naik(var L : larikint ; n : integer );
Var
i : integer ;
j : integer ;
imin integer ;

procedure tukar (var a : integer ; b : integer);
var
temp : integer ;
begin
temp := a ;
a := b ;
b := temp ;
end ;

begin
for i := 1 to n-1 do
imin := i;
for j := i + 1 to n do
if L[ j ] < L[imin] then imin := j ; tukar (L[imin], L[i]); End; Prosedur pengurutan seleksi – minimum agar larik L terurut menurun adalah sebagai berikut: Procedure selectionsortmin_turun(var L : larikint ; n : integer ); Var i : integer ; j : integer ; imin: integer ; procedure tukar (var a : integer ; b : integer); var temp : integer ; begin temp := a ; a := b ; b := temp ; end ; begin for i := n downto 2 do imin := 1; for j := 2 to i do if L[ j ] < L[imin] then imin := j ; tukar (L[imaks], L[i]); End; Contoh 4.3 : program pengurutan seleksi-minimum dengan terurut menurun! program urut; uses wincrt; var L: array [1..100] of integer; i,j,imin,n,temp : integer; procedure input; begin writeln ('Data sebelum diurutkan'); write('masukkan banyaknya data= '); readln(n); for i:=1 to N do begin write('L[' ,i, ']= ');readln (L[i]) ; end; end; Procedure selectionsortmin_turun; begin for i := n downto 2 do begin imin := 1; for j := 2 to i do begin if L[ j ] < L[imin] then imin := j ; begin temp := L[ i ] ; L[ i ] := L[imin] ; L[imin] := temp ; end; end; end; end; begin input; writeln; selectionsortmin_turun; writeln ('Data setelah diurutkan '); for i:=1 to N do begin writeln ('L[' ,i, '] = ',L[i]); end; writeln; end. .4.3. Kegiatan Praktikum 3  Uraian dan contoh Algoritma Pengurutan Sisipan (Insertion Sort) Pengurutan sisip (insertion Sort) adalah metode pengurutan dengan cara menyisipkan elemen larik pada posisi yang tepat. Pencarian posisi yang tepat dilakukan dengan menyisir larik. Selama penyisiran dilakukan pergeseran elemen larik. Metode pengurutan sisip cocok untuk persoalan menyisipkan elemen baru kepada sekumpulan elemen yang sudah terurut. Prosedur Pengurutan Sisip Untuk Pengurutan Menaik : Procedure insertionsort_naik (var L: larikint; n:integer); Var i : integer ; j : integer ; y : integer ; ketemu : boolean ; begin for i := 2 to n do y := L[ i ] ; j := i – 1 ; ketemu := false ; while (j >= 1) and (not ketemu) do
if y < L [ j ] L [ j+1] := L [ j ] ; j := j-1; else ketemu := true ; L [ j+1] := y; End; Prosedur Pengurutan Sisip Untuk Pengurutan Menurun : Procedure insertionsort_turun (var L: larikint; n:integer); Var i : integer ; j : integer ; y : integer ; ketemu : boolean ; begin for i := 2 to n do y := L[ i ] ; j := i – 1 ; ketemu := false ; while (j >= 1) and (not ketemu) do
if y > L [ j ]
L [ j+1] := L [ j ] ;
j := j-1;
else
ketemu := true ;
L [ j+1] := y;
End;





3. PENJUMLAHAN DUA BUAH MATRIKS
Penjumlahan dua buah matriks A dan B menghasilkan matriks C, atau A+B = C. Penjumlahan dua buah matriks dapat dilakukan bila ukuran matriks A dan ukuran matriks B sama dan kedua matriks sudah terdefinisi nilainya. Matriks C akan berukuran sama dengan matriks A dan B.
Penjumlahan matriks A dan B didefinisikan sebagai berikut :
C [i,j] = A [i,j] + B [i,j] untuk semua i dan j.
Contoh prosedur penjumlahan dua buah matriks :
Procedure jumlahduaMatriks (var M: Matrix ; Nbar, Nkol :integer) ;
Var
i : integer ; {indeks baris}
j : integer ; {indeks kolom}

begin
for i := 1 to Nbar do
begin
for j := 1 to Nkol do
begin
c [i,j] := A [i,j] + B [i,j];
write (c[i,j]);
end;
writeln;
end;
end;



4. PERKALIAN DUA BUAH MATRIKS
Perkalian dua buah matriks A dan B menghasilkan matriks C, yaitu C = A x B. mengalikan dua buah matriks lebih rumit daripada menjumlahkan keduanya. Syarat perkalian matriks A dan matriks B, jumlah kolom matriks A harus sama dengan jumlah baris matriks B.

Misalkan A [1..m,1..n] dan B [1..n,1..p], yang dalam hal ini,
m adalah jumlah baris matriks A,
n adalah jumlah kolom matriks A dan jumlah baris matriks B,
p adalah jumlah kolom matriks B.
hasil perkalian A dan B menghasilkan matriks c[1..m,1..p]

algoritma perkalian matriks:
1. inisialisasi C [i,j] dengan 0, untuk i = 1,2,...,m dan j = 1,2,...,p.
2. untuk setiap baris i = 1,2,...,m pada matriks A lakukan:
untuk setiap baris j = 1,2,...,p pada matriks B lakukan:
untuk setiap baris k = 1,2,...,n pada matriks B lakukan:
C [i,j] = C [i,j] + A [i,k] * B [k,j]

Contoh prosedur perkalian dua buah matriks untuk A dan B yang memiliki jumlah baris yang berbeda :
Procedure perkalianMatriks (var A,B: matrix ; C: matrix ; m,n :integer; p:integer ) ;
Var
NbarC, NkolC :integer;
i, j, k : integer ;

begin
NbarC := m { jumlah baris matriks hasil perkalian }
NkolC := p { jumlah kolom matriks hasil perkalian }

Begin
For i := 1 to m do
Begin
For j := 1 to p do
Begin
c[i,j]:=0;
For k := 1 to n do
C [i,j] = C [i,j] + A [i,k] * B [k,j] ;
Write ( C [i,j] : 4);
End;
Writeln;
End;
End;
End;

Jika A dan B keduanya memiliki jumlah baris dan kolom yang sama (berukuran bujur sangkar (n x n)), hasil perkalian adalah matriks C yang juga berukuran n x n. Contoh procedure perkalian dua buah matriks :
procedure perkalian(var a,b:matrix ; n:integer);
var c : matrix;
i,j,k : integer;
begin
writeln;
writeln('Hasil Perkalian Matriks');
for i:=1 to 3 do
begin
for j:=1 to 3 do
begin
c[i,j]:=0; { inisialisasi C[i,j] dengan 0 }
for k:=1 to 3 do
c[i,j] :=c[i,j]+ a[i,k] * b[k,j];
write(c[i,j]:4);
end;
writeln;
end;
end;
end;





Rabu, 04 Mei 2011

Tugas Algoritma Tentang Mencetak Keterangan Rupiah

konversi bilangan ke string dalam pascal

tugas ttg , menampilkan hasil berbentuk tulisan , dari inputan berupa bilangan.
program nya :

program cetak_nilai_uang;
var
uang : integer ;
begin
writeln('program konversi bilangan');
writeln('===================');
writeln;
write('nilai uang yang ingin di konversi :');readln(uang);
if uang div 100 > 0 then begin
write(uang div 100 , 'ratus');
uang := uang mod 100;
end
else if uang div 10 > 0 ) and (uang > 20) then begin
write(uang div 10, 'puluh');
uang := uang mod 10;
end
else if (uang < 20) and (uang > 10 ) then begin
write('uang mod 10 ,'belas rupiah');
uang := uang mod 10;
else write(uang ,'rupiah');
end.


contoh hasil :

Program konversi bilangan
==================
Nilai Uang 237
2 Ratus 3Puluh 7Rupiah

Sabtu, 02 April 2011

Tugas Pascal Tentang Variabel Global, Daftar Parameter, Fungsi, Prosedur & Daftar Parameter

Pengertian variable lokal,global,daftar parameter, fungsi dan procedure

1 Pengertian variable lokal dan global
(1) Variabel lokal: adalah variabel yang hanya aktif dalam suatu fungsi atau subroutine di dalam visual basic. Caranya dituliskan secara langsu di dalam suatu fungsi satu subroutine tanpa pendefinisian atau dengan definisi variabel di dalam fungsi.
(2) Variabel global dalam form: adalah variabel yang aktif selam satu form berjalan, bila pindah ke form yag lain maka variabel ini tidak aktif. Ini dapat dilakukan dengan mendefinisikan variabel di luar subroutine, biasanya diletakkan pada baris paling atas dari suatu form. Contohnya Dim a as integer diletakkan pada baris paling atas, maka variabel a selalu aktif selama form aktif.
(3) Variabel global dalam aplikasi: adalah variabel yang aktif selama aplikasi masih aktif. Variabel ini masih aktif meskipun form yang berjalan sudah berganti. Untuk mendefinisikan variabel ini dilakukan dengan menambahkan modul dan pendefinisian dengan global.
baca sumber lengkap pada erikgundar.wordpress.com



2 Pengertian parameter :
Parameter adalah data masukan untuk subprogram yang nantinya akan diproses lebih lanjut dalam subprogram tersebut. Dalam Pascal, dikenal dua macam parameter yaitu :
(1) Parameter nilai (value parameter), dan
(2) Parameter referensi (reference parameter).
sumber lengkap erikgundar.wordpress.com


3 pengertian fungsi :
Fungsi adalah subprogram yang menerima masukan dan mempunyai keluaran secara . Cara mendeklarasikan sebuah fungsi adalah sebagai berikut :
function B : integer; { nama fungsi adalah B dengan }
begin { tipe data keluaran adalah integer }
{ statement }
:= 3; { nilai yang dikeluarkan fungsi }
end;
baca sumber lengkap erikgundar.wordpress.com


4 Procedure dan daftar parameter :
Prosedur adalah subprogram yang menerima masukan tetapi tidak mempunyai keluaran secara langsung. Cara mendeklarasikan sebuah prosedur adalah sebagai berikut :
A; { nama prosedur adalah A }
begin
statement }
;
Pendeklarasian prosedur di atas adalah untuk prosedur yang tidak memerlukan parameter. Parameter adalah data masukan untuk subprogram yang nantinya akan lebih lanjut dalam subprogram tersebut. Dalam Pascal, dikenal dua macam parameter yaitu :
1) Parameter nilai (value parameter), dan
2) Parameter referensi (reference parameter).
Cara mendeklarasikan parameter tersebut adalah sebagai berikut :
procedure B(X : integer; var Y : integer);
baca sumber lengkap erikgundar.wordpress.com

Selasa, 29 Maret 2011

Tugas Komunikasi Data Teentang Kode ASCII, BCD, BCDIC, EBCDIC, BAUDOT

Kode ASCII, BCD, BCDIC, EBCDIC, BAUDOT
00:50 Taufik Ramadhan Firdaus


ASCII Kode
Kode Standar Amerika untuk Pertukaran Informasi atau ASCII (American Standard Code for Information Interchange) merupakan suatu standar internasional dalam kode huruf dan simbol seperti Hex dan Unicode tetapi ASCII lebih bersifat universal, contohnya 124 adalah untuk karakter "|". Ia selalu digunakan oleh komputer dan alat komunikasi lain untuk menunjukkan teks. Kode ASCII sebenarnya memiliki komposisi bilangan biner sebanyak 8 bit. Dimulai dari 0000 0000 hingga 1111 1111. Total kombinasi yang dihasilkan sebanyak 256, dimulai dari kode 0 hingga 255 dalam sistem bilangan Desimal



BCD Kode
Binary Coded Decimal (BCD or "8421" BCD) numbers are made up using just 4 data bits (a nibble or half a byte) similar to the Hexadecimal numbers we saw in the binary tutorial, but unlike hexadecimal numbers that range in full from 0 through to F, BCD numbers only range from 0 to 9, with the binary number patterns of 1010 through to 1111 (A to F) being invalid inputs for this type of display and so are not used as shown below.

Decimal Binary Pattern BCD
8 4 2 1
0 0 0 0 0 0
1 0 0 0 1 1
2 0 0 1 0 2
3 0 0 1 1 3
4 0 1 0 0 4
5 0 1 0 1 5
6 0 1 1 0 6
7 0 1 1 1 7
Decimal Binary Pattern BCD
8 4 2 1
8 1 0 0 0 8
9 1 0 0 1 9
10 1 0 1 0 Invalid
11 1 0 1 1 Invalid
12 1 1 0 0 Invalid
13 1 1 0 1 Invalid
14 1 1 1 0 Invalid
15 1 1 1 1 Invalid


BCD to 7-Segment Display Decoders
A binary coded decimal (BCD) to 7-segment display decoder such as the TTL 74LS47 or 74LS48, have 4 BCD inputs and 7 output lines, one for each LED segment. This allows a smaller 4-bit binary number (half a byte) to be used to display all the denary numbers from 0 to 9 and by adding two displays together, a full range of numbers from 00 to 99 can be displayed with just a single byte of 8 data bits.


BCD to 7-Segment Decoder

The use of packed BCD allows two BCD digits to be stored within a single byte (8-bits) of data, allowing a single data byte to hold a BCD number in the range of 00 to 99.
An example of the 4-bit BCD input (0100) representing the number 4 is given below.
Example No1


In practice current limiting resistors of about 150Ω to 220Ω would be connected in series between the decoder/driver chip and each LED display segment to limit the maximum current flow. Different display decoders or drivers are available for the different types of display available, e.g. 74LS48 for common-cathode LED types, 74LS47 for common-anode LED types, or the CMOS CD4543 for liquid crystal display (LCD) types.
Liquid crystal displays (LCD´s) have one major advantage over similar LED types in that they consume much less power and nowadays, both LCD and LED displays are combined together to form larger Dot-Matrix Alphanumeric type displays which can show letters and characters as well as numbers in standard Red or Tri-colour outputs.



BCDIC Kode
EBCDIC Kode
ASCII is not the only format in use out there. IBM adopted EBCDIC (Extended Binary Coded Decimal Interchange Code) developed for punched cards in the early 1960s and still uses it on mainframes today. It is probably the next most well known character set due to the proliferation of IBM mainframes. It comes in at least six slightly differing forms, so again here is the most common.








EBCDIC
Dari Wikipedia bahasa Indonesia, ensiklopedia bebas
Belum Diperiksa
Langsung ke: navigasi, cari
EBCDIC (Inggris: Extended Binary Coded Decimal Interchange Code) adalah kode 8 - bit untuk huruf yang dipakai pada sistem operasi komputer merk IBM, seperti z/OS, OS/390, VM, VSE, OS/400, dan i5/OS. Kode EBCDIC ini juga dipakai untuk beberapa jenis komputer lain seperti Fujitsu-Siemens BS2000/OSD, HP MPE/iX, dan Unisys MCP. Kode ini merupakan pengembangan dari kode 6-bit yang dipakai untuk kartu berlubang (punched card) pada komputer IBM antara akhir tahun 1950an dan awal tahun 1960an.
Variasi dari kode EBCDIC ini disebut CCSID 500 yang ditampilkan pada tabel di bawah ini dalam format bilangan komputer hexadesimal. Kode 00 sampai 3F dipakai untuk huruf kendali, kode 40 untuk spasi, dll.
-0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -A -B -C -D -E -F
0- NUL
00 SOH
01 STX
02 ETX
03 SEL
HT
09 RNL
DEL
7F GE
SPS
RPT
VT
0B FF
0C CR
0D SO
0E SI
0F
1- DLE
10 DC1
11 DC2
12 DC3
13 RES
ENP
NL
BS
08 POC
CAN
18 EM
19 UBS
CU1
IFS
1C IGS
1D IRS
1E IUS
ITB
1F
2- DS
SOS
FS
WUS
BYP
INP
LF
0A ETB
17 ESC
1B SA
SFE
SM
SW
CSP
MFA
ENQ
05 ACK
06 BEL
07
3-

SYN
16 IR
PP
TRN
NBS
EOT
04 SBS
IT
RFF
CU3
DC4
14 NAK
15
SUB
1A
4- SP
20 RSP
A0 â
E2 ä
E4 à
E0 á
E1 ã
E3 å
E5 ç
E7 ñ
F1 [
5B .
2E < 3C ( 28 + 2B ! 21 5- & 26 é E9 ê EA ë EB è E8 í E0 î EE ï EF ì ED ß DF ] 5D $ 24 * 2A ) 29 ; 3B ^ 5E 6- - 2D / 2F Â C2 Ä C4 À C0 Á C1 Ã C3 Å C5 Ç C7 Ñ D1 ¦ A6 , 2C % 25 _ 5F >
3E ?
3F
7- ø
F8 É
C9 Ê
CA Ë
CB È
C8 Í
CD Î
CE Ï
CF Ì
CC `
60 :
3A #
23 @
40 '
27 =
3D "
22
8- Ø
D8 a
61 b
62 c
63 d
64 e
65 f
66 g
67 h
68 i
69 «
AB »
BB ð
F0 ý
FD þ
FE ±
B1
9- °
B0 j
6A k
6B l
6C m
6D n
6E o
6F p
70 q
71 r
72 ª
AA º
BA æ
E6 ¸
B8 Æ
C6 ¤
A4
A- µ
B5 ~
7E s
73 t
74 u
75 v
76 w
77 x
78 y
79 z
7A ¡
A1 ¿
BF Ð
D0 Ý
DD Þ
DE ®
AE
B- ¢
A2 £
A3 ¥
A5 •
B7 ©
A9 §
A7 ¶
B6 ¼
BC ½
BD ¾
BE ¬
AC |
7C ¯
AF ¨
A8 ´
B4 ×
D7
C- {
7B A
41 B
42 C
43 D
44 E
45 F
46 G
47 H
48 I
49 SHY
AD ô
F4 ö
F6 ò
F2 ó
F3 õ
F5
D- }
7D J
4A K
4B L
4C M
4D N
4E O
4F P
50 Q
51 R
52 ¹
B9 û
FB ü
FC ù
F9 ú
FA ÿ
FF
E- \
5C ÷
F7 S
53 T
54 U
55 V
56 W
57 X
58 Y
59 Z
5A ²
82 Ô
D4 Ö
D6 Ò
D2 Ó
D3 Õ
D5
F- 0
30 1
31 2
32 3
33 4
34 5
35 6
36 7
37 8
38 9
39 ³
83 Û
D8 Ü
DC Ù
D9 Ú
DA EO



BAUDOT Kode
This table presents a programmer's quick reference to the "Baudot" character set.
IMPORTANT NOTE: The code presented here is with reference to usage in the computer industry. The original, true, baudot code differs from that presented below. The following table presents CCITT Alphabet No 2 which was developed from Murray's code which was in turn developed from Baudot's code. Baudot's code was replaced by Murray's code in 1901. And ITA2 replaced both by the early 1930's, so virtually all "teletype" equipment made in the U.S. uses ITA2 or the U.S. national version of the code.
The 'baudot' code has been used extensively in telegraph systems. It is a five bit code invented by the Frenchman Emile Baudot in 1870. Using five bits allowed 32 different characters. To accomodate all the letters of the alphabet and numerals, two of the 32 combinations were used to select alternate character sets. The figures column is valid after a figures shift character has been received. It remains in effect until a letters shift is received, after which the letters column should be referred to (and vice-versa).
Two 'Baudot codes' are in common useage. The first as used in America. The second, used in Europe, is also termed the CCITT Alphabet No. 2. In each, the 'letters' are identical, but the 'figures' differ.
The five-bit words are bracketed by a start bit (space) and a stop bit (mark). Idling is shown by the 'marking' state. Words are transmitted LSB first.

Binary Decimal Hex Octal Letter U.S.
Figures CCITT No.2
Figures
00000 0 0 0 N/A N/A N/A
00001 1 1 1 E 3 3
00010 2 2 2 LF LF LF
00011 3 3 3 A - -
00100 4 4 4 Space Space Space
00101 5 5 5 S BELL '
00110 6 6 6 I 8 8
00111 7 7 7 U 7 7
01000 8 8 10 CR CR CR
01001 9 9 11 D $ WRU
01010 10 A 12 R 4 4
01011 11 B 13 J ' Bell
01100 12 C 14 N , ,
01101 13 D 15 F ! !
01110 14 E 16 C : :
01111 15 F 17 K ( (
10000 16 10 20 T 5 5
10001 17 11 21 Z " +
10010 18 12 22 L ) )
10011 19 13 23 W 2 2
10100 20 14 24 H # £
10101 21 15 25 Y 6 6
10110 22 16 26 P 0 0
10111 23 17 27 Q 1 1
11000 24 18 30 O 9 9
11001 25 19 31 B ? ?
11010 26 1A 32 G & &
11011 27 1B 33 Figures Shift Figures Shift Figures Shift
11100 28 1C 34 M . .
11101 29 1D 35 X / /
11110 30 1E 36 V ; =
11111 31 1F 37 Letters Shift Letters Shift Letters Shift

Selasa, 22 Maret 2011

Tugas algoritma Array

Definisi Algoritma Menurut Adit Maud

.ARRAY
Array adalah suatu struktur yang terdiri dari sejumlah
elemen yang memiliki tipe data yang sama. Elemen-elemen
array tersusun secara sekuensial dalam memori komputer.

a)Array Satu Dimensi

Array Satu dimensi tidak lain adalah kumpulan
elemen-elemen identik yang tersusun dalam satu baris.
Elemen-elemen tersebut memiliki tipe data yang sama,
tetapi isi darielemen tersebut boleh berbeda.
Bentuk umum:
NamaArray[n] = {elemen0, elemen1, elemen2,.....,n};
n = jumlah elemen
b)Array Dua Dimensi

Array dua dimensi sering digambarkan sebagai sebuah matriks,
merupakan perluasandari array satu dimensi.
Bentuk umum:
NamaArray [m][n];
Atau
NamaArray [m][n] = { {a,b,..z},{1,2,...,n-1} };
Contoh:
double matrix[4][4];
bool papan[2][2] = { {true,false},{true,false} };
Pendeklarasian array dua dimensi hampir sama
dengan pendeklarasian array satudimensi,
kecuali bahwa array dua dimensi terdapat dua
jumlah elemen yang terdapat di dalam kurung
siku dan keduanya boleh tidak sama.


Definisi Algoritma Menurut Syamsuryadi
Syamsuryadi Program Ilmu Komputer

. LARIK (ARRAY)
Array (larik) ialah penampung sejumlah data sejenis (homogen) yang menggunakan satu
identifier (pengenal).
Masing-masing elemen larik diakses menggunakan indeks (subscript) dari nol sampai n-1 (n
menyatakan jumlah elemen larik).
Pengolahan data larik harus per elemen. Elemen larik dapat diakses langsung (acak), maksudnya
untuk memanipulasi elemen keempat tidak harus melalui elemen kesatu, kedua dan ketiga.
Berdasarkan banyaknya indeks larik dibagi menjadi satu dimensi dan multi dimensi (dua
dimensi, tiga dimensi).

1.1 Larik Satu Dimensi
Bentuk umum larik satu dimensi dideklarasikan dengan
tipe_data menyatakan jenis elemen larik (int, float, char, unsigned, dan lain-lain), tidak
boleh jenis void.
nama_larik adalah nama larik, harus memenuhi ketentuan pengenal.
ukuran menyatakan jumlah maksimal elemen larik, normalnya lebih besar dari satu.
Contoh:
int nilai[4];
? ? ? ?
nilai[0] nilai[1] nilai[2] nilai[3]
untuk memberi nilai ke elemen larik dengan cara
1. memberikan nilai langsung (assignment)
nilai[2] ← 5 (nilai[2]=5;), artinya kita memberikan nilai 5 ke elemen larik yang berindeks
2;
2. memasukkan nilai melalui papan ketik (keyboard)
cin>> nilai[2]; atau scanf(“%d”, &nilai[2]);
untuk mengakses (membaca) elemen larik dengan cara akses berikut.
nama_larik[indeks];
contoh: nilai[2];
atau
cout<
#include
main()
{ int bil[7], i;
clrscr();
printf("elemen pertama ? "); scanf("%d", &bil[0]);
bil[1] = 5;
bil[2] = bil[1] + 20;
for (i = 4; i < 7; i++) bil[i] = i * 10; bil[3] = bil[bil[1]]; for (i = 0; i < 7; i++) printf("bil[%d] = %d \n", i, bil[i]); } tipe_data nama_larik[ ]= {konstanta_1, konstanta_2,…,konstanta_n}; Algoritma dan Pemrograman II (3 SKS) Larik (Array) Syamsuryadi Program Ilmu Komputer halaman 3 dari 6 int array[ ] = {26,7,82,166}; cout<
void ubah(int x[]);
void main()
{
int ujian[] = {90,95,78,85};
ubah(ujian);
cout<<" Elemen kedua dari array ujian adalah "<<> B[2][1]; atau scanf(“%d”, &B[2][1]);
untuk mengakses (membaca) elemen matriks dengan cara akses berikut.
nama_larik[baris][kolom]; contoh B[2][1];
atau
cout<
#include
main()
{ int B[3][4],i,j;
clrscr();
for (i=0;i<=2;i++)
{
for (j=0;j<=3;j++)
{
printf("B[%d,%d] = ",i+1,j+1); scanf("%d", &B[i][j]);
}
}
printf("\n");
for (i=0; i<=2;i++)
{
for (j=0; j<=3;j++)
printf("%d ",B[i][j]);
if (j=3) printf("\n");
}
return 0;
}
Algoritma dan Pemrograman II (3 SKS) Larik (Array)

1.2.1 Inisialisasi Matriks
Misalkan ada matriks sebagai berikut:




4 5 6
1 2 3
Dapat dinyatakan dengan perintah berikut ini.
int mat[2][3] = {{1, 2, 3}, {4, 5, 6}};
1.2.2 Menjumlahkan Dua Buah Matriks
Menjumlahkan dua buah matriks A dan B menghasilkan matriks C atau A + B = C
hanya dapat dilakukan bila ukuran matriks A dan ukuran matriks B sama, dan kedua
matriks sudah terdefinisi harganya (elemennya sudah terisi). Matriks C juga berukuran
sama dengan matriks A dan B. Penjumlahan matriks A dan B didefinisikan sebagai
berikut:
C[i,j] = A[i,j] + B[i,j] untuk setiap i dan j.
Contoh:
A =
  


  


2 3 1
2 2 1
1 2 1
B =
  


  


2 5 2
1 4 3
3 2 4
Prosedur untuk menjumlahkan matriks sebagai berikut.
atau
Kamus
const min_baris : integer = 1
const maks_baris : integer = 3
const min_kolom : integer = 1
const maks_kolom : integer = 3
type matriks : matrix[min_baris..maks_baris, min_kolom..maks_kolom] of integer
Kamus
const int maks_baris = 3
const int maks_kolom = 3
int matriks [maks_baris] [maks_kolom]


Kesimpulan:
Jadi menurut saya Algoritma Array adalah Suatu data yg menampung sejumlah elemen yg sama di dalam komputer yg menggunakan suatu identifer(pengenal).

Tugas Komunikasi Data

Jaringan komputer
Prinsip komunikasi data
Komunikasi merupakan proses penyampaian pesan dari seseorang kepada orang lain hingga terjadi penegrtian yang sama. Untuk mencapai pengertian yang sama ini digunakan bahasa yang dimengerti. Dalam komunikasi data jaringan dibutuhkan penerjemah (interpreter) yang disebut dengan protokol.
Prinsip komunikasi data memerlukan protocol sebagai saluran yang mengatur komunikasi diantara beberapa komputer dalam sebuah jaringan. Protokol adalah seperangkat aturan dan procedure yang mengendalikan pertukaran informasi antara dua system yang berkomunikasi. Untuk dapat dapat berkomunikasi kedua system harus menggunakan protocol yang sama. Protokol yang terdapatar dalam jaringan komputer fisik adalah sebagai berikut :

a.Ethernet.
Protokol ini paling banyak digunakan dalam system jaringan.Ethernet bekerja dengan memperhatikan kabel dalam network atau jaringan sebelum dilakukan transformasi atau transmisi data. Bila dalam kabel jaringan tidak terdapat aktifitas, maka computer akan mentransmisikan data. Bila dalam kabel terdapat aktifitas transmisi data lain, maka computer akan menunggu dan mencoba kembali mentransmisi data jika kabel jaringan telah bersih dari transmisi data computer lain. Bila terdapat beberapa computer yang melakukan transmisi data bersamaan, maka masing-masing computer akan mundur dan menunggu secara acak untuk mentransmisikan data kembali, yang disebut cara kolisi (collision). Ethernet mendukung kecepatan transfer data sampai 10Mbps, Protokol ini digunakan pada topologi Bus dan Star.


b.Localtalk
Protokol ini dapat melewati port serial dengan menggunakan adapter localtalk dan kabel twisted pair. Dan jaringan ini hanya memungkinkan jaringan secara peer to peer tanpa membutuhkan tambahan aplikasi khusus. Kecepatan transmisi hanya 230 Kbps yang merupakan kelemahan protocol ini.Protokol ini digunakan pada topologi Bus dan Star dengan menggunakan kabel twisted pair.


c.TokenRing
Protokol ini adalah melalui sebuah token dalam sebuah lingkaran seperti cincin dan transmisi antar simpul dikendalikan oleh peredaran token. Token digunakan mengendalikan akses pada media transmisi dengan jalan memutar dari stasiun ke stasiun lain dijaringan tersebut. Stasiun yang mendapat token dapat mengirim data dengan kata lain datan dimasukkan ke dalam tokon dan ketika token berada di simpul tujuan maka data tersebut diberikan. Kecepatan protocol ini dalam transmisi data antara 4 Mbps sampai 16 Mbps. Protokol ini digunakan pada topologi Star dengan kabel twisted pair atau kabel serat optic.



d.FDDI (Fiber Distributed Data Interface)
Protokol ini berbasis pada protocol token ring. FDDI terdiri dari dua token ring, satu ring berfungsi sebagai ring backup jika seandainya ada ring yang putus. Sebuah ring FDDI memiliki kecepatan transmisi data sebesar 100 Mbps dan kabel yang digunakan adalah serat optic. Protokol ini digunakan pada topologi dual ring.


e.ATM (Asynchronous Transfer Mode).
Protokol ini merupakan protocol jaringan yang mendukung transmisi data yang berbentuk gambar atau video dan audio. Dan protocol ini umumnya digunakan untuk menghubungkan dua atau lebih jaringan LAN. Protokol ini digunakan pada topologi Star menggunakan kabel twisted pair atau serat optic. Kecepatan transmisi data pada protocol ini antara 155 – 2488 Mbps.

Maka dari itu prinsip komunikasi data pada masing-masing protocol yang digunakan sangat mempengaruhi dan menentukan dalam desain suatu jaringan, kabel yang digunakan, dan kecepatan akses atau transmisi datanya.

Dua protokol terakhir cenderung digunakan pada jaringan besar sebagai backbone (jaringan tulang punggung yang menghubungkan banyak segmen jaringan yang lebih kecil).

Komunikasi dengan menggunakan kabel dan nirkabel.

Umumnya untuk menghubungkan satu computer dengan computer lainnya dalam Jaringan menggunakan kabel atau tanpa kabel (nirkabel). Jaringan yang menggunakan kabel melakukan transmisi data dari computer satu ke yang lainnya melewati kabel-kabel. Sedangkan pada jaringan nirkabel transmisi data menggunakan gelombang radio. Jaringan nirkabel atau wireless mengirim dan menerima data melalui jalur udara sehingga meminimalkan kabel sebagai penghubung. Seperti computer Notebook dan PDA (Personal Data Assistant) merupakan computer yang dapat digunakan dengan jaringan tanpa menggunakan kabel.
Jaringan nirkabel ini mempunyai keuntungan dibandingkan dengan jaringan kabel yaitu :

• Jaringan nirkabel menyediakan pengakses secara realtime kepada pengguna LAN selama batas aksesnya.
• Proses installasi jaringan ini cepat dan mudah tidak membutuhkan kabel.
• Jaringan nirkabel sangat fleksibel terhadap tempat.
• Konfigurasi jaringan dapat diubah menjadi peer to peer untuk pengguna yang lebih sedikit.

Disamping keuntungan jaringan nirkabel ada kekurangannya yaitu :

• Transmisi data hanya 1-2 Mbps yang jauh lebih rendah dibanding dengan jaringan kabel.
• Biaya yang cukup mahal.
• Transmisi data dari computer yang berbeda dapat mengganggu satu sama lainnya.
• Kapasitas jaringannya memiliki keterbatasan, yang disebabkan spectrumnya tidak besar (pita frekuensi tidak dapat diperbesar).
• Keamanan dan kerahasiaan data kurang terjamin.


Antarmuka komputer dan saluran komunikasi.

Apa sebenarnya yang membentuk jaringan komputer? Jawabannya jelas, komputer. Tapi bagaimana komputer-komputer tersebut saling terhubung? Ada dua macam, perangkat keras (peripheral) dan perangkat lunak (software). Perangkat keras yang dimaksud di sini mencakup

• network interface card (NIC),
• hub,
• switch dan bridge,
• router,
• kabel,
• perangkat lunak OS

Perangkat lunak yang jelas dibutuhkan adalah sistem operasi jaringan. Tulisan untuk pemula ini bertujuan menjelaskan apa dan bagaimana masing-masing perangkat keras yang telah disebutkan di atas.
Sebagai gambaran awal, Anda bisa melihat diagram yang melengkapi tulisan ini untuk mengetahui posisi setiap komponen. Komponen standar sebuah jaringan sederhana adalah Network interface card, hub dan kabel. Dengan ketiga komponen ini, Anda sudah bisa membuat suatu jaringan komputer !

1.5.1 Network Interace Card
Network interface card adalah kartu -- maksudnya papan elektronik -- yang ditanam pada setiap komputer yang terhubung ke jaringan. Beberapa komputer desktop yang dijual di pasaran saat ini sudah dilengkapi dengan kartu ini. Saat Anda membeli komputer, Anda bisa menanyakan penjualnya apakah pada komputer sudah dipasangkan NIC. Jika belum Anda bisa meminta penjualnya untuk memasangkan, atau Anda bisa membelinya dan memasangnya sendiri.
Dalam memilih NIC, Anda harus menyesuaikan dengan tipe kabel yang telah/akan Anda pasang. Port/colokan untuk kabel UTP berbentuk mirip dengan kabel telepon tetapi sedikit lebih besar, port ini dikenal sebagai RJ-45. Ada beberapa kartu yang mendukung dua atau lebih tipe kabel. Namun jika Anda hanya akan menggunakan satu tipe kabel, pilihlah kartu yang mendukung satu tipe kabel saja karena harganya akan jauh lebih murah.
Saat ini hampir semua NIC yang beredar di pasaran sudah mendukung Plug-n-Play (NIC secara otomatis dikonfigurasi tanpa intervensi pengguna), tetapi ada baiknya Anda pastikan bahwa NIC yang Anda beli memang mendukung PnP.

Kabel
Kabel merupakan komponen penting dalam jaringan. Kabellah yang membuat data bisa mengalir di jaringan -- kecuali jika Anda menggunakan jaringan tanpa kabel (wireless). Jangan sampai Anda memilih kabel berkualitas jelek, walaupun harganya murah. Ada beberapa alasan untuk hal ini, di antaranya adalah:
1. Investasi untuk kabel biasanya hanya dilakukan sekali pada saat awal instalasi jaringan.
2. Kabel jaringan cenderung disembunyikan di balik dinding atau di bawah lantai. Jika Anda menggunakan kabel bermutu rendah dan suatu saat ditemukan ada masalah pada kabel, maka usaha untuk membongkar dan memasang kembali kabel akan jauh lebih mahal dibandingkan harga yang Anda bayar untuk mendapatkan kabel kualitas bagus yang tak merepotkan.
Dari sisi kabel, ada beberapa tipe kabel yang digunakan banyak orang, yaitu:
• UTP (unshielded twisted pair),
• coaxial,
• fiber optik.
Seperti sudah disebutkan sebelumnya, ada tiga jenis kabel yang dikenal orang. Jenis kabel yang banyak dipilih orang -- terutama untuk jaringan kecil -- saat ini adalah UTP. Beberapa perusahaan/lembaga yang cukup kaya memang cenderung memilih kabel fiber optik, karena dukungan untuk pengembangan ke depan yang lebih bagus. Ada pula beberapa pengguna yang hanya menggunakan kabel fiber optik untuk backbone dan menggunakan UTP pada segmen-segmen jaringannya.
Namun memilih UTP mungkin paling masuk akal jika jaringan Anda tak terlalu besar -- ingat masih banyak komponen lain yang peerlu Anda beli. Dari sisi pemasangan, UTP bisa dibilang paling tak merepotkan, Anda bisa memasangnya sendiri dengan hanya sedikit pengalaman. Jadi jika sekarang Anda sedang bersiap membangun jaringan, rasanya pilihan paling tepat adalah menggunakan kabel UTP. Kabel fiber optik akan lebih masuk akal jika digunakan pada backbone, nanti jika jaringan Anda sudah semakin besar dan ban banyak segmen yang harus saling terhubung.

Hub
Secara sederhana, hub adalah perangkat penghubung. Pada jaringan bertopologi star, hub adalah perangkat dengan banyak port yang memungkinkan beberapa titik (dalam hal ini komputer yang sudah memasang NIC) bergabung menjadi satu jaringan. Pada jaringan sederhana, salah satu port pada hub terhubung ke komputer server. Bisa juga hub tak langsung terhubung ke server tetapi juga ke hub lain, ini terutama terjadi pada jaringan yang cukup besar. Hub memiliki 4 - 24 port plus 1 port untuk ke server atau hub lain. Sebagian hub -- terutama dari generasi yang lebih baru -- bisa ditumpuk (stackable) untuk mendukung jumlah port yang lebih banyak. Jumlah tumpukan maksimal bergantung dari merek hub, rata-rata mencapai 5 - 8. Hub yang bisa ditumpuk biasanya pada bagian belakangnya terdapat 2 port untuk menghubungkan antar hub.
Pada jaringan bertopologi bus, ada juga perangkat sejenis hub -- namanya repeater. Sesuai namanya, repeater bekerja memperkuat sinyal agar data bisa mencapai jarak yang lebih jauh.

Bridge & Switch
Bridge adalah perangkat yang berfungsi menghubungkan beberapa jaringan terpisah. Bridge bisa menghubungkan tipe jaringan berbeda (seperti Ethernet dan Fast Ethernet) atau tipe jaringan yang sama. Bridge memetakan alamat Ethernet dari setiap node yang ada pada masing-masing segmen jaringan dan memperbolehkan hanya lalu lintas data yang diperlukan melintasi bridge. Ketika menerima sebuah paket, bridge menentukan segmen tujuan dan sumber. Jika segmennya sama, paket akan ditolak; jika segmennya berbeda, paket diteruskan ke segmen tujuannya. Bridge juga bisa mencegah pesan rusak untuk tak menyebar keluar dari satu segmen.
Switch yang dimaksud di sini adalah LAN switch. Switch adalah perluasan dari konsep bridge. Ada dua arsitektur dasar yang digunakan pada switch, yaitu :
• cut-through
• store-and-forward.
Switch cut-through memiliki kelebihan di sisi kecepatan karena ketika sebuah paket datang, switch hanya memperhatikan alamat tujuannya sebelum meneruskan ke segmen tujuan. Switch store-and-forward, kebalikannya, menerima dan menganalisa seluruh isi paket sebelum meneruskannya ke tujuan. Waktu yang diperlukan untuk memeriksa satu paket memakan waktu, tetapi ini memungkinkan switch untuk mengetahui adanya kerusakan pada paket dan mencegahnya agar tak mengganggu jaringan. Dengan teknologi terbaru, kecepatan switch store-and-forward ditingkatkan sehingga mendekati kecepatan switch cut-through. Di pasaran Anda juga bisa memilih switch hibrid yang menggabungkan arsitektur cut-through dan store-and-forward.
Dengan switch, Anda mendapatkan keuntungan karena setiap segmen jaringan memiliki bandwidth 10Mbps penuh, tidak terbagi seperti pada "shared network." Dengan demikian kecepatan transfer data lebih tinggi. Jaringan yang dibentuk dari sejumlah switch yang saling terhubung disebut "collapsed backbone." Saat ini banyak orang memilih menggunakan jaringan Ethernet 10Mbps pada segmen-segmennya dan Fast Ethernet 100Mbps pada koneksi ke server. Untuk keperluan ini digunakan switch 10/100 yang biasanya memiliki beberapa (4-24) port 10Mbps untuk koneksi ke komputer klien dan 1 port 100Mbps ke komputer server.


Router
Router bekerja dengan cara yang mirip dengan switch dan bridge. Perbedaannya, router menyaring (filter) lalu lintas data. Penyaringan dilakukan bukan dengan melihat alamat paket data, tetapi dengan menggunakan protokol tertentu. Router muncul untuk menangani perlunya membagi jaringan secara logikal bukan fisikal. Sebuah IP router bisa membagi jaringan menjadi beberapa subnet sehingga hanya lalu lintas yang ditujukan untuk IP address tertentu yang bisa mengalir dari satu segmen ke segmen lain. Anda mungkin bingung dengan definisi di atas, tetapi untuk mudah diingat, Anda menggunakan router ketika akan menghubungkan jaringan komputer ke jaringan lain. Jaringan ini bisa berupa jaringan pribadi (LAN/WAN) atau jaringan publik (Internet).

Media Komunikasi Dalam Jaringan
Komputer yang sudah terhubung dalam jaringan LAN, berarti komputer tersebut sudah dapat berbagi sumber daya yang dimilikinya dan dapat melakukan komunikasi antar komputer baik dalam mengirim pesan maupun mengirim file. Media komunikasi dalam jaringan ini terdiri dari beberapa macam software, Yaitu :
a.Netmeeting.
Software ini berfungsi sebagai media komunikasi dalam berkirim pesan (chat) dan mentransfer file.
b.Fax Modem.
Dengan fax modem ini , anda dapat mengirim fax melalui komputer.
c.E-mail.
Dengan E-mail, anda dapat berkirim pesan ke alamat e-mail orang lain, terutama untuk jaringan yang terhubung dengan internet.
d.Winpopup.
Dengan software ini anda dapat berkirim pesan ke user lain dalam jaringan LAN.
e.mIRC.
mIRC berfungsi untuk komunikasi jaringan yang kuas, seperti internet. Dengan mIRC dapat berhubungan dengan user yang ada di negara lain.

Komunikasi Data Antar Komputer Dalam LAN.
Komputer dengan sistem jaringan LAN dapat melakukan komunikasi dengan menggunakan media Komunikasi NetMeeting atau Winpopup, anda dapat berkirim file dan berikirm pesan. Atau dengan cara lain yaitu menggunakan window explore, yang terlebih dahulu file yang akan ditransfer harus di sharing untuk supaya bisa ditransfer.