The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.
Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by Adira Anwar, 2023-01-19 01:14:03

Laporan Praktikum Algoritma dan Struktur Data

Adira Ramadani Anwar
NPM.07352211060 (1IF2)

84 decision if (ketemu==0). Jika hasilnya false maka hasilnya akan dikembalikan pada decesion awal jika true maka hasil dari inputan akan di tampilkan. Selesai 2. Program Buatlah program baru dengan cara file – menu – source atau gunakan CTRL + N kemudian ketik source programnya seperti dibawah ini: #include <iostream> #include <conio.h> using namespace std; int main() { cout<<"Adira Ramadani Anwar"<<endl; cout<<"07352211060"<<endl; int data [10] = {2,4,6,8,9,10,12,14,15}; 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


85 cout<<"Data ada dielemen :"<<elemen; getch(); } Compile dan perbaiki hingga program dapat dijalankan Gambar 4.13 Struktur code C++ Setelah program diperbaiki dan dicompile, maka tampilan hasil running akantampak seperti gambar dibawah ini: Gambar 4.14 hasil running


86 b. Buatlah sebuah program untuk menentukan data yan terdapat didalam elemen 1. Flowchart Berikut adalah flowchart untuk mentukan data yang terdapat didalam elemen. Gambar 4.15 flowchart array 2 dimensi Penyelesaian: Flowchart diawali dengan simbol terminal yang menyatakan “mulai”, lalu dilanjutkan dengan deklarasi array [2][3] menggunakan simbol poses, kemudian masukan array lalu tampilkan hasil masukan dari array sebelumnya menggunakan simbol input output. jika hasilnya false maka akan di tunjukan pada inputan array sebelumnya. Selesai


87 2. Program Buatlah program baru dengan cara file – menu – source atau gunakan CTRL + N kemudian ketik source programnya seperti dibawah ini: #include <iostream> using namespace std; int main() { cout<<"Adira Ramadani Anwar"<<endl; int arr[2][3] = {{10,20,30},{33,44,55}}; cout << "Isi variabel arr:" << endl; cout << arr[0][0] <<" "<< arr[0][1] <<" "<< arr[0][2]<< endl; cout << arr[1][0] <<" "<< arr[1][1] <<" "<< arr[1][2]<< endl; return 0; } Compile dan perbaiki hingga program dapat dijalankan Gambar 4.16 Struktur Code C++


88 c. Buatlah sebuah program matriks 1. Flowchart Berikut adalah flowchart matriks Gambar 4.17 flowchart matriks


89 Penyelesaian: Flowchart diawali dengan simbol terminal, lalu dilanjutkan dengan deklarasi variabel matriks [3][4] menggunakan simbol proses, kemudian dilanjutkan dengan decision for (int i = 0; i<3; i++) dan for (int j=0;j<4; j++), lalu masukan matriks yang telah dideklarasikan jika hasilnya true maka terlihat hasil inputan, jika false maka akan dikembalikan pada decision 1 atau 2. Selesai. 2. Program Buatlah program baru dengan cara file – menu – source atau gunakan CTRL + N kemudian ketik source programnya seperti dibawah ini: #include <iostream> #include <conio.h> using namespace std; int main() { cout<<"Adira Ramadani Anwar"<<endl; cout<<"07352211060"<<endl; 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; } getch();


90 } Compile dan perbaiki hingga program dapat dijalankan Gambar 4.18 Struktur code C++ Setelah program diperbaiki dan dicompile, maka tampilan hasil running akan tampak seperti gambar dibawah ini: Gambar 4.19 Hasil running


91 1.6 Kesimpulan dan Saran a. Kesimpulan Array dibedakan sesuai jurusannya masing-masing, kemudian dalam rak per raknya di kelompokan dengan karya atau jenis yang lebih spesifik. Oleh karena itu, Array dapat diartikan sebagai sekelompok data serupa yang disimpan dalam sebuah variabel. b. Saran Lebih memperhatikan penulisan program terutama pada titik koma dan huruf besar dan kecil karena kesalahan sedikit saja yang terdapat pada program dapat menyebabkan program tersebut tidak dapat dilajalankan. Serta lebih mempelajari tentang penyelesaian matematika.


