You are on page 1of 38

Rini Suwartika K, S.

Kom
Email: rinisuwartika@yahoo.com

MATERI PEMBAHASAN
Pengantar Struktur Data

ARRAY
Struktur Data Dinamis (Pointer) Operasi Dasar Pada List

Stack dan Queue


Pengurutan Data (Sorting) Pencarian Data (Searching)

Pohon dan Graph (**)

PENILAIAN
Partisipasi
Tugas/Quis UTS

UAS

10% 20% 30% 40%

Ketentuan Tugas : Tugas akan diterima paling lambat 1 minggu setelah batas pengumpulan

BAB I Pengantar Struktur Data

DEFINISI
Struktur data menjadi dasar dalam langkah awal

perancangan program

Algoritma + Struktur Data = Program

Algoritma, Program Dan Struktur Data


Algoritma sejumlah langkah komputasi yang mengubah masukan (input) menjadi keluaran (output) yang benar.

Struktur data cara pengaturan data agar bisa disimpan memory komputer secara efisien
Program algoritma yang diimplementasikan pemrograman tertentu dalam bahasa

MANFAAT STRUKTUR DATA


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. Membuat program lebih ringkas, lebih bersih, lebih elegan, lebih mudah dan lebih mampu berkinerja tinggi (karena efisien dalam penggunaan memori dan waktu) Program berjalan membutuhkan waktu beberapa detik, di mana struktur yang lain mungkin akan membutuhkan ribuan detik.

TIPE DATA STANDAR


Tipe data standar merupakan tipe data yang tersedia pada kebanyakan komputer sebagai built-in features. Bahasa standar yang akan digunakan dalam Struktur Data adalah Bahasa C. Tipe data standar Dalam Bahasa C yaitu : - Integer (int) - Real (Float) - Char (char) Variabel adalah suatu pengenal (identifier) yang digunakan untuk mewakili suatu nilai tertentu.

Tahapan dalam Pemrograman


1.
2. 3.

Analisa masalah Memilih algoritma dan struktur data untuk menyelesaikan masalah itu Coding (implementasi algoritma memakai bahasa pemrograman tertentu)

Contoh Algoritma 1: Menghitung Luas Segitiga


Definisi masalah:

bagaimana menghitung luas sebuah segitiga jika diketahui alas dan tingginya
Membuat model matematika untuk menghitung luas segitiga

luas = alas x tinggi 2

Masalah telah diketahui dan diformulasikan secara matematis. Formulasi tsb. bisa berupa tulisan tangan, ketikan, dsb.

Menuliskan algoritma memakai Pseudocode

input alas input tinggi luas ( alas x tinggi ) / 2 print luas


Formulasi itu dituangkan ke dalam langkah-langkah Implementasi. Ada standardisasi cara penulisan yang dipakai yang lebih dekat ke arah bahasa pemrograman. Misalnya flowchart, bahasa indonesia terstruktur, pseudo code, dsb.

Menuliskan program
Mengubah algoritma menjadi program (source code) dalam

bahasa tertentu (Contoh bahasa pemrograman: C, Pascal, Basic, dsb) #include <stdio.h>

main() { float alas, tinggi, luas; alas=10.0; tinggi=3.5; luas = alas*tinggi/2; printf(luas: %f\n,luas); }
Flowchart atau pseudocode diterjemahkan ke bahasa pemrograman tertentu dengan mematuhi kaidah penulisan syntax (kalimat) pada bahasa tersebut. Hasilnya berupa source code.

Kompilasi dan Eksekusi


Pada tahap ini source code (kode sumber) diubah menjadi

kode yang bisa dijalankan oleh komputer (executable). Kode yang executable inilah yang kemudian dieksekusikan.

Syarat-syarat Algoritma
Finiteness

Algoritma harus berakhir setelah melakukan sejumlah langkah proses Definiteness Setiap langkah algoritma harus didefinisikan dengan tepat dan tidak menimbulkan makna ganda Input Setiap algoritma memerlukan data sebagai masukan untuk diolah Output Setiap algoritma memberikan satu atau beberapa hasil keluaran Effectiveness Langkah-langkah algoritma dikerjakan dalam waktu yang wajar (Donald E. Knuth)

Hubungan antara Algoritma & Struktur Data

Wirth: algoritma

struktur data

program

Algoritma penyelesaian satu masalah secara

