Kelompok 3
- PipihHopipah
- NadiaRatna Maulinda
- MeliaKartikaYolanda
- SaqillaRiyadi
- Nuraini
KelasTI-D
#include<stdlib.h>
#include <stdio.h>
#include <iostream>
#include <conio.h>
#include <cstdlib>
usingnamespace std;
struct node
{
char nama[20];
intumur;
floattinggi;
node *next;
};
node *awal_ptr= NULL;
node *posisi;//digunakanuntukmembacasepanjanglist
intoption= 0;
voidtambah_awal_list()
{
Simpul *next,*awal_ptr,*posisi,*baru
node *baru;
baru = new node; Baru
cout << "MasukkanNama : ";
cin >> baru->nama;
Baru
Nama
Nama
Masukan Nama :
cout << "MasukkanUmur : ";
cin >> baru->umur;
Baru
cout << "Masukkantingggi : ";
cin >> baru->tinggi;
baru->next= NULL;
Baru
if(awal_ptr== NULL) // True karna awal_ptrmasihNULL aliasbelumdihubungkandenganbaru
{
awal_ptr=baru; Baru
Awal_ptr
awal_ptr->next=NULL;
}
else
{
baru->next=awal_ptr; Baru
Awal_ptr
awal_ptr= baru;
}
}
voidmenambah_node_di_akhir()
{
node *temp,*temp2;
//Temporarypointers
//menciptakannode baru
temp= newnode;
cout << "Masukkan Nama: "; Masukan Nama : Jean
1
1
Masukan Umur : Umur
Masukan Tinggi : Tinggi
Nama Umur
Nama Umur Tinggi
Nama Umur Tinggi
Nama Umur Tinggi
Nama Umur Tinggi
Nama Umur Tinggi
2
cin>> temp->nama;cout<< "MasukkanUmur : ";
Temp
cin>>temp->umur;
Temp
cout << "Masukkan tingggi :";
cin>> temp->tinggi;temp->next=NULL;
Temp
// Setup linkpadanode
if (awal_ptr== NULL) True
{
Temp
awal_ptr= temp;
Temp
posisi = awal_ptr;
Temp Temp
Jean Umur Tinggi
Masukan Tinggi : 175
Masukan Umur : 19
Jean 19 Tinggi
Jean 19 175
Awal _ptr
posisi Temp2
Jean 19 175
Awal _ptr
posisi Temp2
Jean 19 175
Awal _ptr
posisi Temp2
Jean 19 175
}
else
{
temp2= awal_ptr;
//node tidakNULL listtidakkosong
Temp Temp
while (temp2->next!=NULL)
{
temp2 = temp2->next;
// Memindahkanpadanextlinkdalamrantai
}
temp2->next=temp;
}
}
Temp
Temp
voiddisplay_list() // membuatprosedurbernamadisplay_list
{
node *temp; // deklarasi variabel pointerbernamatemp
temp= awal_ptr; // awal_ptr
temp
cout << endl; // menampilkangarisbarupadalayar
if (temp== NULL) // false
Jean 19 175
Tama 20 170
3
Awal _ptr
posisi Temp2
Jean 19 175
Awal _ptr
posisi Temp2
Jean 19 175
cout<< "List kosong!"<< endl; // menampilkanlistkosongdanmembuatgarisbaru
else
{
cout<<"Namat|Umur | tinggi"<<endl; // menampilkan Namat|Umur| tinggi dan garisbaru
cout<<"------------------------"<<endl; // menampilkan ------------------------ dan garis baru
while (temp!=NULL) // true
{ // Menampilkandetaildata
cout << ""<<temp->nama<< ""; // menampilkan datapada
variabel pointertemppada variabel nama
cout << "t|" << temp->umur<<""; // menampilkan datapada
variabel pointertemppada
variabel umur
cout << "t|" <<temp->tinggi; // menampilkan datapadavariabel
pointertemppada variabel tinggi
if (temp== posisi) // false
cout << " <<<< posisi node";
cout << endl;
temp= temp->next;
}
cout << "->NULL (Akhirlist!)"<<endl; // menampilkan "->NULL(Akhirlist!)" dangarisbaru
}
}
Namat | Umur | tinggi
Namat | Umur | tinggi
-------------------------------------------
Namat | Umur | tinggi
-------------------------------------------
Jean
Tama
Namat | Umur | tinggi
-----------------------------------------
Jean | 19
Tama | 20
Namat | Umur | tinggi
----------------------------------------
Jean | 19 | 175
Tama | 20 | 170
Cetta 16 163
Namat | Umur | tinggi
----------------------------------------
Jean | 19 | 175
Tama | 20 | 170
->NULL (AkhirList!)
Misalkanilustrasi memori sebelumnya
awal_ptr
voidhapus_awal_node() // membuatprosedirbernamahapus_awal_node
{
node *temp; // deklarasi variabel pointerbernamatemp
temp= awal_ptr; // awal_ptr
temp
awal_ptr= awal_ptr->next; // temp
awal_ptr
delete temp; //
}
Awal_ptr
Misalkanilustrasi memori sebelumnya
awal_ptr
voidhapus_akhir_node() // membuatprosedurhapus_akhir_node
{
node *temp1,*temp2; // deklarasi variabel pointerbernamatemp1dantemp2
if (awal_ptr== NULL) // false
cout << "Listkosong!"<< endl;
Jean 19 175 Tama 20 170
Jean 19 175
Jean 19 175 Tama 20 170
Tama 20 170
Jean 19 175 Tama 20 170
Tama 20 170
Jean 19 175
4
5
else
{
temp1= awal_ptr; // awal_ptr
temp1
if (temp1->next== NULL) // false
{
delete temp1;
awal_ptr = NULL;
}
else
{
while (temp1->next!=NULL) // true (perulanganpertama)
{
temp2= temp1; // awal_ptr
temp1
temp2
temp1= temp1->next; // awal_ptr
temp2
temp1
}
delete temp1; // awal_ptr
temp2
temp2->next=NULL; // awal_ptr
temp2
}
}
}
Misalkanilustrasi memori sebelumnya
awal_ptr Aji 18 171 Jean 19 175
posisi
Tama 20 170
Jean 19 175 Tama 20 170
Jean 19 175
Jean 19 175
Jean 19 175
Jean 19 175
Tama 20 170
Tama 20 170
Tama 20 170
Tama 20 170
6
voidpindah_posisi_sebelumnya() // membuatprosedurpindah_posisi_sebelumnya
{
if (posisi->next==NULL) // false
cout << "Kamuberadapada akhirlist."<< endl;
else
posisi =posisi->next; // awal_ptr
}
Misalkanilustrasi memori sebelumnya
awal_ptr Aji 18 171 Jean 19 175
posisi Tama 20 170
voidpindah_posisi_berikutnya() // membuatprosedur pindah_posisi_berikutnya
{
if (posisi ==awal_ptr) // false
cout<<"Berada pada awal list"<<endl;
else
{
node *previous; // deklarasi pointer
previous=awal_ptr; // awal_ptr
previous
posisi
while (previous->next!=posisi) // false
{
previous=previous->next;
}
posisi
Aji 18 171
Aji 18 171
Tama 20 170
Tama 20 170
Jean 19 175
Jean 19 175
7
posisi = previous; // awal_ptr
previous
posisi
}
}
Misalkanilustrasi memori sebelumnya
awal_ptr
voidtambah_tengah_list() // prosedurbernamatambah_tengah_list
{
node *baru,*bantu; // deklarasi pointerbantudanbaru
intposisi_sisip; // dekralasi variabel posisi_sisipdengantype bulat
if(awal_ptr!=NULL) // true
{
cout<<"Akan disisipsetelahDataKe?:"; //
cin>>posisi_sisip; // inputnilai ke variabel posisi_sisip (misalkandi isi nilai 2)
bantu=awal_ptr; // awal_ptr
bantu
baru =newnode; // baru
for(inti=1;i<posisi_sisip-1;i++) { // false
if(bantu->next!=NULL) // false
bantu=bantu->next; // awal_ptr
bantu
else
break;} //
cout<< "Masukkan Nama: "; //
cin >> baru->nama; //
cout<< "Masukkan Umur : "; //
AkandisisipsetelahDatake?:
Masukan Nama
Aji
Masukan Umur
Jean 19 175
Aji 18 171
Tama 20 170
Jean 19 175
Jean 19 175
Jean 19 175
Tama 20 170
Tama 20 170
Tama 20 170
8
cin>> baru->umur; //
cout<< "Masukkan tingggi :"; //
cin>> baru->tinggi; //
baru->next=bantu->next;//awal_ptr
bantu
baru
bantu->next=baru; // awal_ptr
bantu
baru
}
else
{
cout<<"Belumada data !! silahkanisi datadulu...."; //
}
}
Aji 18
Masukan Tinggi
Aji 18 171
Aji 18 171
Aji 18 171
Belumadadata !! silahkanisi datadulu...
Tama 20 170
Jean 19 175
Jean 19 175 Tama 20 170
Misal
awal_ptr
voidHapus_tengah_list() // prosedurbernama Hapus_tengah_list
{
intbanyakdata,posisi_hapus,poshapus; // deklarasi variabel banyakdata,posisi_hapus,dan
poshapusdengantype databulat
node *hapus,*bantu; // deklarasi pointerhapusdanbantu
if(awal_ptr!=NULL) // true
{
cout<<" Akandihapuspadadata ke : "; //
cin>>posisi_hapus; // Memasukannilai padavariabel posisi_hapusmisal
diisi dengannilai2
banyakdata=1; //menetapkannilai awal variabel banyakdata=1
bantu=awal_ptr; // awal_ptr
bantu
poshapus=1; // menetapkannilai awal variabel poshapus=1
while(poshapus<(posisi_hapus-1)) // karenaposisi_hapusbernilai2( 2-1=1) maka1<1 = false
{
bantu=bantu->next; // tidakdijalankan
poshapus++; // tidakdijalankan
}
hapus=bantu->next; // awal_ptr
bantu
hapus
bantu->next=hapus->next; //awal_ptr
bantu
hapus
Akandihapuspadadata ke :
Jean 19 175
Jean 19 175
Jean 19 175
Jean 19 175
Tama 20 170
Tama 20 170
Tama 20 170
Tama 20 170
Aji 18 171
Aji 18 171
Aji 18 171
Aji 18 171
9
delete hapus; } } //
awal_ptr
bantu
else
cout<<"Data Masih kosong,tidakbisahapusdata dari tengah!"; //tidakdijalankan
getc; // tidakdijalankan
}
Jean 19 175 Tama 20 170
Aji 18 171

