Anda di halaman 1dari 77

LAPORAN AWAL

PRAKTIKUM STRUKTUR DATA

LAPORAN PERTEMUAN KE-1

Disusun oleh:
Nama: Rizky Fauzi
NIM: 191011400265
Kelas: 04TPLP003

PRODI TEKNIK INFOMATIKA


FAKULTAS TEKNIK
UNIVERSITAS PAMULANG
2021
Tugas Pendahuluan Pertemuan 1
Soal :

1. jelaskan perbedaan array dengan variabel biasa !


2. Apakah yang dimaksud dengan array !
3. Jelaskan perbedaan array satu dimensi, dua dimensi, dan tiga dimensi !
4. buatlah program sederhana menggunakan array tiga dimensi !

Jawaban :

1. array adalah sekumpulan elemen yang bertipe sama dan dinyatakan dengan
nama yag sama.
2. variabel array telah memiliki lokasi yang telah di tentukan didalam memori,
sedangkan variabel biasa tidak, dan juga perbedaan saat pendeklarasian.
3. – array satu dimensi: elemen array yang hanya memiliki satu buah baris /
kolom dan hanya dapat di akses oleh program menggunakan satu indeks
tertentu.

- array dua dimensi: elemen array yang memiliki baris dan kolom dan sering
digambarkan sebagai sebuah matriks atau bentuk grid.

-array tiga dimensi: elemen array yang memiliki baris, kolom dan ukuran
lebih banyak dari pada array dua dimensi, ini adalah array peluasan dari
array dua dimensi dan dapat dikembangkan ke lebih dari dua dimensi.

4. Source code:
#include
using namespace std;int main()
{
cout<<endl;
cout<<"\tARRAY 3 DIMENSI\n\n";
char data [2][3][6] = {“1”, “2”, “3”, “4”, “5”, “6”};
int i,j;
for(i=0; i<2; i++)
{
for(j=0; j<3; j++)
{
cout<<data[i][j]<<" ";
}
cout<<"\n\n";
}
return 0;
} Output:
LAPORAN AKHIR
PRAKTIKUM STRUKTUR DATA

LAPORAN PERTEMUAN KE-1

Disusun oleh:
Nama: Rizky Fauzi
NIM: 191011400265
Kelas: 04TPLP003

PRODI TEKNIK INFOMATIKA


FAKULTAS TEKNIK
UNIVERSITAS PAMULANG
2021
Tugas Praktikum Pertemuan 1

Souce code:
#include<iostream>
#include<conio.h>
using namespace std;
int main()

int nilai[12]={8,12,20,15,7,5,6,4,32,3};

int i, jumlah= 0;

float rata_rata;

//menghitung jumlah

for (i=0; i<10;i++)

jumlah +=nilai[i];

rata_rata =(float) jumlah/10;

//mencetak elemen array


cout<<"\n\nDeretan Bilangan = ";

for(i=0;i<10;i++)

cout<<nilai[i]<<" ";

//mencetak harga jumlah

cout<<"\njumlah bilangan ="<<jumlah;

cout<<"\nrata-rata bilangan = "<<rata_rata;

getch();

Output:
Tugas Akhir Pertemuan 1

Source code: (Dengan nim 191011400265)

#include<iostream>

#include<conio.h>

using namespace std;

int main()

int nilai[12]= {1,9,1,0,1,1,4,0,0,2,6,5};

int i, jumlah=0;

float rata_rata;
//menghitung jumlah

for(i=0; i<12; i++)

jumlah+=nilai[i];

rata_rata= (float)jumlah/12;

//mencetak elemen array

cout<<"\n\nDeretan bilangan= ";

for(i=0;i<12;i++)

cout<<nilai[i]<<" ";

//mencetak harga jumlah

cout<<"\nJumlah bilangan= "<<jumlah;


cout<<"\nRata-rata bilangan= "<<rata_rata;

getch();

Output:
LAPORAN AWAL
PRAKTIKUM STRUKTUR DATA

LAPORAN PERTEMUAN KE-2

Disusun oleh:
Nama: Rizky Fauzi
NIM: 191011400265
Kelas: 04TPLP003

PRODI TEKNIK INFOMATIKA


FAKULTAS TEKNIK
UNIVERSITAS PAMULANG
2021
Tugas Pendahuluan Pertemuan 2
Soal.
1. Apa yang dimaksud dengan Structure?
2. Jelaskan kelebihan sebuah program menggunakan Structure !
3. Buatlah contoh program sederhana menggunakan Structure !
4. Buah Contoh program sederhana kombinasi Array dan Structure !
Jawab:
1. Structure merupakan kemampuan elemen data yang digabungkan
menjadi satu kesatuan, dengan kata lainnya structure merupakan bentuk
struktur data yang dapat menyimpan variabel - variabel dalam satu nama.
Masing - masing elemen data dikenal dengan sebutan field.
2. Kelebihan Sebuah program yang menggunakan structure yaitu untuk
mempermudah sebuah program dalam mendeklarasikan variabel dan
lebih ter-struktur.

3. Source code:

#include<iostream>

using namespace std;

main()

struct Mahasiswa

int Nim;

char Nama[30];

char Almt[50];

};
cout<<"Nama : aw"<

cout<<"NIK : 484848477"<

Mahasiswa Mhs;

cout<<"Masukan data Mahasiswa "<

cout<<"Masukan Nim : ";cin>>Mhs.Nim;

cout< : ";cin>>Mhs.Nama;

cout<>Mhs.Almt;

cout<

cout<<"NIM : "<

cout<<"NAMA : "<

cout<<"ALAMAT : "<

return 0;

4. Source code:

#include <iostream>

#include <cstdlib>

#include <conio.h>

#include <iomanip>
using namespace std;

struct TINGGAL{

char jalan[50];

int kode_pos;

char kota[50];

};

struct TANGGAL{

char tanggal[5];

char bln[10];

char thn[4];

};

struct BIODATA{

char NIP[15],nama[25],jabatan[10],agama[10], unit_kerja[50];

TANGGAL tanggal_mulai_kerja;

TINGGAL alamat;

TANGGAL tanggal_lahir;

};
main()

