Anda di halaman 1dari 8

Soal Final

Dosen : Agus Halid, S.Kom., M.Cs


Kelas : TI-22
Matakuliah : STRUKTUR DATA

Nama Mahasiswa : Nardo Azalio Bangri


NIM : 20202205082

Petunjuk soal :
Jangan lupa tulis nim dan nama pada lembar jawaban anda.
Kerjakan di aplikasi pengolah kata (word) yang disediakan

1. Diketahui potongan program berikut :


{program nim-nama}
uses crt;
type simpul=^data;
data=record
Kodebrg : string[6];
namabrg : string[15];
hrgbrg : integer;
berikut : simpul;
end;
Lengkapilah program di atas dengan menggunakan linked list. kemudian isi
data sebanyak 5 simpul. Pada simpul ketiga isilah dengan kode barang
“123456”, lalu buat juga kode program untuk menampilkan isi simpul ketiga.

Jawab
Program :

#include <iostream>

using namespace std;

struct data{

string kodebrg;
string namabrg;
int hrgbrg;

data *next;

};

data *head, *tail, *cur, *newnode, *del, *before;

void create(string kodebrg, string namabrg, int hrgbrg){


head = new data();
head->kodebrg = kodebrg;
head->namabrg = namabrg;
head->hrgbrg = hrgbrg;
head->next = NULL;
tail=head;
}

void add(string kodebrg, string namabrg, int hrgbrg, int posisi){


newnode = new data();
newnode->kodebrg = kodebrg;
newnode->namabrg = namabrg;
newnode->hrgbrg = hrgbrg;

cur = head;
int nomor = 1;
while ( nomor < posisi - 1)
{
cur = cur->next;
nomor++;
}
newnode->next = cur->next;
cur->next = newnode;

void change(string kodebrg, string namabrg, int hrgbrg, int posisi){


cur=head;
int nomor = 1;
while(nomor<posisi){
cur=cur->next;
nomor++;
}
cur->kodebrg = kodebrg;
cur->namabrg = namabrg;
cur->hrgbrg = hrgbrg;
}

void print(int posisi){


cur=head;
int nomor = 1;
while(nomor<posisi){
nomor++;
cur = cur->next;
}
cout<< "Kode Barang : "<< cur->kodebrg <<endl;
cout<< "nama Barang : "<< cur->namabrg <<endl;
cout<< "harga Barang : "<< cur->hrgbrg <<endl;
cout<<endl;
}
int main(){
create("001","mouse",150);
add("002","keyboard",900,2);
add("003","headset",100,3);
add("004","ssd",500,4);
add("005","charger",50,5);

change("12345","headset",100,3);

print(3);

Screenshoot layout/hasil program (boleh menggunakan Snipping tools) :

2. Berdasarkan program yang telah anda buat pada no. 1, lakukan


penghapusan terhadap isi simpul kedua dan tampilkan hasilnya.
Jawab
Program :

#include <iostream>

using namespace std;

//dekarasi single linked list


struct data{
//komponen/member
string kodebrg;
string namabrg;
int hrgbrg;

data *next;

};

data *head, *tail, *cur, *newnode, *del, *before;

void create(string kodebrg, string namabrg, int hrgbrg){


head = new data();
head->kodebrg = kodebrg;
head->namabrg = namabrg;
head->hrgbrg = hrgbrg;
head->next = NULL;
tail=head;
}

void add(string kodebrg, string namabrg, int hrgbrg, int posisi){


newnode = new data();
newnode->kodebrg = kodebrg;
newnode->namabrg = namabrg;
newnode->hrgbrg = hrgbrg;

cur = head;
int nomor = 1;
while ( nomor < posisi - 1)
{
cur = cur->next;
nomor++;
}
newnode->next = cur->next;
cur->next = newnode;

void change(string kodebrg, string namabrg, int hrgbrg, int posisi){


cur=head;
int nomor = 1;
while(nomor<posisi){
cur=cur->next;
nomor++;
}
cur->kodebrg = kodebrg;
cur->namabrg = namabrg;
cur->hrgbrg = hrgbrg;
}

void remove(int posisi){


int nomor = 1;
cur = head;
while( nomor <= posisi ){
if(nomor == posisi-1){
before = cur;
}
if (nomor == posisi)
{
del = cur;
}
cur = cur->next;
nomor++;

}
before->next = cur;
delete del;
}

void print(int posisi){


cur=head;
int nomor = 1;
while(nomor<posisi){
nomor++;
cur = cur->next;
}
cout<< "Kode Barang : "<< cur->kodebrg <<endl;
cout<< "nama Barang : "<< cur->namabrg <<endl;
cout<< "harga Barang : "<< cur->hrgbrg <<endl;
cout<<endl;
}

void printAll(){
cur = head;
while(cur != NULL){
cout<< "Kode Barang : "<< cur->kodebrg <<endl;
cout<< "nama Barang : "<< cur->namabrg <<endl;
cout<< "harga Barang : "<< cur->hrgbrg <<endl;
cout<<endl;

cur = cur->next;
}
}

int main(){
create("001","mouse",150);
add("002","keyboard",900,2);
add("003","headset",100,3);
add("004","ssd",500,4);
add("005","charger",50,5);

change("12345","headset",100,3);

cout<<"---------Tampilan Data 3--------------"<<endl;


print(3);
cout<<"-----------------------------------"<<endl;

remove(2);

cout<<"-----------Tampilan Data--------------"<<endl;
printAll();
cout<<"--------------------------------------"<<endl;
}

Screenshoot layout/hasil program (boleh menggunakan Snipping tools) :

3. Berdasarkan Soal nomor 1, tentukan jumlah memori yang dibutuhkan oleh


program tersebut !
Jawab :
32 byte
4. Diketahui Bilangan Fibonacci sebagai berikut :
1 1 2 3 5 8 13 21
Biuatlah kode program untuk menjumlahkan 9 bilangan Fibonacci pertama
Jawab :
Program :

#include <iostream>

using namespace std;

int penjumlahan(int n){


if (n <= 0)
return 0;

int fibo[n+1];
fibo[0] = 0, fibo[1] = 1;

int sum = fibo[0] + fibo[1];

for(int i=2; i<=n; i++){


fibo[i] = fibo[i-1]+fibo[i-2];
sum += fibo[i];
}
return sum;
}

int main(){
int n = 9;
cout<<"Hasil Penjumlahan "<<n<<" bilangan fibonachi pertama =
"<<penjumlahan(n)<<endl;
return 0;
}

Screenshoot layout/hasil program (boleh menggunakan Snipping tools) :

Anda mungkin juga menyukai