Tampilkan postingan dengan label Algoritma. Tampilkan semua postingan
Tampilkan postingan dengan label Algoritma. Tampilkan semua postingan

Senin, 18 November 2013

Definisi Queue
Queue merupakan satu bagian dari tipe data abstrak yang dibicarakan pada bab 5. Queue adalah
suatu tipe data yang mengikuti pola First In First Out (FIFO), yang berarti elemen yang pertama
masuk adalah elemen yang pertama pula dikeluarkan. Banyak contoh dalam kehidupan sehari-hari
yang menerapkan konsep dari Queue, atau yang dalam bahasa Indonesia lebih dikenal dengan istilah
antrian seperti antrian pasien di ruang tunggu dokter, antrian penonton yang membeli tiket, dsbnya.
Sama halnya seperti stack, queue juga merupakan satu tipe data abstrak yang
pengimplementasiannya bebas, artinya dapat diimplemetasikan dengan array maupun dengan list.

Implementasi Queue dengan struktur data Array

Untuk setiap struktur data queue yang diimplementasikan dengan array, posisi front (depan) back
(belakang) akan selalu ada. Perhatikan gambar berikut ini menunjukkan ilustrasi dari sebuah queue
yang diimplementasikan dengan menggunakan array. Dua hal yang menarik perhatian adalah (1)
queue bergerak dari indeks kecil menuju indeks yang besar dan (2) diperlukan dua buah penunjuk
(dalam ilustrasi disebut head dan tail)

Hal yang menarik, sekaligus merupakan kelemahan dari implementasi ini terjadi bila tail dari queue
telah merambat sampai keposisi pjg_max maka queue tersebut tidak dapat diisi lagi walaupun
sebenarnya queue tersebut belum penuh ( area yang berada di posisi 1 sampai head sebenarnya
merupakan tempat yang kosong). Ilustrasinya digambarkan berikut ini.

Circular Array

Ide yang paling sederhana adalah dengan mengisi tempat kosong (jika tersedia) yang berada pada
awal array bila tail telah mencapai posisi pjg_max sehingga penggunaan tempat menjadi lebih efisien.
Jadi seolah-olah array di bawah ini dibulatkan manjadi sebuah lingkaran seperti digambarkan berikut
ini (nama circular array berasal dari ide array yang dibulatkan).

Berikut adalah program C untuk mengimplementasikan Queue dengan menggunakan circular array.

