0% menganggap dokumen ini bermanfaat (0 suara)
23 tayangan92 halaman

Modul Praktikum Struktur Data

Diunggah oleh

azzahra
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
23 tayangan92 halaman

Modul Praktikum Struktur Data

Diunggah oleh

azzahra
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF atau baca online di Scribd
Anda di halaman 1/ 92
MODUL PRAKTIKUM STRUKTUR DATA Disusun Oleh: Shandi Noris, M.Kom TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS PAMULANG I. Surya Kencana No. 1 TATA TERTIB PRAKTIKUM 1) Peserta praktikum sudah terdaftar sebagai mahasiswa Teknik Informatika Universitas Pamulang pada semester bersangkutan dengan nama sudah tertera pada lembar kehadiran dan bersedia menjalankan tata tertib yang sudah ditentukan. 2) Praktikum dilaksanakan sesuai dengan jadwal yang telah ditentukan. 3) Peserta praktikum wajib hadir tepat pada waktunya. 4) Peserta praktikum diharuskan menandatangani lembar kehadiran. 5) Semua peserta praktikum harus memiliki modul praktikum. 6) Selama praktikum berlangsung diwajibkan : © Memelihara suasana agar nyaman dan tenang Tidak Membawa makanan dan minuman Tidak Merokok dan mengotori ruangan Tidak Bersuara dengan keras Tidak Hilir mudik yang tidak perlu Tidak Bertindak atau berbicara yang tidak ada hubungannya dengan kegiatan praktikum Tidak diperkenankan bermain Game Tidak mencoret-coret sarana yang ada ‘Tidak merubah, merusak, atau mengambil peralatan di Laboratorium, © Meletakan tas ditempat yang ditentukan oleh Pengajar 7) Pakaian yang dikenakan peserta praktikum sebagai berikut: 1) Pria > Celana Panjang, tidak robek > Sepatu Tertutup (bukan sepatu sandal) > Kemeja (Bukan kaos berkerah atau almamater atau sejenisnya) 2) Wanita > Kemeja (Bukan kaos berkerah atau almamater atau sejenisnya) > Scpatu tertutup (bukan Sepatu sandal) > Celana Panjang/Rok Sanksi-Sanksi : 1) Jika Keterlambatan lebih dari 20 menit tanpa alasan yang dapat diterima, maka peserta praktikum tidak diijinkan mengikuti praktikum. 2) Jika peserta praktikum merusak peralatan praktikum akibat melakukan perbuatan yang tidak berkaitan dengan praktikum/prosedur praktikum maka yang bersangkutan harus mengganti kerugian akibat perbuatannya. 3) Jika Tata tertib tidak ditaati maka peserta praktikum dapat diberi sanksi tegas serta dapat diberi nilai E (Tidak Lulus). PENGANTAR TUJUAN PRAKTIKUM a) Peserta dapat melaksanakan praktikum, membuat laporan praktikum dengan benar dan mengikuti tata tertib dalam melaksanakan praktikum. ATURAN PRAKTIKUM a) Mengikuti Tata tertib praktikum b) Waktu Waktu Praktikum adalah 7 Pertemuan 340 menit, Rincian waktu setiap pertemuan ait 1) Durasi Persiapan Perangkat Praktikum : 10 Menit 2) Durasi mengerjakan Tugas Pendahuluan : 90 Menit 3) Durasi mengerjakan Praktek Praktikum : 150 Menit, 4) Durasi mengerjakan Tugas Akhir adalah 90 Menit ©) Materi Setiap pertemuan praktikum, mempraktekkan 2 Materi yang ada di dalam modul ini, Pertemuan Terakhir mempraktekkan 1 materi dilanjutkan dengan Ujian Praktek 4d) Penilaian : 1) Kehadiran : 30% Minimal kehadiran adalah 6 kali (ujian praktikum termasuk keha Jika kurang dari 6 kali maka peserta praktikum dinyatakan tidak tulus. 2) Tugas/Laporan Praktikum : 30% Nilai Tugas/Laporan terdiri dari: Tugas Pendahuluan, Tugas Akhir, Tugas Praktek dan Laporan akhir. 3) Ujian Praktikum: 40% Ujian praktikum dilaksanakan pada pertemuan ke-7 atau pertemuan akhir. 4) Salah satu atau lebih dari komponen nilai di atas tidak ada, maka peserta praktikum dinyatakan tidak lulus, ¢) Membuat Laporan Akhi um. 1) Isi da dari awal sampai akhir, yang terdiri dari bagian pendahuluan, bagian tubuh laporan akhir merupakan dokumentasi hasil pelaksanaanpraktikum atau isi laporan, dan bagian akhir 2) Batas akhir Pengumpulan Laporan Akhir adalah 4 hari setelah Pertemuan Terakhir 3) Isi Laporan ditulis tangan pada kertas Ad, Contoh Cover di bawah ini Contoh halaman Depan (diPrint) : LAPORAN AKHIR STRUKTUR DATA Disusun Oleh : Nama_: Cecep Gorbacep NIM : 123456789 TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS PAMULANG JI. Surya Kencana No. 1 Pamulang Telp (021)7412566, Fax. (021)7412566 Tangerang Selatan - Banten MATERIT ARRAY TUJUAN PRAKTIKUM 8) Mahasiswa dapat menjelaskan pengertian array dan kegunaan array. b) Mahasiswa dapat menggunakan array satu dimensi dan dua dimensi dalam penyimpanan data. TEORI DASAR a) Pendahuluan Array merupakan kumpulan elemen yang bertipe sama dalam urutan tertentu yang menggunakan nama yang sama. Letak atau posisi dari elemen array ditunjukan oleh index atau posisi. Dalam beberapa buku array sering juga disebut dengan istilah Larik atau Tabel. Array termasuk dalam struktur data statis, artinya adalah lokasi memoriuntuk suatu array tidak dapat ditambah atau dikurangi selama program dijalankan. b) Array Satu Dimensi Dikatakan array satu dimensi karena banyaknya penunjuk indeks hanya satu, Sebelum variabel array digunakan maka variabel array harus dideklarasikan terlebih dahulu.Pendeklarasian variabel array satu dimensi sebenernya hampir sama dengan pendeKlarasian variabel yang lain, hanya saja pendeklarasian variabel array kuti dengan maksimum banyaknya elemen yang dapat disimpan dalam variabel array yang dituliskan dalam pasangan tanda siku penutup. Di dalam bahasa C+, harga awal indeks dimulai dari 0 [nol]. Maka jika dituliskan banyaknya maksimum elemen adalah N, berarti indexs yang akan dugunakan adalah 0,1,2,....N-L. Bentuk Umum pendeklarasian array satu dimensi Tipe_data nama_yar_array [ukuran] ; ©) Array Dua Dimensi Array dua dimensi sering digambarkan sebagai sebuah matrik, Merupakan perluasan dari array satu dimensi. Jika array satu dimensi hanya terdiri dari satu baris dan beberapa kolom, maka array dua dimensi terdiri dari beberapa baris dan beberapa kolom. Dengan demikian array dua dimensi tersusun dalam bentuk baris dan kolom, dimana indeks pertama menyatakan baris dan indeks kedua menyatakan kolom, Sama halnya dengan array satu dimensi sebelum digunakan juga harus dideklarasikan terlebih dahulu, Bentuk umum pendeklarasian array dua dimensi adalah seperti berikut ini: ‘Tipe_data Nama_var_Array [banyak_baris] [banyak_kolom] ; TUGAS PRAKTIKUM a) Buatlah program untuk menginisialisasikan 10 bilangan bulat kemudian hitung jumlah dan rata (simpan dengan nama lat2_1.cpp) #include Hiinclude using namespace std; int main() i int Nilai(10} = (8, 12, 20, 15, 7,5, 6, 4, 32, 3}; inti, Jumlah float Rata_Rata; //Menghitung jumlah for (i=0 ; i <10 ; i++) Jumlah += Nilai [i]; Rata_Rata =( float ) Jumlah / 10; //Mencetak Elemen Array cout<<"\n\nDeretan Bilangan for ( i=0;i<10;i++) cout< int Nilai [ 20 }; int Posisi [ 20 ]; inti, N, Bilangan, Banyal bool ketemu; cout<<"Masukan Banyaknya Bilangan ="; cin>>N; cout<>Nilai (i; } //Membaca Elemen Array cout<<"\n\nDeretan Bilangan for (i=0; i]. 10 4) Structure dalam Structure Suatu struktur juga dapat mengandung suatu struktur yang lain Artinya field-field dalam structure merupakan suatu structure juga, Misalkan biodata Mahasiswa yang terdiri dari NIM, Nama, Alamat dan Tanggal Lahir. Alamat terdiri dari ‘Nama jalan, Kota dan Kode Pos. Array dalam Structure Suatu structure dideklarasikan menjadi sebuah array apabila hendak menggunakan satu struct untuk beberapa kali, Sebenarnya sama dengan struktur tunggal di atas, perbedaannya adalah hanya pada saat pendeklarasian variabel saja. Contoh: Kemudian deklarasikan variabel bertipe struct di atas. TUGAS PRAKTIKUM a) Buatlah program untuk membaea biodata yang diinput Nim, Nama, Alamat, dan Umur kemudian cetak. (simpan dengan nama lat3_1.epp ) Hinclude #include #include struct Mahasiswa ft char Nim [9] ; char Nama [25] ; char Alamat(40] ; short Umur ; b b) main () { Mahasiswa Mhs; cout<<"Nim oe cin.getline (Mhs.Nim,9); cout<<"Nama cin.getline (Mhs.Nama,25); cout<<"Alamat ="; cin.getline (Mhs.Alamat,40); cout<<"Umur 5 cin>>Mhs.Umur ; cout<<"\n\n\nNim: "<< Mhs.Nim; cout<<"\nNama : "<< Mhs.Nama; cout<<"\nAlamat _: "<< Mhs.Alamat; cout<<"\nUmur "<< Mhs.Umur; getch (); } Buatlah program menggunakan ketiga structure di dalam strucure ( simpan dengan nama lat3_2.epp #include #include #include struct Tinggal { char Jaln [40] ; char Kota [15] ; char Pos [5] ; b struct Tgl_Lahir { int Tanggal ; int Bulan ; int Tahun ; b struct Mahasiswa { char Nim [9]; char Nama [25]; Tinggal Alamat; Tel_Lahir Lahir; hb 2 int main () if Mahasiswa Mhs ; cout<<"NIM :";cin.getline (Mhs.Nim, 9) ; cout<<"Nama "5 cin.getline (Mhs.Nama, 25 ) ; cout<<"Alamat —: \n"; cout<<"\tlalan— :"; cin.getline ( Mhs.Alamat.Jaln, 40 ) ; cout<<"\tKota '; cin.getline ( Mhs.Alamat.Kota, 15 ) ; cout<<"\tkode pos :"5cin.getline ( Mhs.Alamat.Pos, 5 ) ; coute<""Tanggal Lahir : \n"; cout<<"\tTanggal :"; cin>> Mhs.Lahir.Tanggal ; couts<"\tBulan — :"; cin>>Mbs.Lahir.Bulan ; cout<<"\tTahun —:"; cin>>Mhs.Lahir.Tahun ; cout<<"\n\nMencetak Kembali Nilai Anggota\n\n"; cout<<"NIM "< #include #include struct Mahasiswa if char Nim [9] ; char Nama [25] ; char Alamat [40] ; int Umur ; hb main () { B @) Mahasiswa Mhs [5] ; inti; for (i=; i<5; i++) { cout<<"Nim os cin>>Mhs[i].Nim ; cout <<"Nama 5 cin>>Mbhs[i].Nama ; cout<<"Alamat cin>>Mbhs[i].Alamat ; cout<<"Umur 5 cin>>Mbhs[i].Umur ; } for( i=0; i<5; i++) { cout<<"\n\nNim cout<<"\n\nNama cout<<"\n\nAlamat cout<"\n\nUmur } getch (); } Buatlah program array dalam struktur (simpan dengan nama lat3_4.cpp) Hinclude #include #include struct Tinggal { char Jalan [ 40]; char Kota [ 15]; char Pos [5]; ik struct Tgl_Lahir { int Tanggal; int Bulan ; int Tahun ; b 14 struct Mahasiswa { char Nim [9]; char Nama [ 25 ]; Tinggal Alamat ; Tel_Lahir Lahir ; kb main () { Mahasiswa Mhs (5] ; inti; for (i=0; i<3; i++) { cout<<"NIM 2"; cin>>Mhs[i].Nim ; cout<<"Nama :"5 cin>>Mhs{i].Nama; cout<<"Alamat :\n"; cout<<"\talan 2"; cin>>Mhs[i]-Alamat. Jalan; couts<"\tKota :"5.¢in>>Mhs[i J. Alamat. Kota ; cout<<"\tKode Pos: "; cin>>Mbs[i ]. Alamat. Pos; cout<<"Tanggal Lahir_: \n"; cout<<"\tTanggal 2"; ¢in>>Mbhs [i]. Lahir. Tanggal; cout<<"\tBulan 2"; ¢in>>Mhs [i]. Lahir. Bulan; cout<<"\tialan "; cin>>Mhs{i J. Lahir. Tahun ; } cout<<"\n\nMencetak Kembali Nilai Anggota\n\r for (i=0; i<3; i++) { cout<<"\nNIM :< A 70 < Nilai_Akhir < 85 > B 55 < Nilai_Akhir < 70 > C 40 < Nilai_Akhir < 55 > D 0 #include main () { int x=8, y; int *xPtr; xPtr = Bx; couts<"Nilai x SMc #include main () { int x=8, y; int #xPtr; xPtr = &x; y= *xPtr; cout<<""Nilai x = Mcex #include Hinclude main () { int Nilai [] = (45, 23, 50, 8, 12, 10, 15}; int *Ptr_Nilai ; inti; Ptr_Nilai = Nilai ; cout<<"\nNilai Ptr_Nilai”< Hinclude main () { int x= 8; int *xPtr1; int **xPtr2; xPtrl 8x; xPtr2 &xPtr1; coute<"Nilai x = "< #include void Tukar (int &a, int &b) ; main () if int a=8, b=-5 cout<<"Nilai a dan b sebelum ditukar : "< #include int Maksimum (int a, int b, int c ); main () { int a =8, b=12, ; cout<<"Nilai a = "< Besar ) Besar=y; if (z> Besar) Besar = 2; return (Besar) ; } 25 d) Buatlah program Fungsi dengan Pointer (simpan dengan nama lat5_4.cpp ) Hinclude #include void Tukar (int *a, int *b); main () { int a=8, b=-5; cout<<"Nilai a dan b sebelum ditukar_: "< Hinclude #include Hinclude const int N=100 ; void Baca (int Nilai [ J, int &M) ; void Cetak (int Nilai [N], int &M); void Jumlah (int Nilai [N], int &M, int &ulh, float &Rata) ; main () { int M; int Nilai (N]; int JIh =0; float Rata; cout<<""Banyak Elemen : "; 26 Baca (Nilai, M); //memanggil fungsi Baca cout<<"\nElemen Elemen :"; Cetak(Nilai,M); //memanggil fungsi cetak Jumlah (Nilai, M, Jih, Rata) ; //memanggil fungsi Jumiah cout<<"\Jumlah Bilangan >Nilai (i); } } void Jumlah (int Nilai [], int &M, int &ulh, float &Rata) { inti; for (i=0;i #include #include struct Mahasiswa { char Nim [9]; char Nama [25]; char Alamat [ 40] ; short Umur ; k void Baca (Mahasiswa &Mhs); void Cetak (Mahasiswa &Mihs); main () { Mahasiswa Mhs; cout<<"Membaca Nilai Anggota Struktur \n"; Baca (Mhs); cout<<"\nMencetak Nilai Anggota Struktur "; Cetak (Mhs); getch (); } void Baca(Mahasiswa &Mhs) { cout<<"NIM cin.getline(Mhs.Nim, 9) ; couts<"Nama :"; cin.getline(Mhs.Nama,25) ; cout<<"Alamat :"; cin.getline(Mhs.Alamat, 40); cout<<"Umur cin>>Mhs.Umur; } void Cetak (Mahasiswa &Mhs) { cout<<"\nNim_ —: "<< Mbs.Nim; cout<<"\nNama_:"<< Mhs.Nama; cout<<"\nAlamat <<< Mhs.Alamat; cout<<"\nUmur_— :"<< Mhs.Umur; } 28 g) Berdasarkan program LatS _6.cpp, ubah program tersebut menggunakan Pointer (simpan dengan nama Lat6_6.cpp ) TUGAS PENDAHULUAN 1. Apa yang dimaksud dengan Fungsi! 2. Jelaskan yang dimaksud dengan Pemanggilan secara nilai (Call by Value) dan Pemanggilan secara referensi (Call by Reference)! Jelaskan yang dimaksud dengan Variabel lokal, Variabel Eksternal atau Global, dan Variabel Statis! 4, Buatlah contoh program sederhana menggunakan Fungsi! TUGAS AKHIR 1. Buatlah program dengan menggunakan kombinasi antara Fungsi dan Pointer! 29 MATERI V. SEARCHING TUJUAN PRAKTIKUM 8) Mahasiswa dapat menjelaskan pengertian Serching dengan C++ b) Mahasiswa dapat Serching untuk beberapa metode yang ada dengan C+ c) Mahasiswa dapat mengimplementasikan Queue dengan C++ TEORI DASAR a) Pendahuluan Pencarian merupakan proses yang mendasar di dalam pemrograman, Pencarian (Searching) merupakan tindakan untuk mendapatkan suatu data dalam kumpulan data berdasarkan suatu kunci (key) atau acuan data. Dalam kehidupan sehari-hari seringkali kita berurusan dengan pencarian; misalnya menemukan nomor telepon seseorang pada buku telepon atau mencari istilah dalam kamus, dan masih banyak lagi. Pada aplikasi komputer pencarian kerapkali dilakukan, Misalnya untuk peroses penghapusan data/record atau mengubah data/record tertentu di dalam suatu tabel atau file, b) Sequensial Search Sequensial Search (pencarian beruntun) adalah metode pencarian yang paling mudah. Pencarian berurutan adalah proses membandingkan setiap elemen array satu per satu secara berurutan yang dimulai dari elemen pertama hingga elemen yang dicari ditemukan atau hingga elemen terakhir dari array. Pencarian beruntun dapat dilakukan terhadap elemen array yang belum terurut atau terhadap elemen array yang terurut, Dengan kata lain sequential search akan mencari data dengan cara membandingkannya satu-persatu dengan data yang ada, Metode ini di sarankan untuk digunakan pada data yang sedikit saja, 30 ©) Binary Search Binary search adalah metode pencarian suatu data atau elemen di dalam suatu array dengan kondisi data dalam keadaan terurut. Proses pencarian binary search hanya dapat dilakukan pada kumpulan data yang sudah diurutkan terlebih dahulu (menaik atau menurun). Prinsip dari binary search terhadap N elemen dapat dijelaskan seperti berikut 1) Tentukan posisi awal = 0 dan posisi akhir = N-1 2) Hitung posisi tengah = [ posisi awal + posisi akhir ] /2 3) Bandingkan data yang dicari dengan elemen posisi tengah. - _Jika sama maka catat posisi dan cetak kemudian berhenti - Jika lebih besar maka akan dilakukan pencarian kembali ke bagian kanan dengan posisi awal = posisi tengah + 1 dan posisi akhir tetap kemudian ulangi mulai poin 2. - Jika lebih kecil maka akan dilakukan pencarian kembali ke bagian kiri dengan nilai posisi awal tetap dan nilai posisi akhir = posisi tengah -1 kemudian ulangi mulai poin 2. TUGAS PRAKTIKUM a) Buatlah program Sequential Search (simpan dengan nama lat6_1.cpp) Hinclude #include main () { int Nilai ( 20] ; inti, N, angka, Bilangan ; cout<<"Masukan Banyaknya Bilangan ="; cin>>N; //Membaca elemen array forli=0; i #include main() { int Nilai (20]; int Posisi [20]; int i, N, Bilangan, Banyak= bool Ketemu; cout<<"Masukan Banyaknya Bilangan ="; cin>>N; //Membaca elemen Array for(i=0; i>Nilai (iJ; 32 °) //Mencetak Elemen Array cout<<"\n\nDeretan Bilangan ="; for (i=0; i> Bilangan; //Melakukan Pencarian for (i=0; i #include #include #includeciomanip.h> main () { 33 //deklarasi variabel int Nilai [ 20]; inti, j, Ne int temp, awal, akhir, tengah, Bilangan ; //proses penginputan data cout<<"Banyak bilangan :"; cin>>N; for (i=0; i>Nilai [i] ; t cout<<"\nElemen Sebelumnya diurut ="; for (i=0; i Nilai [j]) { temp =Nilai[i]; Nilai [i] =Nilai(j]; Nilai [j] = temp; t } } cout<<"\nElemen Setelah diurut ="; for ( i=0; i>Bilangan; //proses pencarian data awal = 0; 34 tengah =( akhir + awal ) / 2; if ( Bilangan < Nilai { tengah } ) akhir = tengah - 1; else awal = tengah + 1; } while (( akhir >= awal) && ( Nilai [ tengah ] != Bilangan )) ; if ( Nilai [ tengah ] == Bilangan ) if cout<<"\nData "<...2NILAT[N-1] Pengurutan (Sorting) dibedakan_ menjay dua kelompok, yaitu: Pengurutan Internal dan Pengurutan Eksternal. 36 c) Bubble Sort Bubble Sort adalah metode pengurutan yang membandingkan elemen yang sekarang dengan elemen-elemen berikutnya. Pembanding elemen dapat dimulai dari awal atau mulai dari paling akhir. Apabila elemen yang sekarang lebih besar ( untuk urut menaik) atau lebih kecil (untuk urut menaik) dari elemen berikutnya, maka posisinya di tukar, tetapi jika tidak maka posissnya tetap. Contoh : Misalkan kita mempunyai array sebanyak 8 elemen diurutkan secara menaik dengan metode bubble Sort: 25,72,30,45,20,15 langkah pengurutannya yang dimulai dari belakang. 0. Urutan 4) Quick Sort Quick Sort merupakan metode terdapat dalam peruses pengurutan data dengan menggunakan perinsip rekursif. Metode ini menggunakan strategi “pecah belah” dengan mekanisme berikut ini Misalkan kita mempunyai array Naik (k..1]. Array dipartisi menjadi 2 bagian array kiri niali(k..m] dan array kanan Nilai [m+1..1] Dasar mempartisi menjadi dua adalah dengan mengambil elemen yang pertama sebagai elemen pivot. TUGAS PRAKTIKUM a) Buatlah program Pengurutan dengan Metode Bubble Sort “Pengurutan secara menaik” (simpan dengan nama lat7_I.cpp) #include #include Hinclude main () { int Nilai [20]; int i,j, KN; int temp; bool tukar ; cout<<"Masukan Banyak Bilangan : cin>>N; 37 for (i=0; i>Nilai [i]; } //Proses Cetak Sebelum diurutkan cout<<"\nData sebelumnya diurut for (i=0; iN ; i++) cout< finclude #includeciomanip.h> main () { int Nila [ 20 J; inti, j, KN; int temp ; bool tukar ; cout<<"Masukan Banyak Bilangan : "; cin>>N; for (iz0; iN; i++) cout<<"Elemen ke-"<>Nilai [1]; } //Proses Cetak Sebelum diurutkan cout<<"\nData sebelumnya diurut for (i=0; i #include #includeciomanip.h> void Cetak (int data [], int n) { inti; for (i=0 ; icn ; i++) coutsx) - while( data[i]>N; for(i=0; i>Nilai [i] ; } cout<<"\nData Sebelum di urut : "; Cetak ( Nilai, N) ; cout< #include Hinclude main () { int Nilai [ 20]; inti, j,N,15 int temp, U, Imaks; cout<<"Masukan Banyaknya Bilangan :"; cin>>N; for(i=0; i>Nilai [i]; } //Proses Cetak sebelum diurutkan cout<<"\nData sebelum diuru for(iz0; i Nilai [ Imaks] } Imaks = j; lai [U]; Nilai [ U ] = Nilai [ Imaks]; Nilai [ Imaks ]= temp; U-; cout< #include Hinclude main( ) { int Nilai [ 20]; inti, j,N, 1; int temp, U, Imaks; cout<<" Masukan Banyaknya Bilangan : "; cin>>N; for(i=0; i>Nilai [i]; } //Peroses Cetak Sebelum dit cout<<"\nData Sebelum diurut : for (i=0; i Nilai [Imaks}) Imaks 4s CO) temp = Nilai [i]; Nilai [i] = Nilai [ Imaks ]; Nilai [Imaks] = temp; cout< finclude #includesiomanip.h> main () { int Nilai [20]; inti, NA; int temp, Imin; cout<<"Masukan Banyak bilangan :"; cin>>N; for (i=0; i>Nilai [i] ; } //Proses Cetak Sebelum Diurutkan cout<<"\nData sebelum diurut :"; for(i=0; i tinclude #include main () { int Nilai [20]; inti, j,N, 1; int temp,U, Imin; cout<<"Masukan Banyak Bilangan : ", cin>>N; for (i=; i>Nilai [i]; } //Proses Cetak Sebelum diurutkan cout<<"\nData sebelum diuru for (i=0; i #include #include main () { int Nilai [ 20 ]; inti, k, N, |; int temp, jarak, s; cout<<"Masukan Banyak Bilangan :"; cin>>N, for (i { cout<<"Elemen ke-"<>Nilai [i] ; } //Proses Cetak Sebelum diurutkan cout<<"\nData sebelum diurut : "; for (i=0; i #include Hinclude main () { int Nilai [ 20 ]; inti, k, N, |; int temp, jarak, s; couts<"Masukan Banyak Bilangan :"; cin>>N; for (i=0; i>Nilai [i]; } //Proses Cetak Sebelum diurutkan cout<<"\nData sebelum diurut : "; for (i=; i #include Hincludeciomanip.h> main () { int Nilai [ 20]; inti, j, ky N; 52 int temp; cout<<"Masukan Banyak Bilangan : "; IN; i++) cout<<"Elemen ke-"<>Nilai [i] ; } //Proses Cetak Sebelum diurutkan cout<<"\nData sebelum diurut : "; for (i=0; i=1)) { Nilai [j+1] = Nilai [j]; ms } if(temp >= Nilai [j]) Nilai [j+1] = temp; else { Nitai (j + 1] = Nilai [j]; Nilai [j] = temp; } cout< finclude #includeciomanip.h> main () { int Nilai [ 20]; inti, j, k, N; int temp; cout<<"Masukan Banyak Bilangan cin>>N; for (i=0; i>Nilai [i] ; } //Proses Cetak Sebelum diurutkan cout<<"\nData sebelum diurut :"; for (i=0; i Nilai [j ]) && (j>=1)) { Nilai (j+1] = Nilai [j]; dee } if{temp <= Nilai [} ]) Nilai [j+1] = temp; else { Nilai [j + 1] = Nilai [j]; Nilai [j] = temp; } 54 cout< #include #include using namespace std; typedef struct node *simpul; struct node { char Isi; simpul Next; i Ip ‘ototype Function: void Sisip_Depan (simpul &L, char elemen ); void Sisip_Belakang (simpul &L, char elemen ) ; void Sisip_Tengahi (simpul &L, char element, char elemen2 ) ; void Sisip_ Tengah? (simpul &L, char element, char elemen2 ) ; void Hapus_Depan (simpul &L); void Hapus_Belakang (simpul &L); void Hapus_Tengah (simpul &L, char elemen); void Cetak (simpul L); 87 char huruf, huruf2; ULL; //Pastikan Bahwa L kosong PERASI PADA SINGLE LINKED LIST=="<>huruf; cout<<" 2"; cin>>huruf ; Sisip_Depan (L, huruf ); cout<<""Masukan Huru! Sisip_Depan (L, huruf ); cout<<""Masukan Hurui »_Depan (L, huruf ); Cetak (L); cin>>huruf ; cin>>huruf ; cout<<""\n\nPenyisipan Simpul Di Belakang"<>huruf; Sisip_Belakang (L, huruf ); cout<<"Masukan Huruf :"; cina>huruf ; Sisip_Belakang (L, hurut ); cout<<"Masukan Huruf :"; cin>>huruf ; Sisip_Belakang (L, hurut ); cout<<"Masukan Huruf :"; cin>>huruf ; Belakang (L, huruf ); Cetak (L); sip Simpul Setelah Simpul Tertent cout<>huruf; couts<"Disisip Setelah Huruf— : "; cin>>huruf2; cout>huruf; cout<<"Disisip Sebelum Huruf :"; cin>>huruf2; cout<>huruf; Hapus_Tengah (L,huruf); Cetak (L); getch ( Hapus Simpul Belakan; } [|thtteeeeeseennetenseenaamnnnneent tet //**FUNCTION SISIP SIMPUL DI DEPAN**** / Pett eboes accor ens coors eanees ea void Sisip_Depan (simpul &L, char elemen) { simpul baru; // = new simpul ; baru = (simpul) malloc (sizeof(simpul)); baru-isi = elemen ; baru-> Next = NULL; if (L== NULL) L=baru; else { baru->Next = L; 59 Ls baru; } } [ [AOR RR IEE //**FUNCTION SISIP SIMPUL SETELAH SIMPUL TERTENTU ** /]MetAAcaSeRRRRRRARAAaSaaeRRRRRAAAAAAAHARA EMRE HEE void Sisip_Tengah1 (simpul &L, char element, char elemen2) { simpul bantu, baru; baru = (simpul) malloc (sizeof(simpul)); baru->Isi = element ; baru-> Next = NULL; if (L== NULL) cout << "List KOSOng ....n-.n"<Isi != elemen2) bantu = bantu -> Next; baru->Next = bantu ->Next ; bantu->Next = baru ; } } [ [POE EE EEE OEE EEE EEE //**FUNCTION SISIP SIMPUL SEBELUM SIMPUL TERTENTU****#*#* [HOS os een coo ooo eon OOO eg EOE void Sisip_Tengah2 (simpul &L, char element, char elemen2) { simpul bantu, baru; baru = (simpul) malloc (sizeof{simpul)); baru->isi = element ; baru-> Next = NULL; if (L== NULL) cout<<"List Kosong. else { bantu = L; while (bantu->Next->Isi != elemen2) bantu = bantu -> Next; baru->Next = bantu ->Next ; bantu->Next = baru ; } } 60 ] [HORE OO AO EE //**EUNCTION SISIP SIMPUL DI BELAKANG**##*# #886 Vee teoreetnestesnteeiteseretren treat iene void Sisip_Belakang (simpul &L, char elemmen) { simpul bantu, baru; baru = (simpul) malloc (sizeof{simpul)); baru-alsi = elemen ; baru-> Next = NULL; while (bantu->Next != NULL) bantu= bantu -> Next ; bantu->Next = baru ; } } PERO CCO RS HOC oc a GOGO AAO CCOE aa COOR EE aac //**FUNCTION MENCETAK ISI LINKED LIST****** #844" #* /]MOOAACASCRRRRRRNCAAAAGAARRRRRRRRRAHHAG CESS void Cetak (simpul L) { simpul bantu ; if (L==NULL) cout<<"Linked List Kosong .... else { bantu =L; cout<<"si Linked List : while (bantu ->Next it cout<lsi<<" bantu=bantu->Next; } cout< Next ; Hapus -> Next = NULL; free (Hapus); } } [HOR ECO ROE CREECH //**FUNCTION HAPUS SIMPUL BELAKANG***** [ [POE EEE void Hapus_Belakang (simpul &L) { simpul bantu, hapus; if (L==NULL) cout<<"Linked List Kosong else { bantu = L; while (bantu ->Next->Next != NULL) bantu=bantu->Next; hapus = bantu -> Next; bantu -> Next = NULL; free (hapus); } } [ [PORE CEE OEIC //**FUNCTION HAPUS SIMPUL DI TENGAH**** [BOE EEE void Hapus_Tengah(simpul &L, char elemen) { simpul bantu,hapus; 62 b) if (L==NULL) cout<<"Linked List Kosong. else { bantu = L; while (bantu ->Next->isi hapus = bantu -> Next; bantu ->Next = bantu -> Next ->Next; hapus -> Next = NULL; free (hapus); elemen) bantu=bantu->Next; Buatlah program untuk Operasi Doubly Linked (simpan dengan nama 1at10_2.epp) Hinclude #include Hinclude #define true 1 Hdefine false 0 using namespace std; typedef struct node *simpul; struct node { char Isi; simpul kanan; simpul kiri; i rototype Functio void Sisip_Depan (simpul &DL, char elemen ); void Sisip_Belakang (simpul &DL, char elemen ) ; void Sisip_Tengah1 (simpul &DL, char element, char elemen2) ; void Sisip_Tengah2 (simpul &DL, char element, char elemen2) ; void Hapus_Depan (simpul &DL); void Hapus_Belakang (simpul &DL); void Hapus_Tengah (simpul &DL, char elemen); void Cetak (simpul DL); 63 main () char huruf, huruf2; simpul DL = NULL; //Pastikan Bahwa DL kosong inti; cout<<"\t\t==OPERASI PADA DOUBLY LINKED LIST==\n\n"; cout<<"Penyisipan Simpul Di Depan"<>huruf; Sisip_Depan (DL, hurut ); } Cetak (DL); VW //==Sisip Belakang= VW cout<<"\n\nPenyisipan Simpul Di Belakang"<>huruf; Sisip_Belakang (DL, huruf ); } Cetak (DL); Sisip Simpul Setelah Simpul Tertentu: cout<>huruf; cout<<"Disisip Setelah Huruf —:" cin>>huruf2; cout<>huruf; cout<<"Disisip Sebelum Huruf _:"; cin>>huruf2; cout<>huruf; Hapus_Tengah (DL,huruf); Cetak (DL); getch (); } _[ [POR RR CR EOC ROO COE OK //**FUNCTION SISIP SIMPUL DI DEPAN**** [ [BARREN AAA REAR void Sisip_Depan (simpul &DL, char elemen) { simpul baru; baru = (simpul) malloc (sizeof(simpul)); baru->isi = elemen ; baru-> kanan = NULL; baru-> kiri = NULL; baru->kanan = DL; DL->kiri = baru; DL= baru; } } [POH CORE ROR EEO ROR EERE ERE EERE EEE IDE //**FUNCTION SISIP SIMPUL SETELAH SIMPUL TERTENTU ** eres eeeeeeeteest re ereeerteertetiesrecererert) 6s. void Sisip_Tengah1 (simpul &DL, char element, char elemen2) { simpul bantu, baru; baru = (simpul) malloc (sizeof(simpul)); baru->Isi = element ; baru-> kanan = NULL; baru-> kiri = NULL; if (DL== NULL) cout << "List Kosong... else { bantu L; while (bantu ->Isi != elemen2) bantu = bantu -> kanan; baru->kanan = bantu ->kanan; baru->kiri = bantu; bantu->kanan->kiri = baru; bantu->kanan = baru; } } ] [HOB HOR REECE EERE EAE REE EEO RCAC ECA OIA //**FUNCTION SISIP SIMPUL SEBELUM SIMPUL TERTENTU******* 1 [EOE EE EEE EERIE EEE REDE EE EAE void Sisip_Tengah2 (simpul &DL, char element, char elemen2) { simpul bantu, baru; baru = (simpul) malloc (sizeof{simpul)); baru->lsi = element ; baru-> kanan = NULL; “<kanan->lsi != elemen2) bantu = bantu -> kanan; baru->kanan = bantu ->kanan; baru->kiri = bantu; bantu->kanan->kiri = baru; bantu->kanan = baru; 66 ] [PEER OOOO OE OO OO AOA //*FUNCTION SISIP SIMPUL DI BELAKANG*****#8#* [RCE ORE COE EE EO void Sisip_Belakang (simpul &DL, char elemen) { simpul bantu, baru; baru = (simpul) malloc (sizeof(simpul)); baru->Isi = elemen ; baru-> kanan = NULL; baru-> kiri = NULL; if (DL== NULL) DL=baru; else { bantu = DL; while (bantu->kanan != NULL) bantu = bantu -> kanan; bantu->kanan = baru; baru->kiri = iu } [EOE ROR Ce AOC OR OO Cob abe /[**FUNCTION MENCETAK ISI LINKED LIST*** = / RO RO cen aac ore ea on eae void Cetak (simpul DL) { simpul bantu ; if (DL==NULL) cout<<"Linked List Kosong ... else { bantu =DL; cout<<"Isi Linked List while (bantu ->kanan { “<"; bantu=bantu->kanan; } cout< kanan ; DL ->kiri = NULL; Hapus -> kanan = NULL; free (Hapus); } y ] [PEER RE REO ROE HOO REO EOE OEE //**FUNCTION HAPUS SIMPUL BELAKANG***** [ [PREC EE OEE void Hapus_Belakang (simpul &DL) { simpul bantu, hapus; if (DL==NULL) couts<" Linked List KOSONE.....ne" else { bantu = DL; while (bantu ->kanan->kanan |= NULL) bantu=bantu->kanan; hapus = bantu -> kanan; bantu -> kanan = NULL; hapus -> kiri = NULL; free (hapus); } y ] [PEER RE REO ROE HOO REO EOE OEE //**FUNCTION HAPUS SIMPUL DI TENGAH**** [BEECH void Hapus_Tengah(simpul &DL, char elemen) { 68 simpul bantu,hapus; if (DL==NULL) cout<<"Linked List Kosong. else if bantu = DL; while (bantu ->kanan->si!: bantu=bantu->kanan; hapus = bantu -> kanan; bantu ->kanan->kanan->kiri = bantu; bantu ->kanan = bantu->kanan->kanan; hapus -> kanan = NULL; hapus -> kiri = NULL; free (hapus); Jemen) TUGAS PENDAHULUAN 1. Apa yang dimaksud dengan Linked List! 2. Jelaskan perbedaan antara Singly Linked List, Doubly Linked List, dan Circular Linked List ! 3. Jelaskan Operasi-Operasi pada Singly Linked List! 4, Jelaskan Operasi-Operasi pada Doubly Linked Lis TUGAS AKHIR 1. Buatlah program menu untuk menampilkan program di atas ! 69 MATERI X LINKED LIST (Lanjut) TUJUAN PRAKTIKUM 4) Mahasiswa dapat menjelaskan pengertian dan pembuatan Linked List dengan C++. ©) Mahasiswa dapat melakukan operasi penyisipan maupun penghapusan simpul_ pada Linked List dengan C++. ) Mahasiswa dapat mengimplementasikan Linked List dengan C+, TEORI DASAR d) Pendahuluan Linked List adalah struktur berupa rangkaian elemen saling berkait dimana tiap elemen dihubungkan ke elemen yang lain melalui pointer. Pointer adalah alamat elemen. Penggunaan pointer untuk mengacu elemen berakibat clemen-elemen bersebelahan secara logic walaupun tidak bersebelahan secara fisik di memori Linked List merupakan kumpulan komponen yang saling berkaitan satu dengan yang lain melalui pointer. Masing-masing komponen sering disebut dengan simpul atau verteks. ©) Singly Linked List Merupakan Linked Li bagian yaitu bagian isi dan bagian pointer. Bagian isi merupakan bagian yang yang paling sederhana. Setiap simpul dibagi menjadi dua berisi data yang disimpan oleh simpul, sedangkan bagian pointer merupakan bagian yang berisi alamat dari simpul berikutnya. Deklarasi Doubly Linked List : Cache struct node { type_data Isi; simpul Next; f) Doubly Linked Doubly Linked List merupakan Linked List dimana setiap simpul diba; ist menjadi tiga bagian, yaitu bagian isi, bagian pointer kiri, dan bagian pointer kanan. Bagian isi merupakan bagian yang berisi data yang disimpan olch simpul, bagian pointer 70 kiri merupakan bagian yang berisi alamat dari simpul sebelumnya dan bagian pointer kanan merupakan bagian yang berisi alamat dari Deklarasi Doubly Linked List: pul berikutnya, typedef struct node *simpul struct node { char Isi; simpul kanan; TUGAS PRAKTIKUM a) Buatlah program untuk Operasi Doubly Linked (simpan dengan nama lat 1_L.epp) Hinclude Hinclude Hinclude Hdefine true 1 Hdefine false 0 using namespace std; typedef struct node *simpul; struct node { char Isi; simpul kanan; simpul kil rototype Function: void Sisip_Depan (simpul &DL, char elemen ); void Sisip_Belakang (simpul &DL, char elemen ) ; void Sisip_Tengah1 (simpul &DL, char element, char elemen2 ) ; void Sisip_Tengah2 (simpul &DL, char element, char elemen2) ; void Hapus_Depan (simpul &DL); void Hapus_Belakang (simpul &DL); void Hapus_Tengah (simpul &DL, char elemen); void Cetak (simpul DL); a main () char huruf, huruf2; simpul DL = NULL; //Pastikan Bahwa DL kosong inti; cout<<"\t\t==OPERASI PADA DOUBLY LINKED LIST==\n\n";, cout<<"Penyisipan Simpul Di Depan"<>huruf; Sisip_Depan (DL, hurut ); } Cetak (DL); VW //==Sisip Belakang= VW cout<<"\n\nPenyisipan Simpul Di Belakang"<>huruf; Sisip_Belakang (DL, huruf ); } Cetak (DL); Sisip Simpul Setelah Simpul Tertentu: cout<>huruf; cout<<"Disisip Setelah Huruf —:"; cin>>huruf2; cout<>huruf; cout<<"Disisip Sebelum Huruf _:"; cin>>huruf2; cout<>huruf; Hapus_Tengah (DL,huruf); Cetak (DL); getch (); } _[ [POR RR CR EOC ROO COE OK //**FUNCTION SISIP SIMPUL DI DEPAN**** [ [BARRENS ARAA RAR AOA REAR void Sisip_Depan (simpul &DL, char elemen) { simpul baru; baru = (simpul) malloc (sizeof(simpul)); baru->isi = elemen ; baru-> kanan = NULL; baru-> kiri = NULL; baru->kanan = DL; DL->kiri = baru; DL= baru; } } [POH CORE ROR EEO ROR EERE ERE EERE EEE IDE //**FUNCTION SISIP SIMPUL SETELAH SIMPUL TERTENTU ** eres eeeeeeeteest re ereeerteertetiesrecererert) 73 void Sisip_Tengah1 (simpul &DL, char element, char elemen2) { simpul bantu, baru; baru = (simpul) malloc (sizeof(simpul)); baru->Isi = element ; baru-> kanan = NULL; baru-> kiri = NULL; if (DL== NULL) cout << "List Kosong... else { bantu L; while (bantu ->Isi != elemen2) bantu = bantu -> kanan; baru->kanan = bantu ->kanan; baru->kiri = bantu; bantu->kanan->kiri = baru; bantu->kanan = baru; } } ] [HOB HOR REECE EERE EAE REE EEO RCAC ECA OIA //**FUNCTION SISIP SIMPUL SEBELUM SIMPUL TERTENTU******* 1 [EOE EE EEE EERIE EEE REDE EE EAE void Sisip_Tengah2 (simpul &DL, char elemen1, char elemen2) { simpul bantu, baru; baru = (simpul) malloc (sizeof{simpul)); baru->lsi = element ; baru-> kanan = NULL; “<kanan->lsi != elemen2) bantu = bantu -> kanan; baru->kanan = bantu ->kanan; baru->kiri = bantu; bantu->kanan->kiri = baru; bantu->kanan = baru; 74 ] [PEER OOOO OE OO OO AOA //*FUNCTION SISIP SIMPUL DI BELAKANG*****#8#* [RCE ORE COE EE EO void Sisip_Belakang (simpul &DL, char elemen) { simpul bantu, baru; baru = (simpul) malloc (sizeof(simpul)); baru->Isi = elemen ; baru-> kanan = NULL; baru-> kiri = NULL; if (DL== NULL) DL=baru; else { bantu = DL; while (bantu->kanan != NULL) bantu = bantu -> kanan; bantu->kanan = baru; baru->kiri = iu } [EOE ROR Ce AOC OR OO Cob abe /[**FUNCTION MENCETAK ISI LINKED LIST*** = / RO RO cen aac ore ea on eae void Cetak (simpul DL) { simpul bantu ; if (DL==NULL) cout<<"Linked List Kosong... else { bantu =DL; cout<<"Isi Linked List while (bantu ->kanan { “<"; bantu=bantu->kanan; } cout< kanan ; DL ->kiri = NULL; Hapus -> kanan = NULL; free (Hapus); } y ] [PEER RE REO ROE HOO REO EOE OEE //**FUNCTION HAPUS SIMPUL BELAKANG***** [ [PREC EE OEE void Hapus_Belakang (simpul &DL) { simpul bantu, hapus; if (DL==NULL) couts<" Linked List KOSONE.....ne" else { bantu = DL; while (bantu ->kanan->kanan |= NULL) bantu=bantu->kanan; hapus = bantu -> kanan; bantu -> kanan = NULL; hapus -> kiri = NULL; free (hapus); } y ] [PEER RE REO ROE HOO REO EOE OEE //**FUNCTION HAPUS SIMPUL DI TENGAH**** [BEECH void Hapus_Tengah(simpul &DL, char elemen) { 76 simpul bantu,hapus; if (DL==NULL) cout<<"Linked List Kosong. else if bantu = DL; while (bantu ->kanan->si!: bantu=bantu->kanan; hapus = bantu -> kanan; bantu ->kanan->kanan->kiri = bantu; bantu ->kanan = bantu->kanan->kanan; hapus -> kanan = NULL; hapus -> kiri = NULL; free (hapus); Jemen) TUGAS PENDAHULUAN 1. Jelaskan Fungsi antara Singly Linked List, Doubly Linked List! 2. Jelaskan Opera 3. Jelaskan Opera 4 i-Operasi pada Circular Linked List ! i-Operasi pada Doubly Linked List! Jelaskan Jenis Program Yang menggunakan Linked List! TUGAS AKHIR 1. Modifikasi Program di atas dengan ditambahkan Singly Linked List ! 7 MATERI XI STACK TUJUAN PRAKTIKUM a) Mahasiswa dapat menjelaskan pengertian dan pembuatan Stack dengan C++. b) Mahasiswa dapat melakukan operasi penyisipan dan penghapusan elemen dalam, Stack dengan C++. c) Mahasiswa dapat mengimplementasikan Stack dengan C++, TEORI DASAR a) Pendahuluan Stack atau tumpukan adalah kumpulan elemen yang hanya dapat di tambah atau dihapus dari satu ujung (gerbang) yang sama, Hal ini menunjukan bahwa seolah-olah suatu elemen diletakan di atas elemen yang lain, Yang memberi gambaran bahwa Stack mempunyai sifat LIFO (Last In First Out) yang berarti bbahwa elemen yang terakhir masuk akan pertama keluar, Secara sedethana stack dimisalkan kita mempunyai 4 buah kotak (A,B,C, dan D) yang ditumpukkan, Kotak A diletakkan paling bawah, lalu diikuti kotak B,C, dan yang teratas atau terakhir adalah D. Maka untuk mengambil tiap kotak harus dilakukan berurutan dari kotak D, C, B kemudian A. Karena jika kita mengambil kotak B tanpa terlebih dahulu mengambil kotak di atasnya maka tumpukan akan roboh. b) Deklarasi Stack Bentuk deklarasi pertama: Bentuk deklarasi kedua : ©) Operasi Pada Stack Ada dua operasi dasar yang dapat dilakukan terhadap sebuah Stack, yaitu operasi insert atau penyisipkan elemen yang sering disebut istilah PUSH dan operasi Delete atau Penghapusan elemen yang sering disebut istilah POP. 4) Inisialisasi Stack Sebelum stack dapat dioperasikan, terlebih dahulu diinisialisasikan dengan ‘memberi harga $.Top -0. ©) Mencetak Stack Isi suatu Stack dapat dicetak dengan menggunakan fungsi berikut, 1) Karakteristik Stack Karakteristik dari suatu stack meliputi : Elemen Stack, Top, Max, Stack Kosong, dan stack penuh, g) Aplikasi Stack 1). Simulasi stack dalam dunia nyata 2) Pemangi 3) Rekursif n fungsi/procedure 4) Penanganan interupsi 5) Evaluasi ekspresi 6) Konversi notasi infiks ke notasi postfiks 7) Konversi bilangan basis 10 (decimal) ke basis 2 (biner) TUGAS PRAKTIKUM a) Buatlah program lengkap dari suatu Stack dengan menggunakan Array (simpan dengan nama latl1_l.cpp) #include Hinclude define MaxS 10 struct Stack { char Isi [MaxS] ; unsigned int Top; he void INITS (Stack &S) ; void PUSH (Stack &S, char Data) ; void CETAK (Stack S) ; void POP (Stack &S, char &Hsl) ; main () { char huruf ; Stack S; INITS (S) ; cout<<"Masukan Karakter cin>>huruf ; PUSH(S, huruf); cout<<"Masukan Karakter :"; cin>>huruf ; PUSH(S, huruf); cout<<"Masukan Karakter :"; cin>>huruf ; PUSH(S, huruf); 20 CETAK (S); Pop (S, huruf); cout<>huruf ; PUSH{(S, huruf); cout<<"Masukan karakter cin>>huruf; PUSH(S, huruf); cout<<"Masukan karakter :"; cin>>huruf; PUSH(S, huruf); CETAK (S) ; Pop (S, huruf); cout< ifinclude #include #define true1 #define false 0 typedef struct node *simpul; struct node { char Isis simpul next ; k 83 Prototype Function: I/= void Sisip_Belakang (simpul &L, char elemen); void Hapus_Belakang (simpul &L); void Cetak (simpul L); char huruf ; simpul L = NULL; //Pastikan bahwa L kosong, cout<<"Operasi Single Linked List Pada Stack==\n\n"; coute> huruf; Sisip_Belakang (L, huruf); cout<<"Masukan Elemen : "; cin>> huruf; Sisip_Belakang (L, huruf); cout<<"Masukan Elemen : "; cin>> huruf; Sisip_Belakang (L, huruf); cout<<"Masukan Elemen :"; cin>> huruf; Sisip_Belakang (L, huruf); cout<<"Masukan Elemen : "; cin>> huruf; Sisip_Belakang (L, huruf); cout<<"Masukan Elemen :"; cin>> huruf; Sisip_Belakang (L, huruf); Cetak (L); I h MN cout<Isi = elemen; baru->next = NULL; if(l == NULL) L=baru; else { bantu=L; while(bantu->next != NULL) bantu=bantu->next; bantu->next=baru; } } / [HH HOR oo oon aon aces aoe tices cea ta //**FUNCTION HAPUS SIMPUL BELAKANG*######## [[2AEEARA ARERR EER CR void Hapus_Belakang (simpul & L) { simpul bantu, hapus; if(L== NULL) cout<<" Linked List Kosong. else { bantu=L; while(bantu->next->next != NULL) bantu=bantu-anext; hapus = bantu ->next; bantu->next = NULL; free(hapus); Ey [ [AREER //**FUNCTION MENCETAK ISI LINKED LIST** [POE OO co EE eee void Cetak(simpul L) { simpul bantu; if (L==NULL) cout<<"Linked List Kosong else { bantu=L; cout<next != NULL) { couteIsi << bantu=bantu->next; } cout<Isi; } Mir ‘ #include #include typedef struct node *simpul ; struct node { char Isi; simpul Next ; ‘rototype Function: Void Sisip_Belakang (simpul &L, char elemen ) ; void Hapus_Depan (simpul &L); void Cetak (simpul L); char huruf ; simpul L = NULL; //Pastikan bahwa L kosong int i; cout<<"==OPERASI PADA SINGLE LINKED LIST=="<>huruf; Sisip_Belakang (L, huruf); } Cetak (L) ; 88 //==Hapus simpul Depan: cout<<"\nSetelah Hapus Simpul "<>huruf; Sisip_Belakang (L, huruf); } Cetak (L) ; cout<<"\nSetelah Hapus Simpul "< Isi = elemen; baru -> Next = NULL; if (L== NULL) Ls baru; else { bantu =L; 29 while (bantu->Next !: bantu =bantu->Next; bantu->Next=baru; } } _] [HORE HORE OR REO ECR OEE Oe 7/**FUNCTION MENCETAK ISI LINKED LIST******* [| BRREESSSERAA RESEND void Cetak (simpul L) { simpul bantu; if(L==NULL) cout<<"Linked List Kosong. else { bantu=! cout<<"\nIsi Linked List while (bantu->Next I= { cout<isic<"->"; bantu=bantu->Next; } coutslsi; } \n"; JULL) } [ [CECE EOE //**FUNCTION HAPUS SIMPUL DEPAN******** [POORER RARER ROCCE EEE void Hapus_Depan (simpul &L) { simpul Hapus; if(L==NULL) cout<<"Linked List Kosong.........\n"; else { Hapu: L=L>Next; Hapus->Next = NULL; free(Hapus); 90 TUGAS PENDAHULUAN 1. Apa yang dimaksud dengan Queue! Tuliskan Deklarasi sintaks Queue! Sebutkan dan Jelaskan operasi-operasi pada Queue! Rey Jelaskan Aplikasi-Aplikasi Queue dalam dunia nyata! TUGAS AKHIR 1. Buatlah program lat13_1.epp di atas, dengan menggunakan sistem menu! o1

Anda mungkin juga menyukai