BIODATA pegawai[5];

int i,a;

cout<<“Masukkan Jumlah data inputan (MAX 5) :”;cin>>a;

for(i=0; i<a; i++){

system(“cls”);

cout<<“NIP : “;cin>>pegawai[i].NIP;

cout<<“Nama : “;cin>>pegawai[i].nama;

cout<<“Jabatan : “;cin>>pegawai[i].jabatan;

cout<<“Agama : “;cin>>pegawai[i].agama;

cout<<“—>Tanggal Lahir (dd\mm\yyyy)\n”;

cout<<“Tanggal : “;cin>>pegawai[i].tanggal_lahir.tanggal;

cout<<“Bulan : “;cin>>pegawai[i].tanggal_lahir.bln;

cout<<“Tahun : “;cin>>pegawai[i].tanggal_lahir.thn;

cout<<“—>Alamat \n”;

cout<<“Jalan : “;cin>>pegawai[i].alamat.jalan;

cout<<“Kota : “;cin>>pegawai[i].alamat.kota;

cout<<“Kode Pos : “;cin>>pegawai[i].alamat.kode_pos;

cout<<“—>Tanggal Mulai \n”;

cout<<“Tanggal : “;cin>>pegawai[i].tanggal_mulai_kerja.tanggal;
cout<<“Bulan : “;cin>>pegawai[i].tanggal_mulai_kerja.bln;

cout<<“Tahun : “;cin>>pegawai[i].tanggal_mulai_kerja.thn;

cout<<“Unit Kerja : “;cin>>pegawai[i].unit_kerja;

system(“cls”);

cout<<“———–DATA PEGAWAI———–“<<endl;

for(i=0; i<a; i++){

cout<<“NIP : “<<pegawai[i].NIP<<endl

<<“Nama : “<<pegawai[i].nama<<endl

<<“Jabatan : “<<pegawai[i].jabatan<<endl

<<“Agama : “<<pegawai[i].agama<<endl

<<“Tanggal Lahir : “<<pegawai[i].tanggal_lahir.tanggal<<“-“

<<pegawai[i].tanggal_lahir.bln<<“-“

<<pegawai[i].tanggal_lahir.thn<<endl

<<“Alamat : “<<pegawai[i].alamat.jalan<<“, “

<<pegawai[i].alamat.kota<<” – “

<<pegawai[i].alamat.kode_pos<<endl

<<“Tanggal Mulai : “<<pegawai[i].tanggal_mulai_kerja.tanggal<<“-“

<<pegawai[i].tanggal_mulai_kerja.bln<<“-“

<<pegawai[i].tanggal_mulai_kerja.thn<<endl

<<“Unit Kerja : “<<pegawai[i].unit_kerja<<endl


<<“———————————-“<<endl;

getch();

system(“PAUSE”);

Kesimpulan materi array: Array adalah tipe data terstruktur yang berfungsi untuk
menyimpan sejumlah data yang tipenya sama. Bagian yang menyusun array
disebut dengan isi atau elemen array, masing-masing elemen bisa diakses melalui
indeks array.

Array Satu Dimensi : elemen array yang hanya memiliki satu buah baris atau
kolom dan hanya dapat diakses oleh program menggunakan suatu indeks tertentu.

Array Dua Dimensi : elemen array yang hanya memiliki satu buah baris atau
kolom dan sering digambarkan sebagai sebuah matriks atau bentuk grid.
LAPORAN AKHIR
PRAKTIKUM STRUKTUR DATA

LAPORAN PERTEMUAN KE-2

Disusun oleh:
Nama: Rizky Fauzi
NIM: 191011400265
Kelas: 04TPLP003

PRODI TEKNIK INFOMATIKA


FAKULTAS TEKNIK
UNIVERSITAS PAMULANG
2021
Tugas Praktikum Pertemuan 2

Source code:

#include<iostream>

#include<conio.h>

using namespace std;

int main()

int nilai[10];

int i, jumlah = 0;

float Rata_rata;

//membaca dan menghitung jumlah

for (i=0 ; i<10 ; i++)

cout<<"Masukan elemen ke-"<<i<<"=";

cin>>nilai [i];

jumlah+=nilai [i];

Rata_rata= (float) jumlah / 10;

//mencetak elemen array

cout<<"\n\nDeretan Bilangan =";

for (i=0;i<10;i++)
{

cout<<nilai[i]<<"";

//mencetak harga jumlah

cout<<"\nJumlah Bilangan ="<<jumlah;

cout<<"\nRata_rata Bilangan ="<<Rata_rata;

getch();

Output:

Tugas Akhir Pertemuan 2


Buatlah program untuk menjumlahan 2 buah matriks, masing-masing
matriks mempunyai ordo yang sama!

Source code:

#include <iostream>

#include <conio.h>

#include <iomanip>

using namespace std;

int main()

int i, j, baris, kolom, m1[10][10], m2[10][10], hasil[10][10];

cout<<endl;

do

cout<<"Jumlah Baris = ";cin>>baris;

cout<<"Jumlah Kolom = ";cin>>kolom;

while

((baris>10)||(kolom>10));

cout<<"\nMatrix A"<<endl;

for(i=0;i<baris;i++)
for(j=0;j<kolom;j++)

cout<<"data ["<<i<<","<<j<<"] = ";cin>>m1[i][j];

cout<<"\nMatrix B"<<endl;

for(i=0;i<baris;i++)

for(j=0;j<kolom;j++)

cout<<"data ["<<i<<","<<j<<"] = ";cin>>m2[i][j];

for(i=0; i<baris; i++)

for(j=0; j<kolom; j++)

hasil[i][j] = m1[i][j] + m2[i][j];

cout<<endl;

cout<<"\tMatrix A + Matrix B = Hasil\n";

for(i=0; i< baris; i++)

cout<<"\n\t";for(j=0; j<kolom; j++)cout << setw(3) << m1[i][j];


cout<<" ";for(j=0; j<kolom; j++)cout << setw(6) << m2[i][j];

cout<<"\t";for(j=0; j<kolom; j++)cout << setw(3) << hasil[i][j];

cout<<endl;}

getch();

Output:

LAPORAN AWAL
PRAKTIKUM STRUKTUR DATA

LAPORAN PERTEMUAN KE-3

Disusun oleh:
Nama: Rizky Fauzi
NIM: 191011400265
Kelas: 04TPLP003

PRODI TEKNIK INFOMATIKA


FAKULTAS TEKNIK
UNIVERSITAS PAMULANG
2021
Tugas Pendahuluan Pertemuan 3
Soal

1. Apa yang dimaksud pointer!

2. Apa yang dimaksud dengan variabel pointer?

3. Sebutkan dan jelaskan jenis jenis operator pointer!

4. Buatlah contoh program sederhana menggunakan pointer!

Jawaban:

1. Pointer adalah suatu variabel yang berisi alamat memori dari variasi variabel
lain. Alamat ini merupakan lokasi dari variabel lain didalam memori, dengan kata
lainpointer berisi alamat dari variabel yang mempunyai nilai tertentu.

2. Variabel pointer berarti variabel yang berisi alamat memori suatu nilai.

3.a. Operator deference (&): Variabel akan ditempatkan karena penempatan suatu
variabel ditemukan oleh system operasi, untuk suatu keperluan tertentu terkadang
kita harus mengetahui alamat suatu variabel didalam memori,untuk memperoleh
alamat dari suatu variabel dapat kita lakukan dengan bentuk.

b. Operator Reference (“): Digunakan untuk mengakses secara langsung nilai


yang terdapat didalam alamat yang merupakan nilai dari variabel pointer,
dilakukan dengan menambhakan operator reference didepan nama variabel, agar
menerjemahkan nilai sebenarnya dari suatu variabel.

4. #include "stdio.h"

#include "conio.h"

main ()

int x, *alamat_x;

x=200;
alamat_x = &x;

printf ("\n Nilai variabel x adalah : %d",x);

printf ("\n Variabel x tersebut disimpan pada alamat memori : %p", alamat_x);

getch();

Kesimpulan materi structure: Structure adalah kumpulan elemen data yg


digabungkan menjadi satu kesatuan. Dengan katalain, structure merupakan bentuk
struktur data yg dapat menyimpan variable dengan satu nama. Masing-masing
elemen data dikenal dengan field.

Bentuk umum:

struct nama_struct

     <tipe_data> nama_field_1;

     <tipe_data> nama_field_2;

     ...

     <tipe_data> nama_field_n;

}
LAPORAN AKHIR
PRAKTIKUM STRUKTUR DATA
LAPORAN PERTEMUAN KE-3

Disusun oleh:
Nama: Rizky Fauzi
NIM: 191011400265
Kelas: 04TPLP003

PRODI TEKNIK INFOMATIKA


FAKULTAS TEKNIK
UNIVERSITAS PAMULANG
2021
Tugas Praktikum Pertemuan 3

Buatlah program untuk struktur data Nilai yg terdiri dari NIM, Nama,
Nilai_tugas, Nilai_UTS, Nilai_UAS, Nilai_Akhir, Nilai_Huruf.
Ketentuan:

1. Nilai akhir: 20% x Nilai_tugas + 35% x Nilai_uts + 45% x Nilai_UAS


2. Nilai huruf: 85 < Nilai_akhir < 100 A
70 < Nilai_akhir < 85 > B
55 < Nilai_akhir < 70 > C
40 < Nilai_akhir < 55 > D
1 < Nilai_akhir < 40 > E

Source code:

#include<iostream>

using namespace std;

struct mahasiswa

char nim[20];

char nama[50];

float nilai_tugas, nilai_uts, nilai_uas;

float nilai_akhir;

char nilai_huruf;

};

