The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.

Saya Febriyanty Efendi 07352211072 dari Universitas Khairun Ternate prodi Teknik Informatika Kelas 1 IF 2

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by Febriyanty Efendi, 2023-01-19 09:41:58

Laporan Praktikum Algoritma Dan Struktur Data

Saya Febriyanty Efendi 07352211072 dari Universitas Khairun Ternate prodi Teknik Informatika Kelas 1 IF 2

89 //input data ke array for (int k=0; k<5; k++) { cout<<”Masukan data [“<<k<<”] = ”; cin>> data [k]; } //menghitung total nilai array for (int J=0; J<5; J++) { total = total + data [J]; } //menghitung rata-rata rata = total / 5; cout<<”rata-rata data pada array = ”<<rata<<endl; cout<<"rata-rata data pada array = "<<rata<<endl; cout<<""<<endl; cout<<""<<endl; cout<<"nama/t : Febriyanty Efendi"<<endl; cout<<"npm/t : 07352211072"<<endl; getch(); } Compile dan perbaiki program sampai benar


90 Gambar 4.10 Tampilan Source Hello World setelah di runnning. Gambar 4.11 Tampilan Hasil Running 4.5 STUDY KASUS a. Buatlah sebuah program untuk menemukan data yang terdapat didalam element. Buatlah program baru dengan cara file – menu – source atau gunakan CTRL + N kemudian ketik source programnya seperti dibawah ini:


91 Flowchart 4.1 Studi kasus 1 Penjelasan : Flowchart di atas di mulai dengan menggunakan simbol terminal, lalu mendeklarasikan “int data, int elemen, ketemu dan x”. Menginput nilai x menggunakan simbol input atau output lalu masukkan kondisi dan bandingkan menggunakan simbol preparation dan decision, jika kondisi (ketemu=0) maka hasil “Data tidak ditemukan dan jika selain itu maka hasil “Data ada di elemen” menggunakan simbol input atau output, lalu mengakhiri dengan menggunakan simbol terminal. #include<conio.h> #include<iostream> using namespace std;


92 int main() { int data[10]={4, 1, 0, -9, 8, 5, -1, 2, 3, -7}; int elemen, ketemu, x; cout<<”Data yang dicari :”; cin>>x; ketemu = 0; for (elemen = 0; elemen <= 9; elemen++) { if (data [elemen] == x) { ketemu = !ketemu; break; } } if (ketemu == 0) cout<<”Data tidak ditemukan”; else cout<<”Data ada di elemen :”<<elemen; cout<<” “<<endl; cout<<” “<<endl; cout<<” Nama\t : Febriyanty Efendi “<<endl; cout<<”NPM\t : 07352211072 “<<endl; getch(); } Compile dan perbaiki program sampai benar


93 Gambar 4.12 struktur code Latihan C++ Setelah program diperbaiki dan decompile, maka tampilan hasil running akan tampak seperti gambar dibawah ini : Jika data yang dicari ditentukan : Gambar 4.13 tampilan hasil running jika ditemukan Jika data yang dicari tidak ditemukan :


94 Gambar 4.14 tampilan hasil running jika tidak ditemukan b. Buatlah sebuah Program Matriks. Buatlah program baru dengan cara menekan menu tab file, new source atau menekan tombol ctrl+n secara bersamaan kemudian ketik source programnya seperti di bawah ini: Flowchart 4.2 Studi Kasus 2


95 Penjelasan : Flowchart di atas dimulai dengan menggunakan simbol terminal, lalu mendeklarasikan int matrix[3][4] beserta nilainya. Kemudian masukan kondisi pertama yaitu for (int i=0; i<3; i++) dan kondisi Kedua adalah for (int j=0; j<4; j++) menggunakan simbol Preparation, lalu hasil matrix [i][j] dengan menggunakan simbol input/output, dan diakhiri dengan menggunakan simbol terminal. #include<iostream> #include<conio.h> using namespace std; int main() { int matrix[3][4]={{5, 10, 1, 11}, {4, 7, 67, -9}, {9, 0, 45, 3}}; for(int i=0; i<3; i++) { for(int j=0; j<4; j++) { cout<<matrix[i][j]<<””; } cout<<endl; } cout<<””<<endl; cout<<”Nama/t: Febriyanty Efendi”<<endl; cout<<”NPM/t: 07352211072”<<endl; getch(); }


