Anda di halaman 1dari 72

LAPORAN AWAL MODUL PRAKTIKUM

STRUKTUR DATA

Di susun Oleh :
Gilang Ramadhan
TEKNIKINFORMATIKA

FAKULTAS TEKNIK

UNIVERSITAS PAMULANG

JL. Surya kencana No.1 Pamulang Telp (021)7412566,Fax.

(021)7412566

Tanggerang selatan
#include <iostream>

using namespace std;

int main()

char data [2][3][6] = {" 1 ", " 4 ", " 1 ", " 5 ", " 2 ", " 3 "};

int i,j;

cout<<"\n";

cout<<"==========================\n";

cout<<"MEMBUAT ARRAY 3D\n";

cout<<"==========================\n";

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

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


{cout<<data[i][j];}

cout<<"\n";

return 0;

}
#include<iostream>

using namespace std;

main()

struct Mahasiswa

int Nim;

char Nama[30];

char Almt[50];

};
Mahasiswa Mhs;

#include<iostream>

using namespace std;

main()

struct Mahasiswa

int Nim;

char Nama[30];

char Almt[50];

};

Mahasiswa Mhs;

cout<<"Masukan data Mahasiswa "<<endl;

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

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

cout<<endl<<"Masukan Alamat : ";cin>>Mhs.Almt;

cout<<endl<<endl<<"Tampilkan Data hasilnya"<<endl;

cout<<"NIM : "<<Mhs.Nim<<endl;

cout<<"NAMA : "<<Mhs.Nama<<endl;

cout<<"ALAMAT : "<<Mhs.Almt<<endl;

return 0;
}
#include <iostream>

using namespace std;

int main(){

//deklarasi variabel angka dengan tipe data int

int angka = 90;

//deklarasi pointer angkax dengan tipe data int

int *angkax;

//angkax sama dengan Address Of angka (0x6ffe34)


//sekarang pointer angkax menunjuk ke alamat memori variabel angka

//atau pointer angkax berisi (menunjuk) alamat memori variabel angka

angkax = &angka;

cout<<"Nilai (isi) dari variabel angka : "<<angka;

cout<<"\nAlamat variabel angka (&angka) : "<<&angka;

cout<<"\nNilai yang ditunjuk pointer *angkax : "<<*angkax;

return 0;

}
LAPORAN AKHIR PRATIKUM
STRUKTUR DATA

Di susun Oleh :
Gilang Ramadhan
TEKNIKINFORMATIKA

FAKULTAS TEKNIK

UNIVERSITAS PAMULANG

JL. Surya kencana No.1 Pamulang Telp (021)7412566,Fax.

(021)7412566

Tanggerang selatan
TUGAS AKHIR PERTEMUAN 2

1. Buatlah program untuk menjumlahkan 2 buah matriks, masing masing mempunyai ordo yang
sama ?

#include <iostream>

using namespace std;