int main()

mahasiswa mhs;

cout<<"\tINPUT DATA MAHASISWA"<<endl;

cout<<"=================================="<<endl;
cout<<"Nama Mahasiswa: "; cin.getline(mhs.nama, 50);

cout<<"NIM: "; cin.getline(mhs.nim, 20);

cout<<"Nilai Tugas: "; cin>>mhs.nilai_tugas;

cout<<"Nilai UTS: "; cin>>mhs.nilai_uts;

cout<<"Nilai UAS: "; cin>>mhs.nilai_uas;

mhs.nilai_akhir= (0.2*mhs.nilai_tugas)+(0.35*mhs.nilai_uts)
+(0.45*mhs.nilai_uas);

if(mhs.nilai_akhir>=85)

mhs.nilai_huruf='A';

else if(mhs.nilai_akhir>=70)

mhs.nilai_huruf='B';

else if(mhs.nilai_akhir>=55)

mhs.nilai_huruf='C';

else if(mhs.nilai_akhir>=40)

mhs.nilai_huruf='D';
}

else if(mhs.nilai_akhir>=0)

mhs.nilai_huruf='E';

cout<<endl;

cout<<"=================================="<<endl;

cout<<"\tDATA MAHASISWA"<<endl;

cout<<"=================================="<<endl;

cout<<"Nama Mahasiswa: "<<mhs.nama<<endl;

cout<<"NIM: "<<mhs.nim<<endl;

cout<<"Nilai Tugas: "<<mhs.nilai_tugas<<endl;

cout<<"Nilai UTS: "<<mhs.nilai_uts<<endl;

cout<<"Nilai UAS: "<<mhs.nilai_uas<<endl;

cout<<"Nilai Akhir: "<<mhs.nilai_akhir<<endl;

cout<<"Nilai Huruf: "<<mhs.nilai_huruf<<endl;

Output:
Tugas Akhir Pertemuan 3

Buatlah program untuk membaca dan mencetak biodata pegawai dengan


menggunakan 1)struktur Biodata yg terdiri dari NIP, Nama, Alamat,
Jabatan, Agama,Tanggal_Lahir, Tanggal_Mulai Kerja, Unit Kerja,
2)struktur TINGGAL yg terdiri dari Jalan, Kode_Pos, Kota dan 3)struktur
TANGGAL yg terdiri dari Tanggal, Bulan, Tahun. Gunakan Array Of
Struct!