96 Compile dan perbaiki program sampai benar Gambar 4.15 Struktur kode Latihan C++ Setelah program diperbaiki dan di compile, maka tampilan hasil running akan tampak seperti gambar di bawah ini: Gambar 4.16 Tampilan hasil running C++


97 4.6. KESIMPULAN DAN SARAN A. Kesimpulan Array ialah kumpulan variabel yang mempunyai tipe data yang sama serta dinyatakan menggunakan nama yang sama. Array salah satu konsep yang sangat penting pada sebuah pemograman, karena array dapat menyimpan data juga referensi objek pada jumlah yang banyak serta terindeks. Arra menggunakan indeks integer untuk menemukan urutan elemen-elemennya, dan juga elemen pertamanya akan dimulai dari indeks 0, dan yang kedua mempunyai indeks 1, serta seterusnya. Array dideklarasikan dibagian deklarasi variabel dibedakan menjadi dua yaitu, Array Satu Dimensi dan Array Dua Dimensi. Dan setiap jenis array mempunyai kegunaannya masing-masing. B. Saran Array yang akan dipergunakan harus dideklarasikan terlebih dahulu. Ketika akan mendeklarasikan array kita harus memperhatika hal-hal berikut : 1. Indeks array selalu dimulai dari 0 2. Mengetahui besaran, karena array tidak bisa diperbesar ataupun diperkecil 3. Mengetahui tipe data yang ingin dimasukan kedalam array, karena jika inputan berbeda dengan initial array maka akan terjadi eror


98 4.7 Lembaran Asistensi


99 BAB V POINTER 5.1. Pendahuluan Pointer adalah sebuah variabel atau objek yang menunjuk ke variabel atau objek lainnya. Pointer hanyalah variabel yang menyimpan alamat memori, memori tersebut dapat berasal dari variabel, objek dan lain-lain. Dengan pointer dimungkinkan untuk menunjuk suatu memori yang ditunjuk. Suatu pointer dapat berisi alamat dari suatu variabel lain dan untuk dapat mengakses nilai yang ada di dalam variabel berpointer secara langsung dapat dilakukan dengan menggunakan operator. Ada dua operator pointer yang disediakan oleh Borland C++, yaitu: a. Operator Deference (&) Operator Dereference (&) adalah operator yang berfungsi untuk mendeklarasikan suatu variabel dalam penggantian memori. Operator ini biasa disebut sebagai "Address Of". Jadi misalkan ketika ingin mengetahui dimana variabel akan disimpan (untuk mengetahui lokasi/alamat dimana variabel disimpan di memori). Bisa meletakkan "&" atau biasa disebut AND (Apmpersand Sign) di depan variable yang berarti Address Of. b. Operator Reference (*) Operator Reference atau biasa disebut dengan "value pointed by". Bedanya dengan Operator Dereference, operator ini akan menampilkan nilai yang terdapat dalam suatu alamat memori, bukan menampilkan alamat memorinya.