int main(){

// Deklarasi dan inisialisasi array dua dimensi

// Dengan jumlah elemen baris = 3

// dan jumlah elemen kolom = 2

int matrikcontoh [3][2] = {{1,2},{3,4},{5,6}};

// Mendeklarasi variabel untuk

// Indeks perulangan

int i,j;

cout<<"\t==============================";

cout<<"\n\t=== Tampil Matrik Ordo 3x2 ===\n";

cout<<"\t==============================\n\n";

// Menampilkan matrikcontoh

cout<<"\nMenampilkan matrikcontoh\n";

for(i=0;i<3;i++){
for(j=0;j<2;j++){

cout<<matrikcontoh[i][j]<<" ";

cout<<endl;

return 0;

}
LAPORAN AWAL KE 2 MODUL PRAKTIKUM
STRUKTUR DATA

Di susun Oleh : Gilang Ramadhan

TEKNIKINFORMATIKA

FAKULTAS TEKNIK

UNIVERSITAS PAMULANG

JL. Surya kencana No.1 Pamulang Telp (021)7412566,Fax.

(021)7412566

Tanggerang selatan
3. Buatlah program sederhana menggunakan fungsi ?

#include <iostream>

using namespace std;

void LuasPersegi()

int panjang,lebar;
cout << "Masukkan panjang: "; cin >> panjang;

cout << "Masukkan lebar: "; cin >> lebar;

cout<<"Luas persegi: " << panjang*lebar;

int main()

LuasPersegi();

return 0;

}
3. Buatlah Program sederhana menggunakan searching ?

#include<iostream>

#include<conio.h>

using namespace std;

main() {
cout<<endl;

cout<<" Nama : Gilang Ramadhan "<<endl;

cout<<" NIM : 181011402611 "<<endl;

cout<<" Jurusan : teknik Informatika"<<endl;

cout<<endl;

cout<< " ____________________ " << endl;

cout<< " PROGRAM MENCARI DATA " << endl;

cout<< " _____________________" << endl;

cout<< endl;

int Nilai[20];

int i,N,angka,bilangan;

cout<<" Masukan Banyaknya Bilangan = ";cin>>N;

//membaca elemen array

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

cout<<" Masukan Elemen Ke -"<<i<<" = ";cin>>Nilai[i]; }

//mencetak elemen arrray

cout<<" Deretan Bilangan = ";

for(i=0;i<N;i++)
cout<<Nilai[i]<<" ";

cout<<endl<<endl;

cout<<" Masukan Bilangan Yang Dicari = ";

cin>>bilangan;

cout<<endl;

//melakukan pencarian

i=0;

do{

if(Nilai[i]==bilangan)

angka=Nilai[i];

i++;}

while(i<N);

if(angka==bilangan)

cout<<" Bilangan "<<bilangan<<" Ditemukan";

else

cout<<" Bilangan "<<bilangan<<" Tidak Ditemukan";

getch();

}
LAPORAN AKHIR KE 2 PRATIKUM
STRUKTUR DATA

Di susun Oleh :
Gilang Ramadhan
TEKNIKINFORMATIKA

FAKULTAS TEKNIK

UNIVERSITAS PAMULANG

JL. Surya kencana No.1 Pamulang Telp (021)7412566,Fax.

(021)7412566

Tanggerang selatan
TUGAS AKHIR PERTEMUAN 3
#include<stdio.h>

#include<stdlib.h>

#include<iostream>

#include<conio.h>

#include<windows.h>

using namespace std;

struct Tinggal

char Jalan[50];

char Kota[15];

char Kode_Pos[5];

};

struct Tanggal

int Tanggal;

int Bulan;

int Tahun;

};

struct Biodata

char Nip[9];

char Nama[25];

char Agama[10];

char Jabatan[10];
char Unit_kerja[15];

Tinggal Alamat;

Tanggal Lahir;

Tanggal Mulai_kerja;

};

main()

Biodata Pegawai[5];

int i;

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

system("CLS");

system("COLOR F0");

cout<<"\t\t\t Program Pendataan Karyawan "<<endl;

cout<<"\n \t\t=============================================\n";

cout<<"\t\tNIP \t: ";cin>>Pegawai[i].Nip;

cout<<"\t\tNama \t: ";cin>>Pegawai[i].Nama;

cout<<"\t\tAlamat \t\n";

cout<<"\t\t\tJalan \t: ";cin>>Pegawai[i].Alamat.Jalan;

cout<<"\t\t\tKota \t: ";cin>>Pegawai[i].Alamat.Kota;

cout<<"\t\t\tKode Pos: ";cin>>Pegawai[i].Alamat.Kode_Pos;

cout<<"\t\tJabatan : ";cin>>Pegawai[i].Jabatan;

cout<<"\t\tAgama \t: ";cin>>Pegawai[i].Agama;


cout<<"\t\tTanggal Lahir \n";

cout<<"\t\t\tTanggal : ";cin>>Pegawai[i].Lahir.Tanggal;

cout<<"\t\t\tBulan \t: ";cin>>Pegawai[i].Lahir.Bulan;

cout<<"\t\t\tTahun \t: ";cin>>Pegawai[i].Lahir.Tahun;

cout<<"\t\tTanggal Mulai Kerja \n";

cout<<"\t\t\tTanggal : ";cin>>Pegawai[i].Mulai_kerja.Tanggal;