Source code:

#include<iostream>

using namespace std;

struct data

char nip[20], nama[50];

char jabatan[30], agama[10], unit_kerja[50];

int alamat, tgl_lhr, tgl_mulai_kerja;

};

struct tinggal

char jalan[50];

int kode_pos;

char kota[15];

};

struct tanggal
{

int tanggal, tahun;

char bulan[10];

};

int main()

data bd;

tinggal tl;

tanggal tgl, tgl_mulai;

cout<<"INPUT DATA KARYAWAN"<<endl;

cout<<"==================================="<<endl;

cout<<"NIP: "; cin.getline(bd.nip, 20);

cout<<"Nama: "; cin.getline(bd.nama, 50);


cout<<"==================================="<<endl;

cout<<"alamat: "<<endl;

cout<<"Jalan: "; cin.getline(tl.jalan, 50);

cout<<"Kota: "; cin>>tl.kota;

cout<<"Kode Pos: "; cin>>tl.kode_pos;

cout<<"==================================="<<endl;

cout<<"Jabatan: "; cin>>bd.jabatan;

cout<<"Agama: "; cin>>bd.agama;

cout<<"==================================="<<endl;

cout<<"Tanggal lahir: "<<endl;


cout<<"Tanggal: "; cin>>tgl.tanggal;

cout<<"Bulan: "; cin>>tgl.bulan;

cout<<"Tahun: "; cin>>tgl.tahun;

cout<<"==================================="<<endl;

cout<<"Tanggal mulai kerja: "<<endl;

cout<<"Tanggal: "; cin>>tgl_mulai.tanggal;

cout<<"Bulan: "; cin>>tgl_mulai.bulan;

cout<<"Tahun: "; cin>>tgl_mulai.tahun;

cout<<"==================================="<<endl;

cout<<"Unit kerja: "; cin>>bd.unit_kerja;


cout<<endl<<endl;

cout<<"DATA KARYAWAN"<<endl;

cout<<"==================================="<<endl;

cout<<"NIP: "<<bd.nip<<endl;

cout<<"Nama: "<<bd.nama<<endl;

cout<<"Alamat: "<<tl.jalan<<" Kode Pos: "<<tl.kode_pos<<",


"<<tl.kota<<endl;

cout<<"Jabatan: "<<bd.jabatan<<endl;

cout<<"Agama: "<<bd.agama<<endl;

cout<<"Tanggal lahir: "<<tgl.tanggal<<" "<<tgl.bulan<<"


"<<tgl.tahun<<endl;

cout<<"Tanggal mulai kerja: "<<tgl_mulai.tanggal<<"


"<<tgl_mulai.bulan<<" "<<tgl_mulai.tahun<<endl;
cout<<"Unit Kerja: "<<bd.unit_kerja<<endl;

Output:
LAPORAN AWAL
PRAKTIKUM STRUKTUR DATA

LAPORAN PERTEMUAN KE-4

Disusun oleh:
Nama: Rizky Fauzi
NIM: 191011400265
Kelas: 04TPLP003

PRODI TEKNIK INFOMATIKA


FAKULTAS TEKNIK
UNIVERSITAS PAMULANG
2021
Tugas Pendahuluan Pertemuan 4

Soal.

1. Apa yang dimaksud dengan fungsi?

2. Jelaskan yang dimaksud dengan pemanggilan secara nilai ( call by value ) dan
pemanggilan secara referensi ( call by reference )

3. Jelaskan yang dimaksud dengan variabel lokal, Varabel eksternal atau global,
dan variabel statis

4. Buatlah contoh program sederhana menngunakan fungsi!

Jawaban:

1. Fungsi merupakan suatu bagian dari program yang dimaksudkan untuk


mengerjakan suatu tugas tertentu dan letaknya terpisah dari program yang
memanggilnya. Dalam setiap program bahasa C++, minimal terdapat satu
fungsi yaitu fungsi main(). Fungsi banyak diterapkan dalam program-
program C++ yang terstruktur.
2. Pengertian Pemanggilan Secara Nilai (Call by Value) Dan Secara Referensi
(Call by Reference) adalah metode yang menyalin data (nilai) dari argumen
yang memanggil fungsi ke parameter dari fungsi tersebut. akibatnya jika ada
perubahan nilai pada parameter fungsi tidak akan berpengaruh pada nilai
aslinya.
3. Variabel Lokal: adalah variabel yang nama dan nilainya hanya dikenal
disuatu blok statement tertentu saja atau didalam suatu fungsi.
Variabel Eksternal atau Global: adalah variabel yang didefinisikan diluar
fungsi sehingga dikenal oleh semua fungsi.
Variabel Statis: adalah variabel yang hanya dapat diakses pada yang
mendefinisikannya. variabel tidak hilang setelah eksekusi berakhir.
4. Contoh mencari luas segitiga menggunakan fungsi void
Source code:
#include <iostream.h>
#include <conio.h>

void luas(int &ls, int a, int t)


{ ls = 0.5*a*t;}

main(){
int al,tg,hsl;
cout<<"Alas    = ";cin>>al;
cout<<"Tinggi = ";cin>>tg;
luas(hsl,al,tg);
cout<<"Luas Segitiga = "<<hsl;
getch();
}

Kesimpulan materi 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.
Operator pointer: 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:

- Operator Dereference ( & )

- Operator reference ( * )
LAPORAN AKHIR
PRAKTIKUM STRUKTUR DATA

LAPORAN PERTEMUAN KE-4

Disusun oleh:
Nama: Rizky Fauzi
NIM: 191011400265
Kelas: 04TPLP003

PRODI TEKNIK INFOMATIKA


FAKULTAS TEKNIK
UNIVERSITAS PAMULANG
2021
Tugas Praktikum Pertemuan 4