100 Variabel yang terkandung di dalam pointer memiliki alamat memori sebagai nilai dari variabel pointer tersebut. Nilai pointer tersebut dapat diakses melalui pointer kita beserta dengan nilai dari alamat memori yang ditunjuk oleh pointer. Pointer sendiri dikenal dengan dengan variabel sehingga cara pengaksesannya tidak jauh berbeda. Untuk kita mengakses nilai dari pointer kita, hanya cukup dengan memanggil identitas dari pointer tersebut. pint Pemanggilan akan menunjukkan nilai (alamat memori) dari variabel yang ditunjuk oleh pointer tersebut. Untuk mengubah nilai (tujuan) dari pointer, kita memerlukan operator address-of (&) pada operand sumber. pint = &myVar Operand sumber akan menampilkan alamat memori dari myVar, dan hal itu merupakan nilai yang dibutuhkan variabel pointer. Kegunaan utama dari pointer adalah untuk menyimpan alamat memori dari sebuah variabel dan alamatnya dari suatu fungsi. Pointer dapat meningkatkan kinerja untuk operasi berulang. 5.2. Tujuan Praktikum Pointer C++ a. Mengetahui cara penggunaan operator pada pointer. b. Mampu mempraktekkan struktur pointer pada program C++. c. Membuat file kerja dengan bahsa program bahasa C++. 5.3. LANGKAH-LANGKAH KEGIATAN PRAKTIKUM a. Bukalah aplikasi DevC++ melalui start menu :


101 Gambar 5.1 Tampilan aplikasi DevC++. b. Tampilan awal tampak seperti gambar dibawah ini : Gambar 5.2 Tampilan awal DevC++. c. Buatlah program baru dengan file-new-source atau gunakan CTRL+N atau seperti gambar dibawah ini : Gambar 5.3 Membuat Project baru


102 d. Ketik Source Code programnya seperti dibawah ini. Gambar 5.4 Struktur Code e. Setelah menulis sourcenya, tekan compile and run seperti pada gambar di bawah ini : Gambar 5.5 Proses Compile f. Akan muncul pemberitahuan untuk menyimpan program. Beriikan nama sesuai dengan keinginan kalian.


103 Gambar 5.6 Proses Penyimpanan g. Setelah menyimpan, maka akan muncul jendela yang menampilkan hasil program yang telah dibuat. Gambar 5.7 Tampilan hasil running h.Anda telah berhasil membuat program dengan Bahasa Pemrograman C++ menggunakan DevC++. 5.4. Latihan Kegiatan Praktikum


104 a. Latihan 1 (pointer konstanta) #include <conio.h> #include <iostream> using namespace std; main() { system("color 0A"); char const*nama= "Borland c++"; system("cls"); cout<<"Febriyanty Efendi"<<endl; cout<<endl; cout<<"Nama Program ="<<nama<<endl; nama = "Visual C++"; cout<<"Nama Program ="<<nama<<endl; getch(); } Compile dan perbaiki program hingga benar.


105 Gambar 5.8 Struktur Code program. Tampilan Setelah di Running. Gambar 5.9 Hasil Running b. Latihan 2 (Pointer Variable) #include <conio.h> #include <iostream> using namespace std; main() { system("Color 0A");


106 cout<<"Nama : Febriyanty Efendi"<<endl; cout<<"NPM : 07352211072"<<endl; cout<<endl; int jul, ifan, *afif; jul = 85; ifan = jul; afif = &jul; cout<<"Nilai JUL = "<<jul<<endl; cout<<"Nilai IFAN = "<<ifan<<endl; cout<<"Nilai AFIF = "<<afif<<endl; getch(); } Compile dan perbaki program hingga benar


107 Gambar 5.10 Struktur code program Tampilan setelah di running. Gambar 5.11 Hasil running 5.5. Studi Kasus a. Operasi Aritmatika Pada Pointer


108 Flowchart operasi aritmatika Flowchart 5.1 Operasi Aritmatika Penjelasan: Flowchart tersebut menggunakan simbol terminal sebagai awalan dan akhiran, pendeklarasian menggunakan simbol preparation, pada tahap memasukkan nilai menggunakan simbol process, kemudian pengeluaran alamat nilai menggunakan simbol input/output, selesai. Berikut source code program operasi aritmatika: #include <iostream> #include <conio.h> using namespace std;


