PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 81 cout<<i<<"-->"<<huruf<<endl; i++; huruf++; } getch(); } Hasil eksekusi program diatas sebagai berikut: Gambar 3. 42 Contoh program while, program konversi angka ke huruf Gambar 3. 43 Hasil contoh program while, program konversi angka ke huruf
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 82 9. Contoh program Do-While, kelipatan 2 dengan batas angka 30 Algoritma: 1. Set nilai awal angka = 0 2. nilai angka ditambahkan 1 3. Cek kondisi apakah nilai angka%2==0, jika kondisi bernilai benar maka cetak nilai angka, jika salah maka dilanjutkan ke proses selanjutnya 4. Kemudian cek kondisi apakah angka<30, jika kondisi bernilai benar maka selanjutnya nilai i kembali ditambahkan 1 5. cek kondisi apakah nilai angka%2==0, jika ya maka cetak nilai angka, jika salah maka dilanjutkan ke proses selanjutnya 6. Kemudian cek kondisi apakah angka<30, jika kondisi bernilai benar maka selanjutnya nilai i kembali ditambahkan 1 7. Iterasi terus dilakukan hingga kondisi bernilai false 8. selesai. Flowchart:
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 83 Gambar 3. 44 flowchart contoh program Do-While, kelipatan 2 dengan batas angka 30 Penjelasan: Flowchart dimulai dengan simbol terminator untuk memulai program. Kemudian deklarasi variabel angka=0 menggunakan simbol preparation. Selanjutnya nyatakan variabel angka pada penyataan angka=angka+1 menggunakan simbol process. Kemudian nyatakan variabel angka pada pernyataan angka%2==0 menggunakan simbol decision. Jika NO maka lanjutkan ke proses selanjutnya. Jika YES maka tampilkan nilai angka menggunakan simbol input/output, lalu lanjutkan ke proses selanjutnya dengan nyatakan variabel angka pada pernyataan angka<30. Jika NO maka gunakan simbol terminator untuk mengakhiri program. Jika YES maka kembali nyatakan variabel angka pada
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 84 pernyataan angka=angka+1 menggunakan simbol process sehingga terjadi proses ulangan. Proses iterasi terus dilakukan hingga kondisi bernilai salah (false) atau NO. Kemudian terakhir gunakan simbol terminator untuk menandakan program telah selesai. Program dari flowchart diatas adalah sebagai berikut: #include<iostream> #include<conio.h> using namespace std; int main() { int angka=0; do { angka++; if(angka%2==0) cout<<angka<<""; } while (angka<30); getch(); } Hasil eksekusi program diatas sebagai berikut.
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 85 Gambar 3. 45Contoh program Do-While, kelipatan 2 dengan batas angka 30 Gambar 3. 46Hasil contoh program Do-While, kelipatan 2 dengan batas angka 30 3.4 Kesimpulan Dan Saran 3.4.1 Kesimpulan Pemilihan dan perulangan merupakan bagian dari ketiga struktur dasar algoritma yang dimulai dengan runtunan. Dalam sebuah proses pemilihan pada program, tidak
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 86 semua intruksi akan dikerjakan melainkan hanya instruksi yang memenuhi syarat saja, kemudian ada looping atau sebuah perulangan yang dimana sistem program ini memiliki berfungsi untuk membuat perintah yang ada di dalam baris program tersebut melakukan sebuah langkah yang berulang-ulang dan disesuaikan dengan suatu niai (batasan) tertentu. Dengan adanya perulangan dalam suatu bahasa pemrograman, dapat membantu programmer dalam menulis sebuah kode program tanpa menulisnya berulang kali, serta membantu program menjadi lebih ringan dikarenakan kode yang digunakan telah dikurangi atau diminimalisir 3.4.2 Saran Dalam membuat suatau program C++ secara dengan metode selection sebaiknya menggunakan intruksi yang sedikit sehingga tidak memerlukan waktu yang lama untuk dijalankan. Diharapkan agar seorang pengguna atau programmer dapat memanfaatkann metode-metode dari struktur dasar pemilihan (selection) dan perulangan (looping dengan baik dan benar
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 87
BAB IV ARRAY OLEH Ririn Muhammad 07352211008 PROGRAM STUDI INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS KHAIRUN TERNATE 2022
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 88 BAB IV ARRAY Array adalah suatu struktur data berupa sejumlah data sejenis (bertipe data sama) yang jumlahnya tetap dan diberi suatu nama tertentu, elemen-elemen array tersusun secara berderet dan dapat diakses secara random di dalam memori. Elemen-elemen array dapat diakses oleh program menggunakan suatu indeks tertentu secara acak ataupun berurutan. Pengisian dan pengambilan nilai pada indeks tertentu dapat dilakukan dengan mengeset nilai atau menampilkan nilai pada indeks yang dimaksud. Array terbagi dalam dua jenis yaitu array satu dimensi dan dua dimensi. 4.1 Array Dimensi Satu Pada array satu dimensi hanya terdapat satu baris dan bayak kolom. Deklarasi Array satu dimensi secara umum sebagai berikut. Gambar 4. 1 Penulisan deklarasi Array satu dimensi Keterangan: tipe_data : menyatakan jenis tipe data elemen larik (int, char, float, dll) nama_var_array : menyatakan nama variabel yang dipakai. ukuran : menunjukkan jumlah maksimal elemen larik/ banyak array. Untuk menginisialisasi array sama dengan memberikan nilai awal array pada saat didefinisikan, dengan cara sebagai berikut:
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 89 int nilai[6] = {1,3,5,7,9}; bisa disederhanakan sehingga menjadi : int nilai = {1,3,5,7,9}; Contoh diatas berarti anda memesan tempat di memori komputer sebanyak 5 tempat dengan indeks dari 0-4, dimana indeks ke-0 bernilai 1, ke-1 bernilai 3, dst, dan semua elemennya bertipe data integer. Tiga hal penting dalam array yang harus dipahami yaitu: 1. Index, dapat disebut dengan urutan, index pada array secara default dimulai dari 0 (nol). 2. Value, yang mengisi di setiap elemen array, dan elemen-elemen ini dapat diakses oleh program menggunakan suatu indeks tertentu secara acak ataupun berurutan. 3. Reference, alamat memori dari masing-masing elemen array. Gambar 4. 2Ilustrasi Array Satu Dimensi Contoh program menampilkan isi variabel array dimensi satu sebagai berikut. Contoh menampilkan isi variabel array dengan mendeklarasikan sekaligus memberi nilai awal array sebagai berikut.
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 90 Gambar 4. 3Contoh program menampilkan isi variabel array 1 Gambar 4. 4 Hasil contoh program menampilkan isi variabel array 1 Penjelasan: 1. Mendeklarasikan variabel array x dan sekaligus memberi nilai awal pada array 2. Menampilkan isi array satu persatu Contoh menampilkan isi variabel array dengan mendeklarasikan variabel array satu persatu sebagai berikut.
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 91 Gambar 4. 5 Contoh program menampilkan isi variabel array 2 Gambar 4. 6 Hasil contoh program menampilkan isi variabel array 2 Penjelasan: 1. Mendeklarasikan variabel array x sebanyak 5 (dihitung mulai 0) 2. Mengisi variabel array satu persatu 3. Menampilkan isi array satu persatu Contoh menampilkan isi variabel array dengan menggunakan perulangan perintah
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 92 For sebagai berikut. Gambar 4. 7 Contoh program menampilkan isi variabel array 3 Gambar 4. 8 Hasil contoh program menampilkan isi variabel array 3 Penjelasan : 1. Mendeklarasikan variabel array x dan sekaligus memberi nilai awal pada array 2. Menampilkan isi array dengan menggunakan perulangan perintah for Contoh menampilkan isi variabel array dengan memasukkan nilai variabel array sebagai berikut.
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 93 Gambar 4. 9 Contoh program menampilkan isi variabel array 4 Gambar 4. 10 Hasil contoh program menampilkan isi variabel array 4 Penjelasan : 1. Mendeklarasikan variabel array x sebanyak 5 (dihitung mulai 0) 2. Mengisi variabel array x[0] dengan 1 3. Mengisi variabel array x[1] dengan 3 4. Mengisi variabel array x[3] dengan 7 5. Mengisi variabel array x[2] dengan meminta data dari masukan keyboard 6. Mengisi variabel array x[4] dengan meminta data dari masukan keyboard 7. Menampilkan semua isi array dengan menggunakan perulangan perintah for
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 94 4.2 Array Dimensi Dua Array dua dimensi yang sering digambarkan sebagai sebuah matrik dimana array dua dimensi memiliki banyak baris dan banyak kolom. Deklarasi array dua dimensi secara umum: Gambar 4. 11 Penulisan deklarasi array dua dimensi Keterangan: tipe_data :menyatakan jenis tipe data elemen larik (int, char, float, dll) nama_var_array :menyatakan nama variabel yang dipakai. batas_baris :menyatakan jumlah/ukuran baris pada array batas_kolom :menyatakan jumlah/ukuran komlom pada array. Contoh : Inisialisasi atau memberikan nilai pada array hampir sama dengan variabel tunggal, hanya dalam memberikan nilai ini diperjelas dengan memberi nomor array. x[0][0] = -45; x[0][1]= 6; x[1][0]= 0; x[1][1]= 72; x[2][0]= 4; x[2][1]= 34; Untuk menginisialisasi array sama dengan memberikan nilai awal array pada saat didefinisikan.
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 95 int nilai[3][2] = {{8,-3},{9,0},{5,2}}; Contoh program menampilkan isi variabel array dimensi dua sebagai berikut. Contoh menampilkan isi variabel array dengan mendeklarasikan variabel array satu persatu sebagai berikut. Gambar 4. 12 Contoh program menampilkan isi variabel array 2 Penjelasan: 1. Mendeklarasikan variabel array x dan sekaligus memberi nilai awal pada array 2. Menampilkan isi array satu persatu Contoh menampilkan isi variabel array dengan mendeklarasikan sekaligus memberi nilai awal array sebagai berikut.
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 96 Gambar 4. 13 Contoh program menampilkan isi variabel array 2 Penjelasan: 1. int x[2][2]= { { 1,2},{3,4},}; Mendeklarasikan variabel x sebanyak 2 baris dan 2 kolom serta memberikan inisialisasi variabel array tersebut 2. int huruf[8][8] Mendeklarasikan array 2 dimensi dan memberi nilai awal Contoh menampilkan isi variabel array dengan menggunakan perulangan perintah For sebagai berikut.
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 97 Gambar 4. 14 Contoh program menampilkan isi variabel array 3 Gambar 4. 15 Hasil contoh program menampilkan isi variabel array 3
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 98 4.3 Latihan Kegiatan Praktikum 1. Latihan 1 Buatlah program baru pada Dev C++ dengan cara klik file – new – source file atau tekan tombol Ctrl+N pada keyboard, kemudian ketik program dibawah ini : #include<conio.h> #include<iostream> using namespace std ; int main() { //int ujian [5] = {90,95,78} ; int ujian [5] ; for (int k=0;k<3;k++){ cout<<" Masukkan data nilai ujian ["<<k<<"] = " ; cin>>ujian[k] ; } for (int j=0;j<3;j++){ cout<<"Data nilai ujian["<<j<<"] = "<<ujian[j]<<endl ; } getch() ; } Hasil eksekusi program diatas sebagai berikut.
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 99 Gambar 4. 16 Program latihan 1 Gambar 4. 17 Hasil program latihan 1 2. Latihan 2 Buatlah program baru pada Dev C++ dengan cara klik file – new – source file atau tekan tombol Ctrl+N pada keyboard, kemudian ketik program dibawah ini : #include <iostream> #include <conio.h> using namespace std; int main() { float data [3];
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 100 float data_total = 0; float total, rata; //input data ke array for (int k=0; k<3; k++) { cout<<"Masukan data ["<<k<<"] = "; cin>> data [k]; } //menghitung total nilai array for (int J=0; J<3; J++) { total = total + data [J]; } //menghitung rata-rata rata = total / 3; cout<<"Nilai Rata-Rata data pada Array = "<<rata<<endl; getch(); } Hasil eksekusi program diatas sebagai berikut.
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 101 Gambar 4. 18 Program latihan 2 Gambar 4. 19 Hasil program latihan 2
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 102 4.4 Studi Kasus 1. Buatlah sebuah program untuk menemukan data yang terdapat didalam element. Buatlah program baru dengan cara file – menu – source atau gunakan CTRL + N kemudian ketik programnya seperti dibawah ini: Flowchart: Gambar 4. 20 Flowchart program studi kasus 1
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 103 Penjelasan: Flowchart dimulai dengan simbol terminator untuk memulai program. Kemudian deklarasi variabel int ujian[5] menggunakan simbol preparation. Selanjutnya deklarasi variabel k=0 dan nyatakan variabel k pada penyataan k<5 menggunakan simbol decision. Jika YES maka tampilkan “masukkan data nilai ujian [“<<k<<]=” menggunakan simbol input/output, lalu input ujian[k] menggunakan simbol input/output pula, nyatakan variabel k pada pernyataan k=k+1 menggunakan simbol process kemudian nyatakan kembali nilai k pada pernyataan k<5 sehingga terjadi perulangan. Jika NO maka lanjutkan deklarasi j=0 dan nyatakan variabel j pada pernyataan j<5 menggunakan simbol decision. Jika YES maka tampilkan “data nilai ujian[“<<j<<”]=”ujian[j], lalu nyatakan variabel j pada pernyataan j=j+1, kemudian nyatakan kembali variabel j pada pernyataakn j<5 sehingga terjadi perulangan. Jika NO gunakan simbol terminator untuk menandakan program telah selesai. Program dari flowchart diatas sebagai berikut. #include <iostream> #include <conio.h> using namespace std; int main() { //inisialisasi array // int ujian[5]= {90,95,78,85}; int ujian[5]; //input data ke array for (int k=0;k<5;k++)
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 104 { 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; } getch(); } Hasil eksekusi program diatas sebagai berikut. Gambar 4. 21 Program studi kasus 1
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 105 Gambar 4. 22 Hasil program studi kasus 1 2. Buatlah sebuah program untuk menemukan data yang terdapat didalam element. Buatlah program baru dengan cara file – menu – source atau gunakan CTRL + N kemudian ketik programnya seperti dibawah ini:
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 106 Flowchart: Gambar 4. 23 Flowchart program studi kasus 2 Penjelasan:
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 107 Flowchart dimulai dengan simbol terminator untuk memulai program. Deklarasi variabel. Lakukan pemilihan untuk (int k=0;k<5) sebagai syarat jika benar maka tampilkan masukan data [<<k<<]. Lalu input data [k] dengan syarat k=k+1. Jika salah lakukan pemilihan kembali (int j=0;j<5) sebagai syarat jika benar maka proses rumus total=total+data(j). Jika salah maka proses rumus rata=total/5. Lalu tampilkan rata-rata pada pada array= rata. Terakhir gunakan simbol terminator untuk menandakan program telah selesai. Program dari flowchart diatas sebagai berikut. #include <iostream> #include <conio.h> using namespace std; main() { float data[5]; float rata, total = 0; //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++) {
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 108 total = total + data[j]; } //menghitung rata - rata rata = total / 5; cout<<"rata - rata data pada array = "<<rata<<endl; getch(); } Hasil eksekusi program diatas sebagai berikut. Gambar 4. 24 Program studi kasus 2
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 109 Gambar 4. 25 Hasil program studi kasus 2 3. Contoh program array 1 dimensi 3 Flowchart: Gambar 4. 26 Flowchart program studi kasus 3 Penjelasan: Flowchart dimulai dengan simbol terminator untuk memulai program. Kemudian deklarasi variabel int data[10] = {4, 1, 0, -9, 8, 5, -1, 2, 3, -7}, int elemen, ketemu, x menggunakan simbol preparation. Selanjutnya tampilkan “Data yang dicari : “
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 110 menggunakan simbol input/output lalu input nilai x menggunakan simbol input/output pula. Nyatakan variabel ketemu pada pernyataan ketemu=0 menggunakan simbol process. kemudian deklarasikan elemen=0 dan nyatakan variabel elemen pada penyataan elemen<=9 menggunakan simbol decision. Jika NO maka lanjut pada tahap berikut yakni pernyataan ketemu==0. Jika YES nyatakan varabel elemen pada pernyataan data[elemen]==x, jika YES maka masuk syarat ketemu=!ketemu;break; kemudian lanjut pada tahap berikut yakni pernyataan ketemu==0. Jika NO maka nyatakan variabel elemen pada pernyataan elemen=elemen+1, kemudian nyatakan kembali variabel elemen pada pernyataan elemen<=9 sehingga terjadi proses perulangan. Jika NO maka lanjut pada tahap berikut yakni pernyataan ketemu==0. Pada pernyaaan ketemu==0, nyatakan variabel ketemu pada pernyataan ketemu==0 menggunakan simbol decision. Jika YES maka tampilkan “Data ada di elemen : “ elemen lalu gunakan simbol terminator untuk menandakan program telah selesai. Jika NO maka tampilkan “Data tidak ditemukan “lalu gunakan simbol terminator untuk menandakan program telah selesai. Program dari flowchart diatas sebagai berikut. #include<iostream> #include<conio.h> using namespace std; int main() { int data[10] = {4, 1, 0, -9, 8, 5, -1, 2, 3, -7}; int elemen, ketemu, x;
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 111 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; getch(); } Hasil eksekusi program diatas sebagai berikut.
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 112 Gambar 4. 27 Program studi kasus 3 Hasil eksekusi program jika data ditemukan sesuai urutannya dan menampikan elemen. Gambar 4. 28 Hasil program studi kasus 3 Hasil eksekusi jika data tidak ditemukan Gambar 4. 29 Hasil program studi kasus 3
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 113 4. Contoh program Array dua dimensi Flowchart: Gambar 4. 30 Flowchart program studi kasus 4 Penjelasan: Flowchart dimulai dengan simbol terminator untuk memulai program. Deklarasi variabel. Deklarasi int matrix [3][4]={{5,10,1,11}},{{4,7,67,-9}},{9,0,45,3}}. Masukan syarat pemilihan int i=0;i<3. Jika tidak memenuhi maka proses selesai. Jika memenuhi masukan syarat pemilihan kedua int j=0;j<4 jika tidak memenuhi kembali ke proses i=i+1 lalu ke pemilihan int i=0;i<3 dan seleksi kembali. Jika sudah tidak memenuhi maka selesai. Jika
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 114 seleksi kedua memenuhi tampilkan mattix [i][j] lalu proses j=j+1 dan ke seleksi j=0;j<4 jika tidak maka proses i=i+1 lalu seleksi syarat i=0;i<3 seleksi tidak memenuhi maka proses selesai. Terakhir gunakan simbol terminator untuk menandakan program telah selesai. Program dari flowchart diatas sebagai berikut. #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; } getch(); } Hasil eksekusi program diatas sebagai berikut.
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 115 Gambar 4. 31 Program studi kasus 4 Gambar 4. 32 Hasil program studi kasus 4 4.5 Kesimpulan dan Saran 4.5.1 Kesimpulan Array adalah suatu struktur data berupa sejumlah data sejenis (bertipe data sama) yang jumlahnya tetap dan diberi suatu nama tertentu, elemen-elemen array tersusun secara berderet dan dapat diakses secara random di dalam memori. Array menggunakan indeks integer untuk menemukan urutan elemen-elemennya, dan juga elemen pertamanya
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 116 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. 4.5.2 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 error.
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 117
BAB V POINTER OLEH Ririn Muhammad 07352211008 PROGRAM STUDI INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS KHAIRUN TERNATE 2022
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 118 BAB V POINTER 5.1 Pointer 5.1.1 Pengertian Pointer Pointer adalah variabel yang berisi alamat memori sebagai nilainya dan berbeda dengan variabel biasa yang berisi nilai tertentu. Dengan kata lain, pointer berisi alamat dari variabel yang mempunyai nilai tertentu. Pointer tidak hanya berlaku untuk variabel, kita juga bisa menerapkannya ke fungsi, objek, dll. Implementasinya masih sama seperti yang kita lakukan dengan variabel. X Variabel x berisi data 10 alamat variabel x 0x55d7245e Sebuah pointer dapat berisi alamat dari variabel lain, dan akses langsung ke nilai dalam variabel pointer dapat dilakukan dengan menggunakan operator. Jadi, setiap variabel mempunyai data (isi data) dan alamat memori yang menunjukkan variabel tersebut disimpan dimana. Ada dua jenis pointer yang disediakan oleh borland c++, yaitu Operator Deference (&) Dan Operator Reference (*). 10 10
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 119 a. Operator Deference (&) Operator deference adalah operator yang memungkinkan kita untuk mendapatkan/melihat alamat memori milik variable, operator ini juga sering disebut sebagai address of operator (&). Penggunaannya adalah dengan meletakkan simbol “&” sebelum variabel yang berarti alamat. Ini akan memaksa kompiler untuk memberikan alamat memori alih-alih konten/nilai memori itu. b. Operator Reference (*) Operator reference adalah operator yang memungkinkan untuk mendapatkan konten/nilai memori dari alamat memori, operator ini biasa disebut dengan value pointed by. Operator ini akan menampilkan nilai yang terdapat pada alamat memori, bukan alamat memori. Selama program berjalan, kita bebas mengubah tujuan penunjuk, mengubahnya untuk menunjuk ke alamat memori variabel lain, atau menunjuk ke alamat memori yang bukan variabel. 5.1.2 Cara Membuat Pointer Setelah memahami fungsi dari kedua operator yang telah dijelaskan di atas. Sekarang Anda dapat membuat pointer menggunakan dua operator tersebut. Bentuk penulisan Gambar 5. 1 Bentuk Penulisan Contoh Penulisan
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 120 Gambar 5. 2 Contoh Penulisan Secara umum pointer sebenarnya adalah variabel, aturan untuk variabel juga berlaku untuk pointer, jadi tidak jauh berbeda dengan variabel. pointer hanya mendapatkan beberapa perbedaan, yaitu menambahkan dua operator akan menjadikan variabel tersebut sebagai variabel pointer. Untuk mengatur variabel pointer, kita hanya perlu menambahkan operator dereferencing sebelum identitas. Operator dereference tidak harus terikat dengan identitas, ia juga dapat ditempatkan setelah tipe data atau di antara tipe data dan identitas. Dari berbagai cara penulisan yang berbeda memiliki arti yang sama, yaitu operator deference hanya akan berlaku untuk satu variabel. 5.1.3 Cara Mengakses Pointer Variabel pointer adalah variabel yang memiliki alamat memori sebagai nilai variabel pointer. Dan di pointer kita dimungkinkan untuk mengakses nilai pointer itu sendiri dan nilai alamat memori yang dimiliki (ditunjuk) oleh pointer. Pointer adalah variabel, menggunakan pointer tidak jauh berbeda dengan menggunakan variabel. Untuk mendapatkan nilai pointer kita hanya perlu memanggil identitas pointer. plnt panggilan akan mengembalikan nilai penunjuk yang merupakan alamat memori dari variabel yang ditunjuk oleh pointer tersebut. Karena pointer hanya dapat memiliki nilai berupa alamat memori, untuk mengubah nilai pointer atau mengubah tujuan pointer, kita memerlukan operator address-of (&) pada operan sumber.
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 121 plnt = &myVar operan sumber mengembalikan alamat memori myVar, dan ini adalah nilai yang diminta oleh variabel pointer. variabel pointer hanya dapat meneriman alamat memori dari variabel yang memiliki tipe data yang sama. 5.2 Latihan Praktikum 1.Pointer Konstanta Flowchart Gambar 5. 3 flowchart pointer konstanta Penjelasan flowchart : Program dimulai dengan start lalu, menampilkan judul. Kemudian mendeklarasikan
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 122 variabel konstan yaitu *nama = “Borlan C++” bertipe data char. Kemudian tampilkan isi dari variabel nama. Lalu dilanjutkan dengan memproses nama = “ Visual C++ “. Dan tampilkan lagi isi dari variabel nama tersebut. Program selesai. Program Gambar 5. 4 contoh program pointer konstanta Gambar 5. 5 hasil running program pointer konstanta
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 123 2. Pointer Variabel Flowchart Gambar 5. 6 flowchart pointer deference Penjelasan: Program dimulai dengan start, lalu mendeklarasikan variabel ilham, amir, dan raka sebagai tipedata integer. Kemudian memproses ilham = 75, amir = ilham, dan raka = &ilham. Kemudian tampilkan nilai dari ilham, amir, dan raka. program selesai.
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 124 Program Gambar 5. 7 program pointer deference Gambar 5. 8 hasil running program pointer deference
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 125 5.3 Studi kasus 1. Pointer Flowchart Gambar 5. 9 flowchart operasi aritmatika pointer Penjelasan :
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 126 Program dimulai dengan start lalu menampilkan judul. Kemudian mendeklarasikan variabel nilai[3], dan *penunjuk sebagai tipe data integer. Kemudian memproses nilai[0] = 125, nilai[1] = 345, nilai[2] = 750. Dan memproses bahwa variabel penunjuk = %nilai[0]. Lalu program tampilkan nilai dari variabel *penunjuk << penunjuk, *(penunjuk + 1) << (penunjuk + 1), dan *(penunjuk + 2) << (penunjuk + 2). Program selesai. Program Gambar 5. 10 program operasi aritmatika Gambar 5. 11 running progam operasi aritmatika pointer
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 127 2. Pointer Dalam Array Flowchart Gambar 5. 12 flowchart pointer dalam array Penjelasan: Program dimulai dengan mendeklarasikan variabel c[4] sebagai tipedata char dan variabel i sebagai tipedata integer. Kemudian memproses i = 0. Dan masuk ke syarat perulangan jika i < 4 maka tampilkan “address of c[i]” << &c[i]. kemudian lakukan proses ++i. Jika syaratnya perulangannya tidak terpenuhi lagi maka program selesai.
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA LAB REKAYASA PERANGKAT LUNAK | TEKNIK INFORMATIKA UNKHAIR 128 Program Gambar 5. 13 program pointer dalam array Gambar 5. 14 hasil running pointer dalam array 5.4 Kesimpulan Dan Saran 5.4.1 Kesimpulan pointer berisi alamat dari variabel yang mempunyai nilai tertentu. Pointer tidak hanya berlaku untuk variabel, kita juga bisa menerapkannya ke fungsi, objek, dll. Implementasinya masih sama seperti yang kita lakukan dengan variabel. Sebuah pointer