Struktur Data & Algoritma
Leni Muslimah
064001400022
Teknik Informatika
ListArray
#include <iostream>
using namespace std;
struct smpn
{ char name[10];
int thn_lls;
int angkt;
char prof[15];
char no_hp[15];
smpn *ljt ;
};
smpn *mlai_ptr = NULL;
smpn *pndah;
int pilihan = 0;
void tmbh_data()
{ smpn *Fr, *Fr1;
Fr = new smpn;
cout << "\t Masukkan data!\n\a";
cout << "Masukkan nama : ";
cin >> Fr->name;
cout << "Tahun Lulus Kuliah : ";
cout << "Angkatan berapa : ";
cin >> Fr->angkt;
cout << "Profesi Anda : ";
cin >> Fr->prof;
cout << "Nomer yang bisa dihub : ";
cin>>Fr->no_hp;
Fr->ljt = NULL;
if (mlai_ptr == NULL)
{ mlai_ptr = Fr;
pndah = mlai_ptr;
}
else
{ Fr1 = mlai_ptr;
while (Fr1->ljt != NULL)
{ Fr1 = Fr1->ljt;
}
Fr1->ljt = Fr ;
}
}
void list_data()
{ smpn *Fr;
Fr = mlai_ptr;
if (Fr == NULL)
cout << "Tidak ada data yang disimpan\n";
else
{ while (Fr != NULL)
{
cout << "Nama: "<<Fr->name<<", ";
cout << "Tahun Lls: "<<Fr->thn_lls<<", ";
cout << "Angkatan: "<<Fr->angkt<<", ";
cout << "Profesi: "<<Fr->prof<<", ";
cout << "No.HP : "<<Fr->no_hp;
if (Fr == pndah)
cout << "< data";
cout <<endl;
Fr = Fr->ljt;
}
cout <<"Daftar data terakhir" << endl;
}
}
void hapus_dta_awl()
{ smpn *Fr;
Fr = mlai_ptr;
mlai_ptr = mlai_ptr->ljt;
delete Fr;
}
void hapus_dta_akr()
if (mlai_ptr == NULL)
cout << "Daftar kosong/n";
else
Fr0 = mlai_ptr;
if (Fr0->ljt == NULL)
{delete Fr0;
mlai_ptr = NULL;
}
else
{while (Fr0->ljt != NULL)
{Fr1 = Fr0;
Fr0 = Fr0->ljt;
}
delete Fr0;
Fr1->ljt = NULL;
}
}
void pndah_brkt ()
{if (pndah == NULL)
cout <<"Kamu berada di baris terakir\n";
else
pndah = pndah->ljt;
}
void move_kmbli()
{ if (pndah == mlai_ptr)
else
{ smpn *sblm;
sblm = mlai_ptr;
while (sblm->ljt != pndah)
{ sblm = sblm->ljt;
}
pndah = sblm;
}
}
int main()
{ mlai_ptr = NULL;
do
{
list_data();
cout << endl;
cout << "Masukkan pilihanmu(ketik angka) : " << endl;
cout << "0. Keluar dari program." << endl;
cout << "1. Menambahkan node di daftar terkhir." << endl;
cout << "2. Hapus data awal node." << endl;
cout << "3. Hapus data terakhir pada node." << endl;
cout << endl << " kamu mau apa >> ";
cin >> pilihan;
switch (pilihan)
{
case 1 : tmbh_data(); break;
case 3 : hapus_dta_akr(); break;
}
}
while (pilihan != 0);
return 0;
Array Of Struct
#include <iostream>
#include <stdio.h>
#include <iomanip>
#include <conio.h>
#include <string.h>
using namespace std;
void tampilmenu(){
cout<<"---[Daftar]---"<<endl;
cout<<"| 1. Tambah Biodata |"<<endl;
cout<<"| 2. Tampilkan Biodata |"<<endl;
cout<<"| 3. Keluar |"<<endl;
cout<<"---"<<endl;
};
int main(void){
int pilihan,s,c[3],d[3],e[3],b[3],i;
char a[20][3], f[30][3];
bool looping=true;
tampilmenu();
cout<<" Pilih? ";
cin>>pilihan;
cout<<endl;
switch(pilihan){
case 1:
//Struct Alamat
int rt;
int rw;
int no;
char jalan[30];
};
//struct biodata
struct biodata {
char nama[20];
int nim;
alamat almt;
};
biodata bio[3];
//bio1
for (i=0; i<=2; i++){
cout<<"===biodata ["<<i+1<<"]==="<<endl;
cout<<"Nama : ";
cin>>a[i];
cout<<endl;
cout<<"NIM : ";
cin>>b[i];
cout<<endl;
cout<<"RT : ";
cin>>c[i];
cout<<endl;
cout<<"RW : ";
cin>>d[i];
cout<<endl;
cout<<"No : ";
cin>>e[i];
cout<<endl;
cin>>f[i];
cout<<endl;
strcpy(bio[i].nama,a[i]);
bio[i].nim=b[i];
bio[i].almt.rt=c[i];
bio[i].almt.rw=d[i];
bio[i].almt.no=e[i];
strcpy(bio[i].almt.jalan, f[i]);
}
//case 2
case 2:
cout<<"---"<<endl;
cout<<"| No | Nama | NIM | Alamat | Nomor | RT | RW |"<<endl;
cout<<"---"<<endl;
for(s=0;s<3;s++){
cout<<"| "<<s+1<<" | "<<bio[s].nama<<" | "<<bio[s].nim<<" | "<<bio[s].almt.jalan<<" | "<<bio[s].almt.no<<" | "<<bio[s].almt.rt<<" | "<<bio[s].almt.rw<<" | "<<endl;
}
case 3:
looping=false;
break;
}
List Pointer
#include <iostream>
#include <conio.h>
#include <iomanip> //setw()
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
using namespace std;
struct node
{
int data;
node* next; // untuk menghubungkan dengan node lain, tipe
data dibuat sama seperi aturan penggunaan pointer.
};
node* head;
node* tail;
node* curr;
node* entry;
node* del;
head = NULL;
tail = NULL;
}
void input(int dt)
{
entry = (node* )malloc(sizeof(node)); //alokasi memori
entry->data = dt;
entry->next = NULL;
if(head==NULL)
{
head = entry;
tail = head;
}
else
{
tail->next = entry;
tail = entry;
}
}
void hapus()
{
int simpan;
if(head==NULL)
{
cout<<"\nlinked list kosong, penghapusan tidak bisa
dilakukan"<<endl;
}
else
{
head = NULL;
}
}
void cetak()
{
curr = head;
if(head == NULL)
cout<<"\ntidak ada data dalam linked list"<<endl;
else
{
cout<<"\nData yang ada dalam linked list adalah"<<endl;
cout<<setw(6);
while(curr!=NULL)
{
cout<<curr->data<<"->";
curr = curr->next;
cout<<endl;
}
}
void menu()
{
char pilih, ulang;
int data;
do
{
system("cls");
cout<<"SINGLE LINKED LIST NON CIRCULAR"<<endl;
cout<<"---"<<endl;
cout<<"Menu : "<<endl;
cout<<"1. Input data"<<endl;
cout<<"2. Hapus data"<<endl;
cout<<"3. Cetak Data"<<endl;
cout<<"4. Exit"<<endl;
cout<<"Masukkan pilihan Anda : ";
cin>>pilih;
switch(pilih)
{
case '1' :
cout<<"\nMasukkan data : ";
cin>>data;
input(data);
break;
case '2' :
hapus();
break;
case '3' :
cetak();
break;
case '4' :
exit(0);
break;
default :
cout<<"\nPilih ulang"<<endl;
}
cout<<"\nKembali ke menu?(y/n)";
cin>>ulang;
}while(ulang=='y' || ulang=='Y');
}
{
inisialisasi();
menu();