PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 82 Dimulai dengan symbol terminal, lalu mendeklarasikan “angka, huruf dan i”, kemudian masukkan nilai angka menggunakan symbol input/output, kemudian masukkan kondisi i=1, huruf = A dan while (I <= angka) menggunakan symbol prepation, lalu print tampilkan angka ke huruf sesuai kondisi yang telah ditentukan kemudian selesai. 4. Langkah-langkah praktikum a. Bukalah software Dev C++ Gambar 3.30 jendela kerja Dev C++ b. Ketik source code programnya seperti dibawah ini #include <iostream> #include <conio.h> Using namespace std; Main() { Cout <<”Program konversi angka ke huruf”<<endl; Cout <<endl; Cout <<”masukkan angka : “;
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 83 Int angka, i; Char huruf ; Cin >>angka; Cout<<endl; I=1 Huruf = „A‟; While (i<= angka) { Cout <<i<<” - - > “ <<huruf<<endl; i++; huruf ++; } getch (); } c. Compile program dengan menekan F9
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 84 Gambar 3.31 Compile d. Jalankan program dengan menekan F10 Gambar 3.32 Hasil running e. Simpan file dengan praktikum 3
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 85 3.6 Kesimpulan Dan Saran 3.6.1 Kesimpulan Selection adalah proses seleksi atau pemilihan solusi masalah yang paling tepat. Sedangkan Looping adalah sebuah urutan perintah yang secara menerus diulang hingga suatu kondisi tercapai. 3.6.2 Saran Struktur percabangan atau selection memungkinkan melakukan aksi jika suatu syarat dipenuhi. Suatu aksi akan dikerjakan oleh program apabila kondisi yang didefinisikan untuk aksi tersebut bernilain benar (True). Sebaliknya bila kondisi tidak terpenuhi atau salah (False) maka program akan melakukan aksi lain (jika ada) atau langsung keluar dari blok pemilihan. Sedangkan dalam perulangan harus ada variabel dimana variabel tersebut yang bertugas mengontrol perulangan hingga batas apa atau berapa perulangan bisa dilakukan.
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 88 BAB IV ARRAY 4.1 Pendahuluan 4.1.1 Array Array merupakan kumpulan dari nilai-nilai data yang bertipe sama dalam urutan tertentu yang menggunakan nama yang sama. Letak atau posisi dari elemen array ditunjukkan oleh suatu index. Dilihat dari dimensinya array dapat dibagi menjadi Array dimensi satu, array dimensi dua dan array multi-dimensi. Setiap elemen array dapat diakses melalui indeks. Dalam bahasa C indeks dimulai dari 0 (nol). Itu berarti dengan menggunakan array jika kita ingin menyimpan lima nilai bertipe data int kita tidak perlu mendeklarasikan lima variabel yang berbeda dengan tipe data int, kita cukup mendeklarasikan satu variabel array dengan tipe data int. Seperti halnya penggunaan variabel, array pun sebelum digunakan harus dideklarasikan terlebih dahulu.Pada bahasa C pendeklarasian array adalah sebagai berikut: Bentuk umum : 4.1.2 Tipe_array nama_array [ukuran]; tipe_array : adalah tipe data yang dapat ditampung oleh array. nama_array : nama variabel array yang dideklarasikan. [ukuran] : banyaknya nilai yang dapat ditampung oleh array (banyaknya elemen array). 4.2 Tujuan Praktikum a. Mempraktikkan cara penggunaan array satu dimensi dan dimensi banyak .
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 89 b. Membuat file kerja dengan Bahasa C++ c. Mempraktikkan elemen array satu dimensi dan dimensi banyak ke dalam C++ 4.3 Latihan Kerja Praktikum 4.3.1 Buatlah sebuah program array 1 dimensi. Menginputkan nilai ke variabel array kemudian menampilkannya. 1. Flowchart Penjelasan : Program dimulai dengan mendeklarasikan variabel ujian[5] atau memiliki 5 data dengan tipe data integer. lalu program menampilkan nama, npm, dan judul bab. Lalu program mendeklarasikan variabel k = 0 sebagai tipe data integer. Kemudian program masuk ke syarat perulangan jika k < 5 maka input nilai k sebanyak 5 kali atau syarat tersebut tidak terpenuhi lagi. Setelah syarat tadi sudah tidak terpenuhi maka dengan mendeklarasikan variabel j = 0 dengan tipe data integer. Lalu program akan masuk ke syarat perulangan baru jika j < 5 maka tampilkan data-data yang telah diinputkan tadi mulai dari data indeks ke-0 hingga data indeks ke-4 atau sampai syaratnya tidak terpenuhi lagi. 2. Buatlah program baru dengan cara File – menu – source atau gunakan CTRL + N 3. Selanjutnya ketik source programnya seperti dibawah ini: #include <iostream> using namespace std; int main(){
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 90 //inisialisasi array // int ujian[5]= {90,95,78,85}; int ujian[5]; cout << "| Nama : Dea Revananda |" << endl; cout << "| NPM : 07352211027 |" << endl; cout << "| Judul: Array 1 Dimensi |" << endl; cout << " ----------------------------- " << endl; //input data ke array for (int k=0;k<5;k++){ cout<<"masukkan data nilai ujian["<<k<<"] = "; cin>>ujian[k]; } //tampil data array for (int j=0;j<5;j++){ cout<<"data nilai ujian["<<j<<"] = "<<ujian[j]<<endl; } return 0; } 4. Compile program dengan menekan F9
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 91 Gambar 4.1 compile 5. Running programnya dengan menekan F11 Gambar 4.2 Hasil running
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 92 4.4 Study Kasus 4.4.1 Latihan Hasil kerja Praktikum I 1. Tools yang digunakan Dev C++ 2. Buatlah sebuah program untuk menghitung jumlah rata-rata dari nilai yang ada di dalam variabel array. 3. Flowchart Gambar 4.3 flowchar array 1 dimensi Penjelasan: Input data [k] mulai Float Data [5] Output Dea Revananda NPM: 07352211027 Judul: Array 1 dimensi Float rata, total = 0 Int K = 0 K < 5 1 K++ 1 Int j = 0 K++ j < 5 Rata = total / 5 Total = total + data [j] Output rata Selesai tru False tru False
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 93 Program dimulai dengan mendeklarasikan variabel ujian[5] atau memiliki 5 data dengan tipe data integer. Lalu program mendeklarasikan variabel k = 0 sebagai tipe data integer. Kemudian program masuk ke syarat perulangan jika k < 5 maka input nilai k sebanyak 5 kali atau syarat tersebut tidak terpenuhi lagi. Setelah syarat tadi sudah tidak terpenuhi maka dengan mendeklarasikan variabel j = 0 dengan tipe data integer. Lalu program akan masuk ke syarat perulangan baru jika j < 5 maka tampilkan data-data yang telah diinputkan tadi mulai dari data indeks ke-0 hingga data indeks ke-4 atau sampai syaratnya tidak terpenuhi. 4. Lankah-langkah ptaktikum a. Bukalah software Dev C++ Gambar 4.4 jendela keja Dev C++ b. Ketik source code berdasarkan algoritma #include <iostream>
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 94 using namespace std; int main(){ float data[5]; float rata, total = 0; cout << "| Nama : Dea Revananda |" << endl; cout << "| NPM : 07352211027 |" << endl; cout << "| Judul: Array 1 Dimensi |" << endl; cout << " ----------------------------- " << endl; //input data ke array for (int k=0;k<5;k++){ cout<<"masukkan data["<<k<<"] = "; cin>>data[k]; } //menghitung total nilai pada 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; return 0; } c. Compile program dengan menekan F9
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 95 Gambar 4.5 compile d. Jalankan program dengan menekan F10 Gambar 4.6 hasil running e. Simpan file dengan praktikum 1 4.4.2 Laporan Hasil Kerja Praktikum 2
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 96 1. Tools yang digunakan Dev C++ 2. Buatlah sebuah program untuk menemukan data yang terdapat didalam element 3. Flowchart Gambar 4.7 Flowchart Mencari sebuah data Penjelasan: mulai For (elemen = o ; elemen) Input x Selesai ditemukan Tidak ditemukan Data [elemen] == x If (ketemu == 0) Int data [0] [4] = {4,1,0.-9.8,-1,2,3,-7} Int elemen, ketemu x Ketemu = ! ketemu
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 97 Flowchart diatas menjelaskan cara mencari sebuah data dengan cara mendeklasarikan data, elemen, ketemu dan x, kemudian input nilai x setelah itu masukkan nilai kondisi dan bandingkan, jika IF (ketemu == 0) maka data di temukan, dan kondisi bernilai salah maka data tidak ditemukan 4. Langkah-langkah praktikum a. Bukalah software Dev C++ Gambar 4.8 jendela kerja Dev C++ b. Ketik source code programnya #include <iostream> using namespace std; int main(){ cout << "| Nama : Dea Revananda |" << endl; cout << "| NPM : 07352211027 |" << endl;
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 98 cout << "| Judul: Array 1 Dimensi |" << endl; cout << " ----------------------------- " << endl; 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; } return 0; } c. Compile program dengan menekan F9
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 99 Gambar 4.9 compile d. Jalankan program dengan menekan F10 Gambar 4.10 hasil runnig
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 100 Gambar 4.11 hasil running e. Simpan file dengan nama praktikum 2 4.4.3 Laporan praktikum 1. Tools yang digunakan Dev C++ 2. Buatlah sebuah program matrix array 2 dimensi 3. Flowchart
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 101 Gambar 4.12 Flowchart Perkalian matrix penjelasan: Flowchart diatas menjelaskan cara perkalian matrix dengan cara mendeklarasikan int matrix [3] [4] beserta nilainya kemudian masukkan kondisi pertama, for (int i = 0, i < 3; i++) dan kondisi kedua for (int j : 0 < 4 ; j++). Menggunakan symbol prepation, setelah itu tampilkan hasil matriks [i] [j], akhir dengan symbol terminal. 4. Langkah-langkah praktikum a. Bukalah software Dev C++ Gambar 4.13 jendela kerja Dev C++ b. ketik source kode programnya #include <iostream> using namespace std; int main(){ cout << "| Nama : Dea Revananda |" << endl; cout << "| NPM : 07352211027 |" << endl;
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 102 cout << "| Judul: Array 1 Dimensi |" << endl; cout << " ----------------------------- " << 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; } return 0; } c. Compile program dengan menekan F9 Gambar 4.14 compile
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 103 d. Jalankan program dengan menekan F10 Gambar 4.15hasil running e. Simpan program dengan nama praktikum 3
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 104 4.5 Kesimpulan Dan Saran 4.5.1 Kesimpulan Array merupakan kumpulan dari nilai-nilai data yang bertipe sama dalam urutan tertentu yang menggunakan nama yang sama. Letak atau posisi dari elemen array ditunjukkan oleh suatu index. Dilihat dari dimensinya array dapat dibagi menjadi Array dimensi satu, array dimensi dua dan array multi-dimensi. Setiap elemen array dapat diakses melalui indeks. Dalam bahasa C indeks dimulai dari 0 (nol). 4.5.2 Saran Array yang akan dipergunakan harus dideklarasikan terlebih dahulu. Ketika akan mendeklarasikan array kita harus memperhatika hal-hal berikut : Indeks array selalu dimulai dari 0 Mengetahui besaran, karena array tidak bisa diperbesar ataupun diperkecil Mengetahui tipe data yang ingin dimasukan kedalam array, karena jika inputan berbeda dengan initial array maka akan terjadi eror.
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 106 BAB V POINTER 5.1 Pendahuluan 5.1.1 Pointer Pointer adalah suatu variabel penunjuk, berisi nilai yang menunjuk alamat suatu lokasi memori tertentu. Jadi pointer tidak berisi nilai data, melainkan berisi suatu alamat memori. Lokasi memori tersebut bisa diwakili sebuah variabel atau juga berupa alamat memori secara langsung. 1. Ada dua operator yang digunakan pada tipe data pointer a. 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 = 45; cout << &x; Pada program di atas, akan ditampilkan alamat memori dari variabel x, bukan nilai x. b. 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 = 45; cout <<*&x; Pada program di atas, akan ditampilkan nilai dari alamt memori &x.
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 107 2. Cara mengakses pointer Variabel pointer adalah variabel yang memiliki alamat memori sebagai nilai dari variabel pointer tersebut. Dan pada pointer kita dimungkinkan untuk mengakses nilai dari pointer itu sendiri dan mengakses nilai dari alamat memori yang dimiliki(ditunjuk) oleh pointer. Pointer merupakan variabel, untuk mengakses pointer tidak jauh beda dengan cara mengakses variabel. Untuk mengakses nilai dari pointer kita hanya cukup memanggil identiatas dari pointer tersebut. pInt pemanggilan itu akan menghasilkan nilai dari pointer yang berupa alamat memori dari variabel yang ditunjuk oleh pointer tersebut. Karena pointer hanya dapat mememiliki nilai berupa alamat memori, untuk mengubah nilai dari pointer atau mengubah tujuan dari pointer kita membutuhkan operator address-of (&) pada operand sumber. pInt = &myVar operand sumber akan menghasilkan alamat memori dari myVar, dan hal itu merupakan nilai yang dibutuhkan oleh variabel pointer. Variabel pointer hanya dapat meneriman alamat memori dari variabel yang memiliki tipe data yang sama. 5.2 Tujuan praktikum pointer ++ a. Mengetahui cara penggunaan operator pada pointer b. Mampu mempraktekkan struktur pointer pada program C++ c. Membuat file kerja dengan bahasa program C++
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 108 5.3 Langkah-langkah praktikum pointer ++ a. Tampilan awal Dev C++ Gambar 5.1 Tampilan Dev C++ b. Ketik source kode program Gambar 5.2 Struktur kode C++ c. Hasil running
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 109 Gambar 5.3 Hasil running 5.4 Latihan kegiatan praktikum 5.4.1 Latihan 1 (Pointer konstanta) #include <stdio.h> #include <conio.h> #include <iostream> using namespace std; main() { cout<<"Nama : Dea Revananda"<<endl; cout<<"NPM : 07352211027"<<endl; cout<<"================================"<<endl; char const *nama= "Borland c++"; cout<<"Nama Program ="<<nama<<endl;
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 110 nama = "Visual C++"; cout<<"Nama Program ="<<nama<<endl; getch(); } Gambar 5.4 compile Gambar 5.5 Hasil running 5.4.2 Latihan 2 (Pounter variabel)
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 111 #include <stdio.h> #include <conio.h> #include <iostream> #include <windows.h> using namespace std; main() { cout<<"Nama : Dea Revananda<<endl; cout<<"NPM : 07352211027"<<endl; cout<<"================================="<<endl; int eza, dika, *iki; eza = 75; dika = eza; iki = &eza; cout<<"Nilai KIBOS = "<<eza<<endl; cout<<"Nilai SAKTI = "<<dika<<endl; cout<<"Nilai SUSI = "<<iki<<endl;
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 112 getch(); } Gambar 5.6 Struktur kode program Gambar 5.7 Hasil running 5.5 Study kasus 5.5.1 Operasi Aritmatika pada pointer 1. Tools yang digunakan
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 113 Dvev++ 2. buatlah sebuah program untuk menghitung jumlah rata-rata dari nilai yang ada di dalam aritmatika pada pointer 3. flowchart Gambar 5.8 flowchart Mulai Int nilai[3], *penujuk Nilai[0] = 125 Nilai[1] = 345 Nilai[2] = 750 Penunjuk = & nilai[0] Selesai Tampilkan Nilai[0] ada didalam memori petunjuk Nilai[1] ada didalam memori petunjuk+1 Nilai[2] ada didalam memori petunjuk+2
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 114 Penjelasan Flowchart : Dimulai dengan simbol terminal,mendeklarasi Int nilai [3], *penunjuk, nilai [0] = 125, nilai [1] = 345, nilai [2] = 750, penunjuk = &nilai [0] menggunakan simbol proses, lalu tampilkan nilai [1] ada di dalam memori penunjuk +1, dan nilai [2] ada di dalam penunjuk +2 menggunakan simbol input/output. Diakhiri dengan symbol terminal. 4. Langkah-langka praktikum a. Bukalah software Dev++ Gambar 5.9 tampilan Dev C++ b. Ketik source code berdasarkan algoritma #include <iostream> #include <conio.h> using namespace std; main() { cout<<"Nama : Dea Revananad"<<endl; cout<<"NPM : 07352211027"<<endl;
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 115 cout<<"=================================="<<endl; int nilai[3], *penunjuk; nilai[0]=125; nilai[1]=345; nilai[2]=750; 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; getch(); } c. Compile program dengan menekan F9 Gambar 5.10 Struktur kode program
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 116 d. Jalankan program dengan menekan F10 Gambar 5.11 Hasil running 5.5.2 Pointer Dalam Array 1. Tools yang digunakan Dev C++ 2. Buatlah sebuah program untuk menghitung jumlah rata-rata dari nilai yang ada di pointer dalam array. 3. Flowchart
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 117 Gambar 5.12 flowchart Penjelasan Flowchart : Dimulai dengan menggunakan simbol terminal, kemudian mendeklarasi Char C[4], lalu memasukkan kondisi for (int i=0; i<4; ++i) mengunakan simbol preparation, lalu print address menggunakan simbol input/output, dan akhiri menggunakan simbol terminal. 4. Langkah –langkah praktikum a. Bukalah software Dev C++ Mulai Char C[4] For(Int i=0; i<4;; ++1 Print Address Selesai False True
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 118 Gambar 5.13 tampilan Dev C++ b. Ketik source code berdasarkan algoritma #include <iostream> #include <conio.h> using namespace std; main() { cout<<"Nama : Dea Revananda"<<endl; cout<<"NPM : 07352211027"<<endl; cout<<"=============================="<<endl; char c[4]; int i; for(i=0;i<4;++i) { printf("Address of c[%d]=%x\n",i,&c[i]);
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 119 } getch(); } c. Compile program dengan menekan F9 Gambar 5.14 Struktur kode program d. Jalankan program dengan menekan F10 Gambar 5.15 Hasil running
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 120 5.6 Kesimpulan dan saran 5.6.1 Kesimpulan Suatu variabel yang bertipe pointer tidaklah berisi data melainkan alamat suatu data. Tipe variable pointer sama dengan tipe yang dikenal oleh variable biasa, misalnya int, float, char dan sebagainya. nama dari variabel pointer juga mengikuti ketentuan nama variable biasa. perbedaan variabel pointer dengan variable biasa yaitu penggunaan tanda asterisk (*) didepan nama varibel pada waktu deklarasi. 5.6.2 Saran Penggunaan pointer pada proses program harus benar-benar diperhatikan. Sedikit saja kesalahan dalam menggunakan pointer akan mengakibatkan kesalahan fatal pada program. Karena pointer bisa langsung menunjukan pada lokasi memori, apabila lokasi yang ditunjuk salah, berarti data yang diambil juga akan salah, dan sudah tentu program anda akan menjadi salah juga.
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 122 BAB VI STACK 6.1 Pendahuluan 6.1.1 stack Stack adalah sebuah kumpulan data dimana data yang diletakkan di atas data yang lain. Dengandemikian stack adalah struktur data yang menggunakan konsep LIFO (Last In First Out). Dengan demikian, elemen terakhir yang disimpan dalam stack menjadi elemen pertama yangdiambil. Dalam proses komputasi, untuk meletakkan sebuah elemen pada bagian atas daristack, maka dilakukan operasi push. Dan untuk memindahkan dari tempat yang atas tersebut,maka dilakukan operasi pop. Berikut ini adalah operator-operator atau nama method yang biasa digunakan dalam pemrograman algoritma stack. PUSH : penyisipan (Memasukkan elemen). POP : penghapusan (Mengeluarkan elemen puncak). IsEmpty : operator yang memeriksa apakah stack kosong. IsFull : operator yang memeriksa apakah stack penuh. Clear : operator untuk menghapus semua elemen didalam stack. 6.2 Tujuan praktikum a. Memahami konsep Stack b. Mempraktikan cara penggunaan Stack dalam C++ 6.3 Latihan Kerja Praktikum
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 123 6.3.1 Buatlah program stack dengan menggunakan array 1. Buatlah program baru dengan cara File – menu – source atau gunakan CTRL + N 2. Selanjutnya ketik source programnya seperti dibawah ini: /* Program of stack using array*/ #include <iostream> using namespace std; #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("| Nama : Dea Revananda |\n"); printf("| NPM : 07352211027 |\n"); printf("| Judul: Stack |\n");
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 124 printf(" ----------------------------- \n"); if (top == -1){ cout<< "\n STACK IS EMPTY" <<endl; } else if (top == (MAX - 1)){ cout<<"\n STACK IS FULL" <<endl; } else { cout<<"\n PLEASE PUSH/POP DATA" <<endl; } printf("\n 1. 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();
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 125 break; case 3: display(); break; case 4: printf("\n ==== PROGRAM SELESAI ====\n"); exit(1); default: printf("\n PILIHAN TIDAK TERSEDIA\n"); } getch(); system("cls"); } return 0; } void push() { int pushed_item; if(top == (MAX - 1)){ printf("Stack Overflow\n"); } else{ printf("\nEnter the item to be pushed in stack : ");
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 126 scanf("%d",&pushed_item); top = top + 1; stack_arr[top] = pushed_item; } } void pop() { if(top == -1){ printf("Stack Underflow\n"); } else{ printf("Popped element is : %d\n",stack_arr[top]); top = top - 1; } } void display(){ int i; printf("==================="); if(top == -1){ printf("\n| Stack is empty |\n"); } else {
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 127 printf("\n| Stack elements: |\n"); for(i = top; i >=0; i--){ cout << "| [ " << stack_arr[i] << " ] |\n"; } } printf("==================="); } 3. Compile program dengan menekan F9 Gambar 6.1 Compile
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 128 Gambar 6.2 lanjutan compile
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 129 Gambar 6.3 lanjutan compile Lanjutan 6.4 lanjutan compile 4. Running programnya dengan menekan F11 Gambar 6.5 Hasil Running
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 130 Gambar 6.6 Lanjutan Hasil Running Gambar 6.7 Lanjutan Hasil Running Gambar 6.8 Lanjutan Hasil Running 6.4 Study Kasus 6.4.1 Latihan hasil kerja praktikum 1. Tools yang digunakan
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 131 Dev C++ 2. Buatlah program stuck 3. Flowchart Gambar 6.9 flowchart Gambar 6.9 flowchart Penjelasan: Output Dea Revananda 07352211027
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 132 Program dimulai dengan mendeklarasikan variabel data dengan tipe data integer. Dan mendeklarasikan *link dengan struct node. Dan mendeklarasikan NODE *top = NULL. Lalu program memanggil fungsi push(), pop(), dan display(). Kemudian mendeklarasikan variabel choice = 1 dengan tipedata integer. Kemudian masuk proses penginputan nilai ke variabel choice. Kemudian masuk ke seleksi syarat jika inputan yang diterima adalah 1 maka jalankan fungsi push(). Jika inputan yang diterima adalah 2 maka jalankan fungsi pop(). Jika inputan yang diterima adalah 3 maka jalankan fungsi display(). Jika inputan yang diterima adalah 4 maka program selesai. Jika inputan yang diterima selain dari syarat di atas maka tampilkan “pilihan tidak tersedia” lalu program akan melakukan perulangan secara terus menerus kecuali nilai yang diinputkan adalah 4 karena program akan selesai. 4. Langkah-langkah praktikum a. Bukalah software Dev C++ Gambar 6.10 jendela kerja Dev C++