109 main() { cout<<"Nama : Febriyanty Efendi"<<endl; cout<<"NPM : 07352211072"<<endl; cout<<endl; int nilai[3], *penunjuk; nilai[0]=150; nilai[1]=180; nilai[2]=200; penunjuk = &nilai[0]; cout<<"Nilai"<<*penunjuk<<"ada di alamat memori"<<penunjuk<<endl; cout<<"Nilai"<<*(penunjuk+1)<<"ada di alamat memori"<<(penunjuk+1)<<endl; cout<<"Nilai"<<*(penunjuk+2)<<"ada di alamat memori"<<(penunjuk+2)<<endl; cout<<” “<<endl; getch();


110 } Compile dan perbaiki hingga benar. Gambar 5.12 Struktur code program Gambar 5.13 Hasil running b. Pointer Dalam Array


111 Flowchart pointer dalam array Flowchart 5.2 Pointer dalam Array Penjelasan : Flowchart tersebut menggunakan simbol terminal sebagai awalan dan akhiran, pendeklarasian menggunakan simbol preparation, pada tahap menyatakan fungsi menggunakan simbol process, kemudian pengeluaran alamat dari nilai-nilai c[4] menggunakan simbol input/output, selesai. Berikut source code program pointer dalam array : #include <iostream> #include <conio.h> #include <windows.h>


112 using namespace std; main() { system("color 0A"); cout<<"Nama : Febriyanty Efendi"<<endl; cout<<endl; char c[4]; int i; for(i=0;i<4; ++i) { printf("address of c[%d]=%x\n",i,&c[i]); } getch(); } Compile dan prbaiki program sampai benar.


113 Gambar 5.14 Struktru code program Hasil Running Gambar 5.15 Hasil Running


114 5.6. KESIMPULAN DAN SARAN A. Kesimpulan Suatu variabel yang bertipe pointer tidak berisi data melainkan berisi alamat dari suatu data. tipe dan nama variabel pointer sama dengan tipe dan nama variabel pada biasanya, namun pada nama variabel pointer menggunakan (*) didepan nama saat deklarasi. B. Saran Penggunaan pointer dalam program harus benar-benar diperhatikan. Jika ada sedikit saja kesalah saat penggunaan pointer maka program tidak dapat berjalan karena pointer bekerja dengan langsung menunjuk pada lokasi data yang dicari, maka jika ada kesalahan data yang diambil juga akan salah.


115 5.7 Lembaran Asistensi


116 BAB VI STACK 6.1 PENDAHULUAN Stack adalah suatu koleksi atau kumpulan item data yang terorganisasi dalam bentuk linear, yang operasi pemasukan dan penghapusan datanya dilakukan pada salah satu sisinya. Sedangkan pengertian stack pada struktur data adalah sebagai tumpukan dari benda, sekumpulan data yang seolah-olah diletakkan di atas data yang lain, koleksi dari objek-objek homogen, atau suatu urutan elemen yang elemennya dapat diambil dan ditambah hanya pada posisi akhir (top) saja. Stack merupakan bentuk khusus dari suatu data, dimana node yang ditambahkan dalam list dan diambil dari list hanya pada kepalanya, atau dengan prinsip pengolahannya adalah last-in fisrt-out (LIFO). Pada struktur ini hanya ada dua fungsi utama, yaitu push (memasukkan node ke dalam stack), dan pop (mengambil node dari stack). Secara sederhana tumpukan bisa diartikan sebagai kumpulan data yang seolaholah diletakkan di atas yang lain. Dalam suatu tumpukan akan dapat dilakukan operasi penambahan (penyisipan) dan pengambilan (penghapusan) data melalui ujung yang sama, ujung ini merupakan ujung atas tumpukkan. Sebelum struktur data tumpukkan ini digunakkan, dideklarasikan dahulu dalam kamus data.