92


93 BAB V POINTER 5.1 Pendahuluan a. Pointer Pointer atau alamat memori adalah variabel yang berisi alamat memori suatu nilai. Pointer berguna saat memindahkan data dalam jumlah besar melalui suatu fungsi. Sebagai contoh, variabel bertipe Integer memiliki nilai 4, maka sebuah pointer mengacu pada alamat memori tempat penyimpanan nilai 4, bukan pada nilai 4 itu sendiri.Pointer sangat erat hubungannya dengan array, sehingga pointer dapat menggantikan fungsi array variabel. Variabel dengan referensi atau alamat penunjuk yang sama terkait dan harus memiliki nilai yang sama. Ketika suatu nilai berubah, itu mempengaruhi variabel lain (yang memiliki referensi yang sama), yaitu. H. nilainya juga berubah. b. Operator pointer Ada dua operator yang digunakan pada tipe data pointer yaitu: 1. Operator Deference (&) Operator ini biasanya disebut dengan address of atau operator alamat. Dengan menggunakan operator deference (&) ini, suatu variabel akan menghasilkan alamat memori. Contoh : int x = 70 cout<<”&x


94 2. Operator Reference (*) Operator ini biasanya disebut value pointed by. Dengan menggunakan operator ini, kita dapat mengakses secara langsung nilai yang terdapat pada suatu alamat memori. Contoh: int x = 70 cout <<”*& 5.2 Tujuan Praktikum 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 Dev C++ Gambar 5.1 Tampilan aplikasi Dev C++ b. Tampilan awal akan tampak seperti dibawah ini:


95 Gambar 5.2 Tampilan awal masuk aplikasi Dev C++ c. Buatlah proram baru dengan cara File – New – Source, bisa juga dengan mengunakan Ctrl+N seperti gambar dibawah ini: Gambar 5.3 Membuat project baru d. Ketik source code seperti gambar dibawah ini:


96 Gambar 5.4 Struktur Code C++ e. Setelah menuliskan source, tekan tombol compile and run seperti gambar dibawah ini: Gambar 5.5 Proses Compile f. Akan muncul dialog untuk menyimpan program. Berikan nama sesuai dengan keiginan kalian, misal “program array ”kemudian save dengan ekstensi “cpp”.


97 Gambar 4.6 Proses Penyimpanan g. Setelah di save, akan muncul jendela yang menampilkan hasil program yang telah dibuat: Gambar 5.7 Hasil running h. Anda telah berhasil membuat program menghitung luas, keliling dan jari-jari lingkaran dengan bahasa pemograman C++ menggunakan Dev C++


98 5.4 Latihan Kegiatan Praktikum a. Latihan 1 1. Flowchart Gambar 5.8 Flowchart Char Penyelesaian: Flowchart diawali dengan menampilkan kepala program #include, kemudian dilanjutkan dengan medeklarasikan char const nama=Borland C++, input nama yang telah dideklarasikan. Kemudian masukan nama=”Visual C++” menggunakan simbol


99 porses, lalu dilanjutkan dengan meinginput nama program dan berakhir pada simbol terminal “Selesai”. 2. Program Buatlah program baru pada Dev C++ dengan cara klik file – new – source file atau tekan tombol Ctrl+N pada keyboard, kemudian ketik source code program dibawah ini #include <stdio.h> #include <conio.h> #include <iostream> using namespace std; int main() { char const *nama= "Borland c++"; cout<<"Nama Program ="<<nama<<endl; nama = "Visual C++"; cout<<"Nama Program ="<<nama<<endl; cout<<"================================"<<endl; cout<<"Nama : Adira Ramadani Anwar"<<endl; cout<<"NPM : 07352211060"<<endl; getch(); } Compile dan perbaiki program hingga dapat dijalankan


100 Gambar 4.9 Struktur Code C++ Setelah program diperbaiki dan dicompile, maka tampilan hasil running akan tampak seperti gambar dibawah ini: Gambar 4.10 Hasil running