Menjalankan program
Source code:
#include<stdio.h>
#include<conio.h>
#include<iostream>
using namespace std;
main()
{
int Nilai [] = {45, 23, 50, 8, 12, 10, 15};
int *Ptr_Nilai;
int i;
Ptr_Nilai = Nilai;
cout<<"\nNilai Ptr_Nilai"<<Ptr_Nilai;
cout<<"\nAlamat Array Nilai"<<Ptr_Nilai;
cout<<"\nNilai Yang Ada Pada Alamat
"<<Ptr_Nilai<<"Adalah"<<*Ptr_Nilai;
cout<<"\nElemen Array Indeks Pertama "<<Nilai [0];
cout<<"\nElemen Array ( Dengan Array ) :";
for (i=0;i<7;i++)
cout<<Nilai[i]<<" ";//Mencetak Elemen Array
cout<<"\n\nElemen Array ( Dengan Pointer ) :";
for (i=0;i<7;i++)
cout<<*( Nilai )<<" ";//Mencetak Elemen Array
getch ( );
}
Output:
Tugas Akhir Pertemuan 4
Buatlah program menggunakan kombinasi antara pointer dengan
array 2 dimensi!
Source code:
#include <iostream>
#include <conio.h>
#include <windows.h>
using namespace std;

void DisplayNumbers(char *Nbr[], int r, int c);

int main()

{
system("COLOR F0");
char number[2][5] = { { 'R', 'I', 'Z', 'K', 'Y'}, { 'F', 'A', 'U', 'Z', 'I' } };
char *pNumbers[2];

*pNumbers = number[0];

for(int i = 0; i < 5; i++)


(*pNumbers)[i] = number[0][i];

*(pNumbers+1) = number[1];

for(int i = 0; i < 5; i++)


(*(pNumbers+1))[i] = number[1][i];
cout<<"PROGRAM ARRAY DUA DIMENSI DENGAN
POINTER"<<endl;
cout<<"\nMencetak semua elemen yang terdapat pada array dua dimensi
dengan pointer"<<endl;
cout<<"\nDaftar Huruf"<<endl;
DisplayNumbers(pNumbers, 2, 5);

return 0;
}

void DisplayNumbers(char *nbr[], int rows, int columns)

for(int i = 0; i < rows; i++)

for(int j = 0; j < columns; j++)

cout << "\nIndeks ke - [" << i << "][" << j << "]: " << (*(nbr+i))[j];

Output:
LAPORAN AWAL
PRAKTIKUM STRUKTUR DATA

LAPORAN PERTEMUAN KE-5

Disusun oleh:
Nama: Rizky Fauzi
NIM: 191011400265
Kelas: 04TPLP003

PRODI TEKNIK INFOMATIKA


FAKULTAS TEKNIK
UNIVERSITAS PAMULANG
2021
Tugas Pendahuluan Pertemuan 5

Soal
1. Apa yang dimaksud dengan searching!
2. Jelaskan perbedaan dari sequential search, binary search, dan
interpolation search sebagai metode-metode searching!
3. Jelaskan apa saja yang mempengaruhi kecepatan proses pencarian data di
dalam penyimpanan data!
4. Buatlah contoh program sederhana menggunakan searching!

Jawaban

1. Pencarian merupakan proses yang mendasar di dalam pemrograman.


Pencarian (Searching) merupakan tindakan untuk mendapatkan suatu data
dalam kumpulan data berdasarkan satu kunci (key) atau acuan data.
2. Sequential Search : proses membandingkan setiap elemen array dari awal
sampai akhir secara berurutan sampai elemen yang dicari ditemukan.

Binary Search : metode pencarian suatu data atau elemen didalam suatu
array dengan kondisi data dalam keadaan terurut.

Interpolation Search : metode yang dilakukan pada data yang sudah


terurut berdasarkan kunci tertentu.

3. - Menyimpan intruksi selama proses berjalan, ukuran sesuai dengan


jumlah data yg dapat diproses dalam satu waktu.
- Banyaknya data yg disimpan mempengaruhi kecepatan data yg akan
dicari di dalam memori.

4. Source code:
#include <conio.h>
#include <iostream.h>
main(){
int c,i,posisi;
int A[20]={3,2,4,10,20,1,5,8,7,9,6,5,11,12,14,13,16,15,17,19};
cout<<“Data : “;
for(i=0;i<20;i++){
cout<<A[i]<<” “;
}
cout<<“\nData yang ingin dicari : “;
cin>>c;
i=0;
posisi=0;
while(i<19 && A[i]!=c){
i++;
}
if (A[i]!=c){
cout<<“Maaf data yang dicari tidak ada”;
}else if(posisi=i+1)
cout<<“ditemukan pada posisi ke “<<posisi;
getch();
}

Output:

Kesimpulan materi fungsi: fungsi adalah sekumpulan perintah yang dapat


menerima argumen input dan dapat memberikan hasil output yang dapat
berupa nilai ataupun sebuah hasil operasi. Fungsi merupakan suatu
bagian dari program yang dimaksudkan untuk mengerjakan suatu tugas
tertentu dan letaknya terpisah dari program yang memanggilnya.
Pengertian deklarasi fungsi berbeda dengan definisi fungsi. Suatu
deklarasi fungsi adalah judul fungsi yang sederhana yang diakhiri dengan
tanda semicolon (;) atau sering disebut dengan Prototipe fungsi.
Sedangkan definisi fungsi adalah fungsi yang lengkap, terdiri dari judul
dan isinya. Suatu deklarasi fungsi disebut juga sebagai prototipe fungsi.
LAPORAN AKHIR
PRAKTIKUM STRUKTUR DATA

LAPORAN PERTEMUAN KE-5

Disusun oleh:
Nama: Rizky Fauzi
NIM: 191011400265
Kelas: 04TPLP003

PRODI TEKNIK INFOMATIKA


FAKULTAS TEKNIK
UNIVERSITAS PAMULANG
2021
Tugas Praktikum Pertemuan 5

Source code:
#include<iostream>
#include<conio.h>
using namespace std;

void Tukar (int *a, int *b);


main()
{
int a=8, b=5;
cout<<"Nilai a dan b sebelum ditukar :"<<a<<"&"<<b;
Tukar (&a, &b);
cout<<"\nNilai a dan b sebelum ditukar :"<<a<<"&"<<b;
getch();
}

void Tukar (int *x, int *y)


{
int z;
z = *x;
*x = *y;
*y = z;
}