117 6.2 Tujuan Praktikum a. Memahami konsep Stack b. Mempraktikan cara penggunaan Stack dalam C++ 6.3 Langkah-langkah Kegiatan Praktikum a. Bukalah aplikasi DevC++ melalui start menu: / Gambar 6.1 tampilan aplikasi DevC++ b. Tampilan awal tampak seperti berikut: Gambar 6.2 tampilan awal DevC++ c. Buatlah program baru dengan cara file-new-source atau gunakan Ctrl+N atau seperti gambar berikut: Gambar 6.3 membuat project baru


118 d. Ketik source kode programnya seperti gambar berikut ini: Gambar 6.4 Struktur code C++ Gambar 6.5 Struktur code C++


119 Gambar 6.6 Struktur code C++ e. Setelah menulis sourcenya, klik compile and run atau F11 seperti gambar berikut ini: Gambar 6.7 Proses Compile f. Akan muncul dialog untuk menyimpan program. Beri nama sesuai keinginan, misalnya “stack” kemudian save dengan ekstensi “cpp”. Gambar 6.8 Proses Penyimpanan g. Setelah klik save, akan muncul jendela yang menampilkan hasil program stack yang telah dibuat Gambar 6.9 Tampilan hasil running


120 h. Program “stack” berhasil dibuat menggunakan bahasa pemrograman C++ menggunakan aplikasi DevC++ 6.4 Latihan Kegiatan Praktikum Buatlah program baru dengan cara file-new-source atau gunakan CTRL+N kemudian ketik source atau gunakan CTRL+N , kemudian ketik source code seperti dibawah ini : #include <iostream> #define MAX 10 // latihan 1 using namespace std; struct stack { int top, data [MAX]; }Tumpukan; void init(){ Tumpukan.top = -1; } bool isempty(){ return Tumpukan.top == -1; } bool isfull(){ return Tumpukan.top == MAX -1; } void push(){ if (isfull()){ cout<<"\nTumpukan penuh" <<endl; } else { Tumpukan.top++; cout<<"\nMasukkan data ="; cin>> Tumpukan.data[Tumpukan.top]; cout<<"data"<< Tumpukan.data[Tumpukan.top] << "masuk ke stack"<<endl; } } void pop(){ if (isempty()){


121 cout<< "\ndata kosong\n"<<endl; } else{ cout<< "\ndata "<<Tumpukan.data [Tumpukan.top]<< "sudah terambil"<<endl; Tumpukan.top--; } } void PrintStack(){ if (isempty()){ cout<<"tTumpukan kosong"; } else{ cout<<"\nTumpukan : "; for (int i = Tumpukan.top; i >= 0; i--) cout<< Tumpukan.data[i] << ((i==0) ? "": ","); } } int main(){ int pilihan; int(); do{ PrintStack(); cout<< "\n1.input (push)\n" << "2.hapus (Pop)\n" << "3.keluar\n" << "masukan pilihan:"; cin>>pilihan; switch (pilihan){ case 1: push(); break; case 2: pop(); break; case 3: cout << "bab 6 selesai" << endl; cout << "Nama :Abyan Dzakwan Baksir" << endl; cout << "NPM : 07352211064 " << endl;


122 return 0; break; default: cout << "pilihan tidak tersedia"<< endl; break; } system("cls"); }while("hoose !=3"); } Compile dan perbaiki program sampai benar Gambar 6.10 Struktur code latihan C++


123 Gambar 6.11 Lanjutan struktur code latihan C++ Gambar 6.12 Lanjutan II struktur code latihan C++ Hasil running jika memilih pilihan pertama atau memasukan nilai ke dalam stack Gambar 6.13 Hasil running


124 Hasil running jika memilih pilih kedua atau menghapus data di dalam stack (tumpukan) Gambar 6.14 Hasil running Hasil running jika memilih pilihan ke-3 atau keluar Gambar 6.15 Hasil running


125 6.5. STUDI KASUS Buatlah program baru dengan cara file-new-source atau gunakan CTRL+N kemudian ketik source code programnnya seperti dibawah :


126


127 Flowchart 6.1 Studi Kasus 1