101 b. Latihan 2 1. Flowchart Gambar 5.11 flowchart Input Nilai Penyelesaian: Gambar flowchart diawali dengan simbol terminal “mulai”, dilanjutkan dengan memasukan kepala program yaitu #include. Dilanjutkan dengan mendeklarasikann nilai Budi, caca, riki, lalu input nilai ketiganya. Selesai.


102 2. Program Buatlah program baru pada Dev C++ dengan cara klik file – new – source file atau tekan tombol Ctrl+N pada keyboard, kemudian ketik source code program dibawah ini: #include <stdio.h> #include <conio.h> #include <iostream> using namespace std; main(){ cout<<"Adira Ramadani Anwar"<<endl; cout<<"07352211050"<<endl; cout<<""<<endl; cout<<""<<endl; int Budi, caca, riki; Budi = 75; caca = 80; riki = 79; cout<<"Nilai Budi = "<<Budi<<endl; cout<<"Nilai caca = "<<caca<<endl; cout<<"Nilai riki = "<<riki<<endl; getch(); }


103 Compile dan perbaiki program hingga dapat dijalankan Gambar 5.12 Struktur Code C++ Setelah program diperbaiki dan dicompile, maka tampilan hasil running akan tampak seperti gambar dibawah ini: Gambar 5.13 Hasil running


104 5.5 Study Kasus a. Pointer dalam array 1. Flowchart pointer dalam array %3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20value%3D%22%26lt%3Bfont%20style%3D%26quot%3Bfont-size%3A%2013px%3B%26quot%3B%26gt%3BMulai%26lt%3B%2Ffont%26gt%3B%22%20style%3D%22rounded%3D1%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3BstrokeWidth%3D2%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22160%22%20y%3D%2250%22%20width%3D%22110%22%20height%3D%2240%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3E Gambar 5.14 flowchart pointer dalam array Penyelesaian: Flowchart diawali dengan simbol terminal “mulai”, kemudian dilanjutkan dengan deklarasi variabel char c[4] int I; menggunakan simbol proses. Decision for(i=0;


105 i<4; i++) melakukan perulangan sebanyak 4 kali, jika tidak maka akan diarahkan ke simbol terminal “Selesai”. 2. Program Buatlah program baru pada Dev C++ dengan cara klik file – new – source file atau tekan tombol Ctrl+N pada keyboard, kemudian ketik source code program dibawah ini : #include <iostream> #include <conio.h> using namespace std; int main() { char c[4]; int i; for(i=0; i<4; i++) { cout<<"Address of c[%d]=%x/n,i,&c[i]"<<endl; } cout<<"Nama : Adira ramadani Anwar"<<endl; cout<<"NPM : 07352211060"<<endl; getch(); }


106 Compile dan perbaiki program hingga dapat dijalankan Gambar 5.15 Struktur Code C++ Setelah program diperbaiki dan dicompile, maka tampilan hasil running akan tampak seperti gambar dibawah ini: Gambar 5.16 hasil running b. Operasi Aritmatika pada Pointer 1 Flowchart


107 Gambar 5.17 flowchart Penyelesaian: Gambar flowchart diawali dengan simbol terminal “mulai”, lalu dilanjutkan dengan memasukan int Nilai [4], *petunjuk menggunakan simbol input output. kemudian dianjutkan dengan simbol proses petunjuk=&Nilai[0], lalu Input alamat. Kemudian tampilkan hasi menggunakan simbol input output. selesai


108 2. Program Buatlah program baru pada Dev C++ dengan cara klik file – new – source file atau tekan tombol Ctrl+N pada keyboard, kemudian ketik source code program dibawah ini : #include <iostream> #include <conio.h> using namespace std; int main(){ //Operasi Aritmatika pada pointer int Nilai [4], *petunjuk; Nilai[0] = 70; Nilai[1] = 75; Nilai[2] = 80; Nilai[3] = 85; petunjuk=&Nilai[0]; cout<<"Nilai"<<*petunjuk<<"ada di alamat memori"<<petunjuk<<endl; cout<<"Nilai"<<*petunjuk<<"ada di alamat memori"<<petunjuk+1<<endl; cout<<"Nilai"<<*petunjuk<<"ada di alamat memori"<<petunjuk+2<<endl; cout<<"Nilai"<<*petunjuk<<"ada di alamat memori"<<petunjuk+3<<endl; cout<<""<<endl;


