Sabtu, 27 Februari 2010

Contoh Program Struktur Data Dengan Array

CONTOH PROGRAM DNG ARRAY
Program INT_ARRAY;
uses wincrt;
const N=10;
type int_array = ARRAY [1..N] of integer;
var bil : int_array;
indeks : integer;
BEGIN
writeln(’masukkan sepuluh bilangan integer.’);
for indeks := 1 to 10 do
begin
readln(bil[indeks]); { loop untuk memasukkan elemen array }
end;
writeln(’Isi dari array ini adalah’); { tampilkan setiap elemen }
for indeks := 1 to 10 do
begin
writeln(’bil[', indeks:2,'] adalah ‘,bil[indeks] );
end ;
END.

Contoh Program Stack Dengan Pascal

Begin
top:=0;
For i:=1 to maks do
Begin
Writeln(’masukkan nama ke’, ‘ ‘,i,’ ‘,’=’); readln(stack[i]);
top:=top+1;
End;
writeln(’posisi tumpukan=’,top);
Writeln(’pengambilan data’);
writeln(’berapa data yang akan diambil?’);readln(n);
if n<4 then
begin
For i:=1 to maks do
Begin
Elemen:=stack[top];
top:=top - 1;
End;
end;
Writeln(’data elemen sekarang=’,elemen);
writeln(’posisi tumpukan=’,top); Readln;
End.

Program Queue Dengan Pascal

Antri:=0;

{untuk input}
For I:=1 to 3 do
Begin
Writeln(’masukkan nama ke’,’ ’,i);
Readln(d[i]);
Antri:=antri+1;
End;
{untuk Output}
For I:=1 to 3 do
Begin
Temp:=d[i];
Antri:=antri-1;
End;
{lihat output di var temp setelah pengambilan }
Writeln(’hasil var temp=’,temp);
Readln;
End.

Rabu, 24 Februari 2010

Implementasi Struktur Data dalam QUEUE (Antrian)

C. QUEUE (ANTRIAN)
Antrian adalah suatu kumpulan data yang mana penambahan elemenhanya bisa dilakukan pada suatu ujung (disebut dengan sisi belakang/ real), dan penghapusan (pengambilan elemen) dilakukan lewat ujung lain (disebut dengan sisi depan/ front). Seperti yang kita ketahui, tumpukan menggunakan prinsip masuk tekhir keluar pertama atau LIFO (Last In First Out), maka pada antrian prinsip yang digunakan adalah masuk pertama keluar pertama atau FIFO (First In First Out). Dengan kata lain, urutan keluaran elemen akan sama dengan urutan masuknya.
Queue jika diartikan secaara harafiah berarti antrian. Queue merupakan salah satu contoh aplikasi dari pembuatan double linked-list yang cukup sering kita temuai dalam kehidupan sehari-haAntrian sebenarnya juga merupakan satu kumpulan data, tipe data yang sesuai untuk menyajikan antrian adalah menggunakan larik dan senarai berantai. untuk menyajikan antrian menggunakan larik, maka kita membutuhkan deklarasi antrian, misalnya sebagai berikut :
Const Max_Elemen = 100;
Type Antri = array [1.. Max_Elemen] of integer;
Var Antrian : Antri;
Depan,
Belakang : integer;
Dalam deklarasi di atas, elemen antrian dinyatakan dalam type integer. Perubahan depan menunjukan posisi elemenpertama dalam larik; perubahan belakang menunjukan posisi elemen terakhir dalam larik.

Implementasi Struktur Data dalam Linked List

Linked list atau senatai berantai adalah kunpulan liniar sejumlah data , atau kumpulan komponen yang disusun secara berurutan pointer. Masing-masing komponen dinamakan dengan simpul (node). Simpul dalam suatu Linked list terbagi menjadi dua bagian yaitu medan informasi yang berisi informasi yang akan disimpan dan diolah, dan medan penyambung (Link field) yang berisi simpul berikutnya. Ada sejumlah operasi yang bisa kita lakukan pada sebuah Linked list yaitu membaca isi link, menambah simpul, menghapus simpul dan mencari informasi pada Linked list .
1. Menambah simpul
Operasi menambah simpul bisa dipecah berdasarkan posisi simpul dabu yang akan di sisipkan, yaitu simpul baru selalu diletakkan sebagai simpul pertama, dan simpul baru menyisip diantara kedua simpul yang sudah ada. Berikut contohnya :
type Simpul = ^Data ;
Data = record
Info : char ;
Berikut : Simpul ;
end ;
var Element : char ;
Awal, Akhir, Baru : Simpul ;

2. Menambah di Belakang
Operasi penambahan simpul pada Linked list adalah penambahan suatu Linked list. Simpul-simpul abru yang ditambahkan selalu menjadi sipmpul terakhir.
Prosedur yang bisa dipanggil dengan memanggil prosedur :
TAMBAH_BELAKANG (Awal, Akhir, Elemen);

Program selengkapnya adalah :
procedure TAMBAH_BELAKANG (var Awal, Akhir : Simpul ;
Elemen : char ) ;
var Baru : Simpul ;
begin
new (Baru) ; Baru^.Info :=Elemen;
if Awal = nil then
Awal := Baru
else
Akhir^.Berikut := Baru;
Akhir := Baru;
Akhir^.Berikut := nil
end ;

3. Menambah didepan
Operasi penambahan simpul baru akan selalu diletakkan diawal link. Prosedur untuk menambah simpul bisa dipanggil dengan menggunakan :
TAMBAH_DEPAN (Awal, Akhir, Elemen);

Program selengkapnya adalah :
procedure TAMBAH_DEPAN (var Awal, Akhir : Simpul ;
Elemen : char ) ;
var Baru : Simpul ;
begin
new (Baru) ; Baru^.Info :=Elemen;
if Awal = nil then
Akhir := Baru
else
Baru^.Berikut := Awal;
Awal := Baru;
end ;

