Modul Algoritma & Struktur Data | 1
MODUL LABORATORIUM
ALGOTIRMA DAN STRUKTUR DATA
FAKULTAS TEKNIK
PROGRAM STUDI TEKNIK INFORMATIKA
Penyusun Modul
Hindarto, S.Kom, MT
Ade Eviyanti, S.Kom
Yunianita Rahmawati, S.Kom
Prodi Informatika Universitas Muhammadiyah SidoarjoModul Algoritma & Struktur Data |2
KATA PENGANTAR
Puji syukur kepada Tuhan Yang Maha Esa, schingga modul Laboratorium algoritma dan
struktur data ini dapat disusun dengan baik. Modul ini disusun sedemikian rupa agar dapat
digunakan dengan mudah oleh mahasiswa teknik informatika sebagai panduan dalam
penggunaan Laboratorium untuk kegiatan praktikum, untuk kegiatan penelitian,
pengembangan dan inovasi dalam bidang Informatika dan Komputer.
Terima kasih yang sebesar-besarya kami, ucapkan pada berbagai pihak yang. telah
membantu dan mendukung pembuatan modul ini
Prodi Informatika Universitas Muhammadiyah SidoarjoModul Algoritma & Struktur Data |3
DAFTAR ISI
Cover
Kata Pengantar..
Daftar Isi,
Daftar Tabel.
Diab: Gamo cca sae ae ate eee tes seer crest
Bab I Pendahuluan
A. Profil Laboratorium Algoritma dan Struktur Data
Visi Laboratorium...
Misi Laboratorium.
Sasararn Laboratorium,
Tujuan Laboratorium.
Manfaat Laboratorium
Foto Laboratorium. :
B. Manajemen Laboratorium Algoritma dan Struktur Data..
Struktur Organisasi 0:
SOP (Standard Operasional Prosedur)
Tata Tertib
Inventaris Laboratorium.
C. Penggunaan Laboratorium.
D. Peralatan Laboratorium
‘A. Analisis Materi / Instruksional
B. Silabus Praktik..
C. Satuan A jaran Praktikum (SAP)
Bab III Materi Modul
Pokok Bahasan 1
Pendahuluan.
Penyajian (Tutorial).
Lembar Kerja dan Tugas
Kunei Lembar Kerja.
Referensi
Pokok Bahasan 2....
Pendahuluan..
Penyajian (Tutorial)
Lembar Kerja dan Tugas
Kunei Lembar Kerja
Referensi..n.n0
Pokok Bahasan 3
Pendahuluan.....
Penyajian (Tutorial).
Lembar Kerja dan Tugas
Kunei Lembar Kerja
Referensi.
Pokok Bahasan 4
Pendahuluan
Penyajian (Tutorial)
Lembar Kerja dan Tugas
Prodi Informatika Universitas Muhammadiyah Sidoarjo‘Modul Algoritma & Struktur Data |4
"7
17
8
8
8
8
1
1
2
2
2
6
60
60
1
1
Prodi Informatika Universitas Muhammadiyah SidoarjoModul Algoritma & Struktur Data |5
Tabel | Daftar Range Nilai
Tabel 2 Satuan Acara Praktikum (SAP).
Prodi Informatika Universitas Muhammadiyah SidoarjoGambar I
Gambar 2
Gambar 3
Gambar 1.1
Gambar 1.2
Gambar 1.3
Gambar 1.4
Gambar 2.1
Gambar 2.2
Gambar 2.3
Gambar 2.4
Gambar 2.5
Gambar 3.1
Gambar 3.2
Gambar3.3
Gambar 3.4
Gambar 3.5
Gambar 4.1
Gambar 4.2
Gambar 4.3
Gambar 4.4
Gambar 5.1
Gambar 5.2
Gambar 5.3
Gambar 5.4
Gambar 6.1
Gambar 6.2
Gambar 6.3
Gambar 6.4
Gambar 6.5
Gambar 6.6
Gambar 6.7
Foto Laboratorium Algoritma Dan Struktur Data.....
Struktur Organisasi...
Modul Algoritma & Struktur Data | 6
DAFTAR GAMBAR
Diagram alir Langkah-langkah yang dilakukan oleh Kepala
Laboratorium,
Mahasiswa, Asisten, Laboran dan Dosen Praktikum pada pelaksanaan
praktikum,
12
Struktur Array Satu Dimensi...
Output Soal |
Output Soal 2.
Output Soal 3.
List Tunggal..
List-Tunggal dengan Kepala dan Ekor, List Tunggal Berputar...
List ganda dengan Kepala, List ganda dengan oo dan Ekor.
Output Soal I.
Output Soal 2
Tustrasi Stack...
Representasi Stack Statis.
Representasi Stack Dinamis.
Output Soal Loon
Output Soal 2
Mustrasi Antrian dengan 8 Elemen,
Representasi Queue Statis
Representasi Queue Dinamis.
Output Soal 1
Output Soal 1.
Output Soal 2.
‘Output Soal 3
Output Soal 4.
Langkah | Bubble Sot
Langkah 2 Bubble Sort.
Langkah 3 Bubble Sort.
Langkah Selection Sort
Contoh Merger Sort
‘Output Soal 1
Output Soal
Prodi Informatika Universitas Muhammadiyah SidoarjoA. Profil Laboratorium Algoritma Dan Struktur Data
Modul Algoritma & Struktur Data |7
BABI
PENDAHULUAN
Visi Laboratorium
*Mewujudkan Laboratorium Algor
Nasional 2020
Pei
Sas
‘Tujuan Laboratorium
3.
4
ma dan Struktur Data yang bermutu Tingkat
Bidang Informatika dan Komputasi, serta Menjadi Unit
ndukung Kegiatan di Unit Kerja Lain di Lingkungan UMSIDA”.
Laboratorium,
Menyelenggarakan Laboratorium Algoritma dan Struktur Data
berkualitas,dan pembimbingan berdasarkan kurikulum yang terintegratif dan
berkelanjutan untuk seluruh Mahasiswa Informatika,
Menyediakan sarana dan prasarana untuk kegiatan penelitian,
pengembangan dan inovasi dalam bidang Informatika dan Komputer.
Memberikan pelayanan laboratorium yang baik dan bermutu,
Meningkatkan Kerjasama dengan instansi pemerintah/swasta/masyarakat di
bidang Informatika dan Komputer di Tingkat Nasional.
saran Laboratorium
‘Tersedianya sarana dan prasarana untuk penunjang ke;
Laboratorium. Tersedianya assisten laboratorium dan assisten
praktikum yang professional dan sesuai dengan tugasny:
Adanya koordinasi atau kerja sama yang baik antara unit-unit yang tekait.
Meningkatnya pengelolaan data akademik.
Meningkatnya pelayanan administrasi Laboratorium,
Mengembangkan sumber daya laboratorium terpadu untuk peningkatan
kualitas pelayanan praktikum, penelitian, pembelajaran dan pengembangan
masyarakat,
Mengembangkan sumber-sumber pendanaan laoratorium yang
berkelanjutan-
Pengembangan sistem manajemen Laboratorium yang sehat dan harmonis.
Mengembangkan kelembagaan laboratorium yang kuat dan dinamis serta
meningkatkan kapabilitas dan kompetensi SDM.
Manfaat Laboratorium Algoritma Dan Struktur Data
1
Diharapkan dapat memfasilitasi pengembangan mata pelajaran TIK (Teknologi
Informasi Komputer) sebagai bagian dasar pemanfaatan teknologi untuk
mempersiapkan peserta didik yang memadai agar dimasa depan dapat
berperan sebagai kontribusi dari penguasaan komputer.
Prodi Informatika Universitas Muhammadiyah SidoarjoModul Algoritma & Struktur Data |8
2. Untuk menunjang proses pembelajaran yang bermutu, teratur dan
berkelanjutan.
3. Meningkatkan pengalaman dan keterampilan dalam mengimplementasikan
penguasaan komputer pada mata pelajaran lainnya.
4. Memberikan dampak kepada siswa untuk lebih terampil mengkomunikasikan
teori dengan praktik dalam proses belajar-mengajar.
5. Memberikan pengalaman langsung kepada siswa melalui praktik-praktik
lapangan.
Foto Laboratorium
|
Gambar 1 Foto Laboratorium Algoritma Dan Struktur Data
Prodi Informatika Universitas Muhammadiyah SidoarjoModul Algoritma & Struktur Data |9
B. Manajemen Laboratorium
Struktur Organisasi Laboratorium
Prodi Informatika Universitas Muhammadiyah SidoarjoModul Algoritma & Struktur Data | 10
SOP (Standard Operasional Prosedur)
SOP (Standard Operasional Prosedur) adalah suatu pedoman tertulis yang
dipergunakan untuk memperlancar kegiatan Laboratorium teknik Informatika.
a. Tujuan SOP
1. Meningkatkan efisiensi pelaksanaan kegiatan laboratorium Algoritma dan
struktur Data pada jurusan Teknik Informatika.
2. Memberikan sanksi bagi pengguna laboratorium yang tidak memenuhi
aturan,
b. Pihak Terkait
1. Mahasiswa;
2. Dosen;
3. Laboran;
4. Asisten; dan
5. Kalab.
c. Waktu Dan Tempat Pelaksanaan
Waktu praktikum sesuai dengan jadwal yang telah ditentukan. Tempat
pelaksanaan praktikum di Laboratorium Algoritma dan Struktur Data.
el Jumlah tatap muka
Jumlah tatap muka praktikum Algoritma dan Struktur Data di
Laboratorium Algoritma dan Struktur Data menetapkan 6 kali tatap muka.
¢.2, Lama praktikum setiap tatap muka
Lama praktikum untuk setiap tatap muka adalah 2 jam dengan
pertimbangan bahwa setengah jam pertama untuk persiapan peralatan
sedangkan satu setengah jam berikutnya untuk materi praktikum . Jeda
waktu antar praktikum 15 menit dengan pertimbangan bahwa diperlukan
waktu kurang lebih 15 menit bagi asisten untuk mempersiapkan pelaksanaan
praktikum berikutnya.
Prosedur Penggunaan Laboratorium Algoritma Dan Struktur Data
1. Tidak menginstal software pada komputer yang digunakan
a. Tidak menginstal dan menghapus
b. Tidak membuat akun, didirektori
¢. Tidak menambah atau mengurangi data yang ada, kecuali yang
ibutuhkan
2, Pelanggaran atas aturan
praktikum berikutnya.
3. Asisten harus melaporkan terjadinya pelanggaran ke laboran dan mencatat
pelanggaran yang terjadi
i dikenakan sanksi tidak dapat mengikuti
Prodi Informatika Universitas Muhammadiyah SidoarjoModul Algoritma & Struktur Data | 11
4, Kerusakan karena kelalaian praktikan menjadi tanggung jawab praktikan
ang bersangkutan.
5. Tidak membawa makanan dan minuman ke dalam laboratorium
Prosedur Pelaksanaan Praktikum
1. Laboran menyiapkan laboratorium dan perlengkapannya.
2. Asisten menyiapkan materi praktikum berdasarkan modul praktikum,
3. Mahasiswa melaksanakan praktikum didampingi asisten dan dosen
pembimbing
4, Mahasiswa membuat laporan dan diserahkan kepada asisten pada
pertemuan berikutnya.
5. Asisten memeriksa dan menandatangai asistensi laporan praktikum
mahasiswa
6. Laporan yang telah diperiksa diserahkan kembali kepada mahasiswa
7. Pada akhir praktikum, Dosen memberikan tes/ujian yang harus diikuti oleh
semua mahasiswa.
8. Dosen menyerahkan nilai hasil tes/ujian praktikum yang dilaksanakan
mahasiswa ke Kepala Laboratorium.
9. Asisten merekap nilai praktikum (20% tugas + 40 % pelaksanaan
praktikum )
10. Asisten menyerahkan nilai ke Kepala laboratorium.
11. Kepala laboratorium merekap nilai praktikum (20% tugas +40 %
pelaksanaan praktikum +30 % ujian praktikum + 10 % laporan
praktikum)
12. Kepala laboratorium menyerahkan nilai praktikum ke BAA
13. Kalab membuat kartu peserta (lampiran) dengan ketentuan
nilai : Dinyatakan lulus praktikum jika nilai minimal
praktikum C.
Tabel 1 Daftar Range Nilai
Nilai Huruf Range Nilai
A >85,1
AB 76-85,
B 6675,
BC 56-65
c 46-55
D 36-45
E <35
Prodi Informatika Universitas Muhammadiyah SidoarjoModul Algoritma & Struktur Data | 12
Flow Chart Pelaksanaan Praktikum
Langkah-langkah yang dilakukan oleh Laboran, Asisten, Mahasiswa,
Dosen dan Kalab disajikan dalam diagram alir pada Gambar 3.
Tao Te ASE WA asa EPA LARORATORI
Maa Meine Maloun Menein Marap
duamenbagi /—*\ akan Memes sl ie
nodal mater ee +\ maketh /
\Ee mentnds rain
‘Laporan Menseoi
sees anna ke
perksa \ Baa
‘Merekap
sili TP din
pelkeanaa
paki
Gambar 3 Diagram alir Langkab-langkah yang dilakukan oleh Kepala Laboratorium,
Mahasiswa, Asisten, Laboran dan Dosen Praktikum pada pelaksanaan praktikum
Prodi Informatika Universitas Muhammadiyah SidoarjoModul Algoritma & Struktur Data | 13
Tata Tertib Praktikum Laboratorium Fakultas Teknik Umsida
1. Praktikum dilaksanakan tepat waktu sesuai dengan jadwal yang ditetapkan.
2. Mahasiswa yang terlambat datang atau absen harus memberikan surat/bukti
yang dapat dipercaya (surat dokter atau surat keterangan kerja dari
perusahaan).
3. Mahasiswa diperkenankan pindah kelompok/jam/hari praktikum dengan
syarat mengkonfirmasi 1 minggu sebelum pelaksanakan praktikum melalui
Koordinator Praktikum dan Kepala Lab.
4. Mahasiswa yang tidak hadir pada saat jadwal yang telah ditentukan
diperkenankan mengikuti praktikum dengan membayar denda Rp 25.000,- per
modul praktikum selama proses praktikum masih berlangsung.
5. Mahasiswa harus berbusana yang sopan dan rapi ( tidak diperkenankan
memakai kaos oblong dan Sandal atau sepatu sandal) .
6. Praktikum dianggap selesai jika mahasiswa telah menyerahkan laporan
sementara dan alat yang dipinjam dalam keadaan baik, bersih, dan rapi.
7. Kerusakan alat yang dipinjam oleh mahasiswa menjadi tanggung jawab penuh
kelompok mahasiswa yang bersangkutan,
8. Selama praktikum berlangsung, mahasiswa dilarang merokok, makan,
bergurau, bermain alat, menghidupkan hand phone, atau pun keluar masuk
ruangan tanpa seijin dosen pembimbing / asisten pendamping.
9. Setelah melakukan praktikum, mahasiswa harus membuat laporan sementara
hasil pengamatan praktikum rangkap dua dan menyerahkan kepada dosen
pembimbing / asisten pada saat meninggalkan ruangan untuk ditanda tangani
(yang nantinya dilampirkan dalam laporan akhir).
10. Mahasiswa yang tidak melaksanakan praktikum 1 Modul dinyatakan tidak
Tulus.
11, Laporan Akhir Praktikum, cover-nya menggunakan Standar Fakultas dan
Laporan diserahkan 2 minggu setelah jadwal masing-masing kelompok.
12, Apabila Laporan diserahkan lebih dari 2 minggu maka dinyatakan TIDAK
LULUS dan laporan Praktikum diserahkan ke koordinator praktikum dan kepala
lab.
Mahasiswa yang dinyatakan tidak lulus Praktikum harus mengulang
ijadwal praktikum berikutnya dengan membayar biaya praktikum yang telah
ditentukan oleh Universitas melalui bank yang ditunjuk oleh UMSIDA.
Inventaris Laboratorium Algo1
ma dan Struktur Data
Monitor 212
cpu P12
Mouse uw
Keyboard "
Meja 2
Kursi 225
C. Penggunaan Laboratorium Algoritma dan Struktur Data
Laboratorium untuk praktikum Algoritma dan Struktur Data.
D. Peralatan Laboratorium
Prodi Informatika Universitas Muhammadiyah SidoarjoModul Algoritma & Struktur Data | 14
Di laboratorium Algoritma dan Struktur Data Fakultas Teknik Universitas
Muhammadiyah Sidoarjo memiliki peralatan Laboratorium yang ada untuk
menunjang pelaksanaan praktikum yang berupa :
1. Modul Praktikum Algoritma dan Struktur Data
2. Komputer
3. LCD
4. Papan Tulis
E. Peralatan Pendukung
Software yang digunakan dalam praktikum Algoritma dan Struktur Data
adalah Visual C+ 2010.
Prodi Informatika Universitas Muhammadiyah SidoarjoModul Algoritma & Struktur Data | 15
BABII
KURIKULUM.
A. Analisis Materi / Instruksional
Mahasiswa diharapkan dapat :
Memecahkan masalah menjadi sebuah algoritma (langkah-langkah) yang akan
dijalankan oleh komputer, kemudian mengimplementasikannya menjadi sebuah
program komputer Memecahkan masalah pemrograman yang harus diselesaikan
dengan materi yang ada pada pemrograman lanjut seperti pointer, struct, operasi file
dsb.
Merepresentasikan data yang digunakan dalam pemrograman (baik data input
atau data output) dengan struktur data yang tepat.
Mengetahui & membandingkan macam-macam algoritma dalam proses
pengurutan dan pencarian dan dapat menentukan algoritma yang digunakan
dalam permasalahan pemrograman yang diselesaikannya.
bus Praktikum
ilabus praktikum algoritma dan struktur data :
1. Array, Pointer, dan Struktur.
2. Linked List.
3. Stack.
4. Queue.
5. Rekursif.
6. Sorting.
Satuan Acara Praktikum (SAP)
Tujuan Instruksional Khusus|
Pertemua | (TIK) Topik ‘Sub Topik
nKe-
1. Menjelaskan dan | Array, Menjelaskan dan
mendeklarasikan mendeklarasikan
konsep Pointer dan konsep
dasar strdktur data; dasar struktur data,
array, Struktur ory,
pointer, dan pointer, dan struktur.
struktur.
Latihan
Memahami Linked
List. Linked List Deklarasi
Memahami jenis-Jenis Jenis-Jenis
Linked List.
Operasi insert simpul
List. pada
Memahami operasi
insert Linked.
simpul pada Linked Latihan
3 MemahamiKonsep __| Stack Konsep dasar
Prodi Informatika Universitas Muhammadiyah SidoarjoModul Algoritma & Struktur Data | 16
dasar tumpukan
tumpukan (LIF) (Tumpukan) | (LIF)
Memahami operasi- Menjelaskan operasi-
oper operasi
pada tumpukan (PUSH pada tumpukan (PUSH
dan dan
Pop) PoP)
Prodi Informatika Universitas Muhammadiyah SidoarjoModul Algoritma & Struktur Data | 17
BABIIL
MATERI MODUL
POKOK BAHASAN 1
STRUKTUR DATA, ARRAY, POINTER, DAN STRUKTUR
PENDAHULUAN
Pada pokok bahasan ini berisi penjelasan disertai contoh mengenai konsep struktur
data, array, pointer, dan struktur yang menjadi pemahaman dasar bagi mahasiswa
sebelum mempelajari struktur data, dimana konsep array, pointer, dan struktur
mn sebuah struktur data, diharapkan mahasiswa
digunakan untuk merepresent
dapat :
a, Mengetahui konsep dasar struktur data,
b. Memahami Konsep array, pointer, dan struktur.
PENYAJIAN (TUTORIAL)
A. Konsep Dasar Struktur Data
Struktur data adalah sebuah bagian dari ilmu pemrograman dasar yang
mempunyai karakteristik yang terkait dengan sifat dan cara penyimpanan
sekaligus penggunaan atau pengaksesan data,
Struktur data bertujuan agar cara merepresentasikan data dalam membuat
program dapat dilakukan secara efisien dalam pengolahan di memori dan
pengolahan penyimpanan dari program ke storage juga lebih mudah
dilakukan,
B. Konsep Dasar Array
Array adalah kumpulan elemen-elemen data. Kumpulan elemen tersebut
mempunyai susunan tertentu yang teratur. Jumlah elemen terbatas, dan
semua elemen mempunyai tipe data yang sama. Jenis-jenis array :
Array Satu Dimensi
Struktur array satu dimensi dapat dideklarasikan dengan bentuk
umum berupa : tipe_var nama_var [ukuran];
Dengan :
- Tipe_var : untuk menyatakan jenis elemen array (misalnya int, char,
unsigned).
- Nama_var ; untuk menyatakan nama variabel yang dipakai.
- Ukuran : untuk menyatakan jumlah maksimal elemen array.
Contoh : float nilai_ujian [5];
Array Dua Dimensi
Tipe data array dua dimensi biasa digunakan untuk menyimpan, mengolah
maupun menampilkan suatu data dalam bentuk tabel atau matriks. Untuk
mendeklarasikan array agar dapat menyimpan data adalah :
tipe_var nama_var [ukuran1][ukuran2];
Dimana :
- Ukurant menunjukkan jumlab/nomor baris.
- Ukuran2 menunjukkan jumlah/nomor kolom,
Prodi Informatika Universitas Muhammadiyah SidoarjoModul Algoritma & Struktur Data | 18
Jumlah elemen yang dimiliki array dua dimensi dapat ditentukan dari hasil
perkal
ukuran! x ukuran 2.
Seperti halnya pada array satu dimensi, data array dua dimensi akan
ditempatkan pada memori secara berurutan.
Array Multidimensi / Dimensi Banyak
Array berdimensi banyakatau multidimensi terdiri dari array yang tidak
terbatas hanya dua dimensi saja. Bentuk umum pendeklarasian array
multidimensi adalah : tipe_var nama_var [ukuran1}{ukuran2]...[ukuran
als
Contoh : int data_angka [3][6][6];
Yang merupakan array tiga dimensi
Mengakses Elemen Array
Dalam bahasa C+, data array akan disimpan dalam memori pada alokasi yang
berurutan,
Elemen pertama biasanya mempunyai indeks bernilai 0. Contoh :
Float nilai_tes[5};
Jika pada contoh di atas, variabel nilai_tes mempunyai 5 elemen, maka elemen
pertama mempunyai indeks sama dengan 0, elemen kedua mempunyai indeks
1, dan seterusnya. Bentuk umum pengaksesan suatu elemen variable array
adalah :
Nama_varfindeks];
Gambar berikut memperlihatkan urutan komponen array dalam memori.
Untuk variable array nil
nilai_tes(0] tipe float
nilai_tes{1] total §
nilai_tes{2] elemen
nilai_tes[3]
nilai_tes{4]
float nilai_tes(5]
Gambar 1.1 Struktur Array Satu Dimensi
ialisasikan secara langsung saat pertama kali dideklarasikan
(efisien
untuk array berdimensi sedikit).
Contoh : int x{2}={1,2};
Array dapat dideklarasikan terlebih dahulu, baru kemudian diisi elemennya.
Contoh :
C. Konsep Dasar Pointer
Prodi Informatika Universitas Muhammadiyah SidoarjoModul Algoritma & Struktur Data | 19
Pointer adalah sebuah variabel yang berisi lamat variable yang lain. Suatu
pointer dimaksudkan untuk menunjuk ke suatu alamat memori sehingga
alamat dari suatu variabel dapat diketahui dengan mudah. Deklarasi ponter =
tipo_data_ J nama_var_pointer
char, float, int, double, tong, dsb ‘operator bintang/ asterisk (*)
Operator pointer :
Operator ‘&’ : untuk mendapatkan alamat memori operand / variabel
pointer.
Operator **” : untuk mengakses nilai data operand / variabel pointer.
Konsep Dasar Struktur
Struktur adalah koleksi dari yariabel yang dinyatakan dengan sebuah nama,
dengan sifat setiap variabel dapat memiliki tipe yang berlainan, Struktur biasa
dipakai untuk mengelompokkan beberapa informasi yang berkaitan menjadi
sebuah satu kesatuan, Contoh sebuah struktur adalah informasi data tanggal,
‘yang berisi tanggal, bulan, dan tahun,
Mendeklarasikan Struktu
Contoh pendefinisian tipe data
struktur adalah : struct
data_tanggal
it tanggal;
Masing-masing tipe dari elemen struktur dapat berlainan. Adapun
variabel_strukturl sampai dengan variabel_struktur M menyatakan bahwa
variabel struktur yang dideklarasikan bisa lebih dari satu.jika ada lebih dari
satu veriabel, antara variabel struktur dipisahkan dengan tanda koma,
Mengakses Elemen Struktur :
Elemen dari struktur dapat diakses dengan menggunakan bentuk :
variabel_struktur.nama_field
Antara variabel_struktur dan nama_field dipisahkan dengan operator titik
(disebut operator anggota struktur). Contoh berikut merupakan instruksi
untuk mengisikan data pada field tanggal :
tol_lahirtang
gal=30 int
butan;
int tahun;
k
Yang mendefinisikan tipe struktur bernama data_tanggal, yang terdiri dari
tiga buah elemen berupa tanggal, bulan, dan tahun. Bentuk umumdalam
mendefi an dan mendeklarasikan struktur adalah >
Struct nama_tipe_struktur
{
Prodi Informatika Universitas Muhammadiyah SidoarjoModul Algoritma & Struktur Data | 20
Tipe
field1
; Tipe
field2
; Tipe
field3
}variabel_struktur1.... variabel_strukturM;
LEMBAR KERJA DAN TUGAS,
1, Program pangkat dengan array dimensi satu.
#include
finclude
#include
using namespace std ;
Ant main()
4
int square[100]; // =-> Array 1 dimensi dengan tempat yang
dipesan sebanyak 100
int i;
int k;
//Perhitungan
for (i = 0; 4 < 10; i++) // angka yang ditampilkan 1-10
cl
Keita;
square[i] = k * k,
print£("\n Pangkat dari d adalah td", k, square[il);
,
_geteh():
x
2. Program array dimensi dua.
include
finclude
#include
using namespace std ;
void printArray(int [][3]);//-->Penulisan array 2 dimensi
Ant main()
4
//Rengisian elemen array
int
matrik1 [2] (3]=({1,2,3},(4,5,6}},matrik2(2] (3]=(1,2,3,4,5),matrik3 (2) (3]
=(1,
2),44))7
‘printArray (matrikl) ;
printArray (matrik2) ;
printArray (matrik3) ;
_geteh()
)
//erosedur tampilan array
Prodi Informatika Universitas Muhammadiyah SidoarjoModul Algoritma & Struktur Data | 21
void printarray(int a[] [31)
fe
int 4, 3
for (= 0; ical; a44)
t
for (j = 0; j<=2; j++)
print£("sd ali] (51) #7
print£("\n");
,
,
3. Program pointer.
#include
include
#include
include
include
#include
#include
using namespace std;
typedef struct nod
«
int data;
struct nod *next;
}NoD, *NODPTR;
void CiptaSenarai (NODPTR *s)
t
?
ts = NULL;
NODPTR NodBaru(int m)
(
NODPTR n;
n= (NODPER) malloc
(sizeof (NoD)); if (n
(
NULL)
n->datasm;
n~>next =
NULL;
»
return n;
a}
void SisipSenarai(NODPTR *s, NODPIR t, NODPTR p)
t
Lf (p==NULL)
‘t-pnext=p->next;
podnext=t;
»
void CetakSenarai(NODPTR s)
Prodi Informatika Unive
\s Muhammadiyah SidoarjoModul Algoritma & Struktur Data | 27
t
NODPTR ps;
for (ps=s; ps!=NULL; ps=ps->next)
printf("td --> ", ps->data);
printé("NULL\n") ;
int main()
(
NODPTR pel;
NODPTR ni;
CiptaSenarai (épel) ;
n=NodBaru (55) ;
SisipSenarai (pel, n, NUL
£(3==0)
t
awal= (struct dtnilait) malloc(sizeof (struct dtnilai));
printf ("NIM : ");
Printf("Nilai Test: ");
Prodi Informatika Universitas Muhammadiyah SidoarjoModul Algoritma & Struktur Data | 28
gets (strn:
printé("\:
awal->ni!
= atof(stenilai) ;
‘tampung=awal;
‘tampung->next = NULL;
oP
ujung=(struct dtnilai*) malloc(sizeof (struct dtnilai)) ;
‘tampung->next=ujung;
printf ("NIM =");
gets (ujung->nim) ;
print£("\n");
#include
include
include
#include
using namespace std ;
struct dtnilai
4
char nim(15];
char nama[20];
double nilai ;
struct dtnilai *next;
Prodi Informatika Universitas Muhammadiyah Sidoarjo)
Modul Algoritma & Struktur Data |29
void main ()
4
printé
printf,
struct
struct
struct,
struct
struct
char s
("DATA MAHASISWA : \n");
(
dtnilai *tampung;
dtnilai *ajung;
dtnilai *awal;
dtnilai *tanda
dtnilai *tanda:
trnilai [10];
char jawab(5];
char hi
int j=(
while
(
apus [5] 7
0;
m
if (3==0)
t
awal=(struct dtnilai*)malloc(sizeof (struct dtnilai)) ;
Print ("NIM : ");
gets (awal->nim) ;
printf ("\n");
printé ("Nama
gets (awal->nama) ;
printf ("\n");
print£("Nilai Test : ");
gets (strnilai);
print£("\n");
awal->nilai = atof(stenilai);
‘tampung=awal;
‘tampung->next=NULL;
y
else
*)malloc (sizeof (struct dtnilai));
peinté ("NIM =");
gets (ujung->nim) ;
print£("\n") ;
printé("Nama : ");
gets (ujung->nama) ;
print£("\n") ;
print€("Nilai Test
gets (strnilai)
print£("\n") ;
ujung->nilaizatof (strnilai) ;
ujung->next=NULL;
‘tampung=ujung?
»
printf ("Masukkan Data Lagi? (y/t)
gets (jawab)
print£("\n");
Af (stremp(jawab, "Y")==0| | stremp (Jawab,
c
ats
continue;
,
else if((stromp(jawab,"T"
break;
[strcmp (Jawab, "t")==0))
Prodi Informatika Unive
jtas Muhammadiyah SidoarjoModul Algoritma & Struktur Data | 30
printf ("\nData Mahasiswa yang Diinputkan : \n");
PEARL ("eeeeee nee nae
\n");
printé ("NIM \tNama \tNilai\n") ;
ujung-awal ;
while (ujung!=NOLL)
t
print£("%s\tts\ts6.2£\n" ,wjung->nim, ujung->nama,ujung-
>nilai); ujungeujung->next;
d
while (1)
4
print£("\n") ;
printf ("NIM yang akan d
a");
printf ("NIM \tNama \tNilai\n");
uy *
een (jensen)
print£ ("Ss\tts\tt6.2£\n", ujung ->nim, ujung -> nama,ujung -
>nilai);
ujung-ujung -> next;
y
pono
Prodi Informatika Universitas Muhammadiyah SidoarjoModul Algoritma & Struktur Data | 31
Tugas !
1, Buatlah program untuk menampilkan 10 bilangan secara menurun
yaitu 10, 9, 8, sampai 1 dengan menggunakan LINKED LIST.
2. Buatlah sebuah program yang mengimplementasikan Linked List,
dimana data yang dipakai adalah data buku yang ada dalam sebuah
perpustakaan (ID Buku, Judul, dan Jumlah Buku). Program juga
mengimplementasikan_ penambahan dan pengurangan simpul pada
Linked List berdasarkan ID Buku.
TULISKAN DAN JELASKAN SCRIPTNYA SERTA
PRINTSCREEN HASILNYA !!!!!
REFERENSI
- Fachrurrozi M., Modul Praktikum Struktur Data, Laboratorium Universitas
Brawijaya Malang, Malang, 2006.
- Haryanto Bambang, Struktur Data, Informatika, Bandung, 2008,
- Kristanto Andi, Struktur Data dengan C++, Graha Imu, Yogyakarta, 2009.
- Warni Elly, Buku Bahan Ajar Struktur Data, Universitas Hasanuddin, 2012.
Prodi Informatika Universitas MuhammadiyahModul Algoritma & Struktur Data | 32
POKOK BAHASAN 3
STACK (TUMPUKAN)
PENDAHULUAN
Pada pokok bahasan ini akan dibahas mengenai struktur data tumpukan atau stack,
dimana stack merupakan suatu kumpulan data yang seolah-olah ada data yang diletakkan
di atas data yang lain. Setelah memepelajari materi ini diharapkan mahasiswa mampu
untuk :
a, Mengetahui dan memahami definisi stack.
b. Memahami operasi-operasi dasar stack.
¢. Memahami representasi statis dan dinamis stack.
PENYAJIAN (TUTORIAL)
Stack adalah kumpulan elemen-elemen yang tersimpan dalam suatu tumpukan. Aturan
penyisipan dan penghapusan elemennya tertentu:
- Penyisipan selalu dilakukan"di atas" TOP
- Penghapusan selalu dilakukan pada TOP
Karena aturan penyisipan dan penghapusan semacam itu, TOP adalah satu-satunya
alamat tempat terjadi operasi, elemen yang ditambahkan paling akhir akan menjadi
clemen yang akan dihapus. Dikatakan bahwa elemen Stack tersusun secara LIFO (Last In
First Out).
Seperti halnya jika kita mempunyai sebuah tumpukan buku, agar tumpukan buku
itu tidak ambruk ketika kita mengambil sebuah buku di dalam tumpukan itu
maka harus diambil satu per satu dari tumpukan yang paling atas dari tumpukan.
t
push & pop
Gambar 3.1 Hustrasi Stack
Perhatikan bahwa dengan definisi semacam ini, representasi tabel sangat tepat
untuk mewakili stack, karena-operasi-penambahan dan pengurangan hanya
dilakukan disalah satu ujung tabel.
Beberapa contoh penggunaan stack adalah pemanggilan prosedur, perhitungan
ekspresi artimatika, rekursifitas, backtracking, penanganan interupsi, dan lain-
lain, Karakteristik penting stack sebagai berikut
1. Elemen stack yaitu item-item data di elemen stack
2. TOP (elemen puncak dari stack)
3. Jumlah elemen pada stack
4. stack, yaitu :
Prodi Informatika Universitas Muhammadiyah SidoarjoModul Algoritma & Struktur Data | 33
Bila elemen di tumpukan mencapai kapasitas maksimum tumpukan. Pada
kondisi ini, tidak mungkin dilakukan penambahan ke tumpukan.
Penambahan di elemen menyebabkan kondisi kesalahan Overflow.
- Kosong
Bila tidak ada clemen tumpukan. Pada kondisi ini, tidak mungkin
dilakukan pengambilan elemen tumpukan. Pengambilan _ elemen
menyebabkan kondisi kesalahan Underflow.
Stack memiliki operasi-operasi pokok sebagai berikut :
Push: Untuk menambahkan item pada tumpukan paling atas.
void Push (ItemType x, Stack “S)
{
it Full (S))
Printf(“Stack FULL");
else
‘S->Item{S->Count]=x;
+4(S->count);
d
y
Pop _ : Untuk mengambil item teratas
int Pop (Stack S, ItemType x)
it (Empty (S)
Printf(“Stack Kosong");
else
{
-{8->Count);
x=s>item(s->Count);
Untuk mengosongkan stack
Stack (Stack S)
S>Count=0;
)
IsEmpty : Untuk memeriksa apakah stack kosong
int Empty (Stack °S)
return ($>Count==0);
)
IsFull_: Untuk memeriksa apakah stack sudah penuh,
Int Full (Stack S)
«
return (S-.>Count==MAXSTAC!
}
Representasi stack :
- Representasi statis
Stack dengan representasi statis biasanya diimplementasikan dengan menggunakan
array. Sebuah array memiliki tempat yang dialokasikan diawal sehingga sebuah
elemen yang dimasukkan dalam sebuah array terbatas pada tempat yang ada pada
array. Karena menggunakan array maka stack dengan representasi statis dalam
mengalami kondisi elemen penuh. Hustrasi stack dengan representasi statis dapat
dilihat pada gambar 3.2 :
Prodi Informatika Universitas Muhammadiyah SidoarjoModul Algoritma & Struktur Data | 34
Elemen
top — || tienen
Gambar 3.2 Representasi Stack Statis
- Representasi dinamis
Stack dengan representasi din: biasanya diimplementasikan dengan
menggunakan pointer yang menunjuk pada elemen-elemen yang dialokasikan
pada memori. Hustrasi stack dengan representasi dinamis dapat dilihat pada
gambar 3.3 >
Top
ET Bis
Gambar 3.3 Representasi Stack Dinamis
Karena semua operasi pada sebuah stack diawali dengan elemen yang paling atas
maka jika menggunakan representasi dinamis saat elemen ditambahkan akan
menggunakan penambahan elemen pada awal stack (addfirst) dan saat
pengambilan atau penghapusan clemen menggunakan penghapusan di awal stack
(delfirst).
LEMBAR KERJA DAN TUGAS
ack :
1) Program
#include
#include
#include
define MAXSTACK 3
typedef int itentype:
typedef struct
4
Prodi Informatika Unit
rsitas MuhammadiyahModul Algoritma & Struktur Data | 35
int kesong(Stack *s)
return (s->jml==0) ;
d
int penuh (Stack *s)
s->jml=0;
printf ("\nSemua Data Berhasil Dihapus\n") ;
void main(){
int pil;
‘Stack tumpukan;
itemtype data;
init (étumpukan) ;
dot
Prodi Informatika Universitas Muhammadiyah SidoarjoModul Algoritma & Struktur Data | 36
PEint£("\nMENU: \n 1. Isi (Data Angka)\n 2. Ambil\n 3. Lihat\n 4.
Hapus (Hapus Semua Data)\n 5. Keluar\n");
Print ("\n") 5
printf ("Masukkan Pilihan : "); seanf("8i",gpil);
‘ewitch (pil) (
case 1:
printf ("\nMasukkan Data Angka : ");
scanf("ti",adata);; isi (data, stumpukan) ;
break;
case 2:
ambi (stumpukan, édata) ;
break;
void push(int x)
4
s(t. y
printf ("Stack Sudah Penuh\n");
else
t
‘t.puncak=topt1;
‘t-elm[t.puncak]=x;
top=t. 7
printf ("PUSH %d : Sd\n",t.puncak,t.elm[t.puncak]) ;
Prodi Informatika Universitas Muhammadiyah Sidoarjo,
Modul Algoritma & Struktur Data | 37
d
void pop()
4
Af (top==0)
else
t
y
Print£("'stack Kosong\n") ;
printf ("\nPoP td = $d\n",top,t-elm[top]) ;
‘t.puncak=top-1;
‘top=t.puncak;
d
void main()
4
int i,jum;char
void push(int nilai)
4
i£(3==1)
(
+
atas=(struct sStack*)malloc (sizeof (struct sStack)) ;
pisi=nilai;
atas->next=NULL;
barus(struct sStack*) malloc (sizeof (struct sStack));
Prodi Informatika Universitas Muhammadiyah SidoarjoModul Algoritma & Struktur Data | 38
bantuzatas;
Print£("Data yang di POP td : Sd\n",i,bantu->isi);
atas=atas->next:
free (banty) ;
)
void main()
(
char jawab[2),stewilai [5];
while(1)
fl
Print€("Data yang di PUSH ke $d: ",3):
print£("Data lagi? : ");
gets (jawab) ;
S£((stromp (jawab, "¥"
continue
0) || (stomp (jawab, "y")
else
break:
,
ie
Print£("Data nilai yang telah diinputkan
s\n"); while (atas!=NULL)
Pop () i
—geteh() ;
it
Tugas!
1. Buatlah program stack statis yang menampilkan data
yang di- push dan di-pop.
. Diketahui data-data
berikut : T, I, D, dan
E.
Buatlah program untuk memasukkan dat
sehingga akan muncul tampilan berikut :
Manfaatkan operasi PUSH dan POP.
TULISKAN DAN JELASKAN SCRIPTNYA SERTA
PRINTSCREEN HASILNYA !
REFERENSI
- Fachrurrozi M., Modul Praktikum Struktur Data, Laboratorium Universitas
Brawijaya Malang, Malang, 2006.
- Haryanto Bambang, Struktur Data, Informatika, Bandung, 2008.
- Kristanto Andi, Struktur Data dengan C++, Graha Imu, Yogyakarta, 2009.
- Warni ly, Buku Bahan Ajar Struktur Data, Universitas Hasanuddin, 2012.
Prodi Informatika Universitas Muhammadiyah Sidoarjo