#include <stdio.h>
#define PJG_MAX 10
Typedef int elemenType;
elementypeQ[PJG_MAX];
int head, tail;
void create()
{
Head = 0;
Tail = PJG_MAX -1;
}
void enqueue(elemenType e)
{
if(full()) printf(“queue sudah penuh\n”);
else {
Tail++;
Tail = Tail % PJG_MAX;
Q[Tail] = e;
}
}
void dequeue(elemenType*e)
{
if(empty()) printf(“Queue kosong\n”);
else {
*e = Q[head];
Head++;
Head = Head % PJG_MAX;
}
int empty()
{
if(((tail+1) % PJG_MAX) == Head) return (1);
else return (0);
}
void full()
{
int x;
x = Tail+2;
x = x % PJG_MAX;
if(x == Head) return (1);
else return (0);
}

Untuk lebih lengkap nya silahkan download materi nya disini

Jumat, 01 November 2013

Dalam perancangan suatu program, kadang-kadang kita memerlukan tipe data yang abstraksinya
lebih tinggi dari sekedar native data type yang tersedia. Pada bab ini akan dibahas satu abstrak data
type yang lebih tinggi abstraksinya dan pada umumnya tidak disediakan native data typenya, yaitu
stack. Walaupun dikatakan tipe data ini mempunyai abstraksi yang lebih tinggi tetapi kalau sampai
pada tahap implementasi dari tipe data ini, kita tetap memerlukan native data type yang tersedia
(array, record, pointer, linked-list, dll). Untuk keperluan implementasi dalam buku ini dipergunakan 2
tipe data, yaitu array dan linked-list.

Stack adalah tipe data yang mengikuti pola Last In First Out (LIFO), yang berarti elemen yang terakhir
masuk adalah elemen yang pertama keluar. Contoh yang dapat diilustrasikan sebagai stack ini
tumpukan piring di kantin dimana pada saat piring diletakkan akan diletakkan pada bagian atas, dan
pada saat pengambilan juga akan diambil dari yang paling atas.

Untuk lebih jelas nya silahkan Unduh materi nya disini
Double linked list mempunyai dua pointer yang menunjuk ke node berikutnya dan sebelumnya,
disebut juga dengan istilah :
1. next pointer dan
2. previous pointer

Untuk lebih jelas nya silahkan unduh materi nya disini



Rabu, 30 Oktober 2013

Pointer adalah variabel yang nilainya merupakan address dari variabel lain.

Pointer dan Address
Pointer akan sering digunakan didalam C. Pada umumnya program akan menjadi kompak dan lebih
efisien dengan bantuan pointer. Jika kita mendefinisikan suatu variabel menjadi pointer, maka
variabel tersebut mengandung address tempat variabel tersebut akan dialokasikan, tetapi bukan nilai
address itu sendiri. Karena pointer mengandung suatu objek, kita dapat mengakses obyek tersebut
dengan perantaraan sebuah pointer.

Contoh:

X adalah sebuah variabel dengan tipe integer dan PX adalah sebuah pointer variabel dengan tipe
integer

Untuk lebih lengkap nya silahkan download materi nya disini

Jumat, 25 Oktober 2013

  Array merupakan tipe data yang paling sederhana yang paling banyak dipergunakan. Hampir
semua bahasa pemrograman menyediakan native data tipe array ini. Pada bab sebelumnya telah
dijelaskan bahwa array termasuk tipe data struktur karena array selalu terdiri dari 1 atau lebih tipe
data atomik atau struktur lainnya.
  Pada umumnya letak elemen array secara logika dan fisikal (letak dimemori) adalah sama. Array
selalu terdiri atas 2 bagian; index dan komponen. Setiap index hanya selalu bersisi 1 komponen
(hubungan antara index dan komponen adalah one-to-one). Maka dari itu hubungan antar elemen
pada array bersifat homogenous.
Structure pada C identik dengan Record pada bahasa Pascal. Structure merupakan kumpulan
dari satu atau beberapa variabel yang mempunyai tipe sama atau berbeda (heterogeneous).
Variabel didalam structure disebut dengan nama komponen, field, elemen atau members.
Untuk lebih jelas nya silahkan download materi nya Disini




Sumber : Sulis Sandiwarno.S.Kom.,M.Kom
   Sebelum dibahas tentang pengertian dari Struktur Data, Tipe Data dan Abstraksi Data kita akan
mendefinisikan kata Data dan Struktur terlebih dahulu, karena kedua kata itu akan banyak
dipergunakan dalam buku ini.
   Data adalah Bahan yang digunakan dalam perhitungan atau operasi untuk menghasilkan informasi yang berguna.
   Struktur adalah pengaturan atau hubungan.
Maka struktur data dapat di definisikan sebagai pengaturan atau hubungan dari data dalam suatu system.Kita tentu sering bekerja dengan program, pertanyaan yang mungkin timbul adalah, “dimana letak kegunaan dari struktur data dalam hubungan nya dengan program. Untuk lebih lengkap nya silahkan download materi nya Disini






Sumber : sulis sandiwarno S.Kom.,M.Kom

Kamis, 24 Oktober 2013

Algoritma adalah suatu urutan logika (langkah langkah) pemecahan masalah tanpa melihat karakteristik bahasa pemrograman yang akan di gunakan. Langkah langkah harus tersusun secara logis dan efisien agar dapat menyelesaikan tugas dengan benar dan efisien. Algoritma merupakan gabungan antara SENI dan TEKNIK, Mengapa teknik karna algoritma adalah suatu pekerjaan yang bersifat rancang bangun. Mengapa Seni karna algoritma penuh dengan kreativitas dan imajinasi yang jenius. Untuk lebih jelas nya silahkan download Disini.