cout<<"\t\t\tBulan \t: ";cin>>Pegawai[i].Mulai_kerja.Bulan;

cout<<"\t\t\tTahun \t: ";cin>>Pegawai[i].Mulai_kerja.Tahun;

cout<<"\t\tUnit Kerja : ";cin>>Pegawai[i].Unit_kerja;

cout<<"Cetak"<<endl;

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

cout<<"========================== NIP "<<Pegawai[i].Nip<<" ========================== ";

cout<<endl;

cout<<"\n Nama \t\t: "<<Pegawai[i].Nama;

cout<<"\n Alamat \t: "<<Pegawai[i].Alamat.Jalan<<" "<<Pegawai[i].Alamat.Kota<<",


"<<Pegawai[i].Alamat.Kode_Pos;

cout<<"\n Jabatan \t: "<<Pegawai[i].Jabatan;

cout<<"\n Agama \t\t: "<<Pegawai[i].Agama;

cout<<"\n Tgl Lahir \t: "<<Pegawai[i].Lahir.Tanggal<<"-"<<Pegawai[i].Lahir.Bulan<<"-


"<<Pegawai[i].Lahir.Tahun;

cout<<"\n Tgl Mulai Krj \t: "<<Pegawai[i].Mulai_kerja.Tanggal<<"-"<<Pegawai[i].Mulai_kerja.Bulan<<"-


"<<Pegawai[i].Mulai_kerja.Tahun;

cout<<"\n Unit Kerja \t: "<<Pegawai[i].Unit_kerja;

cout<<endl;
cout<<"==============================================================\n";

getch();

TUGAS AKHIR PERTEMUAN 4

1. Buatlah program dengan menggunakan kombinasi antara pointer dan array dua dimensi
?

#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][10] = { { 'U', 'N', 'I', 'V', 'E', 'R', 'S', 'I', 'T', 'A' },

{ 'S', ' ', 'P', 'A', 'M', 'U', 'L', 'A', 'N', 'G' } };

char *pNumbers[2];

*pNumbers = number[0];

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

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

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

for(int i = 0; i < 6; 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, 10);

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];

}
LAPORAN AWAL KE 3 MODUL PRAKTIKUM
STRUKTUR DATA

Di susun Oleh : Gilang Ramadhan

TEKNIKINFORMATIKA

FAKULTAS TEKNIK

UNIVERSITAS PAMULANG

JL. Surya kencana No.1 Pamulang Telp (021)7412566,Fax.

(021)7412566

Tanggerang selatan
3. Buatlah program sederhana menggunakan sorting?

#include<iostream>

#include<conio.h>

using namespace std;

void Halim(int Aku[], int Kamu, int Kita){

int Sorting;

Sorting = Aku [Kamu];

Aku [Kamu] = Aku [Kita];

Aku [Kita] = Sorting;

} main(){
cout<<endl;

cout<<" Nama : Gilang Ramadhan "<<endl;

cout<<" Kelas : 04 TPLE Reguler C "<<endl;

cout<<" Mata Kuliah : PRAKTIKUM STUKTUR DATA"<<endl;

cout<<endl;

cout<<" Sortinglah Data-Data Ini Dari Terbesar Ke Terkecil "<<endl<<endl;

cout<<" [ 4, 8, 5, 9, 6, 2, 7, 5, 9, 5 ] "<<endl<<endl;

cout<<" Hasilnya Adalah : "<<endl<<endl;

int Dia,Saya;

int Angka[]={4,8,5,9,6,2,7,5,9,5};

const int size = sizeof(Angka)/sizeof (Angka[0]);

for(Dia = size-1;Dia >0;Dia--)

for(Saya= 0;Saya<Dia;Saya++)

if(Angka[Saya]<Angka[Saya+1])

Halim(Angka,Saya,Saya+1);

for(Dia=0; Dia<size; Dia++)

cout<<" "<<Angka[Dia];

cout<<endl;

getch (); }
LAPORAN AKHIR KE 3 PRATIKUM
STRUKTUR DATA

Di susun Oleh :
Gilang Ramadhan
TEKNIKINFORMATIKA

FAKULTAS TEKNIK

UNIVERSITAS PAMULANG