4. menambah ditengah
Untuk menembah ditengan linked list memerlukan memerlukan bantuan pointer misalnya bantu, perhatikan contoh program berikut ;
procedure TAMBAH_TENGAH(var Awal, Akhir : Simpul ;
Elemen : char ) ;
var Baru, Bantu : Simpul ;
begin
new (Baru) ; Baru^.Info :=Elemen;
if Awal = nil then
begin
Awal := Baru;
Akhir := Baru;
end;
else
begin
Bantu := Awal;
while Elemen > Baru^.Berikut^.Info do
Bantu := Bantu^.Berikut;

Baru^.Berikut := Bantu^.Berikut;
Bantu^.Berikut := Baru;
end;
end ;

5. Menghapus Simpul
Operaasi kedua yang akan dijelaskan adalah operasi menghapus simpul. Dalam menghapus simpul ada suatu hal yang perlu diperhatikan, yaitu bahwa simpul yang bias dihapus adalah simpul yang berada sesudah simpul yang ditunjukan oleh suatu pointer, kecuali untuk simpul pertama. Dengan demikian kita tidak bias menghapus simpul yang ditunjuk oleh suatu pointer atau simpul sebelumnya.

6. Menghapus simpul pertama
Untuk menghapus simpul pertama, maka pointer bantu kita dibuat sama dengan pointer awal. Kemudian pointer awal kita pindah kesimpul yang ditunjuk oleh pointer pada simpul yang ditunjuk oleh pointer Bantu. Selanjutnya, simpul yng ditunjuk oleh pointer Bantu kita dispose.

7. Menghapus simpul ditengah atau terakhir.
Untuk menghapus simpul yang berada di tengah senarai berantai, pertama kali kita letakan pointer Bantu pada simpul di sebelah kiri simpul yang akan dihapus. Simpul yang akan dihapus kita tunjuk dengan pointer lain. Kemudian, pointer pada simpul yang ditunjuk oleh Bantu kita tunjukan pada simpul yang ditunju oleh pointer pada simpul yang akan dihapus. Selanjutnya simpul yang ditunjuk oleh pointer hapus kita dispose.

8. Senarai berantai berkepala
Suatu saat kita perlu meletakan sebuah simpul sebagai simpul pertama dari sebuah senarai berantai untuk maksud-maksud tertentu. Simpul ini tidak berisi informasi seperti halnya simpul-simpul lain dalam senarai berantai, tapi keberadaannya sangat diperlukanuntuk lebih mempercepat proses eksekusi. Simpul yang demikian disebut dengan simpul kepala (Header Lode) sehingga senarai berantai disebut senarai berantai berkepala (Headed Linked-List)