matematis Turing machine Model matematika komputer Memiliki tape dengan panjang tak terhingga sebagai alat penyimpan ingatan (memory) Running time, kecepatan tak terhingga Padahal komputer yang ada sangat terbatas baik memory maupun kecepatannya

Latihan

Buatlah algoritma untuk menghitung : A. Luas Persegi Panjang B. Luas Lingkaran C. Keliling Persegi Kemudian buatlah program menggunakan bahasa C!

Penyeleksian Kondisi
1. Struktur Kondisi IF. Struktur if dibentuk dari pernyataan if dan sering digunakan untuk menyeleksi suatu kondisi tunggal. Bila proses yang diseleksi terpenuhi atau bernilai benar, maka pernyataan yang ada di dalam blok if akan diproses dan dikerjakan. Bentuk umum struktur kondisi if adalah : If (kondisi) pernyataan; 2. Struktur Kondisi IF......ELSE. Dalam struktur kondisi if.....else minimal terdapat dua pernyataan. Jika kondisi yang diperiksa bernilai benar atau terpenuhi maka pernyataan pertama yang dilaksanakan dan jika kondisi yang diperiksa bernilai salah maka pernyataan yang kedua yang dilaksanakan. Bentuk umumnya adalah sebagai berikut : if(kondisi) pernyataan-1 Else pernyataan-2

Penyeleksian Kondisi (lanjutan)


3. Struktur Kondisi SWITCH....CASE....DEFAULT Struktur kondisi switch....case....default digunakan untuk penyeleksian kondisi dengan kemungkinan yang terjadi cukup banyak. Struktur ini akan melaksanakan salah satu dari beberapa pernyataan case tergantung nilai kondisi yang ada di dalam switch. Selanjutnya proses diteruskan hingga ditemukan pernyataan break. Jika tidak ada nilai pada case yang sesuai dengan nilai kondisi, maka proses akan diteruskan kepada pernyataan yang ada di bawah default. Bentuk umum dari struktur kondisi ini adalah : switch(kondisi) { case 1 : pernyataan-1;break; case 2 : pernyataan-2;break; ..... case n : pernyataan-n; break; default : pernyataan-m }

Algoritma Penyeleksian Kondisi (IF-Else)


Algoritma CekNilai Var Nilai : real Input (nilai) If (nilai > 65) then Output ( Lulus) Else Output (Tidak Lulus) End If

Penyeleksian Kondisi (IF-Else) Dalam Bahasa C


#include stdio.h #include conio.h void main() { float nilai; clrscr(); printf(Masukan nilai yang didapat : ); scanf(%f, &nilai); /* Masukan akan disimpan dalam variable nilai */ if (nilai > 65) printf(\n LULUS !!!\n); else printf(\n TIDAK LULUS !!!\n); getch(); }

Perulangan
1.

Struktur Pengulangan WHILE Perulangan WHILE banyak digunakan pada program yang terstruktur. Perulangan ini banyak digunakan bila jumlah perulangannya belum diketahui. Proses perulangan akan terus berlanjut selama kondisinya bernilai benar (true) dan akan berhenti bila kondisinya bernilai salah. Bentuk umum dari while adalah seperti berikut : while (kondisi) { perintah; perintah; }

Perulangan (lanjutan)
2. Struktur Pengulangan DO.....WHILE Pada dasarnya struktur perulangan do....while sama saja dengan struktur while, hanya saja pada proses perulangan dengan while, seleksi berada di while yang letaknya di atas sementara pada perulangan do....while, seleksi while berada di bawah batas perulangan. Jadi dengan menggunakan struktur dowhile sekurang-kurangnya akan terjadi satu kali perulangan. Bentuk umum dari do while adalah seperti berikut : do {perintah; perintah; } while (kondisi);

Perulangan (lanjutan)
3. Struktur Pengulangan FOR Struktur perulangan for biasa digunakan untuk mengulang suatu proses yang telah diketahui jumlah perulangannya. Dari segi penulisannya, struktur perulangan for tampaknya lebih efisien karena susunannya lebih simpel dan sederhana. Bentuk umum perulangan for adalah sebagai berikut : for(inisialisasi; syarat; penambahan) pernyataan; Keterangan : Inisialisasi : pernyataan untuk menyatakan keadaan awal dari variabel kontrol. syarat : ekspresi relasi yang menyatakan kondisi untuk keluar dari perulangan. penambahan : pengatur perubahan nilai variabel kontrol.

Contoh Algoritma Perulangan