JL. Surya kencana No.1 Pamulang Telp (021)7412566,Fax.

(021)7412566

Tanggerang selatan
PERTEMUAN 5
1.Buatlah program dengan menggunakan kombinasi antara fungsi dan pointer!

#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;

}
PERTEMUAN 6
1.Buatlah Program untuk melakukan pencarian terhadap data 12,15 dan 37 dari deretan 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
dicari terdapat lebih dari satu, tentukan banyaknya dan sebutkan benda pada posisi berapa
saja data yang dicari berada pada sederetan data !

#include <conio.h>

using namespace std;

main()

char nama[40];

int nim;

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,41,12};

cout<<"Nama : "; gets(nama);

cout<<"NIM : "; cin>>nim;

cout<<"\nData : ";

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

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

cout<<"\n\nData yang ingin di cari : "; 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 di temukan";

getch();

}
PERTEMUAN 7
1 . Buatlah program untuk mengurutkan sederetan data
34,12,56,78,6,43,32,20,90,50,55,75,85,95,25 !

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];

}
PERTEMUAN 8
1 . Buatlah program tambahan meggunakan system menu pada program yang telah
dipraktekan !

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

#include<iostream>

using namespace std;

int sort_function(const void *a, const void *b);

char list[8][9]={"aku","suka","sama","kamu","dari","dulu","sampai","sekarang"};

int main(void)

int x,y;

cout<<"Nama : namamu\nNIM : nimmu\nKelas : kelasmu\n\n";

printf("\t\t**Susun Kata**\n\n");

printf("Kata Sebelum di Susun : \n");

for(y=0;y<8;y++)

printf("%s ",list[y]);

printf("\n\nKata Setelah di Susun : \n");

qsort((void *)list, 8, sizeof(list[0]), sort_function);

for(x=0;x<8;x++)

printf("%s\n",list[x]);

return 0;
}

int sort_function(const void *a, const void *b)

return (strcmp((char *)a, (char *)b));

}
LAPORAN AWAL KE 4 PRATIKUM
STRUKTUR DATA

Di susun Oleh :
Gilang Ramadhan
TEKNIKINFORMATIKA

FAKULTAS TEKNIK

UNIVERSITAS PAMULANG

JL. Surya kencana No.1 Pamulang Telp (021)7412566,Fax.

(021)7412566

Tanggerang selatan
LAPORAN AKHIR KE 4 PRATIKUM
STRUKTUR DATA

Di susun Oleh :
Gilang Ramadhan
TEKNIKINFORMATIKA

FAKULTAS TEKNIK

UNIVERSITAS PAMULANG

JL. Surya kencana No.1 Pamulang Telp (021)7412566,Fax.

(021)7412566

Tanggerang selatan
TUGAS AKHIR PERTEMUAN 9

#include<stdlib.h>

#include<string.h>

#include<iostream>

using namespace std;

int sort_function(const void *a, const void *b);

char list[8][9]={"aku","suka","sama","kamu","dari","dulu","sampai","sekarang"};

int main(void)

int x,y;

cout<<"Nama : Gilang Ramadhan\nNIM : 181011402611\nKelas : 04TPLE026\n\n";

printf("\t\t**Susun Kata**\n\n");

printf("Kata Sebelum di Susun : \n");

for(y=0;y<8;y++)

printf("%s ",list[y]);

printf("\n\nKata Setelah di Susun : \n");

qsort((void *)list, 8, sizeof(list[0]), sort_function);

for(x=0;x<8;x++)

printf("%s\n",list[x]);

return 0;

int sort_function(const void *a, const void *b)

return (strcmp((char *)a, (char *)b));


}
TUGAS AKHIR PERTEMUAN 10

#include<iostream>
#include<cstdlib>

using namespace std;

typedef struct node *simpul;

struct node
{
char isi;
simpul next;
};

//prototype functions

void sisipDepan (simpul &l, char elemen);


void sisipBelakang(simpul &l, char elemen);
void sisipTengah1 (simpul &l, char elemen1, char elemen2);
void sisipTengah2 (simpul &l, char elemen1, char elemen2);
void hapusDepan (simpul &l);
void hapusBelakang(simpul &l);
void hapusTengah (simpul &l, char elemen);
void cetak (simpul l);