109 cout<<""<<endl; cout<<"Adira Ramadani Anwar"<<endl; cout<<"07352211050"<<endl; getch();} Compile dan perbaiki pogram hingga dapat dijalankan Gambar 5.18 Struktur code C++ Setelah program diperbaiki dan dicompile, maka tampilan hasil running akan tampak seperti gambar dibawah ini: Gambar 5.19 Hasil running


110 5.6 Kesimpulan dan Saran a. Kesimpulan Singkatnya pointer merupakan sebuah alamat memori yang berguna saat memindahkan data dalam jumlah besar melalui suatu fungsi. Pointer juga sangat erat hubungannya dengan array, sehingga pointer dapat menggantikan fungsi array variabel. Dalam pointer terdapat dua macam operator yang akan kita gunakan, yaitu Address-of (&) dan Dereference operator (*). b. Saran Untuk pemakaian pointer dapat dilakukan dengan menambahkan tanda (*) di depan nama variabel jika terdapat kesalahan dari pemakaian tersebut maka akan berakibat fatal terhadap suatu program tertentu.


111


112 BAB VI STACK 6.1 Pendahuluan a. Stack Stack merupakan salah satu implementasi dari Linked List. Stack merupakan sekumpulan data yang menggunakan konsep LIFO (Last In First Out) atau FILO (First In Last Out), yaitu data yang paling terakhir dimasukan ke dalam stack merupakan data yang pertama kali keluar dari stack, Konsep ini sering digunakan dalam pemrograman untuk membantu dalam mengatur data. Seperti tumpukan batu bata yang sedang turun dari mobil pasti yang diturunkan pertama pasti akan di susun menjadi tembok paling akhir, ini adalah contoh kecil dari sekian banyak contoh penerapan steck yang kita lakukan. b. Operasi pada Stack operasi dasar yang dilaksanakan dalam sebuah stack yaitu: 1. Operasi push (Menyisipkan data) 2. Operasi pop (menghapus data) Menghapus elemen yang terletak pada posisi paling atas stack, langkahlangkahnya trdapat sebagai berikut: a) Buat stack (create) b) Stack kosong (empty) c) Push (stack, info baru) dan, pop (stack, info pop)


113 6.2 Tujuan Praktikum a. Memahami konsep stack b. Mempraktikkan cara penggunaan stack 6.3 Langkah-Langkah Kegiatan Praktikum a. Bukalah aplikasi Dev C++ Gambar 6.1 Tampilan aplikasi Dev C++ b. Tampilan awal masuk aplikasi Dev C++ Gambar 6.2 Tampilan menu aplikasi Dev C++ c. Buatlah proram baru dengan cara File – New – Source, bisa juga dengan mengunakan Ctrl+N seperti gambar dibawah ini:


114 Gambar 6.3 Membuat project baru d. Ketik source code seperti gambar dibawah ini: Gambar 6.4 Struktur code C++


115 Gambar 6.5 Lanjutan Struktur Code C++ Gambar 6.6 Lanjutan Struktur Code C++


116 Gambar 6.7 Lanjutan Struktur code C++ e. Setelah menuliskan source, tekan tombol compile and run seperti gambar dibawah ini: Gambar 6.8 Proses compile f. Akan muncul dialog untuk menyimpan program. Berikan nama sesuai dengan keiginan kalian, misal “STACK ”kemudian save dengan ekstensi “cpp”. Gambar 6.9 Proses Penyimpanan g. Setelah di save, akan muncul jendela yang menampilkan hasil program yang telah dibuat:


117 Jika pilihan adalah 1, maka: Gambar 6.10 Hasil running Jika pilihan adalah 2, maka: Gambar 6.11 Hasil running Jika pilihan adalah 3, maka: Gambar 6.12 Hasil running


