89 source programnya seperti dibawah ini: #include<conio.h> #include<iostream> Using namespace std; 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;
90 cout<<” “<<endl; cout<<”Nama : Nurfahira Rambay M. Achiruddin”<<endl ; cout<<”NPM : 07352211059”<<endl ; getch(); } Compile dan perbaiki program sampai benar Gambar 4.16 struktur code Latihan C++ Setelah program diperbaiki dan decompile, maka tampilan hasil running akan tampak seperti gambar dibawah ini : Jika data yang dicari ditentukan :
91 Gambar 4.17 tampilan hasil running jika ditemukan. Jika data yang dicari tidak ditemukan : Gambar 4.18 tampilan hasil running jika tidak ditemukan d. 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:
92 Flowchart studi kasus 4: Flowchart 4.4 Studi Kasus 4 Penjelasan: Flowchart tersebut menggunakan simbol terminal sebagai awalan dan akhiran, pendeklarasian menggunakan simbol preparation, dan hasil pengeluaran nilai matrix menggunakan simbol input/output, selesai. source programnya seperti dibawah ini: #include<iostream> #include<conio.h>
93 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 : Nurfahira Rambay M. Achiruddin”<<endl ; cout<<”NPM : 07352211059”<<endl ; getch(); }
94 Compile dan perbaiki program sampai benar Gambar 4.19 Struktur kode Latihan C++ Setelah program diperbaiki dan di compile, maka tampilan hasil running akan tampak seperti gambar di bawah ini. Gambar 4.20 Tampilan hasil running C++
95 4.6. KESIMPULAN DAN SARAN 1. 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. Array 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. 2. Saran Array yang akan dipergunakan harus dideklarasikan terlebih dahulu. Ketika akan mendeklarasikan array kita harus memperhatika hal-hal berikut : a. Indeks array selalu dimulai dari 0 b. Mengetahui besaran, karena array tidak bisa diperbesar ataupun diperkecil c. Mengetahui tipe data yang ingin dimasukan kedalam array, karena jika inputan berbeda dengan initial array maka akan terjadi eror.
96
97 BAB V POINTER NAMA : NURFAHIRA RAMBAY M. ACHIRUDDIN NPM : 07352211059 PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS KHAIRUN TERNATE 2022
98 BAB V POINTER 5.1. Pendahuluan 5.1.1. Pengenalan Pointer 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.
99 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. 5.1.2 Cara Mengakses Pointer 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.
100 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 a. Bukalah aplikasi DevC++ melalui start menu : Gambar 5.1 Tampilan aplikasi DevC++. b. Tampilan awal tampak seperti gambar dibawah ini : Gambar 5.2 Tampilan awal DevC++.
101 c. Buatlah program baru dengan file-new-source atau gunakan CTRL+N atau seperti gambar dibawah ini : Gambar 5.3 Membuat Project baru 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 :
102 Gambar 5.5 Proses Compile f. Akan muncul pemberitahuan untuk menyimpan program. Beriikan nama sesuai dengan keinginan kalian. 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
103 h. Anda telah berhasil membuat program dengan Bahasa Pemrograman C++ menggunakan DevC++. 5.4. Latihan Kegiatan Praktikum 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<<"Nurfahira Rambay M. Achiruddin"<<endl; cout<<endl; cout<<"Nama Program ="<<nama<<endl; nama = "Visual C++";
104 cout<<"Nama Program ="<<nama<<endl; getch(); } Compile dan perbaiki program hingga benar. Gambar 5.8 Struktur Code program. Tampilan Setelah di Running. Gambar 5.9 Hasil Running
105 b. Latihan 2 (Pointer Variable) #include <conio.h> #include <iostream> using namespace std; main() { system("Color 0A"); cout<<"Nama : Nurahira Rambay M. Achiruddin"<<endl; cout<<"NPM : 07352211059"<<endl; cout<<endl; int ilham, amir, *raka; ilham = 75; amir = ilham; raka = &ilham; cout<<"Nilai ILHAM = "<<ilham<<endl; cout<<"Nilai AMIR = "<<amir<<endl;
106 cout<<"Nilai RAKA = "<<raka<<endl; getch(); } Compile dan perbaki program hingga benar Gambar 5.10 Struktur code program Tampilan setelah di running. Gambar 5.11 Hasil running
107 5.5. Studi Kasus a. Operasi Aritmatika Pada Pointer Flowchart operasi aritmatika Flowchart 5.1 Studi Kasus 1 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.
108 Berikut source code program operasi aritmatika: #include <iostream> #include <conio.h> using namespace std; main() { cout<<"Nama : Nurfahira Rambay M. Achiruddin"<<endl; cout<<"NPM : 07352211059"<<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
109 di alamat memori"<<(penunjuk+1)<<endl; cout<<"Nilai"<<*(penunjuk+2)<<"ada di alamat memori"<<(penunjuk+2)<<endl; cout<<” “<<endl; getch(); } Compile dan perbaiki hingga benar. Gambar 5.12 Struktur code program
110 Gambar 5.13 Hasil running b. Pointer Dalam Array Flowchart pointer dalam array Flowchart 5.2 Studi Kasus 2
111 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> using namespace std; main() { system("color 0A"); cout<<"Nama : Nurfahira Rambay M. Achiruddin"<<endl; cout<<endl; char c[4]; int i;
112 for(i=0;i<4; ++i) { printf("address of c[%d]=%x\n",i,&c[i]); } getch(); } Compile dan prbaiki program sampai benar. Gambar 5.14 Struktru code program
113 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
116 BAB VI STACK NAMA : NURFAHIRA RAMBAY M. ACHIRUDDIN NPM : 07352211059 PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS KHAIRUN TERNATE 2022
117 BAB VI STACK 6.1 Pendahuluan Stack atau Tumpukan adalah suatu struktur data yang terbentuk dari barisan hingga yang terurut dari satuan data. Pada Stack, penambahan dan penghapusan elemennya hanya dapat dilakukan pada satu posisi, yaitu posisi akhir stack. Posisi ini disebut Puncak atau Top dari stack. Sedangkan pengertia stack pada sturktur data adalah sebagai tumpukan pada benda, sekumpulan dat yang seolah-seolah diletakan diatas data yang lain, koleksi dari objekobjek homogen, atau suatu urutan elemen yang elemennya dapat diambil dan ditambah hanya pada posisi akhir (top) saja. Stack adalah bentuk khusus dari data, dimana node yang ditambahkan dalam list dan diambil dari list hanya pada kepalanya, atau dengan prinsip pengolahannya adalah lisat dan diambil dari last-in first-out (LIFO). Pada struktur ini ada dua fungsi utama, yaitu push (memasukkan node kedalam stuck), dan pop (mengambil node dari stack). Secara sederhana tumpukan bisa diartikan sebagai kumpulan data yang seolah-olah diletakan diatas data yang lain. Dalam suatu tumpukan akan dapat dilakukan operasi penambahan (penyisipan) dan pengambilan (penghapusan dan melalui ujung yang sama, ujung ini merupakan ujung atas tumpukan sebelum struktur data tumpukan ini di gunakan, dideklarasi dahulu dalam kamus data.
118 6.2 Tujuan Praktikum a. Memahami konsep stack b. Mempraktikan cara penggunaan stack C++ 6.3 Langkah-langkah kegiatan praktikum a. Bukalah aplikasi DevC++ melalui start menu Gambar 6.1 tampilan aplikasi dev C++ b. Tampilan awal tampak seperti berikut Gambar 6.2 Tampilan awal C++
119 c. Buatlah program baru dengan cara File - new source atau Ctrl+N seperti pada gambar dibawah ini Gambar 6.3 Membuat program baru d. Ketikan source code program seperti dibawah ini:
120 Gambar 6.4 Struktur kode C++ Gambar 6.5 struktur kode C++ e. Setelah menulis source code klik compile and run Gambar 6.6 proses compile
121 f. Akan muncul dialog untuk menyimpan program. Beri nama sesuai keinginan Gambar 6.7 proses menyimpan g. setelah klik save akan muncul jendela yang menampilkan hasil program stack yang telah dibuat Gambar 6.8 tampilan hasil running h. program telah berhasil dibuat.
122 6.4 Latihan kegiata Praktikum Buatlah program baru pada Dev C++ dengan cara klik file-new-source file atau tekan Ctrl+N kemudian ketik Source code program seperti dibawah ini: #include <iostream> #define MAX 10 using namespace std; struct stack { int top, data [MAX]; }Tumpukan; void init(){ Tumpukan.top = -1; } bool isempty(){ return Tumpukan.top == -1; } bool isfull(){
123 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()){ cout<< "\ndata kosong\n"<<endl; }
124 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(){
125 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;
126 case 3: cout << "bab 6 selesai" << endl; return 0; break; default: cout << "pilihan tidak tersedia"<< endl; break; } system("cls"); }while("hoose !=3"); }
127 Compile dan perbaiki program hingga benar Gambar 6.9 struktur kode latihan C++
128 Gambar 6.10 struktur kode latihan C++
129 Tampilan hasil runing Gambar 6.11 tampilan hasil running
130 6.5 Studi kasus a. Buatlah program Flowchart flowchart 6.1 Flowchart Studi Kasus 1
131 Penjelasan flowchart Dimulai dengan terminator dan header flowchart, masukan fungsi nya didalam simbol preparation. lalu fungsi untuk variabel while (1), tampilkan pilihan push, pop, display, quit, dan scanf, lalu masukan dalam system (choice) untuk case 1-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 diurutkan 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 tampilkan “stack overflow”, jika tidak maka else {printf(“\nstack element :\n”); untuk tampilan for (I = top; i>=0; i--) printf(%d\n”, stack_arr[i]; kemudian diselesaikan dengan getch (); #include <iostream> #include <conio.h> #include <stdio.h> #define MAX 5 int top = -1; int stack_arr[MAX]; void push (); void pop (); void display ();
132 int main() { int choice; while (1) { printf("\n1. Push\n"); printf("2. Pop\n"); 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;
133 case 4: exit(1); default: printf ("\nPILIHAN TIDAK TERSEDIA\n"); } } getch(); system ("cls"); } void push() { int pushed_item; if(top == (MAX-1)) printf("stack overflow\n"); else{ printf("\nEnter the item to be pushed in stack :"); scanf("%d",&pushed_item); top = top + 1; stack_arr[top] = pushed_item; } }
134 void pop(){ if(top == -1){ printf("Stack underflow\n"); } else{ printf("Popped element is : \n%d",stack_arr[top]); top = top -1; } } void display() { int i; if(top == -1) printf("stack is empty\n"); else{ printf("\nStack element :\n"); for(i = top; i>=0; i--) printf("%d\n", stack_arr[i]); } } Compile dan perbaiki hingga benar
135 Gambar 6.12 Struktur Kode Studi Kasus
136 Gambar 6.13 Struktu Kode Studi Kasus Gambar 6.14 Struktu Kode Studi Kasus Gambar 6.15 Tampilan Hasil Running
137 Gambar 6.16 Tampillan Hasil Running a. Buatlah program baru pada Dev C++ dengan cara klik file-new-source file atau tekan Ctrl+N kemudian ketik Source code program seperti dibawah ini: Flowchart
138 Flowchart 6.2 Studi Kasus 2 Penjelasan flowchart Dimulai dengan terminator dan header flowchart, masukan fungsi nya didalam simbol preparation. lalu fungsi untuk variabel while (1), tampilkan pilihan push, pop, display, quit, dan scanf, lalu masukan dalam system (choice) untuk case 1-4 ditambahkan default jika