Presentasi Kelompok 3 TI-D algorithm.docx

  • 1.
    Kelompok 3 - PipihHopipah -NadiaRatna Maulinda - MeliaKartikaYolanda - SaqillaRiyadi - Nuraini KelasTI-D #include<stdlib.h> #include <stdio.h> #include <iostream> #include <conio.h> #include <cstdlib> usingnamespace std; struct node { char nama[20]; intumur; floattinggi; node *next; }; node *awal_ptr= NULL; node *posisi;//digunakanuntukmembacasepanjanglist intoption= 0; voidtambah_awal_list() { Simpul *next,*awal_ptr,*posisi,*baru node *baru; baru = new node; Baru cout << "MasukkanNama : "; cin >> baru->nama; Baru Nama Nama Masukan Nama :
  • 2.
    cout << "MasukkanUmur: "; cin >> baru->umur; Baru cout << "Masukkantingggi : "; cin >> baru->tinggi; baru->next= NULL; Baru if(awal_ptr== NULL) // True karna awal_ptrmasihNULL aliasbelumdihubungkandenganbaru { awal_ptr=baru; Baru Awal_ptr awal_ptr->next=NULL; } else { baru->next=awal_ptr; Baru Awal_ptr awal_ptr= baru; } } voidmenambah_node_di_akhir() { node *temp,*temp2; //Temporarypointers //menciptakannode baru temp= newnode; cout << "Masukkan Nama: "; Masukan Nama : Jean 1 1 Masukan Umur : Umur Masukan Tinggi : Tinggi Nama Umur Nama Umur Tinggi Nama Umur Tinggi Nama Umur Tinggi Nama Umur Tinggi Nama Umur Tinggi 2
  • 3.
    cin>> temp->nama;cout<< "MasukkanUmur: "; Temp cin>>temp->umur; Temp cout << "Masukkan tingggi :"; cin>> temp->tinggi;temp->next=NULL; Temp // Setup linkpadanode if (awal_ptr== NULL) True { Temp awal_ptr= temp; Temp posisi = awal_ptr; Temp Temp Jean Umur Tinggi Masukan Tinggi : 175 Masukan Umur : 19 Jean 19 Tinggi Jean 19 175 Awal _ptr posisi Temp2 Jean 19 175 Awal _ptr posisi Temp2 Jean 19 175 Awal _ptr posisi Temp2 Jean 19 175
  • 4.
    } else { temp2= awal_ptr; //node tidakNULLlisttidakkosong Temp Temp while (temp2->next!=NULL) { temp2 = temp2->next; // Memindahkanpadanextlinkdalamrantai } temp2->next=temp; } } Temp Temp voiddisplay_list() // membuatprosedurbernamadisplay_list { node *temp; // deklarasi variabel pointerbernamatemp temp= awal_ptr; // awal_ptr temp cout << endl; // menampilkangarisbarupadalayar if (temp== NULL) // false Jean 19 175 Tama 20 170 3 Awal _ptr posisi Temp2 Jean 19 175 Awal _ptr posisi Temp2 Jean 19 175
  • 5.
    cout<< "List kosong!"<<endl; // menampilkanlistkosongdanmembuatgarisbaru else { cout<<"Namat|Umur | tinggi"<<endl; // menampilkan Namat|Umur| tinggi dan garisbaru cout<<"------------------------"<<endl; // menampilkan ------------------------ dan garis baru while (temp!=NULL) // true { // Menampilkandetaildata cout << ""<<temp->nama<< ""; // menampilkan datapada variabel pointertemppada variabel nama cout << "t|" << temp->umur<<""; // menampilkan datapada variabel pointertemppada variabel umur cout << "t|" <<temp->tinggi; // menampilkan datapadavariabel pointertemppada variabel tinggi if (temp== posisi) // false cout << " <<<< posisi node"; cout << endl; temp= temp->next; } cout << "->NULL (Akhirlist!)"<<endl; // menampilkan "->NULL(Akhirlist!)" dangarisbaru } } Namat | Umur | tinggi Namat | Umur | tinggi ------------------------------------------- Namat | Umur | tinggi ------------------------------------------- Jean Tama Namat | Umur | tinggi ----------------------------------------- Jean | 19 Tama | 20 Namat | Umur | tinggi ---------------------------------------- Jean | 19 | 175 Tama | 20 | 170 Cetta 16 163 Namat | Umur | tinggi ---------------------------------------- Jean | 19 | 175 Tama | 20 | 170 ->NULL (AkhirList!)
  • 6.
    Misalkanilustrasi memori sebelumnya awal_ptr voidhapus_awal_node()// membuatprosedirbernamahapus_awal_node { node *temp; // deklarasi variabel pointerbernamatemp temp= awal_ptr; // awal_ptr temp awal_ptr= awal_ptr->next; // temp awal_ptr delete temp; // } Awal_ptr Misalkanilustrasi memori sebelumnya awal_ptr voidhapus_akhir_node() // membuatprosedurhapus_akhir_node { node *temp1,*temp2; // deklarasi variabel pointerbernamatemp1dantemp2 if (awal_ptr== NULL) // false cout << "Listkosong!"<< endl; Jean 19 175 Tama 20 170 Jean 19 175 Jean 19 175 Tama 20 170 Tama 20 170 Jean 19 175 Tama 20 170 Tama 20 170 Jean 19 175 4 5
  • 7.
    else { temp1= awal_ptr; //awal_ptr temp1 if (temp1->next== NULL) // false { delete temp1; awal_ptr = NULL; } else { while (temp1->next!=NULL) // true (perulanganpertama) { temp2= temp1; // awal_ptr temp1 temp2 temp1= temp1->next; // awal_ptr temp2 temp1 } delete temp1; // awal_ptr temp2 temp2->next=NULL; // awal_ptr temp2 } } } Misalkanilustrasi memori sebelumnya awal_ptr Aji 18 171 Jean 19 175 posisi Tama 20 170 Jean 19 175 Tama 20 170 Jean 19 175 Jean 19 175 Jean 19 175 Jean 19 175 Tama 20 170 Tama 20 170 Tama 20 170 Tama 20 170 6
  • 8.
    voidpindah_posisi_sebelumnya() // membuatprosedurpindah_posisi_sebelumnya { if(posisi->next==NULL) // false cout << "Kamuberadapada akhirlist."<< endl; else posisi =posisi->next; // awal_ptr } Misalkanilustrasi memori sebelumnya awal_ptr Aji 18 171 Jean 19 175 posisi Tama 20 170 voidpindah_posisi_berikutnya() // membuatprosedur pindah_posisi_berikutnya { if (posisi ==awal_ptr) // false cout<<"Berada pada awal list"<<endl; else { node *previous; // deklarasi pointer previous=awal_ptr; // awal_ptr previous posisi while (previous->next!=posisi) // false { previous=previous->next; } posisi Aji 18 171 Aji 18 171 Tama 20 170 Tama 20 170 Jean 19 175 Jean 19 175 7
  • 9.
    posisi = previous;// awal_ptr previous posisi } } Misalkanilustrasi memori sebelumnya awal_ptr voidtambah_tengah_list() // prosedurbernamatambah_tengah_list { node *baru,*bantu; // deklarasi pointerbantudanbaru intposisi_sisip; // dekralasi variabel posisi_sisipdengantype bulat if(awal_ptr!=NULL) // true { cout<<"Akan disisipsetelahDataKe?:"; // cin>>posisi_sisip; // inputnilai ke variabel posisi_sisip (misalkandi isi nilai 2) bantu=awal_ptr; // awal_ptr bantu baru =newnode; // baru for(inti=1;i<posisi_sisip-1;i++) { // false if(bantu->next!=NULL) // false bantu=bantu->next; // awal_ptr bantu else break;} // cout<< "Masukkan Nama: "; // cin >> baru->nama; // cout<< "Masukkan Umur : "; // AkandisisipsetelahDatake?: Masukan Nama Aji Masukan Umur Jean 19 175 Aji 18 171 Tama 20 170 Jean 19 175 Jean 19 175 Jean 19 175 Tama 20 170 Tama 20 170 Tama 20 170 8
  • 10.
    cin>> baru->umur; // cout<<"Masukkan tingggi :"; // cin>> baru->tinggi; // baru->next=bantu->next;//awal_ptr bantu baru bantu->next=baru; // awal_ptr bantu baru } else { cout<<"Belumada data !! silahkanisi datadulu...."; // } } Aji 18 Masukan Tinggi Aji 18 171 Aji 18 171 Aji 18 171 Belumadadata !! silahkanisi datadulu... Tama 20 170 Jean 19 175 Jean 19 175 Tama 20 170
  • 11.
    Misal awal_ptr voidHapus_tengah_list() // prosedurbernamaHapus_tengah_list { intbanyakdata,posisi_hapus,poshapus; // deklarasi variabel banyakdata,posisi_hapus,dan poshapusdengantype databulat node *hapus,*bantu; // deklarasi pointerhapusdanbantu if(awal_ptr!=NULL) // true { cout<<" Akandihapuspadadata ke : "; // cin>>posisi_hapus; // Memasukannilai padavariabel posisi_hapusmisal diisi dengannilai2 banyakdata=1; //menetapkannilai awal variabel banyakdata=1 bantu=awal_ptr; // awal_ptr bantu poshapus=1; // menetapkannilai awal variabel poshapus=1 while(poshapus<(posisi_hapus-1)) // karenaposisi_hapusbernilai2( 2-1=1) maka1<1 = false { bantu=bantu->next; // tidakdijalankan poshapus++; // tidakdijalankan } hapus=bantu->next; // awal_ptr bantu hapus bantu->next=hapus->next; //awal_ptr bantu hapus Akandihapuspadadata ke : Jean 19 175 Jean 19 175 Jean 19 175 Jean 19 175 Tama 20 170 Tama 20 170 Tama 20 170 Tama 20 170 Aji 18 171 Aji 18 171 Aji 18 171 Aji 18 171 9
  • 12.
    delete hapus; }} // awal_ptr bantu else cout<<"Data Masih kosong,tidakbisahapusdata dari tengah!"; //tidakdijalankan getc; // tidakdijalankan } Jean 19 175 Tama 20 170 Aji 18 171