118 h. Anda telah berhasil membuat program stack dengan bahasa pemograman C++ menggunakan Dev C++ 6.4 Latihan Kegiatan Praktikum a. Latihan 1 Buatlah program baru pada Dev C++ dengan cara klik file – new – source file atau tekan tombol Ctrl+N pada keyboard, kemudian ketik source code program 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()) {


119 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()){ cout<< "\ndata kosong\n"<<endl; } else { cout<< "\ndata "<<Tumpukan.data [Tumpukan.top]<< "sudah terambil"<<endl; Tumpukan.top--; } } void PrintStack()


120 { 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"; cout<< "2.hapus (Pop)\n"; cout<< "3.keluar\n"; cout<< "masukan pilihan:"; cin>>pilihan;


121 switch (pilihan) { case 1: push(); break; case 2: pop(); break; case 3: cout << "Praktikum" << endl; cout << "Nama :Adira Ramadani Anwar" << endl; cout << "NPM : 07352211060 " << endl; return 0; break; default: cout << "pilihan tidak tersedia"<< endl; break; } system("cls"); }while("hoose !=3"); } Compile dan perbaiki program hingga dapat dijalankan


122 Gambar 6.13 Struktur Code C++ Gambar 6.14 Lanjutan Struktur Code C++


123 Gambar 6.15 Lanjutan Struktur Code C++ Gambar 6.16 Lanjutan Struktur Code C++


124 Setelah program diperbaiki dan dicompile, maka tampilan hasil running akan tampak seperti gambar dibawah ini: Jika pilihan tersebut adalah 1, maka: Gambar 6.17 Hasil running Jika pilihan tersebut adalah 2, maka: Gambar 6.18 Hasil running Jika pilihan tersebut adalah 3, maka:


125 Gambar 6.19 Hasil running 6.5 Study Kasus a. Study Kasus 1 1. Flowchart Gambar 6.20 flowchart study kasus 1


126 Gambar 6.21 Lanjutan flowchart study kasus 1


127 Gambar 6.22 Lanjuan flowchart Void push


128 Gambar 6.23 Lanjutan flowchart void pop


129 Gambar 6.24 Lanjutan flowchart void display Penyelesaian: Flowchart dimulai dengan simbol terminal, lalu dimasukan variabel yang di inginkan. Memasuki decision While untuk melanjutkan case yang di inginkan atau tidak sama sekali dan diberikan case berupa (enqueu, dequeue, display, dan exit) jika tidak maka pilihan tidak tersedia dan ditutup dengan getch(); sebagai


130 penyelesaiannya. kemudian dilanjutkan dengan if else void push, pop, display, exit. Selesai 2. Program Buatlah program baru pada Dev C++ dengan cara klik file – new – source file atau tekan tombol Ctrl+N pada keyboard, kemudian ketik source code program dibawah ini #include<stdio.h> #include<stdlib.h> #include <conio.h> typedef struct node { int data; struct node *link; }NODE; NODE *top = NULL; void push(); void pop(); void display(); int main() { int choice = 0; while(1) { printf("\n1.Push\n"); printf("\n2.Pop\n");


131 printf("3.Display\n"); printf("4.Quit\n\n"); printf("input pilihanmu : "); scanf("%d",&choice); switch(choice) { case 1 : push(); break; case 2: pop(); break; case 3: display(); break; case 4: printf("Nama : Adira Ramadani Anwar\n" ) ; exit (0); default: printf("\nPILIHAN TIDAK TERSEDIA\n"); } }


132 getch(); } void push() { NODE *temp; int info = 0; printf("Masukkan angka (0-9999) : "); scanf("%d",&info); temp = (NODE *) malloc(sizeof(NODE)); if (temp == NULL) printf("\nAlokasi Memori Gagal"); else { temp->data = info; temp->link = top; top = temp; printf(" Node telah dimasukkan di Top(Front) Berhasil !!\n"); } } void pop() { NODE *tmp; if(top == NULL)


133 printf("Tumpukan Kosong\n"); else { tmp = top; printf("Data yang muncul: %d\n",tmp->data); top = top->link; free(tmp); } } void display() { NODE *temp; if (top == NULL){ printf("Tumpukan Kosong !!!\n"); } else{ temp = top; printf("Stack :- \n"); while(temp != NULL) { printf("\n ____\n"); printf("|%4d|",temp->data); temp = temp->link;


Click to View FlipBook Version