int main()
{
char huruf, huruf2;
simpul l = NULL; //pastikan bahwa l kosong
int menu;
cout << "OPERASI PADA SINGLE LINKED LIST" << endl << endl;

do
{
cout << "Menu : " << endl;
cout << "1. sisip depan" << endl;
cout << "2. sisip belakang" << endl;
cout << "3. sisip tengah1" << endl;
cout << "4. sisip tengah2" << endl;
cout << "5. hapus depan" << endl;
cout << "6. hapus belakang" << endl;
cout << "7. hapus tengah" << endl;
cout << "8. cetak" << endl;
cout << "9. keluar" << endl;
cout << "Pilih menu : ";
cin >> menu;
cout << endl;

switch(menu)
{
case 1 :
cout << "## Masukan huruf : ";
cin >> huruf;
sisipDepan(l, huruf);
cout << endl;
break;
case 2 :
cout << "## Masukan huruf : ";
cin >> huruf;
sisipBelakang(l, huruf);
cout << endl;
break;
case 3 :
cout << "## Masukan huruf : ";
cin >> huruf; cout << endl;
cout << "## Disisip setelah huruf : ";
cin >> huruf2; cout << endl;
sisipTengah1(l, huruf, huruf2);
break;
case 4 :
cout << "## Masukan huruf : ";
cin >> huruf; cout << endl;
cout << "## Disisip sebelum huruf : ";
cin >> huruf2; cout << endl;
sisipTengah2(l, huruf, huruf2);
break;
case 5 :
hapusDepan(l);
cout << "## Simpul depan dihapus" << endl << endl;
break;
case 6 :
hapusBelakang(l);
cout << "## Simpul belakang dihapus" << endl << endl;
break;
case 7 :
cout << "## Masukan huruf tengah yang akan dihapus : ";
cin >> huruf;
hapusTengah(l, huruf);
cout << endl;
break;
case 8 :
cetak(l);
cout << endl << endl;
break;
case 9 :
cout << "## Keluar program..." << endl;
break;
default :
cout << "## kode salah, coba lagi" << endl << endl;
break;
}
}
while(menu != 9);

return 0;
}

//fungsi sisip simpul depan


void sisipDepan (simpul &l, char elemen)
{
simpul baru;
baru = (simpul) malloc(sizeof(simpul));
baru->isi = elemen;
baru-> next = NULL;
if(l == NULL)
l = baru;
else
{
baru->next = l;
l = baru;
}
}

//fungsi sisip setelah simpul tertentu


void sisipTengah1 (simpul &l, char elemen1, char elemen2)
{
simpul bantu, baru;
baru = (simpul) malloc(sizeof(simpul));
baru->isi = elemen1;
baru->next = NULL;
if(l == NULL)
cout << "List kosong............" << endl;
else
{
bantu = l;
while(bantu -> isi != elemen2) bantu = bantu -> next;
baru -> next = bantu -> next;
bantu -> next = baru;
}

}
//fungsi sisip simpul sebelum simpul tertentu
void sisipTengah2 (simpul &l, char elemen1, char elemen2)
{
simpul bantu, baru;
baru = (simpul) malloc(sizeof(simpul));
baru -> isi = elemen1;
baru -> next = NULL;
if(l == NULL)
cout << "list kosong.........." << endl;
else
{
bantu = l;
while(bantu -> isi != elemen2) bantu = bantu -> next;
baru -> next = bantu -> next;
bantu -> next = baru;
}
}

//fungsi simpul di belakang


void sisipBelakang(simpul &l, char elemen)
{
simpul bantu, baru;
baru = (simpul) malloc(sizeof(simpul));
baru -> isi = elemen;
baru -> next = NULL;
if(l == NULL)
l = baru;
else
{
bantu = l;
while(bantu -> next != NULL) bantu = bantu -> next;
bantu -> next = baru;
}
}

//fungis mencetak isi liked list


