Anda di halaman 1dari 38
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 Sidoarjo Modul 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 Sidoarjo Modul 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 Sidoarjo Modul Algoritma & Struktur Data |5 Tabel | Daftar Range Nilai Tabel 2 Satuan Acara Praktikum (SAP). Prodi Informatika Universitas Muhammadiyah Sidoarjo Gambar 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 Sidoarjo A. 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 Sidoarjo Modul 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 Sidoarjo Modul Algoritma & Struktur Data |9 B. Manajemen Laboratorium Struktur Organisasi Laboratorium Prodi Informatika Universitas Muhammadiyah Sidoarjo Modul 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 Sidoarjo Modul 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 Sidoarjo Modul 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 Sidoarjo Modul 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 Sidoarjo Modul 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 Sidoarjo Modul 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 Sidoarjo Modul 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 Sidoarjo Modul 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 Sidoarjo Modul 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 Sidoarjo Modul 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 Sidoarjo Modul 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 Sidoarjo Modul 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 Sidoarjo Modul 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 Sidoarjo Modul 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 Sidoarjo Modul 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 Sidoarjo Modul 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 Muhammadiyah Modul 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 Sidoarjo Modul 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 Sidoarjo Modul 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 Muhammadiyah Modul 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 Sidoarjo Modul 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 Sidoarjo Modul 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

Anda mungkin juga menyukai