Algoritma Perulangan Var X : integer Algoritma x=1 while (x <= 10) Output (BAHASA C); X x+1 endwhile

Contoh Perulangan Dalam Bahasa C


#include stdio.h #include conio.h void main() { int x; x = 1; /* awal variabel */ while (x <= 10) /* Batas akhir perulangan */ { printf(%d BAHASA C\n, x); x++; /* variabel x ditambah dengan 1 */ } getch(); }

Model Struktur Data :


Struktur data statis, contoh : Array.

Struktur data dinamis, contoh : Pointer.

Struktur Data Statis


Array
Array adalah sekumpulan memori untuk suatu nama yang memiliki elemen-elemen data yang sejenis. Sifat-sifat array adalah sebagai berikut : Mengacu sekumpulan elemen melalui indeks. Elemen bertipe sama. Disimpan secara berurutan di memori. Ukuran tetap, harus dipesan terlebih dahulu.

Keuntungan data array / larik : Paling mudah pengoperasiannya Ekonomis dalam pemakaian memori, bila semua elemen terisi Akses ke setiap elemen memerlukan waktu yang sama

Kerugian data array / larik : Memboroskan tempat jika banyak elemen yang tidak digunakan

Representasi array dibagi menjadi dua, yaitu :


1.

Representasi array 1 dimensi, contoh : string. array A


1 2 3 4 5 6 7 8

Elemen Larik :

A[1] A[2] A[3] A[4] A[5] A[6] A[7]


5 , 6 , 7 , 8

A[8]
Indeks Larik : 1, 2 , 3 , 4 , Mengisi elemen larik : A[3] 100

Deklarasi Array / larik


Type < Nama Array>=Array [ indexArray ]of TipeData; Atau Const Min = ; Maks=; Var Nama_array: array[ Min..Maks ]of typedata; Sebelum elemen array / larik dapat digunakan, perlu didefinisikan dahulu pada kamus data sebagai berikut : Kamus : Nama : array[1..400] of string { array dengan tipe data string } Panjang : array[ae] of real { array dengan tipe data real}

Hal yang perlu diingat : Elemen array harus memiliki tipe data yang sama atau sejenis (homogen) seperti integer, real, char, string, Boolean, record. Artinya array tersebut didefinisikan sebagai integer maka nilai yang boleh masuk ke dalam elemen array harus bertipe integer. indeks array harus memiliki tipe data yang menyatakan keterurutan, seperti integer atau karakter.

Pendeklarasian array di Pascal : Untuk array 1 dimensi :


Const IdxAwal = 1; IdxAkhir = 100; {Pendeklarasian pada bagian type} Type TipeInfo = ; TabInfo = Array [IdxAwal .. IdxAkhir] of TipeInfo; {Pendeklarasian pada bagian variabel} Var <identifikasi_variabel> : TabInfo; Untuk array 2 dimensi (akan dibahas pada praktikum selanjutnya).

Contoh Program_Proses_Array :
KAMUS Const : N = 10 { jumlah elemen array} Indeks : integer A : Array [1..N] of integer { deklarasi array A dengan tipe data integer } Algoritma For Indeks 1 to N do Proses Array Endfor

2. Representasi array 2 dimensi, contoh : matriks.


Matriks adalah struktur data yang mengacu pada

sebuah/ sekumpulan elemen yang diakses melalui indeks. Matriks berindek terdiri dari dua bagian yaitu indeks baris dan indeks kolom. Setiap elemen matriks dapat diakses melalui indeksnya

Contoh : Matriks A bernama A dengan ukuran 2 X 3 ( memiliki indeks baris 2 dan indeks kolom 3 ) A[1,1] A[1,2] A[1,N] A[1,1] A[1,N] A[2,1] A[2,N]

A[N,1] A[N,N]

Contoh Latihan : Buat fungsi untuk menjumlahkan seluruh nilai elemen tabel, sesuai algoritma berikut: Function SumTabInt (TI : TabInt ) : integer; For i IdxMin to IdxMax do Sum Sum + TI [ i ] Endfor SumTabInt Sum end

2. Buat fungsi untuk merata-ratakan seluruh nilai

elemen tabel, sesuai algoritma berikut: Function AvgTabInt (TI : TabInt ) : real; For i IdxMin to IdxMax do Sum Sum + TI [ i ]; Endfor SumTabInt Sum / ((IdxMax-IdxMin)+1) end

Pendahuluan
Rini Suwartika K, S.Kom

Email: rinisuwartika@yahoo.com

You might also like