void cetak(simpul l)
{
simpul bantu;
if(l == NULL)
cout << "Linked list kosong............." << endl;
else
{
bantu = l;
cout << "isi linked list : ";
while(bantu -> next != NULL)
{
cout << bantu -> isi << "-->";
bantu = bantu -> next;
}
cout << bantu -> isi;
}
}

//funsi hapus simpul depan


void hapusDepan(simpul &l)
{
simpul hapus;
if(l == NULL)
cout << "linked list kosong......" << endl;
else
{
hapus = l;
l = l -> next;
hapus -> next == NULL;
free(hapus);
}
}

//fungsi hapus simpul belakang


void hapusBelakang(simpul &l)
{
simpul bantu, hapus;
if(l == NULL)
cout << "linked list kosong....... " << endl;
else
{
bantu = l;
while(bantu -> next -> next != NULL) bantu = bantu -> next;
hapus = bantu -> next;
bantu -> next = NULL;
free(hapus);
}
}

//fungsi hapus simpul di tengah


void hapusTengah(simpul &l, char elemen)
{
simpul bantu, hapus;
if(l == NULL)
cout << "Linked list kosong............";
else
{
bantu = l;
while(bantu -> next -> isi != elemen) bantu = bantu -> next;
hapus = bantu -> next;
bantu -> next = bantu -> next -> next;
hapus -> next = NULL;
free(hapus);
}
}
LAPORAN AKHIR KE 5 PRATIKUM
STRUKTUR DATA

Di susun Oleh :
Gilang Ramadhan
TEKNIKINFORMATIKA

FAKULTAS TEKNIK

UNIVERSITAS PAMULANG

JL. Surya kencana No.1 Pamulang Telp (021)7412566,Fax.

(021)7412566

Tanggerang selatan
PERTEMUAN XI

TUGAS AKHIR
buatlah program untuk mengkonveksi bilangan desimal menjadi bilangan biner dengan
menggunakan stack !

#include<iostream>

#include<stdio.h>

#include<conio.h>

int MAXSTACK; typedef int itemtype;

typedef struct{

itemtype item[300]; int count;}

stack;

void initializestack(stack *s){

s->count = 0;}

int empty(stack *s){

return (s->count == 0);}

int full(stack *s){

return (s->count == MAXSTACK);}

void push(itemtype x, stack *s){

if(full(s))

printf("stack penuh !\n");

else{
s->item[s->count]=x; ++(s->count); }}

int pop(stack *s) {

if(empty(s))

printf(" Stack Kosong ");

else {

--(s->count);

return (s->item[s->count]); }}

using namespace std;

main() {

cout<<endl;

cout<<" Nama : Gilang Ramadhan "<<endl;

cout<<" Kelas : 04 TPLE026 Reguler C "<<endl;

cout<<" Mata Kuliah : Praktikum Struktur Data "<<endl;

cout<<endl;

int i, n, m, l, z; int input;

stack tumpukan;

printf(" Program Pengkonversi Desimal ke Biner ");

cout<<endl<<endl;

initializestack(&tumpukan);

printf(" Masukkan Bilangan Desimal : ");

scanf("%d", &input);

for(z=1,n=input;n>0;n=n/2, z++) {

MAXSTACK=z; }

m=0;

for(n=input;n>0;n=n/2) {
l=n%2;

push(l,&tumpukan);

++m; }

cout<<endl;

printf(" Hasil Konversi Ke Bilangan Biner : ");

for(i=MAXSTACK;i>0;i--) {

printf("%d", pop(&tumpukan)); }

getch();

return 0; }
PERTEMUAN XII
TUGAS AKHIR
Buatlah program untuk membalik suatu kalimat (karakter depan menjadi karakter belakang dan
karakter belakang menjadi karakter depan)dengan menggunakan stack !

#include<iostream>

#include<string.h>

using namespace std;

int main(){

char kalimat[100];

cout<<"Masukan Kalimat :"; cin.getline (kalimat , sizeof (kalimat) );

int x = strlen(kalimat);

for(int i=x-1;i>=0;i--){

cout<<kalimat[i];

}
PERTEMUAN XIII
TUGAS AKHIR
Buatlah tambahan program menggunakan system menu pada program yang telah dipraktekan !

#include<iostream>

#include<conio.h>

#include<stdlib.h>

using namespace std;

typedef struct node *simpul;

struct node

char isi;

simpul next;

};