Output:
Tugas Akhir Pertemuan 5
Buatlah program dengan menggunakan kombinasi antara fungsi
dan pointer!
Source code:
#include <stdio.h>
#include <iostream>
#include <windows.h>
using namespace std;
int hitung(const char *);
main()

{
char string[80];
system("COLOR F0");
cout<<"PROGRAM FUNGSI DENGAN POINTER"<<endl;
cout<<"\nMenghitung Banyaknya Karakter Yang Di Input
Menggunakan Fungsi Dan Pointer"<<endl;
cout<<"\nKetikkan Kata / Kalimat : ";
cin.getline(string,80);
cout<<"\nJumlah Karakter : "<<hitung(string)<<" Karakter";
return 0;
}

int hitung(const char *s)


{
int x=0;
for(;*s!='\0'; s++)
++x;
return x;

}
Output:
LAPORAN AWAL
PRAKTIKUM STRUKTUR DATA

LAPORAN PERTEMUAN KE-6

Disusun oleh:
Nama: Rizky Fauzi
NIM: 191011400265
Kelas: 04TPLP003

PRODI TEKNIK INFOMATIKA


FAKULTAS TEKNIK
UNIVERSITAS PAMULANG
2021
Tugas Pendahuluan Pertemuan 6

Soal
1. Apa yang dimaksud dengan shorting!
2. Jelaskan perbedaan dari pengurutan internal dan pengurutan eksternal!
3. Jelaskan perbedaan metode2 sorting seperti bubble sort, quick sort,
selection sort, merge sort, tree sort, maximum sort, dan insertion sort!
4. Buatlah contoh program sederhana menggunakan sorting!

Jawaban

1. SORTING (PENGURUTAN) Sorting adalah proses mengatur


