Professional Documents
Culture Documents
Kevinzulkarnain Doublelinkedlist
Kevinzulkarnain Doublelinkedlist
Praktikum : Praktikum 1
Nama : Kevin Zulkarnain
NRP : 5221600014
Soal 1 :
Soalan :
1. Implementasikan operasi dasar Double linked list : Menyisipkan sebagai simpul
ujung(awal) dari linked list.
#include <iostream>
#include <stdio.h>
#include <iomanip>
using namespace std;
typedef struct node{
long data;
node* next;
node* prev;
};
node* head;
node* tail;
node* print;
node* entry;
void inisialisasi(){
head = NULL;
tail = NULL;
}
int isEmpty(){
if(head == NULL)
return 1;
else
return 0;
}
void input(int *dta){
entry = new node;
entry->data = *dta;
entry->next = NULL;
entry->prev = NULL;
if(isEmpty()==1){
head = entry;
head->next = NULL;
head->prev = NULL;
tail=head;
}else
1
LOGBOOK PRAKTIKUM PEMROGRAMAN 1 – Teknologi Game PENS
Tuesday, August 2, 2022
{
tail->next = entry;
entry->prev = tail;
tail = entry;
}
} void cetak()
{
print = head;
if(head!=NULL)
{
while(print!=NULL)
{
cout<<"\n\t"<<print->data;
print = print->next;
}
}
else
printf("\nTidak ada data dalam linked list");
} void menu()
{
char pilih, lagi;
int data;
do
{
menu :
cout<<"DOUBLE LINKED LIST \n Menyisipkan Ujung Simpul\n "<<endl;
cout<<"Menu: ";
cout<<"\n1. Masukkan Data";
cout<<"\n2. Cetak Data";
cout<<"\n3. Keluar";
cout<<"\nMasukkan pilihan : ";
cin>>pilih;
switch(pilih)
{
case '1' :
cout<<"\nMasukkan Data : ";
cin>>data;
input(&data);
cout<<"\n"<<data<<" telah ditambahkan"<<endl;
break;
case '2' :
cetak();
break;
case '3' :
exit(0);
break;
default :
cout<<"\nPilih ulang"<<endl;
goto menu;
}
2
LOGBOOK PRAKTIKUM PEMROGRAMAN 1 – Teknologi Game PENS
Tuesday, August 2, 2022
Soal 2
3
LOGBOOK PRAKTIKUM PEMROGRAMAN 1 – Teknologi Game PENS
Tuesday, August 2, 2022
Soalan :
#include <iostream>
#include <stdio.h>
#include <iomanip>
using namespace std;
typedef struct node{
long data;
node* next;
node* prev;
};
node* head;
node* tail;
node* print;
node* entry;
void inisialisasi(){
head = NULL;
tail = NULL;
}
int isEmpty(){
if(head == NULL)
return 1;
else
return 0;
}
void input(int *dta){
entry = new node;
entry->data = *dta;
entry->next = NULL;
entry->prev = NULL;
if(isEmpty()==1){
head = entry;
head->next = NULL;
head->prev = NULL;
tail=head;
}else
{
tail->next = entry;
entry->prev = tail;
tail = entry;
}
} void cetak()
{
4
LOGBOOK PRAKTIKUM PEMROGRAMAN 1 – Teknologi Game PENS
Tuesday, August 2, 2022
print = head;
if(head!=NULL)
{
while(print!=NULL)
{
cout<<"\n\t"<<print->data;
print = print->next;
}
}
else
printf("\nTidak ada data dalam linked list");
} void menu()
{
char pilih, lagi;
int data;
do
{
menu :
cout<<"DOUBLE LINKED LIST \n Menyisipkan Ujung Simpul\n "<<endl;
cout<<"Menu: ";
cout<<"\n1. Masukkan Data";
cout<<"\n2. Cetak Data";
cout<<"\n3. Keluar";
cout<<"\nMasukkan pilihan : ";
cin>>pilih;
switch(pilih)
{
case '1' :
cout<<"\nMasukkan Data : ";
cin>>data;
input(&data);
cout<<"\n"<<data<<" telah ditambahkan"<<endl;
break;
case '2' :
cetak();
break;
case '3' :
exit(0);
break;
default :
cout<<"\nPilih ulang"<<endl;
goto menu;
}
cout<<"\nKembali ke menu? (y/n)";
cin>>lagi;
}while(lagi=='y' || lagi =='Y');
}
int main()
{
inisialisasi();
5
LOGBOOK PRAKTIKUM PEMROGRAMAN 1 – Teknologi Game PENS
Tuesday, August 2, 2022
menu();
return 0;
}
6
LOGBOOK PRAKTIKUM PEMROGRAMAN 1 – Teknologi Game PENS
Tuesday, August 2, 2022
Soal 3
Soalan :
#include <iostream>
#include <stdio.h>
#include <iomanip>
using namespace std;
typedef struct node {
long data;
node* next;
node* prev;
};
node* head;
node* tail;
node* print;
node* entry;
node* search;
void inisialisasi() {
head = NULL;
tail = NULL; }
int isEmpty() {
if(head == NULL)
return 1;
else
return 0; }
void input(int *dta) {
entry = new node;
entry
->data = *dta;
entry
->next = NULL;
entry
->prev = NULL;
if(isEmpty()==1) {
head = entry;
head
->next = NULL;
head
->prev = NULL;
tail=head; }
else {
tail
->next = entry;
7
LOGBOOK PRAKTIKUM PEMROGRAMAN 1 – Teknologi Game PENS
Tuesday, August 2, 2022
entry
->prev = tail;
tail = entry; }}
void cari() {
int pos,go=1,pil;
printf("Bilangan yang ingin dicari ? ");
scanf("%d",&pos);
search=head;
while(search!=NULL)
{
if(search->data!=pos)
{
search=search->next;
go++;
}
else
{
pil=1;
break;
}
}
if(pil==1){
printf("\nBilangan %d ditemukan diposisi ke-%d",pos,go);
printf("\n");
}else{
printf("\nBilangan tidak ditemukan");
printf("n");
}
}
void cetak(){
print = head;
if(head!=NULL){
while(print!=NULL){
cout<<"\n\t"<<print->data;
print = print->next;
}
}else
void menu(){
char pilih, lagi;
int data;
do{
menu :
cout<<"DOUBLE LINKED LIST \n Menyisipkan Ujung Simpul\n "<<endl;
cout<<"Menu: ";
cout<<"\n1. Masukkan Data";
cout<<"\n2. Menampilkan Data";
8
LOGBOOK PRAKTIKUM PEMROGRAMAN 1 – Teknologi Game PENS
Tuesday, August 2, 2022
9
LOGBOOK PRAKTIKUM PEMROGRAMAN 1 – Teknologi Game PENS
Tuesday, August 2, 2022
10
LOGBOOK PRAKTIKUM PEMROGRAMAN 1 – Teknologi Game PENS
Tuesday, August 2, 2022
Soal 4
Soalan :
#include <iostream>
#include <stdio.h>
#include <iomanip>
using namespace std;
11
LOGBOOK PRAKTIKUM PEMROGRAMAN 1 – Teknologi Game PENS
Tuesday, August 2, 2022
tail=head;
}
else
{
tail->next = entry;
entry->prev = tail;
tail = entry;
}
}
void cari() {
int pos,go=1,pil;
printf("Bilangan yang ingin dicari ? ");
scanf("%d",&pos);
search=head;
while(search!=NULL) {
if(search
->data!=pos)
{
search=search
->next;
go++; }
else {
pil=1;
break; }}
if(pil==1) {
printf(" \nBilangan %d ditemukan diposisi ke-%d",pos,go);
printf("\n");
} else {
printf("\nBilangan tidak ditemukan");
printf("n");
}
void hps() {
int simpan;
if (head != NULL) {
if (head->next != NULL){
hapus = head;
simpan = head->data;
cout << "\n"<< simpan << " telah dihapus" << endl;
head = head->next;
head
->prev = NULL;
delete hapus;
cout << "anda menghapus data awal" <<endl;
}else {
simpan = head->data;
cout << "\n" << simpan << " telah dihapus" <<endl;
head = NULL;
12
LOGBOOK PRAKTIKUM PEMROGRAMAN 1 – Teknologi Game PENS
Tuesday, August 2, 2022
13
LOGBOOK PRAKTIKUM PEMROGRAMAN 1 – Teknologi Game PENS
Tuesday, August 2, 2022
}
cout<<"\nKembali ke menu? (y/n)";
cin>>lagi;
}while(lagi=='y' || lagi =='Y');
}
int main()
{
inisialisasi();
menu();
return 0;
}
14
LOGBOOK PRAKTIKUM PEMROGRAMAN 1 – Teknologi Game PENS
Tuesday, August 2, 2022
Soal 5
Soalan :
#include <iostream>
#include <stdio.h>
#include <iomanip>
using namespace std;
15
LOGBOOK PRAKTIKUM PEMROGRAMAN 1 – Teknologi Game PENS
Tuesday, August 2, 2022
else
{
tail->next = entry;
entry->prev = tail;
tail = entry;
}
}
void cari() {
int pos,go=1,pil;
printf("Bilangan yang ingin dicari ? ");
scanf("%d",&pos);
search=head;
while(search!=NULL) {
if(search
->data!=pos)
{
search=search
->next;
go++; }
else {
pil=1;
break; }}
if(pil==1) {
printf(" \nBilangan %d ditemukan diposisi ke-%d",pos,go);
printf("\n");
} else {
printf("\nBilangan tidak ditemukan");
printf("n");
}
void hps() {
int simpan;
if (head != NULL) {
if (head->next != NULL){
hapus = head;
simpan = head->data;
cout << "\n"<< simpan << " telah dihapus" << endl;
head = head->next;
head
->prev = NULL;
delete hapus;
cout << "anda menghapus data awal" <<endl;
}else {
simpan = head->data;
cout << "\n" << simpan << " telah dihapus" <<endl;
head = NULL;
cout << "anda menghapus data akhir" <<endl; }
}
16
LOGBOOK PRAKTIKUM PEMROGRAMAN 1 – Teknologi Game PENS
Tuesday, August 2, 2022
17
LOGBOOK PRAKTIKUM PEMROGRAMAN 1 – Teknologi Game PENS
Tuesday, August 2, 2022
cin>>lagi;
}while(lagi=='y' || lagi =='Y');
}
int main()
{
inisialisasi();
menu();
return 0;
}
18