//Nama : Gilang Ramadhan

//Nim : 181011402611

//Kelas : 04TPLE026

//prototype function

void Sisip_Belakang(simpul &L, char elemen );

void Hapus_Depan(simpul &L);

void Cetak(simpul L);

//function main

main()

{
char huruf, ulang, yt;

simpul L = NULL; //pastikan bahwa L kosong

int i, pilih;

cout<<"Nama : Gilang Ramadhan\n";

cout<<"Nim : 181011402611\n";

cout<<"Kelas : 04TPLE026/316\n";

cout<<"Matkul : Tugas Akhir Queue \n\n";

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

cout<<"==Operasi Pada Singel Linked List=="<<endl<<endl;

atas:

cout<<"\nPILIHAN MENU\n";

cout<<"------------------------------------\n";

cout<<" 1. Sisip belakang \n";

cout<<" 2. Hapus simpul depan \n";

cout<<" 3. Setelah hapus simpul \n";

cout<<" 4. Cetak \n";

cout<<"--------------------------------------\n";

cout<<"Apa yang anda inginkan = " ; cin>>pilih;

if (pilih==1){

//sisip belakang

cout<<"\nPenyisipan simpul\n\n";

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

{
cout<<"Masukan huruf : ";cin>>huruf;

Sisip_Belakang(L , huruf );

Cetak(L);

if(pilih==2){

//hapus simpul depan

cout<<"\nSetelah Hapus Simpul "<<endl;

Hapus_Depan(L);

Cetak(L);

cout<<"\nSetelah Hapus Simpul "<<endl;

Hapus_Depan(L);

Cetak(L);

cout<<"\nSetelah Hapus Simpul "<<endl;

Hapus_Depan(L);

Cetak(L);

cout<<"\nPenyisipan simpul\n\n";

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

cout<<"Masukan huruf : ";cin>>huruf;

Sisip_Belakang(L , huruf );

Cetak(L);

}
if(pilih==3){

cout<<"\nSetelah Hapus Simpul "<<endl;

Hapus_Depan(L);

Cetak(L);

cout<<"\nSetelah Hapus Simpul "<<endl;

Hapus_Depan(L);

Cetak(L);

if(pilih==4){

Cetak(L);

cout<<"\n\nAnda ingin mengulang lagi ? [Y/T] "; cin>>yt;

if (yt == 'Y' || yt == 'y')

goto atas;

else if(yt=='T' || yt=='t')

cout<<"\n";

cout<<"------------Allhamdullilah Gilang Ramadhan Berhasil :v----------"<<endl;

getch();

//finction sisip simpul di belakang

void Sisip_Belakang(simpul &L ,char elemen )

{
simpul bantu,baru;

baru=(simpul)malloc (sizeof(simpul));

baru->isi=elemen;

baru->next=NULL;

if(L==NULL)

L=baru;

else

bantu= L;

while(bantu->next != NULL)

bantu = bantu->next;

bantu->next=baru;

//function mencetak isi linked list

void Cetak(simpul L)

simpul bantu;

if(L==NULL)

cout<<"linked list kosong.........\n";

else

bantu=L;

cout<<"\nisi linked list : ";


while(bantu->next !=NULL)

cout<<bantu->isi<<"->";

bantu=bantu->next;

cout<<bantu->isi;

//function hapus simpul depan

void Hapus_Depan(simpul &L)

simpul Hapus;

if(L==NULL)

cout<<"linked list kosong...........\n";

else

Hapus=L;

L=L->next;

Hapus->next=NULL;

free(Hapus);

}
LAPORAN AWAL KE 5 PRATIKUM
STRUKTUR DATA

Di susun Oleh :
Gilang Ramadhan
TEKNIKINFORMATIKA

FAKULTAS TEKNIK

UNIVERSITAS PAMULANG

JL. Surya kencana No.1 Pamulang Telp (021)7412566,Fax.

(021)7412566

Tanggerang selatan
PERTEMUAN XIII
TUGAS AWAL

Anda mungkin juga menyukai