9. Senarai berantai sebagai tumpukan.
Operasi penambahan simpul baru diawal suatu senarai berantai, sehingga simpul baru adalah sebagai simpul pertama (harap dibedakan antara simpul kepala dan simpul pertama), serupa dengan operasi mempush (memasukan elemen kedalam suatu tumpukan. Dalam kedua kasus ini, elemen baru yang ditambahkan adalah satu-satunya elemen dalam kumpulan elemen yang bisa segera dimasuk. Tumpukan hanya bisa dimasuk lewat elemen pertama yang menempati posisi teratas dalam tumpukan, dan senarai berantai hanya bisa dimasuk lewat pointer yang menuju ke elemen pertama. Demikian juga halnya dengan operasi POP (menghapus elemen dari suatu tumpukan). Dalam kedua kasus ini hanya elemen pertama yang bisa dimasuk (dihapus), dan elemen berikutnya menjasi elemen baru yang bisa segera dimasuk setelah elemen sebelumnya di POP.
Dengan demikian kita bisa menyejikan tumpukan dengan cara lain, yaitu dengan senarai berantai linear. Elemen pertama dalam senarai berantai diperlakukan sebagai elemen teratas dari tumpukan. Dengan mengacu pada prosedur PUSH dan POP kita bisa menyusun prosedur PUSH dan POP yang baru dengan mengingat bahwa kita ingin menyajikan tumpukan menggunakan senarai berantai.

10. Single linked list
Apabila setiap kali anda ingin menambahkan data selalu dengan menggunakan variabel pointer yang baru, anda akan membutuhkan banyak sekali variabel pointer (penunjuk). Jika anda hanya menggunakan satu variabel pointer saja untuk menyimpan banyak data dengan metoda yang kita sebut linked list. Jika diterjemahkan, maka berarti suatu daftar isi yang saling berhubungan.

Dalam pembuatan single linked list dapat menggunakan dua metoda:
a. LIFO (Last In First Out) aplikasinya : Stack (Tumpukan)
Adalah suatu metoda pembuatan linked list dimana data yang masuk paling akhir adalah data yang keluar paling awal.
b. FIFO (First In First Out) aplikasinya : Queue (Antrian)
Adala suatu metoda pembuatan linked list dimana data yang masuk paling awal adalah data yang keluar paling awal juga.

Implementasi Struktur Data dalam Lingkup Array

Pada pemrograman prosedural, setiap data mempunyai jenis. Jenis data menentukan bagaimana mengartikan nilai dari suatu data serta operasi apa yang dapat dilakukan terhadap data tersebut. Secara umum jenis data dapat digolongkan menjadi 4 golongan, yaitu :
1. jenis dasar, adalah jenis data yang dianggap sudah terdefinisi misalnya integer, real, boolean, character; suatu data yang memiliki jenis ini setiap saat hanya dapat memiliki satu nilai.
2. jenis bentukan, adalah jenis data yang merupakan komposisi dari jenis dasar; suatu data yang memiliki jenis ini setiap saat hanya dapat memiliki satu nilai yang sesuai dengan susunan dari jenis dasar yang didefinisikannya.
3. tabel, adalah jenis data yang terdiri atas sekumpulan unsur berjenis sama yang tersusun secara kontinu dan setiap unsur dapat diperoleh melalui indeks tabel; suatu data yang memiliki jenis ini setiap saat dapatmemiliki banyak nilai sesuai dengan ukuran tabel.
4. pointer, adalah jenis data yang menyimpan alamat komputer dari suatu data.
Data yang ada di dunia nyata seringkali amat kompleks, sehingga membutuhkan suatu abstraksi dari representasi data tersebut, agar memudahkan dalam merancang struktur datanya. Dikenal 3 tingkatan abstraksi yaitu:
1. definisi fungsional,
2. representasi lojik,
3. representasi fisik
Pada definisi fungsional, dilakukan pendefinisian suatu struktur data dan operator-perator yang berlaku pada struktur tersebut. Untuk melakukannya tidak digunakan notasi khusus melainkan mendefinisikan dengan kata-kata.
Representasi lojik adalah rincian jenis dari struktur data, menyangkut nama jenis dan jenis-jenis operator. Untuk membuat representasi lojik digunakan notasi algoritmik. Representasi ini tak bergantung pada memory komputer.
Pada representasi lojik belum digunakan jenis data yang sudah dikenal di atas. Relasi antara definisi fungsional dan representasi lojik adalah satu-ke-satu, artinya setiap definisi fungsional hanya mempunyai satu representasi lojik. Representasi fisik adalah spesifikasi
dari struktur data sesuai dengan implementasinya pada memory komputer. Digunakan notasi algoritmik dan type-type dasar yang sudah dikenal. Pada dasarnya hanya ada dua macam representasi fisik yaitu: kontigu dan berkait. Untuk satu representasi lojik bisa dikembangkan menjadi banyak kemungkinan representasi fisik.
Dewasa ini sudah banyak berkembang bahasa-bahasa pemrograman tingkat tinggi yang pemakaiannya sudah sangat mudah (tinggal klik dan drag saja). Program adalah kumpulan intruksi atau perintah yang disusun sedemikian rupa sehingga membentuk urutan nalar yang tepat untuk menyelesaikan suatu persoalan, pada dasarnya semua bahasa-bahasa pemrograman mempunyai kode-kode program yang harus ditulis agar terbentuk sebuah obyek yang dapat bekerja sesuai dengan yang diinginkan.
Ada beberapa hal yang perlu diperhatikan dalam penyusunan program, khususnya aspek-aspek yang menyangkut aturan-aturan penulisan program. Sehingga dalam sebuah program terdapat alur-alur logika yang menyebabkan program dapat bekerja dengan benar, dan sebagian besar harus menggunakan pengelolahan data yang tersetruktur seperti array, linked list, antrian, dan lain-lain. Hal ini penting untuk dipelajari karena untukk satu bahasa program berbeda dengan bahasa program lain.
Dengan memahami aturan-aturan tersebut diharapkan program tersebut akan bisa dijalankan dengan baik dan memberikan hasil seperti yang diharapkan.
Untuk membantu aliran nalar dan data dari sebuah program, sering kali kita menggunakan alat bantu yang berupa grafik atau simbol-simbol yang menggambarkan kegiatan-kegiatan yang ada pada sebuah program yang disebut dengan bagan alir (flow chart). Dalam pembahasaan ini kami akan menyajikan struktur data dalam lingkup array, linked list, dan queue (antrian).

A. Array
Array atau larik adalah tipe struktur yang mempunyai komponen dalam jumlah yang tetap dan setiap komponen mempunyai data yang sama. Posisi masing-masing komponen dalam array dinyatakan sebagai nomor index.
Dalam sumber lain, Array adalah suatu tipe data terstruktur yang terdapat pada memori yang terdiri dari sejumlah elemen (tepat) yang mempunyai tipe data yang sama dan merupakan gabungan dari beberapa variabel sejenis serta memiliki jumlah komponen yang jumlahnya tetap. Elemen-elemen dari array tersusun seacara sequential dalam memori computer.

1. Array suatu dimensi
Array suatu dimensi tidak lain adalah kumpulan elemen-elemen yang identik, yang tersusun dalam satu baris. Elemen-elemen tersebuit memiliki type data yang sama, tetapi isi dari elemen tersebut boleh berbeda-beda.
Pendeklarasian array diawali denga kata baku type dan diikuti dengan nama array dan tanda samaq dengan (=), lalu kata baku array beserta range indeks dan diakhiri dengan kata baku of beserta type datanya.

Bentuk umum dari deklarasi tipe array adalah :
type pengenal = array [tipe_index] of tipe;
dengan pengenal : nama tipe data
tipe_index : tipe data untuk nomor index
tipe : tipe data komponen
Parameter tipe_index menentukan banyaknya komponen array tersebut. Parameter ini boleh berupa sembarang tipe ordinal kecuali logint dan sub jangkauan dari logint. Berikut contoh dari deklarasi :
type vek = array [1…..100] of integer;
menunjukkan bahwa vek adalah tipe data yang berupa array yang komponennya bertipe integer dan banyaknya 100 buah.
Deklarasi yang demikian ini disebut deklarasi array dimensi satu, yang kami sebut vektor.

2. Array dua dimensi
Array dua dimensi, yang sering digambarkan pada sebuah matrix adalah merupakan sebuah perluasan dari sebuah array satu dimensi. Jika pada array satu dimensi hanya terdiri dari sebuah baris dengan beberapa kolom elemen maka pada array dua dimensi terdiri dari beberapa baris dan beberapa kolom elemen yang bertype sama. Jika tipe komponen juga berupa larik lain, akan kita peroleh array demensi banyak. Sebagai contoh :
type Pkl = array [1…..100] of array [1…….5] of real;
menunjukkan bahwa Pkl adalah vektor yang terdiri dari 100 komponen, dengan tipe komponennya adalah sebuah vektor lain yang mempunyai 5 komponen bertipe real. Bentuk ini sering disebut dengan deklarasi array dimensi dua yang kami sebut sebagai tabel atau matrix.

3. Array tiga dimensi
Array tiga dimensi dapat digambarkan sebagai suatu benda ruang. Deklarasi pada array tiga dimensi tidak berbeda pada array satu dimensi dan dua dimensi yang telah dijelaskan sebelumnya, kecuali pada indeks array.

type Pkl = array [1…..100,1……5] of real;
contoh lain misalnya :
type Katro = array [boolean,1…..100,1……5] of char;
deklarasi diatas disebut sebagai deklarasi array dimensi tiga.
4. Array banyak dimensi
Sebenarnya array banyak dimensi tidak terlalu sering dipakai seperti halnya array satu dimensi, dua dimensi, dan tiga dimensi. Namun hal itu bukan berarti pascal tidak membolehkan anda memakainya. Array banyak dimensi ini pada dasarnya sama dengan array sebelumnya kecuali pada jumlah dimensinya saja.

Minggu, 21 Februari 2010

Tugas Struktur Data

A. Definisi Data dan Struktur data


- Definisi Data

Beberapa definisi tentang data dari sudut pandang yang berbeda-beda:

* Menurut berbagai kamus bahasa Inggris-Indonesia, data diterjemahkan sebagai istilah yang berasal dari kata “datum” yang berarti fakta atau bahan-bahan keterangan.
* Dari sudut pandang bisnis, data bisnis (business data) adalah deskripsi organisasi tentang sesuatu(resources) dan kejadian (transactions) yang terjadi (business data is an organization’s description of things (resources)and events (transactions) that it faces).
* Data adalah deskripsi dari sesuatu dan kejadian yang kita hadapi.
* Data adalah kenyataan yang menggambarkan suatu kejadian-kejadian dan kesatuan nyata. Kejadian adalah sesuatu yang terjadi pada saat tertentu. Kesatuan nyata adalah berupa suatu objek nyata seperti tempat, benda dan orang yang betul-betul ada dan terjadi.


- Definisi Struktur Data

Struktur data adalah cara menyimpan atau merepresentasikan data di dalam komputer agar bisa dipakai secara efisien.Sedangkan data adalah representasi dari fakta dunia nyata.Fakta atau keterangan tentang kenyataan yang disimpan, direkam atau direpresentasikan dalam bentuk tulisan, suara, gambar, sinyal atau simbol.
Secara garis besar type data dapat dikategorikan menjadi

Type data sederhana
- Type data sederhana tunggal, misalnya :
Integer, real, boolean,dan karakter
- Type data sederhana majemuk, misalnya :
String

Struktur Data, meliputi
- Struktur data sederhana, misalnya array dan Record
Struktur data majemuk, yang terdiri
- Linier : Stack, Queue, serta List dan Multilist
- Non Linier : Pohon Biner dan Graph

Pemakaian struktur data yang tepat di dalam proses pemrograman akan menghasilkan algoritma yang lebih jelas dan tepat,sehingga menjadikan program secara keseluruhan lebih efisien dan sederhana.

Struktur data yang ″standar″ yang biasanya digunakan dibidang informatika adalah
- ADT , Array , Struk
- List linier (Linked List) dan variasinya
- Multilist
- Stack (Tumpukan)
- Queue (Antrian)
- Tree ( Pohon )
- Graph ( Graf )


B.Tipe-tipe Data

Secara sederhana tipe data dapat didefinisikan dengan istilah tempat untuk menentukan pemberian nilai terhadap suatu variabel sesuai atau tidak dengan nilai yang diberikan oleh user. Dalam versi lain tipe data juga diartikan sebagai batasan terhadap fungsi tanda pengenal terhadap semua nilai yang diterima. logika yang dapat kita berikan adalah ketika kita menempatkan tanda pengenal harga hanya mengenal angka, maka ketika kita memberikan nilai berupa string maka secara otomatis data tersebut akan ditolak karena nilai tersebut tidak dikenali oleh tipe data yang diberikan.

1. Tipe Data Numeric Integer

Tipe data integer merupakan tipe data bilangan bulat yang hanya mengenal bilangan decimal. Dimana tipe data Integer tidak mengenal pecahan

Bentuk Umum

Var
Nil1:integer;
Begin
Nil1:=5000;

2. Tipe Data Real

Tipe data numeric real adalah tipe data dari suatu tanda pengenal selain mengenal bilangan bulat utuh tipe data ini juga mengenal nilai angka yang mengenal pecahan.

Bentuk Umum

Var
Nil:real;
Begin
Nil1:=20,5;

3. Tipe Data String

Tipe data string merupakan salah satu jens tipe data selain mengenal angak disini tipe data dapat juga mengenla data berupa huruf maupun tanda baca.

Bentuk umum

Var
Nama:string;
Begin
Nama:=’Anton’;

4. Tipe Data Char

Secara fungsi tipe data char sama dengan tipe data string tetapi dari segi kapsitas ruang diperoleh tipe data char jauh lebih sedikit karena hanya mengenal 1 karakter.


C. Deklarasi Data

Dalam setiap penulisan bahasa pemograman deklarasi sangat digunakan apabila dalam penulisan program dibutuhkan indentifier atau tanda pengenal. Indentifier pada umumnya di buat oleh progremmmer yang digunakan untuk mewakili nilai dari suatu object.
Indentifier yang dikenal dalam Delphi adalah label, konstanta, tipe, fungsi, procedure maupun variabel.

1. Deklarasi Konstanta

Deklarasi konstanta adalah tanda pengenal dalam Delphi yang mempunyai nilai yang sudah tetap. Definisi konstanta diawali dengan kata baku Const diikuti dengan kumpulan indentifier yang diberi sebuah nilai.

Contoh

procedure TForm2.etertulisChange(Sender: TObject);
const
nil1:='30000';
begin
end;

2. Deklarasi Variabel

Deklarasi variabel adalah tanda pengenal dalam Delphi yang mempunyai nilai yang mana nilai tersebut akan terus berubah selama proses berjalan. Definisi variabel diawali dengan kata baku Var diikuti dengan kumpulan identifier yang diikuti dengan tipe data yang dibutuhkan.

Contoh

procedure TForm2.EpraktekKeyPress(Sender: TObject; var Key: Char);
var
praktek,nil2,nil1 :real;
begin
if (key = #13) then
begin
nil1 := strtofloat(ehtulis.Text);
praktek:= strtofloat(epraktek.Text);
nil2:= 0.4 * praktek;
ehpraktek.Text := floattostr(nil2);
form2.ActiveControl := cmi;
emurni.Text := floattostr(nil1 + nil2);
if nil1 > 60 then
egrade.Text := 'Lulus'
else
egrade.Text := 'Gagal'
end;
end;


D. Pemetaan (MAPPING) Type Data ke Storage

Komputer merepresentasikan data dalam bentuk biner, karena setiap bit data
dalam komputer hanya dapat menyimpan dua macam keadaan, yaitu voltase
tinggi dan voltase rendah. Perbedaan voltase tersebut mewakili nilai TRUE dan
FALSE, atau bit ‘1’ dan ‘0’
Representasi Karakter dan String
Ada beberapa aturan yang digunakan untuk menyatakan karakter dalam
storage. Diantaranya adalah :

1. EBCDIC (Extended Binary Coded Decimal Interchange Code)
EBCDIC adalah suatu sistem peng-kode-an (mapping) yang menggunakan 8
binary digit (bit) untuk menyatakan suatu karakter dalam alfabet.
( 1 karakter = 8 bit )
Dalam 8 bit terdapat 28 (256) kemungkinan karakter yang dapat dibentuk.

2. ASCII ( American Standard Code For Information Interchange)
ASCII adalah cara peng-kode-an yang menggunakan 7 bit untuk menyatakan
suatu karakter dalam alfabet.
( 1 karakter = 7 bit). Dalam 7 bit terdapat 27 (128) kemungkinan karakter yang
dapat dibentuk, separuh dari yang dimiliki EBCDIC.

3. BCD ( Binary Coded Decimal )
BCD ini menggunakan 4 bit untuk setiap karakternya.

4. PACKED DECIMAL
Packed Decimal umumnya digunakan untuk karakter berjenis data numerik
dengan cara penyimpanannya menggunakan 2 digit setiap 8 bit. Pada 8 bit terakhir disimpan selain digit derajat terendah, juga tanda dari bilangan
tersebut (positif atau negatif).

Berikut ini perbandingan kode EBCDIC, ASCII dan PACKEDDECIMAL
untuk menyatakan +903.
9 0 3 +
EBCDIC : 11111001 11110000 11110011 01001110
ASCII : 0111001 0110000 0110011 0101011
PACKED DECIMAL : 10010000 00111100

5. Unicode
Unicode menggunakan 16 bit untuk merepresentasikan karakter. Dengan
demikian, banyaknya karakter yang dapat direpresentasikan adalah 216 atau
65.536 karakter.
Keunggulan Unicode dari ASCII adalah kemampuannya untuk menyimpan
simbol / karakter yang jauh lebih besar. Himpunan 256 karakter pertama dari
Unicode merupakan pemetaan karakter ASCII 8 bit, sehingga Unicode tetap
kompatibel dengan ASCII. Selain merepresentasikan seluruh karakter ASCII,
Unicode dapat merepresentasikan juga berbagai macam simbol diluar ASCII,
seperti huruf Arab, Kanji, Hiragana, Katakana, dan lain-lain.


Representasi Bilangan Bulat / Integer

Bilangan Bulat Tak Bertanda dapat direpresentasikan dengan
- bilangan biner – oktal - heksadesimal
- gray code
- BCD (binary coded decimal)
Bilangan bulat Bertanda (positif atau negatif) dapat direpresentasikan dengan
- Sign/Magnitude (S/M)
- 1’s complement
- 2’s complement
Untuk bilangan bulat positif, tidak ada perbedaan dalam ketiga macam
representasi bilangan di atas. Terdapat persamaan dalam ketiga representasi
tersebut berupa digunakannya MSB (most significant bit) sebagai penanda. MSB
bernilai ‘0’ untuk bilangan positif dan ‘1’ untuk bilangan negatif.


SIGN / MAGNITUDE

Salah satu storage mapping yang dapat dilakukan terhadap integer adalah apa
yang disebut bentuk sign-and-magnitude, yaitu digit untuk tanda integer positif
atau negatif dan sebarisan digit untuk menyatakan magnitude/besarnya.
Contoh : -7 = -111 dan +7 = +111
Bagi kita mudah bekerja terhadap bilangan dalam bentuk sign-and-magnitude,
namun apabila dilakukan penjumlahan dengan kedua operand berbeda tanda,
penjumlahan akan beralih menjadi pengurangan yang kadang-kadang
menimbulkan kesukaran. Untuk itu, digunakan apa yang disebut sebagai COMPLEMENT (merubah tanda negatif pada bilangan pengurangan menjadi
tanda positif)
X’ adalah complement dari X terhadap R ( R ‘s complement dari X ) bila
X + X’ = R.
X’ = R – X menyatakan integer negatif -X.
Representasi negatif dari suatu bilangan diperoleh dari bentuk positifnya dengan
mengubah bit pada MSB menjadi bernilai 1. Jika dipergunakan N bit untuk
representasi data, maka rentang nilai yang dapat direpresentasikan adalah
-2N-1-1 s.d 2N-1-1
Contoh : jika dipergunakan 5 bit untuk representasi bilangan
+3 = 00011
-3 = 10011

Terdapat dua jenis Complement :

ONE’S COMPLEMENT
Representasi negatif dari suatu bilangan diperoleh dengan mengkomplemenkan
seluruh bit dari nilai positifnya. Jika dipergunakan N bit untuk representasi data,
maka rentang nilai yang dapat direpresentasikan adalah -2N-1-1 s.d 2N-1-1
1’s complement menggunakan mapping dengan R = 2N - 1
N adalah jumlah bit integer yang dapat disajikan.
Contoh : jika dipergunakan 5 bit untuk representasi bilangan
+3 = 00011
-3 = 11100
TWO’S COMPLEMENT
Representasi negatif dari suatu bilangan diperoleh dengan mengurangkan 2n
dengan nilai positifnya. Jika dipergunakan N bit untuk representasi data, maka
rentang nilai yang dapat direpresentasikan adalah -2N-1 s.d 2N-1-1.

Two’s Complement menggunakan mapping dengan R = 2N
Contoh : jika dipergunakan 5 bit untuk representasi bilangan
2n = 25 = 100000
+3 = 00011
- 3 = 100000-00011
100000
00011 -
11101
® - 3 = 11101

PERBANDINGAN
Berikut tabel perbandingan ketiga cara representasi bilangan bulat bertanda.

B Nilai yang direpresentasikan

b3b2b1b0 Sign/Magnitude 1’s complement 2’s complement
0111 +7 +7 +7
0110 +6 +6 +6
0101 +5 +5 +5
0100 +4 +4 +4
0011 +3 +3 +3
0010 +2 +2 +2
0001 +1 +1 +1
0000 +0 +0 +0
1000 -0 -7 -8
1001 -1 -6 -7
1010 -2 -5 -6
1011 -3 -4 -5
1100 -4 -3 -4
1101 -5 -2 -3
1110 -6 -1 -2
1111 -7 -0 -1


Representasi Bilangan Pecahan / Floating Point

Bilangan pecahan dapat direpresentasikan dalam bentuk pecahan biasa atau
dalam bentuk scientific.

Bentuk Pecahan Biasa
Dalam bentuk pecahan biasa, bilangan direpresentasikan langsung kedalam
bentuk binernya. Contoh : 27.625 = 11011.1012
Bentuk S C I E N T I F I C
Dalam notasi scientific, bilangan pecahan dinyatakan sebagai X = ±M . B±E.
M = mantissa
B = basis
E = eksponen
Contoh : 5.700.000 = 57.105 M=57, B=10, E=5
Masalah : terdapat tak berhingga banyaknya representasi yang dapat dibuat.
Dalam contoh sebelumnya, 5.700.000 = 57.105 = 570.104 = 5,7.106 = 0,57.107 =
0,057.108 dst. Untuk mengatasinya, ditentukan adanya bentuk normal, dengan
syarat
1/B = |M|< 1
Dengan demikian, bentuk scientific yang normal (memenuhi persyaratan) dari
5.700.000 adalah 0,57.107
Dalam bentuk normal tersebut, selalu diperoleh mantissa berbentuk ‘0,…’
sehingga dalam representasinya kedalam bit data, fraksi ‘0,’ tersebut dapat
dihilangkan.
Mantissa dan eksponen tersebut dapat direpresentasikan menggunakan salah
satu cara representasi bilangan bulat bertanda yang telah dibahas di atas.
Representasi yang dipilih dapat saja berbeda antara mantissa dengan
eksponennya.

E.Organisansi Logic dan Fisik dari struktur data

Sabtu, 20 Februari 2010

Struktur Data

Dalam istilah ilmu komputer, sebuah struktur data adalah cara penyimpanan, penyusunan dan pengaturan data di dalam media penyimpanan komputer sehingga data tersebut dapat digunakan secara efisien.

Dalam teknik pemrograman, struktur data berarti tata letak data yang berisi kolom-kolom data, baik itu kolom yang tampak oleh pengguna (user) atau pun kolom yang hanya digunakan untuk keperluan pemrograman yang tidak tampak oleh pengguna. Setiap baris dari kumpulan kolom-kolom tersebut dinamakan catatan (record). Lebar kolom untuk data dapat berubah dan bervariasi. Ada kolom yang lebarnya berubah secara dinamis sesuai masukan dari pengguna, dan juga ada kolom yang lebarnya tetap. Dengan sifatnya ini, sebuah struktur data dapat diterapkan untuk pengolahan database (misalnya untuk keperluan data keuangan) atau untuk pengolah kata (word processor) yang kolomnya berubah secara dinamis. Contoh struktur data dapat dilihat pada berkas-berkas lembar-sebar (spreadsheet), pangkal-data (database), pengolahan kata, citra yang dipampat (dikompres), juga pemampatan berkas dengan teknik tertentu yang memanfaatkan struktur dat

Kamis, 18 Februari 2010

Cara Memperbaiki Sistem Komputer Akibat Virus

Komputer yang pernah terkena virus, malware dan sejenisnya biasanya banyak fitur yang tidak berjalan normal (sistem/windows mengalami kerusakan). Misalnya Task Manager, Run, Command prompt yang tidak bisa berjalan, dan kadang sampai file-file tertentu seperti EXE, COM dan lainnya juga tidak bisa dijalankan.

Kerusakan semacam itu biasanya bisa diperbaiki baik manual, menggunakan CD Windows atau dengan software pihak ketiga.

Jika kita mempunyai CD master windows, dan kerusakan cukup parah, biasanya masih bisa diatasi dengan memanfaatkan fitur Repair (baca : Cara me-repair (memperbaiki) Installasi Windows XP )

Kali ini akan dibahas cara memperbaiki sistem windows yang rusak baik disebabkan oleh malware, virus dan sejenisnya atau sebab lainnya dengan Program System Repair Engineer (SREng).

System Repair Engineer (SREng)

System Repair Engineer (SREng) merupakan sebuah program kecil (kurang dari 2 MB), portable dan gratis (free) yang di kembangkan oleh KZTechs.COM webmaster, Smallfrogs ( telah memperoleh penghargaan Microsoft Most Valuable Professional (MVP) for Windows Shell – di China dari 2004-2008). Program ini ditujukan untuk mendeteksi berbagai permasalahan umum sistem dan kerusakan umum yang biasanya disebabkan oleh virus komputer.

sreng-main

Untuk tingkat ahli (advance), program ini dapat digunakan untuk mendeteksi berbagai permasalahan dan memperbaiki sendiri. Sedangkan untuk pengguna biasa (awam), terdapat fungsi Smart Scan untuk memeriksa komputer dan menghasilkan report (laporan) sehingga disimpan untuk selanjutnya bisa di analisa dan diperiksa oleh orang yang lebih ahli.

Meskipun begitu, terdapat berbagai fitur yang langsung dapat digunakan meski oleh kebanyakan pengguna komputer. Berikut penjelasan beberapa fitur dan fungsinya yang bisa kita manfaatkan.

Boot Items

Menampilkan daftar program atau aplikasi apa saja yang otomatis berjalan ketika windows booting, baik dari registry ( termasuk item yang tersembunyi, UserInit dan lainnya), Folders, Task Scheduled, Services dan Boot.ini. Jika melihat adanya program yang aneh (mencurigakan), maka kita bisa menon-aktifkannya dengan cara menghilangkan tanda cek-nya.

sreng-boot-items

Setelah di dihilangkan tanda cek, maka klik tombol Refresh, untuk memastikan bahwa pengubahan telah tersimpan. Jika ternyata tanda cek kembali muncul atau muncul daftar baru dengan nama yang lain, merupakan indikasi kuat bahwa komputer sedang terinfeksi virus atau malware lainnya ( sebaiknya komputer/hardisk di scan baik dengan Bootable CD, virus scanner portable, atau memindah Hardisk di komputer lain dan discan dari sana).

System Repair

sreng-system-repair

Di menu ini ada beberapa fungsi terpisah, diantaranya adalah :

File Association

Menampilkan status ekstensi file-file umum seperti : .TXT, .EXE, .COM, .PIF, .REG, .BAT, .SCR, .CHM, .VBS dan lainnya. Jika Status tidak menunjukkan “Normal” atau kita tidak bisa menjalankan file dengan salah satu ekstensi tersebut, maka kita bisa memperbaiki dengan memilih ekstensi file yang bermasalah dan klik Repair.

Windows Shell/IE

Di bagian ini, kita akan melihat daftar-daftar pengaturan windows (setting) yang biasanya diubah/dirusak oleh virus, seperti :

  • Menu Start/Run tidak aktif
  • Registry Editor (regedit.exe) tidak bisa dibuka
  • Command Prompt, wallpaper, Control Panel tidak bisa diakses.
  • Drive di My Computer tidak terlihat
  • Tombol Log off tidak muncul
  • Menu “file” di windows Explorer tidak tampil
  • Icon di desktop tidak tampil
  • Folder Options tidak bisa diaktifkan
  • Tombol search (pencarian) tidak tampil
  • Windows Explorer atau system tray tidak bisa di klik kanan
  • Untuk menampilkan files yang tersembunyi (Hidden files)
  • Berbagai tampilan menu di Internet Explorer yang tidak muncul
  • berbagai pengaturan lainnya

Untuk memperbaiki setting diatas, pilih dari daftar yang ada dan klik Repair.

Browser Add-ons

Menampilkan daftar plugins/add-ons (fitur tambahan) yang berjalan dengan web browser yang digunakan. Kita dapat melihat informasi detail, menyembunyikan atau menghapus add-on yang tidak diinginkan.

HOSTS File

Hosts file merupakan daftar host name dan mapping alamat IP. Misalnya terdapat baris sebagai berikut :

127.0.0.1 localhost

Berarti ketika kita mengetikkan localhost di web browser akan di mapping ke alamat IP 127.0.0.1. Untuk informasi selengkapnya bisa melihat http://support.microsoft.com/?id=108295

File ini bisa diubah oleh spyware atau malware agar ketika menulis alamat web tertentu sebenarnya dialihkan ke alamat IP yang tidak benar.

Winsock Provider

Akan menampilkan daftar Windows Socket API (Winsock), yang menangani masalah akses jaringan, terutama TCP/IP.

Di menu ini terdapat fitur “Reset All to default values”, yang dapat dimanfaatkan jika koneksi internet tidak bisa berjalan seperti sebelumnya (bermasalah) atau ketika tiba-tiba kita tidak bisa browsing, mengirim email atau operasi jaringan lainnya, padahal koneksi internet berjalan normal.

Tetapi ketika koneksi jaringan berjalan baik dan kita bisa browsing, mengirim email atau mengerjakan operasi jaringan lainnya, tidak disarankan untuk di Reset. Selengkapnya tentang Winsock

Advanced Repair

Terdapat dua pengaturan di menu ini, yaitu Recommended Fix Level dan Powerful Fix Level. Ada juga tombol untuk me-Reset Winsock, memperbaki Safe Mode dan Melakukan Scan API Hook ( tingkat lanjut).

Smart Scan

Smart scan akan melakukan scan komputer menghasilkan laporan secara detail tentang sistem komputer yang selanjutnya bisa digunakan oleh orang yang lebih ahli untuk memeriksa dan mengatasi permasalahan komputer.

sreng-smart-scan

Extensions

SREng mendukung tambahan fitur yang bisa ditambahkan secara terpisah (bisa juga membuat tambahan/plugins sendiri). Di Halaman Download SREng disertakan beberapa plugins seperti :

  • NTFS Stream Scanner, untuk memeriksa format NTFS dari adanya data berbahaya
  • Windows Shell Menu Manager, untuk mengatur windows shell menu seperti menu ketika klik kanan desktop dan lainnya.
  • File Figital Sign Verify, mengetahui dan verifikasi digital signature sebuah file.
  • Network Activity Monitor, memonitor aktivitas/status jaringan dan memberikan informasi detail tentang koneksi tersebut.

sreng-extensions

Satu hal yang mungkin agak kurang adalah belum adanya file bantuan (manual) yang berbahasa Inggris, adanya dalam bahasa China dan itupun masih membahas versi 2.5. Terlepas dari hal itu, program ini sangat bermanfaat dan bisa berjalan di sistem operasi : Windows 98SE, ME, 2000, XP 32bit, Server 2003 32bit, Vista 32bit, Server 2008 32bit.

Pengertian Sistem Komputer

Sistem komputer adalah elemen-elemen yang terkait untuk menjalankan suatu aktifitas dengan menggunakan komputer. Elemen dari sistem komputer terdiri dari manusianya (brainware), perangkat lunak (software), set instruksi (instruction set), dan perangkat keras (hardware). Dengan demikian komponen tersebut merupakan elemen yang terlibat dalam suatu sistem komputer. Tentu saja hardware tidak berarti apa-apa jika tidak ada salah satu dari dua lainnya (software dan brainware). Contoh sederhananya, siapa yang akan menghidupkan komputer jika tidak ada manusia. Atau akan menjalankan perintah apa komputer tersebut jika tidak ada softwarenya. Adanya perkembangan teknologi elektronika dan informatika telah memberikan perangkat tambahan pada sebuah komputer personal seperti:
- Mouse, suatu perangkat mekanik untuk melaksanakan suatu pekerjaan yang biasanya dikerjakan oleh manusia. Misalnya melakukan pengecatan mobil. Robot ini dilengkapi oleh perangkat mesin atau komputer baik sederhana maupun komplek yang mampu mengontrol gerakannya.
- Modem, alat bantu untuk mengubah data digital ke bentuk data voice atau sebaliknya sehingga data dari sebuah komputer dapat dikomunikasikan ke komputer lain melalui saluran telepon biasa, radio komunikasi ataupun stasiun bumi
- Sound card, bagian dari komponen komputer berupa kartu yang berfungsi untuk membangkitkan suara.
- video card, alat untuk menampilkan informasi ke layar monitor.
- kartu penerima televisi, alat untuk penangkap sinyal acara televisi.
- kartu penerima radio, alat untuk menerima gelombang radio.
- ethernet card, alat untuk penghubung dengan komputer jaringan.
- Printer, alat pencetak (desk jet, buble jet, laser jet, plotter)
- alat penterjemah gambar cetakan (digitizer dan scanner).

Jaringan Komputer

Jaringan komputer adalah sebuah sistem yang terdiri atas komputer dan perangkat jaringan lainnya yang bekerja bersama-sama untuk mencapai suatu tujuan yang sama. Tujuan dari jaringan komputer adalah:

Agar dapat mencapai tujuan yang sama, setiap bagian dari jaringan komputer meminta dan memberikan layanan (service). Pihak yang meminta layanan disebut klien (client) dan yang memberikan layanan disebut pelayan (server). Arsitektur ini disebut dengan sistem client-server, dan digunakan pada hampir seluruh aplikasi jaringan komputer.

Klasifikasi Berdasarkan skala :

  • Personal Area Network (PAN)
  • Campus Area Network (CAN)
  • Local Area Network (LAN): suatu jaringan komputer yang menghubungkan suatu komputer dengan komputer lain dengan jarak yang terbatas.
  • Metropolitant Area Network (MAN): prinsip sama dengan LAN, hanya saja jaraknya lebih luas, yaitu 10-50 km.
  • Wide Area Network (WAN): jaraknya antar kota, negara, dan benua. ini sama dengan internet.
  • Global Area Network (GAN)

Berdasarkan fungsi : Pada dasarnya setiap jaringan komputer ada yang berfungsi sebagai client dan juga server. Tetapi ada jaringan yang memiliki komputer yang khusus didedikasikan sebagai server sedangkan yang lain sebagai client. Ada juga yang tidak memiliki komputer yang khusus berfungsi sebagai server saja. Karena itu berdasarkan fungsinya maka ada dua jenis jaringan komputer:

  • Client-server

Yaitu jaringan komputer dengan komputer yang didedikasikan khusus sebagai server. Sebuah service/layanan bisa diberikan oleh sebuah komputer atau lebih. Contohnya adalah sebuah domain seperti www.detik.com yang dilayani oleh banyak komputer web server. Atau bisa juga banyak service/layanan yang diberikan oleh satu komputer. Contohnya adalah server jtk.polban.ac.id yang merupakan satu komputer dengan multi service yaitu mail server, web server, file server, database server dan lainnya.

  • Peer-to-peer

Yaitu jaringan komputer dimana setiap host dapat menjadi server dan juga menjadi client secara bersamaan. Contohnya dalam file sharing antar komputer di Jaringan Windows Network Neighbourhood ada 5 komputer (kita beri nama A,B,C,D dan E) yang memberi hak akses terhadap file yang dimilikinya. Pada satu saat A mengakses file share dari B bernama data_nilai.xls dan juga memberi akses file soal_uas.doc kepada C. Saat A mengakses file dari B maka A berfungsi sebagai client dan saat A memberi akses file kepada C maka A berfungsi sebagai server. Kedua fungsi itu dilakukan oleh A secara bersamaan maka jaringan seperti ini dinamakan peer to peer.

Berdasarkan topologi jaringan, jaringan komputer dapat dibedakan atas:

Berdasarkan kriterianya, jaringan komputer dibedakan menjadi 4 yaitu:

1. Berdasarkan distribusi sumber informasi/data

- Jaringan terpusat Jaringan ini terdiri dari komputer klient dan server yang mana komputer klient yang berfungsi sebagai perantara untuk mengakses sumber informasi/data yang berasal dari satu komputer server

- Jaringan terdistribusi Merupakan perpaduan beberapa jaringan terpusat sehingga terdapat beberapa komputer server yang saling berhubungan dengan klient membentuk sistem jaringan tertentu.


2. Berdasarkan jangkauan geografis dibedakan menjadi:

- Jaringan LAN merupakan jaringan yang menghubungkan 2 komputer atau lebih dalam cakupan seperti laboratorium, kantor, serta dalam 1 warnet.

- Jaringan MAN Merupakan jaringan yang mencakup satu kota besar beserta daerah setempat. Contohnya jaringan telepon lokal, sistem telepon seluler, serta jaringan relay beberapa ISP internet.

- Jaringan WAN Merupakan jaringan dengan cakupan seluruh dunia. Contohnya jaringan PT. Telkom, PT. Indosat, serta jaringan GSM Seluler seperti Satelindo, Telkomsel, dan masih banyak lagi.


3. Berdasarkan peranan dan hubungan tiap komputer dalam memproses data.

- Jaringan Client-Server Pada jaringan ini terdapat 1 atau beberapa komputer server dan komputer client. Komputer yang akan menjadi komputer server maupun menjadi komputer client dan diubah-ubah melalui software jaringan pada protokolnya. Komputer client sebagai perantara untuk dapat mengakses data pada komputer server sedangkan komputer server menyediakan informasi yang diperlukan oleh komputer client.

-Jaringan Peer-to-peer Pada jaringan ini tidak ada komputer client maupun komputer server karena semua komputer dapat melakukan pengiriman maupun penerimaan informasi sehingga semua komputer berfungsi sebagai client sekaligus sebagai server.


4. Berdasarkan media transmisi data

- Jaringan Berkabel (Wired Network) Pada jaringan ini, untuk menghubungkan satu komputer dengan komputer lain diperlukan penghubung berupa kabel jaringan. Kabel jaringan berfungsi dalam mengirim informasi dalam bentuk sinyal listrik antar komputer jaringan.

- Jaringan Nirkabel (Wireless Network) Merupakan jaringan dengan medium berupa gelombang elektromagnetik. Pada jaringan ini tidak diperlukan kabel untuk menghubungkan antar komputer karena menggunakan gelombang elektromagnetik yang akan mengirimkan sinyal informasi antar komputer jaringan.