128 #include <iostream> #include <conio.h> #include <stdio.h> #define max 10 // study kasus using namespace std; struct tumpukan { int atas; int data[max]; }T; void awal() { T.atas =- 1; } int kosong() { if (T.atas == -1) return 1; else return 0; } int penuh()


129 { if (T.atas == max-1) return 1; else return 0; } void input (int data) { if (kosong () == 1) { T.atas++; T.data [T.atas] = data; cout << "Data " << T.data[T.atas] <<" masuk ke stack\n"; } else if (penuh () == 0) { T.atas++; T.data [T.atas] = data; cout << "Data " << T.data [T.atas] << " masuk ke stack\n"; } } void hapus() {


130 if (kosong() == 0) { cout << "Data teratas sudah terambil\n"; T.atas--; } else cout << "Data kosong\n"; } void tampil() { if (kosong() == 0) { for (int i = T.atas; i >= 0; i--) { cout << "\nTumpukan ke "<< i + 1 << "=" << T.data[i]; } } else cout << "Tumpukan kosong\n"; } void bersih() { T.atas =- 1;


131 cout << "Tumpukan kosong!\n"; } main(void) { int pil, data; awal(); do { cout << "\n1. Input\n2. Hapus\n3. Tampil\n4. Bersihkan\n5. Keluar\nMasukan pilihan : "; cin >> pil; switch (pil) { case 1: cout << "Masukan data = "; cin >> data; input (data); break; case 2: hapus(); break; case 3: tampil(); break;


132 case 4: bersih(); break; case 5: cout << "Terimakasih, tekan enter untuk keluar"<< endl; case 6:; cout << "Nama : Febriyanty Efendi\n"; } getch(); } while (pil != 5);} Compile dan perbaiki sampai benar Gambar 6.16 Struktur pemograman


133 Gambar 6.17 Sturktur pemograman Gambar 6.18 Struktur pemograman


134 Gambar 6.19 Struktur pemograman Tampilan setelah di running Gambar 6.20 Hasil running


135 Gambar 6.21 Hasil running


136 Buatlah program baru dengan cara file-new-source atau gunakan CTRL+N kemudian ketik source code programnnya seperti dibawah :


137 Flowchart 6.2 Studi Kasus 2 Penjelasan : Dimulai dengan terminator dan header flowchart , masukan fungsi nya didalam simbol prepation . lalu fungsi untuk variabel while(1), tampilkan pilihan push, pop, display, quit dan scanf. Lalu masuk dalam system (choice) untuk case1-4 ditambahkan default jika yang lain, untuk void push, if (top == (MAX - 1) maka tampilkan “Stack Overflow” jika tidak , maka tampilkan nilai yang masuk dan masukan nilainya dengan nilai sudah di urutkan top = top + 1; stack_arr[top] = pushed_item; sedangkan untuk pilihan void pop(). jika nilai (top == -1) maka tampilkan “Stack Overflow” jika buka itu maka tampilkan nilai yang dihapuskan dan di urutkan top = top - 1; lalu sedangkan void display() , masukan variabel int I, jika if(top == -1) maka tampikan “Stack Overflow” jika tidak, maka else {printf("\nStack elements :\n"); untuk tampilan for(i = top; i >=0; i--) printf("%d\n", stack_arr[i] ); kemudian diselesaikan dengan gethch();. #include <stdio.h> #include <stdlib.h> #include <conio.h> #define MAX 5 int top = -1; int stack_arr[MAX]; void push(); void pop(); void display(); int main() { int choice; while(1) { printf("\n1.Push\n"); printf("2.Pop\n");


138 printf("3.Display\n"); printf("4.Quit\n\n"); printf("Enter your choice : "); scanf("%d",&choice); switch(choice) { case 1 : push(); break; case 2: pop(); break; case 3: display(); break; case 4: exit(1); default: printf("\nPILIHAN TIDAK TERSEDIA\n"); } } getch(); } void push() {


Click to View FlipBook Version