sekumpulan objek menurut aturan atau susunan tertentu. Urutan
objek tersebut dapat menaik (ascending = dari data kecil ke data
lebih besar) atau menurun (descending = dari data besar ke data
lebih kecil).
2. Pengurutan Internal (Internal Sort) yaitu pengurutan terhadap
sekumpulan data yang disimpan dalam media internal komputer
yang dapat diakses setiap elemennya secara langsung. Dapat
dikatakan sebagai pengurutan tabel.
Pengurutan Eksternal (External Sort) yaitu pengurutan data
yang disimpan dalam memori sekunder, biasanya data bervolume
besar sehingga tidak mampu untuk dimuat semuanya dalam
memori.
3. a. Bubble Sort
Proses pengurutan sederhana yang bekerja dengan cara berulang
kali membandingkan dua elemen data pada suatu saat dan menukar
elemen data yang urutannya salah.
b. Quick Sort
Metode terdapat dalam proses pengurutan data dengan
menggunakan prinsip rekursif. Metode ini menggunakan strategi
“Pecah Belah” dengan mekanisme.
c. Selection Sort
Algoritma Selection Sort yang memilih elemen
maksimum/minimum array, lalu menempatkan elemen
maksimum/minimum itu pada awal atau akhir array (tergantung
pada urutannya ascending/descending).
d. Merge Sort
Algoritma yang berdasarkan dari Strategi divide-and-conquer.
Algoritma ini terdiri dari dua bagian utama, yaitu bagian list
menjadi sublist-sublist yang lebih kecil dan bagian sort
(pengurutan) dan merge (penggabungan) pada sublist-sublist
tersebut.
e. Tree Sort
Metode sorting dengan cara membangun pohon biner dengan
menampilkan 3 hasil output : Pre Order, In order, Post Order.
f. Maximum Sort
Proses memilih data yang maksimum dari suatu kumpulan data
larik, lalu menempatkan data tersebut ke elemen paling akhir atau
paling awal sesuai pengurutan yang diinginkan.
g. Insertion Sort
Sebuah algoritma pengurutan yang membandingkan dua elemen
data pertama, mengurutkannya, kemudian mengecek elemen data
berikutnya satu-persatu dan membandingkannya dengan elemen
data yang telah diurutkan.
4. Source code:
#include<iostream>
#include<stdio.h>
#include<conio.h>
using namespace std;
int sort_function (const void *a, const void *b);
char list[5][4] = {"cat", "car", "cab", "cap", "can"};
int main()
{
printf(" Nama : Muhammad Zuhri Kelas : 04TPLP011 NIM:
2016140614 ");
printf(" ======================== ");
int x;
qsort(( void *)list,5, sizeof(list[0]), sort_function);
for (x =0; x<5; x++)
printf("%s ",list[x]);
return 0;
}
int sort_function(const void *a, const void *b)
{
return (strcmp ((char *) a,(char *)b));
}
Kesimpulan materi searching: Pencarian merupakan proses yang
mendasar di dalam pemrograman. Pencarian (Searching)
merupakan tindakan untuk mendapatkan suatu data dalam
kumpulan data berdasarkan satu kunci (key) atau acuan data.
Dalam kehidupan sehari-hari, seringkali kita berurusan dengan
pencarian; misalnya untuk menemukan nomor telepon seseorang
pada buku telepon atau mencari istilah dalam kamus, dan masih
banyak lagi. Pada aplikasi komputer, pencarian kerapkali
dilakukan. Misalnya untuk proses penghapusan data/record atau
mengubah data/record tertentu di dalam suatu tabel atau file.
Sequential search: Sequential Search (pencarian beruntun) adalah
metode pencarian yang paling mudah. Pencarian beruntun adalah
proses membandingkan setiap elemen array satu per satu secara
beruntun yang dimulai dari elemen pertama hingga elemen yang
dicari ditemukan atau hingga elemen terakhir dari array.
Binary search: Binary search adalah metode pencarian suatu data
atau elemen di dalam suatu array dengan kondisi data dalam
keadaan terurut. Proses pencarian binary search hanya dapat
dilakukan pada kumpulan data yang sudah diurutkan terlebih
dahulu (menaik atau menurun).
LAPORAN AKHIR
PRAKTIKUM STRUKTUR DATA

LAPORAN PERTEMUAN KE-6

Disusun oleh:
Nama: Rizky Fauzi
NIM: 191011400265
Kelas: 04TPLP003

PRODI TEKNIK INFOMATIKA


FAKULTAS TEKNIK
UNIVERSITAS PAMULANG
2021
Tugas Praktikum Pertemuan 6
Buatlah program sederhana dengan array of struct seperti
pada pertemuan III:
Program biodata pegawai yang terdiri dari field2 seperti NIP,
Nama, Alamat, Agama, dan Jabatan. Kemudian tambahkan
program menggunakan metode sequential search untuk
mencari seorang pegawai lalu tampilkan biodatanya. (simpan
dengan nama lat6_4.cpp)
Source code:
#include <iostream>
#include <conio.h>
using namespace std;

struct biodata{
int nip;
char nama[20];
char jabatan[20];
char agama[10];
char alamat[50];
}pegawai[0];

int main()
{
int i, n;
cout <<endl;
cout << " --- Biodata Pegawai Kampus Unpam --- " <<endl;
cout << "======================================"
<<endl;

//untuk input data karyawan


cout << "Jumlah Pegawai : "; cin >> n;
for (i=0; i<n; i++){
cout <<endl;
cout << " Pegawai ke - " << i <<endl;
cout << "NIP : "; cin >> pegawai[i].nip;
cin.ignore();
cout << "Nama : "; cin.getline(pegawai[i].nama,20);
cout << "Jabatan : "; cin.getline(pegawai[i].jabatan,20);
cout << "Agama : "; cin >> pegawai[i].agama;
cin.ignore();
cout << "Alamat : "; cin.getline(pegawai[i].alamat,50);
cout <<endl;

//untuk menampilkan data karyawan


cout <<endl <<endl;
cout << "======================================"
<<endl;
cout << " Biodata Pegawai " <<endl;
cout << " Kampus Unpam " <<endl;
cout << "======================================"
<<endl;
int carinip;
bool found;
//carinip -> untuk cari nip pegawai
cout << "Cari Pegawai (NIP) : "; cin >> carinip;
found = false;
i=0;
while ((i<n)&(!found))
{
if (pegawai[i].nip == carinip)
found = true;
else
i = i+1;
}
//kondisi nip ketemu
if (found)
{
cout << "Hasi pencarian NIP [ " << carinip; cout << " ]" <<endl;
cout << "NIP : " << pegawai[i].nip <<endl;
cout << "Nama : " << pegawai[i].nama <<endl;
cout << "Agama : " << pegawai[i].agama <<endl;
cout << "Jabatan : " << pegawai[i].jabatan <<endl;
cout << "Alamat : " << pegawai[i].alamat <<endl;
cout << "-----------------------------------------------" <<endl;
cout <<endl;
}
else
{
cout <<"NIP [ ";
cout << carinip; cout << " ] Tidak Terdaftar!! ";
}
getch();
}

Output:
Tugas Akhir Pertemuan 6

Buatlah program untuk melakukan pencarian terhadap data 12, 15 dan 37


dari sederetan data 34, 8, 50, 74, 87, 90, 12, 25, 20, 30, 35, 45, 40, 22, 29, 72, 60,
55, 53, 12, 32, 33, 12, 41, 12 ! Jika data yang di cari terdapat lebih dari satu,
tentukan banyaknya dan sebutkan berada pada posisi berapa saja data yang
di cari berada pada sederetan data!

Source code:

#include <iostream>

#include <conio.h>

using namespace std;

main()

bool ketemu;

int posisi[25];

int c,i,banyak=0;

int
data[25]={34,8,50,74,87,90,12,25,20,30,35,45,40,22,29,72,60,55,53,12,32,33,12,4
1,12};

cout<<"Data : ";

for(i=0;i<25;i++)

cout<<data[i]<<" ";

cout<<"\n\nData yang dicari : ";


cin>>c;

for (i=0;i<25;i++)

if (data[i]==c)

ketemu=true;

posisi[banyak]=i+1;

banyak++;

if (ketemu)

cout<<"Data : "<<c;

cout<<"\nDitemukan sebanyak "<<banyak;

cout<<"\nPada posisi ke ";

for(i=0;i<banyak;i++)

cout<<posisi[i]<<" ";

else
{

cout<<"Data "<<c<<" tidak ditemukan";

getch();

Output:
LAPORAN AWAL
PRAKTIKUM STRUKTUR DATA

LAPORAN PERTEMUAN KE-7

Disusun oleh:
Nama: Rizky Fauzi
NIM: 191011400265
Kelas: 04TPLP003

PRODI TEKNIK INFOMATIKA


FAKULTAS TEKNIK
UNIVERSITAS PAMULANG
2021
Tugas Pendahuluan Pertemuan 7

Soal

1. Jelaskan kekurangan menggunakan metode maximum/minimum sort dengan


metode2 sorting lainnya!
2. Jelaskan perbedaan program sorting dengan menggunakan antara metode
maximum sort dan minimum sort!
3. Jelaskan tahapan2 sorting menggunakan metode maximum sort!
4. Jelaskan tahapan2 sorting menggunakan metode minimum sort!

Jawaban:

1. Kekurangan menggunakan metode maximum/minimum sort dengan metode-


metode sorting lainnya :
-          Membutuhkan method tambahan.
-          Sulit untuk digabungkan kembali.
-          Perlu dihindari untuk penggunaan data lebih dari 1000 tabel karena
akan menyebabkan kompleksitas yang lebih tinggi dan kurang praktis.

2. Perbedaannya maximum sort memilih elemen maximum sebagai basis


pengurut, sedangkan minimum sort memilih elemen minimum sebagai basis
pengurutan. Dan saya juga sudah mencoba program yang ada pada modul
bagian sorting lanjut a dan b dimana program maximum sort menggunakan
imaks untuk mengurutkan data secara menurun (dari besar ke kecil).
Sedangkan minimum sort menggunakan imin dan U-- untuk mengurutkan
data secara menurun pada dasarnya programnya sama yang membedakan
hanya itu saja menurut saya pribadi.
3. Konsep metode Maximum Sort adalah memilih elemen maksimum
kemudian mempertukarkan elemen maksimum tersebut dengan elemen
paling akhir untuk urut menaik dan elemen pertama untuk menurun.
Demikian seterusnya sehingga semua elemen terurut.
4. Konsep metode Minimum Sort adalah memilih elemen minimum kemudian
mempertukarkan elemen minimum tersebut dengan elemen paling akhir
untuk urut menaik dan elemen pertama untuk urut menurun. Demikian
seterusnya sehingga semua elemen terurut.
Kesimpulan materi sorting: Salah satu bagian penting dari struktur data
adalah proses pengurutan data. Data terkadang akan berada dalam bentuk
yang tidak berpola ataupun dengan pola tertentu yang tidak kita inginkan.
Namun dalam penggunaannya, kita akan selalu ingin menggunakan data
tersebut dalam bentuk yang rapi atau berpola sesuai dengan yang kita
inginkan. Maka dari itu proses sorting adalah proses yang sangat penting
dalam struktur data. Proses pengurutan banyak ditemukan dalam pemrosesan
komputer.
Pengurutan (sorting) adalah proses mengatur sekumpulan objek menurut
urutan atau susunan tertentu. Urutan objek tersebut dapat menaik
(ascending), yaitu urutan objek yang disusun mulai dari Nilai terkecil hingga
terbesar atau menurun (descending), yaitu urutan objek yang disusun mulai
dari Nilai terbesar hingga terkecil. Jika N buah objek atau data disimpan di
dalam array Nilai, maka pengurutan menaik berarti menyusun elemen array
sedemikian sehingga:

NILAI[0] ≤ NILAI[1] ≤ NILAI[2] ≤ … ≤ NILAI[N-1]

Sedangkan pengurutan menurun  berarti menyusun elemen array sedemikian


sehingga:

NILAI[0] ≥ NILAI[1] ≥ … ≥ NILAI[N-1]

Data yang diurut dapat berupa data bertipe data dasar atau tipe data bentukan.
Jika data bertipe bentukan (structure), maka harus disebutkan berdasarkan field
apa data tersebut akan diurutkan.

Beberapa metode yang dapat digunakan untuk pengurutan antara lain:

1. Bubble Sort
2. Selection Sort
3. Quick Sort
4. Merge Sort
5. Heap Sort
6. Shell Sort
7. Radix Sort
8. Tree Sort
9. Maximum Sort
10.Insertion Sort
LAPORAN AKHIR
PRAKTIKUM STRUKTUR DATA

LAPORAN PERTEMUAN KE-7

Disusun oleh:
Nama: Rizky Fauzi
NIM: 191011400265
Kelas: 04TPLP003

PRODI TEKNIK INFOMATIKA


FAKULTAS TEKNIK
UNIVERSITAS PAMULANG
2021
Tugas Praktikum Pertemuan 7
Buatlah program pengurutan dengan metode bubble sort
”Pengurutan secara menurun” (simpan dengan nama
lat7_2.cpp).
Source code:
/*Program Pengurutan Metode Bubble Sort
Pengurutan Secara Menurun
Nama File : Lat_Sorting_01b */

#include<iostream>
#include<conio.h>
#include<iomanip>
using namespace std;
int main()
{
int Nilai[20];
int i, j, k, N;
int temp;
bool tukar;
cout<<"Masukkan Banyak Bilangan : ";
cin>>N;
for(i=0; i<N; i++)
{
cout<<"Elemen ke-"<<i<<" : ";
cin>>Nilai[i];
}

//Proses Cetak Sebelum diurutkan


cout<<"\nData sebelum diurut : ";
for(i=0; i<N; i++)
cout<<setw(3)<<Nilai[i];

//Proses Pengurutan
i=0;
tukar = true;
while ((i<=N-2) && (tukar))
{
tukar=false;
for(j=N-1; j>=i+1; j--)
{
if(Nilai[j] > Nilai[j-1])
{
temp = Nilai[j];
Nilai[j] = Nilai[j-1];
Nilai[j-1] = temp;
tukar = true;
cout<<endl;
for(k=0; k<N; k++)
cout<<setw(3)<<Nilai[k];
}
}
i++;
}
//Proses Cetak Setelah diurutkan
cout<<"\nData Setelah di urut : ";
for(i=0; i<N; i++)
cout<<setw(3)<<Nilai[i];
getch();
}

Output:
Tugas Akhir Petemuan 7

Buatlah program untuk mengurutkan sederetan data: 34, 12, 56, 78, 6, 43,
32, 20, 90, 50, 55, 75, 85, 95, 25!

Source code:

#include <iostream>

using namespace std;

void MergeSort(int low, int high);

void Merge(int , int , int );

int A[50];

int main()

{
int i, elemen;

cout<<"Berapa banyak elemen yang ingin disusun ? "; cin>>elemen;

cout<<endl;

cout<<"Masukkan " <<elemen<<" elemen: \n";cout<<endl;

for(i=1;i<=elemen;i++)

cout << "Elemen ke-"<<i<<" = ";

cin>>A[i];

cout<<endl;

MergeSort(1,elemen);

cout<<endl;

cout<<"Setelah di mergesort: \n\n";

for(i=1;i<=elemen;i++)

cout<< A[i] <<" ";

cout<< endl << endl;

return 0;

//prosedure Mergesort
void MergeSort(int low, int high)

int mid;

if(low<high)

mid = (low+high)/2;

MergeSort(low,mid);

MergeSort(mid+1, high);

Merge(low, mid, high);

//Prosedure Merge

void Merge(int low, int mid, int high)

int h,i,j,k,b[50];

h=low;

i=low;

j=mid+1;

while((h<=mid)&&(j<=high))

{
if(A[h]<A[j])

b[i]=A[h];

h++;

}else{

b[i]=A[j];

j++;

i++;

if(h>mid)

for(k=j;k<=high;k++)

b[i]=A[k];

i++;

}else{

for(k=h;k<=mid;k++)

b[i]=A[k];
i++;

for(k=low;k<=high;k++)

A[k]=b[k];

Output:
Kartu ujian

Kartu pembayaran

Anda mungkin juga menyukai