NAMA:CECEP AGUSM
KLS:3E
NAMA MATA KULIAH:STRUKTUR DATA
NAMA JURUSAN:TEKHNIK INFORMATIKA
NAMA DOSEN:ALI KHUMAIDI S.KOM
- apa itu struktur data??
Dalam istilah bahasa komputer "STRUKTUR DATA ADALAH", sebuah struktur data adalah cara penyimpanan, penyusunan
dan pengaturan data didalam media penyimpanan computer sehingga data tersebut
dapat digunakan secara efisien.
"SEDANGKAN DATA ITU SENDIRI" representasi dari fakta dunia nyata. Fakta atau keterangan tentang
kenyataan yang disimpan, direkam atau dipresentasikan dalam bentuk tulisan,
suara, gambar, sinyal atau symbol
"DAN FAKTA MEMPUNYAI ARTI SEPERTI" kenyataan yang tercatat mengenai suatu objek. Data dapat dinyatakan
menjadi konstanta dan variable.
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 data.
Struktur adalah komposisi, susunan yang
teratur, bertahap. Sedangkan data merupakan informasi yang telah diolah.
Maka
definisi struktur data adalah komposisi
dan susunan teratur dari data, dalam hal ini data dapat diartikan sebagai
data secara umum seperti diatas atau data dalam bidang pemrograman computer. Struktur Data adalah cara
penyimpanan, penyusunan dan pengaturan data di dalam media penyimpanan komputer
sehingga data tersebut dapat digunakan secara efisien.
HUBUNGAN ALGORITMA
DAN STRUKTUR DATA
Program
= Struktur Data + Algoritma
Algoritma
yang baik tanpa pemilihan struktur data yang tepat akan membuat program menjadi
kurang baik, demikian juga sebaliknya. Yang termasuk dalam struktur data antara
lain yaitu senarai berantai, antrian, tumpukan, daan pohon binear.
Adapun yang dimaksud
Algoritma yaitu
suatu langkah atau prosedur yang ditunjukan untuk memanipulasi data. Sebagai
contoh algoritma diperlukan untuk memasukkan data ke dalam suatu struktur data
atau untuk mencari suatu data yang tersimpan dalam struktur data
Struktur Data, meliputi :
·
Struktur data sederhana,
a. Array
b. Record.
·
Struktur data majemuk, terdiri dari :
a. Linier : Stack,
Queue, serta List dan Multilist
b. Non Linier : Pohon
Biner dan Graph
Pemakaian
struktur data yang tepat didalam proses pemrograman menghasilkan algoritma yang
lebih jelas dan tepat, sehingga menjadikan program secarakeseluruhan lebih
efisien dan sederhana.
Struktur data yang
standar yang biasanya digunakan dibidang informatika adalah :
Ø List Linier (Linked
List) dan variasinya
Ø Multilist
Ø Stack (Tumpukan)
Ø Queue (Antrian)
Ø Tree (Pohon)
Ø Graph (Graf)
ALGORITMA DAN METODE PEMROGRAMAN:
Penekanan
bagaimana memecahkan masalah dengan algoritma yang tepat. Dasar-dasar algoritma
:
·
Statement
Elementer :
°
Asignment
(untuk memberikan nilai ke variable yang telah dideklarasikan)
°
Comparison
(Untuk
keperluan pengambilan keputusan diperlukan operator)
°
Aritmatic Statement (Pangkat, Perkalian, Pengurangan, Penjumlahan, Pengurangan, Operator aritmatika yang
pemakaiannya khusus yaitu % sisa pembagian )
°
Operator Boolean (Operator Boolean atau operator
logika biasa dipakai untuk menghubungkan ungkapan relasi yang hasilnya adalah
true atau false, yaitu:
“&
&” and
(dan), “|
|” or
(atau),” ! “ Not (tidak))
°
Instruksi I/O ( Untuk memasukan data ke komputer
dapat melalui Instruksi (dalam bahasa C) sebagai berikut: Scant(), Getch(),
Getche() )
·
Statement
Control :
°
Alternatif :
Ø
If, Bentuk Umum : If (Kodisi)
{Persyaratan}
Ø
If-Else,
Bentuk Umum : If (Kodisi)
{Persyaratan - True}
Else
{Pernyataan – False}
Contoh
mencari/menentukan bilangan x adalah bilangan ganjil/genap ?
Ø
Switch,
Bentuk Umum : Switch (ekspresi)
{
Case – 1 :
Pernyataan – 1
Break;
…………..
Case – n :
Pernyataan – n
Break;
}
°
Pengulangan :
Ø
do while, Bentuk Umum :
do
{pernyataan}
while
(kondisi)
Ø
while, Bentuk Umum :
while (kondisi)
{pernyataan}
Ø
For,
Bentuk Umum : For (ungkapan-1; ungkapan-2; ungkapan-3)
{Pernyataan}
°
Percabangan (Memerlukan label sebagai identitas
cabang), Bentuk umum :
Label:
{
pernyataan
} goto label
} goto label
ket:
nah diatas adalah contoh pembuatan aplikasinya dan juga fungsi fungsinya juga udah saya jelaskan diatas
saya akan menjelaskan lagi tentang tipe data
Hirarki Type data :
1. Type Data Sederhana (
Menyimpan sebuah nilai data dalam sebuah variable) :
·
Integer (Bilangan bulat)
·
Boolean (Operator Logika)
·
Karakter
·
Tak Bertipe
1. Type Data Terstruktur
( Tipe dimana suatu variable bisa menyimpan lebih dari sebuah nilai data ) :
·
Type String
Data
yang berisi sederetan karakter dimana banyaknya karakter bisa berubah-ubah
sesuai kebutuhan.
Bentuk
umum : Char nama_variabel[ukuran]
·
Larik (Array)
Variabel larik hanya bisa menyimpan 1 tipe data
saja.
Bentuk umum : tipe_data nama_variabel[ukuran]
·
Record
Terdiri
dari beberapa variabel yang terstruktur dan masing-masing variabel bisa
mempunyai tipe yang berbeda.
Bentuk umum : struct nama_variabel_struktur
{tipe
field1;
tipe field2;
……;
tipe fieldN;
}Var_struk1,
Var_struk1,……..,Var_strukN;
·
Set (Himpunan)
o Union (Memungkinkan suatu lokasi memori
ditempati oleh dua atau lebih variabel
yang tipenya bisa berlainan)
o Enumerasi
(Himpunan dari konstanta
integer yang diberi nama)
·
File (Organisasi
dari sejumlah record sejenis)
2. Type Data Pointer ( Variabel pointer berisi alamat
dari suatu obyek lain (yaitu obyek
yang ditunjuk oleh pointer tersebut )
Bentuk umum : Tipe
* nama_pointer
2. apa itu ARRAY ???
Array adalah struktur data yang menyimpan data-data
bertipe sama dalam urutan tertentu. Array dapat dianalogikan sebagai sebuah loker
yang memiliki sederetan kotak penyimpanan yang diberi nomor berurutan.
Data-data dalam array disebut elemen array. Dengan array setiap elemen bisa
diakses langsung melalui indeksnya. Kelebihan lain dari array adalah kita bisa
memakai sejumlah variable dengan nama yang sama asalkan variable tersebut dalam
indeks yang berbeda.
1.
Karakteristik
array :
E Mepunyai batasan dari pemesanan
alokasi memori (bersifat statis)
E Mempunyai tipe data sama (bersifat
homogen)
E Dapat diakses secara acak.
1.
Jenis
array :
a)
Array Satu Dimensi
Array satu dimensi yaitu kumpulan elemen-elemen
identik yang hanya terdiri dari satu baris atau hanya satu kolom alamat
penyimpanan data (indeks). Elemen-elemen tersebut memiliki tipe data yang sama,
tetapi isi dari elemen tersebut boleh berbeda.
Bentuk umum :
Tipe_data namaArray[n] = {elemen0, elemen1,
elemen2,…..,n};
n = jumlah elemen
contoh pada progam : int ukur[5] = {39, 40. 41, 38,
40};
- int adalah tipe
data yang berupa bilangan bulat.
- Ukur adalah
nama variabel array.
- [5] adalah
ukuran untuk menyatakan jumlah maksimal elemen array.
- {..} adalah
tempat pemberian nilai/elemen array.
b) Array
Dua Dimensi
Array dua dimensi sering digambarkan sebagai sebuah
matriks, merupakan perluasan dari array satu dimensi. Jika array satu dimensi
hanya terdiri dari sebuah baris dan beberapa kolom elemen, maka array dua
dimensi terdiri dari beberapa baris dan beberapa kolom elemen bertipe sama
sehingga dapat digambarkan sebagai berikut :
Bentuk umum :
Tipe_data namaArray [m][n] = {{a,b,…z},{1,2,…,n-1}};
m = banyaknya baris
n = banyaknya kolom
contoh : int lulus[4][3];
- Nilai 4 untuk
menyatakan banyaknya baris dan 3 untuk menyatakan banyaknya kolom.
Pendeklarasian array dua dimensi hampir sama dengan
pendeklarasian array satu dimensi, kecuali bahwa array dua dimensi terdapat dua
jumlah elemen yang terdapat dikurung kurung siku dan keduanya boleh tidak sama.
Elemen array dua dimensi diakses dengan menuliskan kedua indeks elemennya dalam
kurung.
c) Array
MultiDimensi
Array ini seperti array dimensi dua tetapi dapat
memiliki ukuran yang lebih besar. Sebenarnya array dimensi banyak ini tidak
terlalu sering digunakan, tetapi sewaktu-waktu kalau dimensi yang dibutuhkan
banyak, maka array ini sangat memegang peranan yang penting.
Bentuk umum pendeklarasian array multidimensi :
Tipe_data namaArray[ukuran1][ukuran2]…[ukuranN];
Sebagai contoh :
int data_huruf[2][8][8]
contoh di atas merupakan pendeklarasian array
data_huruf sebagai array berdimensi tiga.
- Contoh
kasus dari jenis- jenis Array:
a. Array Berdimensi Satu.
Berikut ini adalah contoh program yang
memberikan inisialisasi terhadap array berdimensi satu :
a. Array Berdimensi Dua.
Berikut
ini adalah contoh program yang memberikan inisialisasi terhadap array
berdimensi dua :
a. Array Berdimensi Tiga (Multi
Dimensi).
Berikut ini adalah contoh program
yang memberikan inisialisasi terhadap array berdimensi tiga:
nah itu adalah contoh apliklasi yang saya buat dan saya juga perjelas tentang codingan nya.
3. apa itu stack???
Ada empat operasi dasar yang
didefinisikan pada stack, yaitu :
3. apa itu stack???
1.
CREATE(stack)
2. ISEMPTY(stack)
3. PUSH(elemen,stack)
4. POP(stack)
CREATE
Operator ini berfungsi untuk membuat
sebuah stack kosong dan didefinisikan bahwa :
NOEL(CREATE(S)) = 0 dan TOP(CREATE(S)) =
null
ISEMPTY
Operator ini berfungsi untuk menentukan
apakah suatu stack adalah stack kosong. Operasinya akan bernilai boolean,
dengan definisi sebagai berikut :
ISEMPTY(S)
= true, jika S adalah stack kosong
= false, jika S bukan stack kosong
atau
ISEMPTY(S)
= true, jika NOEL(S) = 0
= false, jika NOEL(S) 0
Catatan
: ISEMPTY(CREATE(S)) = true.
PUSH
Operator ini berfungsi untuk menambahkan
satu elemen ke dalam stack. Notasi yang digunakan adalah :
PUSH(E,S)
Artinya
: menambahkan elemen E ke dalam stack S.
Elemen
yang baru masuk ini akan menempati posisi TOP.
Jadi : TOP(PUSH(E,S))
= E.
Akibat
dari operasi ini jumlah elemen dalam stack akan bertambah, artinya NOEL(S)
menjadi lebih besar atau stack menjadi tidak kosong (ISEMPTY(PUSH(E,S)) =
false).
POP
Operator ini berfungsi untuk mengeluarkan
satu elemen dari dalam stack. Notasinya :
POP(S)
Elemen yang keluar dari dalam stack adalah elemen yang berada pada
posisi TOP. Akibat dari operasi ini jumlah elemen stack akan berkurang atau
NOEL(S) berkurang dan elemen pada posisi TOP akan berubah. Operator POP ini
tidak dapat digunakan pada stack kosong, artinya :
4. apa itu QUEQUE???
Queue/antrian adalah ordered list dengan penyisipan di satu ujung, sedang penghapusan di ujung lain. Ujung penyisipan biasa disebutrear/tail, sedang ujung penghapusa disebut front/head. Fenomena yang muncul adalah elemen yang lebih dulu disisipkan akan juga lebih dulu diambil. Queue berdisiplin FIFO (First In, First Out). Queue merupakan kasus khusus ordered list. Dengan karakteristik terbatas itu maka kita dapat melakukan optimasi representasi ADT Queue untuk memperoleh kerja paling optimal.
Misalnya Queue Q= (a1,a2,a3…,an), maka
1.Elemen a1 adalah elemen paling depan
2.Elemen ai adalah diatas elemen ai-1, di mana 1<i<n.
3.Elemen an adalah elemen paling belakang
Head (atau front) menunjuk ke awal antrian Q (atau elemen terdepan), sedangkan tail ( rear) menunjuk akhir antrian Q (atau elemen paling belakang).Disiplin FIFO pada Queue berimplikasi jika elemen A, B, C, D, E dimasukkan ke Queue, maka penghapusan/pengambilan elemen akan terjadi dengan urutan A, B, C, D, E.
2.2 Karakteristik Queue
Karakteristik penting antrian sebagai berikut :
1.Elemen antrian yaitu item-item data yang terdapat di elemen antrian.
2.Head/front (elemen terdepan dari antrian ).
3.Tail/rear (elemen terakhir dari antrian ).
4.Jumlah elemen pada antrian (count).
5.Status/kondisi antrian.
Kondisi antrian yang menjadi perhatian adalah :
- Penuh
Bila elemen di antrian mencapai kapasitas maksimum antrian. Pada kondisi ini, tidak mungkin dilakukan penambahan ke antrian. Penambahan elemen menyebabkan kondisi kesalahan Overflow.
- Kosong
Bila tidak ada elemen di antrian. Pada kondisi ini, tidak mungkin dilakukan pengambilan elemen dari antrian. Pengambilan elemen menyebabkan kondisi kesalahan Underflow.
2.3 Operasi-Operasi Pokok di Queue
- Operasi-operasi pokok antrian sebagai berikut :
1.createQueue (Q), atau constructor menciptakan antrian kosong Q.
2.addQueue (Q, X) memasukkan elemen X sebagai elemen akhir di Q.
3.removeQueue (Q, X)atau mengambil elemen depan di antrian Q ke elemenX.
- Operasi-operasi pengaksesan tambahan yang dapat dilakukan adalah :
1.headQueue (Q), atau Front (Q, X) mengirim elemen terdepan tanpa menghapus.
2.tailQueue (Q), mengirim elemen tanpa menghapusnya.
- Operasi-0perasi Query tambahan yang dapat dilakukan adalah :
1.isEmptyQueue (Q), mengirim apakah antrian Q adalah kosong.
2.isFullQueue (Q), mengirim apakah antrian Q adalah penuh bila kapasitas antrian Q didefinisikan.
3.isOverflowQueue (Q), mengirim apakah antrian Q telah mengalamioverflow.
4.isUnderflowQueue (Q), mengirim apakah antrian Q mengalamiunderflow.
- Operasi-operasi terhadap seluruh antrian Q antara lain adalah :
1.sizeQueue (Q), mengetahui jumlah elemen di antrian Q.
2.isEqualQueue (Q1, Q2), mengirim apakah antrian Q1 dan Q2 sama isinya.
Jumlah operasi pokok Queue tidak banyak. Dengan demikian, sangat sederhana untuk menyatakan apa pun mengenai implementasinya.
2.4. Pengunaan Queue
Meski Queue sangat sederhana, namun Queue merupakan kakas dasar penyelesaian masalah-masalah besar. penggunaan Queue yang utama adalah untuk simulasi fenomena antrian di dunia nyata, serta fenomena antrian di pengolahan data.
Penggunaan Queue dapat dicontohkan seperti dibawah ini :
1.Simulasi antrian di dunia nyata, antara lain :
- Antrian pembelian tiket di depan loket untuk bis, kereta api, bioskop.
- Antrian mobil di depan gerbang jalan tol.
- Antrian kendaraan di jalanan umum.
2. System produksi
- Barisan bahan atau komponen yang akan diproses suatu mesin.
- Barisan bahan atau komponen yang akan diproses suatu manusia
Untuk lebih jelasnya,dbawah ini ada contoh dalam bentuk coding C++
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
void main()
{
int cek=0, data[8], x, hapus;
char pil;
do {
clrscr();
cout<<” Ujian Praktikum Struktur Data Queue”<<endl;
cout<<” cecep agus m”<<endl;
cout<<” UNIVERSITAS KRISNADWIPAYANA”<<endl;
cout<<endl;
printf(“d. Masukan Data Antrian\n”);
printf(“e. Hapus Data Antrian\n”);
printf(“n. Lihat Data Antrian\n”);
printf(“y. Exit Program\n”);
cout<<endl;
printf(“Ketikan Huruf Dari Salah Satu Pilihan Diatas… “);
pil=getche();
cout<<endl;
if(pil!=’d’ && pil !=’e’ && pil !=’n’ && pil!=’y’ )
printf(“\n\nSalah Ketik, Ulangi Lagi…\n”);
else
{
if(pil==’d’) //PUSH
{
if(cek==8)
printf(“\nAntrian Penuh\n”);
else
{
printf(“\nMasukkan angka–>”);scanf(“%i”,&x);
data[cek]=x;
cek++;
}}
else
{
if(pil==’e’) //POP
{
if(cek==0)
printf(“\nMaaf Tidak Antrian Untuk Dihapus \n\n”);
else
{
hapus=data[0];
for(int v=0;v<cek;v++)
data[v]=data[v+1];
data[cek-1]=NULL;
cek–;
cout<<endl;
printf(“Yakin Anda Ingin Data Ini DiHapus ??? “);
cout<<endl;
printf(“\nData dgn nilai=%i akan terhapus. [Tekan Enter]”,hapus);
}
getch();
}
else
{
if(pil==’n’) //Mengecek Data
{
if(cek==0)
printf(“\nMaaf Tidak Ada Antrian Untuk Ditampilkan.\n\n”);
else
{
printf(“\n”);
for(int z=0;z<cek;z++)
{
printf(” { “);
printf(“%i”,data[z]);
printf(” } “);
}
}
getch();
}
}
}
}
}while(pil!=’y’);
cout<<endl;
cout<<endl;
printf(“Yakin anda ingin keluar…??? {{{Tekan Enter Cak}}} “);
pil=getche();
}m
sekian dan terimaksih